模糊PID控制器MATLAB仿真探讨,基于Matlab的模糊自整定PID控制器仿真研究
1. 引言
传统的PID控制因其算法可靠简单,鲁棒优良,可靠度高,在工业过程中得到了广泛的应用,特别适用于建立一个精确的数学模型确定控制系统的确定性控制。李文宇等对PID控制进行了研究,并取得了一定的应用 [1] - [7],但在非线性、时变、耦合和参数及结构不确定系统中,传统的PID控制器参数整定比较困难,结果会使得系统性能变差,导致工况适应性不好。另外针对复杂的控制过程,传统PID控制器制效果更差,特别是参数调节无法达到理想效果。基于这一点,为了拓展PID控制器适应范围,特别是复杂工况和控制高要求情况,参数自动整定对PID控制器尤为关键。随着时代的进步,数字智能控制器已经出现,开始应用实际生产中,参数自动整定可以智能实现,文献 [8] - [13] 将PID控制和模糊控制相结合进行研究,并在某些领域取得了不错的效果。本文结合了模糊控制与PID控制,运用模糊推理方法,在线实现对PID参数自整定,调整最佳PID参数,设计了参数模糊的自整定PID控制器,并举例使用MATLAB对系统进行仿真。
在PID控制器参数模糊自整定系统中,把偏差
e
f 和偏差变化率
e
˙
f 作为输入,通过模糊推理的方法,可以实现PID参数
e
f 和
e
˙
f 不同时刻自整定需求。便构PID控制器参数自整定,参数模糊自整定如图1所示。
Figure 1. Fuzzy self-tuning PID controller structure
图1. 模糊自整定PID控制器结构
模拟PID控制器是线性控制器,是连续的,表达式如式(1)及式(2)所示。
e
f
(
t
)
=
r
i
n
(
t
)
−
o
u
t
(
t
) (1)
u
(
t
)
=
k
p
e
f
(
t
)
+
1
T
i
∫
0
t
e
f
(
t
)
d
t
+
T
d
d
e
f
(
t
)
d
t (2)
式中,
k
p ——比例系数;
T
i ——微积常数;
T
d ——微分常数;
r
i
n
(
t
) 为输入信号;
o
u
t
(
t
) 为输出信号;
u
(
t
) 为控制器输出。
数字PID控制器有位置式及增量式,表达式如式(3)及式(4)所示。
u
(
k
)
=
k
p
e
f
(
k
)
+
k
i
∑
j
=
0
k
e
f
(
j
)
T
+
k
d
e
f
(
k
)
−
e
f
(
k
−
1
)
T (3)
Δ
u
(
k
)
=
k
p
(
e
(
k
)
−
e
f
(
k
−
1
)
)
+
k
i
e
f
(
k
)
+
k
d
(
e
f
(
k
)
−
2
e
f
(
k
−
1
)
+
e
f
(
k
−
2
)
) (4)
式中,
k
i
=
k
p
/
T
i,
k
d
=
k
p
/
T
d,T为采样周期,k为采样序号;
u
(
k
) 为第k次采用时刻的计算机输出值。
PID控制器的参数
k
p,
k
i,
k
d 调整,是利用模糊规则找到其与输入误差
e
f 和误差变化率
e
˙
f 之间关系,在系统运行时通过一个持续的模糊检测
e
f 和
e
˙
f,根据模糊控制处理原则对3个控制参数分别进行在线的模糊修改,以便达到系统动态、静态性能要求。
2. 糊控制器的设计
2.1. 语言变量隶属度函数的确定
模糊PID控制是通过计算机采样被控对象的精确值,并与给定值比较,得到误差
e
f,并误差变化率
e
˙
f 一起作为模糊控制器的输入量。再经过根据模糊推理得到ID参数
k
p,
k
i,
k
d,这样可以使不同时刻的
e
f 和
e
˙
f 对PID参数自整定要求得到满足。其中
k
′
p,
k
′
i,
k
′
d 为预整定值。
k
p
=
k
′
p
+
Δ
k
p,
k
i
=
k
′
i
+
Δ
k
i,
k
d
=
k
′
d
+
Δ
k
d。
对于两输入(
e
f 和
e
˙
f )和控制器三输出(
k
p,
k
i,
k
d )都采用如下模糊集:
{负大,负中,负小,零,正小,正中,正大},用英文字头缩写为{NB, NM, NS, ZO, PS, PM, PB},其中
e
f 和
e
˙
f 的论域为[−3, −2, −1, 0, 1, 2, 3],
k
p,
k
i,
k
d 的论域为[−6, −4, −2, 0, 2, 4, 6],隶属函数曲线见图2。
Figure 2.
e
f and
e
˙
f membership function curve
图2.
e
f 和
e
˙
f 隶属函数曲线
k
p,
k
i,
k
d 的模糊规则表建立好后,可对
k
p,
k
i,
k
d 进行自适应校正。应用模糊合成推理设计PID参数的模糊矩阵表,查出修正参数代入式(5)计算:
k
p
=
k
′
p
+
{
e
f
,
e
˙
f
}
p,
k
i
=
k
′
i
+
{
e
f
,
e
˙
f
}
i,
k
d
=
k
′
d
+
{
e
f
,
e
˙
f
}
d (5)
具体实现如工作流程图3所示,完成对PID参数在线自动校正。其隶属函数为:
Figure 3. The flow chart of fuzzy PID control online self-correction
图3. 模糊PID控制在线自校正流程图
2.2. 建立模糊控制器的控制规则表
系统输出特性关键是对参数
k
p 、
k
i 和
k
d 的整定,参数
k
p 、
k
i 和
k
d 又与输入参数
e
f 和
e
˙
f 有关,参数
k
p 、
k
i 和
k
d 自整定原则如下:
1) 当
|
e
f
| 数值大时,无论误差是变大还是变小,都选择
|
e
f
| 最大(或最小)值输出,这样就能够对误差迅速调整。另外为了避免积分饱和现象,此时参数
k
p 取值应较大,参数
k
i 取较小值,参数
k
d 取零。
2) 当
e
f
∗
e
˙
f
>
0 时,即误差绝对值在增大。当误差绝对值较大时,加大控制器控制作用,使得误差绝对值朝变小,此时参数
k
p 取值应较大,参数
k
d 也不能太大,参数
k
i 取较小的值。另外当误差绝对值较小时,控制器只需要作较小调节就可以,只要阻止误差绝对值变大即可。
3) 当
e
f
∗
e
˙
f
<
0 或
e
f
=
0 时,说明系统误差小,实际值与理论值接近,或者系统处在一个平稳状态。此时,控制器输出可保持不变。
4) 当
e
f
∗
e
˙
f
>
0,
e
f
≠
0 时,表明实际值与理论值差值恒定或一致,系统处于稳态性能状态,参数
k
p 和
k
i 采取较大值,另外选取
k
d 值适当可以避免误差在给定值附近振荡。设
{
k
p
=
k
′
p
+
Δ
k
p
k
i
=
k
′
i
+
Δ
k
i
k
d
=
k
′
d
+
Δ
k
d (6)
式(6)中
k
′
p,
k
′
i 和
k
′
d 为传统PID参数,其值通常采用Z-N法确定。根据专家经验和PID参数的整定规则,用IF-THEN方式,得到
Δ
k
p 、
Δ
k
i 和
Δ
k
d 整定规则,如表1所示。
Table 1. The fuzzy rules of Δ k p , Δ k i , Δ k d
表1.
Δ
k
p
,
Δ
k
i
,
Δ
k
d 的模糊规则
根据误差
e
f 和误差变化率
e
˙
f 的论域值,为模糊控制量的论域值:
e
f
,
e
˙
f
=
{
−
5
,
−
4
,
−
3
,
−
2
,
−
1
,
0
,
1
,
2
,
3
,
4
,
5
}
模糊控制子集可表示为:
e
f
,
e
˙
f
=
{
NB
,
NM
,
NS
,
ZO
,
PS
,
PM
,
PB
}。由两输入(
e
f,
e
˙
f ),再根据三个参数模糊规则表构造一个三输出(
Δ
k
p
,
Δ
k
i
,
Δ
k
d )的模糊控制器。
3. Matlab仿真
3.1. 模糊控制器的编辑
打开Matlab软件,运行Fuzzy函数,并新建一个的FIS文件,分别定义参数隶属函数和量化区间,定义输入模糊控制规则。设与(and)为min,或(or)为max,推理(implication)为min,合成(aggregation)为max,去模糊化(defuzzification)为重心平均(centroid),FIS系统文件就建立了。
3.2. 仿真实例
设被控对象传递函数为
G
(
s
)
=
523500
s
3
+
87.35
s
2
+
10470
s
根据模糊规则和隶属函数,对PID控制进行仿真,设参数
k
p
=
0.4 、
k
i
=
0 和
k
d
=
0,相应响应曲线见图4~7。
Figure 4. Fuzzy PID control step response
图4. 模糊PID控制阶跃响应
Figure 5. Fuzzy PID control error response
图5. 模糊PID控制误差响应
Figure 6. Controller output u
图6. 控制器输出u
Figure 7. The self-tuning process of
k
p,
k
i and
k
d
图7.
k
p 、
k
i 和
k
d 的自整定过程
由于传递函数是一个3阶对象,传统的PID控制参数不容易得到理想结果,主要是整定
k
p 、
k
i 和
k
d 3个参数,用模糊规则对PID参数进行自整定后,明显得到了不错的控制效果。从图可以看出系统的性能有着良好的稳定性和快速性收敛性,该控制方案具有很好的应用价值。
4. 结束语
模糊PID自整定控制继承了模糊控制和PID控制的优点,摒弃了两者的缺点,用模糊推理规则,实时整定PID的参数,获得理想参数,另外又通过对一个3阶对象进行仿真,得出该方法对系统的稳定性和快速反应有明显提高。该方法简单易用且实现方便,对现实控制有一定的参考意义。
基金项目
江苏省高等学校大学生创新创业训练计划项目(201912920001Y);南京科技职业学院资助项目(NHKY-2017-06,NHKY-2017-14)。
NOTES
*通讯作者。
模糊PID控制器MATLAB仿真探讨,基于Matlab的模糊自整定PID控制器仿真研究相关推荐
- matlab设计译码器,基于MATLAB的循环码编译码器设计与仿真.doc
扳昂旨螺冈唉陨裤外狸尿恨铸伸隧刽搅必勒诚天腑皖漂豌鲁靳碑缆键兽峙棘陶宽槐撒层僧袁廖颤渐魄货鼎躬薛扬衍逮西兰迫依煤鲁虐渠惫平合啥昭并屿己笆坍痞庐披吏去凄嘛兄察突徊溅今箩直藩潦咙锨谓崇若制匹扮复淌颐糖嗅你 ...
- 【机械仿真】基于matlab打桩机运动学仿真【含Matlab源码 2101期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab打桩机运动学仿真[含Matlab源码 2101期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 【机械仿真】基于matlab GUI曲柄摇杆机构运动仿真【含Matlab源码 1608期】
一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI曲柄摇杆机构运动仿真[含Matlab源码 1608期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- 【GPS仿真】基于matlab GPS信号捕获跟踪定位仿真【含Matlab源码 1960期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GPS仿真]基于matlab GPS信号捕获跟踪定位仿真[含Matlab源码 1960期] 点击上面蓝色字体,直接付费下载,即可. 获取 ...
- 【通信仿真】基于matlab噪声调频干扰仿真【含Matlab源码 1951期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[通信仿真]基于matlab噪声调频干扰仿真[含Matlab源码 1951期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...
- 【通信仿真】基于matlab空时自适应处理降维仿真【含Matlab源码 1957期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[通信仿真]基于matlab空时自适应处理降维仿真[含Matlab源码 1957期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...
- 【机械仿真】基于matlab GUI直齿圆柱齿轮应力计算【含Matlab源码 2077期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[机械仿真]基于matlab GUI直齿圆柱齿轮应力计算[含Matlab源码 2077期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...
- 【GPS仿真】基于matlab GPS信号捕获跟踪【含Matlab源码 2126期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GPS仿真]基于matlab GPS信号捕获跟踪[含Matlab源码 2126期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...
- 【导弹仿真】基于matlab导弹轨迹和撞击位置仿真【含Matlab源码 2067期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[导弹仿真]基于matlab导弹轨迹和撞击位置仿真[含Matlab源码 2067期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式 ...
最新文章
- HDU4720(最小圆覆盖问题)
- 避免在Swift Struct中使用闭包
- 设计原则——依赖倒置
- OSPF多区域配置与汇总
- webpack2+React 实例demo
- python技巧:拆分多层嵌套列表
- 引用参数与引用返回值
- java控制硬件_厨师都开始用Python和Java了,现在C语言还值得我们学习吗?
- Qt ui-setupUi(this)的作用
- cocos2dx的runAction: 反复运行,多个动作连接运行,多个动作同一时候运行的实现
- 基本数据类型-集合(set)_上周内容回顾(字符串_数字_列表_元组_字典_集合)
- 最新一百期的结果与统计php
- 安装IBM Data Studio Client
- 又一起“删库”跑路:链家程序员怒删公司 9TB 数据,被判 7 年!网友:真惨~...
- 斐波那契堆(Fibonacci heap)原理详解
- Linux系统为docker配置镜像加速器
- 继承关系下怎样使用Builder 模式
- html百度换皮肤,windows7系统下怎么给百度网页更换皮肤
- 以太网未识别的网络问题
- 做微信小程序需要ICP证书吗