This is default featured slide 1 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 2 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 3 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 4 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

This is default featured slide 5 title

Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.

Rabu, 14 November 2012

Fuzzy Control


Anda pernah mendengar istilah kecerdasan buatan (artificial intelligence atau disingkat AI)?  AI merupakan suatu aplikasi yang meniru kecerdasan manusia untuk digunakan dalam mesin-mesin atau peralatan-peralatan cerdas.  Konon katanya otak manusia memiliki 2 fungsi utama, yaitu fungsi berpikir dan fungsi belajar. Fungsi berpikir manusia tercermin dari kemampuannya untuk berlogika,  sedangkan fungsi belajar membuat manusia bisa mengingat sesuatu melalui pembentukan pola-pola di otaknya.
Sejalan dengan fungsi otak manusia tersebut, maka AI juga dikelompokan menjadi 2 kelompok, yaitu AI yang meniru fungsi berpikir dan AI yang meniru fungsi belajar.  Salah satu contoh AI yang meniru fungsi berpikir adalah logika fuzzy (fuzzy logic), sedangkan  contoh AI yang meniru fungsi belajar adalah neural network (NN).  Tulisan ini akan membahas fuzzy logic dan salah satu aplikasinya di bidang kontrol proses.
Logika Fuzzy.    Logika fuzzy pertama kali diperkenalkan oleh Prof Lotfi Zadeh tahun 1965.  Saat ini logika fuzzy sudah banyak digunakan dalam berbagai bidang, salah satunya adalah dalam bidang kontrol (proses kontrol). Fuzzy yang diperkenalkan oleh Zadeh didasarkan pada teori possibility yang  berbeda dari teori probability yang sudah lebih umum dikenal.
Secara umum, logika fuzzy terdiri dari beberapa komponen, yaitu FuzzifierFuzzy Rule BaseFuzzy Inference Engine dan Defuzzifier, seperti diperlihatkan pada gambar berikut.
 fuzzy-1
Yang menjadi inti dari logika fuzzy adalah Fuzzy Rule Base, yang berisi pernyataan-pernyataan logika. Fuzzy Inference Engine merupakan komponen fuzzy yang menerjemahkan pernyataan logika yang ada di Rule Base menjadi  perhitungan-perhitungan matematika. Fuzzifier digunakan untuk memetakan nilai/harga variable di dunia nyata kedalam himpunan fuzzy (fuzzy sets), sedangkan Defuzzifier mengembalikan hasil perhitungan fuzzy (himpunan fuzzy) menjadi variable sesuai rentang nilainya di dunia nyata.
Fuzzy Rule Base.   Fuzzy rule base berisi pernyataan-pernyataan logika fuzzy (fuzzy statement), yang berbentuk pernyataan IF-THEN.  Bentuk umum pernyataan fuzzy adalah:
IF x1 is A1l  and …  and xn is Anl   THEN  y is Bl  ,
A1dan Bl adalah himpunan fuzzy dalam Ui  Ì R dan V Ì R, sedangkan x = (x1, x2, … , xn)T Î U dan y Î V adalah input dan output dari variable fuzzy.
Fuzzy Inference Engine.   Fuzzy inference engine menerjemahkan pernyataan-pernyataan fuzzy dalalm rule base menjadi perhitungan matematika (fuzzy combinational). Terdapat beberapa metode inference engine, 5 diantaranya yaitu:
  1. Product Inference Engine.
  2. Minimum Inference Engine.
  3. Lukasiewicz Inference Engine.
  4. Zadeh Inference Engine.
  5. Dienes-Rescher Inference Engine.
Berikut adalah formula untuk masing-masing inference engine tersebut.
 fuzzy-2
Fuzzifier.   Fuzzifier digunakan untuk memetakan nilai/harga variable di dunia nyata kedalam himpunan fuzzy (fuzzy sets). Pemetaannya dilakukan dengan menggunakan fungsi yang disebut membership function.  Terdapat beberapa metode fuzzifier, 3 diantaranya yaitu:  Singleton fuzzifierGausian fuzzifier danTriangular fuzzifier.  Berikut adalah formulanya.
 fuzzy-3
Defuzzifier.   Defuzzifier mengembalikan hasil perhitungan fuzzy (himpunan fuzzy) menjadi variable sesuai rentangnya di dunia nyata.  Sama dengan fuzzifier,  defuzzifier juga menggunakan membership function untuk memetakan nilai himpunan fuzzy menjadi variable nyata.  Terdapat beberapa metode defuzzifier, 3 diantaranya yaitu:
  1. Center of gravity defuzzifier. Center of gravity yang dinyatakan dengan y*, menunjukan pusat area yang diliputi oleh membership function B’.
  2. Center average dufuzzifier. Center average menunjukan weight average dari titik tengah (center) masing-masing membership function.
  3. Maximum defuzzifier. Maximum defuzzifier memilih nilai tertinggi sebagai y*. Ada 3 pilihan, smallest of maximalargest of maxima atau mean of maxima.
Berikut adalah formulanya.
 fuzzy-4
Fuzzy PID Gain Scheduling Control.    Kontrol PID merupakan algoritma kontrol yang banyak digunakan di industri proses karena bentuknya yang sederhana dan mudah diimplementasikan.  Pada kondisi operasi tertentu (seperti misalnya sering terjadi gangguan pada proses atau parameter proses yang berubah-ubah), parameter control ini harus sering di-tuned agar kinerjanya tetap baik.  Salah satu teknik dalam sistem kontrol yang sering dilakukan untuk mengatasi permasalahan ini adalah dengan menggunakan metode PID Gain Scheduling, dimana parameter kontrol diubah secara otomatis jika terjadi perubahan kondisi operasi yang menyebabkan kinerja kontrol menurun.
Dalam rangka memberikan contoh penggunaan fuzzy logic di bidang kontrol proses, maka selanjutnya akan dibahas salah satu metode PID gain scheduling dengan  menggunakan fuzzy logic. Metode ini dinamakan Fuzzy PID gain scheduling.
Pada aplikasi ini, fuzzy berfungsi menghitung parameter kontrol PID (Kp, Ti dan Td), berdasarkan kondisi signal error (E) dan perubahan error (DE).
Secara umum, diagram fuzzy PID gain scheduling control dapat digambarkan seperti berikut.
 fuzzy-5
Khusus untuk fuzzy system, diagramnya adalah sbb:
 fuzzy-61
Fuzzifier,  menerjemahkan informasi input, dalam hal ini error E dan perubahan error DE menjadi informasi fuzzy m(0,1), yang bernilai antara 0 dan 1.  Penerjemahannya menggunakan triangular membership function (triangular fuzzifier), seperti pada gambar berikut.
 fuzzy-7
NB adalah negative big, NM adalah negative medium, NS adalah negative small, ZO adalah zero, PS adalah positive small, PM adalah positive medium dan PB adalah positive big; kesemuanya ini merupakan linguistic term dari fuzzy logic.  Sebagai contoh, signal E sebesar 50 memiliki nilai fuzzy 0.5 untuk PS dan PM,  sedangkan fuzzy term lainnya bernilai nol.
Rule Base,  berisi sekumpulan pernyataan fuzzy dalam bentuk IF  …  THEN ……..   Disini akan digunakan rule berikut:
 fuzzy-82
Selengkapnya pernyataan fuzzy tersebut dapat ditabelkan sebagai berikut:
 fuzzy-9
Inference Engine.  Fuzzy inference engine bertugas melakukan proses fuzzy reasoning yaitu menerjemahkan fuzzy statement berdasarkan nilai input dari hasil fuzzifier menjadi suatu nilai output yang kemudian akan dikirim ke defuzzifier.
Disini akan digunakan metode minimum inference engine.  Untuk setiap statement di atas, baik untuk Kp’ , Kd’ maupun a, hasil proses reasioningnya adalah:
  • m(Kp’) = mKp’ (E,DE) = min (m(E), m(DE)
  • m(Kd’) = mKd’ (E,DE) = min (m(E), m(DE)
  • m(a) = ma (E,DE) = min (m(E), m(DE)
Defuzzifier.  Defuzzifier merupakan kebalikan dari fuzzifier, yaitu menerjemahkan informasi fuzzy m(Kp’), m(Kd’) dan m(a) yang merupakan hasil dari proses reasioning yang bernilai antara 0 dan 1 menjadi Kp’, Kd’ dan a.
Proses defuzzifier ini juga dilakukan dengan menggunakan triangular membership function, seperti pada gambar berikut.
 fuzzy-10
Dengan S adalah small, MS adalah medium small, M adalah medium dan B adalah big.
Di sini proses defuzzifier dilakukan dengan menggunakan metode center average defuzzifier, dengan formula berikut:
  • Kp’ = (åm(Kp’) Kp’)/ (åm(Kp’))
  • Kd’ = (åm(Kd’) Kd’)/ (åm(Kd’))
  • a = (åm(a)a)/ (åm(a))
Selanjutnya nilai parameter kontrol PID yaitu Kp, Ti dan Td dapat diperoleh dengan persamaaan:
  • Kp = Kp’ (Kpmax – Kpmin) + Kpmin.
  • Ti = aTd
  • Td = Kd’ (Kdmax – Kdmin) + Kdmin
Untuk menguji kinerja dari Fuzzy PID gain scheduling control ini, saya membuat simulasinya dengan menggunakan excell.  Dalam simulasi ini saya membandingkan Fuzzy PID gain scheduling control dengan Ideal PID control.  Front-End simulasi yang saya buat seperti gambar berikut.
 fuzzy-11
Ideal PID di-tuned secara manual ke Proportional gain Kp = 0.1, Integral time Ti = 0.5 dan Derivative time Td = 1.5.  Sedangkan Fuzzy PID gain scheduling akan menghitung sendiri parameter PID berdasarkan kondisi error (E) dan perubahan error (DE), yang menghasilkan harga Kp = 0.1, Ti = 3 dan Td = 1.  Hasilnya, response yang diberikan Fuzzy PID gain schedulling sedikit lebih bagus dibandingkan dengan ideal PID.
Ketika saya ubah proses gain P dari 2 menjadi 7.5, responsenya akan berubah menjadi seperti gambar berikut.
 fuzzy-12
Perhatikan gambar ini. Dengan tuning parameter yang sama dengan sebelumnya,  Ideal PID tidak mampu lagi mengontrol plant dengan baik (response menjadi tidak stabil).  Sedangkan Fuzzy PID gain scheduling  menghitung ulang parameter PID berdasarkan kondisi error (E) dan perubahan error (DE), yang menghasilkan harga Kp = 0.1,  Ti = 3.03 dan Td = 1.02. Hasilnya, response yang diberikan Fuzzy PID gain scheduling masih stabil walaupun sedikit berosilasi.

Studi Kasus Fuzzy Logic


Teori tentang fuzzy set dan fuzzy logic banyak digunakan untuk membangun system berbasis aturan fuzzy untuk masalah control. Mari kita perhatikan masalah tentang system control penyiram air. Misalkan, nilai crisp yang diterima oleh sensor suhu adalah 37oC dan nilai crisp yang diterima sensor kelembaban adalah 12%. Berapa lama durasi penyiraman yang harus dilakukan?
Proses fuzzification
Misalkan, untuk Suhu Udara kita menggunakan fungsi keanggotaan trapezium dengan lima variabel linguistic: Cold, Cool, Normal, Warm, dan Hot. Dengan fungsi ini, maka crisp input suhu 37oC dikonversi ke nilai fuzzy dengan cara:
  • Suhu 37oC berada pada nilai linguistic Warm dan Hot.
  • Semantik atau derajat keanggotaan untuk Warm dihitung menggunakan rumus –(– d)/(– c), c < x ≤ d,dimana c = 36, dan d = 39. Sehingga derajat keanggotaan Warm = – (37–39)/(39–36) = 2/3.
Derajat keanggotaan untuk Hot dihitung menggunakan rumus (x–a)/(b–a),a dimana a = 36, dan b =  39. Sehingga derajat keanggotaan untuk Hot = (37-36)/(39-36) = 1/3.
Fungsi keanggotaan trapezium untuk Suhu Udara.
Misalkan, kita juga menggunakan fungsi keanggotaan trapezium untuk Kelembaban Tanah. Dengan fungsi ini, maka crisp input Kelembaban 12% dikonversi menjadi nilai fuzzy dengan cara berikut ini:
  • Kelembaban 12% berada pada nilai linguistic Dry dan Moist.
  • Semantic atau derajat kenggotaan untuk Dry dihitung menggunakan rumus –(xd)/(dc),c < x ≤ d, dimana c = 10, dan d = 20. Sehingga derajat keanggotaan untuk Dry adalah –(12–20)/(20–10) = 4/5.
Derajat keanggotaan untuk Moist dihitung menggunakan rumus (xa)/(ba),a < x < b, dimana a = 10, dan b = 20. Sehingga derajat keanggotaan Moist = (12–10)/(20–10) = 1/5.
Fungsi keanggotaan trapezium untuk Kelembaban Tanah.
Jadi, proses fuzzzification menghasilkan empat fuzzy input: Suhu Udara = Warm(2/3) dan Hot(1/3), dan Kelembaban Tanah = Dry(4/5) dan Moist(1/5).
Proses inferensi
Terdapat berbagai macam cara dalam menentukan aturan fuzzy. Misalkan, untuk Durasi Penyiraman kita menggunakan fungsi keanggotaan Trapesium dengan tiga nilai linguistic: Short, Medium, Long. Sebagai Contoh, misalkan kita mendefinisikan aturan fuzzy seperti pada gambar berikut.
Fungsi keanggotaan trapezium untuk Durasi Penyiraman.
 
Aturan fuzzy untuk masalah Sprinkler control system.
Dengan definisi aturan fuzzy pada gambar di atas, kita mempunyai 3×5 = 15 aturan fuzzy, yaitu:
IF Suhu = Cold AND Kelembaban = Dry THEN Durasi = Long
.
.
IF Suhu = Hot AND Kelembaban = Wet THEN Durasi = Short
Di sini kita akan membahas penggunaan inferensi menggunakan model Mamdani dan model Sugeno. Kita akan melihat perbedaan kedua model tersebut.
Proses inference menggunakan Model Mamdani
Jika kita menggunakan Model Mamdani, kita bisa menggunakan dua cara inferensi, clipping (alpha–cut) atau scaling. Perhatikan gambar di bawah ini. Metode yang paling umum digunakan adalah clipping karena mudah diimplementasikan dan bila diagregasikan dengan fungsi lain akan menghasilkan bentuk yang mudah di-defuzzification.
(a)    Cipping
(a)    Scaling
Dua jenis proses inferensi pada Model Mamdani: Clipping dan Scaling.
Dari empat data fuzzy input tersebut, Warm(2/3), Hot(1/3), Dry(4/5) dan Moist(1/5), maka kita mendapatkan empat aturan (dari 15 aturan) yang dapat diaplikasikan:
IF Suhu is Warm AND Kelembaban is Dry THEN Durasi is Long
IF Suhu is Warm AND Kelembaban is Moist THEN Durasi is Medium
IF Suhu is Hot AND Kelembaban is Dry THEN Durasi is Long
IF Suhu is Hot AND Kelembaban is Moist THEN Durasi is Medium
Dari empat aturan fuzzy dan empat fuzzy input tersebut, maka proses inference yang terjadi adalah sebagai berikut (missal kita menggunakan inferensi Clipping):
  • Gunakan aturan Conjuction (^) dengan memilih derajat keanggotaan minimum dari nilai-nilai linguistic yang dihubungkan oleh dan lakukan Clipping pada fungsi keanggotaan trapezium untuk Durasi Penyiraman. Sehingga diperoleh:
IF Suhu is Warm(2/3) AND Kelembaban is Dry(4/5) THEN Durasi is Long(2/3)
IF Suhu is Warm(2/3) AND Kelembaban is Moist(1/5) THEN Durasi is Medium(1/5)
IF Suhu is Hot(1/3) AND Kelembaban is Dry(4/5) THEN Durasi is Long(1/3)
IF Suhu is Hot(1/3) AND Kelembaban is Moist(1/5) THEN Durasi is Medium(1/5)
  • Gunakan aturan Disjunction (V) dengan memilih derajat keanggotaan maximum dari nilai-nilai linguistic yang dihubungkan oleh V. Dari ‘Durasi is Long(2/3) V Durasi is Long(1/3)’ dihasilkan ‘Durasi is Long(2/3)’. Sedangkan, dari ‘Durasi is Medium(1/5) V Durasi is Medium(1/5)’ dihasilkan ‘Durasi is Medium(1/5)’. Dengan demikian, kita memperoleh dua pernyataan: Durasi is Long(2/3) dan Durasi is Medium(1/5). Proses inferensi menggunakan Model Mamdani menggunakan proses Clipping menghasilkan dua area abu-abu seperti diilustrasikan oleh gambar berikut ini:
(a)
(b)
Dua fuzzy set ditunjukan oleh area abu-abu yang dihasilkan dari proses Clipping: (a) Durasi is Medium(1/5) dan (b) Durasi is Long(2/3).
Proses inference menggunakan Model Sugeno
Model Sugeno menggunakan fungsi keanggotaan yang lebih sederhana dibandingkan Model Mamdani. Fungsi keanggotaan tersebut adalah Singleton, yaitu fungsi keanggotaan yang memiliki derajat keanggotaan 1 pada suatu nilai crisp tunggal dan 0  pada semua nilai crisp yang lain. Misalkan kita definisikan fungsi singleton untuk Durasi Penyiraman seperti gambar berikut ini:
Fungsi keanggotaan Singleton untuk Durasi Penyiraman. Hanya tiga nilai crisp, 20, 40, 60, yang memiliki derajat keanggotaan 1. Sedangkan semua nilai crisp yang lain memiliki derajat keanggotaan 0.
Dengan cara yang sama seperti Model Mamdani, diperoleh: Durasi is Long(4/5) dan Durasi is Medium(1/5). Proses inferensi menggunakan Model Sugeno menghasilkan dua derajat keanggotaan pada gambar berikut ini:
(a)
(b)
Dua derajat keanggotaan yang dihasilkan oleh Model Sugeno: (a) Durasi is Medium(1/5) dan (b) Durasi is Long(2/3).
Proses defuzzyfication
Sebelum defuzzyfication, kita harus melakukan proses composition, yaitu agregasi hasil Clipping dari semua aturan fuzzy sehingga kita dapatkan satu fuzzy set tunggal.
Proses defuzzyfication menggunakan Model Mamdani
Proses composition dari dua fuzzy set, Durasi is Medium(1/5) dan Durasi is Long(2/3) pada gambar di atas, menghasilkan satu fuzzy set tunggal yang ditunjukan oleh gambar berikut ini:
Proses Composition pada Model Mamdani dari dua fuzzy set, Medium(1/5)dan Long(2/3), menghasilkan satu fuzzy set tunggal yang ditunjukkan oleh area berwarna abu-abu.
Misalkan, kita menggunakan Centroid method untuk proses defuzzyfication. Untuk mendapatkan nilai crisp menggunakan Centroid method, kita bisa menggunakan persamaan kontinyu atau diskrit. Untuk memudahkan perhitungan misalkan kita menggunakan persamaan diskrit. Kita bisa menentukan titik sembarang pada area abu-abu tersebut, misalkan: 24, 28,32, 36, 40, 48, 60, 70, 80 dan 90.
Penghitungan nilai crisp menggunakan Centroid method. Titik-titik pada area abu-abu ditentukan secara acak sehingga akan didapatkan suatu titik sebagai pusat area (sentre of area atau cantre of gravity).
Dengan menggunakan persamaan diskrit dan titik-titik tersebut, diperoleh hasil sebagai berikut:
Jadi, dengan menggunakan Model Mamdani, untuk Suhu Udara 37oC dan Kelembaban Tanah 12%, maka sprinkle secara otomatis akan menyiramkan air selama 60,97 menit.
Proses defuzzyfication menggunakan Model Sugeno
Proses composition dari dua fuzzy set, Durasi is Medium(1/5) dan Durasi is Long(2/3) pada gambar sebelumnya, menghasilkan satu fuzzy set tunggal yang ditunjukkan oleh gambar berikut ini:
Proses Composition menggunakan Model Sugeno dari dua fuzzy set, Medium(1/5)dan Long(2/3), menghasilkan satu fuzzy set tunggal.
Jika kita menggunakan Height method untuk proses defuzzyfication, maka dari dua fuzzy set, Medium(1/5) dan Long(2/3), dipilih nilai maksimumnya yaitu Long(2/3). Karena nilai crisp untuk Long adalah 60, maka proses defuzzyfication menghasilkan nilai crisp sebesar 60. Dengan demikian, Durasi Penyiraman adalah 60 menit.
Jika kita menggunakan Weighted Average untuk proses defuzzyfication, maka kita mengacu pada perhitungan di atas.
Dengan demikian, jika kita menggunakan Model Sugeno dengan defuzzyfication berua Weighted Average, maka Durasi Penyiraman adalah 55,38 menit.

Design fuzzy logic dengan bantuan software FuzzyTech