27 BAB 3 PERANCANGAN SISTEM 3.1 Perancangan Perangkat

advertisement
27
BAB 3
PERANCANGAN SISTEM
3.1
Perancangan Perangkat Keras
Perancangan sistem pengendalian posisi linier motor DC dengan algoritma
PID berbasiskan mikrokontroler ini mempunyai main modul untuk pengendalian
motor DC dan modul mekanik.
Gambar 3.1 Diagram Blok Sistem
Perancangan sistem ini merupakan sistem pengendali single input dan single
output dimana nilai set point sebagai inputan dan putaran motor sebagai outputnya.
Perancangan awal dari sistem yang akan dibangun ini adalah algoritma PID yang
dipakai sepenuhnya berdasarkan implementasi dari sebuah algoritma matematika
yang dituangkan kedalam bahasa pemograman mikrokontroler. Mikrokontroller
merupakan pusat pemrosesan data.
Dalam modul driver akan menerima sinyal input yang dikirim dari
mikrokontroler berupa clock dan arah pergerakan. Modul driver ini akan mengirim
sinyal ke motor DC yang akan menggerakkan axis. Dan encoder dari motor DC
menjadi feedback untuk mikrokontroller dalam pengaturan perputaran motor DC dan
28
akan dilihat output set point akan sama dengan nilai set point inputan dengan
pengukuran secara manual. Ouput pergerakan benda didalam modul mekanik dari
titik awal sampai titik akhir atau sesuai dengan jarak inputan.
3.1.1
Perancangan Power Supply
Power supply diperlukan untuk memenuhi konsumsi daya listrik untuk modul
kontroller motor DC. Power supply yang diperlukan mempunyai tegangan +25 volt, 25 volt, +12 volt, -12 volt, +5 volt.
3.1.2 Modul Kontroller Motor DC
Untuk modul kontroller DC diambil dari dari internet, yang dikenal dengan
nama modul UHU Kontroller. Modul ini digunakan karena sesuai dengan kriteria
yang akan digunakan pada sistem ini yaitu:
- Kontroller dengan Attiny 2313
- Operating frequency: 24 MHz
- Kecepatan : mencapai 250.000 steps/s (4-fold encoder steps)
- Standard output :
Tegangan = 100 volts
Arus = 20 ampere
-@70 degrees
- Communication interface: RS232 34.800, 8 Bit, 1 Stop, No Parity
- Inputs PC: step/dir
- encoder : A/B 90°, 4-fold
- emergency stop: Active Low
- Outputs: Ready (LED)
29
- PWM (10 Bit, symmetric)
- power enable error (LED)
- Power stage: - MOS-FET technology
- adjustable maximum current
option 1: IRF540 max 10A/60V
option 2: IRFP260N max.30A/150V
Kontroller ini dapat bekerja dengan motor DC yang memiliki encoder dengan
resolusi tinggi. Untuk masalah daya, kontroller ini dapat di sesuaikan dalam
mengontrol motor DC dengan daya sampai 1 kW. Kontroller ini juga mempunyai
pembatas arus(current limiter) sehingga arus maksimum dapat
dibatasi yang
mengalir pada motor DC, dengan begitu motor DC akan terlindung dari kelebihan
arus. Jika terjadi kesalahan, misalnya ketika waktu motor DC bergerak, maka akan
ada feedback ke sistem dan sistem akan berhenti. Dengan ini sistem tidak rusak atau
tetap stabil dan khususnya motor DC tidak dipaksakan dan tidak timbul kerusakan.
Dalam kontroller ini algoritma PID dapat digunakan.
Dalam modul kontroller ini terdapat bagian-bagian, yang setiap bagian
mempunyai fungsi yaitu :
Blok Regulator
Komputer
Blok Konverter
Serial
Blok Kontroller
Blok H-Bridge
Blok Pembagi
Arus
Gambar 3.2 Diagram Blok Modul Kontroller Motor DC
Motor DC
30
a.
Blok konverter serial
Gambar 3.3 Skematik Blok Konverter Serial
Blok ini terdapat IC MAX232 yang berguna sebagai level konverter untuk
melakukan konversi dua arah antara serial port dari PC (RS232) dan serial port dari
mikrokontroler.
Komunikasi serial yang digunakan memakai IC MAX232, IC 232 berfungsi
sebagai konverter tegangan dari PC ke microcontroller, yaitu dari logic PC kedalam
logic TTL 5V. Rangkaian dari IC 232 menggunakan konfigurasi cross null modem,
dimana bagian TX dari microcontroller akan dihubungkan dengan RX dari PC, dan
RX dari microcontroller akan dihubungkan dengan TX dari PC.
Rangkaian komunikasi serial digunakan untuk mengirim data secara satu per
satu dengan menggunakan satu jalur kabel data, sehingga hanya menggunakan 2 kabel
data yaitu kabel data yang digunakan untuk pengiriman data atau disebut juga
transmit (TX) dan kabel data yang digunakan untuk penerimaan data atau disebut juga
receive (RX). Kelebihan dari komunikasi serial adalah pengiriman dan penerimaan
data dapat dilakukan untuk jarak yang cukup jauh, sedangkan kekurangan dari
komunikasi serial adalah kecepatan lambat. Komunikasi serial digunakan untuk
31
melakukan pengiriman dan penerimaan data dari mikrokontroller AVR ATtiny 2313
ke PC atau sebaliknya
b.
Blok Kontroller
Blok Konverte Serial
Blok H bridge
Gambar 3.4 Skematik Blok Kontroller
Blok Pembatas Arus
32
Mikrokontroller
Attiny 2313 digunakan sebagai kontroller digital untuk
mengendalikan motor DC dengan waktu yang cepat dan dengan keslahan yang sangat
kecil. Algoritma PID akan diprogram di AVR ini dan algoritma ini juga yang
mengatur PWM yang berguna untuk mengatur perputaran motor. Kontroller ini
berbentuk closed loop sistem dengan adanya feedback kecepatan dan posisi oleh
encoder motor sampai mencapai posisi yang diinginkan atau set point yang diberikan
oleh user. Di blok ini terdapat IC flip-flop yang berguna untuk mengaktifkan IC
halfbridge IR 2184. Jadi IC ini yang menentukan salah satu IC 2184 yang harus aktif.
Dengan menggunakan metode PID, hasil dari perhitungan dari PID harus
dikonversikan ke PWM. Sinyal kontrol dikalibrasikan ke sebuah nilai variabel yang
mempunyai rentang misalnya 0-255. Sebelum untuk mendapat nilai PWM maka
dilakukan perhitungan dengan rumus PID, lalu hasil dari perhitungan tersebut yang
merupakan sinyal kontrol dimasukkan ke dalam rumus untuk mencari nilai PWM
sebagai berikut :
PWM = nilai maksimum – sinyal kontrol
Jadi ketika nilai kontrol yang didapat sama dengan nilai maksimum (255),
maka PWM bernilai 0, yang berarti perputaran motor DC dalam kecepatan penuh.
Jadi untuk nilai PWM tergantung dari hasil sinyal kontrol yang dihasilkan. Nilai
maksimum dapat diubah sesuai dengan keinginan. Sinyal kontrol itu sendiri adalah
keluaran dari rumus PID atau dapat disebut merupakan nilai yang mengontrol PWM.
33
c.
Blok H-Bridge
Blok Kontroller
Blok Pembatas Arus
Blok Kontroller
Gambar 3.5 Blok H-bridge
34
Blok ini berfungsi sebagai penggerak (driver) untuk motor DC. Terdiri dari dua IC
halfbridge (IR2184) yang berguna sebagai trigger mosfet (pemicu mosfet). Empat
buah mosfet (IRFP260) yang terdapat pada blok ini berguna sebagai saklar aliran
arus yang menuju motor DC. Dalam blok ini terdapat resistor dengan daya 5 watt.
Resistor juga berguna menentukan tegangan di blok ini,
sesuai dengan
arus
maksimum motor DC.
IC IR2184 untuk memilih mosfet mana yang harus aktif pada saat putaran
motor DC searah jarum jam (CW) atau berlawanan jarum jam (CCW). IC IR2184
yang atas mengtrigger mosfet T1 dan T4, sedangkan IC IR2184 yang bawah
mengtrigger mosfet T2 dan T3. Mosfet yang harus aktif antara T1 dan T4 atau T2 dan
T3. Jika yang aktif T1 dan T3 atau T2 dan T4 yang aktif maka sistem akan rusak.
H-Bridge adalah gabungan antara sirkuit digital dan mekanik. Biasanya HBridges digunakan untuk mengkendalikan arah putaran motor DC. Pemakaian
MOSFET ini lebih baik daripada transistor. Dalam blok dipakai Mosfet IRFP260N
yang mempunyai arus maksimal 30A dan tegangan maksimal 150V. MOSFET lebih
efisien dan mudah untuk mengkalkulasi matematikanya. Dan dalam pemakaian
PWM, MOSFET lebih optimal. Jadi untuk mengoperasikannya dengan menyulut
gerbang gate dengan tegangan (bisa dari mikrokontroller).
35
d.
Blok pembatas arus (current limiter)
Gambar 3.6 Skematik Pembatas Arus
Blok ini terdapat OP-AMP (TL082) yang berguna sebagai komparator untuk
membandingkan arus yang mengalir di motor DC dengan tegangan yang diset di
trimpot. Blok ini bekerja setelah IC halfbridge (IR2184) di blok H-bridge telah mengtrigger mosfet yang ada untuk menjalankan motor DC. Oleh karena itu, blok ini
berguna untuk membatasi arus maksimum yang boleh mengalir pada motor DC,
dengan begitu motor DC akan terlindung dari kelebihan arus. Jika motor DC
kelebihan arus, maka IC op-amp yang ada di blok akan memberi sinyal kepada IC
halbridge untuk berhenti meng-trigger mosfet, sehingga motor DC berhenti berputar.
Ini yang dapat menyebabkan sistem tetap stabil dan terhindar dari kerusakan sistem.
36
e.
Blok Regulator
Gambar 3.7 Skematik Blok Regulator
Blok ini berguna untuk mengkonversi dari tegangan 12 volt menjadi 5 volt.
Tegangan 5 volt ini akan digunakan sebagai tegangan supply (Vcc) untuk IC
halfbridge (IR2184) yang memicu mosfet. Tegangan yang dikonversi ini juga menjadi
tegangan suply buat mikrokontroller dan juga IC TTL yang ada.
3.1.3
Perancangan Sistem Mekanik
Sistem mekanik dirancang untuk pengimplementasian posisi linier dari motor
DC. Sistem mekanik ini terbuat dari bahan besi. Motor DC dihubungkan ke katrol
yang akan memutar belt yang terbuat dari karet. Skema perancangan sistem mekanik
dapat dilihat pada gambar :
37
Gambar 3.8 Perancangan Sistem Mekanik
Komponen-komponen mekanik yang diperlukan dalam perancangan sistem
mekanik ini terdiri dari :
♦ Sebuah besi yang dibentuk dengan berukuran 160 mm x 1200 mm sebagai
landasan keseluruhan sistem mekanik,
♦ 1 buah karet yang berbentuk lingkaran yang dipasang di katrol.
♦ 2 buah katrol yang diletakkan dimasing-masing pelat dan dari satu katrol
ke katrol lainnya berjarak 1 meter, yang diukur dari titik tengah.
♦ 2 buah lempengan pelat besi sebagai tempat dari katrol dan salah satunya
terhubung ke motor DC.
♦ 1 buah
BB (Ball Bearing) di salah satu pelat yang berfungsi untuk
memperlancar perputaran katrol.
38
3.2
Perancangan Perangkat Lunak
Perancangan perangkat lunak meliputi perancangan file berekstensi .prj
menggunakan bahasa pemrograman CodeVision AVR yang bertujuan agar sistem
dapat menggerakan motor DC bergerak. Algoritma PID akan diprogram di dalam
mikrokontroller. Inputan yang berupa nilai jarak, Kp, Ki, Kd, dan set point
dimasukkan melalui komputer, kemudian dikirim melalui usb to serial yang
terhubung ke modul kontroller.
Start
konfigurasi timer0 dan
timer1 serial port parallel
terima var jarak,
set point,kp,ki,kd
dan terima
periode sampling
Rutin PID
terima perintah untuk
berhenti
Tidak
Gambar 3.9 Diagram Alir Program Utama
Ya
39
Program akan mengkonfigurasi Timer0 untuk penghitungan PWM dan Timer1
sebagai pemprosesan sampling. Timer1 berfungsi sebagai pewaktu periode sampling
T sehingga ketika Timer1 overflow, maka akan terjadi interupsi dan rutin perhitungan
sinyal kontrol dengan metode PID akan dipanggil. Pada listing program rutin ini
dinamakan rutin PID dan akan dijelaskan secara tersendiri.
Periode sampling T merupakan selang waktu dari diaktifkannya Timer1 (start
Timer1) sampai Timer1 overflow. Periode sampling yaitu untuk mengukur berapa
banyak pulse yg berputar. Setelah nilai set point, Kp, Ki , dan Kd serta periode
sampling dimasukkan, lalu Timer1 diisi dengan nilai awal, Timer0 dan Timer1
diaktifkan sehingga Timer1 mulai menghitung dan Timer0 mulai mencacah pulsa
keluaran rangkaian speed encoder. Ketika Timer1 overflow, maka rutin PID dipanggil
dan motor akan mulai berputar di akhir rutin PID. Hal ini akan dijelaskan lebih lanjut
pada rutin PID. Jika terjadi kesalahan user dapat memberhentikan motor dan akan
kembali ke awal.
3.2.1
Perancangan Algoritma PID
Dalam merancang PID dengan menggunakan mikrokontroller, langkah awal
yang dilakukan adalah menjabarkan rumus PID yang akan digunakan, yang masih
berupa PID analog sebagai berikut :
de(t)⎤
⎡
u(t) = Kp ⎢e(t) + Ki∫ e(t)dt + Kd
dt ⎥⎦ ……………..........Persamaan (3.1)
⎣
(Application Note AN116, Tim IE )
40
sehingga dari persamaan PID analog tersebut diubah menjadi bentuk digital sebagai
berikut :
e(n) − e(n − 1) ⎤
⎡
u(n)= Kp ⎢e(n)+ Ki∑e(n)T + Kd
⎥⎦ ..............Persamaan(3.2)
T
⎣
(Application Note AN116, Tim IE )
dimana :
u(n) =
Sinyal kontrol (output dari PID)
Kp =
Konstanta penguatan propotional
Ki =
Konstanta penguatan integral
Kd =
Konstanta penguatan derivative
e(n) =
Error posisi sekarang
e(n - 1) =
T=
Error posisi sebelum e(n)
Waktu sampling
Dalam pemrograman akan dibuat dalam mikrokontroller terdapat dua proses
utama yaitu :
-
Kp, Ki, Kd, set point
-
PID arithmatic processing
Kp, Kd, Ki adalah konstanta yang diberikan pada algoritma PID sesuai
karakteristik motor yang digunakan dimana nilainya mempengaruhi keoptimalan dari
algoritma PID itu sendiri dalam mengontrol posisi pada setiap motor DC. Input Kp,
Ki, Kd yang akan dimasukkan ke dalam algoritma
PID haruslah berdasarkan
karakteristik motor yang dipakai, akan tetapi karena pada motor DC yang digunakan
tidak diketahui nilai-nilai karakteristiknya, maka nilai konstanta tersebut akan dicoba-
41
coba dengan memasukkan nilai pemisalan, dan dilakukan berulang-ulang sehingga
output respon dari motor DC untuk menuju ke suatu posisi yang ditentukan dapat
mendekati pada respon yang baik.
Set point merupakan harga atau keadaan tertentu yang ingin dicapai. Nilai set
point berupa satuan centimeter. Karena dalam sistem ini encoder sebagai feedback
dari sistem.
Dalam PID aritmathic proccesing, akan dilakukan perhitungan untuk
mendapatkan sinyal kontrol. Proses ini berulang terus sampai sinyal error sama
dengan 0 dan sesuai dengan set point yang diinginkan. Setelah nilai Kp, KI, Kd
dimasukkan, maka akan terjadi proses perhitungan dengan menggunakan rumus PID
digital.
Rutin PID akan dikerjakan setiap kali Timer1 overflow. Laju overflow Timer1
inilah yang merupakan periode sampling T sistem kontrol. Selama Timer1 belum
overflow, interupsi tidak akan terjadi dan rutin PID tidak akan dikerjakan. Timer 0
merupakan keluaran PWM.
Error diperoleh dengan set point dikurang dengan posisi aktual. Pada listing
program nilai error disimpan dalam variabel error. Yang dimaksud suku integral
adalah suku KiΣe[n]T. Pada persamaan ini periode sampling T dapat dikeluarkan dari
notasi sigma sebab nilainya konstan, sehingga suku integral (pada listing program
disimpan dalam variabel intgrl_term) menjadi :
intgrl_term = Ki T ∑ e(n) ........................................................Persamaan (3.3)
Pada program nilai Ki langsung dikalikan dengan periode sampling T segera
setelah user memasukkan nilai Ki. Akumulasi error Σe[n] disimpan dalam variabel
acc_error dan dihitung sebagai berikut :
acc_error = acc_error + error ..................................................Persamaan (3.4)
42
Pada akhirnya suku integral menjadi :
intgrl_term = Ki x acc_error ....................................................Persamaan (3.5)
dimana Ki = Ki x T.
Yang dimaksud suku diferensial adalah suku
Kd
e(n) − e(n −1)
.............................................................................Persamaan (3.6)
T
Pada program nilai Kd langsung dibagi dengan periode sampling T segera
setelah user memasukkan nilai Kd. e[n] adalah nilai error saat ini dan e[n-1] adalah
nilai error sebelumnya. Pada program e[n-1] disimpan dalam variabel prev_error ,
sehingga suku diferensial (disimpan dalam variabel derv_term) menjadi :
derv_term = Kd x (error - prev_error ) ..........................Persamaan (3.7)
dimana Kd = Kd / T.
Nilai error, suku integral dan suku diferensial dijumlahkan membentuk suku
yang berada dalam tanda kurung pada persamaan
e(n) − e(n −1) ⎤
⎡
u(n)= Kp ⎢e(n)+ Ki∑e(n)T + Kd
⎥⎦ ...........Persamaan (3.8)
T
⎣
dan disimpan dalam variabel sum.
sum = error + intgrl_term + derv_term ..................................Persamaan (3.9)
Variabel sum dikalikan dengan Kp membentuk sinyal kontrol.
control = Kp x Sum ..................................................................Persamaan (3.10)
Beberapa variabel di atas nilainya dibatasi oleh suatu angka maksimum (batas
saturasi) agar hasil perhitungan tidak melebihi nilai maksimum yang dapat
diakomodasi oleh suatu tipe data. Sebagai contoh variabel control dideklarasikan
dengan tipe data long. Tipe data long dapat mengakomodasi nilai -2147483648
43
sampai dengan 2147483647. Nilai maksimum beberapa variabel dalam program
dibatasi agar nilainya terletak diantara -10000 sampai 10000. Nilai maksimum ini
dipakai untuk menentukan nilai PWM yang harus dikirimkan ke motor DC.
Perhitungan untuk PWM adalah sebagai berikut :
PWM = 255 - control ............................................................Persamaan (3.11)
Nilai variabel control dikalibrasikan ke rentang nilai 0 – 255. Sekali lagi nilai
baru variabel control disimpan dalam variabel yang sama dengan tujuan menghemat
pemakaian memori internal mikrokontroller. Jika nilai control = nilai maksimum,
maka PWM akan bernilai 0, yang berarti putar motor DC pada kecepatan penuh.
Rutin PID akan terus berulang sampai nilai error sama dengan nol atau sesuai
dengan set point.
44
Gambar 3.10 Diagram Alir rutin PID
Download