Kontroller Kecepatan dan Arah Robot Line Tracker Menggunakan Teknik Adaptive Fuzzy
Dalam beberapa tahun terakhir ini teknologi fuzzy mulai berkembang sangat pesat. Hal ini ditandai dengan munculnya berbagai fuzzy microprocessor seperti NLX220 atau ST52x301 dari perusahaan semikonduktor SGS Thompson. Perusahaan semikonduktor Motorola pun ikut meramaikan dunia kontrol fuzzy dengan membuat sebuah kernel fuzzy pada mikrokontrollernya seperti 68HC11, 68HC05.
Sistem kontrol yang menggunakan teknik fuzzy dapat diselesaikan dengan menggunakan 2 jenis mikrokontroller, yaitu mikrokontroller fuzzy dan mikrokontroller biasa.
NLX220 atau ST52x301 merupakan chip-chip mikrokontroller fuzzy yang tidak umum didapatkan dipasaran Surabaya sedangkan 68HC11, 68HC05 dan AT89C51 merupakan mikrokontroller biasa yang banyak dijumpai di Surabaya. Mikrokontroller fuzzy merupakan mikrokontroller yang dikhususkan untuk mengolah input/output menggunakan teknik fuzzy sehingga hanya memerlukan interface input dan output saja untuk menerima input dan mengontrol output.
Motorola dengan mikrokontrollernya, 68HC11 dan 68HC05 membangun sebuah kernel fuzzy melalui perangkat lunak FUDGE (Fuzzy Design Generator). Fasilitas yang dimiliki oleh FUDGE adalah pembuatan tabel-tabel fungsi keanggotaan, tabel-tabel rule, dan tabel-tabel nilai central of gravity secara grafis dan fasilitas simulasi.
Karena IC-IC tersebut di atas harganya relatif mahal (68HC11) maka dicoba membuat sebuah kernel fuzzy yang dibangun di atas mikrokontroller keluarga MCS 51 yakni AT89C51 yang harganya lebih murah. Kelebihan dari kernel fuzzy ini adalah kemampuan untuk membangun rule yang lebih sesuai dengan beberapa rule yang telah dibangun di dalam rule base. Jadi rule-rule yang baru merupakan rule-rule baru yang melengkapi rule-rule yang telah dibangun pertama kali di dalam rule base.
Sistem kontrol fuzzy pada kontroller kecepatan dan arah robot line tracker ini ini dibangun dalam 4 tahap :
Di dalam kernel fuzzy, setiap label pada setiap input dan output diberi nomor label dan nomor label untuk antecedent mulai 0 sampai 7Fh sedangkan nomor label untuk consequent mulai 80h sampai FEh dan FFh digunakan sebagai tanda akhir dari rule base.
Kernel fuzzy yang dibangun meliputi 4 bagian utama :
Dimana ci merupakan nilai central of gravity dan mi merupakan nilai elemen matrik output fuzzy.
Regenerasi Rule
Proses regenerasi rule merupakan proses yang paling penting sehingga sistem kontrol ini dapat dikatakan sebagai adapative. Bagian ini akan mencari rule-rule baru berdasarkan input/output crisp saat itu. Proses regenerasi rule membutuhkan fungsi keanggotaan untuk input dan output untuk memetakan input dan output saat itu. Proses pembentukan rule dilakukan dengan mencari elemen yang paling besar dari input/output matrik yang dihasilkan dari proses pemetaan input dan output. Setelah didapatkan rule yang baru maka perlu dicari, apakah rule yang baru terbentuk itu sudah ada didalam rule base atau belum. Jika belum ada maka rule yang baru terbentuk ditambahkan ke dalam rule base yang baru.
Penulisan Ruler
Sintak penulisan rule yang digunakan adalah :
IF antecedent1 AND antecedent2 AND .....THEN consequent1 AND consequent2 AND .....
Sebagai contoh, jika terdapat rule :
IF the speed is SLOW and direction is CENTER then the front PWM is CENTER and Back PWM is MEDIUM.
Maka penulisan rule di dalam bahasa assembly adalah :
1: DB $00,$07,$82,$86
Dimana $00 merepresentasikan nomor label SLOW, $07 merepresentasikan label CENTER dan seterusnya. Nomor label baik antecedent maupun consequent dapat dilihat pada tabel.
Representasi Fungsi Keanggotaan dalam Assembler
Fungsi keanggotaan didalam kernel fuzzy ini direpresentasikan dalam 6 byte. 4 Byte sebagai titik-titik sudut dalam segitiga atau trapesium pada setiap label di fungsi keanggotaanya. Dan 2 byte selanjutnya adalah nilai kemiringan S1 dan S2.
Di dalam assembler untuk setiap fungsi keanggotaan yang terdiri dari 5 buah label direpresentasikan sebagai berikut :
1: DB $00,$00,$00,$55,$00,$03 For Label Left
2: DB $1B,$55,$55,$90,$04,$04 For Label Al.Left
3: DB $50,$80,$80,$AF,$05,$05 For Label Center
4: DB $70,$AA,$AA,$E5,$04,$04 For Label Al.Right
5: DB $AA,$FF,$FF,$FF,$03,$00 For Label Right
Perangkat Keras
Perangkat keras yang digunakan pada robot line tracker ini adalah :
Dalam beberapa tahun terakhir ini teknologi fuzzy mulai berkembang sangat pesat. Hal ini ditandai dengan munculnya berbagai fuzzy microprocessor seperti NLX220 atau ST52x301 dari perusahaan semikonduktor SGS Thompson. Perusahaan semikonduktor Motorola pun ikut meramaikan dunia kontrol fuzzy dengan membuat sebuah kernel fuzzy pada mikrokontrollernya seperti 68HC11, 68HC05.
Sistem kontrol yang menggunakan teknik fuzzy dapat diselesaikan dengan menggunakan 2 jenis mikrokontroller, yaitu mikrokontroller fuzzy dan mikrokontroller biasa.
NLX220 atau ST52x301 merupakan chip-chip mikrokontroller fuzzy yang tidak umum didapatkan dipasaran Surabaya sedangkan 68HC11, 68HC05 dan AT89C51 merupakan mikrokontroller biasa yang banyak dijumpai di Surabaya. Mikrokontroller fuzzy merupakan mikrokontroller yang dikhususkan untuk mengolah input/output menggunakan teknik fuzzy sehingga hanya memerlukan interface input dan output saja untuk menerima input dan mengontrol output.
Motorola dengan mikrokontrollernya, 68HC11 dan 68HC05 membangun sebuah kernel fuzzy melalui perangkat lunak FUDGE (Fuzzy Design Generator). Fasilitas yang dimiliki oleh FUDGE adalah pembuatan tabel-tabel fungsi keanggotaan, tabel-tabel rule, dan tabel-tabel nilai central of gravity secara grafis dan fasilitas simulasi.
Karena IC-IC tersebut di atas harganya relatif mahal (68HC11) maka dicoba membuat sebuah kernel fuzzy yang dibangun di atas mikrokontroller keluarga MCS 51 yakni AT89C51 yang harganya lebih murah. Kelebihan dari kernel fuzzy ini adalah kemampuan untuk membangun rule yang lebih sesuai dengan beberapa rule yang telah dibangun di dalam rule base. Jadi rule-rule yang baru merupakan rule-rule baru yang melengkapi rule-rule yang telah dibangun pertama kali di dalam rule base.
Sistem kontrol fuzzy pada kontroller kecepatan dan arah robot line tracker ini ini dibangun dalam 4 tahap :
- Pembuatan tabel fungsi keanggotaan, rule, dan nilai center of gravity dengan menggunakan format yang telah didefinisikan oleh FUDGE. FUDGE merupakan sebuah perangkat lunak yang dibuat oleh MOTOROLA yang digunakan untuk membantu pembuatan rule, tabel fungsi keanggotaan, dan nilai central of gravity secara grafis.
- Pembuatan kernel fuzzy dengan kemampuan rule generation dari kondisi track dan kecepatan saat itu. Dan mampu menerima 8 input serta mampu mengontrol 4 output. Saat ini kernel fuzzy diset pada 2 input dan 2 output. Kernel fuzzy yang dibuat disini dilengkapi dengan kemampuan regenerasi rule yang disesuaikan dengan kondisi track. Dengan kemampuna rule yang sudah ada di dalam rule base akan dilengkapi dengan rule-rule baru (belum pernah ada).
- Pembuatan blok interface antara sistem fuzzy dan hardware. Bagian juga sangat berperan dalam menentukan respon dari sistem dan juga digunakan untuk adjustment terhadap hardware.
- Bagian input/output. Bagian ini terdiri dari sensor IR (input) dan blok motor DC amplifier. Input yang didapatkan dari bagaian ini sebanyak 8 buah, 7 buah sebagai input arah sedangkan 1 buah digunakan untuk menentukan kecepatan. Output dari bagian ini merupakan besarnya nilai PWM baik untuk motor DC depan maupun motor DC belakang.
Di dalam kernel fuzzy, setiap label pada setiap input dan output diberi nomor label dan nomor label untuk antecedent mulai 0 sampai 7Fh sedangkan nomor label untuk consequent mulai 80h sampai FEh dan FFh digunakan sebagai tanda akhir dari rule base.
Kernel fuzzy yang dibangun meliputi 4 bagian utama :
- Fuzzifikasi.Fuzzifikasi akan memetakan kedua input crisp menjadi komponen matrik-matrik input fuzzy. Pada proses ini, suatu besaran crisp pada input dipetakan pada fungsi keanggotaanya sehingga dapat diketahui derajat kebenaran input crisp tersebut pada label tertentu. Derajat kebenaran yang dimaksud mulai dari 0 yang menyatakkan tidak termasuk himpunan dan 1 yang menyatakan termasuk himpunan.
- Evaluasi ruleEvaluasi rule akan mengevaluasi semua rule yang ada berdasarkan input saat itu. Proses evaluasi rule akan menentukan rule-rule yang paling benar dengan mencari rule strength kemudian mencari matrik output fuzzynya. Metode pencarian matrik output adalah menggunakan metode min-max dan metode ini merupakan metode yang paling sederhana.
- DefuzzifikasiProses defuzzifikasi merupakan proses yang merubah nilai matrik output fuzzy menjadi besaran output. Dan setelah diproses pada blok interface maka akan dihasilkan suatu nilai crisp output. Untuk mendapatkan nilai crispnya, proses defuzzifikasi memerlukan tabel central of gravity value.
Dimana ci merupakan nilai central of gravity dan mi merupakan nilai elemen matrik output fuzzy.
Regenerasi Rule
Proses regenerasi rule merupakan proses yang paling penting sehingga sistem kontrol ini dapat dikatakan sebagai adapative. Bagian ini akan mencari rule-rule baru berdasarkan input/output crisp saat itu. Proses regenerasi rule membutuhkan fungsi keanggotaan untuk input dan output untuk memetakan input dan output saat itu. Proses pembentukan rule dilakukan dengan mencari elemen yang paling besar dari input/output matrik yang dihasilkan dari proses pemetaan input dan output. Setelah didapatkan rule yang baru maka perlu dicari, apakah rule yang baru terbentuk itu sudah ada didalam rule base atau belum. Jika belum ada maka rule yang baru terbentuk ditambahkan ke dalam rule base yang baru.
Penulisan Ruler
Sintak penulisan rule yang digunakan adalah :
IF antecedent1 AND antecedent2 AND .....THEN consequent1 AND consequent2 AND .....
Sebagai contoh, jika terdapat rule :
IF the speed is SLOW and direction is CENTER then the front PWM is CENTER and Back PWM is MEDIUM.
Maka penulisan rule di dalam bahasa assembly adalah :
1: DB $00,$07,$82,$86
Dimana $00 merepresentasikan nomor label SLOW, $07 merepresentasikan label CENTER dan seterusnya. Nomor label baik antecedent maupun consequent dapat dilihat pada tabel.
Representasi Fungsi Keanggotaan dalam Assembler
Fungsi keanggotaan didalam kernel fuzzy ini direpresentasikan dalam 6 byte. 4 Byte sebagai titik-titik sudut dalam segitiga atau trapesium pada setiap label di fungsi keanggotaanya. Dan 2 byte selanjutnya adalah nilai kemiringan S1 dan S2.
Di dalam assembler untuk setiap fungsi keanggotaan yang terdiri dari 5 buah label direpresentasikan sebagai berikut :
1: DB $00,$00,$00,$55,$00,$03 For Label Left
2: DB $1B,$55,$55,$90,$04,$04 For Label Al.Left
3: DB $50,$80,$80,$AF,$05,$05 For Label Center
4: DB $70,$AA,$AA,$E5,$04,$04 For Label Al.Right
5: DB $AA,$FF,$FF,$FF,$03,$00 For Label Right
Perangkat Keras
Perangkat keras yang digunakan pada robot line tracker ini adalah :
- Blok sensor yang terdiri 8 sensor infra merah sebagai sensor kecepatan (1) dan sensor arah (7).
- DC motor driver yang mampu mengontrol motor DC berputar 2 arah
- Blok mikrokontrol yang dibangun dengan menggunakan AT89C51 dengan RAM 32Kb.
Posted by Jumat, Juli 17, 2009 and have
8
komentar
, Published at
nice artikel n nice blog frend,...
BalasHapuskayak ngitung duit aja ya sintax nya...
BalasHapuswah pengen dong bro belajar robotika, tapi gwe sanggup gak ya, xixi soalna dari dulu paling gak bisa mencerna kuliah microcontroller
BalasHapusAsyik juga kayaknya belajar Robotika ya ?
BalasHapushehhee....aku ngga ngerti mas... sukanya sama robot yang udah jadi :D
BalasHapuswah.... ga ngerti mianya. Bukan spesifikasi mia sih heheehehe tapi kayaknya dunia robotika menarik juga
BalasHapusgreat info! thanks
BalasHapusHmmmm.....
BalasHapusmasih kurang jelas nih Fuzzy-nya..
Ada potongan lsitingnya dalam bahasa assembler tidak?
Kalo panjang, salah satu aja yaitu fuzzifikasi.
N knapa Fuzzikasinya bernilai 0 atau 1 saja dan bukannya bernilai DENGAN RENTANG 0 - 1 (ada 0,5 0,3 0,7 dst)