BAB III PERANCANGAN SISTEM
Perancangan sistem didasarkan pada tujuan dan kebutuhan sistem yang ingin dicapai, sehingga kebutuhan akan komponen-komponen sistem dapat diperhitungkan.
Mengacu pada perumusan dan pembatasan masalah, pada tugas akhir ini ingin dibuat sebuah sistem yang dapat melakukan kendali kecepatan dan kendali posisi dengan masukan dari pengguna dan tampilan keluaran yang dapat dilihat oleh pengguna. Oleh karena itu, kebutuhan perangkat kerasnya adalah motor langkah, penggerak motor langkah sebagai antarmuka antara mikrokontroler dan motor langkah, mikrokontroler dan sistem minimumnya, keypad sebagai komponen masukan, dan LCD sebagai komponen keluaran. Sedangkan kebutuhan perangkat lunaknya adalah perangkat lunak untuk membuat program mikrokontroler. Diagram blok sistem dapat dilihat pada Gambar 3.1.
Gambar 3.1 Diagram blok sistem
III.1. Perancangan Perangkat Keras
Seperti yang telah disebutkan sebelumnya, perangkat keras yang dibutuhkan adalah : -
Motor langkah
-
Penggerak motor langkah
-
Sistem minimum
-
Keypad
-
LCD
Berdasarkan kebutuhan tersebut, spesifikasi perangkat keras yang digunakan adalah sebagai berikut : 1. Motor langkah STH 39D172 Motor langkah STH 39D172 adalah motor langkah unipolar yang memiliki dua kumparan, dimana masing-masing kumparan dilengkapi dengan center tap. Motor langkah ini berputar sebesar 1,80/langkah (atau
1 putar/langkah, atau 200
π rad/langkah) dengan frekuensi maksimum yang dapat diterima adalah 400
100
langkah/detik. Oleh karena
ω = f .α
(3.1a)
dengan ω adalah kecepatan [rad/detik] f adalah frekuensi masukan motor langkah [langkah/detik] α adalah sudut perputaran motor per langkah [rad/langkah], maka kecepatan maksimum motor langkah ini adalah
ω maks = f maks .α ω maks = 400.
π 100
= 12,56rad / det ik
(3.1b)
Gambar motor langkah STH 39D172 dapat dilihat pada Gambar 3.2.
17
Gambar 3.2 Motor langkah STH 39D172 a)tampak atas b)konfigurasi kumparan
2. Penggerak motor langkah Penggerak motor langkah yang digunakan pada sistem ini didasarkan pada rangkaian yang diberikan pada artikel ”Simple circuit controls stepper motors” oleh Noel McNamara[6]. Pada dasarnya, rangkaian penggerak ini terdiri dari rangkaian logika, penguat arus, dan penyearah arus, yang kemudian disambungkan ke motor langkah. Gambar penggerak beserta komponenkomponen yang digunakan dapat dilihat pada Gambar 3.3.
Fungsi dari rangkaian logika pada penggerak ini adalah untuk memberikan logika ”1” dan ”0” secara bergantian kepada kabel-kabel motor langkah pada setiap masukan LANGKAH. Keluaran dari rangkaian logika diberikan pada Tabel 3.1. Apabila hasil dari Tabel 3.1 tersebut disusun ulang sehingga menjadi Tabel 3.2, terlihat bahwa penggerak motor langkah ini akan menggerakkan motor dengan jenis pergerakan Gerakan langkah penuh (Bandingkan dengan Tabel 2.1).
18
Gambar 3.3 Penggerak motor langkah
Keluaran 1 2 3 4 5 6 7 8 Q1 1 1 0 0 1 1 0 0 Q1 0 0 1 1 0 0 1 1 dst Q2 0 1 1 0 0 1 1 0 Q2 1 0 0 1 1 0 0 1 Tabel 3.1 Keluaran rangkaian logika penggerak motor langkah
Keluaran Q2 A Q1 A Q2 B
1 1 1 0
2 0 1 1
3 0 0 1
4 1 0 0
Q1 0 0 1 1 B Tabel 3.2 Penyusunan ulang keluaran rangkaian logika penggerak motor langkah
19
3. Sistem Minimum Sistem minimum yang digunakan terdiri dari beberapa komponen, yaitu mikrokontroler, kristal 4,433619MHz, port In System Programmer (ISP), port serial, dan power supply regulator (12 Volt ke 5 Volt). Akan tetapi, port serial tidak digunakan pada tugas akhir ini.
Mikrokontroler yang digunakan pada tugas akhir ini adalah AVR ATMega8535. Mikrokontroler ini memiliki empat buah port, yang masing-masing terdiri dari delapan pin. Port A digunakan untuk keypad, Port C digunakan untuk LCD, Pin B.7 digunakan untuk keluaran frekuensi ke penggerak, dan Pin B.5 digunakan untuk memberikan logika ”1” atau ”0” kepada penggerak untuk memilih arah (searah jarum jam atau berlawanan arah jarum jam).
4. Keypad Keypad pada sistem ini adalah keypad 4x3. Seperti yang telah disebutkan sebelumnya, keypad dihubungkan ke Port A pada mikrokontroler. Skema keypad beserta hubungan-hubungan pinnya dapat dilihat pada Gambar 3.4.
Gambar 3.4 Skema keypad
20
5. LCD LCD yang digunakan adalah LCD 2x16, yang dihubungkan pada Port C pada mikrokontroler. Skema LCD beserta hubungan-hubungan pinnya dapat dilihat pada Gambar 3.5.
Gambar 3.5 Skema LCD
III.2 Perancangan Program
Perangkat lunak yang digunakan untuk membuat program mikrokontroler adalah Code Vision AVR C Compiler versi 1.24.0 Standard. Perangkat lunak ini sudah dilengkapi fitur untuk mengubah tata siap (setup) mikrokontroler yang dilakukan pengguna melalui jendela-jendela yang sangat akrab pengguna ke dalam bahasa C.
Program ini terdiri atas dua bagian besar, yaitu bagian main dan bagian timer_interrupt. Bagian main mengatur pilihan mode, pilihan arah, interpretasi masukan dari keypad, menampilkan keluaran ke LCD, dan penghitunganpenghitungan. Sedangkan bagian timer_interrupt terutama mengatur frekuensi yang dihasilkan oleh mikrokontroler (Pin B.7), yang kemudian akan digunakan sebagai clock oleh penggerak. Perancangan program akan ditampilkan dalam bentuk diagram alir supaya lebih mudah dipahami.
Akan tetapi, sebelum masuk ke bagian diagram alir, ada beberapa penjelasan mengenai program, terutama penghitungan-penghitungan yang dilakukan. Pertama-
21
tama, perlu diperhatikan bahwa program ini menggunakan default percepatan 3 rad/detik2 dan perlambatan 1 rad/detik2. Apabila pengguna ingin mengubah nilai percepatan dan perlambatan, ada beberapa variabel yang harus diubah pada program. Variabel-variabel tersebut akan diberikan pada akhir subbab ini.
Hal yang kedua adalah untuk semua penggunaan keypad, angka 0-9 digunakan untuk memasukkan nilai 0-9, tanda * digunakan sebagai masuk, tanda # digunakan sebagai reset. Selain itu tanda # mempunyai fungsi khusus. Apabila tanda # ditekan dua kali, maka fungsi akan kembali ke bagian awal fungsi main.
Selanjutya adalah mengenai cara menghasilkan pulsa. Pada fungsi timer_interrupt, pulsa yang dihasilkan dapat berubah-ubah kecepatannya, seperti pada Gambar 3.6.
Gambar 3.6 Contoh bentuk sinyal yang dihasilkan oleh program
Pada program ini, nilai variabel count akan bertambah setiap kali pengatur waktu mengalami luapan (overflow), yaitu pengatur waktu telah bertambah sebanyak 256 kali (dari 0 ke 255). Sedangkan pengatur waktu sendiri akan bertambah pada setiap clock yang terjadi. Sistem minimum menggunakan kristal 4,433619 MHz. Nilai ini selanjutnya akan disebut fsis. Apabila perioda clock sistem adalah Tsis, maka pertambahan satu nilai hitung membutuhkan waktu sebesar t = 256.Tsis =
256 f sis
(3.2)
22
Kembali pada Gambar 3.6 dan mengacu pada persamaan (2.1), nilai tunda pencacah adalah
δt = c.t = c.
256 f sis
(3.3)
Apabila persamaan (3.3) dibandingkan dengan persamaan awal, yaitu persamaan (2.1), terdapat perbedaan yaitu adanya angka 256 di bagian pembilang. Hal ini terjadi karena perbedaan cara menghasilkan pulsa. Pada persamaan (2.1), pulsa dihasilkan langsung sesuai dengan nilai pencacah yang berubah setiap clock. Berbeda dengan cara menghasilkan pulsa pada program ini yang telah dijelaskan sebelumnya.
Dari persamaan (3.3), dapat diperoleh frekuensi pulsa sebagai berikut
f =
f 1 = sis δt c.256
(3.4a)
Pada program, c direpresentasikan dengan variabel count_baru, sehingga persamaan (3.4) berubah menjadi f =
f sis 1 = δt count _ baru.256
(3.4b)
Kemudian, perhatikan kembali persamaan (2.8). Oleh karena adanya perbedaan yang terjadi pada persamaan (2.1) dan (3.3), maka persamaan (2.8) juga harus disesuaikan menjadi c0 = 0,676. c0 =
π f sis 2.α 4,433619 M 2. 100 . = 0,676. . 256 ω& 256 ω&
2934,64 ω&
(3.5)
Perhatikan bahwa nilai co berbanding terbalik dengan akar percepatan. Persamaan yang mengandung akar sulit untuk dihitung oleh mikrokontroler, sehingga nilai co
23
dihitung secara offline. Seperti telah disebutkan sebelumnya, program ini menggunakan percepatan 3 rad/detik2, sehingga nilai co pada program adalah c0 =
2934,64 2934,64 = = 1694 ω& 3
(3.6)
Selain itu, hal lain yang dapat dihitung secara offline adalah nmaks pada persamaan (2.14). Oleh karena nilai percepatan telah ditentukan untuk program ini, maka semua variabel pada persamaan (2.14) telah diketahui nilainya, sehingga nilai nmaks adalah
nmaks =
ω2 12,5 2 2486,8 = = = 828,9 2.α .ω& 1 2.π ω& .ω& 100
(3.7)
Nilai nmaks harus merupakan bilangan bulat. Pembulatan yang dipilih adalah pembulatan ke bawah, karena apabila pembulatan dilakukan ke atas, kecepatan maksimum akan terlewati. Pada program, nmaks direpresentasikan dengan variabel max_s_lim. Maka max_s_lim untuk kecepatan 3 rad/detik2 adalah 828. Selanjutnya, akan dibahas lebih detil fungsi-fungsi pada program beserta penjelasan beberapa bagian diagram alir. 1. Fungsi main Fungsi main ini berisi program utama, yaitu pemilihan mode melalui keypad. Selain itu, semua variabel diinisialisasi pada fungsi ini. Diagram alir fungsi main dapat dilihat pada Gambar 3.7. Inisialisasi variabel-variabel Pada program ini, semua variabel merupakan variabel global yang diletakkan pada fungsi main. Variabel-variabel tersebut adalah :
24
Gambar 3.7 Diagram alir fungsi main
25
char : show[16] int
: e=100, temp, mode, arah, vel, vel_lama, count_baru, count, posisi, step, i, max_s_lim = 828, accel_lim, accel=1, decel=0, pengurang, rest, decel_val, decel_start, accel_count, out.
Batas masukan keypad Keypad dibatasi hanya sampai angka 2, sehingga apabila pengguna memasukkan angka selain 1 dan 2, program akan meminta pengguna memasukan pilihannya kembali. 2. Fungsi mode1 Fungsi mode1 adalah bagian dari program yang menjalankan pengaturan kecepatan. Pada mode ini, kecepatan dimasukkan oleh pengguna. Kemudian, motor langkah akan berputar sesuai dengan kecepatan yang diinginkan pengguna. Pada saat motor langkah berputar, pengguna dapat memberikan kecepatan yang lain, dan motor langkah akan mengubah kecepatannya. Diagram alir dari mode ini dapat dilihat pada Gambar 3.8. Di bawah ini adalah beberapa penjelasan yang dibutuhkan. Reset variabel-variabel Beberapa variabel harus direset pada awal fungsi ini, untuk mencegah terjadinya nilai yang masih tersimpan pada penggunaan sebelumnya. Proses ini terutama berguna setelah program dijalankan lebih dari satu kali. Variabel-variabel yang direset pada awal fungsi mode1 adalah count_baru, e, temp, arah, out, vel, dan vel_lama. Pilihan vel=0 Apabila vel tidak sama dengan nol, maka nilai count_baru adalah count _ baru = 544 * 10 / vel
(3.8)
26
Gambar 3.8 Diagram alir fungsi mode1 27
Persamaan di atas diperoleh dengan cara sebagai berikut. Perhatikan persamaan (3.1a) dan persamaan (3.4b). Apabila persamaan (3.4b) disubstitusikan ke persamaan (3.1a), maka
ω = f .α ω=
f sis .α count _ baru.256
π
(4,433619M ). 1 100 ω= . count _ baru 256 544,087 ω= count _ baru
(3.9)
Pada program, ω direpresentasikan dengan variabel vel, yang merupakan integer. Hal ini menyebabkan kecepatan yang dapat diberikan oleh program hanya sampai ketelitian 1. Oleh karena itulah, untuk meningkatkan ketelitian sampai dengan 0,1, maka nilai kecepatan pada program dikalikan dengan angka 10. Jadi, dengan nilai count_baru tertentu, program membaca nilai kecepatan 10 kali lebih besar daripada kenyataan, sehingga persamaan (3.9) menjadi
ω=
544,087.10 count _ baru
(3.10)
Atau dengan kata lain, nilai count_baru adalah seperti yang tertulis pada persamaan (3.8) dengan konstanta 544,087 sudah dibulatkan. Perhatikan bahwa nilai kecepatan berbanding terbalik dengan nilai count_baru. Untuk menghasilkan motor yang diam (kecepatan = 0), seharusnya diperlukan nilai count_baru sebesar tak hingga. Akan tetapi, tentu saja nilai tersebut tidak bisa disediakan oleh count_baru yang berupa integer dengan rentang nilai yang terbatas. Oleh karena itulah, supaya dapat menghasilkan kecepatan nol, program dimodifikasi. Caranya adalah apabila vel sama dengan nol, nilai count_baru akan menjadi nol. Nilai count_baru akan digunakan pada fungsi timer_interrupt, dimana pada fungsi tersebut, perlakuan hanya terjadi untuk nilai count_baru yang tidak sama dengan nol. count_baru yang bernilai 0 tidak akan mendapat perlakuan apapun, sehingga motor akan berhenti.
28
Pilihan temp>125 Pilihan ini berguna untuk membatasi nilai kecepatan, supaya tidak melebihi kecepatan maksimum. Melalui persamaan (3.1), telah dihitung kecepatan maksimum motor langkah adalah 12,5 rad/detik. Dan melalui persamaan (3.10) telah diketahui bahwa sistem membaca kecepatan sepuluh kali lebih besar daripada kecepatan sebenarnya. Oleh karena itulah, nilai kecepatan dibatasi sampai angka 125. Cetak LCD ”k” dan ”v” Ada dua variabel yang ditampilkan pada LCD, yaitu masukan dari keypad (k) dan kecepatan putar motor langkah (v). Nilai v akan akan menjadi sama dengan k setelah pengguna menekan * (masuk) pada keypad. Pengguna harus memasukkan nilai kecepatan yang terbaca oleh sistem, yaitu nilai kecepatan yang sepuluh kali lebih besar daripada nilai sebenarnya. Nilai ini yang dipilih supaya pengguna dapat memasukkan kecepatan sampai nilai 0,1. Tentu saja motor tetap berputar pada kecepatan sebenarnya, karena nilai kecepatan telah dinormalkan kembali ke nilai sebenarnya oleh persamaan (3.10). 3. Fungsi mode2 Fungsi mode2 adalah fungsi yang melakukan pengaturan posisi. Pada pengaturan posisi ini, motor langkah akan berputar sampai pada posisi tertentu, yaitu posisi yang dimasukkan oleh pengguna. Selain itu, sebenarnya pada program ini juga terdapat pengaturan kecepatan, karena motor akan berputar mencapai posisi akhir dengan kecepatan yang berubah-ubah, sesuai dengan profil kecepatan yang telah dijelaskan pada Bab II. Gambar 3.9 menunjukkan diagram alir dari fungsi mode2. accel=1; decel=0; Reset variabel lain=0 Sama seperti mode1, fungsi dari proses ini adalah untuk memastikan semua nilai dari penggunaan sebelumnya tidak tersimpan lagi. Akan tetapi, khusus untuk fungsi ini, ada variabel khusus yang harus diset ulang, yaitu accel dengan nilai satu dan decel dengan nilai 0. Dua variabel ini harus diset seperti itu untuk memastikan motor akan memulai perputaran dari kecepatan nol, yang kemudian 29
dipercepat. Variabel-variabel lain yang direset menjadi nol adalah e, temp, arah, out, vel, dan posisi.
Gambar 3.9 Diagram alir fungsi mode2
30
Tombol * ditekan Pada saat tombol * ditekan oleh pengguna, maka nilai count_baru akan berubah dari nol menjadi 1694, sesuai dengan persamaan (3.6). Selanjutnya, program akan menghitung jumlah step yang harus dilakukan oleh motor langkah, yaitu step = posisi / α = posisi / 1,8
(3.11)
Nilai step ini kemudian digunakan oleh fungsi timer_interrupt untuk melakukan penghitungan-penghitungan lainnya. Pilihan temp>32767 Pilihan ini berfungsi untuk membatasi pengguna supaya tidak memasukkan nilai posisi lebih besar daripada 32767, karena apabila nilai yang dimasukkan lebih besar, akan terjadi luapan. Hal ini menyebabkan sistem salah membaca nilai posisi, sehingga program menjadi kacau dan tidak sesuai hasil yang seharusnya. Cetak LCD ”k”, ”p”, ”v”, dan ”s” Pada mode ini, terdapat empat variabel yang ditampilkan, yaitu masukan dari keypad (k), posisi (p), kecepatan (v), dan langkah aktual motor langkah (s). Sama seperti mode1, k menampilkan masukan dari keypad yang akan tersalin ke p saat pengguna menekan *. Kecepatan yang ditampilkan pada LCD juga merupakan kecepatan yang terbaca oleh sistem sesuai persamaan (3.10), dengan alasan yang sama seperti sebelumnya. Dan s menampilkan jumlah langkah yang telah dilakukan oleh motor langkah. s akan berhenti pada nilai yang sama dengan variabel step. 4
Fungsi pilih_arah Setelah pengguna melakukan pemilihan mode, fungsi pilih_arah akan meminta pengguna untuk memilih arah, apakah searah jarum jam (clockwise) atau berlawanan arah jarum jam (counterclockwise). Diagram alir fungsi ini ditunjukkan oleh Gambar 3.10.
31
Gambar 3.10 Diagram alir fungsi pilih_arah 32
Pada fungsi ini, nilai keypad dibatasi sampai angka 2 saja. Jadi, apabila pengguna memasukkan angka selain 1 dan 2, program akan meminta pengguna untuk kembali memasukkan pilihan.
5. Fungsi timer_interrupt Fungsi inilah yang akan menghasilkan pulsa-pulsa, yang kemudian diberikan kepada penggerak motor langkah, sehingga motor langkah dapat berputar. Diagram alir fungsi timer_interrupt diberikan pada Gambar 3.11.
Pilihan mode Pilihan ini dibuat karena perlakuan untuk mode 1 sangat berbeda dengan perlakuan untuk mode 2. Pada mode 1, fungsi ini mengambil nilai count_baru yang dihitung pada fungsi mode1 kemudian membuat pulsa dengan frekuensi sesuai dengan persamaan (3.4b). Sedangkan pada mode 2, yang terjadi adalah kebalikannya. count_baru dihitung pada fungsi timer_interrupt sendiri, yang tetap akan dibuat pulsa dengan frekuensi sesuai dengan persamaan (3.4b). Bedanya adalah bahwa fungsi inilah yang mengirimkan nilai count_baru ke fungsi lain, yaitu mode2, yang akan menghitung nilai kecepatan berdasarkan persamaan (3.10) dan menampilkannya ke LCD.
accel_lim=step/4 Persamaan di atas didasarkan pada persamaan (2.15). Dengan nilai persamaan 3 rad/detik2 dan perlambatan 1 rad/detik2, maka persamaan (2.15) menjadi
n1 =
ntot .ω& 2 n .1 n = tot = tot ω& 1 + ω& 2 3 + 1 4
(3.12)
Pada program ini, n1 dan ntot secara berurutan direpresentasikan dengan accel_lim dan step, sehingga persamaan di atas menjadi sesuai dengan yang ada pada program.
33
Pilihan accel_lim<=max_s_lim Pilihan ini ditujukan untuk memilih profil, sesuai dengan yang telah dijelaskan pada subbab II.2.3. Hanya saja, pada program ini, ntot diganti dengan max_s_lim, dan n1 diganti dengan accel_lim.
Gambar 3.11 Diagram alir fungsi timer_interrupt 34
6
Fungsi profil1 Seperti telah disebutkan sebelumnya, mode 2 (pengaturan posisi) juga akan melakukan pengaturan kecepatan yang akan mengikuti profil kecepatan. Pada subbab II.2.3 telah dijelaskan bahwa terdapat dua profil kecepatan. Fungsi ini melakukan profil yang pertama. Gambar 3.12 di bawah ini menunjukkan diagram alir fungsi profil1.
Gambar 3.12 Diagram alir fungsi profil1 35
decel_val=-(step-accel_lim) Persamaan di atas sebenarnya sama dengan persamaan (2.16). Akan tetapi terdapat beberapa perubahan, yaitu n2, ntot, dan n1 secara berurutan diganti dengan decel_val, step, dan accel_lim. Selain itu, terdapat tanda negatif. Hal ini terjadi karena ada perbedaan kenaikan accel_lim saat percepatan dan perlambatan. Saat percepatan, accel_lim dimulai dari nol, kemudian naik sampai percepatan berhenti. Akan tetapi, saat perlambatan, accel_lim dimulai dari sebuah nilai negatif, kemudian naik dan berhenti saat bernilai 0. Oleh karena itulah, nilai decel_val dibuat menjadi negatif. Dengan cara ini, persamaan untuk menghitung count_baru pada saat percepatan dan perlambatan menjadi sama.
Penghitungan count_baru Penghitungan count_baru didasarkan pada persamaan (2.7). Akan tetapi, count_baru merupakan sebuah variabel integer, yang tidak memungkinkan adanya angka desimal, sehingga penghitungan menjadi tidak akurat. Untuk mengatasi masalah ini, dilakukan sedikit modifikasi, yaitu dengan cara menyimpan sisa desimal yang tidak tertampung pada angka integer (yaitu angka persepuluh, perseratus, dan seterusnya), kemudian mengikutsertakan sisa tersebut ke penghitungan selanjutnya.
Variabel pengurang adalah suku kedua dari persamaan (2.7), akan tetapi ditambahkan variabel rest, sehingga sisa dari penghitungan sebelumnya dapat diikutsertakan.
Variabel rest adalah cara menghitung sisa dengan konsep modulo antara bagian pembilang dan penyebut dari variabel pengurang, sehingga sisa yang dihasilkan masih merupakan bilangan integer.
7. Fungsi profil2 Fungsi profil2 adalah fungsi yang bekerja apabila profil kecepatan kedua yang akan dilakukan oleh program. Gambar 3.13 menunjukkan diagram alir fungsi ini.
36
Gambar 3.13 Diagram alir fungsi profil2
decel_val=-max_s_lim*3 Persamaan ini didasarkan pada persamaan (2.17), dengan mengubah n2 menjadi decel_val dan nmaks menjadi max_s_lim, dan memasukkan nilai percepatan 3 rad/detik2 dan perlambatan 1 rad/detik2. Nilai negatif pada persamaan di atas 37
diberikan dengan alasan yang sama dengan pemberian nilai negatif pada decel_val di fungsi profil1.
decel_start=step+decel_val Pada profil1, perlambatan dimulai tepat setelah motor langkah mencapai nilai n1, sehingga persamaan untuk menentukan mulainya perlambatan dan jumlah langkah yang digunakan dalam perlambatan adalah sama, yaitu decel_val. Akan tetapi, pada profil2, ada jarak antara nilai n1 dengan dimulainya perlambatan, sehingga untuk menentukan dimulainya perlambatan diperlukan persamaan berbeda dengan jumlah langkah yang digunakan dalam perlambatan (decel_val). Untuk menentukan dimulainya perlambatan, dibuat variabel yang berbeda dengan decel_val, yaitu decel_start. Dari Gambar 2.8b, dapat ditentukan bahwa decel _ start = ntot − n 2
(3.13a)
dengan mengubah ntot dan n2 menjadi step dan decel_val, serta mengingat bahwa nilai n2 adalah positif sedangkan nilai decel_val adalah negatif, maka persamaan (3.12a) menjadi decel _ start = step + decel _ val
(3.13b)
Seperti yang telah disebutkan pada awal subbab ini, apabila nilai percepatan dan perlambatan berubah, ada beberapa variabel yang harus diubah secara manual melalui program. Variabel-variabel tersebut beserta persamaannya adalah : 1. co Apabila percepatan berubah, maka nilai co harus dihitung kembali sesuai dengan persamaan (3.5) 2. max_s_lim Perubahan percepatan menyebabkan max_s_lim harus dihitung kembali berdasarkan persamaan (3.7) yaitu ntot =
2486,8 ω&
(3.14)
dimana ntot adalah max_s_lim dan ω& adalah percepatan yang diinginkan dalam rad/detik2.
38
3. accel_lim Oleh karena nilai ini bergantung pada percepatan dan perlambatan, maka adanya perubahan pada salah satu atau kedua nilai tersebut menyebabkan accel_lim harus dihitung kembali dengan persamaan (2.15), dengan n1 adalah accel_lim, ntot adalah step, ω& 1 adalah nilai percepatan, dan ω& 2 adalah nilai perlambatan. 4. decel_val untuk profil 2 Nilai decel_val untuk profil 2 akan berubah apabila salah satu dari percepatan dan perlambatan akan mengubah persamaan decel_val. Penghitungan dapat dilakukan dengan persamaan (2.17), dengan n2 adalah decel_val, nmaks adalah maks_s_lim, ω& 1 adalah nilai percepatan, dan ω& 2 adalah nilai perlambatan.
39