Jumat, 28 Desember 2012



Mikrokontroler
Mikrokontroler adalah suatu chip yang memiliki memory, register dan CPU yang dapat melakukan fungsi kendali pada suatu alat atau robot. Arsitektur mikrokontroler yang semakin komplek dan memudahkan para pengembang untuk mendesain system elektronika yang canggih.
Jenis – jenis Mikrokontroler
Berdasarkan arsitekturnya mikro kontroler dapat dibagi menjadi dua jenis yaitu RISC (Reduce Instrution Set Computer) dan CISC (Kompleks
Instruction Set Computer).. RISC mempunyai jumlah intruksi yang terbatas, tetapi mempunyai banyak fasilitas yang dapat digunakan. Sebaliknya CISC memiliki instruksi yang cukup banyak, tetapi fitur yang ada hanya sedikit.
Mikrokontroler ATMega8535
Mikrokontroler AVR (Alf and Vegard’s Risc Prosessor) merupakan salah satu perkembangan produk mikroelektronika dari vendor Atmel. AVR merupakan teknologi yang memiliki kemampuan baik dengan biaya ekonomis yang cukup minimal. Mikrokontroler AVR memiliki arsitektur RISC 8 bit, dimana semua instruksi dikemas dalam kode 16 bit dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock, berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock.
Tentu saja itu terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda. AVR berteknologi RISC (Reduced Instruction Set Computing), sedang MCS 51 berteknologi CISC (Complex Instruction Set Computing). Secara umum AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATTiny, keluarga AT90Sxx, keluarga ATMega, dan AT86RFxx. Pada dasarnya yang membedakan masingmasing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bias dikatakan hampir sama.
Arsitektur ATMega8535
Dari gambar 2.1 dapat dilihat bahwa ATMega8535 memiliki bagian sebagai berikut:
a.       Saluran I/O sebanyak 32 buah, yaitu port A, Port B, Port C, dan Port D.
b.      ADC 10 bit sebanyak 8 saluran.
c.       Tiga buah Timer/Counter dengankemampuan pembandingan.
d.      CPU yang terdiri atas 32 buah register.
e.       Watchdog Timer dengan OscilatorInternal.
f.       SRAM sebanyak 512 byte.
g.      Memori Flash sebesar 8 kb dengan kemampuan Read While Write.
h.      Unit Interupsi internal dan eksternal.
i.        Port antarmuka SPI.
j.        EEPROM sebesar 512 byte yang dapat diprogram saat operasi.
k.      Antarmuka komparator analog.
l.        Port USART untuk komunikasi serial.
Fitur ATMega8535
Kapabilitas detail dari ATMega8535 adalah sebagai berikut:
1.      Sistem mikroprosessor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
2.      Kapabilitas memori Flash 8 KB, SRAM sebesar 512 byte, dan EEPROM (Electrically Erasable Programmable Read Only Memory) sebesar 512 byte.
3.      ADC Internal dengan fidelitas 10 bit sebanyak 8 saluran.
4.      Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
5.      Enam pilihan mode sleep menghemat penggunaan daya listrik.

Gambar  Pin Mikrokontroler ATMega8535

LCD (Liquid Crystal Display)
 Liquid Crystal Display (LCD) merupakan perangkat (devais) yang sering digunakan untuk menampilkan data selain menggunakan seven segment. LCD berfungsi sebagai salah satu alat komunikasi dengan manusia dalam bentuk tulisan/gambar. Untuk menghubungkan mikrokontroler dengan LCD dibutuhkan konfigurasi antara pin-pin yang ada di LCD dengan port yang ada di mikrokontroler. Konfigurasi pin LCD dan mikrokontroler dapat dilihat pada gambar berikut.
      Gambar LCD 16 X 2

Interface LCD merupakan sebuah parallel bus, dimana hal ini sangat memudahkan dan sangat cepat dalam pembacaan dan penulisan data dari atau ke LCD. Kode ASCII yang ditampilkan sepanjang 8 bit dikirim ke LCD secara 4 atau 8 bit pada satu waktu. Jika mode 4 bit yang digunakan, maka 2 nibble data dikirim untuk membuat sepenuhnya 8 bit (pertama dikirim 4 bit MSB lalu 4 bit LSB dengan pulsa clock EN setiap nibblenya). Jalur kontrol EN digunakan untuk memberitahu LCD bahwa mikrokontroller mengirimkan data ke LCD. Untuk mengirim data ke LCD program harus menset EN ke kondisi high (1) dan kemudian menset dua jalur control lainnya (RS dan R/W) atau juga mengirimkan data ke jalur data bus. Saat jalur lainnya sudah siap, EN harus diset ke 0 dan tunggu beberapa saat (tergantung pada datasheet LCD), dan set EN kembali ke high (1).
Ketika jalur RS berada dalam kondisi low (0), data yang dikirimkan ke LCD dianggap sebagai sebuah perintah atau instruksi khusus (seperti bersihkan layar, posisi kursor dll). Ketika RS dalam kondisi high atau 1, data yang dikirimkan adalah data ASCII yang akan ditampilkan dilayar. Jalur kontrol R/W harus berada dalam kondisi low (0) saat informasi pada data bus akan dituliskan ke LCD. Apabila R/W berada dalam kondisi high (1), maka program akan melakukan query (pembacaan) data dari LCD. Instruksi pembacaan hanya satu, yaitu Get LCD status (membaca status LCD), lainnya merupakan instruksi penulisan. Jadi hampir setiap aplikasi yang menggunakan LCD, R/W selalu diset ke 0.
Jalur data dapat terdiri 4 atau 8 jalur (tergantung mode yang dipilih pengguna), mereka dinamakan DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data secara parallel baik 4 atau 8 bit merupakan 2 mode operasi primer. Untuk membuat sebuah aplikasi interface LCD, menentukan mode operasi merupakan hal yang paling penting. Mode 8 bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data). Sedangkan mode 4 bit minimal hanya membutuhkan 7 bit (3 pin untuk kontrol, 4 untuk data).
Motor DC
Motor DC adalah motor yang nonterpolarisasi -yang berarti bahwa tegangan dapat di balikkan maka putarannyapun akan berubah. Tegangan yang digunakan untuk memutar motor DC sekitar 6V-24V atau lebih. Motor DC Yang digunakan pada robot sekitar motor DC 6V-12V. Jadi, mengapa motor beroperasi pada tegangan yang berbeda? Seperti yang kita semua tahu (atau seharusnya tahu), tegangan secara langsung berkaitan dengan torsi dari sebuah motor. Lebih besar tegangan, maka lebih besar torsi yang dihasilkan. Tetapi dalam pemberian tegangan tidak boleh melebihi dari tegangan yang di butuhkan. Misalkan pemberian tegangan hingga 100V, itu menyebabkan motor tidak akan lagi berputar(rusak). Hal itu menyebabkan motor menjadi terlalu panas dan kumparan akan meleleh.Meskipun motor 24V mungkin lebih kuat, apakah benar-robot harus membawa baterai 24V (yang lebih berat dan lebih besar,kecuali jika benar-benar membutuhkan sebuah torsi pada motor.
Ada beberapa macam driver motor DC yang biasa kita pakai seperti menggunakan relay yang diaktifkan dengan transistor sebagai saklar, namun yang demikian dianggap tidak efesien dalam pengerjaan hardwarenya. Dengan berkembangnya dunia IC, sekarang sudah ada H Bridge yang dikemas dalam satu IC dimana memudahkan kita dalam pelaksanaan hardware dan kendalinya menggunakan mikrokontroler, berikut IC yang familiar dalam dunia robotika seperti IC L298 dan L293, kedua IC ini memiliki kelebihan dan kekurangan masing-masing. Modul yang menggunakan IC driver L298 yang memiliki kemampuan menggerakkan motor DC sampai arus 4A dan tegangan maksimum 46 VoltDC untuk satu kanalnya. Rangkaian driver motor DC dengan IC L298 diperlihatkan pada Gambar 2.4 Pin Enable A dan B untuk mengendalikan jalan atau kecepatan motor, pin Input 1 sampai 4 untuk mengendalikan arah putaran. Pin Enable diberi VCC 5 Volt untuk kecepatan penuh dan PWM (Pulse Width Modulation) untuk kecepatan rotasi yang bervariasi tergantung dari level highnya. Ilustrasinya ditunjukkan pada Gambar dibawah ini.
Gambar Rangkaian Driver motor DC  dengan L298


Kontrol PID
PID (dari singkatan bahasa Proportional– Integral–Derivative controller) merupakan kontroler untuk menentukan presisi suatu sistem instrumentasi dengan karakteristik adanya umpan balik pada sistem tesebut. Komponen kontrol PID ini terdiri dari tiga jenis yaitu Proportional, Integratif dan Derivatif. Ketiganya dapat dipakai bersamaan maupun sendiri-sendiri tergantung dari respon yang kita inginkan terhadap suatu plant.
Kontroler Proporsional (P)
Pengaruh pada sistem :
1.      Menambah atau mengurangi
2.      kestabilan.
3.      Dapat memperbaiki respon transien
4.      khususnya : rise time, settling time
5.      Mengurangi (bukan menghilangkan) Error steady state.
Kontroler Proporsional memberi pengaruh langsung (sebanding) pada error.Semakin besar error, semakin besar sinyal kendali yang dihasilkan kontroler.
Kontroler Integral (I)
Pengaruh pada sistem :
1.      Menghilangkan Error Steady State
2.      Respon lebih lambat (dibandingkan
1.      dengan P)
2.      Dapat Menambah Ketidakstabilan
3.      (karena menambah orde pada sistem)
Kontroler Derivatif (D)
Pengaruh pada sistem :
1.      Memberikan efek redaman pada sistem yang berosilasi sehingga bias memperbesar pemberian nilai Kp
2.      Memperbaiki respon transien, karena memberikan aksi saat ada perubahan error
3.      D hanya berubah saat ada perubahan error, sehingga saat ada error statis D tidak beraksi.Sehingga D tidak boleh digunakan sendiri


Kontrol PID saat ini banyak digunakan dalam aksi-aksi di dunia industri dan juga control robot. jika kita berbicara kontrol robot line follower dengan PID maka bukanlah kontrol PID yang sebenarnya sebab pada robot line follower elemen ukur (sensor) tidak terdapat pada plant (motor penggerak) dari robot, yang serharusnya \adalah sensor terdapat di plant(motor penggerak), dengan contoh tachometer sebagai sensor pada motor, encoder atau yang lainnya yang terletak pada plant. sedangkan pada robot line follower sensor berupa pendeteksi garis (tidak terletak pada plant) dan dari hasil kondisi garis tersebut barulah dikontrol ke motor (plant), walaupun begitu kontrol PID masih dapat diterapkan untuk mengendalikan robot line follower. Berikut dijelaskan mengenai Blok aksi control PID pada Gambar dibawah ini.
Gambar  blok control PID
Dari blok diagram diatas dapat dijelaskan sebagai berikut
1.      SP = Set point, secara simple maksudnya ialah suatu parameter nilai acuan atau nilai yang kita inginkan.
2.      PV = Present Value, kalo yang ini maksudnya ialah nilai bobot pembacaan sensor saat itu atau variabel terukur yang di umpan balikan oleh sensor (sinyal feedback dari sensor).
3.      Error = nilai kesalahan, nach kalo yang ini pengertiannya ialah Deviasi atau simpangan antar variabel terukur atau bobot sensor (PV) dengan nilai acuan (SP)
Nilai konstanta perhitungan PID di tuning secara trial and error, proses ini dilakukan dengan metode mencoba-coba (eksperimental) nilai proporsional, derivatif dan integratif pada formula PID hingga ditemukan hasil sistem yag stabil, adapun cara yang dilakukan untuk mentuning PID pada robot line follower ialah sebagai berikut:
1.      Langkah awal gunakan control proporsional terlebih dahulu, abaikan konstanta integratif dan derivatifnya dengan memberikan nilai nol pada integratif dan derivatif.
2.      Tambahkan terus konstanta proporsional maksimum hingga keadaan stabil namun robot masih berosilasi.
3.      Untuk meredam osilasi, tambahkan konstanta derivatif dengan membagi dua nilai proporsional, amati keadaan sistem robot hingga stabil dan lebih responsif.
4.      Jika sistem robot telah stabil, kontrol integratif dapat menjadi opsional, dalam artian jika ingin mencoba-coba tambahkan control integratif tersebut, namun pemberian nilai integratif yang tidak tepat dapat membuat system robot menjadi tidak stabil.
5.      Nilai set point kecepatan dan nilai batas bawah/atas memberikan patokan kecepatan robot.
6.      Nilai time sampling (waktu cuplik) juga mempengaruhi perhitungan PID, tentunnya saat penggunaan kontrol integratif dan derivatif.
Definisi-definisi yang digunakan dalam
PID:
Target Position - Untuk mengikuti garis, posisi ini adalah tengah garis. Kita akan merepresentasikannya dengan nilai nol.
Measured Position - Seberapa jauh ke kiri atau ke kanan terhadap garis. Nilai ini dapat negative atau positif untuk merepresentasikan posisi relatif terhadap garis.
Error - Perbedaan antara target position dan measured position.
Proportional - Mengukur berapa jauh robot kita keluar dari garis. Proportional merupakan dasar untuk membaca posisi robot dengan menggunakan sensor. Semakin banyak data, semakin akurat kita dapat mengukur posisi robot di atas garis.
Integral - Mengukur akumulasi error terhadap waktu. Nilai integral naik ketika robot tidak berada di tengah garis. Semakin lama robot tidak berada di tengah garis, semakin tinggi nilai integral.
Derivative - Mengukur seberapa sering robot bergerak dari kiri ke kanan atau dari kanan ke kiri.
Faktor P - Kp, adalah konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari Proportional.
Faktor I - Ki, adalah konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari Integral.
Faktor D - Kd, adalah konstanta yang digunakan untuk memperbesar dan memperkecil pengaruh dari Derivative.

PERANCANGAN ALAT
Prototipe robot ini merupakan robot line follower menggunakan control PID. Robot ini berjalan dengan bantuan sensor sebagai alat indra robot tersebut. Sensor membaca garis berwarna hitam dan dasar jalur berwarna putih. Jika sensor membaca garis hitam, maka sensor akan memberikan masukan tegangan ke komparator untuk dibandingkan. Komparator mengeluarkan logika low sebagai masukan ke mikrokontroler untuk diproses. Program akan menterjemahkan masukan untuk menggerakan roda dalam robot line follower ini. Perancangan prototype robot line follower ini merupakan perancangan secara perangkat keras dan perangkat lunak. Dalam perancangan ini meliputi analisa rangkaian secara blok diagram, analisa rangkaian keseluruhan, diagram alur (flowchart) dan analisa secara program.
Blok tegangan dan rangkaian regulator
Sumber tegangan yang digunakan pada Robot Pengikut Garis ini menggunakan 2 tegangan yang berbeda pada motor driver menggunakan 12 volt dan 5 volt, dan yang lainnya hanya perlu 5volt, maka dari itu saya mengunakan masukan tegangan 12volt saja. Untuk blok blok rangkaian lain saya menggunakan rangkaian regulator, dimana rangkaian ini dapat menghasilkan tegangan 5 volt yang dibutuhkan pada blok rangjkain lainnya. Jadi pada alurnya dari 12 volt akan di sambungkan ke motor driver yang membutuhkan 12volt dan disambungkan ke regulator, dari regulator disambungkan ke blok rangkaian yang  membutuhkan tegangan 5volt
Blok sensor
Sensor garis disini adalah suatu perangkat/alat yang digunakan untuk mendeteksi adanya sebuah garis atau tidak. Garis yang dimaksud adalah garis berwarna hitam diatas permukaan berwarna putih. Alat ini menggunakan teknik pantulan cahaya inframerah yang ditangkap oleh photodioda dari sebuah LED Seperti layaknya manusia, bagaimana manusia dapat berjalan pada mengikuti jalan yang ada tanpa menabrak dan sebagainya, tentunya karena manusia memiliki “mata” sebagai penginderanya. Begitu juga robot line follower ini, dia memiliki sensor garis yang berfungsi seperti “mata” pada manusia. Sensor garis ini mendeteksi adanya garis atau tidak pada permukaan lintasan robot tersebut, dan informasi yang diterima sensor garis kemudian diteruskan ke prosesor untuk diolah sedemikian rupa dan akhirnya hasil informasi hasil olahannya akan diteruskan ke penggerak atau motor agar motor dapat menyesuaikan gerak tubuh robot sesuai garis yang dideteksinya. Pada konstruksi yang sederhana, robot line follower memiliki dua sensor garis (A-Kiri dan B-Kanan), yang terhubung ke dua motor (kanan dan kiri) secara bersilang melalui sebuah prosesor/driver (lihat gambar). Sensor garis A (Kiri) mengendalikan motor kanan, sedangkan sensor garis B (kanan) mengendalikan motor kiri.
Gambar Blok sensor
Ketika sensor A mendeteksi garis sedangkan sensor B keluar garis ini berarti posisi robot berada lebih sebelah kanan dari garis, untuk itu motor kanan akan aktif sedangkan motor kiri akan mati. Akibatnya motor akan berbelok kearah kiri. Begitu sebaliknya ketika sensor B mendeteksi garis, motor kiri aktif dan motor kanan mati, maka robot akan berbelok ke kanan. Jika kedua sensor mendeteksi garis maka kedua motor akan aktif dan robot akan bergerak maju
Blok Mikrokontroler
Didalam mikrokontroller akan dimasukkan program yang akan menjalankan motor. Akan tetapi mikrokontroller juga mempunyai input dan output sendiri, input dari sensor dan output yang akan diteruskan ke motor driver
Gambar Blok Mikrokontroler
Blok Driver
Pada blok ini merupakan penggerak pada motor, dimana membutuhkan tegangan 5volt dan 12volt, seperti pembahasan yang telah diajarkan mikrokontroler akan aktif jika diberi logika low, mikrokontroler akan memberikan output pada driver dengan
logika high ( “1“ ) dan pada saat itu driver akan menggerakan motor.
Gambar  Blok Driver
Analisa Rangkaian Secara Detail
Dalam pengoperasian “Prototipe Robot Line follower dengan Kontrol PID” menggunakan tegangan DC 12v. Tegangan tersebut dikonversikan oleh IC regulator LM 7805 untuk menghasilkan tegangan 5v agar sesuai dengan tegangan mikrokontroler. Tengangan 5v tersebut mengaktifkan rangkaian sensor, komparator, mikrokontroler, motor driver. Pada rangkaian robot tersebut, sensor yang digunakan adalah sensor garis. Sensor garis berguna untuk mengatur kemudi robot agar mengikuti garis yang telah dibuat. Sensor tersebut merupakan rangkaian led sebagai pengirim cahaya dan rangkaian photo dioda sebagai penerima cahaya. Pada saat cahaya led terkena jalur warna putih, maka pantulan cahaya led akan mengenai photo dioda sehingga resistansi pada photo dioda sangat kecil. Sedangkan saat cahaya led terkena
garis hitam, maka cahaya led akan terserap oleh warna hitam sehingga resistansi pada photo dioda besar. Saat resistansi pada photo dioda kecil maka tegangan pada photo dioda besar, sedangkan saat resistansi pada photo dioda besar maka tegangan pada photo dioda kecil. Tegangan photo dioda akan masuk ke dalam komparator. Komparator berfungsi membandingkan tegangan photo dioda dengan tegangan referensi. Jika tegangan photo dioda lebih besar daripada tegangan referensi, maka keluaran dari rangkaian komparator berlogika high. Jika tegangan photo diode lebih kecil daripada tegangan referensi, maka keluaran dari rangkaian komparator berlogika low.Keluaran dari komparatorakan\masukkedalam mikrokontroler. Masukan pada robot ini berupa aktif low karena pada program masukandari blok inputan diinisialisasikan sebagai aktif low. Jadi pada robot ini akan bergerak jika sensor terkena garis warna hitam.
Cara pengoperasian alat
Pada robot Line Follower ini, pengoprasian alat menggunakan tegangan baterai sebesar 12V Algoritma pengoprasian alat sebagai berikut:
1. Hubungkan prototipe line follower dengan tegangan 12v. Tegangan dapat berasal baterai.
2. Tempatkan line follower pada jalurnya. Jalur berupa garis hitam dengan dasar berwarna putih.
3. Robot akan berjalan sesuai jalur dengan algoritma
Cara kerja alat
Cara kerja dari robot line follower  ini dibagi dalam dua bagian, yakni cara kerja dari sensor garis dan prinsip kerja control PID.
Cara kerja sensor
Prinsip kerja sensor pada robot line follower ini berasal dari cahaya led yang dipantulkan medium berwarna hitam dan putih. Pada saat cahaya led terkena medium berwarna putih, maka cahaya led akan memantul sempurna dan diterima oleh photo dioda dengan baik. Sedangkan saat cahaya led terkena medium berwarna hitam, maka cahaya led akan memantul sangat sedikit ke photo dioda karena terserap oleh medium berwarna hitam. Oleh karena itu, resistansi pada photo dioda sangat berbeda.

Prinsip kerja control PID
Robot line follower dengan control PID adalah salah satu bentuk pengaplikasian dari IC mikrokontroler Atmega8535, yang dalam pengoperasianya menggunakan sensor garis yang berupa rangkaian LED dan photo dioda. Prinsip kerja kontrol PIDrobot ini adalah menggunakan 8(delapan) sensor di depan untuk mengikuti garis. Lebar garis yang ideal untuk dilalui robot line follower ini sekitar 1,5 – 2 cm, dengan kemungkinan 2-3 sensor dapat mengenai garis. Langkah selanjutnya yaitu melakukan mapping nilai sensor untuk mendapatkan process variable (PV). Kurang lebih seperti berikut (misal nilai 0 merepresentasikan sensor mengenai garis):
11111110 (-7) // ujung kiri
11111000 (-6)
11111100 (-6)
11111101 (-5)
11110001 (-4)
11111001 (-4)
11111011 (-3)
11100011 (-2)
11110011 (-2)
11110111 (-1)
11100111 (0) // tengah
11101111 (1)
11000111 (2)
11001111 (2)
11011111 (3)
10001111 (4)
10011111 (4)
10111111 (5)
00011111 (6)
00111111 (6)
01111111 (7) // ujung kanan
11111111 (8 / -8) // loss
Kondisi ideal pada robot adalah bergerak maju lurus mengikuti garis, dengan kata lain PV = 0 (nilai sensor = 11100111). Dari sini bisa kita asumsikan Set Point (SP) / kondisi ideal adalah saat SP = 0. Nilai sensor yang dibaca oleh sensor disebut Process Variable (PV) / nilai actual pembacaan. Menyimpangnya posisi robot dari garis disebut sebagai error (e), yang didapat dari e = SP - PV. Dengan mengetahui besar error, microcontroller dapat memberikan nilai PWM motor kanan dan kiri yang sesuai agar dapat menuju ke posisi ideal (SP = 0). Besar PWM ini bisa kita dapatkan dengan menggunakan kontrol Proportional (P), dimana P = e * Kp (Kp adalah konstanta proportional yang nilainya kita set sendiri dari hasil tuning). Misalkan nilai PWM didefinisikan dari 0 – 255 dengan nilai 0 berarti berhenti dan 255 berarti kecepatan penuh. Dari data nilai 8 sensor yang telah dimapping ada 16 PWM untuk tiap motor. Tapi dalam kondisi real dimisalkan saat sepelan-pelannya motor adalah PWM < 30 dan secepat-cepatnya (maju lurus) adalah 250. Saat PV = 8 atau -8 itu tergantung dari kondisi PV sebelumnya, jika PV lebih besar dari 0 maka, nilai PV adalah 8 dan jika PV kurang dari 0 maka nilai PV adalah -8. Dalam pemrograman robot line follower ini kodenya ditulis secara sederhana seperti berikut:
If Sensor = &B11111111 Then
If Pv < 0 Then : Pv = -30
End If
If Pv > 0 Then : Pv = 30
End If
End If
Perhitungan kendali proporsional
Dengan mengukur seberapa jauh robot menyimpang dari kondisi ideal, sistem kontrol P sudah diterapkan. Output (berupa nilai PWM) didapat dari perhitungan yang melibatkan hanya variable P = e * Kp. Jika pergerakan robot masih terlihat bergelombang, bias ditambahkan control Derivative (D). Kontrol D digunakan untuk mengukur seberapa cepat robot bergerak dari kiri ke kanan atau dari kanan ke kiri. Semakin cepat bergerak dari satu sisi ke sisi lainnya, maka semakin besar nilai D. Konstanta D (Kd) digunakan untuk menambah atau mengurangi imbas dari derivative. Dengan mendapatkan nilai Kd yang tepat pergerakan sisi ke sisi yang bergelombang akibat dari proportional PWM bisa diminimalisasi. Nilai D didapat dari: D = Kd * rate, dimana rate = e(n) - e(n-1). Dalam program nilai error (SP – PV) saat itu menjadi nilai last_error, sehingga rate didapat dari error - last_error
Perhitungan kendali proporsional + Derivatif
Jika dengan P + D sudah membuat pergerakan robot cukup smooth, maka penambahan Integral menjadi opsional. Jika ingin mencoba-coba bias ditambahakan Integral (I). I digunakan untuk mengakumulasi error dan mengetahui durasi error. Dengan menjumlahkan error disetiap pembacaan PV akan memberikan akumulasi offset yang harus diperbaiki sebelumnya. Saat  robot bergerak menjauhi garis, maka nilai error akan bertambah. Semakin lama tidak mendapatkan SP, maka semakin besar nilai I. Degan mendapatkan nilai Ki yang tepat, imbas dari Integral bisa dikurangi. Nilai akumulasi error didapat dari: I = I + error. Nilai I sendiri : I = I * Ki.

Tidak ada komentar:

Posting Komentar