Fuzzy 1

advertisement
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

ba
a
x
domain
b
Kurva S PENYUSUTAN
2
x
b x
 2

ba
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
Download