Kontrol Kecepatan Kipas AC Dengan Kontrol Fuzzy


Fuzzy set pertama kali diperkenalkan oleh prof. Lotfi Zadeh pada tahun 1965 dalam papernya yang berjudul “Fuzzy Set”. Dalam paper tersebut dipaparkan ide dasar fuzzy set yang meliputi inclusion, union, intersection, complement, relation dan convexity. Ide tersebut terus dimatangkan oleh Zadeh dengan paper-papernya yang diantaranya berjudul “Probability Measures of Fuzzy Events”, “Decision-Making in a Fuzzy Environment”, “Similarity Relations and Fuzzy Ordering” dan lain-lain. Pelopor aplikasi fuzzy set dalam bidang kontrol yan merupakan aplikasi pertama dan utama dari fuzzy set adalah Prof. Ebrahim Mamdani dan kawan-kawan dari Queen Mary College London. Aplikasinya meliputi proses pada tangki pencampur dan mesin uap yang semuanya dalam skala lab. Penerapan kontrol logika fuzzy secara nyata diindustri banyak dipelopori para ahli dari Jepang misalnya Prof. Sugeno dan kawan-kawan dari Tokyo Institute of Technology, Prof. Yamakawa dari Kyusu Institute of Technology melakukan penelitian dasar dari komputer fuzzy, sedangkan Togai dan Watanabe dari Bell Telephne Labs berhasil menciptakan untuk pertama kalinya chip logika fuzzy.

Begitulah sedikit pengantar tentang sejarah logika fuzzy dan pelopor penerapan logika fuzzy dalam bidang kontrol. Dalam tulisan ini akan dibahas sedikit tentang contoh sederhana penerapan logika fuzzy untuk pengontrolan kecepatan kipas angin dengan 2 parameter input yaitu jumlah orang dalam ruangan dan suhu ruangan serta 1 parameter output yaitu PWM kipas angin. Dalam aplikasi ini sensor yang digunakan untuk mencounter jumlah orang dalam ruangan adalah dua pasang sensor IR yang diletakkan di pintu ruangan sedangkan untuk mengukur suhu ruangan digunakan sensor LM35 yang memiliki tingkat kepresisian yang lumayan bagus. Semua parameter tersebut diinputkan pada sebuah kontoler Atmega 16 dan output dari kontoler di umpankan pada rangkaian switching solid state untuk mengatur kecepatan dari kipas angin.

Dalam kontrol logika fuzzy terdapat beberapa tahapan yaitu Fuzzyfikasi, Fuzzy Rule (rule based) dan Defuzzyfikasi. Fuzzyfikasi adalah proses untuk mendapatkan besarnya derajat keanggotaan masukan yang berupa suatu variabel numerik non-fuzzy (elemen himpunan) dalam suatu himpunan fuzzy atau dengan kata lain fuzzyfikasi adalah proses pengubahan data-data numerik dari parameter input (sensor) menjadi data-data fuzzy untuk proses pengolahan fuzzy lebih lanjut. Dalam hal ini proses fuzzyfikasi adalah bagaimana kita menyajikan data-data numerik input yang bersifat riil pada suatu grafik fuzzy dengan sumbu-x sebagai semesta pembicaraan dan sumbu-y sebagai derajat keanggotaan. Penentuan keanggotan suatu himpunan fuzzy tidak dibatasi oleh aturan-aturan tertentu. Terdapat tiga macam keanggotaan yang sering digunakan yaitu fungsi keangotaan S, π dan T (segitiga). Dalam aplikasi ini proses fuzzyfikasi menggunakan fungsi keanggotaan T (segitiga) dengan derajat keanggotaan max 100 dan semesta pembicaraan sesuai dengan nilai yang kita inginkan. Berikut adalah fuzzyfikasi dari masukan kontrol diatas.

Sedangkan penerapan pada listing program sebagai berikut

//fuzzyfikasi jumlah orang

if(sigm<=5)                //sigm=jumlah orang
 {
  sdk=100-(sigm*20);         //sdk=sedikit
  sdg=(sigm*20);             //sdg=sedang
  byk=0;                     //byk=banyak
  fll=0;                     //fll=full
 }
else if(sigm>5 && sigm<=10)
 {
  sdk=0;
  sdg=200-(sigm*20);
  byk=(sigm*20)-100;
  fll=0;
 }
else if(sigm>10 && sigm<=15)
 {
  sdk=0;
  sdg=0;
  byk=300-(sigm*20);
  fll=(sigm*20)-200;
 }
else
 {
  sdk=0;
  sdg=0;
  byk=0;
  fll=100;
 }

Sedangkan penerapan pada listing program sebagai berikut

//fuzzyfikasi suhu
if(tmp<=16)                //tmp=temperatur terukur
 {
  sdgn=100;               //sdgn=sangat dingin
  dgn=0;                  //dgn=gingin
  nrml=0;                 //nrml=normal
  pns=0;                  //pns=panas
 }
else if(tmp>16 && tmp<=24)
 {
  sdgn=300-((float)(tmp*25)/2);
  dgn=((float)(tmp*25)/2)-200;
  nrml=0;
  pns=0;
 }
else if(tmp>24 && tmp<=32)
 {
  sdgn=0;
  dgn=400-((float)(tmp*25)/2);
  nrml=((float)(tmp*25)/2)-300;
  pns=0;
 }
else if(tmp>32 && tmp<=40)
 {
  sdgn=0;
  dgn=0;
  nrml=500-((float)(tmp*25)/2);
  pns=((float)(tmp*25)/2)-400;
 }
else
 {
  sdgn=0;
  dgn=0;
  nrml=0;
  pns=100;
 }

sedangkan untuk penerapan membership function dari putaran kipas dalam listing program disangkut pautkan dengan rule based dari kontrol fuzzy tersebut. Hal ini karena membership function dari putaran kipas merupakan grafik fuzzy dari keluaran kontrol yang diharapkan dari aturan fuzzy yang dibuat. Pada umumnya aturan-aturan/rule fuzzy dinyatakan dalam bentuk “IF-THEN Misalnya dalam dalam aturan fuzzy “jika kondisi suhu panas dan jumlah orang sedang maka kecepatan kipas cepat”. Berikut adalah rule dari kontrol aplikasi ini

DM=dianggap mati, P=pelan, S=sedang dan C=cepat

Sedangkan penerapan membership function dari putaran kipas pada listing program dalam kaitannya dalam penerapan pada rule base sebagai berikut

//rule based
if(sdk<sdgn)
 {ptr[0]=sdk;nilteng[0]=64;}
else
 {ptr[0]=sdgn;nilteng[0]=64;}

if(sdk<dgn)
 {ptr[1]=sdk;nilteng[1]=64;}
else
 {ptr[1]=dgn;nilteng[1]=64;}

if(sdk<nrml)
 {ptr[2]=sdk;nilteng[2]=128;}
else
 {ptr[2]=nrml;nilteng[2]=128;}

if(sdk<pns)
 {ptr[3]=sdk;nilteng[3]=192;}
else
 {ptr[3]=pns;nilteng[3]=192;}

if(sdg<sdgn)
 {ptr[4]=sdg;nilteng[4]=64;}
else
 {ptr[4]=sdgn;nilteng[4]=64;}

if(sdg<dgn)
 {ptr[5]=sdg;nilteng[5]=64;}
else
 {ptr[5]=dgn;nilteng[5]=64;}

if(sdg<nrml)
 {ptr[6]=sdg;nilteng[6]=128;}
else
 {ptr[6]=nrml;nilteng[6]=128;}

if(sdg<pns)
 {ptr[7]=sdg;nilteng[7]=255;}
else
 {ptr[7]=pns;nilteng[7]=255;}

if(byk<sdgn)
 {ptr[8]=byk;nilteng[8]=64;}
else
 {ptr[8]=sdgn;nilteng[8]=64;}

if(byk<dgn)
 {ptr[9]=byk;nilteng[9]=64;}
else
 {ptr[9]=dgn;nilteng[9]=64;}

if(byk<nrml)
 {ptr[10]=byk;nilteng[10]=192;}
else
 {ptr[10]=nrml;nilteng[10]=192;}

if(byk<pns)
 {ptr[11]=byk;nilteng[11]=255;}
else
 {ptr[11]=pns;nilteng[11]=255;}

if(fll<sdgn)
 {ptr[12]=fll;nilteng[12]=64;}
else
 {ptr[12]=sdgn;nilteng[12]=64;}

if(fll<dgn)
 {ptr[13]=fll;nilteng[13]=128;}
else
 {ptr[13]=dgn;nilteng[13]=128;}

if(fll<nrml)
 {ptr[14]=fll;nilteng[14]=192;}
else
 {ptr[14]=nrml;nilteng[14]=192;}

if(fll<pns) 
 {ptr[15]=fll;nilteng[15]=255;}
else
 {ptr[15]=pns;nilteng[15]=255;}

ket:

ptr[ ]=adalah variabel untuk menampung nilai derajat keanggotaan dari input yang diambil nilai derajat keanggotaan terkecil. Variabel ini dibentuk dalam format array.

nilteng[ ]=adalah nilai titik tengah dari grafik fuzzyfikasi putaran kipas angin yang merupakan implementasi dari rule. Misalnya jika suhu panas dan jumlah orang sedang maka putaran kipas angin berdasarkan rule adalah cepat dengan nilteng=255.

Sedangkan tahap terakhir dalam kontrol logika fuzzy adalah defuzzyfikasi. Defuzzyfikasi adalah proses pengubahan data-data fuzzy menjadi data-data numerik yang dapat dikirimkan ke alat pengendalian. Dalam aplikasi ini proses defuzzyfikasi menggunakan metode Center Of Area (COA) yang memiliki rumus

Sedangkan listing program untuk proses defuzzyfikasi dari aplikasi ini sebagai berikut

jml_nil=ptr[0]+ptr[1]+ptr[2]+ptr[3]+ptr[4]+ptr[5]+ptr[6]+ptr[7]+ptr[8]+ptr[9]+ptr[10]+ptr[11]+ptr[12]+ptr[13]+ptr[14]+ptr[15];
jml_nilteng=(ptr[0]*nilteng[0])+(ptr[1]*nilteng[1])+(ptr[2]*nilteng[2])+(ptr[3]*nilteng[3])+(ptr[4]*nilteng[4])+(ptr[5]*nilteng[5])+(ptr[6]*nilteng[6])+(ptr[7]*nilteng[7])+(ptr[8]*nilteng[8])+(ptr[9]*nilteng[9])+(ptr[10]*nilteng[10])+(ptr[11]*nilteng[11])+(ptr[12]*nilteng[12])+(ptr[13]*nilteng[13])+(ptr[14]*nilteng[14])+(ptr[15]*nilteng[15]);

//defuzzyfikasi
if(jml_nil==0)
 {
  coa=0;
 }
else
 {
  coa=jml_nilteng/jml_nil;
 }

nah nilai coa diatas adalah nilai output dari kontrol logika fuzzy yang nantinya nilai ini ditransfer pada perangkat pengendalian.

ref:

  • Son Kuswadi “Kendali Cerdas Teori dan Aplikasi Praktisnya”
  • zalbud ” TA Kontrol Kecepatan Kipas AC berbasis Fuzzy Logic”
    • maikal
    • December 9th, 2012

    pak, boleh minta codingan sama simulasinya??
    pengen belajar fuzzynih.,

    • Di artikel saya sudah melampirkan coding untuk setiap proses dlm kontrol fuzzy. kalau kurang jelas dengan coding tersebut bisa ditanyakan lansung ke saya.

    • ari
    • February 10th, 2013

    Salam kenal pak, makasih banyak contohnya, sangat bagus,mudah dimengerti bagi pemula seperti sy. Pak tolong dijelaskan :1) pada fuzzyfikasi suhu ditulis float : (else if(tmp>16 && tmp<=24) { sdgn=300-((float)(tmp*25)/2);) maksudnya apa itu? berbeda dengan fuzzyfikasi jumlah orang. 2) pada rule based ditulis (if(sdk<sdgn) {ptr[0]=sdk;nilteng[0]=64;} else {ptr[0]=sdgn;nilteng[0]=64;}) kenapa bukan if… then (misal : if orang is sdk and suhu is sdgn then kipas is DM)

    • 1. Q : mengapa rumusnya berbeda antara fuzzifikasi orang dan suhu?
      A : Rumusnya berbeda karena yang menjadi acuan bukanlah rumus itu sendiri tapi mencari nilai membership function.

      fuzzifikasi orang –> mengacu pada grafik membership function yang segitiga sedikit dan sedang.

      if(sigm<=5)                //sigm=jumlah orang
       {
        sdk=100-(sigm*20);         //sdk=sedikit
        sdg=(sigm*20);             //sdg=sedang
        byk=0;                     //byk=banyak
        fll=0;                     //fll=full
       }
      

      untuk perhitungannya misal jumlah orang 2 orang maka berdasar pada grafik nilai membership function:
      grafik sedikit : 60
      grafik sedang : 40
      banyak : 0
      full : 0

      kalau dengan rumusnya dari program :
      sdk = 100-(2 orang*20) = 60
      sdg = 2 orang * 20 = 40
      byk = 0
      fll = 0

      fuzzyfikasi temperature –> mengacu pada grafik membership function yang segitiga sangat dingin dan dingin

      if(tmp>16 && tmp<=24)
       {
        sdgn=300-((float)(tmp*25)/2);
        dgn=((float)(tmp*25)/2)-200;
        nrml=0;
        pns=0;
       }

      untuk perhitungannya misal temperature 20 maka berdasar pada grafik nilai membership function:
      sangat dingin : 50
      dingin : 50
      normal : 0
      panas : 0

      kalau dengan rumusnya dari program :
      sdgn = 300-((float)(20*25)/2) = 50
      dgn=((float)(20*25)/2)-200 = 50
      nrml=0
      pns=0

      Intinya rumus tersebut tidak baku asal sesuai dengan nilai membership function nya.

      2. Q : Kenapa tidak lgsung " if orang is sdk and suhu is sdgn then kipas is DM"?
      A : sebenarnya memang begitu tetapi logika tersebut harus diartikan dalam logika fuzzy sebagaimana yang dijelaskan diatas.

      Dalam mengevaluasi rule base/ fuzzy fire, nilai dari dua variable dibandingkan terlebih dahulu sesuai rule base dan nilai membership function yang diambil adalah nilai terkecil.

      Dengan mengacu pada grafik putaran kipas dan rule base itu sendiri dimisalkan jumlah orang sedikit (2 orang) dan suhu sangat dingin (20 derajat) maka putaran kipas adalah dianggap mati.

      mengartikan secara fuzzy nya sbb:
      MF sedikit = 60
      MF sangat dingin = 50

      Maka nilai yang diambil adalah yang 50 dan nilai tengah dari Dianggap mati adalah 64. maka programnya sbb:

      if(sdk<sdgn)
       {ptr[0]=sdk;nilteng[0]=64;}
      else
       {ptr[0]=sdgn;nilteng[0]=64;}

      Note:Kalau kurang jelas, bisa kontak via mail di coys.jrux@gmail.com

    • nia
    • February 18th, 2013

    permisi pak saya mau tanya, kipas yang d kontrol ini mksudnya kipas yang dmnnya ya pak ?? trus ini programnya pake bahasa apa ya ???

    • kipas yang di kontrol adalah kipas AC biasa dan bahasa yang digunakan dalam program ini adalah bahasa c.

        • nia
        • February 21st, 2013

        kipas blower yg d dalam ruangan itu ya pak atau kipas yang d diletakkan d luar ruangan yang dekat kompressornya. Masih bingung ni pak, kipas yang mana. Minta d jelaskan lagi y pak. Makasih.

      • wah,,,
        kayaknya salah persepsi nih…
        kontrol fuzzy ini digunakan untuk kontrol kipas angin AC (alternating current) biasa agar kinerjanya menyerupai kinerja AC (air conditioner).
        tujuannya adalah kita bisa membuat sistem conditioner yang murah meriah dengan kipas angin biasa untuk mendapatkan manfaat spt AC.
        begitu maksudnya. 🙂

    • ALfian Fortrandyka
    • May 23rd, 2013

    ini progam nya di codevision ya pak ?

  1. pak bagaimana menentukkan fuzzifikasi orang dan suhu dengan matlab
    dari contoh diatas pak
    mohon bantuan nya pak
    ^_^

    • waahh..maaf pak, saya belum pernah mencobanya pada matlab…

    • bani
    • June 11th, 2013

    pak bagaimana menentukan nilai ‘100’ ‘200’ ‘300’ pada fuzzyfikasi orang
    dan pada fuzzyfikasi suhu kenapa ‘100’ langsung ke ‘300’
    mohon penjelasannya pak
    terima kasih

    • Hal hanya untuk mendapatkan nilai membership function yang sesuai dengan grafik fuzzy tersebut. Jadi rumus tersebut tidaklah baku melainkan menyesuaikan sesuai grafik (mencari persamaan garis pada grafik fuzzy). Semoga dimengerti.

    • puput
    • July 28th, 2013

    aslkum, permisi tanya: bagaimana cara penulisan main program-nya (while (1) ) pak,mohon pencerahannya. terima kasih

    • Main program yang diproses berulang-ulang adalah yang proses pembacaan sensor atau input, pemanggilan rutin dari proses fuzzy dan pengaturan out put dari proses itu sendiri.

      Misalnya (semua proses dibuat dalam rutin) :
      Input –> sensor1, sensor2.
      proses fuzzy –> fuzzifikasi, rule dan defuzzifikasi
      output –> output1

      jadi dalam program utama yang diproses berulang-ulang adalah

      While(1)
      {
      sensor1();
      sensor2();
      fuzzyfikasi();
      rule();
      defuzzifikasi();
      output1();
      }
      
      
    • puput
    • July 30th, 2013

    terima kasih banyak mas,sangat membantu sy. Satu lagi pertanyaan sy: dalam pembuatan batas2 fungsi keanggotaan input dan output, apa menggunakan nilai digital output sensor atau nilai sbenarnya dari output sensor (hsl konversi).

    • sorry,,,
      bisa diperjelas maksudnya bagaimana???
      inputnya berupa sensor apa dan outputnya nantinya akan digunakan untuk mengontrol apa???

      Kalau maksudnya nilai sumbu x atau yang dikenal dengan semesta pembicaraan maka alangkah baiknya menggunakan nilai hasil konversi dari sensor yang berupa data dapat yang kita kenal sehingga jika terjadi masalah kita dengan mudah men-trace kesalahannya dimana. misalnya sensor suhu –> data digital adc = 101111 dan misal jika dikonversi ke suhu adalah 33 derajat maka tentu kita akan lebih mudah membaca 33 derajat daripada 101111.

    • andi
    • November 1st, 2013

    void fuzzifikasi_quad() //fuzzifikasi
    {
    NE=0;
    ME=0;
    PE=0;

    ND=0;
    MD=0;
    PD=0;

    NI=0;
    MI=0;
    PI=0;

    //==========================================
    //Error
    //==========================================
    if((XERROR=-10))
    {

    NE = 1; //=========1
    equ_aktif_0 = 1;//NE;
    equ_aktif_1 = 1;//NE;
    }
    else if((XERROR=-0.2))
    {

    NE = (-5)*XERROR; //=========2
    ME = ((10)*XERROR)+1; //=========3
    equ_aktif_0 = 1;//NE;
    equ_aktif_1 = 2;//ME;
    }
    else if((XERROR=0))
    {

    ME = ((-10)*XERROR)+1;//=========4
    PE = ((5)*XERROR);//=========5
    equ_aktif_0 = 2;//ME;
    equ_aktif_1 = 3;//PE;
    }
    else if((XERROR=0.2))
    {
    PE=1;//=========6
    equ_aktif_0 = 3;//PE;
    equ_aktif_1 = 3;//PE;
    }

    //==========================================
    //DIFERENTIAL
    //==========================================
    if((XDIFFERENTIAL=-20))
    {

    ND = 1; //=========1
    equ_aktif_2 = 4;//ND;
    equ_aktif_3 = 4;//ND;
    }
    else if((XDIFFERENTIAL=-1))
    {

    ND = ((-1.333)*XDIFFERENTIAL)-0.333; //=========2
    MD = XDIFFERENTIAL+1; //=========3
    equ_aktif_2 = 4;//ND;
    equ_aktif_3 = 5;//MD;
    }
    else if((XDIFFERENTIAL=0))
    {

    MD = ((-1)*XDIFFERENTIAL)+1;//=========4
    PD = ((1.333)*XDIFFERENTIAL)-0.333;//=========5
    equ_aktif_2 = 5;//MD;
    equ_aktif_3 = 6;//PD;
    }
    else if((XDIFFERENTIAL=1))
    {
    PD=1;//=========6
    equ_aktif_2 = 6;//PD;
    equ_aktif_3 = 6;//PD;
    }

    //==========================================
    //INTEGRAL
    //==========================================
    if((XINTEGRAL=-20))
    {

    NI = 1; //=========1
    equ_aktif_4 = 7;//NI;
    equ_aktif_5 = 7;//NI;
    }
    else if((XINTEGRAL=-0.8))
    {

    NI = ((-1.666)*XINTEGRAL)-0.333; //=========2
    MI = ((1.538)*XINTEGRAL)+1; //=========3
    equ_aktif_4 = 7;//NI;
    equ_aktif_5 = 8;//MI;
    }
    else if((XINTEGRAL=0))
    {

    MI = ((-1.538)*XINTEGRAL)+1;//=========4
    PI = XINTEGRAL;//=========5
    equ_aktif_4 = 8;//MI;
    equ_aktif_5 = 9;//PI;
    }
    else if((XINTEGRAL=1))
    {
    PI=1;//=========6
    equ_aktif_4 = 9;//PI;
    equ_aktif_5 = 9;//PI;
    }

    void inferensi_mamdani_or_sugeno_model()
    {
    NB=NS=Z=PS=PB=0;

    if( ((equ_aktif_0==1)||(equ_aktif_1 ==1)) && ((equ_aktif_2 ==4)||(equ_aktif_3==4)) && ((equ_aktif_4 ==7)||(equ_aktif_5 ==7))) //=======1 NE-ND-NI => PB
    {
    //CONJUCTION
    if((NE< ND) &&(NE ND) &&(NE>NI))
    {
    PB = ND;
    PB = NI;
    }
    //CONJUCTION
    else if((ND< NE) &&(ND NE) &&(ND>NI))
    {
    PB = NE;
    PB = NI;
    }
    //CONJUCTION
    else if((NI< ND) &&(NIND) &&(NI>NE))
    {
    PB = ND;
    PB = NE;
    }

    }

    if( ((equ_aktif_0==1)||(equ_aktif_1 ==1)) && ((equ_aktif_2 ==4)||(equ_aktif_3==4)) && ((equ_aktif_4 = 8)||(equ_aktif_5 = 8))) //=======2 ND-NE-MI => PB
    {
    //CONJUCTION
    if((ND < NE)&&(ND PB)
    {
    PB = ND;
    }
    }
    else if ((ND > NE)&&(ND>MI))
    {
    //DISJUNCTION
    if((NE > PB) && (MI > PB))
    {
    PB= NE;
    PB= MI;
    }
    }

    //CONJUCTION
    else if((NE < ND)&&(NE PB)
    {
    PB = NE;
    }
    }
    else if ((NE > ND)&&(NE>MI))
    {
    //DISJUNCTION
    if((ND > PB) && (MI > PB))
    {
    PB= ND;
    PB= MI;
    }
    }

    //CONJUCTION
    else if((MI < ND)&&(MI PB)
    {
    PB = MI;
    }
    }
    else if ((MI > ND)&&(MI>NE))
    {
    //DISJUNCTION
    if((ND > PB) && (NE > PB))
    {
    PB= ND;
    PB= NE;
    }
    }

    }

    Mas, saya kan make 3 input satu output untuk fuzzynya. Dari syntaks di atas, saya coba buat contoh rule base sebanyak 2 dulu pada void inferensi_mamdani_or_sugeno_model(). Saya mau nanya mas, benar gak penulisan dari bentuk syntaks rule base di atas klo di tulis di avr dimana inputnya ada 3 dan otputnya ada 1?
    Mohon pencerahannya ya gan.
    Tks banyak.. 🙂
    catatan: output yg ditulis dari kedua rule base di atas adalah PB.

    • Maaf baru ngerespon. Bisa dilampirkan grafik fuzzifikasi dari semua input dan outputnya? q tidak bisa mengecek apakah sudah benar atau belum jika tidak ada grafik fuzzifikasi. Oy sekalian sama 2 rule base yang anda contohkan itu?

  2. permisi mas, mau tanya di potongan coding sampeyan yang…

    else if(sigm>10 && sigm<=15)
    {
    sdk=0;
    sdg=0;
    byk=300-(sigm*20);
    fll=(sigm*20)-200;
    }

    nilai 300 dan 200 acuannya dari mana ya?

    • Acuannya adalah pada grafik fuzzifikasi diatas. Nilai tersebut saya ambil untuk memperoleh nilai membership function yang sesuai dengan grafik. Jadi nilai tersebut tidak mutlak melainkan menyesuaikan grafik fuzzifikasi agar diperoleh membership function yg sesuai.

    • habibi
    • May 27th, 2014

    pak cara membuat grafik keanggotaan di atas menggunakan sofware apa?

    • fajar
    • November 10th, 2016

    pak defuzzyfikasi COA bisa dibuat untuk fuzzy mamdani kah ?

    • Leo Ade Putra
    • February 4th, 2017

    ini metode tsukamoto ya pak?

    • adilvitra
    • September 30th, 2017

    mas boleh minta program lengkapnya ga mas?

    • Chidorii
    • November 5th, 2023

    Pak boleh mnta rangkaian elektrikalnya ?

  1. No trackbacks yet.

Leave a reply to coys Cancel reply