这篇简单介绍一下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:

[公式]

其中 [公式] 是外界常值扰动或者step信号,可以是一个scalar,也可以是一个vector。我们之前设计的全状态反馈控制律:

[公式]

其中 [公式] 是观测器估计状态, [公式] 是一个前置增益模块使得系统输出稳态能够和参考输入的稳态一致,即让系统的DC gain保持为1。 [公式] 是一个与state-space representation中矩阵 [公式] 都有关系的,所以如果出现矩阵参数的微小变动,或者外界环境对系统动态的扰动,最终反馈控制律都无法准确地以(2)来表示。所以我们目标是,即使出现上述的不确定性,依旧能够实现一个效果满意的参考信号追踪效果。这类控制,常常被称之为鲁棒控制设计(robust control)。积分控制是具有一定robustness的控制策略。

让我们考虑追踪误差 [公式] ,引入一个新的变量 [公式] ,使得其满足:

[公式]

让我们把(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。

问:考虑一个开环系统的传递函数为:

[公式]

现在设计积分控制,使得整个闭环系统(二阶)的两个特征值都在 [公式] 。同时,使用full-state estimator去估计,把观测器极点设置在-10。

解:我们确定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作为扰动 [公式] 或者修改开环传递函数的极点(比如从-3改到-3.2,-2.8等等),能够看到输出的结果仍然能够跟踪step:

这表明无论是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的有效作用区。那么在这段进入饱和和退出饱和区的这段时间,反馈信号实际上是失灵的,系统行为将不受设计所控制发生,系统输出继续增长,产生很大的超调。可以参考下面这篇文章的演示去理解:

在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问题要回归积分器本身:由于积分器 [公式] 本身是个不稳定环节,如果actuator达到limit了,那么反馈控制回路实际就被断开了,那么积分器的输出就会不断增长。那么为了实现anti-windup,我们需要设计控制回路或者某个装置使得积分控制器本身能够被稳定下来。能够实现这样效果的电路或者装置都起到了anti-windup的作用。当然 [公式] 的选择过大是导致windup的直接原因,选择一个合适的 [公式] 可以有效避免windup。

对于一个采用PI控制器的反馈控制系统,有如下结构,在 [公式] 之后存在一个非线性模块:saturation,使得实际plant的输入受到限制。

Anti-windup有很多种schemes,比较容易实现的一种就是在发生windup时,通过逻辑电路直接关闭积分器,使其失效,当实际控制回到actuator的有效区时,再启动积分器。在[1]中给出了两种等效的anti-windup方案,如(a)和(b)所示,两者实际上是一回事,只是前者容易理解,后者容易实现。

在这种方案中,我们把实际控制输入 [公式] 和理论控制输入 [公式] 的差值经过一个增益放大后返回到误差端,使得我们让积分器的输入在发生windup时能够维持在一个很小的值。其中增益 [公式] 可以取得足够大使得输入到积分器中的误差足够小。其他的anti-windup的方案有很多,根据系统的特点可能需要设计不同的方案。但最终目的都是要限制积分器的输出增长过快,稳定积分器。[1,p657]中Example 9.9使用了上面这种方法来防止积分饱和造成的超调。

需要注意,实际中一般会设计一个电子饱和检测装置,其阈值低于物理系统的极限位置,以防止物理系统达到极限发生损坏。

参考文献 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.