1
KENDALI PID DAN LOGIKA FUZZY UNTUK OPTIMALISASI
PERGERAKAN MOBILE ROBOT
M.Fahmi Ibnu Mas’ud
2)M.Nasrul Hafidz
1)3)Harianto 4)Madha Christian Wibowo 1) Program Studi S-1 Sistem Komputer, STIKOM Surabaya. Email: nasrul.hafidz@gmail.com 2) Program Studi S-1 Sistem Komputer, STIKOM Surabaya. Email: fahmi.roboticsystem@gmail.com
3) Program Studi S-1 Sistem Komputer, STIKOM Surabaya. Email: hari@stikom.edu 4) Program Studi S-1 Sistem Komputer, STIKOM Surabaya. Email: madha@stikom.edu
Abstract
KRI (Indonesian Robot Contest) is one of the race-level colleges both private and state in
Indonesia. Most robots are contest is the type of mobile robot. Obstacles often encountered in the
race KRI is the intensity of light that enters the sensor photodioda causing impaired. To overcome this
optocoupler can be used with this sensor the robot can walk with relying on the motor right and left
motor. Optocoupler is issuing digital voltage sensor by exploiting holes contained disc motor.
Distance and time the robot is used to analyze how much the speed of the robot by using fuzzy
methods, while the method of PID is used to control the motor rotation right and left in order to go
hand in hand and the same. Programming is used to enter the program to a minimum system is to use
a software system codevision Avr.
Keywords : Photodiode, microcontroller, Optocoupler, Fuzzy method, PID method, Codevision Avr.
1. PENDAHULUAN
1.1 Latar Belakang
KRI (Kontes Robot Indonesia) adalah
salah satu perlombaan tingkat nasional untuk
level perguruan tinggi. Perlombaan ini
diadakan setiap tahun dengan tema yang
berbeda–beda. Contohnya pada tahun 2010
temanya adalah “Bersama Membangun Candi
Prambanan”, pada tahun 2011 adalah
“Larungan”, pada tahun 2012 adalah “Grebeg
Berkah Kedamaian dan Kesejahteraan”. Jenis
robot yang diperlombakan pada KRI
kebanyakan adalah mobile robot yang harus
mencapai poin-poin tertentu pada arena yang
sudah ditentukan dengan akurat dan cepat.
Pada umumnya, robot yang dibuat
menggunakan garis lapangan sebagai
panduan(line follower). Sehingga supaya robot
dapat mengikuti garis lapangan, robot
dilengkapi dengan sensor garis, yaitu sensor
photodioda. Sensor photodioda adalah sensor
yang tegangan outputnya sesuai dengan
intensitas cahaya yang diterimanya, karena
itu sensor tersebut sangat sensitif terhadap
cahaya.
Penggunaan sensor photodioda pada
robot di KRI memiliki permasalahan, yaitu
lampu sorot yang digunakan sangat terang
sehingga mengganggu sensor meskipun
sensor sudah diberi tutup sebagai langkah
pengamanan. Untuk mengatasi masalah
tersebut, sensor alternatif yang dapat
digunakan pada mobile robot dalam
perlombaan KRI tersebut adalah rotary
encoder,
yang dapat digunakan untuk
menghitung putaran motor. Dengan demikian,
jarak yang sudah ditempuh dapat diketahui.
Dengan menggunakan jarak dan
waktu sebagai input, dibuat sistem fuzzy untuk
mengatur kecepatan robot agar jarak yang
sudah ditentukan dapat ditempuh dengan
2
waktu yang diinginkan. Output kecepatan dari
fuzzy akan diolah oleh pengendali PID
(Proporsional Integral Derivative) untuk
mengatur kecepatan putaran motor kanan dan
kiri dengan menggunakan sinyal PWM(Pulse
With Modulation).
1.2 Tujuan
Adapun tujuan dari pembuatan kendali
mobile robot adalah sebagai berikut:
1. Untuk merancang sistem fuzzy yang
digunakan untuk optimalisasi kecepatan
sesuai dengan jarak dan waktu tempuh
robot.
2. Untuk merancang pengendali PID yang
digunakan untuk mengendalikan putaran
motor pada mobile robot.
1.3 Pembatasan Masalah
Dalam perancangan dan pembuatan alat
ini, terdapat beberapa pembatasan masalah,
antara lain :
1.
Perancangan dan pembuatan mobile robot
ini menggunakan minimum system AVR
(Alf and Vegard’sRisc processor) yang
diproduksi oleh ATMEL.
2.
Proses kecepatan robot menggunakan
fuzzy logic.
3.
Proses pengendalian putaran motor pada
mobile robot menggunakan metode kontrol
PID.
4.
Sistem yang dikontrol adalah motor DC
12V.
II. DASAR TEORI
2.1 Kendali Fuzzy
Fuzzy berarti samar, kabur atau tidak
jelas. Fuzzy adalah istilah yang dipakai oleh
Lotfi A Zadeh pada bulan Juli 1964 untuk
menyatakan kelompok / himpunan yang dapat
dibedakan dengan himpunan lain berdasarkan
derajat keanggotaan dengan batasan yang tidak
begitu jelas (samar), tidak seperti himpunan
klasik yang membedakan keanggotaan
himpunan menjadi dua, himpunan anggota atau
bukan anggota.
Kendali logika fuzzy dilakukan dalam
tiga tahap, yaitu fuzzyfication, evaluasi aturan
(basis pengetahuan) dan mekanisme
pengambilan keputusan dengan metode rerata
terbobot.
Metode Sugeno
Metode ini diperkenalkan oleh
Takagi-Sugeno Kang pada tahun 1985,
sehingga metode ini sering juga dinamakan
dengan metode TSK.
Menurut Cox (1994), metode TSK
terdiri dari 2 jenis yaitu :
1.
Metode Fuzzy Sugeno Orde-Nol
secara umum bentuk model fuzzy Sugeno
Orde-Nol adalah :
IF (x1 is A1)*(x2 is A3)*(x3 is A3)*...*(xN
is AN) THEN z = k
Dengan Ai adalah himpunan fuzzy ke-i
sebagai anteseden, dan k adalah suatu
konstanta (tegas) sebagai konsekuen.
2.
Metode Fuzzy Sugeno Orde-Satu
Secara umum bentuk model Fuzzy
Sugeno Orde-Satu adalah :
IF (x1 is A1)*...*(xN is AN) THEN z =
p1*x1 + ...+ pN*xN + q
Dengan Ai adalah himpunan Fuzzy ke-i
sebagai anteseden, dan pi adalah suatu
konstanta (tegas) ke-i dan q juga merupakan
konstanta dalam konsekuen.
Apabila komposisi aturan
menggunakan metode SUGENO, maka
defuzzyfication dilakukan dengan cara
mencari nila rata-ratanya (Kusumadewi,
2010).
2.2 Kotrol PID (Proporsional Integral
Derivatif )
Pengendali PID (Proporsional
Integral Derivatif), merupakan gabungan dari
tiga sistem kendali yang bertujuan untuk
mendapatkan keluaran dengan risetime yang
tinggi dan galat yang kecil. Seperti yang kita
ketahui bahwa sistem kendali Proporsional
memiliki keunggulan yaitu risetime yang
cepat tetapi sangat rentan dengan
overshot/undershot, sistem kendali integral
memili
sedang
keungg
mereda
implem
dan d
dengan
capaci
sedang
secara
suatu
dijalan
Dalam
(setting
sensor
sehingg
(nol),
presen
mengim
digital,
persam
2.3 Mi
CMOS
RISC
Hampi
siklus
genera
dengan
ekstern
watchd
(Analo
With M
progra
memor
sistem
Periph
Komu
Interfa
memili
Komun
pada
microc
(Slave
iki keunggul
gkan sistem k
gulan untuk m
am overshot/u
mentasinya d
digital, PID
n kompone
tor, dan
gkan PID
program.
PID digital
proses dar
nkan dengan
prosesnya
g point), da
saat ini
ga galat yang
atau nilai se
t value
mplementasik
, maka PID
maan diskrit (E
icrocontroller
AVR meru
S 8-bit buatan
(Reduced I
ir semua instr
clock. AVR
al-purpose,
n mode comp
nal, serial
dog timer, dan
og to Didital C
Modulation) in
AVR jug
ammable flash
ri program un
menggunak
heral Interface
nikasi SP
ace)
Microcontro
iki kemampu
nikasi SPI (S
microcontro
controller Ma
Select). K
lan untuk m
kendali Deriv
memperkecil d
/undershot. PI
dibedakan m
analog diim
en elektron
operationa
digital diim
pada dasarn
ri suatu p
n menggunak
nilai yang k
an nilai ha
(present v
g didapatkan
etting point
e. Untu
kan kendali P
D harus diu
Embedded, 20
r ATmega16
upakan seri m
n Atmel, ber
Instruction S
ruksi dieksek
R mempuny
timer/count
pare, interrup
UART,
n mode powe
Converter) da
nternal.
a mempuny
h on-chip yan
ntuk diprogra
kan hubunga
e) (ATMEL, 2
PI
(Serial
oller kelu
uan untuk kom
Serial Pheriph
oller ini b
aster merese
Kemudian m
meredam gal
vative memili
delta error at
ID berdasark
menjadi anal
mplementasik
nika
resisto
al amplifie
mplementasik
nya merupak
program ya
kan komput
kita masukk
asil pembaca
value) dipros
sama dengan
sama deng
uk dap
PID pada siste
ubah kedala
006).
6
microcontroll
rbasis arsitekt
Set Compute
kusi dalam sa
ai 32 regist
ter fleksib
pt internal d
programmab
er saving, AD
an PWM (Pul
yai In-syste
ng mengijink
am ulang dala
an SPI (Ser
2011).
Pheripher
uarga Atm
munikasi seri
heral Interfac
erjalan keti
t nilai pin S
microcontroll
lat,
iki
tau
kan
og
kan
or,
er,
kan
kan
ang
er.
kan
aan
ses
n 0
gan
pat
em
am
ler
tur
er).
atu
ter
bel
dan
ble
DC
lse
em
kan
am
ial
ral
mel
ial.
ce)
ika
SS
ler
M
dik
SP
me
me
tel
of
bit
int
3.1
ata
dis
dig
ars
be
3.2
aster dan slav
kirim pada r
PDR. Setelah
enghasilkan p
emulai komu
lah dilakukan
f Transmision
t SPIE pad
terrupt.
Gambar 1. In
III.
1 Perancanga
Robot y
as 2 buah rod
sisi kiri dan
gunakan untu
sitektur robot
rikut.
Gambar 1
2 Perancanga
ve menyiapka
register mere
h itu microc
pulsa clock pa
unikasi data.
n maka SPIF
Flag) akan d
a SPCR m
nterkoneksi S
(Saputra, 201
PERANCAN
an Mekanik
yang digunak
da disertai m
n kanan ba
uk menjalank
t secara deta
Desain kesel
an Minimum
an data yang
eka yaitu reg
controller M
ada pin SCK u
. Pertukaran
(Setting The
diset, jika inte
aka akan te
PI Master-sla
10)
NGAN
Robot
kan penulis t
motor yang ter
agian base
kan robot. Be
ail adalah se
luruhan robot
m sistem
3
akan
gister
Master
untuk
data
e End
errupt
erjadi
ave
terdiri
rletak
robot
erikut
bagai
t
4
Secara garis besar dari keseluruhan
sistem pada alat ini sesuai dengan blok diagram
pada Gambar 2.
Gambar 2. Blok diagram sistem keseluruhan
sistem ini memiliki input berupa jarak
dan waktu yang kemudian akan menjadi
inputan
fuzzy yang diproses oleh
microcontroller ATmega 16 sebagai Master.
Dalam metode fuzzy yang digunakan adalah
metode Sugeno yang juga dikenal sebagai
metode min-max. Setelah proses fuzzy selesai
dilakukan oleh mikro Master, maka mikro
Master akan mengeluarkan output berupa
kecepatan (dalam satuan rpm) yang kemudian
akan dikirim ke microcontroller ATmega 8
sebagai slave. Mikro slave pada tugas akhir kali
ini berfungsi sebagai pengontrol motor kanan
dan motor kiri yang satu sama lain tidak saling
berkomunikasi.
Pada mikro slave dilakukan proses kendali PID
yang digunakan untuk mengontrol motor kanan
dan motor kiri. Di mana proses PID
mendapatkan input berasal dari mikro Master
yang mengirimkan data rpm yang selalu
berubah-ubah sesuai dengan output fuzzy yang
dihasilkan.
3.3 Perancangan Driver Motor L298
Driver motor merupakan salah satu
komponen terpenting dalam pengerjaan tugas
akhir kali ini, di mana driver motor digunakan
sebagai pengendali motor DC. Dalam konteks
tugas akhir kali ini driver motor yang
digunakan penulis adalah komponen driver
motor L298.
Gambar 3. Rangkaian driver motor L298
3.3 Program kendali Fuzzy
Program kendali fuzzy terdiri atas
fuzzyfication, evaluasi aturan, mekanisme
pengambilan keputusan metode Sugeno.
Keluaran pada proses mekanisme
pengambilan keputusan metode Sugeno
merupakan hasil dari proses kendali fuzzy
secara keseluruhan untuk mendapatkan nilai
tegasnya yaitu sinyal kontrol (rpm). Blok
diagram program kendali fuzzy diperlihatkan
pada Gambar 4.
5
Gambar 4. Flowchart fuzzy logic
Fuzzyfication
Fuzzyfication adalah proses pemetaan
input crisp ke dalam himpunan-himpunan fuzzy
dalam bentuk fungsi keanggotaan. Tujuan dari
fuzzyfication adalah untuk mendapatkan derajat
keanggotaan dari hasil pemetaan input crisp
kedalam fungsi keanggotaan yang bersesuaian.
Derajat keanggotaan bernilai antara 0 dan 1.
Tahapan awal proses fuzzyfication adalah
menentukan parameter-parameter fungsi
keanggotaan pada setiap himpunan fuzzy
masukan. Pada pemrograman fuzzyfication ini
digunakan parameter fungsi keanggotaan
masukan berupa nilai jarak dan nilai waktu.
Gambar 5 dan Gambar 6 merupakan parameter
fungsi keanggotaan jarak dan waktu.
Gambar 5 Fungsi keanggotaan jarak
Gambar 6 Funsi keanggotaan waktu
Sedangkan realisasi proses
memperoleh derajat keanggotaan dari masing
– masing fungsi keanggotaan adalah sebagai
berikut.
dk[0]=derajat_keanggotaan(-900,-800,0,100,s_jarak); dk[1]=derajat_keanggotaan(0,400,40 0,800,s_jarak); dk[2]=derajat_keanggotaan(400,800, 1200,1600,s_jarak); dk[3]=derajat_keanggotaan(1200,160 0,3000,3400,s_jarak); dk[4]=derajat_keanggotaan(-20,-16,0,1,t_waktu); dk[5]=derajat_keanggotaan(0,4,4,8, t_waktu); dk[6]=derajat_keanggotaan(4,8,12,1 6,t_waktu); dk[7]=derajat_keanggotaan(12,16,30 ,34,t_waktu);Evaluasi Aturan
Rule set / Evaluasi aturan adalah
proses mengevaluasi derajat keanggotaan
tiap-tiap fungsi keanggotaan himpunan fuzzy
masukan ke dalam basis aturan yang telah
ditetapkan. Tujuan dari evaluasi aturan ini
adalah menentukan derajat keanggotaan dari
keluaran fuzzy. Sebelum melakukan evaluasi
aturan terlebih dahulu ditetapkan basis aturan.
Basis aturan merupakan keseluruhan aturan
dari kombinasi dua masukan yang mungkin.
6
Secara lengkap, jumlah kombinasi yang
mungkin dari dua himpunan fuzzy masukan
dengan masing-masing tiga fungsi keanggotaan
sehingga jumlah aturannya adalah sembilan
aturan. Basis aturan yang dibuat berdasarkan
tingkah laku plant yang diinginkan.
Tabel 1. Basis aturan kendali fuzzy
Jarak
Waktu
Seles
ai
Dekat Seda
ng
Jauh
selesai berhe
nti
berhen
ti
berhe
nti
berhen
ti
Habis berhe
nti
Berhe
nti
Seda
ng
Cepat
Sedang berhe
nti
Lamba
t
Seda
ng
Cepat
Lama berhe
nti
Lamba
t
lamb
at
lambat
pengambilan keputusan yang
digunakan dalam pemrograman ini adalah
implikasi Min. Setelah proses fuzzyfication
dieksekusi, dilakukan proses agregasi dengan
mengambil nilai maksimal dari masing–masing
fungsi keanggotaan variable keluaran. Realisasi
proses evaluasi aturan dalam bentuk program
adalah sebagai berikut :
nilai_penyebut = k = 0; for (i = 0; i < 4; i++) { for (j = 4; j < 8; j++) { u[k]=rule_set(dk[i],dk[j]); nilai_penyebut= nilai_penyebut+u[k++]; } }k=0;
float rule_set(float a,float b) {
float nilai; nilai = fmin(a,b); return nilai;}
Defuzzyfication
Defuzzyfication adalah kebalikan dari
proses fuzzyfication, yaitu mengubah himpunan
fuzzy keluaran menjadi keluaran tegas (crisp).
Pengubahan ini diperlukan karena konstanta
kendali PID hanya mengenal nilai tegas sebagai
variabel sinyal kontrol. Perancangan ini,
menggunakan sebuah himpunan fuzzy
keluaran dengan fungsi keanggotaannya
berupa singleton, dapat dilihat sebagai berikut
:
Gambar 7 Fungsi keanggotaan singleton
Hasil keluaran crisp output akan
dikirim ke slave dengan komunikasi spi
sebagai siinyak control PID. Realisasi proses
pengambilan keputusan metode sugeno
menjadi bentuk crisp output dalam bentuk
program adalah sebagai berikut:
nilai_pembilang = 0; for (i=0;i < 16; i++)
nilai_pembilang = nilai_pembilang + u[i]; if (nilai_penyebut != 0) RPMdata = nilai_pembilang/nilai_penyebut; else RPMdata = 0;
3.4 Kendali PID
(Proportional-Integral-Derivative)
Pada desain tugas akhir kali ini
kontrol PID mendapat inputan yang berasal
dari metode fuzzy yang sebelumnya
melakukan proses perhitungan fuzzyfication
yang menghasilkan output berupa kecepatan.
Dibawah ini merupakan formula kendali
kontrol PID yang digambarkan melalui sebuah
flowchart adalah sebagai berikut :
7
Start Error = sp - pv P = kp*error sn = sn + error Over flow Y Sn = 0x3ffh N I = ki*snD_error = error – error_lm
Over flow Y D_error = 0x3ffh N D = kd*D_error PID = P + I + D error_lm = error pwm = pwm + PID Input : sp=output fuzzy Inisialisasi : kp,ki,kd sn < 0 sn = 0 sn = sn Y N D_error < 0 D_error = 0 D_error = D_error N Y
Gambar 8. Flowchart kontrol PID
Dari program flowchart di atas dapat
dilihat bahwa inputan kontrol PID berasal dari
outputan
fuzzy berupa kecepatan yang
kemudian diolah melalui perumusan kontrol
PID.
Pada kontrol PID terdapat feedback
atau yang disebut dengan PV (Pivot) dari motor
DC yang telah diolah oleh sensor rotary
encoder
yang akan digunakan sebagai
perhitungan kontrol PID. Berikut merupakan
cuplikan program pengambilan feedback oleh
sensor rotary encoder :
Pv = 0;
delay_ms(100); pv = TCNT0*10; pv = (pv/55)*60;
Berikut merupakan cuplikan program
kontrol P, kontrol I, dan kontrol D sebagai
berikut :
1.
Kontrol P kp = 0.5; error = sp - pv; p = kp*error;2.
Kontrol I Ki = 0.00001; sn = sn_lm + error; if (sn > 1023) { sn = 1023; } else if (sn < 0) { sn = 0; } pi = ki*sn;3.
Kontrol D kd = 0.0001;delta_e = error - error_lm; if (delta_e > 1023) { delta_e = 1023; } else if (delta_e < 0) { delta_e = 0; } d = kd*delta_e;