ELEKTRAN, VOL. 2, NO. 1, JUNI 2012
20
Implementasi Fuzzy Logic Controller untuk Pengendalian Level Air
Cucun Wida Jurusan Teknik Elektro, Politeknik Negeri Bandung Jl. Gegerkalong Hilir, Ds. Ciwaruga, Kotak Pos 1234, Bandung 40012, Indonesia
[email protected]
zat cair merupakan salah satu proses Abstrak— Kendali level kendali yang banyak digunakan di industri. Tulisan ini mengimplementasikan metoda kendali fuzzy logic bertujuan (Fuzzy Logic Controller) pada plant level air menggunakan mikrokontroler dengan fungsi input dan output ditetapkan dalam bentuk segi tiga karena lebih mudah menuangkannya dalam menetapkan nilai pengendalian pada program fuzzy. menggunakan metoda Tsukamoto. Selanjutnya defuzifikasi Hasil ujicoba menunjukan bahwa pengendalian dengan Fuzzy Logic Controller ini menunjukkan level air tetap konstan pada level set point yang digunakan. Sedangkan pengubahan pada jumlah fungsi keanggotaan input dari lima keanggotaan menjadi tiga keanggotaan tetap memberikan efek pengendalian yang baik pada respon outputnya, yaitu keduanya dapat menjaga level air tetap konstan pada level set pointnya walaupun terdapat gangguan berupa perubahan bukaan keran output. Keywords— level air, Fuzzy Logic Controller, implementasi, mikrokontroler I. PENDAHULUAN Dalam dunia industri selalu terdapat proses kendali yang merupakan kegiatan harian, terutama di bidang proses produksi seperti di kilang minyak, pabrik kimia, industri gas dan sejenisnya. Sistem kendali level zat cair merupakan salah satu proses kendali yang banyak digunakan di industri dan merupakan bidang yang terus diteliti dan dikembangkan. Teknik kendali konvensional seperti PID [1] sudah sangat popular digunakan dalam berbagai bidang kendali. Salah satu teknik kendali yang berkembang adalah teknik Fuzzy dalam rangka mengimplementasikan fungsi cerdas dalam sistem kendali. Konsep logika fuzzy mudah dimengerti dan konsep dasar penalaran fuzzy sangat sederhana, mudah difahami, sangat fleksibel, memiliki toleransi terhadap data-data yang tidak tepat, mampu memodelkan fungsi-fungsi nonlinear yang sangat kompleks dan dapat bekerja sama dengan teknikteknik kendali konvensional[6]. Tulisan ini membahas pengendalian level air supaya tetap pada level yang ditetapkan dalam tangki persegi dengan mengimplementasikan program fuzzy pada mikrokontroler. Pemilihan mikrokontroler lebih ekonomis dan fleksibel dengan program fuzzy sebagai salah satu alternatif metoda pengendalian yang sedang terus dikembangkan. Fungsi keanggotaan pada fuzifikasi input dan output adalah bentuk segitiga. Perubahan pada fuzifikasi input dari 5 keanggotaan ke 3 keanggotaan tidak terlalu berpengaruh terhadap proses pengendalian level air dalam sebuah plant.
II.
METODA
A. Fuzzy Logic Controller Sistem fuzzy merupakan sistem berdasar pengetahuan (Knowledge Base System) atau berdasar aturan (Base Rule System). Bagian utama sistem fuzzy adalah dasar pengetahuan yang terdiri atas aturan-aturan JIKA – MAKA [1]. Teknik fuzzy telah sukses digunakan sebagai metoda kendali di berbagai bidang. Metoda fuzzy untuk level cairan diterapkan dengan membangun seperangkat plant Sistem Level Cairan dengan menerapkan algoritma fuzzy 4 aturan yang programnya diimplementasikan pada mikrokontroler 8 bit, pada bidang kendali cerdas alat ini terrmasuk murah [3]. Dasar Fuzzy Logic Controller terdiri dari : 1. Fuzzifikasi, pemetaan ruang input terhadap ruang output. 2. Basis Pengetahuan, basis aturan berisi aturan-aturan fuzzy yang digunakan untuk pengendalian scalar,berrdasarkan logika dan intuisi manusia (basis pengetahuan). 3. Mekanisme Fuzzy Reasoning, decision making logic, inferensi fuzzy: menggunakan berbagai operasi logika seperti AND, OR dan NOT. 4. Defuzifikasi, merupakan proses pengubahan nilai fuzzy ke bentuk nilai tegas/crisp. Ada 3 metoda yaitu metoda Mamdani[1], Sugeno[1] dan Tsukamoto[8]. Tulisan ini menggunakan metoda fuzzy logik yang dikembangkan oleh Tsukamoto [3] untuk mengendalikan level air agar tetap konstan pada level set poin yang telah ditentukan. B. Sistem level Model matematis sistem level cairan dengan konsep resistansi dan kapasitansi dapat menjelaskan karakteristik dinamis sistem secara sederhana. Asumsikan suatu aliran melewati pipa pendek yang menghubungkan dua tangki maka resistansi laju aliran dapat dinyatakan sebagai perubahan perbedaan ketinggian / level terhadap perubahan laju aliran. Merujuk Gambar 1, hubungan antara steady state flow (aliran) dengan steady state level berdasarkan [4] adalah sebagai berikut : Q = KH ……………………………………….…(1) Q = debit, m3/detik K = koefisien, m2/detik H = level, m
ELEKTRAN, VOL. 2, NO. 1, JUNI 2012
21 3.
Output kontroler fuzzy dihubungkan ke DAC pada plant proses.
Error level N
Laju error N
SP H
Laju error P
Error level P
Gambar 1. Sistem level zat cair
Transduser level yang digunakan terdiri dari tabung imersi yang berfungsi sebagai probe pengukuran yang langsung dicelup ke dalam zat cair yang diukur. Probe dihubungkan ke bagian Differential Pressure Transducer yang merupakan suatu transduser yang mengubah tekanan pada gas dan zat cair menjadi tegangan. Tekanan yang dibandingkan merupakan tekanan dari aliran pada tabung imersi dan atmosfir. Perubahan tekanan inilah yang akan diubah menjadi tegangan, lalu dikuatkan oleh rangkaian pengkondisi sinyal.
III. IMPLEMENTASI Untuk mengimplentasikan pengendalian level air yang telah dibahas di atas perlu dirancang perangkat keras, fuzzy dan perangkat lunaknya. Perancangan perangkat keras menggunakan alat dan komponen yang digambarkan dengan blok diagram berikut :
Gambar 3. Pemetaan input
Pada perancangan fuzzy ini dilakukan dengan menetapkan fungsi keanggotaan input (membership function, MF) dengan jumlah nilai keanggotaan 5 dan fungsi keanggotaan output dengan jumlah nilai keanggotaan 4 dalam bentuk fungsi segitiga. Setiap keanggotaan memiliki nilai linguistik yang didefinisikan dengan negatif besar (NB), negatif kecil (NK), zero (ZE), positif kecil (PK), dan positif besar (PB). Gambar 4 dan 5 [6] menunjukkan fungsi keanggotaan input dan output fungsi segitiga.
Gambar 4. Fungsi keanggotaan input
Gambar 2. Diagram Blok Sistem Kendali Level
Gambar 5. Fungsi keanggotaan output TABEL 1. FUZZY RULE BASE
error
Laju error
Bagian motor pompa dilengkapi dengan reservoir 1200 ml sebagai sumber air. Realisasi program fuzzy dengan mikrokontroler Atmega 8535 [7], outputnya diolah oleh DAC 8080 dengan penguat sinyal 2 kali. Ketinggian air dideteksi oleh sensor level tabung imersi yang merubah tekanan menjadi nilai tegangan yang kemudian diinputkan ke mikrokontroler. Perancangan Fuzzy Logic Controller (FLC) [8] menggunakan dua input yaitu error dan laju error serta satu output. Pada Gambar 3. terlihat pemetaan dua input sistem kendali level yaitu 1. Input1 = Error = Set point – Level Aktual 2. Input2 = Laju Error = Error lama – Error baru / sampling, (turunan dari error).
NBe
NKe
ZEe
PKe
PBe
NBle
ZE
DK
DK
ZE
DS
NKle
25 ZE
20 ZE
15 ZE
10 DK
5 DB
ZEle
24 ZE
19 ZE
14 ZE
9 DS
4 DS
PKle
23 ZE
18 ZE
13 DS
8 DS
3 DB
PBle
22 ZE
17 ZE
12 DS
7 DB
2 DB
21
16
11
6
1
ELEKTRAN, VOL. 2, NO. 1, JUNI 2012 Tabel Fuzzy Rule Base disusun berdasarkan pemahaman [3] yang berlaku pada perilaku level air pada tangki dengan gangguan yang diberikan pada keran output serta kebutuhan pengisian air kembali supaya level tetap konstan. Pemetaan rancangan fuzzy logic controller dengan dua input yaitu error dan laju error yang merupakan hasil dari pembacaan sensor transduser level yang mengubah tekanan air menjadi besaran tegangan diimplementasikan oleh mikrokontroler Atmega 8535 (Gambar 6). Semua mekanisme dan urutan proses pengendalian dengan fuzzy di atas dituangkan dalam rancangan perangkat lunak dengan flowchart program terintegrasi seperti pada Gambar 7. Implementasi program bahasa pemrograman level tinggi fuzzy dilakukan dengan yaitu bahasa C. Output program fuzzy berupa sinyal digital diubah oleh DAC menjadi sinyal analog diinputkan ke aktuator untuk menggerakkan motor.
22
mulai
Inisialisasi, deklarasi dan kondisi
awal
Baca Set Point (SP)
Baca Level aktual
sensor
Motor Pompa 0xFF
Level < 1, SP?
Hitung nilai error dan laju error
Gambar 6. Pemetaan rancangan Fuzzy Logic Controller
Realisasi proses fuzifikasi dalam program yaitu menentukan/menghitung derajat keanggotaan input error dan laju error menggunakan rumus Jika-Maka. Dengan bentuk himpunan input error dan laju error seperti pada Gambar 4 dan Gambar 5, nilai semesta pembicaraan dapat ditentukan dan nilai linguistik dapat dipetakan sehingga dapat dicari nilai derajat keanggotaan untuk setiap posisi nilai linguistik dengan rumus Jika…..maka. Setiap nilai linguistik error ditentukan nilai derajat keanggotaannya. Dengan ekspresi program fuzzy dalam bahasa C [5], berikut dicari nilai derajat keanggotaan untuk nilai error yang terbaca. Program ini dibuat untuk nilai fungsi keanggotaan lima (Member Function,MF 5) : Jika error <= -1 maka nilai αNBe = 1 Jika error >-1 dan error <= -0,5 maka ………………….(2) Jika error > -0,5 maka nilai αNBe = 0 TABEL 2.
SIMULASI PENENTUAN NILAI DERAJAT KEANGGOTAAN INPUT ERROR.
(α PREDIKAT)
Program FLC: fuzifikasi, base rule ,
defuzifikasi
Kirim output
ke aktuator
Gambar 7. Flowchart Program sistem kendali fuzzy
Dengan persamaan dan cara yang sama ditentukan nilai derajat keanggotaan input laju error. Jika laju error <= -0 maka nilai αNBle = 1 Jika laju error >-0,2 dan error <= -0,1, maka Jika laju error > -0,1maka nilai αNBle = 0 TABEL 3. SIMULASI PENENTUAN NILAI DERAJAT KEANGGOTAAN LAJU ERROR.
(α PREDIKAT) INPUT
ELEKTRAN, VOL. 2, NO. 1, JUNI 2012
Implementasi Aturan Dasar (Base Rule) untuk mendapatkan nilai output fuzzy-nya adalah dengan langkahlangkah inferensi Aturan Dasar (Base Rule) menggunakan fungsi implikasi sebagai berikut: a. Hasil perhitungan α_error dan α_laju error menentukan α_out 1 menggunakan fungsi implikasi/ metoda MIN yaitu nilai terkecil yang diambil untuk proses berikutnya. b. Dari setiap rule akan diperoleh nilai output fuzzy yaitu dengan nilai derajat keanggotaan hasil metoda MIN sebagai nilai derajat keanggotaan output, kemudian dihitung nilai outputnya sesuai dengan fungsi segitiga output pada Gambar 5 dengan rumus IF - THEN Contoh: Untuk R25 (Rule ke 25) : Jika α_NBe < α_NBle maka α_out25 = α_NBe, Dan output rule25 = α_NBe*ZE Bila tidak, maka α_out25 = α_NBle Dan output rule25 = α_NBle*ZE Untuk R1(Rule ke 1): Jika α_PBe < α_PBle maka α_out1 = α PBe, Dan output rule1 = α_PBe*DB Bila tidak, maka α_out1 = α_PBle Dan output rule1 = α_PBle*DB Hasil yang diperoleh pada proses fuzifikasi dan inferensi fuzzy di atas dilanjutkan dengan proses Defuzifikasi. Metoda Defuzifikasi yang dipilih adalah metoda Tsukamoto. Langkahnya: setelah didapat nilai derajat output dan nilai output fuzzy dengan dua langkah pada implementasi Aturan Dasar di atas, maka proses defuzifikasi adalah menghitung nilai bobot rerata dengan rumus berikut :
23 Pengukuran respon output dengan mengamati level air pada tangki saat keran output berubah dari bukaan 50% ke 100% pada SP 10 cm dengan nilai T (time sampling) pada pembacaan ADC bervariasi dari 100 ms sampai 5000 ms. Ketinggian air diubah ke nilai tegangan melalui sensor level. Pengukur tegangan yang dipakai osiloskop digital dengan waktu pengamatan maksimal 100 detik. Dimulai dengan mengamati respon output tanpa kendali kemudian dengan kendali. TABEL 4. HASIL UJI pr Ogram PENENTUAN NILAI DEFUZIFIKASI. error
1 0.75 0.5 0.25 0.1 0.05 0 -0.05 -0.1 -0.25 -0.5 -0.75 -1
laju error
0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1
defuz
error
5 5 5 4 3.4 3.2 3 2.85 2.7 2.25 1.5 1.5 1.5
1 0.75 0.5 0.25 0.1 0.05 0 -0.05 -0.1 -0.25 -0.5 -0.75 -1
laju error
-0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1 -0.1
defuz
3 3 3 2.25 1.8 1.65 1.5 1.5 1.5 1.5 1.5 1.5 1.5
Hasil pengukuran terhadap beberapa perlakuan diberikan pada Gambar 8 sampai Gambar 12.
……….(3) IV. UJI COBA DAN ANALISA Dalam tulisan ini dilakukan ujicoba pada plant level air yang terdiri dari tangki air, motor DC, sensor level dan mikrokontroler Atmega 8535. Hasil perhitungan akhir nilai output fuzzy digunakan sebagai dasar penentuan nilai output yang paling baik memberikan respon output sistem. Dengan mengatur rentang nilai semesta pembicaraan dari nilai himpunan input error dan laju error serta nilai semesta pembicaraan himpunan output, dihitung nilai output defuzifikasi. Semesta pembicaraan input error -1cm sampai +1 cm. Semesta pembicaraan input laju error adalah -0.1 cm sampai + 0.1cm. Semesta pembicaraan himpunan output adalah 1, 2, 3, 4 sampai 5 Volt. Hasilnya pada Tabel 4 memperlihatkan trend yang sesuai dengan rancangan, yaitu bila nilai error dan laju error negative laju pengisian turun dengan terlihat nilai output defuzifikasi kecil dan bila nilai error dan laju error positif maka laju pengisian naik sesuai dengan nilai output defuzifikasi maksimal yaitu 5 Volt.
Gambar 8. Respon output sistem tanpa kendali
Gambar 9. Respon output sistem dengan kendali, MF 5
ELEKTRAN, VOL. 2, NO. 1, JUNI 2012
Gambar 10. Respon output sistem dengan kendali, MF 3
24 walaupun diberikan gangguan dengan bukaan pada keran output dari 50% ke 100%. Rise time pada respon sistem untuk jumlah keanggotaan input fuzzy 3 lebih cepat dibandingkan dengan kendalian untuk jumlah keanggotaan input fuzzy 5, MF5 40 detik dan MF3 30 detik (gambar 9 dan 10). Hal ini dimungkinkan karena dengan keanggotaan input 5 dibutuhkan waktu eksekusi program pada mikrokontroler lebih lama yang mengakibatkan respon sistem menjadi lebih lambat. Settling time untuk fungsi keanggotan 5 lebih lambat 20 detik yaitu 55 detik dan untuk fungsi keanggotaan 3 sebesar 35 detik.
Gambar 11. Respon output stabil dengan kendali, MF 5, saat ada gangguan
V. KESIMPULAN Program kendali fuzzy dapat dilakukan dengan hasil yang sama untuk nilai fungsi keanggotaan lima maupun tiga. Pada kedua nilai fungsi keanggotaan ini level air tetap konstan pada level set point dengan gangguan. Rise time respon output untuk program fuzzy dengan 3 fungsi keanggotaan lebih cepat dibanding dengan 5 fungsi keanggotaan Settling time respon output dengan 3 fungsi keanggotaan lebih cepat tercapainya dibandingkan dengan 5 fungsi keanggotaan. DAFTAR PUSTAKA [1] [2] [3] [4]
Gambar 12. Respon output stabil dengan kendali, MF 3,saat ada gangguan
[5] [6]
Berdasarkan hasil pengukuran diperoleh hasil sebagai berikut: Program fuzzy dengan fungsi keanggotaan 5 dan 3 pada pengaturan time sampling rentang 100 ms – 1000 ms menghasilkan pengendalian yang baik (Gambar 11 dan 12) yaitu level air pada tangki tetap konstan pada level set point
[7] [8]
Kusumadewi,Sri., Analisis dan Design Sistem Fuzzy menggunakan ToolBox Matlab, Graha Ilmu, Jogyakarta, 2002. Agrahari, S., A Performance Comparison of PID, FLC & MPC Controller, A Comparative Case Study. Department of Electrical & Instrumentation Engineering, Thapor University, Patiala, 2009. Lara, R. F., Sanchez, E. N., Navarro, D. Z., Minimal Fuzzy Microcontroller Implementation For Didactic Application, journal, vol 1, 002, pp 137-147, Univ. Nacional, Mexico, 2003. Mohan,V., Fuzzy Logic Controller for An Autonomous Mobile Robot, Claveland State University, 2005. Ogata,K., Modern Control Engineerin, Prentice Hall, New Jersey, 1997. Thiang, Yohanes, TDS., Mulya, A., Pengaturan Level Ketinggian Air Menggunakan Kontrol PID, Jurnal Teknik Elektro, Vol 4, no 2, Petra, Surabaya, 2004, pp 79 – 84. Utami,E., Sukrisno., 10 Langkah Belajar Logika dan Algoritma menggunakan Bahasa C dan C++ di GNU/linux, Andi Offset, Jogyakarta, 2005. Wang,L.X., A Course in Fuzzy Systems and Control, Prentice Hall, New Jersey, 1997.