📄 main.c
字号:
//e的论域为[-13,13];ec论域为[-3,3];输出U的论域为[-20,20];
#include <hidef.h> /* common defines and macros */
#include <MC9S12XS128.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12xs128"
char DFC_tbl[6][6]={ //Fuzzy control inqury form
/* -6 -5 -4 -3 -2 -1 0 +1 +2 +3 +4 +5 +6 */
/*-6*/ 6, 5, 6, 5, 6, 6, 4, 4, 3, 2, 1, 1, 0,
/*-5*/ 6, 5, 5, 5, 5, 5, 5, 4, 3, 3, 2, 1, 0,
/*-4*/ 6, 5, 6, 5, 6, 5, 5, 4, 4, 2, 1, 0, 0,
/*-3*/ 5, 5, 5, 5, 5, 5, 4, 4, 3, 3, 1, 0, -1,
/*-2*/ 5, 4, 4, 3, 3, 3, 2, 0, 0, -2, -2, -3, -3,
/*-1*/ 4, 4, 4, 4, 3, 3, 0, 0, -2, -3, -3, -4, -4,
/* 0*/ 4, 4, 3, 3, 3, 0, 0, 0, -1, -3, -3, -3, -5,
/*+1*/ 3, 3, 3, 1, 0, 0, 0, -3, -3, -4, -4, -5, -5,
/*+2*/ 3, 2, 2, 2, 0, 0, -2, -3, -3, -3, -4, -5, -5,
/*+3*/ 2, 1, 0, 0, -1, -3, -3, -4, -4, -4, -5, -5, -5,
/*+4*/ 0, 0, 0, -2, -3, -3, -4, -4, -5, -5, -5, -6, -6,
/*+5*/ 0, 0, -1, -3, -3, -3, -5, -5, -5, -5, -5, -6, -6,
/*+6*/ 0, 0, -2, -3, -3, -4, -4, -5, -5, -6, -6, -6, -6
};
int e,ec,u;
float Ke=2.17,Kec=0.5,Ku=3.33;
int Get_FuzzyValue(int e,int ec) {
e=e/Ke;ec=ec/Kec;
if(e>13) e=13;
if(e<-13) e=-13;
if(ec>3) e=3;
if(ec<-3) e=-3;
u=DFC_tbl[e][ec];
u=u*Ku;
}
void main(void) {
/* put your own code here */
EnableInterrupts;
for(;;) {} /* wait forever */
/* please make sure that you never leave this function */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -