概述
这篇简单介绍一下LTI系统的积分控制(integral control)。我们在PID控制中已经讲过积分控制的主要作用。引入积分控制的目的就是为了消除系统的稳态误差,尤其是当扰动或者系统实际参数发生变动时,即鲁棒性(或者稳健性,robustness)。当然积分控制有其弊端,在实践中需要通过分析决定是否采用积分控制。
我继续顺着[1]的7.10节讲解这部分,同时也将参考其他资料。
本篇目录:
1. 积分控制 Integral control
2. 设计实例 Example of integral control
3. 积分饱和 Integral windup and Anti-windup Control
1. 积分控制 Integral control
现在假设有一个LTI系统的state-space representation:
其中
其中
让我们考虑追踪误差
让我们把(1)(3)结合起来构成一个新系统:
用矩阵表示:
那么只要设计一个反馈控制律:
使得系统稳定即可。 最终系统示意图如下:
这个闭环系统的特征值满足下面定理,其证明见[2. Theorem 8.5]:
如果(A,B)是controllable的,并且开环系统的传递函数不存在的零点,那么(6)可以对(5)的系统矩阵进行任意的pole-placement。(complex eigenvalues仍然满足conjugate条件)
提一点直观的理解,如果plant的开环传递函数存在
2. 设计实例 Example of integral control
我们来考虑[1]中的一个控制设计问题,然后看看如何设计一个控制器,并且加入积分控制来使得系统具有disturbance rejection和robustness。
问:考虑一个开环系统的传递函数为:
现在设计积分控制,使得整个闭环系统(二阶)的两个特征值都在
解:我们确定plant开环系统的state-space representation:
s=tf('s');
G=1/(s+3);
>>sys=ss(G)
sys =
A =
x1
x1
-3
B =
u1
x1
1
C =
x1
y1
1
D =
u1
y1
0
Continuous-time state-space model.
根据(5),我们得到加入积分控制后的整体开环系统的state-space representation:
现在我们用acker命令计算得到feedback增益(因为place不能place重根):
>> Abar=[-3 0;1 0];
%整体系统的矩阵
>> Bbar=[1;0];
>> K=acker(Abar,Bbar,[-5 -5])
K =
7
25
设计 full-state estimator,把观测器的极点设置在
>> L=acker(sys.A',sys.C',-10)'
L =
7
我在simulink里面搭了一下:
加入了step input作为扰动
这表明无论是step input,或者是常值扰动,积分控制都能有效地抑制其影响,使得系统具有一定程度的robustness和disturbance rejection的能力。但是对于其他类型的扰动,其效果就未必很好,我们之后再介绍其他设计方法。
注意自己在simulink里搭建时,状态观测器会被离散,如果离散的sample time小于ode的sample time,那么会引发比较大的响应振荡,也就是会产生比较大的超调。这是离散系统的设计问题,我们这里把两个sample time保证一样,可以看到比较理想的无超调曲线。(因为我们不是把两个根都放置在了-5嘛。)
3. 积分饱和 Integral windup and Anti-windup Control
积分控制最常见存在于在PID控制器中。积分控制能抑制常值扰动,但是对于随时变化的一些扰动却效果不佳。基于这个事实,一般的想法总是,有I控制总比没有好。可是,误差积分控制的引入还容易引起系统瞬态变差。导致这个现象的最常见的原因就是积分饱和(Integral windup)现象。
在上述设计过程中,我们对于理论控制信号的幅值没有做过多的限定,但是实际控制系统中的驱动器(actuator)的输出往往是限幅的,也就是存在output limit,也同时有上界与下界。如果根据control law计算得到的控制信号过大,导致actuator达到了output limit(saturation),比如达到了upper bound,那么这时候实际的控制输入会被限制在一个常值,而理论的控制输入可能还在不断增加,所以积分器的输出还在不断地增长。误差在实际控制的作用小可能从大到小不断减小。当系统输出与参考信号的误差变号时,积分器的输出开始减小,理论控制信号也会开始减小,但是由于此时理论控制信号可能已经远超actuator的output limit,进入了所谓的饱和区(windup),所以理论控制信号需要退出饱和区,回到output limit才能改变此时actuator的实际输出。在退出饱和区之前,实际actuator的输出不会发生改变,直到理论控制信号回到actuator的有效作用区。那么在这段进入饱和和退出饱和区的这段时间,反馈信号实际上是失灵的,系统行为将不受设计所控制发生,系统输出继续增长,产生很大的超调。可以参考下面这篇文章的演示去理解:
苏小蛇Arrogance:Anti Windup设计简介zhuanlan.zhihu.com在process control中,积分控制也被称为reset control。在没有积分控制的时候,如果说set point被设定到了10,实际输出只能达到9.9。这时候操作人员需要手动的把set point给reset到10.1,这样才能得到10的结果。而采用了积分控制之后,系统就能自动跟踪到set point 10,所以称integral control为reset control。
那么解决这个问题的办法,通常称之为integrator anti-windup。解决windup问题要回归积分器本身:由于积分器
对于一个采用PI控制器的反馈控制系统,有如下结构,在
Anti-windup有很多种schemes,比较容易实现的一种就是在发生windup时,通过逻辑电路直接关闭积分器,使其失效,当实际控制回到actuator的有效区时,再启动积分器。在[1]中给出了两种等效的anti-windup方案,如(a)和(b)所示,两者实际上是一回事,只是前者容易理解,后者容易实现。
在这种方案中,我们把实际控制输入
需要注意,实际中一般会设计一个电子饱和检测装置,其阈值低于物理系统的极限位置,以防止物理系统达到极限发生损坏。
参考文献 Reference
[1] G.F. Franklin, J.D. Powell, A.Emami-Naeini, Feedback Control of Dynamic Systems, 7th Edition, 2014, Pearson
[2] Chi Tsong Chen, Linear System Theory and Design, 3th ed., Oxford University Press, 1998.
最后
以上就是成就夕阳为你收集整理的simulink降维观测器设计_14. SISO反馈控制器设计 (5):积分控制 Integral Control的全部内容,希望文章能够帮你解决simulink降维观测器设计_14. SISO反馈控制器设计 (5):积分控制 Integral Control所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复