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.

0 komentar: