Assalamualaykum Wr. Wb.
wahaaa..
uda lamaa banget ga update blog uy..
buat pengunjung setia blog saya, saya minta maaf kalo uda 2 bulan lebih blog ini ga terupdate..
Dua bulan terakhir sibuk terus uy..
mulai dari ikutan INAICTA 2011, KP (Kerja Praktek), nyiapin robot buat IRO (International Robot Olympiad) 2011, bikin alat untuk dana hibah dari kampus, dll..
Nah pada post kali ini saya akan sedikit menulis sedikit tentang Fuzzy Logic (Logika Samar) yang dikombinasikan dengan PD (Proportional – Derivative) Controller.
nah kebetulan ada beberapa project saya yang memakai metode kontrol dengan algoritma ini, mulai dari robot Line Follower sampai prototype pengkondisi suhu dan kelembaban pada miniatur rumah jamur tiram (alat untuk dana hibah dari kampus).
Apa itu Fuzzy Logic??
Logika Fuzzy adalah peningkatan dari logika Boolean yang berhadapan dengan konsep kebenaran sebagian. Di mana logika klasik menyatakan bahwa segala hal dapat diekspresikan dalam istilah binary (0 atau 1, hitam atau putih, ya atau tidak), logika fuzzy menggantikan kebenaran boolean dengan tingkat kebenaran.
Logika Fuzzy memungkinkan nilai keanggotaan antara 0 dan 1, tingkat keabuan dan juga hitam dan putih, dan dalam bentuk linguistik, konsep tidak pasti seperti “sedikit”, “lumayan”, dan “sangat”. Dia berhubungan dengan set fuzzy dan teori kemungkinan. Dia diperkenalkan oleh Dr. Lotfi Zadeh dari Universitas California, Berkeley pada 1965.
(http://id.wikipedia.org/wiki/Logika_fuzzy)
Dari ilustrasi gambar diatas, tentu temen – temen sudah mendapatkan gambaran tentang apa itu yang dinamakan Fuzzy Logic kan??
secara sederhana, Fuzzy Logic adalah suatu logika yang memperhitungkan nilai diantara “0” dan “1”, “ya” dan “tidak”..
jadi kemungkinan yang akan muncul tidak akan berjumlah 2 lagi (hanya YA dan TIDAK), tetapi menjadi lebih banyak..
Misal : Tidak, Sangat Mendekati Tidak, Hampir Mendekati Tidak, Hampir Mendekati Ya, Sangat Mendekati Ya, dan Ya
Okee.. Cukup untuk pengenalan singkat tentang Fuzzy Logic nya..
Yang akan saya bahas lebih lanjut adalah penggunaan Fuzzy Logic + PD Controller pada sistem pengkondisi kelembaban udara pada miniatur rumah jamur tiram..
Gambar alatnya :
Sensor yang saya gunakan adalah sensor suhu dan kelembaban SHT11..
Gambar :
Kemudian alat yang saya pakai untuk menaikkan kelembaban udara adalah “Ultrasonic Mist Maker”..
Gambar :
Berikut adalah 3 langkah mudah untuk memulai menggunakan Algoritma Fuzzy Logic Sederhana :
- Tentukan Parameter yang akan di fuzzy-fikasi
- Buat Tabel Linguistik (kelas data berdasarkan range nilai) dari parameter tersebut
- Bikin response eksekusi dari masing2 kelas data (de-fuzzy-fikasi) dari parameter tersebut
Nah, sekarang kita mulai mengaplikasikan Fuzzy Logic Sederhana tersebut dengan mengikuti langkah – langkah di atas..
- Parameter yang akan kita olah dengan Fuzzy Logic dalam kasus ini adalah Tingkat Kelembaban (Rh) dan Kecepatan Putar Kipas (PWM)
Di sini Parameter Kelembaban adalah Parameter Input dan Parameter PWM adalah Parameter Output - Sekarang kita buat tabel linguistik dari dua parameter diatas. Misalnya seperti di bawah ini :
- Setelah Tabel Linguistik nya jadi, langkah selanjutnya adalah membuat response (Defuzzyfication) dari masing – masing kategori Parameter Input (Rh). Secara sederhana, proses defuzzyfication nya bisa dituliskan seperti di bawah ini :
- Jika Rh = “Sangat Rendah”, maka PWM = “Sangat Pelan”
- Jika Rh = “Rendah”, maka PWM = “Pelan”
- Jika Rh = “Ideal”, maka PWM = “Normal”
- Jika Rh = “Tinggi”, maka PWM = “Cepat”
- Jika Rh = “Sangat Tinggi”, maka PWM = “Sangat Cepat”
Nah, proses defuzzyfication seperti diatas masih memiliki kekurangan.
Ya..
Pada masing – masing kategori tersebut masih memiliki range nilai, sehingga kita akan banyak menuliskan tabel defuzzyfication untuk masing – masing nilai pada masing – masing kategori sehingga program menjadi kurang efisien terlebih lagi jika kita mengkehendaki kelembaban harus dipertahankan sesuai dengan yang kita inginkan..
Untuk mengatasi hal tersebut, kita membutuhkan suatu algoritma kontroller yang berfungsi untuk menangani masalah seperti di atas.Kontroller yang biasa saya pakai adalah PD Controller (Proportional – Derivative Controller) sederhana.
PD Controller adalah sistem kontrol dengan menggunakan konstanta KP dan KD untuk menangani error yang timbul dari suatu sistem. Error yang dimaksud di sini adalah selisih nilai pembacaan sensor terhadap nilai yang diharapkan.
Misalkan kita mengharapkan kelembaban udara di dalam miniatur rumah jamur adalah 85%, sedangkan nilai kelembaban yang terbaca oleh sensor SHT11 adalah 82%, maka :Error = Nilai yang Diharapkan – Nilai yang TerbacaError = (85 – 82)%Error = 3%Jika kita menginginkan suatu sistem pengkondisi kelembaban udara dengan menggunakan PD Controller, maka tabel linguistik dari proses Fuzzy-fikasi parameter kelembaban dan nilai PWM akan sedikit bergeser, dimana kelembaban dan PWM yang dianggap sebagai kategori normal adalah nilai kelembaban dan PWM yang kita harapkan (sesuai setting yang di inputkan) ± 5% ..Kemudian akan muncul satu tabel linguistik baru, yaitu tabel linguistik nilai Error, dimana nilai error inilah yang akan diolah oleh PD Controller untuk menjaga nilai kelembaban udara relatif di dalam miniatur rumah jamur tsb.Tabel Linguistik Nilai Error :Okee.. Selanjutnya kita masuk ke bagian PD Controller nya..
Langsung saja, berikut adalah persamaan sederhana yang saya pake buat PD Controller nya :
Do
Error = Nilai_Referensi - Nilai_Terbaca
Delta_Error = Error - Error_Sebelumnya
Proportional = KP * Error
Derivative = KD * Delta_ErrorPwm_Rh = Pwm_Rh + Proportional
Pwm_Rh = Pwm_Rh + Derivative
If Pwm_Rh >= 255 then Pwm_Rh = 255
if Pwm_Rh <= 0 then Pwm_Rh = 0If Nilai_Terbaca >= Nilai_Referensi then
Reset Mist_Maker '(Matikan Mist Maker)
Else
Set Mist_Maker '(Nyalakan Mist Maker)
End ifError_Sebelumnya = Error
Loop
Nilai Konstanta KP dan KD pada persamaan diatas didapatkan dengan memasukkan nilai konstanta tersebut pada settingan.
Sistem kerja dari kipas yang dipakai adalah dengan meniupkan udara keluar dari miniatur rumah jamur, jadi ketika kelembaban di dalam sistem meningkat dan melebihi nilai referensi, maka Mist Maker dimatikan dan kecepatan putar kipas dalam membuang kelembaban udara keluar sistem akan semakin tinggi.Begitulah kira – kira tentang apa yang saya pahami sedikit tentang Fuzzy Logic dan PD Controller sederhana..
Apabila terjadi miskonsep dan kerancuan saya mohon maaf dan mohon dikoreksi..
Terima Kasih.. :DSemoga Bermanfaat.. 😀Regards,
joe4cva
yoi, mirip PKM ku, tapi ra lolos. hehehe. apik jo sederhana tp “keno” banget
bener kata topx, sederhana tapi mengena.. lanjutkan !!! 😀
Siapp ndan..!! 😀
Topik Yang Keren, Lain kali tulis cara memprogram sensor ya mas!!!! 🙂
Makasih mas.. 😀
mas mau dibahas tentang sensor apa?
nanti semisal saya uda pernah make sensornya saya bahas mas.. 😀
wah wah..bnar2 sgat membantu penjelasanya.apalagi rumus dlam bentuk kodingnya..trims
Alhamdulillah.. 😀
Semoga bermanfaat.. 😀
Mantap mas..thanks buat sharing nya. kalau boleh taw, gimana kita bs menentukan nilai Kp dan Kd yang optimal nya?
sama2 mas.. 😀
kalo untuk menentukan nilai KP dan KD nya masih make cara “Trial n Success” mas..
(kalo Trial n Error kapan sukses nya??) XD
karena untuk input nilai KP dan KD nya masih manual dari user dan belum ada algoritma self learning untuk menentukan KP dan KD paling optimum dalam sistem yang selama ini saya buat mas..
seep gan
apa kah bsa di aplikasikan di LF untuk ini mas ?
Bisa bangeett mas..
LF saya juga make algoritma ini buat kontroller nya.. 😀
aplikasi fuzzy di robot LF gan ^_^
http://fahmizaleeits.wordpress.com/2011/12/04/robot-line-follower-dengan-kendali-fuzzy/
Joe… ane titip lapak ya hehehehehe 😀
Monggo silakan cak.. 😀
jadi makin asik kalo makin banyak referensi.. 😀
sering-sering nulis tentang fuzzy logic ya mas jo, TA ku mau pake fuzzy byar ada gambaran mas. terimakasih, anyway good blog mas. sukses!
Makasih Syif.. 😀
TA mu bikin apa Syif?
mas,.. saya masih bingung. hehehe.. yg mas gunakan ini ouputnya dari Fuzzy diumpankan ke PD gitu kah? apa metode PD like-Fuzzy contoller gitu? .. nah, misal kita ketemu eror dari kelembabab fuzzy itu misal kategori sangat tinggi, otomatis kan PWM menjadi sangat tinggi, itu masuk ke PD nya gimana, mas? hehehe.. atau tiba2 eror menjadi sangat rendah, nah hubungannya ke rumus PDnya itu saya bingung mas ~ ~ hehehe.. makasih mas jawabannya..
mas… klo bwt nntuin KP KD pke self learning berarti bsa pke JST (jaringan syharaf truan) gt gmn ms? bsa g y? alogaritma yg JST backpropagation…
bisa mas..
cuma saya nya yg belom bisa.. hehe
Mas kok sepertinya menarik ya itu..tp maaf saya bru tau itu alat yg buat klmbaban..itu alat sperti ap ya mas? Cara kerjanya bgagaimna mas?
itu alat digunakan untuk mengatur kelembaban udara di suatu ruangan tertutup gt mas..
biasanya jamur memerlukan tingkat kelembaban udara tertentu agar dapat tumbuh optimal, makanya dibuat alat ini mas.. 🙂
ooh,gtu to mas..untuk alat yang namanya ultrasonic mist maker itu tu cara kerjanya bagaimana mas? maaf mas masih sangat blm tau tentang alat itu..hehe,
ultrasonicnya di rendem di air..
nah alatnya akan nembakin gelombang ultrasonic ke arah permukaan air..
nah, molekul air akan terkondensasi karena tembakan ultrasonic tsb n jadi kabut..
mas Joe, izin copy ya, siapa tau butuh sewaktu2 unt bahan ngadep ke dosen…
monggo silakan mas.. 🙂