Fuzzy Logic dengan Matlab Toolbox


SOAL :

Suatu sistem pengendali kecepatan mobil dengan dengan logika fuzzy digunakan untuk mengendalikan kecepatannya, mobil ini memiliki sensor jarak, sensor kecepatan dan situasi dari sistem pengendali kecepatan mobil tersebut dapat digambarkan pada gambar di bawah, mobil ini dikendalikan dengan tujuan tidak menabrak mobil di depannya.

soal-fuzzy

Jika kecepatan mobil adalah : 50 km/jam dan jaraknya adalah 0,75 m berapa posisi pedal yang harus di injak? Dengan ketentuan aturan sebagai berikut :

  • Aturan 1 : Jika kecepatan mobil cepat dan jaraknya sangat dekat maka pedal rem injak sedikit
  • Aturan 2 : Jika kecepatan mobil cukup dan jaraknya agak dekat maka pedal rem injak sedang
  • Aturan 3 : Jika kecepatan mobil cukup dan jaraknya sangat dekat maka pedal rem injak agak penuh

SOLUSI (Menggunakan Software MATLAB) :

Pada menyelesaiakan masalah di atas kita menggunakan fuzzy tool yang ada pada aplikasi MATLAB. Pertama-tama buka software MATLAB lalu set path atau directory tempat file kita menyimpan aplikasi dengan pilih menu File → Set Path →lalu Add Folder tempat kita menyimpan File kita nantinya kemudian tekan Save seperti gambar di bawah ini.

setpath1

setpath2

Setelah itu pada Command Window ketik “fuzzy”, maka akan muncul jendela berikut ini.

fuzzy1

fuzzy2

Secara default Matlab menyediakan satu masukan, satu keluaran dan satu rule bertipe Mamdani (pada kali ini kita gunakan tipe Mamdani) seperti pada gambar di atas. Karena kita diminta untuk membuat dua masukan yaitu kecepatan dan jarak, dan output posisi pedal rem maka dilakukan modifikasi bagian input dan output. Sebelumnya simpan dulu filenya pada menu File → Eksport → To Disk. Pada kali ini penulis memberikan nama file dengan nama “subriyanto” seperti gambar di bawah ini.

simpan1

simpan2

simpan3

Kemudian kita ganti nama variable pada bagian input dengan nama “kecepatan” dengan cara klik gambar variable yang bersangkutan lalu diganti namanya seperti gambar di bawah ini.

editkecepatan

Dikarenakan kita memerlukan dua input maka diperlukan penambahan variable dengan cara pilih menu edit – Add Variable – Klik “input”. Tambahkan lalu kita beri nama sesuai input yang diminta yaitu “jarak” seperti gambar di bawah ini.

tambahjarak1

tambahjarak21

Lalu kita ganti nama variable output sesuai dengan permintaan soal di atas yaitu “posisi pedal rem” seperti gambar di bawah ini.

posisipedalrem

Langkah berikutnya adalah kita membuat fungsi keanggotaan (membership function) untuk input. Misal “kecepatan” terlebih dahulu terlebih dahulu,dengan cara pilih menu Edit → Membership Functions seperti gambar di bawah.

editmember

Kemudian muncul menu Membership Function Editor. Karena ini tidak sesuai dengan soal kasus di atas untuk input “Kecepatan” maka cara mudah mengedit Membership Function untuk input “Kecepatan” dengan menghapusnya terlebih dengan cara memilih menu Edit → Remove All MFs seperti gambar di bawah ini.

removemfs1

removemfs2

Dan kemudian membuat baru Membership Function dengan berapa kondisi yang diberikan pada input variable “Kecepatan” seperti soal kasus di atas seperti gambar di bawah ini.

addmfs1

addmfs2

Maka akan keluar tampilan seperti gambar di bawah ini.

hasiladdmfs

Lalu member nama tiap tiap step dari Membership Function “Kecepatan” dengan mengganti tab name seperti gambar ini.

gantistep1

gantistep2

gantistep3

Kemudian mengisi range nilai dari input variable “Kecepatan” pada soal antara 0-80 Km/jam dengan mengisi [0 80] pada tab range seperti gambar di bawah ini.

gantistep3

Kemudian mengisi range nilai dari input variable Kecepatan pada soal antara 0-80 Km/jam dengan mengisi [0 80] pada tab range seperti gambar di bawah ini.

range

Langkah sama dilakukan pada input “Jarak” sehingga menghasilkan MFs seperti pada gambar di bawah ini.

mfsjarak

Langkah samapun juga dilakukan pada output “Posisi Pedal Rem” sehingga menghasilkan MFs seperti pada gambar di bawah ini.

mfsposisipedalrem

Kemudian kita buat aturan-aturan sesuai soal yaitu dengan memilih menu Edit → Rules seperti gambar di bawah ini.

rules

Lalu masukan aturan-aturan/rules yang ada seperti gambar di bawah ini.

Note :

  • Aturan 1 : Jika kecepatan mobil cepat dan jaraknya sangat dekat maka pedal rem injak sedikit
  • Aturan 2 : Jika kecepatan mobil cukup dan jaraknya agak dekat maka pedal rem injak sedang
  • Aturan 3 : Jika kecepatan mobil cukup dan jaraknya sangat dekat maka pedal rem injak agak penuh

ruleedit

Lalu kita bisa masukan input-input sesuai dengan soal kasus di atas dengan memilih menu View → Rules seperti gambar di bawah ini.

masukinput

Note : Sesuai soal kecepatan mobil adalah : 50 km/jam dan jaraknya adalah 0,75 m berapa posisi pedal yang harus di injak?

Kemudian masukan nilai soal pada tab input sehingga diperoleh besarnya output posisi pedal rem sebesar 20 derajat, seperti tampilan gambar di bawah ini.

hasil

SUMMARY :

Jadi dari simulasi fuzzy logic di atas jika diberi input kecepatan mobil sebesar 50 Km/Jam dan Jarak mobil 0,75 m maka diperoleh nilai posisi pedal sebesar 20 derajat.

Download Versi PDF

Posted on January 16, 2013, in Artificial Intelligence, Fuzzy Logic dengan Matlab Toolbox and tagged , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: