PetraFuz: SISTEM
PENGEMBANGAN KENDALI FUZZY LOGIC BERBASIS MIKROKONTROLER KELUARGA MCS51
1. PENDAHULUAN
Penggunaan teknik
kendali Fuzzy Logic telah cukup meluas pada berbagai aplikasi mulai dari
consummer electronics, robotics, kendali industri, dan lain-lain(1).
Implementasi kendali Fuzzy biasanya dilakukan oleh multi-purpose mikroprosesor,
mikrokontroler maupun prosesor khusus berupa Fuzzy Logic Processor. Biasanya
dibutuhkan alat atau software bantu untuk mengembangkan aplikasi fuzzy mulai
dari tahap perancangan, evaluasi, implementasi dan penalaan
Sistem ini terdiri dari perangkat keras sistem
mikrokontroler MCS51 dan perangkat lunak pendukung yang berjalan pada PC.
Pembuatan PetraFuz bertujuan untuk
menyediakan alat/software bantu dalam pengembangan sistem berbasis fuzzy
logic, utamanya pada aplikasi bidang kendali.
Proyek ini diinspirasi
oleh proyek serupa yang dikembangkan oleh Motorola (FUDGE, Fuzzy Design
Generator) yang ditujukan untuk implementasi fuzzy pada mikroprosesor 68HC11,
6805 dan 68000(2). Sistem PetraFuz dikembangkan dengan kemampuan
lebih yaitu berupa sistem pengembangan fuzzy yang terintegrasi dengan
dilengkapi dengan sistem target perangkat keras. Program pada PC berinteraksi
langsung dengan sistem target melalui komunikasi serial RS232. Sistem PetraFuz memilih platform
mikrokontroler keluarga MCS51 karena ketersediaan dan kepopuleran penggunaan
prosesor ini di Indonesia. Sistem PetraFuz diharapkan dapat memberikan
kontribusi positip bagi masyarakat sistem kendali untuk mengembangkan berbagai
aplikasi kendali berbasis fuzzy logic.
2. SISTEM
PETRAFUZ
Sistem PetraFuz terdiri dari 2 bagian
yaitu sistem software yang berjalan pada
PC dan sistem target perangkat keras berupa sistem mikrokontroler MCS51.
Blok diagram sistem PetraFuz seperti pada gambar 1.
Gambar 1 Blok Diagram
Sistem Petrafuz
Proses perancangan, evaluasi,
pembentukan program assembly dan proses downloading MCS51 machine code menuju
sistem target dilakukan oleh program yang berjalan pada PC yaitu PetraFuz51
software. Sedangkan sistem target
melakukan proses fuzzy logic yang berinteraksi dengan perangkat I/O ke dunia
luar. Proses fuzzy logic yang dilakukan oleh sistem target meliputi proses
fuzzification, rule evaluation dan defuzzification. Program PetraFuz51 dibuat
dengan Delphi v.2 berbasis Windows dengan kemampuan graphical user interface
sehingga memudahkan user dalam penggunaanya.
Perancangan kendali meliputi pembentukan fuzzy membership function untuk
input maupun output (maksimum 5 input, 3 output dan 8 label per input/output)
serta pembentukan fuzzy if-then rules. Sedangkan proses evaluasi kendali
menyajikan control surface untuk berbagai kombinasi input kendali. Dengan
demikian pengguna dapat melihat respon kendali sebelum kendali sesungguhnya
dijalankan oleh perangkat keras sistem target.
PetraFuz51 juga membentuk program bahasa
assembly MCS51 yang selanjutnya dicompile dan didownload menuju sistem target
melalui serial komunikasi RS232. Sistem target perangkat keras terdiri dari
mikrokontroler MCS51 dilengkapi dengan paralel I/O serta interface analog
(ADC/DAC).
Aksi kendali dapat diakuisisi oleh program
PC melalui komunikasi serial RS232 sehingga respon kendali dapat digambarkan
pada layar monitor untuk dilakukan analisis lebih lanjut yang diperlukan pada
proses tuning if-then fuzzy rules. Selain respon kendali, masing-masing input
fuzzy logic juga dapat diamati melalui layar monitor.
Secara umum kemampuan sistem PetraFuz
adalah:
·
Max.
5 Input
·
Max.
3 Output
·
8
Membership Functions per Input
·
8
Membership Functions per Output
·
1024
if-then Rule
·
15
Characters per Name (Input, Output, Member).
·
4
Points per Input Member. (Trapezoid MF)
·
1
Point per Output Member. (Singleton MF)
3. CONTOH
PENGGUNAAN PETRAFUZ
Program PetraFuz51 meyediakan beberapa
fasilitas yaitu perancangan input dan output membership function (MF),
perancangan fuzzy if-then rules, fuzzy logic evaluator, control surface, pembentukan assembly code, downloader ke
sistem target dan data acquisition. Secara umum penggunaan PetraFuz dapat
dibagi atas tahap-tahap berikut yaitu tahap pertama mendisain fuzzy inference
system yang meliputi perancangan input dan output fuzzy beserta membership
functionnya dan perancangan fuzzy if-then rules. Tahap kedua pembentukan
database (yang terdiri dari MF dan if-then rules) dari hasil perancangan tahap
pertama dalam bahasa assembly MCS51 yang akan digabungkan dengan user program.
Adapun user program yang dimaksud adalah program yang dibuat user untuk akses
data dari/ke I/O interface baik analog maupun digital sesuai dengan sistem
kendali yang dirancang. Tahap ketiga
adalah user program dicompile terlebih dahulu untuk menghasilkan machine code,
baru kemudian machine code tersebut didownload ke sistem target mikrokontroler
MCS51.
Untuk memberi gambaran yang lebih jelas
diambil contoh penggunaan PetraFuz pada sistem kendali temperatur udara yang
menggunakan bola lampu sebagai pemanas dan
kipas sebagai pedingin. Input sistem fuzzy disini adalah Error dan
Delta_Error temperatur udara terhadap Setting Point yang diinginkan. Input
Error adalah selisih antara Setting Point dengan Present Value (Error= SP - PV)
sedangkan Delta_Error adalah kecepatan perubahan error yang terjadi, Delta_Error = Error (n) - Error (n-1)
Pertama dilakukan pengisian
spesifikasi dari crisp input dan crisp
output yaitu nama, satuan, nilai minimum, nilai
maksimum dan jumlah label membership function. Tampilan menu dapat
dilihat pada gambar 2 dan gambar 3.
Dalam
sistem kendali temperatur ini sebagai crisp input adalah Error dan
Delta_Error sedangkan crisp output adalah Lampu dan Kipas. Dari gambar 2 dan 3
dapat dilihat bahwa input Error mempunyai 5 label membership function dengan
nilai minimum –255 dan nilai maksimum 255 dan output lampu mempunyai 5 label
membership function dengan nilai minimum –2 dan nilai maksimum 2. Input Delta_Error mempunyai 5 label dengan nilai minimum –255 dan nilai maksimum
255. Output kipas mempunyai 2 fuzzy label dengan nilai minimum –1 dan nilai
maksimum 1.
Perancangan membership function dapat dilakukan dengan
mudah baik secara grafis maupun dengan cara mengisi nilai point dari membership
function. Bentuk input membership
function hanya bisa dibuat dalam bentuk trapesium atau segitiga. Membership
function ini dibentuk oleh 4 point yang dapat dimasukan dalam program.
Sedangkan output membership function hanya bisa dibuat dalam bentuk singleton
yang dibentuk dengan 1 point yaitu posisi nilai crisp dimana MF ini berada.
Tampilan pembentukan MF dapat dilihat
pada gambar 4 dan gambar 5.
Dari gambar 4 dapat dilihat bahwa input
Error mempunyai 5 label, 2 berbentuk
trapesium, 3 berbentuk segitiga. Label 0 dari input Error diberi nama NB dengan nilai point1 =
-255, point2 = -255, point3 = -170 dan
point4 = -85 dan bentuk membershipnya adalah trapesium. Dari gambar 5 dapat
dilihat bahwa output lampu mempunyai 5 label yang semuanya berbentuk single.
Label 0 dari output lampu diberi nama NB
dengan nilai point = -2 yang berarti mematikan 2 lampu. Nama label input Error adalah NB, NS, Z, PS, PB.
Input Delta_Error mempunyai membership function sama dengan input Error. Output
kipas hanya mempunyai 2 label yaitu N dan P. Label N menyatakan kipas
dimatikan, P menyatakan kipas dinyalakan.
Gambar 6 menampilkan tampilan menu pembentukan fuzzy if-then rules. Kapasitas maksimum rule yang dapat dibuat dalam program PetraFuz51 adalah sebanyak 1024 rule dengan tanpa membatasi jumlah antecedent dan consequent dari tiap rule. Untuk menambah rule dapat dilakukan dengan click pada Add Rule dan akan keluar tampilan seperti gambar 7.
Fasilitas fuzzy logic evaluator disediakan
untuk evaluasi sistem kendali yang dirancang. Pengguna dapat mengetahui hasil
fuzzifikasi, hasil evaluasi rule yaitu rule-rule mana yang aktif, hasil
defuzzifikasi bila input diset pada nilai tertentu. Dengan demikian memberikan
gambaran kepada pengguna tentang aksi kendali fuzzy logic yang telah
dirancang. Tampilan menu dapat dilihat
pada gambar 8.
Fasilitas control
surface disediakan untuk mengevaluasi aksi sistem kendali yang dirancang
sebelum sistem kendali yang sesungguhnya di jalankan oleh sistem target.
Control surface menyajikan grafik fuzzy output terhadap variasi salah satu input. Bila input lebih dari satu maka input
yang lainnya dianggap konstan. Tampilan menu control surface dapat dilihat pada
gambar 9. Disini ditampilkan grafik output Lampu terhadap input Error dengan
nilai Delta_Error=0. Grafik dapat dibentuk untuk nilai Delta_Error lainnya yang
dikehendaki.
Grafik output lampu terhadap input Error
dari sistem kendali temperatur yang dirancang dapat dilihat pada gambar 10, 11
dan 12.
Gambar 9 Tampilan Menu Control Surface
Gambar 10 Grafik Output Lampu terhadap Input Error
dengan Delta_Error = 0
Membership function dan rule yang telah
didesain harus dikonversi ke dalam bentuk bahasa assembly MCS51 agar bisa
digabungkan dengan user program yang akan didownload ke sistem target
mikrokontroler MCS51. Hal ini dapat dilakukan dengan memanfaatkan fasilitas
generate code. Fasilitas ini akan mempersiapkan database dari membership
function dan rule dan menyimpannya dalam file dengan extension .ASM. Semua
range nilai baik untuk input maupun output akan dikonversi (normalisasi) ke
range 0 – FFh sehingga dalam program bahasa assembly dapat diminimalkan
penggunaan bilangan negatif. Tampilan menu generate code dapat dilihat pada
gambar 13.
Gambar 13 Menu Generate Code
File .ASM yang dihasilkan mempunyai format
khusus, hanya bisa digunakan untuk PetraFuz Routine Engine yang tersedia dalam
kernel sistem target mikrokontroler MCS51. PetraFuz Routine Engine adalah suatu
procedure yang melakukan proses fuzzy logic meliputi proses fuzzifikasi,
pengevaluasian rule dan defuzzifikasi. Metode defuzzifikasi yang digunakan
adalah Center of Gravity atau Center of Area. Dengan demikian user hanya perlu
membuat program untuk interaksi dengan I/O ke dunia luar. Data yang dibaca
dimasukkan ke parameter input fuzzy, PetraFuz routine yang akan melakukan
proses fuzzy logic dan menghasilkan output fuzzy, yang oleh user program akan
diolah dan dikeluarkan ke interface dengan dunia luar. Routine ini besifat
general, berlaku untuk jumlah input dan output yang bervariasi (maksimum 5
input dan 3 output) serta jumlah rule yang bervariasi (maksimum 1024 rule).
File hasil bentukan Generate Code
selanjutnya digabungkan dengan user program lalu dicompile. Setelah user
program dicompile membentuk machine code, maka machine code tersebut
selanjutnya didownload ke sistem target mikrokontroler sehingga sistem
mikrokontroler dapat menjalankan proses kontrol fuzzy logic. User program harus
dicompile dalam bentuk Intel Hex Format karena program downloader yang dibuat
dalam program PetraFuz51 disini bekerja berdasarkan format Intel Hex. Tampilan
menu downloader dapat dilihat pada gambar 14.
Gambar 14 Menu Downloader
Fasilitas data acquisition disediakan
untuk akuisi data dari sistem target
mikrokontroler. Pengguna dapat melihat respon sistem kendali dan juga perubahan
nilai semua input dan output terhadap waktu. Dengan demikian pengguna dapat
mengevaluasi respon sistem kendali yang sedang dijalankan oleh sistem target
secara online. Kemampuan ini sangat dibutuhkan terutama dalam proses penalaan
MF dan if-then rules. Proses perancangan bisa diperbaharui dan kembali
didownload ke sistem target untuk dilihat responnya. Proses ini dapat dilakukan
secara berulang dengan mudah untuk mendapatkan respon kendali yang optimum.
Berikut ini adalah gambar dari hasil akuisi data sistem kendali temperatur
udara yang dirancang. Disini terlihat respon kendali terdapat error terhadap
setting point yang diinginkan dan membutuhkan penalaan lebih lanjut. Tampilan
dari data acquisition ini dapat dilihat pada gambar 15,16 dan 17.
4.
PELUANG PENGGUNAAN PETRAFUZ
Selama ini cukup banyak para praktisi
sistem kendali mengalami kesulitan dalam mengaplikasikan metode fuzzy logic
dalam sistem kendali terutama sampai pada level implementasi hardware. Salah
satu alasannya adalah karena tidak
didukung oleh fuzzy development tools yang dilengkapi dengan target sistem
perangkat keras. Sistem PetraFuz menyediakan tools yang cukup lengkap mulai
dari proses desain membership function dan pembentukan fuzzy if-then rule
sampai pada proses kendali fuzzy logic yang dilaksanakan oleh sistem target
perangkat keras. Pada kenyataannya dalam kendali fuzzy logic, bagian yang
tersulit adalah mendesain membership function dan fuzzy rules sehingga didapatkan
yang optimum dan menghasilkan kendali fuzzy logic yang memadai. Untuk
mendapatkan hasil yang terbaik maka harus dilakukan percobaan yang
berulang-ulang. Ini akan menjadi suatu kendala tersendiri bila tidak mempunyai
tools yang menunjang.
Dari hasil pengujian yang dilakukan,
PetraFuz Routine Engine mampu mengevaluate lebih kurang 16000 rule dalam satu
detik. Pengujian ini dilakukan dengan kondisi tiap rule mempunyai 2 antecendent
dan 1 consequent dan sistem clok yang digunakan pada prosesor MCS51 adalah 2 MHz.
Ini berarti untuk mengevaluate satu rule, PetraFuz Routine Engine membutuhkan
waktu lebih kurang 62,5 mikrodetik. Jika sistem kendali fuzzy logic mempunyai 2
input 1 output dan masing-masing input mempunyai 5 label membership function
maka jumlah maksimum rule adalah 25 sehingga waktu untuk mengevaluate rule
tidak lebih dari 1,5625 milidetik.
Dengan waktu akses yang cukup cepat ini,
maka sistem PetraFuz dapat digunakan pada sistem kendali yang mempunyai respon
yang relatif cepat seperti mengendalikan kecepatan motor DC, kontrol posisi dan
lain-lain. Selain itu sistem ini berpeluang untuk digunakan pada aplikasi proses kendali industri seperti pressure
control, chemical process control, kiln control dan lain-lain.
Sistem ini juga berpeluang dimanfaatkan
untuk pengembangan kendali untuk bidang pertanian, misalnya pada kendali temperatur
untuk cold/hot storage produk-produk pertanian yang membutuhkan kondisi
temperatur tertentu. Dapat pula digunakan untuk pengendalian kadar PH air
tambak, identifikasi level kematangan produk pertanian, dan lain-lain.
Sistem PetraFuz telah dimanfaatkan sebagai
modul praktikum Kendali Fuzzy Logic pada institusi penulis dan terlihat cukup
bermanfaat bagi pemula untuk memahami dan merancang sistem kendali fuzzy.
Disamping itu pula tools ini memberikan pemahaman aspek implementasi khususnya
menggunakan mikrokontroler.
5. KESIMPULAN
Dari hasil eksperimen
pembuatan dan pemanfaatan sistem pengembangan fuzzy logic PetraFuz penulis
mencatat beberapa hal antara lain:
·
Sistem
PetraFuz relatif mudah digunakan dan bermanfaat bagi pemula yang ingin
bereksperimen sistem kendali berbasis fuzzy logic yang diimplementasikan pada
mikrokontroler. Saat ini mikrokontroler yang dapat digunakan terbatas pada
keluarga MCS51, dan tidak tertutup kemungkinan untuk dikembangkan fuzzy kernel
untuk berbagai prosesor misalkan 8088, MCS96, Z80 atau lainnya.
·
Sistem
PetraFuz menyediakan kemampuan yang interaktif dan terintegrasi dengan sistem
target perangkat keras. Dengan tools ini meningkatkan peluang pemanfaatan
konsep kendali fuzzy pada berbagai bidang di Indonesia, khususnya pada bidang
kendali pada pertanian.
·
Masih
terbuka pengembangan lebih lanjut dari sistem ini untuk mengakomodasi jumlah
input/output yang lebih banyak, variasi bentuk membership function dan berbagai
metode defuzzifikasi. Juga tidak menutup kemungkinan untuk memadukan metode
jaringan saraf tiruan dengan fuzzy logic untuk membentuk kendali cerdas.
DAFTAR
PUSTAKA
1.
Klir, George J, “Fuzzy Sets and Fuzzy Logics :
Theory and Applications”, NJ : Prentice
Hall, 1995.
2.
Alex
De Castro, Jason Spelman, John Dumas, "Fuzzy Designer Generator (FUDGE)",
Motorola Inc., 1994
3.
Center
for Emerging Computer Technologies, "Fuzzy Logic Education Program",
Motorola Inc., 1994
4.
Advanced
Micro Device, “Microcontrollers Handbook”, California : Advanced Micro Device,
1988.
5.
Sanchez,
Julio, “IBM Microcomputers : A Programmer’s Handbook”, New York : McGraw-Hill,
1990