Sistem Pengontrolan Fuzzy Pada tahun 1990 pertama kali dibuat mesin cuci dengan logika fuzzy di Jepang (Matshushita Electric Industrial Company). Sistem fuzzy digunakan untuk menentukan putaran yang tepat secara otomatis berdasarkan jenis dan banyaknya kotoran serta jumlah yang akan dicuci. Input yang digunakan adalah seberapa kotor, jenis kotoran dan banyaknya yang dicuci. Mesin ini menggunakan sensor optik, mengeluarkan cahaya ke air dan mengukur bagaimana cahaya tersebut sampai ke ujung lainnya. Makin kotor, maka sinar yang sampai makin redup. Disamping itu, sistem juga dapat menentukan jenis kotoran (daki atau minyak). Logika fuzzy adalah suatu cara untuk memetakan suatu ruang input ke dalam suatu ruang output. Antara input dan output terdapat satu kotak hitam yang harus memetakan input ke output yang sesuai. Ada beberapa alasan mengapa orang menggunakan logika fuzzy : 1. Konsep logika fuzzy mudah dimengerti. Konsep matematis yang mendasari penalaran fuzzy sangat sederhana dan mudah dimengerti. 2. Logika fuzzy sangat fleksibel 3. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat 4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinier yang sangat kompleks 5. Logika fuzzy dapat membangun dan mengaplikasikan pengalamanpengalaman para pakar secara langsung tanpa harus melalui proses pelatihan 6. Logika fuzzy dapat bekerjasama dengan teknik-teknik kendali secara konvensional 7. Logika fuzzy didasarkan pada bahasa alami Sebelum menggunakan logika Fuzzy, biasanya komputansi menggunakan himpunan crisp. Pada himpunan tegas (crips), nilai keanggotaan suatu item x dalam suatu himpunan A, yang sering ditulis dengan μA[x], memiliki 2 kemungkinan, yaitu : satu (1), yang berarti bahwa suatu item menjadi anggota dalam suatu himpunan, atau nol (0), yang berarti bahwa suatu item tidak menjadi anggota dalam suatu himpunan. Tetapi penggunaan himpunan crisp untuk menyatakan suatu keanggotaan terkadang sangat tidak adil, adanya perubahan kecil saja pada suatu nilai mengakibatkan perbedaan kategori yang cukup signifikan. Contoh jika variabel umur dibagi menjadi 2 kategori yaitu umur < 40 tahun disebut muda dan umur 40 disebut tua, maka bagaimana jika seseorang berua 40 tahun kurang 1 hari ? Himpunan fuzzy digunakan untuk mengantisipasi hal tersebut. Seberapa besar eksistensi dalam suatu himpunan dapat dilihat pada nilai keanggotaannya. Sistem Pengontrolan Fuzzy Fungsi Keanggotaan Fuzzy Fungsi keanggotaan (membership function) adalah suatu kurva yang menunjukkan pemetaan titik-titik input data ke dalam nilai keanggotaannya (sering juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0 sampai 1. Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. a. Representasi Linear 1 0 b a Gambar 1 – 1. Representasi fungsi keanggotaan linear Fungsi keanggotaan : xb x ab ( Persamaan 1.1) b. Representasi Kurva Segitiga Gambar 1 – 2. Representasi fungsi keanggotaan segitiga Fungsi keanggotaan : hc x ch x (Persamaan 1.2) x max min , ,0 h h Sistem Pengontrolan Fuzzy c. Representasi Kurva Trapesium Gambar 1 – 3. Representasi fungsi keanggotaan trapesium Fungsi keanggotaan : xa d x ,1, ,0 ba d c x max min (Persamaan 1.3) d. Representasi kurva Gauss : Gambar 1 – 4. Representasi fungsi keanggotaan Gauss Fungsi keanggotaan : x e x c 2 2s 2 (Persamaan 1.4) e. Kurva bentuk lonceng (generalized bell) Gambar 1 – 5. Representasi fungsi keanggotaan bentuk lonceng Sistem Pengontrolan Fuzzy Fungsi keanggotaan : x 1 x a ac 2b (Persamaan 1.5) 1 f. Representasi kurva sigmoid Gambar 1 – 6. Representasi fungsi keanggotaan sigmoid Fungsi keanggotaan : x 1 e a x c (Persamaan 1.6) 1 Operator Dasar untuk Operasi Himpunan Fuzzy Untuk mengkombinasikan atau memodifikasi himpunan fuzzy, ada beberapa operasi yang didefinisikan, yaitu : a. Fuzzy Complement Salah satu operasi umum yang digunakan pada Fuzzy Complement adalah operator NOT. Operasi ini mengurangkan nilai keanggotaan elemen pada himpunan yang bersangkutan dari 1. A' x 1 A x (Persamaan 1.7) b. Fuzzy Intersection Salah satu operasi umum yang digunakan pada Fuzzy Intersection adalah operator MIN atau operator AND. Operasi ini diperoleh dengan mengambil nilai keanggotaan terkecil diantara elemen-elemen dari himpunan yang bersangkutan. A B x min A x , B x (Persamaan 1.8) c. Fuzzy Union Salah satu operasi umum yang digunakan pada Fuzzy Intersection adalah operator MAX atau operator OR. Operasi ini diperoleh dengan mengambil nilai keanggotaan terbesar diantara elemen-elemen dari himpunan yang bersangkutan. A B x max A x , B x (Persamaan 1.9) Sistem Pengontrolan Fuzzy Sistem Inferensi Fuzzy Metode Mamdani Proses pengontrolan Fuzzy pada praktikum ini menggunakan sistem inferensi Fuzzy metode mamdani dengan mekanisme sebagai berikut : Gambar 1 – 7. Mekanisme Inferensi Fuzzy Model Mamdani Gambar 1 – 7 menunjukkan inferensi Fuzzy Model Mamdani untuk dua rule. Proses dari inferensi tersebut dapat dijelaskan sebagai berikut : - terdapat dua masukan yaitu x dan y, masukan x akan dipetakan pada membership function A1 dan A2 sehingga diperoleh nilai A1 dan A2, demikian juga masukan y dipetakan pada membership function B1 dan B2. - dilakukan operasi intersection (operasi min) pada A1 dan B1 sehingga diperoleh nilai C’1, demikian juga pada A2 dan B2 sehingga diperoleh nilai C’2. - dari nilai C’1 dan C’2 akan diperoleh besarnya daerah yang terarsir dari membership function C1 dan C2. - kedua daerah yang diarsir tersebut lalu digabungkan menjadi kurva C’ yang kemudian akan dilakukan defuzzifikasi untuk memperoleh nilai ZCOA. Defuzzifikasi Proses defuzzifikasi berfungsi untuk merubah nilai Fuzzy menjadi nilai crisp. Pada praktikum ini, proses defuzifikasi dilakukan dengan menghitung koordinat pusat massa dari bentuk fungsi keanggotaan C’. Sistem Pengontrolan Fuzzy Perancangan Pengontrol Fuzzy untuk Sistem Tangki Ganda Aturan yang digunakan : 1. IF (level is okay) THEN (valve is no_change) 2. IF (level is low) THEN (valve is open_fast) 3. IF (level is high) THEN (valve is close_fast) 4. IF (level is okay) AND (rate is positive) THEN (valve is close_slow) 5. IF (level is okay) AND (rate is negative) THEN (valve is open_slow) Membership function level menggunakan Gaussian Membership Function : Gaussian x; c, e 1 x c 2 2 Level state Membership function High Okay Low Gaussian MF Gaussian MF Gaussian MF Konstanta 30 30 30 c -100 0 100 Membership function rate : Rate state Membership function Negatif None Positif Gaussian MF Gaussian MF Gaussian MF Konstanta 0.02 0.105 0.035 c -0.25 0 0.45 Membership function valve menggunakan Triangle Membership Function : 0, x a xa ,a x b b a Triangle x; a, b, c c x ,b x c c b 0, c x Valve state Membership function Close_fast Close_low No_change Open_low Open_fast Triangle MF Triangle MF Triangle MF Triangle MF Triangle MF a -10 -7 -1 3 8 Konstanta b -9 -5 0 5 9 c -8 -3 1 7 10 Sistem Pengontrolan Fuzzy Pembuatan Modul Pengontrol Fuzzy Program pengontrol Fuzzy yang dibuat terdiri dari beberapa sub-vi, yaitu : - ”Gauss MF.vi”, program ini persamaan dari fungsi keanggotaan Gaussian - ”Triangle deFuzz.vi”, program ini berisi perhitungan awal untuk proses defuzzifikasi - ”Defuzzifikasi.vi”, program ini berisi perhitungan untuk menghasilkan nilai crisp dari kurva fuzzy. Membangun Front Panel untuk sub-vi “Gauss MF.vi” 1. Buat file VI baru. Save as “Gauss MF.vi” 2. Aktifkan Front Panel. 3. Buat 1 buah Digital Control dengan cara pilih Numeric » Digital Control. 4. Buat 1 buah Digital Indicator dengan cara pilih Numeric » Digital Indicator. 5. Pilih Array & Cluster » Cluster. 6. Pilih Numeric » Digital Control. Tempatkan dalam cluster yang sudah dibuat Gambar 1 – 8. Cara memasukkan digital control dalam cluster 7. Tempatkan kembali satu buah Digital Indikator di dalam cluster. Keterangan : Cluster adalah kumpulan dari beberapa elemen data yang mempunyai tipe data baik sama maupun berbeda. Bila cluster terdiri dari kumpulan elemen data yang mempunyai tipe yang sama maka cluster dapat diubah ke array dan sebaliknya. Data pada cluster dapat diakses dengan fungsi Unbundle. 8. Tempatkan dan edit labelnya seperti gambar 1 – 9. Gambar 1 – 9. Tampilan front panel dari modul sub-vi ”Gauss MF.vi” Sistem Pengontrolan Fuzzy Membangun VI Diagram untuk sub-vi “Gauss MF.vi” 1. Aktifkan Block Diagram 2. Dari Functions Palette, pilih Structure » Formula Node. Drag Formula Node agar berukuran cukup panjang. Keterangan : Formula Node adalah suatu metode perhitungan berupa kotak di mana Anda dapat memasukkan formula perhitungan atau persamaan matematis secara text. Formula Node akan sangat berguna apabila persamaan tersebut mempunyai variabel yang sangat banyak sehingga menjadi kompleks 3. Klik kanan pada sisi bagian kiri Formula Node. Pilih “Add Input”. Edit namanya menjadi “x”. 4. Dibawah input sebelumnya, klik kanan pada sisi bagian kiri Formula Node. Pilih “Add Input”. Edit namanya menjadi “c”. 5. Dibawah input sebelumnya, klik kanan pada sisi bagian kiri Formula Node. Pilih “Add Input”. Edit namanya menjadi “t”. 6. Klik kanan pada sisi bagian kanan Formula Node. Pilih “Add Ouput”. Edit namanya menjadi “y”. 7. Aktifkan Edit Text Tools. Tulis persamaan berikut didalam Formula Node : y=exp(-0.5*(((x-c)/t)**2)); Perhatikan : - Penamaan variabel pada persamaan harus sama dengan penamaan variabel pada input dan output - Berikan tanda “;” setiap diakhir suatu persamaan 8. Dari Functions Palette, pilih Cluster » Unbundle by Name. Letakkan disebelah kanan cluster “Fuzzy” 9. Aktifkan Wiring Tools. Hubungkan terminal output cluster “Membership Function” dengan terminal input Unbundle by Name. Setelah terhubung pada terminal kanan akan muncul tulisan “c” 10. Drug kebawah Unbundle by Name sehingga muncul dua terminal seperti gambar 1 – 10. Gambar 1 – 10. Fungsi Unbundle by Name yang telah dihubungkan dengan Cluster 11. Aktifkan Wiring Tools, lakukan wiring menjadi seperti gambar 1 – 11. Gambar 1 – 11. Block Diagram Modul sub-vi “Gauss MF.vi” Sistem Pengontrolan Fuzzy Membuat Modul Gauss MF sebagai SubVI 1. Aktifkan Front Panel, lalu klik kanan pada icon di Menu Bar. Pilih “Show Connector”. Maka akan terlihat icon seperti disamping. 2. Hubungkan setiap kotak pada connector dengan control-control berikut : 3. Klik kanan pada icon di Menu Bar lagi, pilih “Show Icon”. Kemudian Klik kanan lagi, pilih “Edit Icon”. Maka akan tampil menu utnuk mengedit gambar dari icon ini, Anda bisa membuat Icon sesuai kreasi Anda, atau buatlah seperti icon pada gambar disamping. 4. Save file. Membangun Front Panel untuk sub-vi “Triangle deFuzz.vi” 1. Buat file VI baru. Save as “Triangle deFuzz.vi” 2. Aktifkan Front Panel. Buat sebuah cluster yang berisi tiga buah digital control. Edit labelnya menjadi “a”, “b” dan “c”. 3. Disamping cluster tersebut, buat dua buah digital indicator, edit namanya menjadi “Luas” dan “X”, serta buat sebuah digital control, edit namanya menjadi “Y”. 4. Buat tampilan Front Panel menjadi seperti gambar 1 – 12. Gambar 1 – 12. Tampilan front panel dari sub-vi ”Triangle deFuzz.vi” Membangun VI Diagram untuk sub-vi “Triangle deFuzz.vi” 1. Aktifkan Block Diagram 2. Dari Functions Palette, pilih Structure » Formula Node. Drag Formula Node agar berukuran cukup panjang. 3. Pada bagian kiri Formula Node buat tiga buah input dengan nama masing-masing “a”, “b” dan “Y”. 4. Pada bagian kanan Formula Node buat dua buah output dengan nama masing-masing “L” dan “X”. 5. Aktifkan Edit Text Tools. Isikan persamaan dalam Formula Node sebagai berikut : X=Y*(b-a)+a; L=(X-a)*Y+(b-X)*Y*2; Sistem Pengontrolan Fuzzy 6. Sesuaikan hasilnya dengan gambar 1 – 13. Gambar 1 – 13. Block Diagram Modul sub-vi “Triagle deFuzz.vi” Membuat Modul Triagle MF sebagai SubVI 1. Aktifkan Front Panel, lalu klik kanan pada icon di Menu Bar. Pilih “Show Connector”. Maka akan terlihat icon seperti disamping. 2. Hubungkan setiap kotak pada connector dengan control-control berikut : 3. Klik kanan pada icon di Menu Bar lagi, pilih “Show Icon”. Kemudian Klik kanan lagi, pilih “Edit Icon”. Maka akan tampil menu untuk mengedit gambar dari icon ini, Anda bisa membuat Icon sesuai kreasi Anda, atau buatlah seperti icon pada gambar disamping. 4. Save file. Membangun Front Panel untuk sub-vi “defuzzifikasi.vi” 1. Buat file VI baru. Save as “Triangle deFuzz.vi” 2. Buatlah 10 Digital Control, edit namanya masing-masing menjadi “L1”, “X1”, “L2”, “X2”, “L3”, “X3”, “L4”, “X4”, “L5” dan “X5”. 3. Buatlah sebuah Digital namanya menjadi “Output”. Indicator, edit 4. Buat tampilan Front Panel menjadi seperti gambar 1 – 14 disamping. Gambar 1 – 14. Tampilan front panel dari modul sub-vi ”defuzzifikasi.vi” Sistem Pengontrolan Fuzzy Membangun VI Diagram untuk sub-vi “defuzzifikasi.vi” 1. Aktifkan Block Diagram 2. Dari Functions Palette, pilih Structure » Formula Node. Drag Formula Node agar berukuran cukup panjang. 3. Pada bagian kiri Formula Node buat sepuluh buah input dengan nama masing-masing “L1”, “X1”, “L2”, “X2”, “L3”, “X3”, “L4”, “X4”, “L5” dan “X5”. 4. Pada bagian kanan Formula Node buat sebuah output dengan nama “O”. 5. Aktifkan Edit Text Tools. Isikan persamaan dalam Formula Node sebagai berikut : O=(L1*X1+L2*X2+L3*X3+L4*X4+L5*X5)/(L1+L2+L3+L4+L5); 6. Sesuaikan hasilnya dengan gambar 1 – 15. Gambar 1 – 15. Block Diagram Modul sub-vi “defuzzifikasi.vi” Membuat Modul defuzzifikasi sebagai SubVI 1. Aktifkan Front Panel, lalu klik kanan pada icon di Menu Bar. Pilih “Show Connector”. Maka akan terlihat icon seperti disamping. 2. Hubungkan setiap kotak pada connector dengan control-control berikut : 3. Klik kanan pada icon di Menu Bar lagi, pilih “Show Icon”. Kemudian Klik kanan lagi, pilih “Edit Icon”. Maka akan tampil menu untuk mengedit gambar dari icon ini, Anda bisa membuat Icon sesuai kreasi Anda, atau buatlah seperti icon pada gambar disamping. 4. Save file. Sistem Pengontrolan Fuzzy