Postingan

Menampilkan postingan dari Maret, 2020

Simulasi Program Fuzzy Arduino

Gambar
Melanjutkan postingan sebelumnya pada tulisan kali ini kita akan mensimulasikan program fuzzy logic menggunakan arduino dan membandingkannya dengan hasil dari fuzzy toolbox matlab. Adapun untuk soalnya diambil dari:  Sistem Inferensi Fuzzy oleh Rinaldi Munir dari Teknik Informatika STEI ITB.  Adapun cuplikan soal dan penyelesaian nya (dari file pdf yang dapat di download DISINI ) sebagai berikut: Program yang telah dibuat selengkapnya  dapat dilihat sebagai berikut: Sebagai pembanding disini juga telah dibuat simulasi sistem tersebut menggunakan fuzzy toolbox matlab (file simulasi nya bisa di unduh DISINI). Kemudian dari simulasi didapatkan hasil sebagai berikut: Dari perbandingan dengan simulasi pada matlab terlihat nilai output dari program yang dibuat memiliki perbedaan yang kecil. Pengembangan selanjutnya mungkin dengan membuat program lebih simple sehingga lebih mudah digunakan, dan perlu diperhatikan juga penggunaan memori nya. Algoritma yang telah dibahas mungkin bisa juga d

Algoritma Program Fuzzy Logic (Bagian Defuzzifikasi metode COA)

Gambar
Defuzzifikasi adalah proses mendapatkan keluaran fuzy yang berupa himpunan fuzzy menjadi nilai crisp.Pada sistem Inferensi Mamdani terdapat beberapa metode untuk defuzzifikasi, namun disini yang akan dibahas adalah defuzzifikasi menggunakan metode center of area (COA). Rumusnya sebagai berikut: Misalkan dari evaluasi aturan didapatkan hasil komposisi aturan ux=1, sehingga didapatkan daerah hasil seperti gambar dibawah: Maka proses defuzzifikasi menggunakan metode COA adalah sebagai berikut: untuk memudahkan perhitungan kita bagi menjadi 3 daerah (daerah 1, 2,3 ) selanjutnya kita hitung momen untuk masing-masing daerah sebagai berikut:  hasil defuzzifikasi dapat dihitung sebagai jumlah momen dibagi jumlah luasan: Pada kenyataanya nilai dari komposisi aturan tidak selalu 1, dan daerah output memiliki titik-titik perpotongan. sehingga untuk membuat program defuzifikasi kita harus memeperhitungkan juga titik-titik perpotongan tersebut. Ilustrasinya sebagai berikut: Misalkan kita a

Cara Membuat AC Frequency Meter dengan Zero Crossing Detector dan Arduino

Gambar
Jika pada postingan sebelumnya telah ditulis tentang rangkaian zero crossing detector (ZCD), pada tulisan kali ini kita akan membahas salah satu penggunaan ZCD yaitu frequency meter (pengukur frekuensi) khususnya untuk gelombang listrik AC. Rangkaian zero crossing detector yang akan dicoba pada rangkaian ini masih sama dengan rangkaian zero crossing detector sebelumnya yaitu menggunkan opto coupler 4N25. Pada percobaan kali ini keluaran dari rangkaian zero crossing detector akan di hubungkan dengan pin interrupt arduino . Selanjutnya didalam program arduino akan dihitung nilai frekuensinya. Ilustrasinya sebagai berikut: Karena 1 periode (T) adalah waktu untuk 1 gelombang penuh maka: Periode (T) = t1 + t2 Seperti kita ketahui hubungan antara periode (T) dan frekuensi (f) adalah berbanding terbalik : Dimana: f = frekuensi (Hz) T= perode (detik) Maka dengan persamaan diatas kita bisa membuat sebuah program yang menghitung frekuensi dengan memanfaatkan pendeteksi ze

Algoritma Program Fuzzy Logic (Bagian Pembuatan Aturan)

Gambar
Pada tulisan kali ini akan membahas pembuatan aturan fuzzy logic menggunakan metode Mamdani atau sering disebut juga sebagai metode Min-Max (Min-Max Inferencing). Pada metode ini implikasi menggunakan min. Implikasi adalah proses mendapatkankeluaran If-then rule. Jika terdapat lebih dari satu rule yang menghasilkan output sama maka dilakukan komposisi atau agregasi menggunakan max atau OR, dengan kata lain diambil nilai yang paling besar. Untuk lebih mudah memahami nya maka kita ilustrasi kan sebagai berikut: Misalkan suatu sistem memiliki 2 input (Input A dan Input B) dan satu output (X). Dimana Input A memiliki 2 buah fungsi keanggotaan (A1 dan B1), Input B memiliki 2 buah fungsi keanggotaan (B1 dan B2). Output X memiliki 2 buah fungsi keanggotaan (X1 dan X2). Dan dibuat aturan untuk sistem tersebut sebagai berikut: RULE 1 : IF (INPUT A = A1 AND INPUT B = B1) THEN OUTPUT = X1 RULE 2 : IF (INPUT A = A1 AND INPUT B = B2) THEN OUTPUT = X1 RULE 3 : IF (INPUT A = A2 AND INPUT B = B

Algoritma Program Fuzzy Logic (Bagian Fuzzifikasi)

Gambar
Fuzzifikasi adalah proses memetakan nilai crisp ke dalam himpunan fuzzy dan menentukan derajat keanggotaannya dalam himpunan. Untuk mendapatkan derajat keanggotaan dapat dilakukan dengan pendekatan fungsi. Terdapat beberapa bentuk fungsi keanggotaan diantaranya: 1. representasi linier naik 2. representasi linier turun 3. representasi segitiga 4. representasi trapesium Untuk pemrograman ini diasumsikan bahwa bentuk fungsi keanggotaan nya adalah trapesium. Dengan mengubah nilai-nilainya pada program maka dapat menghasilkan bentuk lainnya. Sehingga program lebih fleksible tanpa harus mendefinisikan untuk masing-masing bentuk fungsi nya. Ilustrasi nya adalah sebagai berikut: Gambar 1 fungsi keanggotaan Trapesium untuk memasukan nilai a, b, c, d seperti pada gambar, maka nilai disimpan pada sebuah array. formatnya : float nama_fungsi[ ]={a,b,c,d}; dan untuk hasil perhitungan derajat keanggotaannya kita simpan dalam array juga. Misalkan terdapat 3 fungsi keanggotaansuhu: "DINGIN",&