Skip to content

Instantly share code, notes, and snippets.

@sofyan48
Created January 22, 2015 18:33
Show Gist options
  • Select an option

  • Save sofyan48/bc259a11846d8e90235a to your computer and use it in GitHub Desktop.

Select an option

Save sofyan48/bc259a11846d8e90235a to your computer and use it in GitHub Desktop.
Simulasi Pergerakan Motor DC-MP Menggunakan Metode Tsukamoto Fuzzy Logic
#include <iostream>
#include <math.h>
#include <cmath>
using namespace std;
//sensor kiri 0 == 0 cm
float nba=0,nbb=6; //ambang dekat
float nna=0,nnb=6,nnc=18; //ambang normal
float nsa=6,nsb=18; //ambang jauh
//sensor kanan 0 == 0 cm
float pba=0,pbb=6; //ambang dekat
float pna=0,pnb=6,pnc=18; //ambang normal
float psa=6,psb=18; //ambang jauh
//sensor depan 0 == 11 CM
float sba=0,sbb=11; //ambang dekat
float sna=0,snb=11,snc=29; //ambang normal
float ssa=11,ssb=29; //ambang jauh
//variabel defuzzyfikasi motor kiri dan kanan
float motorlambata=0,motorlambatb=60;
float motorsedanga=0,motorsedangb=60,motorsedangc=180;
float motorcepata=60,motorcepatb=180;
//variabel apredikat kiri
float akr1,akr2,akr3,akr4,akr5,akr6,akr7,akr8,akr9,akr10,akr11,akr12,akr13,akr14,akr15,akr16,akr17,akr18,akr19,akr20,akr21,akr22,akr23,akr24,akr25,akr26,akr27;
//variabel apredikat kanan
float akn1,akn2,akn3,akn4,akn5,akn6,akn7,akn8,akn9,akn10,akn11,akn12,akn13,akn14,akn15,akn16,akn17,akn18,akn19,akn20,akn21,akn22,akn23,akn24,akn25,akn26,akn27;
//variabel z motor kiri
float zkr1,zkr2,zkr3,zkr4,zkr5,zkr6,zkr7,zkr8,zkr9,zkr10,zkr11,zkr12,zkr13,zkr14,zkr15,zkr16,zkr17,zkr18,zkr19,zkr20,zkr21,zkr22,zkr23,zkr24,zkr25,zkr26,zkr27;
//variabel z motor kanan
float zkn1,zkn2,zkn3,zkn4,zkn5,zkn6,zkn7,zkn8,zkn9,zkn10,zkn11,zkn12,zkn13,zkn14,zkn15,zkn16,zkn17,zkn18,zkn19,zkn20,zkn21,zkn22,zkn23,zkn24,zkn25,zkn26,zkn27;
//variabel defuzzyfikasi
float hasilzkr,hasilzkn,hasiltotalkiri,hasiltotalkanan,hasilakr,hasilakn;
//variabel cari belok
int selisih=0,derajat=0,arahBelok=0;
//variabel Semua Himpunan
float newxNB ,newxNN ,newxNS,newxPS,newxPN,newxPB,newxSS,newxSN,newxSB,nSensorKiri,nSensorKanan,nSensorDepan;;
void defuzzyfikasi(){
//defuzzyfikasi tsukamoto
hasilakr=akr1+akr2+akr3+akr4+akr5+akr6+akr7+akr8+akr9+akr10+akr11+akr12+akr13+akr14+akr15+akr16+akr17+akr18+akr19+akr20+akr21+akr22+akr23+akr24+akr25+akr26+akr27;
hasilakn=akn1+akn2+akn3+akn4+akn5+akn6+akn7+akn8+akn9+akn10+akn11+akn12+akn13+akn14+akn15+akn16+akn17+akn18+akn19+akn20+akn21+akn22+akn23+akn24+akn25+akn26+akn27;
hasilzkr=(zkr1*akr1)+(zkr2*akr2)+(zkr3*akr3)+(zkr4*akr4)+(zkr5*akr5)+(zkr6*akr6)+(zkr7*akr7)+(zkr8*akr8)+(zkr9*akr9)+(zkr10*akr10)+(zkr11*akr11)+(zkr12*akr12)+(zkr13*akr13)+(zkr14*akr14)+(zkr15*akr15)+(zkr16*akr16)+(zkr17*akr17)+(zkr18*akr18)+(zkr19*akr19)+(zkr20*akr20)+(zkr21*akr21)+(zkr22*akr22)+(zkr23*akr23)+(zkr24*akr24)+(zkr25*akr25)+(zkr26*akr26)+(zkr27*akr27);
hasilzkn=(zkn1*akn1)+(zkn2*akn2)+(zkn3*akn3)+(zkn4*akn4)+(zkn5*akn5)+(zkn6*akn6)+(zkn7*akn7)+(zkn8*akn8)+(zkn9*akn9)+(zkn10*akn10)+(zkn11*akn11)+(zkn12*akn12)+(zkn13*akn13)+(zkn14*akn14)+(zkn15*akn15)+(zkn16*akn16)+(zkn17*akn17)+(zkn18*akn18)+(zkn19*akn19)+(zkn20*akn20)+(zkn21*akn21)+(zkn22*akn22)+(zkn23*akn23)+(zkn24*akn24)+(zkn25*akn25)+(zkn26*akn26)+(zkn27*akn27);
cout<<"A Predikat Kiri : "<<endl<<akr1<<endl<<akr2<<endl<<akr3<<endl<<akr4<<endl<<akr5<<endl<<akr6<<endl<<akr7<<endl<<akr8<<endl<<akr9<<endl<<akr10<<endl<<akr11<<endl<<akr12<<endl<<akr13<<endl<<akr14<<endl<<akr15<<endl<<akr16<<endl<<akr17<<endl<<akr18<<endl<<akr19<<endl<<akr20<<endl<<akr21<<endl<<akr22<<endl<<akr23<<endl<<akr24<<endl<<akr25<<endl<<akr26<<endl<<akr27<<endl;
cout<<"A Predikat Kanan : "<<endl<<akn1<<endl<<akn2<<endl<<akn3<<endl<<akn4<<endl<<akn5<<endl<<akn6<<endl<<akn7<<endl<<akn8<<endl<<akn9<<endl<<akn10<<endl<<akn11<<endl<<akn12<<endl<<akn13<<endl<<akn14<<endl<<akn15<<endl<<akn16<<endl<<akn17<<endl<<akn18<<endl<<akn19<<endl<<akn20<<endl<<akn21<<endl<<akn22<<endl<<akn23<<endl<<akn24<<endl<<akn25<<endl<<akn26<<endl<<akn27<<endl;
hasiltotalkanan = hasilzkn/hasilakn;
hasiltotalkiri = hasilzkr/hasilakr;
cout<<"\n>>>>DEFUZZYFIKASI<<<"<<endl;
cout<<"HASIL ZKR : "<<hasilzkr<<endl;
cout<<"HASIL AKR : "<<hasilakr<<endl;
cout<<"HASIL ZKN : "<<hasilzkn<<endl;
cout<<"HASIL AKN : "<<hasilakn<<endl<<endl;
cout<<"KECEPATAN MOTOR KIRI : "<<hasiltotalkiri<<endl;
cout<<"KECEPATAN MOTOR KANAN : "<<hasiltotalkanan<<endl;
cout<<endl;
}
//###############################PROSES FUZZYFIKASI####################################//
float himpunanNB(float x){
//himpunan nb
float newxNB;
if ((nba<=x) && (x<=nbb)){
newxNB=(nbb-x)/(nbb-nba);
}
else if(x>=nbb){
newxNB=0;
}
else if (x<=nba){
newxNB=1;
}
return newxNB;
}
float himpunanNN(float x){
float newxNN;
if (x<=nna){
newxNN=0;
}
else if ((nna<=x) && (x<=nnb)){
newxNN=(x-nna)/(nnb-nna);
}
else if ((nnb<=x) && (x<=nnc)){
newxNN=(nnc-x)/(nnc-nnb);
}
else if (x>=nnc){
newxNN=0;
}
return newxNN;
}
float himpunanNS(float x){
float newxNS;
if (x<=nsa){
newxNS=0;
}
else if ((nsa<=x) && (x<=nsb)){
newxNS=(x-nsa)/(nsb-nsa);
}
else if(x>=nsb){
newxNS=1;
}
return newxNS;
}
//##########################################################################################################//
float himpunanPS(float x){
float newxPS;
if (x<=psa){
newxPS=0;
}
else if ((psa<=x) && (x<=psb)){
newxPS=(x-psa)/(psb-psa);
}
else if(x>=psb){
newxPS=1;
}
return newxPS;
}
float himpunanPN(float x){
float newxPN;
if (x<pna){
newxPN=0.0;
}
else if ((pna<=x) && (x<pnb)){
newxPN=(x-pna)/(pnb-pna);
}
else if ((pnb<=x) && (x<=pnc)){
newxPN=(pnc-x)/(pnc-pnb);
}
else if (x>=pnc){
newxPN=0.0;
}
return newxPN;
}
float himpunanPB(float x){
float newxPB;
if ((pba<=x) && (x<=pbb)){
newxPB=(pbb-x)/(pbb-pba);
}
else if(x>=pbb){
newxPB=0;
}
else if (x<=pba){
newxPB=1;
}
return newxPB;
}
//###############################################################################################//
float himpunanSS(float x){
float newxSS;
if (x<=ssa){
newxSS=0;
}
else if ((ssa<=x) && (x<=ssb)){
newxSS=(x-ssa)/(ssb-ssa);
}
else if(x>=ssb){
newxSS=1;
}
return newxSS;
}
float himpunanSN(float x){
float newxSN;
if (x<sna){
newxSN=0.0;
}
else if ((sna<=x) && (x<snb)){
newxSN=(x-sna)/(snb-sna);
}
else if ((snb<=x) && (x<=snc)){
newxSN=(snc-x)/(snc-snb);
}
else if (x>=snc){
newxSN=0.0;
}
return newxSN;
}
float himpunanSB(float x){
float newxSB;
if ((sba<=x) && (x<=sbb)){
newxSB=(sbb-x)/(sbb-sba);
}
else if(x>=sbb){
newxSB=0;
}
else if (x<=sba){
newxSB=1;
}
return newxSB;
}
// Implikasi segitiga
float implikasiSegitiga(float x,float newx){
float value;
if((x>=39.9) && (x<=53.2)){
value=motorsedangc-((motorsedangc-motorsedangb)*newx);
}
else{
value=motorsedanga+((motorsedangb-motorsedanga)*newx);
}
return value;
}
//################################### FUZZYFIKASI SELESAI ###############################################//
//################################### FUNGSI MENCARI ARAH BELOK ###############################################//
void cariBelok(int x,int y){
if(x == y){
cout << "Jika Kecepatan Motor Kanan = "<<x<<" SAMA Kecepatan Motor Kiri = "<< y <<endl<<"Maka Arah Robot Lurus"<<endl<<"Dalam Busur Bernilai = 90 Derajat"<<endl;
}
else if(x > y)
{
selisih = x-y;
derajat=selisih/2;
if (x > y){
arahBelok = derajat + 90;
cout << "Jika Kecepatan Motor Kanan = "<<x<<" DAN Kecepatan Motor Kiri = "<< y <<endl<<"Maka Belok ke kanan sebesar Dalam Busur Bernilai = "<<arahBelok<<endl;
}
}
else if(y > x)
{
selisih = y-x;
derajat=selisih/2;
if (x < y){
arahBelok = 90 - derajat;
cout << "Jika Kecepatan Motor Kanan = "<<x<<" DAN Kecepatan Motor Kiri = " << y <<endl<<"Maka Belok ke kanan sebesar Dalam Busur Bernilai = "<<arahBelok<<endl;
}
}
}
void agregasiRule(){
//################################## RULE y=a+((b-a)*z) && y=a-((c-b)*z) #######################################//
if(newxNB && newxPS && newxSS){
akr1=min(newxNB,newxSS);
akn1=min(newxPS,newxSS);
zkr1=motorcepata+((motorcepatb-motorcepata)*akr1);
zkn1=motorcepata+((motorcepatb-motorcepata)*akn1);
cout<<"\nRule Yang Berlaku 1\nZKR1 : "<<zkr1<<endl<<"ZKN1 :"<<zkn1<<endl;
}
if(newxNB && newxPS && newxSN){
akr2=min(newxNB,newxSN);
akn2=min(newxPS,newxSN);
zkr2=motorcepata+((motorcepatb-motorcepata)*akr2);
zkn2=implikasiSegitiga(nSensorDepan,akn2);
cout<<"\nRule Yang Berlaku 2\nZKR2 : "<<zkr2<<endl<<"ZKN2 :"<<zkn2<<endl;
}
if(newxNB && newxPS && newxSB){
akr3=min(newxNB,newxSB);
akn3=min(newxPS,newxSB);
zkr3=motorcepata+((motorcepatb-motorcepata)*akr3);
zkn3=motorlambata+((motorlambatb-motorlambata)*akn3);
cout<<"\nRule Yang Berlaku 3\nZKR3 : "<<zkr3<<endl<<"ZKN3 :"<<zkn3<<endl;
}
if(newxNN && newxPS && newxSS){
akr4=min(newxNN,newxSS);
akn4=min(newxPS,newxSS);
zkr4=motorcepata+((motorcepatb-motorcepata)*akr4);
zkn4=motorcepata+((motorcepatb-motorcepata)*akn4);
cout<<"\nRule Yang Berlaku 4\nZKR4 : "<<zkr4<<endl<<"ZKN4 :"<<zkn4<<endl;
}
if(newxNN && newxPS && newxSN){
akr5=min(newxNN,newxSN);
akn5=min(newxPS,newxSN);
zkr5=motorcepata+((motorcepatb-motorcepata)*akr5);
zkn5=implikasiSegitiga(nSensorDepan,akn5);
cout<<"\nRule Yang Berlaku 5\nZKR5 : "<<zkr5<<endl<<"ZKN5 :"<<zkn5<<endl;
}
if(newxNN && newxPS && newxSB){
akr6=min(newxNN,newxSB);
akn6=min(newxPS,newxSB);
zkr6=motorcepata+((motorcepatb-motorcepata)*akr6);
zkn6=motorlambata+((motorlambatb-motorlambata)*akn6);
cout<<"\nRule Yang Berlaku 6\nZKR6 : "<<zkr6<<endl<<"ZKN6 :"<<zkn6<<endl;
}
if(newxNS && newxPS && newxSN){
zkr7=min(newxNS,newxSN);
akn7=min(newxPS,newxSN);
zkr7=motorcepata+((motorcepatb-motorcepata)*akr7);
zkn7=implikasiSegitiga(nSensorDepan,akn7);
cout<<"\nRule Yang Berlaku 7\nZKR7 : "<<zkr7<<endl<<"ZKN7 :"<<zkn7<<endl;
}
if(newxNS && newxPS && newxSB){
akr8=min(newxNS,newxSB);
akn8=min(newxPS,newxSB);
zkr8=motorcepata+((motorcepatb-motorcepata)*akr8);
zkn8=motorlambata+((motorlambatb-motorlambata)*akn8);
cout<<"\nRule Yang Berlaku 8\nZKR8 : "<<zkr8<<endl<<"ZKN8 :"<<zkn8<<endl;
}
if(newxNS && newxPB && newxSS){
akr9=min(newxNS,newxSS);
akn9=min(newxPB,newxSS);
zkr9=motorcepata+((motorcepatb-motorcepata)*akr9);
zkn9=motorcepata+((motorcepatb-motorcepata)*akn9);
cout<<"\nRule Yang Berlaku 9\nZKR9 : "<<zkr9<<endl<<"ZKN9 :"<<zkn9<<endl;
}
if(newxNS && newxPB && newxSN){
akr10=min(newxNS,newxSN);
akn10=min(newxPB,newxSN);
zkr10=implikasiSegitiga(nSensorDepan,akr10);
zkn10=motorcepata+((motorcepatb-motorcepata)*akn10);
cout<<"\nRule Yang Berlaku 10\nZKR10 : "<<zkr10<<endl<<"ZKN10 :"<<zkn10<<endl;
}
if(newxNS && newxPB && newxSB){
akr11=min(newxNS,newxSB);
akn11=min(newxPB,newxSB);
zkr11=motorlambata+((motorlambatb-motorlambata)*akr11);
zkn11=motorcepata+((motorcepatb-motorcepata)*akn11);
cout<<"\nRule Yang Berlaku 11\nZKR11 : "<<zkr11<<endl<<"ZKN11 :"<<zkn11<<endl;
}
if(newxNS && newxPN && newxSB){
akr12=min(newxNS,newxSB);
akn12=min(newxPN,newxSB);
zkr12=motorlambata+((motorlambatb-motorlambata)*akr12);
zkn12=motorcepata+((motorcepatb-motorcepata)*akn12);
cout<<"\nRule Yang Berlaku 12\nZKR12 : "<<zkr12<<endl<<"ZKN12 :"<<zkn12<<endl;
}
if(newxNS && newxPN && newxSN){
akr13=min(newxNS,newxSN);
akn13=min(newxPN,newxSN);
zkr13=implikasiSegitiga(nSensorDepan,akr13);
zkn13=motorcepata+((motorcepatb-motorcepata)*akn13);
cout<<"\nRule Yang Berlaku 13\nZKR13 : "<<zkr13<<endl<<"ZKN13 :"<<zkn13<<endl;
}
if(newxNS && newxPN && newxSS){
akr14=min(newxNS,newxSS);
akn14=min(newxPN,newxSS);
zkr14=motorlambata+((motorlambatb-motorlambata)*akr14);
zkn14=motorcepata+((motorcepatb-motorcepata)*akn14);
cout<<"\nRule Yang Berlaku 14\nZKR14 : "<<zkr14<<endl<<"ZKN14 :"<<zkn14<<endl;
}
if(newxNB && newxPN && newxSS){
akr15=min(newxNB,newxSS);
akn15=min(newxPN,newxSS);
zkr15=motorcepata+((motorcepatb-motorcepata)*akr15);
zkn15=motorcepata+((motorcepatb-motorcepata)*akn15);
cout<<"\nRule Yang Berlaku 15\nZKR15 : "<<zkr15<<endl<<"ZKN15 :"<<zkn15<<endl;
}
if(newxNB && newxPN && newxSN){
akr16=min(newxNB,newxSN);
akn16=min(newxPN,newxSN);
zkr16=motorcepata+((motorcepatb-motorcepata)*akr16);
zkn16=implikasiSegitiga(nSensorDepan,akn16);
cout<<"\nRule Yang Berlaku 16\nZKR16 : "<<zkr16<<endl<<"ZKN16 :"<<zkn16<<endl;
}
if(newxNB && newxPN && newxSB){
akr17=min(newxNB,newxSB);
akn17=min(newxPN,newxSB);
zkr17=motorcepata+((motorcepatb-motorcepata)*akr17);
zkn17=motorlambata+((motorlambatb-motorlambata)*akn17);
cout<<"\nRule Yang Berlaku 17\nZKR17 : "<<zkr17<<endl<<"ZKN17 :"<<zkn17<<endl;
}
if(newxNN && newxPN && newxSS){
akr18=min(newxNN,newxSS);
akn18=min(newxPN,newxSS);
zkr18=motorcepata+((motorcepatb-motorcepata)*akr18);
zkn18=motorcepata+((motorcepatb-motorcepata)*akn18);
cout<<"\nRule Yang Berlaku 18\nZKR18 : "<<zkr18<<endl<<"ZKN18 :"<<zkn18<<endl;
}
if(newxNN && newxPN && newxSB){
akr19=min(newxNN,newxSB);
akn19=min(newxPN,newxSB);
zkr19=motorcepata+((motorcepatb-motorcepata)*akr19);
zkn19=motorlambata+((motorlambatb-motorlambata)*akn19);
cout<<"\nRule Yang Berlaku 19\nZKR19 : "<<zkr19<<endl<<"ZKN19 :"<<zkn19<<endl;
}
if(newxNB && newxPB && newxSS){
akr20=min(newxNB,newxSS);
akn20=min(newxPB,newxSS);
zkr20=motorcepata+((motorcepatb-motorcepata)*akr20);
zkn20=motorcepata+((motorcepatb-motorcepata)*akn20);
cout<<"\nRule Yang Berlaku 20\nZKR20 : "<<zkr20<<endl<<"ZKN20 :"<<zkn20<<endl;
}
if(newxNB && newxPB && newxSN){
akr21=min(newxNB,newxSN);
akn21=min(newxPB,newxSN);
zkr21=motorcepata+((motorcepatb-motorcepata)*akr21);
zkn21=implikasiSegitiga(nSensorDepan,akn21);
cout<<"\nRule Yang Berlaku 21\nZKR21 : "<<zkr21<<endl<<"ZKN21 :"<<zkn21<<endl;
}
if(newxNN && newxPB && newxSS){
akr22=min(newxNN,newxSS);
akn22=min(newxPB,newxSS);
zkr22=motorcepata+((motorcepatb-motorcepata)*akr22);
zkn22=motorcepata+((motorcepatb-motorcepata)*akn22);
cout<<"\nRule Yang Berlaku 22\nZKR22 : "<<zkr22<<endl<<"ZKN22 :"<<zkn22<<endl;
}
if(newxNN && newxPB && newxSN){
akr23=min(newxNN,newxSN);
akn23=min(newxPB,newxSN);
zkr23=implikasiSegitiga(nSensorDepan,akr23);
zkn23=motorcepata+((motorcepatb-motorcepata)*akn23);
cout<<"\nRule Yang Berlaku 23\nZKR23 : "<<zkr23<<endl<<"ZKN23 :"<<zkn23<<endl;
}
if(newxNN && newxPB && newxSB){
akr24=min(newxNN,newxSB);
akn24=min(newxPB,newxSB);
zkr24=motorlambata+((motorlambatb-motorlambata)*akr24);
zkn24=motorcepata+((motorcepatb-motorcepata)*akn24);
cout<<"\nRule Yang Berlaku 24\nZKR24 : "<<zkr24<<endl<<"ZKN24 :"<<zkn24<<endl;
}
if(newxNS && newxPS && newxSS){
akr25=min(newxNS,newxSS);
akn25=min(newxPS,newxSS);
zkr25=motorcepata+((motorcepatb-motorcepata)*akr25);
zkn25=motorcepata+((motorcepatb-motorcepata)*akn25);
cout<<"\nRule Yang Berlaku 25\nZKR25 : "<<zkr25<<endl<<"ZKN25 :"<<zkn25<<endl;
}
if(newxNN && newxPN && newxSN){
akr26=min(newxNN,newxSN);
akn26=min(newxPN,newxSN);
zkr26=motorcepata+((motorcepatb-motorcepata)*akr26);
zkn26=motorcepata+((motorcepatb-motorcepata)*akn26);
cout<<"\nRule Yang Berlaku 26\nZKR26 : "<<zkr26<<endl<<"ZKN26 :"<<zkn26<<endl;
}
if(newxNB && newxPB && newxSB){
akr27=min(newxNB,newxSB);
akn27=min(newxPB,newxSB);
zkr27=motorcepata+((motorcepatb-motorcepata)*akr27);
zkn27=motorcepata+((motorcepatb-motorcepata)*akn27);
cout<<"\nRule Yang Berlaku 27\nZKR27 : "<<zkr27<<endl<<"ZKN27 :"<<zkn27<<endl;
cout<<"Berhubung Sangat Dekat \nMaka Balik Direksi Arah Motor Menjadi Mundur"<<endl;
}
//################################# RULE Selesai ######################################//
}
int main (){
cout<<endl<<">>>> SIMULASI PENGENDALIAN MOTOR DENGAN LOGIKA FUZZY METODE TSUKAMOTO <<<<"<<endl<<endl;
do
{
cout<<"Masukan Nilai Sensor Kiri : ";cin>>nSensorKiri;
cout<<"Masukan Nilai Sensor Kanan : ";cin>>nSensorKanan;
cout<<"Masukan Nilai Sensor Depan : ";cin>>nSensorDepan;
//himpunan NB
newxNB = himpunanNB(nSensorKiri);
//himpunan NN
newxNN = himpunanNN(nSensorKiri);
//himpunan NS
newxNS = himpunanNS(nSensorKiri);
//himpunan PS
newxPS = himpunanPS(nSensorKanan);
//himpunan PN
newxPN = himpunanPN(nSensorKanan);
//himpunan PB
float newxPB = himpunanPB(nSensorKanan);
//himpunan SS
newxSS = himpunanSS(nSensorDepan);
//himpunan SN
newxSN = himpunanSN(nSensorDepan);
//himpunan SB
newxSB = himpunanSB(nSensorDepan);
cout<<"\nPROSES FUZZYFIKASI MASING-MASING INPUTAN \n\n";
cout<<"SENSOR KIRI \n";
cout<<"Nilai Himpunan NS : "<<newxNS<<endl;
cout<<"Nilai Himpunan NN : "<<newxNN<<endl;
cout<<"Nilai Himpunan NB : "<<newxNB<<endl;
cout<<"SENSOR KANAN \n";
cout<<"Nilai Himpunan PS : "<<newxPS<<endl;
cout<<"Nilai Himpunan PN : "<<newxPN<<endl;
cout<<"Nilai Himpunan PB : "<<newxPB<<endl;
cout<<"SENSOR DEPAN \n";
cout<<"Nilai Himpunan SS : "<<newxSS<<endl;
cout<<"Nilai Himpunan SN : "<<newxSN<<endl;
cout<<"Nilai Himpunan SB : "<<newxSB<<endl;
agregasiRule();
defuzzyfikasi();
cariBelok(hasiltotalkanan,hasiltotalkiri);
cout<<endl;
}
while(true);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment