本帖最后由 dereck1314 于 2017-5-16 08:18 编辑
向九洲 发表于 2017-5-12 11:59
老哥,貌似没有模糊推理(只有模糊规则库和隶属度一些知识,模糊推理是把模糊规则库和隶属度一些知识及现有的一些知识作为输入,模糊控制量作为输出,然后在解模糊化)。你去看看T-S模糊推理,一定要去看。
我看了网上的T_S模糊推理,把程序改成了如下,第一步我们得到E和EC的隶属度数组:
{
0, 0, 0, 0, 0, 0, 0,
0, 0.08 ,0.16 ,0.08, 0, 0, 0
0, 0.28 ,0.56 ,0.28 ,0, 0, 0
0, 0.36, 0.72, 0.36, 0, 0, 0
0, 0.2 , 0.4, 0.2 , 0, 0, 0
}
然后结合Kp,Ki,Kd的模糊规则表
//Kp的模糊规则表
char code KP[7][7]=
{
3,3,2,2,1,0,0,
3,3,2,1,1,0,-1,
2,2,2,1,0,-1,-1,
2,2,1,0,-1,-2,-2,
1,1,0,-1,-1,-2,-2,
1,0,-1,-2,-2,-2,-3,
0,0,-2,-2,-3,-3,-3,
};
//Ki的模糊规则表
char code KI[7][7]=
{
-3,-3,-2,-2,-1,0,0,
-3,-3,-2,-1,-1,0,0,
-3,-2,-1,-1,0,1,1,
-2,-2,-1,0,1,2,2,
-2,-1,0,1,1,2,3,
0,0,1,1,2,3,3,
0,0,1,2,2,3,3,
};
//kd的模糊规则表
char code KD[7][7]=
{
1,-1,-3,-3,-3,-2,1,
1,-1,-3,-2,-2,-1,0,
0,-1,-2,-2,-1,-1,0,
0,-1,-1,-1,-1,-1,0,
0,0,0,0,0,0,0,
3,-1,1,1,1,1,3,
3,2,2,2,1,1,3,
};
随后求detKp = 隶属度表和Kp模糊规则表一一对应的乘机之和(KP [j]*隶属度表[j])/隶属度表所有隶属度的和
同理求出detKi,detKd
以上方法应该是重心法吧
|
|
2017-5-15 17:02:50
评论
举报
|
|
|