Upload
duongtruc
View
221
Download
1
Embed Size (px)
Citation preview
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 2001 putar/langkah, atau
100π rad/langkah) dengan frekuensi maksimum yang dapat diterima adalah 400
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
αω .maksmaks f=
ikradmaks det/56,12100
.400 ==πω (3.1b)
Gambar motor langkah STH 39D172 dapat dilihat pada Gambar 3.2.
17
18
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 komponen-
komponen 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).
19
Gambar 3.3 Penggerak motor langkah
Keluaran 1 2 3 4 5 6 7 81Q 1 1 0 0 1 1 0 0
1Q 0 0 1 1 0 0 1 1
2Q 0 1 1 0 0 1 1 0
2Q 1 0 0 1 1 0 0 1
dst
Tabel 3.1 Keluaran rangkaian logika penggerak motor langkah
Keluaran 1 2 3 4A 2Q 1 0 0 1A 1Q 1 1 0 0B 2Q 0 1 1 0B 1Q 0 0 1 1
Tabel 3.2 Penyusunan ulang keluaran rangkaian logika penggerak motor langkah
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 penghitungan-
penghitungan. 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
sissis f
Tt 256.256 == (3.2)
22
Kembali pada Gambar 3.6 dan mengacu pada persamaan (2.1), nilai tunda pencacah
adalah
sisfctct 256.. ==δ (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
256.1
cf
tf sis==
δ (3.4a)
Pada program, c direpresentasikan dengan variabel count_baru, sehingga persamaan
(3.4) berubah menjadi
256._1
barucountf
tf sis==
δ (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
ω
π
ωα
&&100.2
.256
433619,4.676,0.2.256
.676,00Mf
c sis ==
ω&64,2934
0 =c (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
16943
64,293464,29340 ===
ω&c (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
9,8288,2486.100.2
5,12..2
2
1
2
====ωωπωα
ω&&&maksn (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
velbarucount /10*544_ = (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
256100).433619,4(
._1
.256._
.
πω
αω
αω
M
barucount
barucountf
f
sis
=
=
=
barucount _087,544
=ω (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
barucount _10.087,544
=ω (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
8,1// posisiposisistep == α (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
4131..
21
21
tottottot nnnn =
+=
+=
ωωω&&
& (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
2_ nnstartdecel tot −= (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
valdecelstepstartdecel __ += (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
ω&8,2486
=totn (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