欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

如何快速理解模糊 PID - (II)

最编程 2024-07-09 09:09:18
...

模糊控制规则

上文只介绍了误差这一个输入量,我们可以用相同的方法对误差的变化率这

一输入量进行模糊化。

模糊控制规则主要有两种,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

推荐阅读