function [kp] = Fuzzy_KP(e,ec)
num=0;
eRule=[-8,-5,-2,0,2,5,8];
ecRule=[-8,-5,-2,0,2,5,8];
eFuzzy=[0.0,0.0];
ecFuzzy=[0.0,0.0];
kpRule=[50,100,300,500];
KpFuzzy=[0.0,0.0,0.0,0.0];
KpRule=[3,3,3,3,3,3,3;
2,2,2,2,1,2,2;
1,1,1,1,1,1,1;
1,1,0,1,0,1,1;
0,0,1,0,0,1,0;
0,1,0,1,0,0,2;
3,3,3,3,3,3,3];
if ( e<eRule(1))
eFuzzy(1)=1.0;
pe=1;
elseif (eRule(1)<=e&&e<eRule(2))
eFuzzy(1)=(e-eRule(1))/(eRule(2)-eRule(1));
pe=1;
elseif(eRule(2)<=e&&e<eRule(3))
eFuzzy(1)=(e-eRule(2))/(eRule(3)-eRule(2));
pe=2;
elseif(eRule(3)<=e&&e<eRule(4))
eFuzzy(1)=(e-eRule(3))/(eRule(4)-eRule(3));
pe=3;
elseif(eRule(4)<=e&&e<eRule(5))
eFuzzy(1)=(e-eRule(4))/(eRule(5)-eRule(4));
pe=4;
elseif(eRule(5)<=e&&e<eRule(6))
eFuzzy(1)=(e-eRule(5))/(eRule(6)-eRule(5));
pe=5;
elseif(eRule(6)<=e&&e<eRule(7))
eFuzzy(1)=(e-eRule(6))/(eRule(7)-eRule(6));
pe=6;
else
eFuzzy(1)=0.0;
pe=6;
end
eFuzzy(2)=1-eFuzzy(1);
if (ec<ecRule(1))
ecFuzzy(1)=1.0;
pec=1;
elseif (ecRule(1)<=ec&&ec<ecRule(2))
ecFuzzy(1)=(ec-ecRule(1))/(ecRule(2)-ecRule(1));
pec=1;
elseif (ecRule(2)<=ec&&ec<ecRule(3))
ecFuzzy(1)=(ec-ecRule(1))/(ecRule(2)-ecRule(1));
pec=2;
elseif (ecRule(3)<=ec&&ec<ecRule(4))
ecFuzzy(1)=(ec-ecRule(3))/(ecRule(4)-ecRule(3));
pec=3;
elseif (ecRule(4)<=ec&&ec<ecRule(5))
ecFuzzy(1)=(ec-ecRule(4))/(ecRule(5)-ecRule(4));
pec=4;
elseif (ecRule(5)<=ec&&ec<ecRule(6))
ecFuzzy(1)=(ec-ecRule(5))/(ecRule(6)-ecRule(5));
pec=5;
elseif (ecRule(6)<=ec&&ec<ecRule(7))
ecFuzzy(1)=(ec-ecRule(6))/(ecRule(7)-ecRule(6));
pec=6;
else
ecFuzzy(1)=0;
pec=6;
end
ecFuzzy(2)=1.0-ecFuzzy(1);
num=KpRule(pe,pec)+1;
KpFuzzy(num)=KpFuzzy(num)+eFuzzy(1)*ecFuzzy(1);
num=KpRule(pe,pec+1)+1;
KpFuzzy(num)=KpFuzzy(num)+eFuzzy(1)*ecFuzzy(2);
num=KpRule(pe+1,pec)+1;
KpFuzzy(num)=KpFuzzy(num)+eFuzzy(2)*ecFuzzy(1);
num=KpRule(pe+1,pec+1)+1;
KpFuzzy(num)=KpFuzzy(num)+eFuzzy(2)*ecFuzzy(2);
kp=KpFuzzy(1)*kpRule(1)+KpFuzzy(2)*kpRule(2)+KpFuzzy(3)*kpRule(3)+KpFuzzy(4)*kpRule(4);
end