Didalam suatu sistem kontrol kita mengenal adanya beberapa macam aksi kontrol, diantaranya yaitu aksi kontrol proporsional, aksi kontrol integral dan aksi kontrol derivative . Masing-masing aksi kontrol ini mempunyai keunggulan-keunggulan tertentu, dimana aksi kontrol proporsional mempunyai keunggulan risetime yang cepat, aksi kontrol integral mempunyai keunggulan untuk memperkecil error , dan aksi kontrol derivative mempunyai keunggulan untuk memperkecil derror atau meredam overshot/undershot. Untuk itu agar kita dapat menghasilkan output dengan risetime yang tinggi dan error yang kecil kita dapat menggabungkan ketiga aksi kontrol ini menjadi aksi kontrol PID, dan pada penulisan ini sistem kendali yang digunakan adalah sistem kendali PID digital. Dalam kasus robot maze kita dapat menggunakan kendali PID untuk menjalankan robot agar lebih halus dalam menyelesaikan lorong.
Dalam kasus ini missal sensor ping kita namakan ping1, ping2, ping3, ping4, ping5, dari posisi tersebut dapat kita jadikan perbandingan sebagai berikut:
Pingki = ping1 + ping2+ ping3
Pingka = ping3+ ping4+ping5
PV = Pingka – Pingki (nilai kesalahan)
Max_MV = 100 (maximum nilai kesalahan)
Min_MV = -100 (minimum nilai kesalahan)
SP = 0 (nilai awal kesalahan)
Error = SP – PV (nilai kondisi ketika error)
Last_error = nilai untuk kondisi error yang terakhir terjadi.
Var_Kp = nilai untuk konstanta proporsional
Var_Ki = nilai untuk konstanta integral
Var_Kd = nilai untuk konstanta derivatif
MAXSpeed = 255 (nilai untuk kecepatan maximum)
MINSpeed = 0 (nilai untuk kecepatan minimum)
intervalPWM = (MAXSpeed – MINSpeed) / 5;
MAXPWM = MAXSpeed ;
MINPWM = MINSpeed;
Error = SP – PV;
P = (var_Kp * error) / 10;
I = I + error;
I = (I * var_Ki) / 10;
rate = error – last_error;
D = (rate * var_Kd) / 10;
last_error = error;
MV = P + I + D;
if (MV == 0) {
lpwm = MAXPWM;
rpwm = MAXPWM;
}
else if (MV > 0) { // alihkan ke kiri
rpwm = MAXPWM – ((intervalPWM – 20) * MV);
lpwm = (MAXPWM – (intervalPWM * MV) – 20);
if (lpwm < MINPWM) lpwm = MINPWM;
if (lpwm > MAXPWM) lpwm = MAXPWM;
if (rpwm < MINPWM) rpwm = MINPWM;
if (rpwm > MAXPWM) rpwm = MAXPWM;
}
else if (MV < 0) { // alihkan ke kanan
lpwm = MAXPWM + ( ( intervalPWM – 20 ) * MV);
rpwm = MAXPWM + ( ( intervalPWM * MV ) – 20 );
if (lpwm < MINPWM) lpwm = MINPWM;
if (lpwm > MAXPWM) lpwm = MAXPWM;
if (rpwm < MINPWM) rpwm = MINPWM;
if (rpwm > MAXPWM) rpwm = MAXPWM;
}
if (MV>Max _MV) { //belokan kanan siku
BlokKanan(); // belok kanan patah
lpwm = MAXPWM; //
rpwm = MINPWM; //
}
else if(MV<Min_MV) { //belokan kiri siku
BlokKiri(); // belok kiri patah
lpwm = MAXPWM; //
rpwm = MAXPWM; //
Pada dasarnya sistem PID merupakan system yang kompleks, system yang bekerja berdasarkan nilai yang memiliki range yang terbatas dan konstan. Sehingga untuk aplikasinya system PID sangat cocok untuk robot yang memiliki arena yang terbatas seperti arena yang menggunakan garis atau lorong untuk penyelesaian masalahnya . Sistem PID seperti ini sering digunakan untuk algoritma Line Follower, robot maze, system kendali ketinggian untuk robot terbang yang memerlukan penanganan system dengan risetime yang tinggi dan nilai error yang kecil, tetapi sayangnya system ini kurang bagus untuk arena yang luas.
Maaf klo repost gan :)
Salam Black_id's Zone :)
Zona terlarang untuk orang-orang yang kerjaanya hanya berpangku tangan tanpa ada usaha untuk menjadi seseorang yang sukses...,,, Semiskin-miskin orang ialah orang yang kekurangan adab dan budi pekerti ~Hukama.... Ciri orang yang beradab ialah dia sangat rajin dan suka belajar, dia tidak malu belajar daripada orang yang berkedudukan lebih rendah darinya ~ Confucius..... Salam Black_id's Zone :)
Tampilkan postingan dengan label Robotika. Tampilkan semua postingan
Tampilkan postingan dengan label Robotika. Tampilkan semua postingan
Minggu, 06 Februari 2011
Kamis, 03 Februari 2011
Kontes Robot Cerdas Indonesia (KRCI ) 2011
KRISepenuhnya Mengadopsi ABUROBOCONhttp://aburobocon2011.com/
KRCI 2011 dibagi dalam 3 Divisi, yaitu:
1. Divisi Beroda Robot Cerdas Pemadam Api
Suatu divisi dimana robot menggunakan roda sebagai alat geraknya dengan misi mencari dan
memadamkan api di arena lapangan berbentuk simulasi interior suatu rumah. Pada divisi ini
yang diutamakan adalah kemampuan robot bernavigasi dan bermanuver serta kecepatan
dalam menyelesaikan misinya tersebut. Robot yang berhasil menemukan dan memadamkan
api tercepat dinyatakan sebagai pemenang.
2. Divisi Berkaki Robot Cerdas Pemadam Api
Sama halnya dengan Divisi Senior Beroda, hanya saja robot menggunakan kaki sebagai alat
geraknya.
3. Divisi Battle RoboSoccer Humanoid League
Divisi ini mempertandingkan 2 robot humanoid bermain sepakbola. Pertandingan bertujuan
mencari, membawa dan menendang bola kedalam gawang lawan. Robot yang memasukkan
bola terbanyak dinyatakan sebagai pemenang.
Rule :
http://www.mediafire.com/?q4tx98jr290bq6v
KRSI
Temanya adalah “ Robot Penari Klono Topeng ”
Salam Black_id's Zone :)
Selasa, 02 November 2010
TUNING KONTROL PID Pada Robot Line Follower
TUNING KONTROL PID LINE FOLLOWER
Tunning kontrol PID ini bertujuan untuk menentukan paramater aksi kontrol Proportional, Integratif, Derivatif pada robot line follower. Proses ini dapat dilakukan dengan cara trial and error . Keunggulan cara ini kita gak perlu mengidentifikasi plant, membuat model matematis plant, menentukan parameter pant dengan grafis ataupun analitis…cukup dengan cara coba-coba memberikan konstanta P-I-D pada formula PID hingga di peroleh hasil yang di inginkan, dengan mengacu pada karakteristik masing-masing kontrol P-I-D.
Nach kalo kita menggunakan kendali PID artinya kita nantinya bertujuan mengolah suatu sinyal kesalahan atau error, nilai error tersebut diolah dengan formula PID untuk dijadikan suatu sinyal kendali atau sinyal kontrol yang akan diteruskan ke aktuator. Gampangnya perhatikan saja blok diagram umpan balik loop tertutup pada perancangan kedali PID pada robot line follower berikut ini:
Dari blok diagram diatas dapat q jelasin sebagai berikut
- SP = Set point, secara simple maksudnya ialah suatu prameter nilai acuan atau nilai yang kita inginkan.
- 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).
- Error = nilai kesalahan, nach kalo yang ini pengertiannya ialah Deviasi atau simpangan antar variabel terukur atau bobot sensor (PV) dengan nilai acuan (SP)
Setelah memahami alur pengendalian PID nach berikut ilustrasi pemberian bobot sensor (nilai kesalahan pembacaan sensor) pada robot line follower:
dari blok iliustrasi tersebut dapat q jelasin sebagai berikut:
proses pemberian bobot sensor dapat dilakukan dengan proses pemetaan (mapping) pembacaan sensor terhadap garis, berikut salah satu sample proses mapping sensor:
11111110 (PV=-7)
11111000 (PV=-6)
11111100 (PV=-6)
11111101 (PV=-5)
11110001 (PV=-4)
11111001 (PV=-4)
11111011 (PV=-3)
11100011 (PV=-2)
11110011 (PV=-2)
11110111 (PV=-1)
11100111 (PV=0)
11101111 (PV=1)
11000111 (PV=2)
11001111 (PV=2)
11011111 (PV=3)
10001111 (PV=4)
10011111 (PV=4)
10111111 (PV=5)
00011111 (PV=6)
00111111 (PV=6)
01111111 (PV=7)
11111111 (PV=8 / -8)
kondisi ideal robot terjadi saat kondisi robot pada PV= 0 (misal kondisi nilai sensor = 11100111, nilai 0 merepresentasikan sensor mengenai garis). Atau SP = 0 ialah kondisi ideal dari robot line follower. Jika PV tidak sama dengan 0 berarti robot tidak berada pada kondisi ideal dan artinya ada sinyal kesalahan (error). Pada kondisi error inilah formula PID akan menentukan hasil sinyal kendalinya. Nach berikut ini penjelasan tentang penerapan PID pada robot line follower:
Proporsional kontrol
Kondisi ideal pada robot adalah bergerak maju lurus mengikuti garis, dengan kata lain PV = 0 (nilai sensor = 11100111). Dari sini dapat diasumsikan bahwa Set Point (SP) / kondisi ideal adalah saat SP = 0. Nilai sensor yang dibaca oleh sensor disebut Process Variable (PV) / nilai aktual pembacaan. Menyimpangnya posisi robot dari garis disebut sebagai error (e), yang didapat dari e = SP – PV. Dengan mengetahui besar error, mikrokontroler dapat memberikan nilai PWM motor kiri dan kanan yang sesuai agar dapat menuju ke posisi ideal (SP = 0). Besarnaya nilai PWM ini dapat diperoleh dengan menggunakan kontrol Proporsional (P), dimana P = e Kp (Kp adalah konstanta proporsional yang nilainya di set sendiri dari hasil tuning).
Saat Sensor = 11111111 nilai PV dapat ditentukan dengan cara membandingkan kondisi PV sebelumnya, jika PV lebih besar dari 0, maka nilai PV dapat diasumsikan 30 dan jika PV kurang dari 0, maka nilai PV dapat diasumsikan -30 atau dengan cara menyimpan nilai error yang lalu.
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
Sp_sensor = 0 ‘setpoint sensor
Error = Sp_sensor – Pv ‘nilai error
P = Kp * Error ‘proporsional kontrol
Aplikasi kontrol proporsional pada PWM ialah sebagai berikut:
Pwm = Sp_kecepatan + P ‘motor kiri
Pwm = Sp_kecepatan – P ‘motor kanan
Derivatif kontrol
Jika pergerakan robot masih terlihat bergelombang, bisa ditambahkan kontrol Derivatif (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 derivatif. Dengan mendapatkan nilai Kd yang tepat pergerakan sisi ke sisi yang bergelombang akibat dari kontrol proporsional bisa diminimalisasi. Nilai D didapat dari D = Kd/Ts * rate, dimana Ts ialah time sampling atau waktu cuplik dan 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. Untuk menambahkan kontrol D, program dimodifikasi menjadi:
Perhitungan kendali proporsional + Derivatif
Sp_sensor = 0 ‘setpoint sensor
Error = Sp_sensor – Pv ‘nilai error
P = Kp * Error ‘proporsional kontrol
D1 = Kd * 10 ‘derivatif kontrol
D2 = D1 / Ts
D3 = Error – Last_error ‘rate
D = D2 * D3
Last_error = Error ‘error lampau
Pd = P + D ‘proporsional-derivatif kontrol
Aplikasi kontrol proporsional dan drivatif pada PWM ialah sebagai berikut:
Pwm = Sp_kecepatan + Pd ‘motor kiri
Pwm = Sp_kecepatan – Pd ‘motor kanan
Integratif kontrol
Jika dengan P + D sudah membuat pergerakan robot cukup smooth, maka penambahan Integratif menjadi opsional. Jika ingin mencoba-coba bisa ditambahakan Integratif (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 Integratif bisa dikurangi. Nilai akumulasi error didapat dari: error + last_error. Untuk menambahkan kontrol I, maka program di modifikasi menjadi:
Perhitungan kendali proporsional + integratif + derivatif
Sp_sensor = 0 ‘setpoint sensor
Error = Sp_sensor – Pv ‘nilai error
P = Kp * Error ‘proporsional kontrol
D1 = Kd * 10 ‘derivatif kontrol
D2 = D1 / Ts
D3 = Error – Last_error ‘rate
D = D2 * D3
I1 = Ki / 10 ’integratif kontrol
I2 = Error + Last_error ‘akumulasi error
I3 = I1 * I2
I = I3 * Ts
Last_error = Error ‘error lampau
Pd = P + D ‘proporsional-derivatif kontrol
Pid = Pd+I ‘proporsional-integratif-derivatif
Aplikasi kontrol proporsional, integratif dan drivatif pada PWM ialah sebagai berikut:
Pwm = Sp_kecepatan + Pid ‘motor kiri
Pwm = Sp_kecepatan – Pid ‘motor kanan
Parameter Nilai Konstanta PID
Nilai konstanta perhitungan PID di tuning secara trial and error, proses ini dilakukan dengan metode mencoba-coba 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:
- Langkah awal gunakan kontrol proporsional terlebih dahulu, abaikan konstanta integratif dan derivatifnya dengan memberikan nilai nol pada integratif dan derivatif.
- Tambahkan terus konstanta proporsional maksimum hingga keadaan stabil namun robot masih berosilasi.
- Untuk meredam osilasi, tambahkan konstanta derivatif dengan membagi dua nilai proporsional, amati keadaan sistem robot hingga stabil dan lebih responsif.
- Jika sistem robot telah stabil, kontrol integratif dapat menjadi opsional, dalam artian jika ingin mencoba-coba tambahkan kontrol integratif tersebut, namun pemberian nilai integratif yang tidak tepat dapat membuat sistem robot menjadi tidak stabil.
- Nilai set point kecepatan dan nilai batas bawah/atas memberikan patokan kecepatan robot.
- Nilai time sampling (waktu cuplik) juga mempengaruhi perhitungan PID, tentunnya saat penggunaan kontrol integratif dan derivatif.
- Periksa kembali perfoma sistem hingga mendapatkan hasil yang memuaskan.
Ok selamat mencoba gan :)
Salam Black_id's Zone :)
Langganan:
Postingan (Atom)





