TELEKONTRAN. VOL. NO. OKTOBER 2019 DOI 10. 34010/telekontran. TELEKONTRAN. VOL. NO. OKTOBER 2019 p-ISSN : 2303 Ae 2901 e-ISSN : 2654 Ae 7384 Tuning Parameter pada Pengendali Logika Fuzzy menggunakan Algoritma Ant Colony Optimization Parameter Tuning for a Fuzzy Logic Controller using the Ant Colony Optimization Algorithm Adriana Fanggidae* Program studi Ilmu Komputer. Fakultas Sains dan Teknik. Universitas Nusa Cendana Jl. Adisucipto. Lasiana. Kelapa Lima. Kupang. Nusa Tenggara Timur 85228. *Email: adrianafanggidae@staf. Abstrak Ae Tujuan dari penelitian ini adalah untuk mengimplementasikan algoritma Ant Colony Optimization (ACO) untuk melakukan tuning parameter pada pengendali logika fuzzy atau Fuzzy Logic Controller (FLC). FLC tersebut digunakan untuk mengendalikan ketinggian air dari tangki proses. Masukan dan keluaran fuzzy terdiri dari tujuh fungsi keanggotaan, yaitu positif besar (PB), positif menengah (PM) dan ositif kecil (PS), zero (Z), negatif kecil (NS), negatif menengah (NM) dan negatif besar (NB). Pertama-tama, dicari parameter FLC awal, lalu dibangkitkan suatu graph dimana nilai-nilai parameter FLC ditentukan dalam rentang nilai antara 0 hingga 1,5 kali dari nilai parameter awal. Lalu diimplementasikan algoritma ACO untuk memperbaiki nilai parameter FLC tersebut agar diperoleh performansi yang lebih baik. Performansi pengendali yang diharapkan adalah meminimalkan lonjakan maksimum . dan waktu naik . ise tim. Sistem ini diimplementasikan menggunakan program labVIEW. Data ketinggian air diperoleh menggunakan sensor potensiometer. Keluaran dari FLC terhubung dengan motor stepper untuk mengatur debit masukan air ke tangki proses. Dari hasil pengujian telah berhasil diperoleh overshoot dan risetime yang kecil, sebagai contoh, untuk setpoint 8, performansi keluaran sistem memiliki overshoot 2. dan rise time 8909 ms. Algoritma ACO berhasil meningkatkan performansi sistem dibandingkan performansi sistem jika menggunakan parameter awal. Peningkatan performansi ini dikarenakan algoritma ACO bertindak sebagai algoritma pencarian lokal . ocal searc. yang akan mencari performansi sistem yang lebih baik disekitar nilai parameter awalnya. Penelitian ini berhasil menunjukkan bahwa algoritma ACO dapat digunakan untuk melakukan tuning dari parameter FLC. Kata Kunci : Ant colony optimization, pencarian lokal, pengendalian ketinggian air, pengendali logika fuzzy, tuning parameter Abstract - The purpose of this study is to implement the Ant Colony Optimization (ACO) algorithm for tuning parameters in a fuzzy logic controller or Fuzzy Logic Controller (FLC). The FLC is used to control the water level of the process tank. Fuzzy input and output consists of seven membership functions, namely large positive (PB), medium positive (PM) and small ositive (PS), zero (Z), small negative (NS), medium negative (NM) and large negative (NB ). First, the initial FLC parameter is searched, then a graph is generated where the values of the FLC parameter are determined in the range of values between 0 and 1. 5 times the initial parameter value. Then the ACO algorithm is implemented to improve the value of the FLC parameters in order to obtain better performance. The expected controller performance is to minimize the overshoot and rise time. This system is implemented using the LabVIEW program. Water level data is obtained using a potentiometer sensor. The output from the FLC is connected to the stepper motor to regulate the discharge of water input to the process tank. From the test results we have obtained a small overshoot and research, for example, for setpoint 8, the system output performance has an overshoot of 2. 5% and a rise time of 8909 ms. ACO algorithm succeeded in increasing system performance compared to system performance if using initial This increase in performance is due to the ACO algorithm acting as a local search algorithm which will look for better system performance around its initial parameter values. This research successfully demonstrated that the ACO algorithm can be used to perform tuning of FLC parameters. Keywords : Ant colony optimization, local search, water level control, fuzzy logic controller, parameter TELEKONTRAN. VOL. NO. OKTOBER 2019 PENDAHULUAN Pengendali logika Fuzzy atau Fuzzy Logic Controller (FLC) telah menjadi salah satu bidang penelitian yang paling aktif. Beberapa penelitian telah menunjukkan bahwa FLC memberikan performansi pengendalian yang lebih baik dibandingkan metode pengendalian konvensional . Tetapi FLC dan parameternya harus dirancang khusus untuk setiap sistem yang hendak Perancangan dan penyesuaian ini biasanya dilakukan secara manual atau dengan metode trial and error. Tetapi karena penyesuaian parameter dengan cara manual atau trial and error tersebut menghabiskan waktu yang banyak, maka salah satu alternatifnya adalah menggunakan teknik seperti Algoritma Genetik (GA) . Particle Swarm Optimization (PSO) . ataupun Ant Colony Optimization (ACO) . Pendekatan menggunakan ACO menjadi salah satu metode yang digunakan pada penelitian ini. Algoritma Ant Colony Optimization (ACO) diinspirasi dari perilaku kelompok semut dalam mencari dan mengumpulkan makanan. Prinsip dari algoritma ini ditunjukkan pada Gambar 1. Algoritma ini ditujuan untuk menyelesaikan masalah optimasi diskrit . Algoritma ACO telah berhasil diimplementasikan pada berbagai masalah optimasi diskrit, seperti perutean kendaraan . , penjadwalan pekerjaan . , ataupun masalah travelling-salesman (TSP) . Penelitian ini mengimplementasikan FLC untuk mengendalikan tangki proses, dimana parameter FLC akan detuning menggunakan algoritma ACO. Pengendalian tangki proses adalah sistem yang sederhana dan mudah dipahami, serta tidak stabil dalam kasus lup terbuka. Gambar 1. Prinsip dari algoritma ACO : . Kelompok semut akan mencari jalan menuju makanan dan kembali ke sarang, . rute yang terpendek akan memiliki lebih banyak pheromone karena pada rute terpendek, semut akan lebih banyak bolak balik antara sarang dan Terdapat beberapa publikasi mengenai penelitian tuning parameter FLC. Castilo . membahas penelitian mengenai tuning parameter Fuzzy menggunakan ACO, tetapi pengujian yang dilakukan masih menggunakan simulasi. Castilo . melakukan penelitian mengenai tuning parameter Fuzzy secara dinamik menggunakan ACO untuk implementasi robot mobil. Tetapi paper tersebut belum membahas proses implementasinya pada robot mobil. Mitra . melakukan penelitian mengenai pengendali fuzzy supervised menggunakan algoritma ACO, tetapi belum mengujikan hasilnya pada sistem nyata. Kaliannan . mengimplementasikan ACO untuk tuning parameter pengontrol ProportionalIntegral-Derivative (PID), tetapi pengujiannya juga masih dilakukan secara simulasi. Sejauh yang diketahui oleh penulis, belum ada penelitian sebelumnya yang menyajikan hasil tuning parameter FLC menggunakan algoritma ACO yang pengujiannya dilakukan secara eksperimen pada sistem nyata. Tujuan mengimplementasikan algoritma ACO untuk tuning parameter FLC pada pengendalian tinggi air pada tangka proses. Pengujian akan dilakukan pada alat nyata. Metode yang digunakan adalah pertama-tama mencari parameter FLC awal. Kemudian dibuat suatu graph yang berisi nilainilai parameter FLC yang memiliki rentang 0 hingga 1,5 kali dari nilai parameter awal. Graph ini dibuat untuk mentransformasikan masalah optimasi parameter-parameter pengontrol Fuzzy kombinatorial, sehingga masalah tuning parameter Fuzzy ini dapat dilakukan oleh algoritma ACO. Pada graph tersebut diimplementasikan algoritma ACO untuk memperbaiki nilai parameter FLC agar diperoleh performansi sistem yang lebih Performansi sistem yang diharapkan adalah lonjakan maksimum . dan waktu naik . ise tim. yang minimal. Sistem ini labVIEW, dengan sensor masukan menggunakan potensiometer dan aktuator menggunakan motor stepper untuk mengatur debit masukan air ke tangki proses. Pada metode yang diajukan ini, algoritma ACO bertindak sebagai algoritma local search yang akan mencari performansi sistem yang lebih baik disekitar nilai parameter awalnya. Penelitian ini akan menunjukkan bahwa algoritma ACO dapat digunakan untuk melakukan tuning dari parameter FLC. TELEKONTRAN. VOL. NO. OKTOBER 2019 METODE Masukan dan keluaran dari FLC yang digunakan terdiri dari tujuh fungsi keanggotaan, yaitu positif besar (PB), positif menengah (PM) dan ositif kecil (PS), zero (Z), negatif kecil (NS), negatif menengah (NM) dan negatif besar (NB). Nilai-nilai dari parameter fungsi keanggotaan tersebut akan dituning menggunakan algoritma ACO. Metode untuk melakukan tuning parameter FLC menggunakan algoritma ACO ditunjukkan pada Gambar 2. Pertama-tama dibangkitkan fungsi keanggotaan dan parameter awalnya berdasarkan rentang data masukan dan keluaran FLC. Kemudian diimplementasikan algoritma ACO untuk melakukan local search disekitar nilai parameter awal FLC tersebut agar diperoleh performansi sistem yang lebih baik Procedure Tuning_Fuzzy_ACO MakingDefaultFuzzyRuleBase AntColonyOptimization End Tuning_Fuzzy_ACO Semut-semut akan meletakan pheromone pada setiap jalur graph yang dilaluinya. Pheromone akan diperbaharui /di-update melalui dua cara, yaitu update pheromone local, dan update pheromone global. Pada update pheromone lokal, jika semut telah selesai melalui suatu jalur dari titik awal ke tujuan, maka pheromone akan diupdate menggunakan persamaan . Dengan Variabel adalah variabel peng-update-an pheromone secara umum. adalah jumlah jalur adalah nilai fitness dari performansi sistem jika menggunakan parameter-parameter yang diberikan pada jalur tersebut. Pada update pheromone global, ada update pheromone positif . dan ada update pheromone negative . Persamaan yang digunakan adalah sebagai berikut. Gambar 2. Metode tuning parameter FLC menggunakan algoritma ACO Berdasarkan nilai parameter FLC awal tersebut, lalu dibuat graph yang pada setiap cabangnya berisi alternative nilai-nilai parameter FLC yang memiliki rentang 0 hingga 1,5 kali dari nilai parameter awal. Ilustrasi graph yang dibuat ditunjukkan pada Gambar 3. Graph ini digunakan untuk mentransformasikan masalah optimasi parameter-parameter fungsi keanggotaan Fuzzy Melalui graph inilah algoritma ACO akan diterapkan. Dalam percobaan ini, jumlah yang digunakan adalah 500. Dimana adalah pheromone dari masing-masing jalur yang dilalui semut dalam tour dengan nilai fitness terendah (Cbes. dan tertinggi (Cwors. dalam satu iterasi. Pheromone dari masing-masing jalur yang yang membangun best tour akan terus bertambah, sedangkan pheromone dari jalur yang membangun worst tour akan terus berkurang selama iterasi. Gambar 3. Representasi graph permasalahan tuning parameter Fuzzy TELEKONTRAN. VOL. NO. OKTOBER 2019 Setelah satu iterasi, beberapa pheromone akan Penguapan pheromone pada persamaan . akan membuat algoritma ACO untuk melupakan histori sebelumnya, sehingga ACO dapat lebih terbuka untuk melakukan pelacakan pada arah yang baru tanpa akan terjebak pada local minimal. mengendalikan sistem buka dan tutup keran sehingga level ketinggian air dapat . Dimana adalah konstanta penguapan dan adalah jumlah dari persamaan . Performansi sistem yang hendak diminim adalah jumlah dari persamaan alkan adalah nilai overshoot dan waktu risetime. Fitness yang digunakan untuk optimasi parameter fuzzy dengan ACO pada penelitian ini adalah Integral Absolute Error (IAE) dan Integral Squared Error (ISE). II. HASIL DAN DISKUSI Diagram blok yang dirancang pada penelitian ini ditunjukkan pada Gambar 4. Urutan kerjanya adalah sebagai berikut. Sensor potensiometer menangkap informasi ketinggian air berdasarkan perubahan tegangan, kemudian mengirimkan sinyal analog ke Analog to Digital Converter (ADC) Jika telah diterima oleh ADC, maka sinyal analog dari sensor diubah menjadi data digital atau biner 8 bit, lalu keluaran dari ADC akan diproses oleh rangkaian multiplexer. Dalam rangkaian multiplexer, sinyal dari ADC diproses dan kemudian dikeluarkan dalam satu saluran, data ini kemudian dikirim ke komputer melalui komunikasi paralel menggunakan konektor DB25 pada komputer. Data yang telah memasuki komputer kemudian diproses menggunakan perangkat lunak LabVIEW untuk menerapkan kontrol logika fuzzy, setelah itu data yang diolah kemudian dikeluarkan kembali ke konektor DB25, yang kemudian digunakan untuk mengontrol buka dan tutup sistem keran sehingga ketinggian air dapat dikendalikan. Data yang telah masuk ke komputer, kemudian diolah dan diproses menggunakan LabVIEW mengimplementasikan kendali logika fuzzy, setelah itu data yang telah diproses kemudian dikeluarkan kembali pada connector DB 25. Gambar 4. Blok diagram sistem Pada perancangan perangkat keras, telah dibuat beberapa sub-rangkaian, yaitu sebagai Rangkaian ditunjukkan pada Gambar 5. Rangkaian catu daya sebagai supply tegangan, yang ditunjukkan pada Gambar 6. Rangkaian ADC 0804 untuk mengubah data analog dari sensor menjadi data digital, yang ditunjukkan pada Gambar 7. Karena menggunakan ADC 8 bit, maka diperoleh resolusi tegangan masukan sebesar 19,6 mV. Rangkaian multiplekser untuk mengubah data parallel menjadi serial yang akan dikeluarkan pada satu output, yang ditunjukkan pada Gambar 8. Rangkaian driver motor stepper untuk ditunjukkan pada Gambar 9. Penggunaan konektor DB25 sebagai interface antara perangkat keras dengan komputer, yang ditunjukkan pada Gambar 8 dan 9. Gambar 5. Rangkaian sensor potensiometer TELEKONTRAN. VOL. NO. OKTOBER 2019 Gambar 6. Rangkaian catu daya Gambar 7. Rangkaian ADC dengan sensor Gambar 8. Rangkaian Multiplekser dengan port parallel DB25 TELEKONTRAN. VOL. NO. OKTOBER 2019 Gambar 9. Rangkaian driver motor stepper dengan port parallel DB25 Selanjutnya akan dilakukan perancangan kaidah fuzzy. Perancangan kaidah fuzzy ini seperti yang dilakukan pada . Basis kaidah yang digunakan pada logika fuzzy ini 7 variabel linguistik, yaitu positif besar (PB), positif menengah (PM), positif kecil (PS), nol (Z), negatif besar (NB), negatif menengah (NM), negatif kecil (NS). Seperti terlihat pada Gambar Masukan yang digunakan adalah dan Dengan mengacu pada tanggapan . tep respo. sistem lup tertutup seperti Gambar 11, maka dapat dirancang kaidah kendali fuzzy seperti yang ditunjukkan pada Tabel I. Kaidah 1 pada Tabel I menunjukkan keadaan pada titik a di Gambar 11. Titik a menunjukkan keadan error ( ) yang besar (PB), maka aksi yang harus dilakukan oleh sinyal kontrol ( ) adalah melakukan bukaan valve yang besar (PB) agar level ketinggian air segera naik. Pada titik c ketinggian air telah melebihi setpoint . rror bernilai negativ. , maka error pada titik c adalah NB. Maka aksi yang harus dilakukan oleh sinyal kontrol adalah menutup rapat (NB) keran agar air segera turun. Gambar 10. Fungsi keanggotaan Fuzzy yang digunakan Gambar 11. Tanggapan . tep respo. sistem lup tertutup yang Tabel I. Kaidah kendali Fuzzy yang dirancang untuk memperoleh step respon sistem lup tertutup seperti pada Gambar 11 Kaidah Referensi Fungsi Titik a Perpendek rise time Titik e Perpendek rise time Titik l Perpendek rise time Titik b Kurangkan overshoot NM NM Titik f Kurangkan overshoot Titik j Kurangkan overshoot Titik c Kurangkan overshoot Titik g Kurangkan overshoot Titik k Kurangkan overshoot Titik d Perkecil osilasi Titik h Perkecil osilasi Titik i Perkecil osilasi Titik set TELEKONTRAN. VOL. NO. OKTOBER 2019 Agar pengendali fuzzy yang dirancang berlaku untuk seluruh masukan sistem, maka kaidah-kaidah kendali yang disusun pada Tabel I dilengkapi dengan kaidah-kaidah lainnya hingga jumlah kaidah kendali sama dengan jumlah kombinasi dari variabel linguistik error . dan turunan error . yang tersedia. Kaidah lengkap yang dirancang ditunjukkan pada Tabel 2. Table II. Kaidah kendali fuzzy yang digunakan dengan masukan tujuh membership function Pada penelitian ini telah dirancang beberapa sub-program pengendali fuzzy. Beberapa program yang dirancang adalah sebagai berikut. Perancangan program Triangel. Program Triangel. vi berfungsi untuk keanggotaan segitiga pada logika fuzzy. Tampilan block diagram dari Triangle. ditunjukkan pada Gambar 12. Perancangan program Trapezium. Program Trapezium. vi berfungsi untuk keanggotaan trapesium pada logika fuzzy. Tampilan block diagram dari Trapezium. ditunjukkan pada Gambar 13. Perancangan program Input array. Program Input array. vi digunakan untuk membatasi besarnya nilai dan interval inputan pada fungsi keanggotaan segitiga dan tarpesium. Gambar 14 menunjukkan block diagram dari input array. Perancangan program Tangki. Perancangan program tangki. vi digunakan ketinggian air minimum 0 cm dan maksimum 15 cm. Data digital dari output ADC akan menginformasikan perubahan level ketinggian air pada tangki proses. Data-data tersebut diolah pada program ketinggian air pada tangki proses. Gambar 15 menunjukkan block diagram dari program tangki. Perancangan program Pengaman. Progam pengaman. vi digunakan sebagai Prinsip tersebut memanfaatkan status 4 dan status 5 pada pin port parallel DB 25, yaitu pin 13 dan pin 12, jika status 4 aktif maka putaran keran akan mati hal ini menandakan bahwa keran telah membuka penuh sedangkan jika status 5 aktif maka putaran keran akan mati hal ini menandakan keran telah menutup penuh. Gambar 16 menunjukkan block diagram dari program Perancangan program multiplekser. program Multiplekser. vi digunakan untuk menghitung nilai keluaran dari rangkaian multiplekser agar sesuai dengan keluaran dari ADC. Block diagram dari program vi ditunjukkan pada Gambar Perancangan program motor stepper. Program motor stepper. vi digunakan untuk mengendalikan putaran motor stepper supaya dapat memutar ke kanan, ke kiri dan Block diagram dari program motor vi ditunjukkan pada Gambar 18. Perancangan program fuzzy. Program menggabungkan dan merangkai program vi, trapezium. vi dan input array. sehingga dapat merealisasikan kendali logika fuzzy dalam perangkat lunak . , yang berisi proses fuzzifikasi, basis kaidah . ule bas. , mekanisme inferensi . nference mechanis. dan Perancangan pengontrol fuzzy. Program pengontrol fuzzy. vi digunakan untuk mengendalikan level ketinggian air dari plant sehingga level ketinggian air tersebut sesuai dengan level ketinggian yang diharapkan . Perancangan program dilakukan dengan menggabungkan beberapa sub vi, yaitu triangel. vi, tangki. vi, multiplekser. vi dan vi sehingga menjadi suatu kesatuan program pengontrol fuzzy. vi yang akan mengendalikan plant TELEKONTRAN. VOL. NO. OKTOBER 2019 Gambar 12. Block diagram program triangle. Gambar 13. Block diagram program trapezium. Gambar 14. Block diagram input array. Gambar 15. Block diagram program tangka. TELEKONTRAN. VOL. NO. OKTOBER 2019 Gambar 16. Block diagram program pengaman. Gambar 17. Block diagram program multiplekser. Gambar 18. Block diagram program motor stepper. TELEKONTRAN. VOL. NO. OKTOBER 2019 Tuning parameter FLC dilakukan dengan pertama-tama semut merancang jalur dari node awal ke node tujuan pada graph. Setelah satu jalur terselesaikan, maka hasil parameter tersebut akan diujikan pada sistem tangki proses. Nilai IAE dan ISE akan dicatat dan menjadi panduan update pheromone pada graph tersebut. Lalu proses pencarian jalur oleh semut akan diulang kembali beberapa iterasi hingga diperoleh hasil yang Pengujian terhadap performansi sistem dilakukan untuk mengetahui performansi sistem yang meliputi, lonjakan maksimum . dan waktu naik . ise tim. Pengujian terhadap performansi sistem dilakuakn dengan menentukan setpoint pada program pengontrol fuzzy. vi lalu dilakukan pengamatan pada level ketinggian air tangki proses, apakah dapat mencapai setpoint yang telah ditentukan serta mengamati performansi dari sistem apakah sesuai dengan kendali logika fuzzy yang dirancang, yaitu memperkecil lonjakan maksimum . dan waktu naik . ise tim. Gambar 19 menunjukkan grafik performansi sistem dengan setpoint 8. Gambar 20 menunjukkan grafik performansi sistem dengan Gambar 21 menunjukkan grafik performansi sistem dengan setpoint 15. Gambar 22 menunjukkan grafik performansi sistem dengan memberikan setpoint yang berbeda, yaitu 8, 7 dan 9. Table i menunjukkan nilai overshoot dan risetime untuk setiap setpoint yang diuji Gambar 20. Grafik performansi sistem dengan setpoint 10 Gambar 21. Grafik performansi sistem dengan setpoint 15 Gambar 22. Grafik performansi sistem dengan perubahan setpoint Gambar 19. Grafik performansi sistem dengan setpoint 8 Table i. Hasil pengujian performansi sistem Setpoint Overshoot Risetime . Dari hasil pengujian performansi sistem dengan setpoint 8, 10 dan 15, dapat diamati bahwa sistem dapat berjalan sesuai dengan yang diharapkan, yaitu memiliki overshoot dan risetime yang kecil. Overshoot dapat diperkecil karena adanya kaidah 4 Ae 9 pada Tabel I. Adapun risetime dapat diperkecil karena adanya kaidah 1 Ae 3 pada Tabel I. Pada pengujian sistem dengan memberikan perubahan pada setpoint, dapat diamati bahwa sistem merespon dengan baik, terlihat dari perubahan level aktual yang berubah sesuai dengan perubahan setpoint yang telah ditentukan. KESIMPULAN Dari hasil pengujian, sistem pengontrol fuzzy dengan tuning parameter menggunakan ACO dapat berjalan dengan baik. Pengontrol fuzzy dapat mengatur putaran motor stepper sehingga TELEKONTRAN. VOL. NO. OKTOBER 2019 level ketinggian air yang diharapkan . Pengontrol fuzzy juga telah berhasil memperkecil lonjakan maksimum . dan waktu naik . ise tim. Overshoot dan risetime dapat diturunkan karena adanya kaidah fuzzy yang dipersiapkan untuk menurunkan overshoot dan risetime. Adapun penurunan overshoot dan risetime dapat dibuat minimal dikarenakan adanya proses tuning parameter fuzzy oleh algoritma ACO. Sebagai contoh, untuk setpoint 8, performansi keluaran sistem memiliki overshoot 5% dan rise time 8909 ms. DAFTAR PUSTAKA