Intelligent Control System (Fuzzy Control) Yusuf Hendrawan STP., M.App.Life Sc., Ph.D What is Intelligence??? [1] IF … THEN … [2] Learning Iteration Process [3] Optimization GA Fuzzy ANN Logika Fuzzy : memetakan suatu ruang input ke dalam suatu ruang output Ruang input Kotak Hitam Ruang output Alasan digunakannya Logika Fuzzy: 1. Konsep logika fuzzy mudah dimengerti 2. Logika fuzzy sangat sederhana 3. Logika fuzzy memiliki toleransi terhadap data-data yang tidak tepat 4. Logika fuzzy mampu memodelkan fungsi-fungsi nonlinear 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 4 Fuzzy Applications • Theory of fuzzy sets and fuzzy logic has been applied to problems in a variety of fields: ▫ pattern recognition, decision support, data mining & information retrieval, medicine, law, taxonomy, topology, linguistics, automata theory, game theory, etc. • And more recently fuzzy machines have been developed including: ▫ automatic train control, tunnel digging machinery, home appliances: washing machines, air conditioners, etc. TRADITIONAL REPRESENTATION OF LOGIC Slow Speed = 0 bool speed; get the speed if ( speed == 0) { // speed is slow } else { // speed is fast } Fast Speed = 1 FUZZY LOGIC REPRESENTATION For every problem must represent in terms of fuzzy sets. What are fuzzy sets? Slowest [ 0.0 – 0.25 ] Slow [ 0.25 – 0.50 ] Fast [ 0.50 – 0.75 ] Fastest [ 0.75 – 1.00 ] FUZZY LOGIC REPRESENTATION Slowest Slow Fast float speed; get the speed if ((speed >= 0.0)&&(speed < 0.25)) { // speed is slowest } else if ((speed >= 0.25)&&(speed < 0.5)) { // speed is slow } else if ((speed >= 0.5)&&(speed < 0.75)) { // speed is fast } else // speed >= 0.75 && speed < 1.0 { // speed is fastest } Fastest Fuzzy Expert System • How to represent a fuzzy set in a computer ? The membership function must be determined first. Terminology: Crisp or Fuzzy Logic • Crisp Logic ▫ A proposition can be true or false only. • Bob is a student (true) • Smoking is healthy (false) ▫ The degree of truth is 0 or 1. • Fuzzy Logic ▫ The degree of truth is between 0 and 1. • William is young (0.3 truth) • Ariel is smart (0.9 truth) Sistem Fuzzy a. Variabel Fuzzy - Merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy, contoh: umur, temperatur, permintaan, dll b. Himpunan Fuzzy - Merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy - Contoh: 1) variabel umur terbagi menjadi 3 himpunan fuzzy: MUDA, PAROBAYA, TUA ; 2) variabel temperatur terbagi menjadi 5 himpunan fuzzy: DINGIN, SEJUK, NORMAL, HANGAT, PANAS c. Semesta Pembicaraan - Keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy, senantiasa bertambah (naik) secara monoton dari krii ke kanan. Contoh: 1) variabel umur [0, +∞]; 2) variabel temperatur [0, 40] d. Domain - Keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy. Contoh: 1) MUDA [0, 45]; 2) PAROBAYA [35, 55]; 3) TUA [45, +∞]; 4) DINGIN [0, 20]; 5) SEJUK [15, 25]; 6) NORMAL [20, 30]; 7) HANGAT [25, 35]; 8) PANAS [30, 40] Fungsi Keanggotaan (Membership Function) Membership function adalah suatu kurva yang menunjukkan pemetaan titiktitik input data ke dalam nilai keanggotaannya yang memiliki interval antara 0 sampai 1 melalui pendekatan fungsi. a. Representasi Linear pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garis lurus. Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas. 1 𝜇[𝑥]= 0, 𝑥≤𝑎 (𝑥−𝑎) (𝑏−𝑎) 𝑎≤𝑥≤𝑏 1, 𝑥≥𝑏 Derajat keanggotaan µ[x] 0 a domain b Representasi Linear Naik PANAS 1 32−25 Derajat keanggotaan µ[x] 𝜇𝑃𝐴𝑁𝐴𝑆 32 = 35−25 =0.7 0.7 0 25 1 Derajat keanggotaan µ[x] 0 (𝑏 − 𝑥) ; 𝜇 𝑥 = (𝑏 − 𝑎) 0; a domain 32 35 temperatur 𝑎≤𝑥≤𝑏 𝑥≥𝑏 b Representasi Linear Turun DINGIN 1 𝜇𝐷𝐼𝑁𝐺𝐼𝑁 20 = 30−20 =0.667 30−15 Derajat 0.667 keanggotaan µ[x] 0 15 30 20 temperatur • b. Representasi Kurva Segitiga Gabungan antara 2 garis (linear). 0; 1 Derajat keanggotaan µ[x] 0 𝜇[𝑥]= a b domain 𝑥 ≤ 𝑎 𝑎𝑡𝑎𝑢 𝑥 ≥ 𝑏 (𝑥−𝑎) ; (𝑏−𝑎) (𝑐−𝑥) ; (𝑐−𝑏) 𝑎≤𝑥≤𝑏 𝑏≤𝑥≤𝑐 c Kurva Segitiga NORMAL 1 0.8 𝜇𝑁𝑂𝑅𝑀𝐴𝐿 23 = 23−15 =0.8 25−15 Derajat keanggotaan µ[x] 0 15 23 25 temperatur 30 • c. Representasi Kurva Trapesium Sama seperti bentuk segitiga, hanya beberapa titik memiliki nilai keanggotaan 1 0; 1 Derajat keanggotaan µ[x] 0 𝜇[𝑥]= a c b 𝑥 ≤ 𝑎 𝑎𝑡𝑎𝑢 𝑥 ≥ 𝑏 (𝑥−𝑎) ; (𝑏−𝑎) 𝑎≤𝑥≤𝑏 1; 𝑏≤𝑥≤𝑐 (𝑑−𝑥) ; (𝑑−𝑐) 𝑐≤𝑥≤𝑑 d domain Kurva Trapesium NORMAL 1 𝜇𝑁𝑂𝑅𝑀𝐴𝐿 23 = 35−32 =0.375 35−27 Derajat keanggotaan µ[x] 0.375 0 15 24 27 temperatur 32 35 • d. Representasi Kurva Bentuk Bahu Daerah yang terletak di tengah-tengah suatu variabel yang dipresentasikan dalam bentuk segitiga, pada sisi kanan dan kirinya akan naik dan turun. Bahu Kiri Bahu Kanan DINGIN SEJUK NORMAL HANGAT PANAS 1 Derajat keanggotaan µ[x] 0 0 28 40 temperature Daerah bahu pada variabel Temperatur • d. Representasi Kurva S Kurva PERTUMBUHAN dan PENYUSUTAN merupakan kurva-S atau sigmoid yang berhubungan dengan kenaikan dan penurunan permukaan secara tak linear 1 1 μ[x] Derajat keanggotaan µ[x] Derajat keanggotaan µ[x] μ[x] 0 a domain x 0 b Kurva S PERTUMBUHAN x b x 1 2 ba a x domain b Kurva S PENYUSUTAN 2 x b x 2 ba 2 Operator Dasar Zadeh untuk Operasi Himpunan Fuzzy • 1. Operator AND ▫ Berhubungan dengan operasi interseksi pada himpunan mengambil nilai keanggotaan terkecil. ▫ Contoh: Misal nilai keanggotaan 27 tahun pada himpunan MUDA adalah 0.6 (µMUDA[27]=0.6); dan nilai keanggotaan Rp. 2 juta pada himpunan penghasilan TINGGI adalah 0.8 (µGAJITINGGI[2x106=0.8]; maka α-predikat untuk usia MUDA dan berpenghasilan TINGGI adalah 0.6 • 2. Operator OR ▫ Operator ini berhubungan dengan operasi union pada himpunan mengambil nilai keanggotaan terbesar. ▫ Contoh: Pada contoh diatas α-predikat untuk usia MUDA dan berpenghasilan TINGGI adalah 0.8 • 3. Operator NOT ▫ Berhubungan dengan operasi komplemen pada himpunan ▫ Contoh: nilai α-predikat untuk usia TIDAK MUDA adalah ▫ 1- µMUDA[27]=1-0.6= 0.4 Penalaran MONOTON • Metoda penalaran secara monoton digunakan sebagai dasar untuk teknik implikasi fuzzy digunakan untuk penskalaan fuzzy. • Jika 2 daerah fuzzy direalisasikan dengan implikasi sederhana: IF x is A THEN y is B; transfer fungsinya y=f((x,A),B); maka sistem fuzzy dapat berjalan tanpa harus melalui komposisi dan dekomposisi fuzzy. Nilai output dapat diestimasi langsung dari nilai keanggotaan yang berhubungan dengan antesedennya. 1 0.7 0 75 50 Light Intensity 1 0.7 0 3 5 Photosynthesis umol CO2 m-2 s-1 100 Fuzzy Inference System • Metode Tsukamoto • Metode Mamdani • Metode Sugeno Metode Tsukamoto • Setiap konsekuen pada aturan yang berbentuk IF-THEN harus direpresentasikan dengan suatu himpunan fuzzy dengan fungsi keanggotaan yang monoton; • Output hasil inferensi dari tiap-tiap aturan diberikan secara tegas (crisp) berdasarkan αpredikat (fire strength); • Hasil akhirnya diperoleh dengan menggunakan rata-rata terbobot. Contoh • Misalkan ada 2 variabel input, Var-1(x) dan Var2(y), serta 1 variabel output, Var-3(z), dimana Var-1 terbagi atas 2 himpunan yaitu A1 dan A2 terbagi atas 2 himpunan B1 dan B2, Var-3 juga terbagi atas 2 himpunan yaitu C1 dan C2 (C1 dan C2 harus monoton). Ada 2 aturan yang digunakan, yaitu: • [R1] IF (x is A1) AND (y is B2) THEN (z is C1) • [R2] IF (x is A2) AND (y is B1) THEN (z is C2) μ[x] 1 μ[y] A1 μ[z] B2 1 1 C1 α1 0 0 Var-1 μ[x] 0 Var-2 μ[y] A2 1 1 Var-3 z1 μ[z] B1 C2 1 α2 0 0 0 Var-2 Var-3 Var-1 z2 Rata-rata terbobot Inferensi dengan menggunakan metode Tsukamoto z 1 z1 2 z 2 1 2 Contoh 2 • Suatu perusahaan makanan akan memproduksi makanan jenis ABC. Dari data 1 bulan terakhir, permintaan terbesar mencapai 5000 kemasan/hari, dan permintaan terkecil mencapai 1000 kemasan/hari. Persediaan barang di gudang terbanyak mencapai 600 kemasan/hari, dan terkecil pernah mencapai 100 kemasan/hari. Dengan segala keterbatasannya, sampai saat ini, perusahaan baru mampu memproduksi barang maksimum 7000 kemasan/hari, untuk efisiensi mesin dan SDM tiap hari diharapkan perusahaan memproduksi paling tidak 2000 kemasan/hari. Berapa kemasan makanan jenis ABC yang harus diproduksi, jika jumlah permintaan sebanyak 4000 kemasan, dan persediaan di gudang masih 300 kemasan, apabila proses produksi perusahaan tersebut menggunakan 4 aturan fuzzy sebagai berikut: Rules • [R1] IF permintaan TURUN And Persedian BANYAK THEN Produksi Barang BERKURANG • [R2] IF permintaan TURUN And Persedian SEDIKIT THEN Produksi Barang BERKURANG • [R3] IF permintaan NAIK And Persedian BANYAK THEN Produksi Barang BERTAMBAH • [R4] IF permintaan NAIK And Persedian SEDIKIT THEN Produksi Barang BERTAMBAH Permintaan, terdiri atas 2 himpunan fuzzy, yaitu: NAIK dan TURUN μ[x] TURUN NAIK 1.00 0.75 0.25 1000 4000 5000 Permintaan (kemasan/hari) Fungsi keanggotaan variabel Permintaan Nilai Keanggotaan: PERMINTAAN PERMINTAAN TURUN NAIK [ 4000 ] 5000 4000 0 . 25 4000 [ 4000 ] 4000 1000 4000 0 . 75 Persediaan, terdiri atas 2 himpunan fuzzy, yaitu: SEDIKIT dan BANYAK μ[x] SEDIKIT BANYAK 1.00 0.60 0.40 100 600 300 Persediaan (kemasan/hari) Fungsi keanggotaan variabel Persediaan Nilai Keanggotaan: PERSEDIAAN PERSEDIAAN SEDIKIT [ 300 ] BANYAK [ 300 ] 600 300 0 .6 500 300 100 500 0 .4 Produksi, terdiri atas 2 himpunan fuzzy, yaitu: BERKURANG dan BERTAMBAH μ[x] BERKURANG BERTAMBAH 1.00 0.6 0.4 0.25 2000 4000 5000 5750 7000 Produksi (kemasan/hari) Fungsi keanggotaan variabel Persediaan Mencari Nilai z untuk setiap aturan dengan fungsi MIN karena menggunakan And [R1] α1 = min (μ PERMINTAAN TURUN [4000], μ PERSEDIAAN BANYAK [300] min (0.25; 0.4) = 0.25 THEN Produksi Barang BERKURANG (7000-z)/5000 = 0.25 z1 = 5750 [R2] α2 = min (μ PERMINTAAN TURUN [4000], μ PERSEDIAAN SEDIKIT [300] min(0.25; 0.6) = 0.25 THEN Produksi Barang BERKURANG (7000-z)/5000 = 0.25 z2 = 5750 [R3] α3 = min (μ PERMINTAAN NAIK [4000], μ PERSEDIAAN BANYAK [300] min (0.75; 0.4) = 0.4 THEN Produksi Barang BERTAMBAH (z-2000)/5000 = 0.4 z3= 4000 [R4] α4 = min (μ PERMINTAAN NAIK [4000], μ PERSEDIAAN SEDIKIT [300] min (0.75; 0.6) = 0.6 THEN Produksi Barang BERTAMBAH (z-2000)/5000 = 0.6 z4= 5000 Nilai z dapat dicari dengan cara: z z z 1 z1 2 z 2 3 z 3 4 z 4 1 2 3 4 0 . 25 * 5750 0 . 25 * 5750 0 . 4 * 4000 0 . 6 * 5000 0 . 25 0 . 25 0 . 4 0 . 6 7475 4983 1 .5 Jadi jumlah makanan yang harus diproduksi sebanyak 4983 kemasan Metode Mamdani • Metode Mamdani sering dikenal sebagai metode Max-Min, yang diperkenalkan oleh Ebrahim Mamdani tahun 1975; • Output didapatkan dari 4 tahapan: 1) Pembentukan himpunan Fuzzy 2) Aplikasi fungsi implikasi (aturan) 3) Komposisi aturan 4) Penegasan (defuzzy) [R1] IF Permintaan TURUN And Persediaan BANYAK THEN Produksi Barang BERKURANG [R1] α1 = min (μ PERMINTAAN TURUN [4000], μ PERSEDIAAN BANYAK [300] min (0.25; 0.4) = 0.25 μ[x] 1 μ[y] TURUN BANYAK 4000 Permintaan 0 1 α1 0.4 0.25 0 1 μ[z] 300 Persediaan BERKURANG μ[z] 1 0.25 0 0 Produksi Barang [R2] IF Permintaan TURUN And Persediaan SEDIKIT THEN Produksi Barang BERKURANG [R2] α2 = min (μ PERMINTAAN TURUN [4000], μ PERSEDIAAN SEDIKIT [300] min (0.25; 0.6) = 0.25 μ[y] μ[x] 1 TURUN 1 SEDIKIT 0.6 4000 Permintaan 0 1 α2 0.25 0 μ[z] 300 Persediaan BERKURANG μ[z] 1 0.25 0 0 Produksi Barang [R3] IF Permintaan NAIK And Persediaan BANYAK THEN Produksi Barang BERTAMBAH [R3] α3 = min (μ PERMINTAAN NAIK[4000], μ PERSEDIAAN BANYAK [300] min (0.75; 0.4) = 0.4 μ[x] 1 0.75 NAIK μ[y] 1 μ[z] BANYAK α3 0.4 0 4000 Permintaan 0 1 300 Persediaan BERTAMBAH μ[z] 1 0.4 0 0 Produksi Barang [R4] IF Permintaan NAIK And Persediaan SEDIKIT THEN Produksi Barang BERTAMBAH [R4] α4 = min (μ PERMINTAAN NAIK[4000], μ PERSEDIAAN SEDIKIT [300] min (0.75; 0.6) = 0.6 μ[x] 1 0.75 0 μ[y] NAIK 1 SEDIKIT 0.6 4000 Permintaan 0 300 Persediaan μ[z] 1 α4 BERTAMBAH μ[z] 1 0.6 0 0 Produksi Barang Komposisi Antar Aturan Dari hasil aplikasi fungsi implikasi dari tiap aturan, digunakan metoda MAX untuk melakukan komposisi antar semua aturan (a1-2000)/5000 = 0.25 a1 = 3250 (a2-2000)/5000 = 0.6 a2 = 5000 μ[z] = μ[x] 0.25; (z-2000)/5000; 0.6; z≤3250 3250≤z≤5000 z≥5000 BERKURANG BERTAMBAH 1.00 0.6 0.25 2000 a1 3250 a2 5000 7000 Penegasan (Defuzzy) Salah satu metode penegasan yang bisa digunakan adalah metode centroid. Untuk, itu perlu dihitung momen untuk setiap daerah 0.25; (z-2000)/5000; 0.6; μ[z] = 3250 ( 0 . 25 ) z dz M1 0 . 125 z 2 3250 | z≤3250 3250≤z≤5000 z≥5000 1320312 . 5 0 0 5000 M2 ( z 2000 ) 3250 5000 5000 z dz 0 . 0002 ( 0 . 6 ) z dz 3 2 5000 | 3187515 . 625 3250 3250 7000 M3 z 0 . 4 z dz 0 . 000067 z 0 . 2 z 2 0 .3 z 2 7000 | 7200000 5000 5000 Kemudian dihitung luas setiap daerah: A1 = 3250*0.25 = 812.5 A2 = (0.25+0.6)*(5000-3250)/2 = 743.75 Menghitung Titik Pusat: 1320312 . 5 3187515 . 625 7200000 A3 = (7000-5000)*0.6 = 1200 z 4247 . 74 812 . 5 743 . 75 1200 Jadi jumlah makanan yang harus diproduksi sebanyak 4248 kemasan Metode Sugeno • Penalaran SUGENO hampir sama dengan MAMDANI; • Diperkenalkan oleh Takagi-Sugeno Kang tahun 1985; • Output sistem tidak berupa himpunan fuzzy, melainkan berupa konstanta atau persamaan linier. Metode Sugeno AND / OR • Model Fuzzy Sugeno Orde Nol IF (x1 is A1) ο (x2 is A2) ο (x3 is A3) ο … ο (xN is AN) THEN z=k - dengan Ai adalah himpunan fuzzy ke-i sebagai antesenden, dan k adalah suatu konstanta (tegas) sebagai konsekuen. • Model Fuzzy Sugeno Orde Satu IF (x1 is A1) ο (x2 is A2) ο (x3 is A3) ο … ο (xN is AN) THEN z=p*x1 + … + pN*xN + q - dengan Ai adalah himpunan fuzzy ke-i sebagai antesenden, dan pi adalah suatu konstanta (tegas) ke-i dan q juga merupakan konstanta dalam konsekuen. Apabila komposisi aturan menggunakan metode SUGENO, maka defuzzy dilakukan dengan cara mencari nilai rata-ratanya. Modifikasi Aturan Persamaan ditentukan oleh User • [R1] IF permintaan TURUN And Persedian BANYAK ▫ THEN Produksi Barang = Permintaan - Persediaan • [R2] IF permintaan TURUN And Persedian SEDIKIT ▫ THEN Produksi Barang = Permintaan • [R3] IF permintaan NAIK And Persedian BANYAK ▫ THEN Produksi Barang = Permintaan • [R4] IF permintaan NAIK And Persedian SEDIKIT ▫ THEN Produksi Barang = (1.25 * Permintaan) - Persediaan Mencari Nilai α dan nilai z untuk setiap aturan dengan fungsi MIN karena menggunakan And [R1] α1 = min (μ PERMINTAAN TURUN [4000], μ PERSEDIAAN BANYAK [300] min (0.25; 0.4) = 0.25 THEN Produksi Barang = Permintaan – Persediaan Nilai z1 = 4000-300 = 3700 [R2] α2 = min (μ PERMINTAAN TURUN [4000], μ PERSEDIAAN SEDIKIT [300] min(0.25; 0.6) = 0.25 THEN Produksi Barang = Permintaan Nilai z2 = 4000 [R3] α3 = min (μ PERMINTAAN NAIK [4000], μ PERSEDIAAN BANYAK [300] min (0.75; 0.4) = 0.4 THEN Produksi Barang = Permintaan Nilai z3 = 4000 [R4] α4 = min (μ PERMINTAAN NAIK [4000], μ PERSEDIAAN SEDIKIT [300] min (0.75; 0.6) = 0.6 THEN Produksi Barang = (1.25 * Permintaan) – Persediaan Nilai z4 = (1.25*4000)-300 = 4700 Nilai z: z z z 1 z1 2 z 2 3 z 3 4 z 4 1 2 3 4 0 . 25 * 3700 0 . 25 * 4000 0 . 4 * 4000 0 . 6 * 4700 0 . 25 0 . 25 0 . 4 0 . 6 6345 1 .5 4230 Jadi jumlah makanan yang harus diproduksi sebanyak 4230 kemasan 41 Fuzzy Controllers • Used to control a physical system 42 Structure of a Fuzzy Controller Types of Fuzzy Controllers: - Supervisory Control Fuzzy Logic Controller Outputs Set Values for Underlying PID Controllers: IF temp=low Set Values AND P=high PID THEN A=med PID IF ... Fuzzification Inference Defuzzification Measured Variables PID Plant Types of Fuzzy Controllers: - PID Adaptation Fuzzy Logic Controller Adapts the P, I, and D Parameter of a Conventional PID Controller: Set Point Variable IF temp=low AND P=high P I D THEN A=med IF ... Fuzzification Inference Command Variable PID Plant Defuzzification Measured Variable Types of Fuzzy Controllers: - Fuzzy Intervention Fuzzy Logic Controller and PID Controller in Parallel: Set Point Variable IF temp=low AND P=high Command Variable THEN A=med IF ... Plant PID Fuzzification Inference Defuzzification Measured Variable