• Tidak ada hasil yang ditemukan

LOGIKA FUZZY

Dalam dokumen Pengantar Sistem Kendali Cerdas (Halaman 21-48)

Bab ini membahas tentang fuzzy set serta tahapan proses pada sistem fuzzy.

Pokok Bahasan

 Fuzzy Set

 Fungsi keanggotaan (Membership Function)

 Aturan (Rule)

 Fuzzifikasi

 Defuzzifikasi

21

3. LOGIKA FUZZY

Tujuan : Menjelaskan logika fuzzy serta tahapan proses sistem fuzzy logic.

3.1 Fuzzy Set

Prof. Lotfi A. Zadeh mengenalkan fuzzy set pada tahun 1965, yang memiliki derajat keanggotaan yang banyak antara nilai 0 dan1 yang disebut membership function (fungsi keanggotaan) dan dinotasikan dengan μA(x). Pada teori himpunan konvensional (Conventional set) sebuah elemen akan dinyatakan dengan dua kondisi kemungkinan yaitu anggota himpunan atau bukan anggota himpunan. Pada teori himpunan fuzzy, sebuah elemen dapat dinyatakan menjadi sebagian dari anggota himpunan dengan derajat keanggotaan tertentu. Gambar 3-1 menunjukkan perbedaan antara himpunan konvensional dan fuzzy.

Gambar 3-2 menunjukkan himpunan orang tinggi, dimana seseorang disebut tinggi jika melampaui batas tinggi tertentu. Jika batas fungsi keanggotaan (membership function) adalah bentuk tegas seperti pada Gambar 3-3, maka orang yang berwarna MERAH disebut TINGGI, sementara orang ABU-ABU disebut TIDAK TINGGI. Bandingkan dengan Gambar 3-4 yang menggunakan bentuk kontinyu, maka orang MERAH akan disebut TINGGI, sedangkan orang ABU-ABU disebut CUKUP TINGGI. Tentunya ini lebih bisa diterima secara logika karena perbedaan tinggi antara kedua orang ini tidak terlalu jauh, sehingga menyebutnya lebih tepat jika TINGGI dan CUKUP TINGGI bukan TINGGI dan TIDAK TINGGI.

22

Gambar 3-1 Conventional vs Fuzzy Set

Gambar 3-2 Himpunan Orang Tinggi

23

Gambar 3-3 Sharp edge Membership Function

Gambar 3-4 Continuous Membership Function 3.2 Sistem Fuzzy

Sistem Fuzzy adalah sebuah sistem yang terdiri dari variabel-variabel yang saling dikaitkan menggunakan logika fuzzy. Kontroler Fuzzy menggunakan aturan-aturan (rules) untuk mengendalikan sistem fuzzy berdasarkan nilai variabel input saat ini. Gambar 3-5 menunjukkan diagram sistem fuzzy.

24

Gambar 3-5 Diagram Sistem Fuzzy

Sebuah Fuzzy Logic Controller (FLC) dapat digunakan untuk mengendalikan sistem pengereman pada mobil dengan memperhitungkan jarak terhadap mobil lain dan kecepatannya sendiri. Gambar 3-6 menunjukkan ilustrasi sistem pengereman otomatis yang memiliki 2 input yaitu jarak dan kecepatan.

25

Gambar 3-6 Sistem Pengereman Otomatis

3.3 Crisp Input

Crisp input adalah input sistem fuzzy yang masih dalam bentuk engineering unit, misalnya jarak dengan satuan meter, kecepatan dengan satuan m/s dst.

3.4 Fuzzy input

Fuzzy input adalah hasil konversi crisp input melalui proses fuzzifikasi. Sebuah nilai crisp input akan dihubungkan dengan input membership function dan akan diperoleh suatu nilai degree of membership function (μ) untuk nilai crisp input tersebut. Nilai fuzzy input memiliki rentang antara 0 s.d 1.

3.5 Fuzzy output

Fuzzy output adalah sebuah nilai hasil dari evaluasi rule.

26 3.6 Crisp Output

Crisp output adalah hasil konversi nilai fuzzy output melalui proses defuzzifikasi. Crisp output akan berbentuk engineering unit, misalnya level pengereman dalam satuan %.

3.7 Membership Function

Membership function adalah gambaran secara grafis seberapa besar pengaruh setiap input. Membership function berhubungan dengan pembobotan setiap input yang diproses, menentukan fungsi overlap antar input dan menentukan respon output.

Gambar 3-7 menunjukkan bentuk standar membership function yaitu triangular, trapezoidal, singleton, gaussian dan sigmoid.

Gambar 3-8 menunjukkan bentuk membership function dan parameternya. Sumbu X menunjukkan engineering unit dari input atau output, misalnya untuk suhu maka engineering unitnya adalah derajat Celcius. Sumbu Y menunjukkan derajat keanggotaan dengan nilai 0 s.d 1.

Gambar 3-7 Bentuk Standar Membership Function

27

Gambar 3-8 Membership Function

Sebuah sistem pengereman otomatis, memiliki membership function seperti pada Gambar 3-9, yaituInput Membership Function (IMF) distance, IMF speed dan Output Membership Function (OMF) braking. Pada IMF distance, terdapat 3 kategori jarak yaitu Small, Medium dan Large. Sumbu X menunjukkan jarak dalam satuan meter, sumbu Y menunjukkan derajat keanggotaan dengan nilai antara 0 s.d 1.

28

Gambar 3-9Membership Function Sistem Pengereman Otomatis

29

Gambar 3-10 menunjukkan sebuah sistem koordinat garis lurus yang menghubungkan titik A( , ) dengan titik B(

,

).

Persamaan garis lurus tersebut dapat ditentukan menggunakan persamaan 3-1.

Gambar 3-10 Koordinat Garis Lurus

− = −

(3-1)

Misalnya, sebuah garis dengan titik A(6,1) dan B(10,0), maka persamaan garisnya adalah:

− 1

0 − 1= − 6 10 − 6

30

− 1

−1 = − 6

4

( − 1)4 = ( − 6)(−1) 4 − 4 = (− ) + 6

4 = (− ) + 10

= 10 − 4

Dengan menggunakan persamaan 3-1, maka dapat ditentukan persamaan garis untuk setiap membership function sebagai berikut :

IMF of distance :

Gambar 3-11 IMF Distance

31

32 IMF of speed :

Gambar 3-12 IMF Speed

 Low

( ) =

⎩⎪

⎪⎧ 1, < 10 40 −

30 , 10 ≤ < 40

 Medium

( ) =

⎧ − 10

30 , 10 < ≤ 40

65 −

25 , 40 < ≤ 65

33

 High

( ) =

⎩⎪

⎪⎧ − 40

25 , 40 < ≤ 65

1, > 65

OMF of braking :

Gambar 3-13 OMF Braking

 No Brake

( ) =10 −

10 , 0 £ z £ 10

34 pernyataan IF THEN ELSE sebagai berikut:

IF antecedent1 AND antecedent2 THEN consequent

35

Antecedent adalah pernyataan kondisi atau level suatu input, misalnya untuk input distance, maka antecedent bisa berbunyi Distance is SmallatauDistance is MediumatauDistance is Large.

Demikian pula untuk input Speed antecedent adalah Speed is Low, Speed is Medium atau

Rule disusun untuk semua kombinasi input, sehingga untuk memudahkan penyusunan rule bisa digunakan tabel atau matriks rule. Misalnya untuk sistem pengereman otomatis maka dapat disusun matriks seperti pada Gambar 3-14.

Distance (m)

Small Medium Large

Speed (km/h) Low Medium Soft No Brake

Medium Hard Soft No Brake

High Hard Medium Soft

Gambar 3-14 Matriks Rule Sistem Pengereman Otomatis Dari matriks tersebut maka dapat disusun 9 kombinasi rule sbb:

1. IF Distance is Small AND Speed is Low THEN Braking is Medium 2. IF Distance is Small ANDSpeed is Medium THEN Braking is Hard 3. IF Distance is Small AND Speed is High THEN Braking is Hard 4. IF Distance is Medium AND Speed is Low THEN Braking is Soft 5. IF Distance is Medium AND Speed is Medium THEN Braking is Soft 6. IF Distance is Medium AND Speed is High THEN Braking is Medium 7. IF Distance is Large AND Speed is Low THEN Braking is No Brake 8. IF Distance is Large AND Speed is Medium THEN Braking is No

Brake

9. IF Distance is Large AND Speed is High THEN Braking is Soft

36 3.9 Fuzzifikasi

Proses fuzzifikasi adalah mengubah crisp input menjadi input fuzzy.Misalnya, crisp input adalah distance = 9.5 m dan speed = 44 km/h. Maka jika dilihat pada Gambar 3-15, input Distance = 9.5 m masuk kedalam IMF of distance sebagai anggota Small dan Medium dimana :

( ) = 10 −

4 = 10 − 9.5

4 = 0.125 ( ) = − 6

4 =9.5 − 6

4 = 0.875

Gambar 3-15 Fuzzifikasi Distance 9.5 meter

Sedangkan jika dilihat pada Gambar 3-16, Speed = 44 km/h masuk kedalam IMF of speed sebagai anggota medium dan high dimana :

( ) =65 −

25 =65 − 44

25 = 0.84 ( ) = − 40

25 =44 − 40

25 = 0.16

37

Gambar 3-16 Fuzzifikasi Speed 44 km/h

3.10 Evaluasi Rule

Evaluasi rule adalah proses menghitung fuzzy output. Pada contoh sistem pengereman otomatis, jika input distance Distance = 9.5 m, maka akan masuk kedalam IMF of distance sebagai anggota small dan medium. Sedangkan input Speed = 44 km/h akan masuk kedalam IMF of speed sebagai anggota medium dan high. Maka rule yang dipengaruhioleh input (aktif/firing) adalah:

IF distance is Small AND speed is Medium THEN braking level is Hard.

IF distance is Small AND speed is High THEN braking level is Hard.

IF distance is Medium AND speed is Medium THEN braking level is Soft.

38

IF distance is Medium AND speed is High THEN braking level is Medium.

Gambar 3-17 Rule Yang Aktif (Firing)

Pada desain ini evaluasi rule menggunakan metoda Mamdani (max of min implication method) dimana dicari dahulu nilai minimum dari kedua input μ (x) dan μ (y) yaitu:

( ) = [ ( ), ( )] (3.2)

Pada contoh input distance= 9.5 m dan speed= 44 km/h diperoleh:

μ (x) = 0,125

μ (x) = 0,875

μ (y) = 0,84 μ (y) = 0,16

Maka dengan menggunakan persamaan (3.2) akan diperoleh :

39

( ) = [0,125; 0,84] = 0,125 ( ) = [0,125; 0,16] = 0,125 ( ) = [0,875; 0,84] = 0,84

( ) = [0,875; 0,16] = 0,16 Gambar 3-7 menunjukkan ilustrasi operasi minimum pada rule.

Gambar 3-17 Operasi Minimum Pada Rule

Pada metode max of min, setelah nilai minimum diketahui, maka selanjutnya dicari nilai maksimum dari output membership function, hasilnya adalah gabungan dari OMF yang membentuk luasan seperti terlihat pada Gambar 3-18.

40

Gambar 3-18 Luasan Pada OMF Hasil Evaluasi Rule 3.11 Defuzzifikasi

Defuzzifikasi adalah proses untuk mengubah fuzzy output menjadi crisp output. Pada sistem pengereman otomatis, crisp output berupa level pengereman dan dapat dihitung menggunakanmetoda Center of Area (COA), yaitu mencari pusat dari suatu luasan yang terbentuk pada proses evaluasi rule.

Persamaan 3-3 adalah cara mencari COA.

z=∫ μ (z)zdz

∫ μ (z)dz

(3-3)

Atau dalam bentuk lain persamaan 3-3 dapat diubah menjadi persamaan 3-4.

z= μ Z

μ

(3-4)

Dimana μ adalah derajat keanggotaan OMF hasil evaluasi rule.

41

Pada sistem pengereman otomatis, maka level pengereman dapat dihitung sbb:

z= ∑ μ Z

∑ μ

( ) = [0,125; 0,84] = 0,125 ( ) = [0,125; 0,16] = 0,125 ( ) = [0,875; 0,84] = 0,84

( ) = [0,875; 0,16] = 0,16

Gambar 3-19 Proses Defuzzifikasi

3.12 Latihan 2. Membuat Fuzzy Logic Menggunakan Microsoft Visual C#

Pada latihan ini akan dibuat program Fuzzy Logic untuk sistem pengereman otomatis menggunakan Microsoft Visual C# dengan langkah-langkah sebagai berikut:

1. Jalankan software Microsoft Visual C#.

2. Buat project baru dan beri nama ABS.

42 3. Buat Form dengan tampilan sbb:

4. Pada Form editor, tambahkan global variable sebagai berikut:

double distance, speed;

double Small, Low;

double Med, Medium;

double Large, High;

double noBrake, Soft, medium, Hard;

double[] min;

double[] sum;

double Total;

43

privatedouble outFuzzify, outMinimal;

privatedouble brakeLevel;

5. Double klik tombolRun FLC kemudian buatlah program sbb:

distance = double.Parse(textBox1.Text);

speed = double.Parse(textBox2.Text);

brakeLevel = fuzzyABS(distance, speed);

textBox3.Text = brakeLevel.ToString();

6. Tambahkan fungsi berikut ini:

double fuzzyABS(double input1, double input2) {

min = newdouble[9];

sum = newdouble[3];

//Input Membership Function of distance Small = Fuzzify(0, 0, 6, 10, input1);

Med = Fuzzify(6, 10, 10, 15, input1);

Large = Fuzzify(10, 15, 10000, 10000, input1);

//Input Membership Function of speed Low = Fuzzify(0, 0, 10, 40, input2);

Medium = Fuzzify(10, 40, 40, 65, input2);

High = Fuzzify(40, 65, 10000, 10000, input2);

//Output Membership Function of Braking Level

noBrake = 0;

Soft = 30;

medium = 45;

Hard = 60;

44 //Minimum Operations

min[0] = minimal(Small, Low);

min[1] = minimal(Small, Medium);

min[2] = minimal(Small, High);

min[3] = minimal(Med, Low);

min[4] = minimal(Med, Medium);

min[5] = minimal(Med, High);

min[6] = minimal(Large, Low);

min[7] = minimal(Large, Medium);

min[8] = minimal(Large, High);

//Rules

//Fuzzifikasi untuk mendapatkan miu dari Crisp Input : Output: //outFuzzify

double Fuzzify(double a, double b, double c, double d, double x)

{

if (x < a) { outFuzzify = 0; }

45

elseif ((x >= a) && (x < b)) { outFuzzify

= (x - a) / (b - a); }

elseif ((x >= b) && (x < c)) { outFuzzify

= 1; }

elseif ((x >= c) && (x < d)) { outFuzzify

= (d - x) / (d - c); }

elseif (x > d) { outFuzzify = 0; } return outFuzzify;

}

// Operator minimal. Input: a, b. Output:

outMinimal

double minimal(double a, double b) {

if (a < b) { outMinimal = a; } else { outMinimal = b; }

return outMinimal;

}

7. Jalankan program, masukkan nilai distance = 9 dan speed = 15, kemudian klik tombol Run FLC.

46 3.13 Tugas

Ubahlah nilai distance dan speed seperti pada tabel 3-1, kemudian perhatikan nilai braking levelnya. Catat pada Tabel 3-1.

Tabel 3-1

No Distance (m) Speed (Km/h) Braking Level (%)

1 9.00 15.00

2 20.00 65.00

3 4.50 10.00

4 16.00 40.00

5 10.00 10.00

6 11.60 40.00

7 13.00 35.00

8 9.00 50.00

9 14.00 48.50

10 20.00 25.80

11 12.00 22.50

12 9.50 44.00

47

Dalam dokumen Pengantar Sistem Kendali Cerdas (Halaman 21-48)

Dokumen terkait