132

Dependencies:   DMSupport DMemWin

Fork of Motor_Embedded_3rd_emwin by Wei Chang Shen

Revision:
3:1823bfc913c1
Parent:
2:bfc676294e38
--- a/embedded/MATH1.cpp	Wed Jan 18 11:19:53 2017 +0000
+++ b/embedded/MATH1.cpp	Wed Jul 12 08:20:05 2017 +0000
@@ -601,12 +601,12 @@
    emax=emax/(bmax+emax);bmax=1-emax;*bearing=f1max*g2max*bmax*100;*eccentric=f1max*g2max*emax*100;
    }
 }   
-void MATH::Fuzzy_Condition(double VUR,double IUR,double VUF,double IUF,double THDV,double VDFodd,double THDI,double IDFodd,double VD,double CD,double Vel,double Dis,double *pCMS)
+void MATH::Fuzzy_Condition(double VUR,double IUR,double VUF,double IUF,double VD,double CD,double Vel,double Dis,double *pCMS)
 {
-  double g1[2],g2[2],g3[2],g4[2],g5[2],g6[2],g7[2],g8[2],g9[2],c1[9]={0},c2[9]={0},p[2];
-  int flag1,flag2,flag3,flag4,flag5,flag6,flag7,flag8,flag9,i;
-  if(VUR>=5||IUR>=10||THDV>=5||VDFodd>=3||THDI>=5||IDFodd>=4||VD>=10||CD>=10||Vel>=4.5||VUF>=1||IUF>=2.5||Dis>=90){*pCMS=1;}
-  else if(VUR<=1&&IUR<=2&&THDV<=1.5&&VDFodd<=1.5&&THDI<=2.5&&IDFodd<=2&&VD<=2.5&&CD==0&&Vel<=0.7){*pCMS=0;}
+  double g1[2],g2[2],g3[2],g4[2],g5[2],c1[9]={0},c2[9]={0},p[2];
+  int flag1,flag2,flag3,flag4,flag5,i;
+  if(VUR>=5||IUR>=10||VD>=10||CD>=10||Vel>=4.5||VUF>=1||IUF>=2.5||Dis>=90){*pCMS=1;}
+  else if(VUR<=1&&IUR<=2&&VD<=2.5&&CD==0&&Vel<=0.7){*pCMS=0;}
   else{
         if(VUR<=2){g1[1]=VUR-1.0;if(g1[1]<0){g1[1]=0;}g1[0]=1-g1[1];flag1=1;}
         if(VUR>2&&VUR<=3.5){g1[1]=VUR*2.0/3.0-4.0/3.0;g1[0]=1-g1[1];flag1=2;}
@@ -614,57 +614,37 @@
         if(IUR<=4){g2[1]=IUR*0.5-1;if(g2[1]<0){g2[1]=0;}g2[0]=1-g2[1];flag2=1;}
         if(IUR>4&&IUR<=6){g2[1]=IUR*0.5-2.0;g2[0]=1-g2[1];flag2=2;}
         if(IUR>6&&IUR<10){g2[1]=IUR*0.25-3.0*2.0;g2[0]=1-g2[1];flag2=3;}
-        if(THDV<=2){g3[1]=THDV*2-3;if(g3[1]<0){g3[1]=0;}g3[0]=1-g3[1];flag3=1;}
-        if(THDV>2&&THDV<=3.5){g3[1]=THDV*2.0/3.0-4.0/3.0;g3[0]=1-g3[1];flag3=2;}
-        if(THDV>3.5&&THDV<5){g3[1]=THDV*2.0/3.0-7.0/3.0;g3[0]=1-g3[1];flag3=3;}
-        if(VDFodd<=2){g3[1]=VDFodd*2.0-3.0;if(g4[1]<0){g4[1]=0;}g4[0]=1-g4[1];flag4=1;}
-        if(VDFodd>2&&VDFodd<=2.5){g4[1]=VDFodd*2.0-4.0;g4[0]=1-g4[1];flag4=2;}
-        if(VDFodd>2.5&&VDFodd<3){g4[1]=VDFodd*2.0-5.0;g4[0]=1-g4[1];flag4=3;}
-        if(THDI<=3){g5[1]=THDI*2.0-5.0;if(g5[1]<0){g5[1]=0;}g5[0]=1-g5[1];flag5=1;}
-        if(THDI>3&&THDI<=4){g5[1]=THDI-3.0;g5[0]=1-g5[1];flag5=2;}
-        if(THDI>4&&THDI<5){g5[1]=THDI-4.0;g5[0]=1-g5[1];flag5=3;}
-        if(IDFodd<=2.5){g6[1]=IDFodd*2.0-4.0;if(g6[1]<0){g6[1]=0;}g6[0]=1-g6[1];flag6=1;}
-        if(IDFodd>2.5&&IDFodd<=3){g6[1]=IDFodd*2.0-5.0;g6[0]=1-g6[1];flag6=2;}
-        if(IDFodd>3&&IDFodd<4){g6[1]=IDFodd-3.0;g6[0]=1-g6[1];flag6=3;}
-        if(VD<=3){g7[1]=VD*2.0-5.0;if(g7[1]<0){g7[1]=0;}g7[0]=1-g7[1];flag7=1;}
-        if(VD>3&&VD<=5){g7[1]=VD*0.5-3.0/2.0;g7[0]=1-g7[1];flag7=2;}
-        if(VD>5&&VD<10){g7[1]=VD*0.2-1.0;g7[0]=1-g7[1];flag7=3;}
-        if(CD<=2){g8[1]=CD*0.5;if(g8[1]<0){g8[1]=0;}g8[0]=1-g8[1];flag8=1;}
-        if(CD>2&&CD<=5){g8[1]=CD*1.0/3.0-2.0/3.0;g8[0]=1-g8[1];flag8=2;}
-        if(CD>5&&CD<10){g8[1]=CD*0.2-1.0;g8[0]=1-g8[1];flag8=3;}
-        if(Vel<=0.7){g9[1]=Vel*10.0/7.0;if(g9[1]<0){g9[1]=0;}g9[0]=1-g9[1];flag9=1;}
-        if(Vel>0.7&&Vel<=1.8){g9[1]=Vel*10.0/11.0-7.0/11.0;g9[0]=1-g9[1];flag9=2;}
-        if(Vel>1.8&&Vel<4.5){g9[1]=Vel*10.0/27.0-2.0/3.0;g9[0]=1-g9[1];flag9=3;}
-        if(flag1==3||flag2==3||flag3==3||flag4==3||flag5==3||flag6==3||flag7==3||flag8==3||flag9==3){
+        if(VD<=3){g3[1]=VD*2.0-5.0;if(g3[1]<0){g3[1]=0;}g3[0]=1-g3[1];flag3=1;}
+        if(VD>3&&VD<=5){g3[1]=VD*0.5-3.0/2.0;g3[0]=1-g3[1];flag3=2;}
+        if(VD>5&&VD<10){g3[1]=VD*0.2-1.0;g3[0]=1-g3[1];flag3=3;}
+        if(CD<=2){g4[1]=CD*0.5;if(g4[1]<0){g4[1]=0;}g4[0]=1-g4[1];flag4=1;}
+        if(CD>2&&CD<=5){g4[1]=CD*1.0/3.0-2.0/3.0;g4[0]=1-g4[1];flag4=2;}
+        if(CD>5&&CD<10){g4[1]=CD*0.2-1.0;g4[0]=1-g4[1];flag4=3;}
+        if(Vel<=0.7){g5[1]=Vel*10.0/7.0;if(g5[1]<0){g5[1]=0;}g5[0]=1-g5[1];flag5=1;}
+        if(Vel>0.7&&Vel<=1.8){g5[1]=Vel*10.0/11.0-7.0/11.0;g5[0]=1-g5[1];flag5=2;}
+        if(Vel>1.8&&Vel<4.5){g5[1]=Vel*10.0/27.0-2.0/3.0;g5[0]=1-g5[1];flag5=3;}
+        if(flag1==3||flag2==3||flag3==3||flag4==3||flag5==3){
             if(flag1==3){c1[0]=g1[0];c2[0]=g1[1];}
             if(flag2==3){c1[1]=g2[0];c2[1]=g2[1];}
             if(flag3==3){c1[2]=g3[0];c2[2]=g3[1];}
             if(flag4==3){c1[3]=g4[0];c2[3]=g4[1];}
             if(flag5==3){c1[4]=g5[0];c2[4]=g5[1];}
-            if(flag6==3){c1[5]=g6[0];c2[5]=g6[1];}
-            if(flag7==3){c1[6]=g7[0];c2[6]=g7[1];}
-            if(flag8==3){c1[7]=g8[0];c2[7]=g8[1];}
-            if(flag9==3){c1[8]=g9[0];c2[8]=g9[1];}
             p[0]=c1[0];p[1]=c2[0];
-            for(i=1;i<9;i++){
-                if(p[0]<c1[i]){p[0]=c1[i];}
+            for(i=1;i<5;i++){
+                if(p[0]>c1[i]){p[0]=c1[i];}
                 if(p[1]<c2[i]){p[1]=c2[i];}                
             }
             *pCMS=(p[0]*0.6667+p[1])/(p[0]+p[1]);
         }
-        else if(flag1==2||flag2==2||flag3==2||flag4==2||flag5==2||flag6==2||flag7==2||flag8==2||flag9==2){
+        else if(flag1==2||flag2==2||flag3==2||flag4==2||flag5==2){
              if(flag1==2){c1[0]=g1[0];c2[0]=g1[1];}
              if(flag2==2){c1[1]=g2[0];c2[1]=g2[1];}
              if(flag3==2){c1[2]=g3[0];c2[2]=g3[1];}
              if(flag4==2){c1[3]=g4[0];c2[3]=g4[1];}
              if(flag5==2){c1[4]=g5[0];c2[4]=g5[1];}
-             if(flag6==2){c1[5]=g6[0];c2[5]=g6[1];}
-             if(flag7==2){c1[6]=g7[0];c2[6]=g7[1];}
-             if(flag8==2){c1[7]=g8[0];c2[7]=g8[1];}
-             if(flag9==2){c1[8]=g9[0];c2[8]=g9[1];}
              p[0]=c1[0];p[1]=c2[0];
-             for(i=1;i<9;i++){
-                if(p[0]<c1[i]){p[0]=c1[i];}
+             for(i=1;i<5;i++){
+                if(p[0]>c1[i]){p[0]=c1[i];}
                 if(p[1]<c2[i]){p[1]=c2[i];}                
              }
              *pCMS=(p[0]*0.3333+p[1]*0.6667)/(p[0]+p[1]);
@@ -675,16 +655,12 @@
              if(flag3==1){c1[2]=g3[0];c2[2]=g3[1];}
              if(flag4==1){c1[3]=g4[0];c2[3]=g4[1];}
              if(flag5==1){c1[4]=g5[0];c2[4]=g5[1];}
-             if(flag6==1){c1[5]=g6[0];c2[5]=g6[1];}
-             if(flag7==1){c1[6]=g7[0];c2[6]=g7[1];}
-             if(flag8==1){c1[7]=g8[0];c2[7]=g8[1];}
-             if(flag9==1){c1[8]=g9[0];c2[8]=g9[1];}
              p[0]=c1[0];p[1]=c2[0];
-             for(i=1;i<9;i++){
-                if(p[0]<c1[i]){p[0]=c1[i];}
+             for(i=1;i<5;i++){
+                if(p[0]>c1[i]){p[0]=c1[i];}
                 if(p[1]<c2[i]){p[1]=c2[i];}                
              }
              *pCMS=(p[1]*0.3333)/(p[0]+p[1]);
         }
-  }                  
+  }        
 }
\ No newline at end of file