Tutorial Fuzzy Logic Controller Arduino (Fuzzifikasi)

Daftar Isi

Hello temen-temen anakkendali.com.
Pada kesempatan kali ini saya akan menulis artikel tentag Arduino, Tutorial Fuzzy Logic Controller dengan Arduino (Fuzzifikasi). Fuzzy Logic Controller juga termasuk bagian dari AI ( artificial intelligence ) atau kecerdasan buatan, dilihat dari hasil algoritma fuzzy ini sangat mirip dengan pola pikir manusia. pada tutorial ini kita akan membuat implementasi fuzzy pada arduino

Jika komputer hanya memiliki dua keadaan yaitu 0 atau 1, benar atau salah, true or false maka fuzzy ini dibuat untuk mencari nilai antara 0 dan 1 nya,

Contoh logika fuzzy dalam kehidupan sehari hari antara lain :

  • saat manusia mengendarai sepeda motor
  • saat manusia mengendarai mobil
  • dan banyak sekali contoh lainya yang di terapkan oleh manusia itu sendiri.

dan salah satu contoh logika fuzzy yang diterapkan pada hardware atau mesin yaitu :

Mesin Cuci Fuzzy
AC Fuzzy
Vaccum Cleaner Fuzzy
dan sebagainya.

Arti fuzzy itu sendiri menurut bahasa adalah Samar / Kabur dan adapun lawan dari fuzzy adalah Crisp yang berarti Tegas.
pada artikel ini saya akan menjelaskan tahap awal dalam membuat fuzzy controller dengan menggunakan mikrokontroler yang sangat populer yaitu Arduino. tahap awal membuat Logika Fuzzy adalah Fuzzifikasi. dimana kita akan menentukan dua variable satu Input satu Output dimana keduanya akan kita cari terlebih dahulu nilai keanggotaanya.

Baca Juga :  Cara Mengontrol Relay Bluetooth HC-05 Arduino

contoh dalam artikel ini kita menggunakan Parameter SUHU (Input) dan Motor DC (Output)
dimana parameter suhu ini memiliki variable linguistik Dingin, Hangat dan Panas. sedangkan untuk varibel dari parameter Motor DC yaitu Lambat, Sedang dan Cepat.
lihat gambar dibawah ini :

Tutorial Fuzzy Logic Controller Arduino (Fuzzifikasi)

      Variable Dingin akan di anggap benar benar dingin saat nilai keanggotaanya (u)= 1. pada gambar diatas nilai u=1 saat suhu <= 30 dan 30 – 45 nilai kenggotaanya di tentukan dengan rumus pada di gambar. begitu juga untuk variable Hangat, dan Panas.   untuk membuat code dari rumus rumus yang didapatkan diatas seperti ini contoh codenya :  

unsigned char suhuDingin(){
  if (suhu <= 30){dingin =1;}
  else if (suhu >=30 && suhu <=45){dingin=(45-suhu)/15;}
  else if (suhu >= 45){dingin =0;}
  return dingin;
}
unsigned char suhuHangat(){
  if (suhu <= 30){hangat =0;}
  else if (suhu >=30 && suhu <=45){hangat=(suhu-30)/15;}
  else if (suhu >=45 && suhu <=60){hangat=(60-suhu)/15;}
  else if (suhu >= 60){hangat =0;}
  return hangat;
}
unsigned char suhuPanas (){
  if (suhu <=45 ){panas =0;}
  else if (suhu >=45 && suhu <=60){panas=(suhu-45)/15;}
  else if (suhu >= 60){panas =1;}
  return panas;
}

gambar diatas adalah gambar keanggotaan untuk masing masing variable linguistik dari parameter PWM.

Tutorial Fuzzy Logic Controller Arduino (Fuzzifikasi)

dan berikut contoh program nya berdasarkan gambar diatas :

unsigned char pwmLambat(){
  if (pwm <= 100){Lambat =1;}
  else if (pwm >=100 && pwm <=150){Lambat=(150-pwm)/50;}
  else if (pwm >= 150){Lambat =0;}
  return Lambat;
}
unsigned char pwmSedang(){
  if (pwm <= 100){Sedang =0;}
  else if (pwm >=100 && pwm <=150){Sedang=(pwm-100)/50;}
  else if (pwm >=150 && pwm <=200){Sedang=(200-pwm)/50;}
  else if (pwm >= 200){Sedang =0;}
  return Sedang;
}
unsigned char pwmCepat (){
  if (pwm <= 100){Lambat =1;}
  else if (pwm >=150 && pwm <=200){Cepat=(pwm-150)/50;}
  else if (pwm >= 200){Cepat =0;}
  return Cepat;
}

Code Fuzzy Logic (Fuzzyfikasi)

Dan berikut adalah program Arduino untuk bagian FUZZIFIKASI pada tutorial FUZZY LOGIC CONTROLLER.

float suhu;
float dingin,hangat,panas;
float pwm;
float Lambat,Sedang,Cepat;
unsigned char suhuDingin(){
  if (suhu <= 30){dingin =1;}
  else if (suhu >=30 && suhu <=45){dingin=(45-suhu)/15;}
  else if (suhu >= 45){dingin =0;}
  return dingin;
}
unsigned char suhuHangat(){
  if (suhu <= 30){hangat =0;}
  else if (suhu >=30 && suhu <=45){hangat=(suhu-30)/15;}
  else if (suhu >=45 && suhu <=60){hangat=(60-suhu)/15;}
  else if (suhu >= 60){hangat =0;}
  return hangat;
}
unsigned char suhuPanas (){
  if (suhu <=45 ){panas =0;}
  else if (suhu >=45 && suhu <=60){panas=(suhu-45)/15;}
  else if (suhu >= 60){panas =1;}
  return panas;
}
unsigned char pwmLambat(){
  if (pwm <= 100){Lambat =1;}
  else if (pwm >=100 && pwm <=150){Lambat=(150-pwm)/50;}
  else if (pwm >= 150){Lambat =0;}
  return Lambat;
}
unsigned char pwmSedang(){
  if (pwm <= 100){Sedang =0;}
  else if (pwm >=100 && pwm <=150){Sedang=(pwm-100)/50;}
  else if (pwm >=150 && pwm <=200){Sedang=(200-pwm)/50;}
  else if (pwm >= 200){Sedang =0;}
  return Sedang;
}
unsigned char pwmCepat (){
  if (pwm <= 100){Lambat =1;}
  else if (pwm >=150 && pwm <=200){Cepat=(pwm-150)/50;}
  else if (pwm >= 200){Cepat =0;}
  return Cepat;
}
void fuzzifikasi(){
  suhuDingin();
  suhuHangat();
  suhuPanas();
  pwmLambat();
  pwmSedang();
  pwmCepat();
}
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
suhu = 54; // contoh kita memasukan nilai suhu 54 derajat
pwm = 104; // contoh kita memasukan nilai pwm 104
fuzzifikasi(); // memanggil fungsi fuzzifikasi untuk menghitung keanggotaan masing2 variable
Serial.print("dingin : ");
Serial.print(dingin);
Serial.print("t");
Serial.print("hangat : ");
Serial.print(hangat);
Serial.print("t");
Serial.print("panas : ");
Serial.println(panas);
Serial.print("lambat : ");
Serial.print(Lambat);
Serial.print("t");
Serial.print("sedang : ");
Serial.print(Sedang);
Serial.print("t");
Serial.print("cepat : ");
Serial.println(Cepat);
}
void loop() {
  // put your main code here, to run repeatedly:
}
Arduino, Tutorial Fuzzy Logic Controller dengan Arduino (Fuzzifikasi)

silahkan ditunggu untuk tutorial FUZZY LOGIC selanjutnya.  karena terlelu banyak jika di jelaskan dalam satu artikel. semoga bermanfaat dan jangan lupa untuk mengikuti anakkendali.com
Bagikan artikel ini dan jangan lupa berkomentar.

Baca Juga :  Arduino, Cara Membuat Alat Ukur Kulitas Air. pH, Suhu, Kekeruhan, Salinitas, Konduktifitas

Selanjutnya Tutorial Fuzzy Logic Controller dengan Arduino (Rule)

Keyword

  1. Tutorial Fuzzy logic controller
  2. Fuzzy Logic Controller Mamdani
  3. Cara Mendesain Fuzzyfikasi
  4. Mendesain Keanggotaan Fuzzy
  5. Implementasi Fuzzy Arduino
(Visited 2.018 times, 1 visits today)