• 大小: 2KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: C/C++
  • 标签: 模糊控制  自适应  

资源简介

适合所有二维模糊控制的C语言程序设计,尤其是PID控制

资源截图

代码片段和文件信息

 /*-----误差隶属函数描述-----*/
 //--如果输入值超出 模糊等级{NB NM NS ZE PS PM PB} 图形范围则隶属度为零.
//计算模糊输入的隶属度

/*模糊算法*/
/*==================================================================================================== 
kp计算部分 
=====================================================================================================*/ 
float fuzzyCtrlfkp(float fe float fec)
{
float xdata eRule[4]  = {-3.0   -1.0   0.0   1.0};//误差隶属度函数5个中心值
float xdata ecRule[4] = {-3.0   -1.0  0.0   1.0};//误差变化隶属度函数5个中心值
float xdata U1Rule[5] = {-3.0   -1.0  0.0   1.0   3.0};//输出隶属函数5个中心值


float xdata eFuzzy[2]  ={0.0 0.0};
float xdata ecFuzzy[2] ={0.0 0.0};
float xdata U1Fuzzy[5] ={0.0 0.0 0.0  0.0   0.0};

int xdata rule[4][4]={{0323}{2323}{3323}{2212}};/*控制规则表*/
int xdata numpepec;
float kp;


   /*-----误差隶属函数描述-----*/
if(fe {
eFuzzy[0] =1.0; 
pe= 0;
}
else if(fe {
eFuzzy[0] = (eRule[1]-fe)/(eRule[1]-eRule[0]);
pe = 0;
}
else if(fe {
eFuzzy[0] = (eRule[2] -fe)/(eRule[2]-eRule[1]);
pe =1;
}
else if(fe {
eFuzzy[0] = (eRule[3] -fe)/(eRule[3]-eRule[2]);
pe =2

评论

共有 条评论