41
Bab III
Perancangan Sistem
Dalam perancangan sistem kendali motor DC ini, terlebih dahulu dilakukan analisis bagian-bagian apa saja yang diperlukan baik hardware maupun software kemudian dirancang bagian-perbagian, kemudian diintegrasikan sebagai sebuah kesatuan sistem kendali fuzzy.
II.7 Analisis dan perancangan blok pengendali kecepatan motor DC
Secara umum, sistem kendali kecepatan motor DC digambarkan dalam diagram blok berikut ini
Gambar III.1. Diagram blok sistem pengendali kecepatan motor DC
Set point merupakan masukan kecepatan yang dinginkan, error berupa selisih kecepatan antara set point dengan kecepatan motor yang diukur melalui sensor. Kendali merupakan metoda untuk memberikan kompensasi terhadap error yang kompensasi ini diharapkan dapat menekan nilai error sama dengan 0. Hasil komputasi kendali ini kemudian diberikan ke plant sehingga plant diberi masukan berupa tegangan yang besarnya sesuai dengan hasil komputasi.
Untuk efisiensi penggunaan catu daya pengendali, digunakan mikrokontroller sebagai pengolah data dan menggunakan mekanisma PWM sebagai pencatudayaan motor, adapun untuk kepentingan akusisi data digunakan PC yang dihubungkan melalui port serial. Untuk membangun sistem pengendali kecepatan motor DC dengan menggunakan mikrokontroller, diperlukan beberapa bagian baik hardware maupun software. Diagram blok sub sistem-sub sistem yang membangun sistem kendali kecepatan motor DC berbasis mikrokontroller ATMega 8535 digambarkan sebagai berikut:
Kendali Plant Umpan balik Kecepatan Set point + _ Error
42 Pencacah Pulsa Sistem Pengolah Data Driver motor Motor DC USART PC PWM Encoder ATMega8535 Plant Masukan analog ADC
Gambar III.2. Diagram blok sistem pengendali kecepatan motor DC dengan menggunakan ATMega8535
Fungsi masing-masing subsistem di atas sebagai berikut
• Masukan analog berfungsi untuk memberikan nilai set point dalam bentuk tegangan DC analog
• Motor sebagai objek yang dikendalikan kecepatannya • Encoder sebagai sensor kecepatan
• Pencacah pulsa berfungsi untuk mengukur kecepatan motor oleh mikrokontroller
• Sistem pengolah data sebagai bagian utama mikrokontroller untuk melakukan komputasi
• USART untuk komunikasi serial ke PC • PC untuk akusisi data
• PWM untuk menghasilkan tegangan sesuai dengan besar duty cycle yang ditentukan
• Driver motor untuk meningkatkan tegangan dan arus dari PWM sebagai catu daya motor
43
II.8 Perancangan Hardware
Hardware yang dibutuhkan dalam perancangan meliputi: sistem motor DC, driver motor, masukan analog untuk kecepatan referensi (set point) dan beban.
II.8.1 Perancangan sistem motor DC
Motor DC yang digunakan dalam penelitian ini terdiri 2 buah, 1 sebagai motor yang diatur kecepatannya sedangkan 1 buah motor sebagai beban (generator) yang dihubungkan porosnya menggunakan kopel sehingga kecepatan kedua motor tersebut selalu sama. Sistem tersebut diilustrasikan dalam gambar berikut ini.
Gambar III.3. Sistem motor DC
Motor DC dilengkapi dengan encoder sebagai sensor kecepatan dengan ketelitian 116 pulsa/rotasi. Jika motor berputar, maka beban berupa generator juga akan berputar sehingga menghasilkan tegangan.
II.8.2 Perancangan driver motor
Untuk memberikan catu daya ke motor diperlukan driver yang menerima masukan dari mikrokontroller dan keluarannya ke motor DC. Driver motor DC yang dibangun menggunakan IC L298N yang didalamnya merupakan rangkaian bridge yang menerima masukan level TTL dan mampu memberikan arus maksimum 1 ampere dan tegangan maksimum 46 volt. Dengan IC ini maka keluaran dari mikrokontroller dapat langsung diberikan ke pin masukan untuk mengatur polaritas pencatudayaan motor dan sinyal PWM melalui pin enable di L298N. Input driver ini berupa tegangan 0 –5 volt sedangkan keluaran berupa tegangan yang besarnya sesuai dengan tegangan referensi dan duty cyclenya. Diagram blok L298N dijelaskan dalam gambar berikut ini.
Motor DC Beban
44
Gambar III.4. Diagram blok L298N
Ketika diimplementasikan sebagai driver motor DC, konfigurasi pin yang digunakan dalam penelitian ini sebagai berikut.
Gambar III.5. Skema rangkaian driver motor
Catu daya driver motor terdiri dari catu daya referensi dan catu daya logic (VCC=5V). Keluaran driver motor dari pin 13 dan 14 yang dihubungkan langsung ke motor yang akan dikendalikan.
II.8.3 Perancangan masukan kecepatan referensi (set point)
Untuk memberikan kecepatan referensi ke sistem pengendali, ada 2 pilihan yang bisa digunakan:
• Potensiometer, pemberian nilai set point dengan cara memutar potensiometer sedemikian hingga nilai set point sesuai dengan yang diinginkan
• Input analog dari generator fungsi
Rentang nilai tegangan yang diijinkan –0.5 volt sampai dengan 5,5 volt sesuai dengan kemampuan ADC pada ATMega 8535. Untuk memilih mode apakah dari
45
potensiometer atau dari input analog diberikan switch sehingga ketika menggunakan input analog tidak terganggu oleh tegangan pada potensiometer. Kedua tipe masukan ini kemudian dihubungkan ke Port A.0 sebagai masukan analog. Rangkaian masukan kecepatan referensi dengan menggunakan potensiometer sebagai berikut.
Gambar III.6. Skema masukan set point melalui potensiometer
Cara kerja pengaturan tegangan sebagai referensi dengan menggunakan potensiometer adalah memfungsikan potensiometer sebagai rangkaian pembagi tegangan antara ground dengan VCC 5 volt.
II.8.4 Perancangan pengujian perubahan beban
Untuk menguji perubahan beban ketika motor berputar, pada terminal generator (beban) dihubungkan ke beban berupa led sehingga kecepatan motor turun akan tetapi motor masih mampu berputar.
II.9 Perancangan Sofware
Software yang diperlukan berupa program untuk memasukkan nilai set point ke ADC, modul-modul program mikrokontroller seperti: modul penghitung jumlah pulsa encoder, modul timer untuk pewaktuan penghitung jumlah pulsa encoder, modul PWM untuk membangkitkan tegangan DC yang akan diberikan ke driver motor, modul komputasi logika fuzzy dan modul akusisi data berupa hasil pengukuran ke PC melalui port serial.
Mikrokontroller yang digunakan adalah ATMega 8535 sedangkan tools untuk pengembangan programnya menggunakan Code Vision dan bahasa yang digunakan adalah bahasa C. Untuk proses download ke mikrokontroller, penulis menggunakan PonyProg 2000 versi 2.06f Beta. Proses download dengan menggunakan file hexa yang kemudian didownload ke mikrokontroller melalui
p m I p B A p t s I A t s B D s S p m port parale mikrokontro II.9.1 Pera Masu pembagi teg Beda tegang ATMega853 pengaturan tersebut seb set point. Va II.9.2 Pera Mod ATMega853 timer yang d sumber cloc Berikut regi Dengan me sumber cloc Secara fisik, Enco pulsa/rotasi motor dalam v = J el. Setelah oller akan be ancangan pe
ukan set poi gangan yang gan potensio 35. Hasil p set point de esar 127 tela ariabel “sp”d ancangan m dul pembaca 35. Modul p difungsikan ck dari ekst ster pada TC Gam mberikan n ck eksternal d , sumber clo oder yang d sehingga ji m rpm dinyat 116 pulsa Jumlah h program erfungsi sesu embaca mas int melalui p g dapat dia ometer terse pembacaan engan cara m ah mencuku di atas kemu modul penca a pulsa en pencacah pul sebagai penc ternal yakn CCR0. mbar III.7. R nilai pada T dan counter ck timer 0 b digunakan da ika waktu p takan ax ts 1000x 6 46 didownloa uai dengan pr sukan set po potensiomet atur dengan ebut kemudi ADC kem memutar pot upi kebutuha udian digunak cah pulsa en ncoder mem lsa encoder cacah adalah i dengan m egister pada TCCR0 = 0x akan naik k erasal dari lu alam penelit pencuplikan 60 rpm ad ke m rogram yang oint melalui
ter yang ber memutar p ian diumpan mudian diba tensiometer an untuk mem kan dalam k ncoder manfaatkan menggunak h dengan me mengkonfigu a TCCR time x07 maka t etika ada sin uar yakni me tian ini mem sebesar 20 mikrokontroll g kita masuk i potensiome rfungsi sebag potensiomete nkan ke AD agi 2 agar lebih tingg mberikan ni komputasi se fasilitas ti kan timer 0. engkonfigura urasikan nila er 0 timer 0 me nyal naik (ris
elalui PB.0. mpunyai ket 0 ms, maka ler, maka kkan. eter gai resistor er tersebut. DC internal ketelitian i dan hasil ilai sebagai elanjutnya. imer pada Cara kerja asikan agar ai TCCR0. nggunakan sing edge). telitian 116 kecepatan
47
dimana v adalah kecepatan motor dalam rpm, dan ts adalah waktu pencuplikan dalam mili detik. Nilai pulsa tersimpan dalam register TCNT0.
II.9.3 Perancangan timer
Timer digunakan sebagai pewaktu proses pencacahan jumlah pulsa encoder (time sampling), proses pewaktuan ini dengan memanfaatkan timer 2. Konfigurasi timer 2 sebagai timer dengan cara mengkonfigurasi register TCCR2 dan TCNT2. Register TCCR2 adalah register yang digunakan untuk mengkonfigurasi pre skalar timer.
Gambar III.8. Register pada TCCR timer 2
Dengan memberikan nilai 0x07 pada TCCR2 berarti preskalar yang dipilih 1024, yakni counter register TCNT2 akan naik setiap 1024 siklus clock.
Besar time sampling yang dipilih harus memperhatikan beberapa faktor sehingga didapatkan desain sistem kendali yang optimal, faktor-faktor untuk menentukan penentuan besar time sampling tersebut yaitu:
• Ketelitian encoder • Besar rise time • Besar settling time
Semakin kecil time sampling menyebabkan ketelitian penentuan nilai set point menjadi berkurang, hal ini dikarenakan pada penghitungan pulsa encoder pada time sampling rendah, kesalahan atau pembulatan 1 pulsa akan signifikan karena pulsa yang terkumpul sedikit, lain halnya pada time sampling yang besar maka jumlah pulsa yang terkumpul banyak sehingga kesalahan atau pembulatan 1 pulsa tidak terlalu signifikan terhadap hasil pengukuran. Jadi, penentuan time sampling merupakan kompromi ketiga variabel besaran yang berpengaruh di atas. Berikut tabel data penentuan besar time sampling dengan ketelitian yang dihasilkan dalam penentuan set point.
48
Tabel III.1. Pengaruh time sampling terharap ketelitian set point Time sampling (ms) Ketelitian (rpm) 5 103.45 10 51.72 15 34.48 20 25.86 25 20.69 30 17.24 35 14.78 40 12.93 45 11.49 50 10.34
Berdasar pengukuran karakteristik motor dalam domain waktu dengan masukan step pada set point 80 dimana besar rise time yakni waktu yang dibutuhkan untuk mencapai nilai sebesar steady state yang pertama kali kurang lebih sebesar 160ms dan besar nilai settling time sebesar 200ms, maka dipilih time sampling sebesar 20 ms dengan pertimbangan
• Ketelitian set point sebesar 25.86 rpm
• Terdapat 10 kali pengambilan data kecepatan sebelum motor mencapai range steady state.
Jika waktu pencuplikan yang diinginkan sebesar 20 ms, maka harus ditentukan mulai dari nilai berapa register TCNT2 bertambah sampai terjadi overflow. Dengan pre skalar 1024 dan clock osilator sebesar 11059200 berarti bahwa register TCNT2 akan naik setiap 1024 x (1/11059200) atau sekitar 9.26 x 10-5 detik, sehingga dibutuhkan 216 siklus untuk mendapatkan nilai timer 20 ms. Karena nilai maksimal TCNT2 256 maka TCNT2 harus diset bahwa nilai terendahnya adalah 240 (256-216) atau 0x28. Jadi secara keseluruhan konfigurasi timer 2 adalah: TCCR2=0x07 dan TCNT2=0x28.
II.9.4 Perancangan PWM sebagai penghasil tegangan ke motor
Untuk mengkonfigurasikan timer 1 sebagai fast PWM 8 bit maka register TCCR1A diberi nilai 0xA1, sedangkan untuk menjalankan pada pre skalar 64, maka TCCR1B diberi nilai 0x0B. Kemudian nilai TCNT1 juga perlu diinisialisasi dengan nilai 0x00 sehingga secara keseluruhan konfiguraisi PWM sebagai
49
berikut: TCCR1A=0xA1, TCCR1B=0x0B, TCNT1=0x000. Besar kecilnya duty cycle PWM adalah perbandingan nilai TCNT1 dengan nilai maksimal counter sehingga pada mode fast PWM 8 bit maka duty cycle adalah TCNT1/256.
II.9.5 Perancangan komunikasi serial dengan PC
Untuk pengamatan data, hasil pengukuran dan komputasi tersebut dikimkan ke PC melalui port serial. Data yang dikirimkan tidak hanya nilai kecepatan saja, bahkan nilai variabel-variabel selama proses komputasi juga dapat ditampilkan ke PC melalui port serial. Dalam komunikasi serial, ada 3 parameter penting yakni: • Baudrate. Seting baudrate dengan memberikan nilai pada register UBRR.
Rumus untuk menghitung nilai UBRR dinyatakan
Sehingga jika kita menggunakan baudrate 9600 maka UBRR bernilai 71 atau 0x47.
• Format data. Seting format data dengan memberikan nilai pada register UCSRC. Jika kita akan menggunakan format 1-bit start, 8-bit data,1-bit stop dan tidak ada paritas, maka register UCSRC diberi nilai 0x86.
• Enable transmit dan enable receive. Seting ini melalui register UCSRB, jika RXEN dan TXEN diset “1”, maka register UCSRB diberi nilai 0x18.
Selain parameter dalam program di mikrokontroller, parameter tersebut juga digunakan pada program di sisi PC. Penerimaan data serial tersebut dapat menggunakan Hyper Terminal yang merupakan software bawaan Microsoft Windows.
II.9.6 Perancangan logika fuzzy
Dalam perancangan kendali fuzzy, ada 3 tahap yakni: fuzzifikasi, inferensi fuzzy dan defuzzyfikasi.
• Fuzzifikasi
Meliputi pendefinisian masukan/keluaran sistem dalam format crisp dan batasan nilai-nilainya. Fungsi keanggotaan masukan berupa E dan CE yang dinyatakan dengan UBRR = rate baud x 16 kristal Frekuensi - 1 E(n) = SP(n) –PV (n) 3.1
50
A B C
u
Dimana E adalah selisih kecepatan dengan set point, CE adalah perubahan selisih kecepatan antara selisih kecepatan sekarang dengan yang sebelumnya. Nilai E dan CE mempunyai 5 label: NB (negative big), NS (negative small), Z (zero), PS (positive small), dan PB (positive big). Fungsi keanggotaan yang digunakan berupa fungsi segitiga, sehingga persamaan fungsi keanggotaannya
Gambar III.9. Bentuk fungsi keanggotaan E dan CE berupa segitiga
Sehingga secara matematis, nilai u yang digunakan untuk menyatakan derajat keanggotaan dinyatakan dengan:
u = 0 untuk x<A u = A B A x − − untuk A≤ x ≤ B u = B C x C − − untuk B≤ x ≤ C u = 0 untuk x > C
Adapun batas-batas nilai tiap label berdasarkan pengukuran bahwa kecepatan maksimum pada catu daya 12 volt disekitar range 80 pulsa/20ms, maka fungsi keanggotaan dinyatakan sebagai berikut:
-80 -40 -20 0 20 40 80
Z PS PB
NB NS
Gambar III.10. Fungsi keanggotaan E dan CE • Inferensi Fuzzy
51
Inferensi fuzzy mengacu pada grafik kinerja sistem kendali domain waktu dengan masukan step response, kemudian dibuatlah if-then rule yang merepresentasikan tujuan yang diinginkan yaitu peningkatan kinerja sistem.
Gambar III.11. Kinerja sistem kendali domain waktu dengan masukan step sebagai acuan pembuatan rule
Rule utama sistem fuzzy yang dibangun merujuk ke state-state utama yaitu: a, b, c, d, e, f, g, h. Rule if-then tersebut sebagai berikut
Tabel III.2. Rule utama sistem
No Rule E(Error) CE (∆Error) ∆PWM Referensi
1 PB Z PB A 2 Z NB NB B 3 NB Z NB C 4 Z PB PB D 5 PS Z PS E 6 Z NS NS F 7 NS Z NS G 8 Z PS PS H 9 Z Z Z Set point
Untuk memperhalus respon diperlukan state diantara state-state referensi utama, sehingga rule tambahan tersebut sebagai berikut
52
No Rule E(Error) CE(∆Error) ∆PWM Referensi
10 PB NS PS A-B 11 PB NB Z A-B 12 PS NB NS A-B 13 NS NS NS B-C 14 NB PS NS C-D 15 NB PB Z C-D 16 NS PS Z C-D 17 NS PB PS C-D 18 PS PS PS D-E 19 PS NS Z E-F
Karena ada 5 nilai dengan 2 variabel masukan, maka total rule sebanyak 25. Rule pelengkap tersebut sebagai berikut
Tabel III.4. Rule pelengkap sistem
No Rule E(Error) CE(∆Error) ∆PWM Referensi
20 NB NB NB B-C 21 NB NS NB B-C 22 PS PB NB D-E 23 PB PB PB D-E 24 PB PS PB D-E 25 NS NB PB F-G
Dalam implementasi programnya, kalkulasi masukan E dan CE untuk mendapatkan keluaran perubahan nilai PWM, digunakan matrik yang nilainya sesuai dengan fungsi keanggotaan keluaran seperti dinyatakan dalam rule-rule di atas. Implementasi nilai-nilai rule dalam program dengan matrik berukuran 5 x 5 bertipe integer.
• Defuzzyfikasi
Langkah terakhir dalam pengembangan sistem fuzzy adalah defuzzyfikasi yakni untuk mendapatkan nilai crisp dari hasil inferensi fuzzy. Fungsi keanggotaan keluaran adalah ∆PWM berupa fungsi singleton yang mempunyai label yang sama dengan masukannya. Hubungan ∆PWM dinyatakan:
Berdasar pengukuran bahwa motor mulai berputar pada pemberian nilai PWM sebesar 100, maka rentang perubahan nilai PWM adalah mulai dari 0 sampai
53
dengan 155 (255-100). Jadi untuk mengatasi dead zone pada motor, penulis hanya membatasi operasi pada daerah kerja liniernya saja sehingga fungsi keanggoatan ∆PWM sebagai berikut
Gambar III.12. Fungsi keanggotaan keluaran berupa ∆PWM
Sedangkan metoda yang digunakan dalam proses defuzzyfikasi adalah COG (center of grafity). Metode COG diilustrasikan sebagai berikut
Gambar III.13. Defuzzyfikasi dengan metoda COG
Secara matematis, nilau U yang berbenilai crisp dinyakatan dengan
U=
∑
= k i 1 ui * µ(ui) 3.4∑
= k i 1 µ (ui)Pada proses defuzzyfikasi dengan metode COG setiap keluaran fungsi keanggotaan yang mempunyai nilai diatas fuzzy keluaran dipotong, pemotongan ini disebut lamda cut. Hasil dari fungsi keanggotaan yang telah terpotong digabungkan lalu dihitung dengan COG secara keseluruhan.
54
II.9.7 Kompensasi ketidaklinieran sistem
Hasil percobaan untuk menyatakan hubungan antara PWM dengan kecepatan menunjukkan bahwa hubungan tersebut tidak linier, bahkan terdapat dead zone sehingga pada daerah tersebut perubahan nilai PWM tidak memberikan perubahan kecepatan, motor tetap dalam keadaan diam. Hubungan antara pemberian nilai PWM dan kecepatan motor dinyatakan dalam gambar berikut ini.
Gambar III.14. Kompensasi ketidaklinieran plant Terlihat kondisi plant bahwa:
• Motor mulai bergerak pada pemberian nilai PWM 8 bit sebesar 100 sehingga terdapat dead zone dari 0 sampai dengan 100.
• Dari grafik terlihat bahwa hubungan PWM dengan kecepatan tidak benar-benar linier akan tetapi agak melengkung.
Dari kondisi diatas, maka diperlukan kompensasi sehingga hasil komputasi memberikan respon mendekati kondisi nyata dengan cara membuat fungsi yang linier yang mendekati kondisi real plant tersebut, fungsi linier tersebut adalah
kecepatan = ( 100) 100 255 80 − − pwm 80 155 Plant 0 10 20 30 40 50 60 70 80 90 0 25 50 75 100 125 150 175 200 225 250 y = ke ce patan (rpm) x = PWM 8 bit (desimal) PWM vs Kecepatan
55
Kondisi ini mempengaruhi perancangan fuzzy sehingga keluaran defuzzifikasi yang semula dari rentang 0-255 menjadi 0-150, sehingga perubahan selisih pemberian nilai PWM hanya pada daerah kerja liniernya saja.