BAB 4 IMPLEMENTASI DAN EVALUASI Pelaksanaan dari perancangan telah dibuat dan dijelaskan pada Bab 3, kemudian perancangan tersebut diimplementasi ke dalam bentuk yang nyata (secara hardware).hasil implementasi akan dievaluasi untuk mengetahui apakah sistem yang dirancang telah bekerja sesuai dengan perancangan. Bab ini akan menjelaskan proses penelitian yang dilakukan mulai dari spesifikasi sistem, daftar komponen, implementasi sistem, pengujian sistem sampai dengan analisa dan evaluasi terhadap sistem yang dibangun. 4.1 Spesifikasi Sistem Spesifikasi dari sistem ini dibagi menjadi dua bagian, yaitu spesifikasi perangkat keras dan perangkat lunak yang mendukung sistem dari penelitian ini. 4.1.1 Spesifikasi Sistem Perangkat Keras Ada beberapa komponen yang digunakan pada implementasi pengujian sistem penelitian ini, yaitu : IC komunikasi serial MAX 232, untuk komunikasi secara serial antara ATMEGA8535 dengan komputer. 55
56 4.1.2 Spesifikasi Sistem Perangkat Lunak Selain perangkat keras, bagian yang penting dalam penelitian ini adalah perangkat lunak yang dapat membantu mikrokontroller menjalankan sistem secara keseluruhan. Berikut adalah perangkat lunak yang digunakan pada penelitian ini. CodeVision AVR (CVAVR) yang merupakan sebuah compiler yang berisi perintah perintah untuk membantu AVR menjalankan sistem secara keseluruhan. Hyper Terminal yang digunakan untuk melihat nilai yang didapatkan pada mikrokontroller pada komputer dan dapat disimpan dalam format teks (.txt). Program Altium digunakan untuk mendesain jalur papan PCB.
57 4.2 Daftar Komponen 4.2.1 Daftar Komponen Elektronika di Modul Elektronika Modul Mikrokontroller Tabel 4.1 Komponen pada modul mikrokontroller Nama komponen Jumlah Kapasitor 100uF 1 Kapasitor 1000uF 2 Kapasitor 100nF 4 Dioda 1N4007 1 Dioda IN5822 1 Induktor 100uH 1 IC Atmega8535 1 X-Tal 16MHz 1 Kapasitor 22pF 2 Socket 40pin 1 Header (tulang ikan) 40pin 1 Header (tulang ikan) 40Pin 1 IC regulator tegangan LM2576 1 LCD 16x2 1 Accelerometer 1 Gyroscope 1 LED Merah 1 Trimpot 10K 2 Push Button DPDT 1 Push Button Bouncing 1 Resistor 10KΩ, 1/4W 1 Resistor 1KΩ, 1/4W 2 Resistor 220Ω, 1/4W 2 Terminal Block 2pin 7 Terminal Block 3pin 1
58 Modul Motor Driver Tabel 4.2 Komponen modul motor driver Nama Komponen Jumlah Diode Fast Recovery RU4Y 8 Terminal Block 2 pin 2 Terminal Block 3 pin 3 LED Merah 2 LED Hijau 2 IC Motor driver L298 2 Header (tulang ikan) Female 40pin 1 Resistor 2,2KΩ, 1/4W 2 Resistor 47KΩ, 1/4W 2 4.3 Implementasi Sistem Setelah melalui beberapa tahap, antara lain mengadakan penelitian melalui studi kepustakaan, perancangan modul kontroller Motor DC, perancangan power supply, perancangan perangkat lunak, perancangan sistem mekanik, dan perancangan algoritma PID maka tahap selanjutnya adalah melakukan implementasi sistem dan melakukan uji coba lapangan sistem yang terdiri dari pengujian sistem secara keseluruhan dan pengambilan data.
59 4.3.1 Implementasi Perangkat Keras 4.3.1.1 Implementasi Power Supply Sebagai sumber tegangan untuk robot digunakan 1 buah aki 12 V 7 A sebagai power pada motor DC dan batere total 9.6 V yang diregulasi menjadi 5 V untuk modul keseluruhan mikrokontroller. 4.3.1.2 Implementasi Modul Kontroller Motor DC Untuk modul kontroller motor DC menggunakan 2 buah IC motor driver L298 yang di paralel agar masingmasing keluaran dapat mengalirkan arus 4 A. Aki 12 V 7 A dihubungkan ke modul kontroller untuk memutar motor DC. AVR ATMEGA 8535 digunakan untuk program utama. 4.3.1.3 Implementasi Motor DC yang digunakan Gambar 4.1 Tampilan Motor DC Yang Digunakan
60 Motor DC brush yang digunakan mempunyai tegangan 12 V dan arus sebesar 7 A, dengan spesifikasi : - Maksimal tegangan : 18 V - Maksimal arus : 7.5 A - Rasio gear adalah 1 : 75 4.3.1.4 Implementasi Mekanika Bagian mekanika dibuat sesuai dengan perancangan seperti terlihat pada gambar 4.2 Gambar 4.2 Tampilan Mekanika Yang Digunakan
61 Hasil dari implementasi mekanika ini adalah : a. Robot akan tetap dalam keadaan seimbang (tidak jatuh) pada jangkauan -10 sampai 10. Jadi di dalam jangkauan sudut tersebut robot akan diam. b. Sudut jatuh maksimal (hingga caster ball terkena lantai) adalah -40 dan 40. c. Kecepatan putar yang dihasilkan masing-masing motor DC pada roda kiri dan roda kanan berbeda dikarenakan karakteristik motor yang berbeda dan cara pengaplikasian timer untuk PWM (Pulse Width Modulation) yang berbeda. Maka ada penambahan hasil PID pada roda kiri dengan nilai 15. 4.3.2 Implementasi Perangkat lunak Untuk pemograman algoritma kalman filter dan kontrol PID digunakan perangkat lunak CodeVision AVR dengan bahasa C sebagai bahasa pemogramannya.
62 4.3.2.1 Cara Pengambilan Data Mikrokontroller ke Komputer Untuk pengambilan data ke komputer dilakukan langkah-langkah berikut. a. Hubungkan kabel USB to serial dari komputer ke modul kontroller b. Tekan push button latching pada mikrokontroller c. Tekan push button latching merah untuk mengaktifkan robot d. Nyalakan CodeVision AVR pada komputer e. Mengatur dan aktifkan terminal serial pada CodeVision AVR f. Klik connect pada CodeVision AVR g. Tekan tombol Rx untuk menyimpan data pada folder yang diinginkan h. Tekan tombol Rx stop ketika jumlah data yang diperlukan sudah terpenuhi i. Klik tombol disconnect pada CodeVision AVR j. Matikan mikrokontroller dengan menekan push button latching merah k. Buka file yang telah disimpan dalam notepad
63 4.4 Data Hasil Percobaan Setelah seluruh sistem selesai diimplementasikan ke dalam bentuk hardware, selanjutnya dilakukan pengambilan sampel data untuk melihat hasil kerja sistem. 4.4.1 Percobaan PID Percobaan ini dilakukan untuk mencari nilai K P, K I, K D yang optimal sebagai sistem kendali dengan set point 0. Yang pertama dilakukan adalah mencari nilai Kp yang optimal untuk set point 0 dengan nilai K I dan K D sama dengan 0. Lalu kemudian setelah mendapatkan osilasi yang cocok dari nilai K P, dilakukan percobaan mencari nilai K D untuk mendapatkan respon sistem yang optimal dengan nilai K P yang sudah didapat dan nilai K I tetap 0. Yang terakhir dilakukan adalah percobaan untuk mencari nilai K I yang optimal untuk menyempurnakan sistem kendali untuk keseimbangan dengan nilai K P dan K D yang sudah didapat. 4.4.1.1 Hasil Percobaan Mencari Nilai Kp Percobaan ini dilakukan untuk mencari nilai K P yang memiliki respon sistem yang baik untuk set point 0 (titik keseimbangan). Pada percobaan nilai K P ini untuk nilai K I dan K D bernilai 0.
64 Error adalah nilai yang didapat dari selisih set point ( titik yang diinginkan ) dengan actual point (sudut yang terukur hasil kalman filter). Error = set point actual point (4-1) Jika error yang dihasilkan bernilai positif berarti nilai actual point di bawah set point. Jika error yag dihasilkan bernilai negatif berarti actual point di atas set point. K P =1 Robot belum dapat berosilasi, sehingga tidak memungkinkan untuk memakai nilai K P =1. K P =2 Robot Sudah mulai berosilasi, tapi kurang kuat sehingga belum dapat membalas kearah sebaliknya. Gambar 4.3 Respon Keluaran PID K P =2, K I =0, K D =0
65 K P = 3 Respon osilasi sudah cukup kuat untuk membalas, tapi tidak dapat mencapai titik kestabilan, diperlukan peredam yaitu K D. Maka diambil nilai K p adalah 3. Gambar 4.4 Respon Keluaran PID K P =3, K I =0, K D =0 K P = 4 Respon osilasi hampir sama seperti K P = 3, karena osilasi sudah mencapai sudut maksimal robot.
66 Gambar 4.5 Respon Keluaran PID K P =4, K I =0, K D =0 4.4.1.2 Hasil Percobaan Mencari Nilai Kd Percobaan ini untuk mencari nilai K D yang memiliki respon sistem yang baik dengan set point 0 ( titik keseimbangan). Nilai K P yang bernilai 3 dari pecobaan mencari nilai K D dan nilai K I tetap bernilai 0. K D = 1, K P = 3 Osilasi belum dapat diredam.
67 Gambar 4.6 Respon Keluaran PID K P =3, K I =0, K D =1 K P = 3, K D = 2 Osilasi masih belum dapat diredam. Gambar 4.7 Respon Keluaran PID K P =3, K I =0, K D =2
68 K P = 3, K D = 3 Pada percobaan ini, robot sudah hampir dapat mencapai posisi stabil (antara sudut -10 sampai 10 ), tapi ketika mempertahankan posisi stabilnya, robot kembali berosilasi. Gambar 4.8 Respon Keluaran PID K P =3, K I =0, K D =3 K P = 3, K D = 4 Pada percobaan ini, robot sudah berhasil mencapai dan mempertahankan posisi stabil nya (antara sudut - 10 sampai 10 ) pada pengambilan data ke 400-an. Pengambilan data diambil setiap 10 ms atau 100 Hz yaitu 100 data per detik. Jadi posisi stabil dicapai selama 4 detik. Maka diambil nilai K D yaitu 4.
69 Gambar 4.9 Respon Keluaran PID K P =3, K I =0, K D =4 K P = 3, K D = 5 Pada percobaan ini, osilasi robot semakin besar dibanding menggunakan K D= 4, karena nilai K D semakin besar. Gambar 4.10 Respon Keluaran PID K P =3, K I =0, K D =5
70 K P = 3, K D = 6 Pada percobaan ini, osilasi robot semakin besar dibanding menggunakan K D= 5, karena nilai K D semakin besar. Gambar 4.11 Respon Keluaran PID K P =3, K I =0, K D =6 4.4.1.3 Hasil Percobaan Mencari Nilai K I Percobaan ini untuk mencari nilai K I yang memiliki respon sistem yang baik dengan set point 0 (titik keseimbangan). Nilai K P yang bernilai 3 dari pecobaan mencari nilai K P, dan nilai K D bernilai 4 dari percobaan mencari nilai K D.
71 K P = 3, K D = 4, K I = 0.01 Pada percobaan ini, robot berhasil memperkecil nilai steady state error nya dari 10 menjadi 4. Gambar 4.12 Respon Keluaran PID K P =3, K I =0.01, K D =4 K P = 3, K D = 4, K I = 0.1 Pada percobaan ini, robot berhasil memperkecil nilai steady state error nya dari 4 menjadi 2, serta berhasil mencapai dan mempertahankan posisi stabilnya (antara sudut -10 sampai 10 ) pada pengambilan data ke 250-an. Pengambilan data diambil setiap 10 ms atau 100 Hz yaitu 100 data per detik. Jadi posisi stabil dicapai selama 2.5 detik. Maka diambil nilai K I yaitu 0.1
72 Gambar 4.13 Respon Keluaran PID K P =3, K I =0.1, K D =4 K P = 3, K D = 4, K I = 0.5 Pada percobaan ini, nilai Ki yang terlalu besar menyebabkan sistem tidak stabil dan menyebabkan osilasi yang berlebihan Gambar 4.14 Respon Keluaran PID K P =3, K I =0.5, K D =4
73 4.4.2 Percobaan Kalman Filter Seperti yang dijelaskan sebelumnya, tujuan utama penerapan kalman filter adalah untuk mengurangi noise dari sensor accelerometer, dan mengatasi masalah nilai gyroscope yang terkadang menyimpang (drift). Algoritma kalman filter akan menyediakan nilai perkiraan sudut yang lebih baik dari hanya menggunakan accelerometer saja. Agar bekerja secara optimal, parameter-parameter dari kalman filter perlu di tuning. Percobaan ini dilakukan untuk mencari nilai dari parameter-parameter kalman filter yaitu proses noise (Q ACCEL, Q GYRO ) dan noise pengukuran (R) dengan cara manual tuning. (4-2) (4-3) Nilai dari Q ACCEL dan Q GYRO diatur tergantung dari sensor mana yang lebih kita percaya. Nilai yang lebih rendah bertanda bahwa sensor tersebut lebih dipercaya dari sensor yang lain.
74 Nilai dari matriks R menunjukan besar noise yang diperkirakan dari pengukuran, nilai yang rendah menandakan perkiraan bahwa pengukuran terkorupsi oleh noise dengan tingkat yang rendah. Tuning pada filter ini dilakukan dengan trial dan error. Ketika tuning parameter kalman filter tersebut sudah mendapatkan keluaran yang diinginkan, nilai konstan tersebut akan disimpan. Percobaan yang ditampilkan disini mewakili tuning secara trial dan error yang masing-masing percobaan dilakukan 5 kali.
75 4.4.2.1 Percobaan keakuratan nilai sudut accelerometer Pada percobaan ini, dibandingkan nilai sudut dari pembacaan accelerometer yang terbaca pada LCD dengan pembacaan menggunakan busur derajat. Table 4.3 Keakuratan accelerometer dengan sudut busur Accelerometer Sudut Busur 0 0 1 1 2 2 3 3 4 4 5 5 15 15 30 30 45 45 90 90-45 -45-30 -30-15 -15-5 -5-4 -4-3 -3-2 -2-1 -1 0 0
76 4.4.2.2 Percobaan dengan hanya menggunakan accelerometer sebagai penyeimbang robot Pada percobaan ini gyroscope dan algoritma kalman filter tidak digunakan, robot tetap dapat menyeimbangkan diri, tapi dengan pembacaan sudut dan kondisi yang tidak stabil. Gambar 4.15 Respon Accelerometer Tanpa Kalman Filter
77 4.4.2.3 Hasil Percobaan Mencari Nilai Q ACCEL, Q GYRO Percobaan ini dilakukan untuk mencari nilai Q ACCEL dan Q GYRO yang cocok dengan melihat respon kalman filter terhadap noise accelerometer (ketika didiamkan diawal dan akhir), dan respon kalman filter terhadap kekuatan/gaya eksternal (ketika diguncangkan/digetarkan). Pada percobaan ini, nilai R konstan (nilai R yang didapat dari hasil trial dan error yaitu 0.001). Hasil percobaan yang ditampilkan adalah keluaran dari accelerometer dan kalman filter. Q ACCEL = 0.01, Qg GYRO = 0.000002 Ketika nilai Q GYRO jauh lebih kecil dibanding nilai Q ACCEL, maka sinyal keluaran kalman filter lebih tenang dari keluaran accelerometer tapi hampir menyerupai. Gambar 4.16 Respon Q ACCEL = 0.01, Q GYRO = 0.000002
78 Q ACCEL = 0.001, Q GYRO = 0.2 Ketika nilai Q ACCEL lebih kecil dibanding nilai Q GYRO, maka sinyal keluaran kalman filter hampir persis seperti keluaran dari accelerometer. Gambar 4.17 Respon Qaccel=0.001, Qgyro=0.2 Q ACCEL = 0.001, Q GRYO = 0.002 Ketika nilai Q ACCEL lebih kecil sedikit dibanding Q GYRO, maka keluaran kalman filter yang didapat baik dan lebih stabil dibanding dengan keluaran dari accelerometer. Maka diambil nilai Q ACCEL yaitu 0.001 dan Q GYRO yaitu 0.002.
79 Gambar 4.18 Respon Qaccel=0.001, Qgyro=0.002 4.4.2.4 Hasil Percobaan Mencari Nilai R Percobaan ini dilakukan untuk mencari noise pengukuran (R) yang cocok. Pada percobaan ini, nilai Q ACCEL dan Q GRYO konstan (nilai Q ACCEL dan Q GRYO yang didapat dari hasil trial dan error yaitu 0.001 dan 0.002). Hasil percobaan yang ditampilkan adalah keluaran dari accelerometer dan kalman filter. R=0.000001 Ketika nilai R terlalu kecil, respon kalman filter hampir sama seperti keluaran dari accelerometer yang terdapat noise.
80 Gambar 4.19 Respon keluaran R=0.000001 R=0.001 Ketika nilai R menjadi 0.001, respon kalman filter menjadi baik dan nilai keluarannya pun lebih baik dari accelerometer yang terdapat noise. Gambar 4.20 Respon keluaran R=0.001
81 R=0.1 Ketika nilai R menjadi 0.1, respon kalman filter menjadi sangat terlambat dibandingkan dengan keluaran accelerometer walaupun nilai keluaran sudah baik. Gambar 4.21 Respon keluaran R=0.1 4.5 Evaluasi Sistem Setelah melakukan beberapa percobaan, maka dihasilkan sebuah evaluasi dari sistem berdasarkan data-data hasil percobaan yang diperoleh. Evaluasi yang dihasilkan adalah : Dari percobaan, nilai K P = 1,dan nilai K P = 2 membuat robot tidak cukup kuat membalas ke arah sebaliknya.
82 Dari percobaan, nilai K D = 1, K D = 2, K D = 3 membuat kemampuan meredam error negatif yang belum mampu untuk meredam respon dari robot. Dari percobaan, nilai K I yang lebih dari 0.1, membuat sistem dapat menjadi semakin tidak stabil ketika terjadi error yang besar. Dari percobaan mencari nilai K P, nilai K D, dan nilai K I yang optimal didapat K P = 3, K D = 4, K I = 0.1 untuk respon yang baik untuk sistem ini. Pencarian nilai parameter-parameter kalman filter konstan yang tepat didapat ketika keluaran hasil kalman filter seperti yang diinginkan yaitu lebih baik dari keluaran accelerometer yang terdapat noise. Maka didapat nilai yang optimal yaitu Q ACCEL = 0.001, Q GYRO = 0.002, R = 0.001. Penggunaan timer PWM yang dikalibrasikan ke sebuah nilai variabel yang mempunyai rentang 0-255, serta penambahan hasil PID pada roda kiri dengan nilai 15 untuk mengatasi perbedaan karakteristik motor kiri dan motor kanan sangat berperan penting dalam penyeimbangan robot roda dua ini.
83 Penerapan algoritma kalman filter membuat hasil yang lebih baik dibandingkan hanya menggunakan accelerometer dilihat dari beberapa parameter yaitu : Tabel 4.4 Perbandingan sistem menggunakan kalman filter vs accelerometer pada robot yang menggunakan kontrol PID Parameter kestabilan Input sensor Hanya accelerometer Menggunakan kalman filter Kesalahan pembacaan karena noise Settling time (waktu untuk mencapai kestabilan robot) Kemungkinan overshoot ketika robot terkena lantai ( ) 10 8s 100% 1 2.5s 1%