模糊控制规则
上文只介绍了误差这一个输入量,我们可以用相同的方法对误差的变化率这
一输入量进行模糊化。
模糊控制规则主要有两种,Mamdini和T-S型模糊控制器
这里只介绍Mamdini型模糊控制器
Mamdini型模糊控制器就是一堆
“如果 x是U1 y是U2 那么 z是W1”
的语句组成
先上图
设误差为E,误差的变化率为EC,
而输出量我们也用上文的方法将他划分出六个区域,并规定出它的模糊论域(NB,NM,NS,Z0,PS,PM,PB)
例如我们规定输出也是介于 (- 90 , + 90) 之间的
那么同样我们可以规定出下面这样的模糊论域来
NB | NM | NS | Z0 | PS | PM | PB |
---|---|---|---|---|---|---|
-90 | -60 | -30 | 0 | 30 | 60 | 90 |
图中横列是E的模糊论域,纵列是EC的模糊论域
例如根据图和规则 “如果 x是U1 y是U2 那么 z是W1” 我们可以看到
如果EC是NB E是NM 那么W(图中是▲KD)是NS
图中的对应规则是根据专家建议或者经验得出的,
例如在PID中一般的经验是
当偏差较大时,一般选用较大的KP和较小的KD加快响应,而KD为0来避免积分饱和
当偏差很小时,为了消除稳态误差,克服超调,KI的值要稍稍增大,而KD取正值
根据在PID控制中的经验来手动整定
便会得到关于KP,KI,KD三个参数的模糊规则
解模糊化
我们可以通过模糊化和模糊对应规则
对应出模糊量
但是对于PID控制器来说
需要精确量来对PID的参数进行整定
所以我们要通过解模糊化来确定模糊控制器的精确输出量
方法:
在实际中,我们的每个输入值介于两个论域之间
所以在会在对应规则表格出现一个四格子矩阵
以下面的表格为例子
NM | NS | |
---|---|---|
PS | Z0 | Z0 |
PM | NS | PS |
这是上图模糊规则中的一部分
假设EC介于PS和PM之间 E介于NM和NS之间
EC对于PS的隶属度为 a 对于PM的隶属度为 1 - a
E 对于NM的隶属度为 b 对于NS的隶属度为 1 - b
我们先用比较容易理解的解模糊化的方式来对输出量进行解模糊化
最大隶属度解模糊法
输出量 =
Z0 * a* b + Z0 * a* (1 - b) + NS* (1 - a)*b
+PS *(1 - a) *(1 - b)
解模糊化到这已经完成了
除了最大隶属度法
还有面积平分法,面积中心法,加权平均法等方法可以使用
至此,模糊化控制的全过程已经完成
在模糊PID中,我们一般用KP , KI , KD三个参数的增量作为模糊控制的输出值,
下面是根据经验对于三个参数的模糊规则
KP
KI
KD
下文将介绍如何在STM32上实现模糊PID