智能控制导论 # 专家控制实例 - 专家PID控制

由于博主非自动化相关专业学生,如有疏漏以及谬误还请不吝赐教。感谢~


由于常见的是二阶系统,所以本文以二阶系统为例,展开分析。


专家PID控制原理

PID专家控制的实质是,基于受控对象和控制规律的各种知识,无需知道被控对象的精确模型,利用专家经验来设计PID参数。

  • 专家PID控制是一种直接型专家控制器。

对典型的二阶系统单位阶跃响应过程作如下分析。

专家控制系统一般不需要知道被控对象的精确模型,是基于受控对象和控制规律的各种知识,利用在该领域的专家经验来制定决策。因此我们无需建立这个控制系统的模型和传递函数。

  • 上面说了我们不需要做什么,那我们需要做什么?以及怎么做?

对于这个问题,我们首先需要分析对于“典型的二阶系统”我们掌握的知识、经验或规律。

无论采取什么样的算法来控制系统,最主要的目的是使系统的误差足够小。大误差要对应强的控制来矫正,小误差对应弱的控制作用。当经过控制后误差小到我们设定的范围,我们就保持当前的控制作用即可,使系统保持稳定,并改善对于稳定状态的性能指标。
根据以上分析,我们需要首先知道“典型的二阶系统”的误差变化曲线是什么样子的。

典型的二阶系统单位阶跃响应误差曲线如图所示。
典型的二阶系统单位阶跃响应误差曲线
图中的区域可以分为以下两类:

  1. 误差的绝对值在减小 (图中曲线白色部分)
  2. 误差的绝对值在增大 (图中阴影部分)

根据我们的经验,误差及其变化是我们实时控制算法的依据。
我们以PID的误差及其变化为依据,按照下述步骤设计我们的专家PID控制器:

  1. 引入一些定义

    同时定义2个常数: M 1 , M 2 M_1,M_2 M1,M2并且 M 1 > M 2 > = 0 M_1>M_2>=0 M1>M2>=0
  2. 根据误差及其变化,专家PID可以分为如下5种情况
    (1) 当 ∣ e ( k ) ∣ > M 1 |e(k)|>M_1 e(k)>M1
    说明误差的绝对值已经很大。不论误差变化趋势如何,都应考虑控制器的输出应按最大(小)输出,以达到迅速调整误差,使误差绝对值以最大速度减小。同时需要避免超调。(此时,相当于实施开环控制)
    (2)当 e ( k ) Δ e ( k ) > 0 e(k)\Delta{e(k)}>0 e(k)Δe(k)>0 Δ e ( k ) = 0 \Delta{e(k)}=0 Δe(k)=0
    说明误差在朝绝对值增大的方向变化或者误差保持不变
    此时如果 ∣ e ( k ) ∣ > = M 2 |e(k)|>= M_2 e(k)>=M2,说明误差也较大,考虑由控制器实施较强的控制作用,以达到扭转误差绝对值朝减小的方向变化,并迅速减少误差的绝对值,控制器的输出为
    u ( k ) = u ( k − 1 ) + k 1 { k p [ e ( k ) − e ( k − 1 ) ] + k i e ( k ) + k d [ e ( k ) − 2 e ( k − 1 ) + e ( k − 2 ) ] } u(k)=u(k-1)+k_1\{k_p[e(k)-e(k-1)]+k_ie(k)+k_d[e(k)-2e(k-1)+e(k-2)]\} u(k)=u(k1)+k1{kp[e(k)e(k1)]+kie(k)+kd[e(k)2e(k1)+e(k2)]}
    Note:上述公式为增量式PID算法,我们还加上了 k 1 k_1 k1来增强控制作用。
    如果此时 ∣ e ( k ) ∣ < M 2 |e(k)|<M_2 e(k)<M2,说明尽管误差朝绝对值增大的方向变化,但是误差绝对值本身并不大,考虑由控制器实施一般的控制作用,只要扭转误差的变化趋势,使其朝误差绝对值减小方向变化,控制器输出为:
    u ( k ) = u ( k − 1 ) + k p [ e ( k ) − e ( k − 1 ) ] + k i e ( k ) + k d [ e ( k ) − 2 e ( k − 1 ) + e ( k − 2 ) ] u(k)=u(k-1)+k_p[e(k)-e(k-1)]+k_ie(k)+k_d[e(k)-2e(k-1)+e(k-2)] u(k)=u(k1)+kp[e(k)e(k1)]+kie(k)+kd[e(k)2e(k1)+e(k2)]
    对比上面缺少了 k 1 k_1 k1系数。



    [注意](3)(4)的3个条件中,前两个是逻辑与的关系,其整体与最后的e(k)=0是逻辑或的关系,请勿对这段描述理解错。(文章中条件中的逗号是同时满足的意思)

应用举例

求三阶传递函数的阶跃响应
G p ( s ) = 523500 s 3 + 87.35 s 2 + 10470 s G_p(s)=\frac{523500}{s^3+87.35s^2+10470s} Gp(s)=s3+87.35s2+10470s523500
其中,对象采样时间为1ms。


在仿真过程中 ϵ \epsilon ϵ取0.001。程序中的五条规则和控制算法中的5种情况相对应。
采用Z变换进行离散化,经过Z变换离散化后的对象为:
y ( k ) = − d e n ( 2 ) y ( k − 1 ) − d e n ( 3 ) y ( k − 2 ) − d e n ( 4 ) y ( k − 3 ) + n u m ( 2 ) u ( k − 1 ) + n u m ( 3 ) u ( k − 2 ) + n u m ( 4 ) u ( k − 3 ) y(k)=-den(2)y(k-1)-den(3)y(k-2)-den(4)y(k-3)+num(2)u(k-1)+num(3)u(k-2)+num(4)u(k-3) y(k)=den(2)y(k1)den(3)y(k2)den(4)y(k3)+num(2)u(k1)+num(3)u(k2)+num(4)u(k3)

专家PID控制

代码参考文末附录资料。

对比试验:常规PID控制


Reference

https://wenku.baidu.com/view/3b505c86a200a6c30c22590102020740be1ecd83.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

真·skysys

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值