将反馈控制律 [公式] 与状态观测器[公式]结合,我们可以构造出一个新的闭环系统。我们把原来反馈中真实的状态 [公式] 用观测器估计值 [公式] 替代了,自然要问这是否最终影响极点的位置、零点的位置或者最终控制的效果呢?这篇文章我们来研究这个问题。除此之外,我们还将讨论引入了参考输入时的闭环系统。

参考学习这部分时,我感叹道FCDS这本书真不愧是经典!初学者入门首选。我曾以为它的经典部分已经是少有敌手,越看越觉得即便是状态空间法这部分,它有着与其他控制理论书非常不一样的地方:它是站在一种practical的角度去讲问题。这在众多的学术派教科书中真的非常难得。

虽然大体按照了FCDS的逻辑,不过我尽量加入了自己的解读。书中有一些话,对于初学者而言,并不是那么容易一下子理解的,尤其是在你没有完整阅读整个书时。

本篇目录:

1. Compensator:观测器与控制律的结合 Observer-based Controller

2. 闭环系统传递函数不变性 Invariance of the transfer function

3. 引入参考输入闭环系统-零点配置 Introduction of the reference input/zeros configuration

4. 总结与增益 [公式] 的选择 Overview and Selection of [公式]


1. Compensator:观测器与控制律的结合 Observer-based Controller

如果不给定参考信号,或者认为给定一个恒定的参考信号 [公式] ,为了让整个闭环系统稳定到原点(origin),或者说,闭环系统的输出 [公式] 维持在参考信号 [公式] 的值——这就是一个regulation problem,对应的控制器叫regulator,regulator作用就是reject disturbances。比如恒温系统就很典型是一个regulation问题。

虽然我们一般都会把系统输出稳定到状态平衡点为0的位置,但是实际中期望的稳态可能并不是一个输出为零的常数。这时候我们可以通过简单的坐标变换定义一个新的状态,把平衡点移动到origin上去。根据变换后的系统设计反馈控制律,再将控制规律变换回原坐标系即可。

Fig.1 From [1,p502]

1.1 Compensator的状态空间方程 Equations of Compensators

在经典控制理论中我们一直在设计所谓的compensator(补偿器)。我们把系统的输出与输入之差 [公式] 经过compensator后产生控制信号 [公式] ,再作用于plant。我们注意到经典控制中多讨论的是unity feedback(单位反馈),参考信号 [公式] 的加入位置就在Fig.1中的compensator之前

在状态空间设计法中我们把反馈控制律与状态观测器结合,其共同构成了一个等效的compensator。在Fig.1中我们看到这个compensator是 [公式] 为输入, [公式] 为输出的。这与之前的经典compensator [公式] 为输入有差别,但是我们之后会讨论它们的统一性。

我们从compensator状态空间方程说起。

状态观测器(estimator,observer)以及全状态(估计状态)反馈控制律(full-state feedback control law)的方程,我们从上两篇中已经知道了:

[公式]

我们把 [公式] 代入estimator的方程后,得到:

[公式] 此时(1-1)已经具有和

[公式]

一样的形式了。只不过(1-1)的输出 [公式] 实际上是输入,而plant的输入 [公式] 在这里实际上是输出。我们类比(2),得到(1-1)的等效 [公式]  [公式] 。所以我们也可以用矩阵的方式来表示(1-1)。

(1-1) 就是Fig.1中compensator的状态空间方程。

现在简单分析一下(1-1),类比(2)的极点确定方法,它的极点由下式确定:

[公式]

其传递函数 [公式] 由我们熟知的公式确定:

[公式]

对于reduced-order estimator,我们只要写出形如(1-1)的形式,也可以得到对应的传递函数。如果我按照(4)进行具体的计算,我们就能得到与经典控制理论中一样形式(一样形式的传递函数,比如lead/lag)的compensator。在Fig 1. 中的compensator可以认为是串联的,也可以认为是反馈连接的,由于没有考虑参考输入,最终是串联还是反馈连接,取决于参考输入的位置,我们在第2节和第3节会讨论。

1.2 Compensator的稳定性与闭环系统极点的关系 Stability of compensator and how it relates to closed-loop poles

Compensator本身并不要求是稳定的,即其极点不一定全部都在LHP,也是有可能在RHP的。我们在经典控制理论中可以设计一个RHP pole去做pole-zero cancellation,虽然局部的compensator可以是不稳定的,但是整体闭环系统在设计中一定是稳定的。所以(3)所确定的极点是由compensator代入的,无论是反馈还是串联,都将和plant的开环极点,一起影响闭环系统的极点,从而能够改变系统的稳定性。

注意我们不要把compensator和观测器给搞混了:观测器是一个 [公式] 和增益 [公式] 形成output injection的系统,方程是 [公式] 。而compensator又把控制律 [公式] 反馈回来形式了闭环,因此我们在讨论两者极点时是有差别的。Compensator的极点由(3)确定,而观测器本身的稳定性是由 [公式] 的特征值决定的, [公式] 只是为了保证稳态时稳态值渐进 [公式] 

1.3 闭环系统 Closed-loop system

我们把(1)和(2)一起构成完整的闭环系统,可以写成:

[公式]

Overall system是一个 [公式] 维的闭环系统(假设原系统为 [公式] 维)。我们可以直接使用:

[公式]

来计算闭环系统的极点。不过由于反馈控制律中增益 [公式] 和观测器增益 [公式] 的设计似乎是耦合在一起的,这给我们设计造成了一定的难度。然而,经过进一步的研究发现,实际上观测器与反馈控制律的设计是可以分开的,即separation principle。因为观测器的目标是跟踪真实的状态,我们完全可以对(3)进行改写,即使用新的状态变量 [公式] 。让我们考虑一个反馈控制律 [公式] ,将其放入原系统中构成一个闭环系统

[公式]

我们把误差 [公式] 引入之后,得到:

[公式]

根据上一篇的结论,或者结合(1)和(2),我们知道误差 [公式] 满足观测器误差方程:

[公式]

将(2)与(3)一起结合在一起构成一个新的闭环系统,我们得到:

[公式]

这个系统如果想要趋于稳态,那么显然(4)的right hand side:矩阵 [公式] 必须满足特征值的实部为负

(5) 和 (10) 实际上表示的是同一个闭环系统,只不过(10)选取了一个不同的坐标,即 (5) 通过了线性变换得到了(10)。至于是用的是哪个矩阵,对比前后坐标就可以写出来了,我就不多费时间了。既然是线性变换,表示同一个系统,系统的特征值就没有发生变化,即闭环系统的极点应该是保持不变的。所以(6)所确定的极点也可以这样由(11)确定:系统的极点满足 [公式]  [公式] 为新闭环系统的系统矩阵。我们得到:

[公式]

(6)和(11)是不是等价的呢?当然是等价的。根据行列式的性质,将(6)中的第二列块加到第一列块,再将第一行块乘以(-1)加到第二行块,我们就得到了(11)。对于分块上三角矩阵我们有行列式为对角矩阵行列式乘积的结论:

[公式]

所以(12)就是闭环系统的特征方程,并且我们发现闭环系统的极点就是由直接状态反馈 [公式] 的极点与状态观测器 [公式] 的极点构成的,闭环极点数量是两者之和,并且由于 [公式] 是可以单独设计的,两者的取值也是独立的。即所谓的:separation principle(分离原则)。

虽然(12)将是一个 [公式] 阶的多项式方程,不过在第2,第3节中我们会讲到,如果参考信号的位置的插入位置不同,实际上的闭环传递函数可能会发生零极点相消(pole-zero cancellation)。这时候闭环系统实际上对参考输入 [公式] 起作用的poles就只有 [公式] 所确定那 [公式] 个poles。

2. 闭环系统传递函数不变性 Invariance of the transfer function

如果我们把参考输入加到标准的位置,即如我手绘的示意图所示(或者就是第3节中将要介绍的(b)类型结构),那么我们就可以计算此时系统的闭环传递函数。如果对原来的闭环系统(5)添加同样位置的参考信号 [公式] ,得到:

[公式]

采用(10)的坐标系,也就是手绘图中闭环系统,它的状态空间方程是:

[公式]

计算闭环系统的传递函数我们已经在之前介绍过了,根据 [公式] ,我们可以计算用新坐标 [公式] 构成的系统传递函数。其中 [公式] 矩阵就是从原闭环系统(5)的 [公式] ,进行了线性变换后得到的。从(10-1)中我们就已经可以看出来了,变换后 [公式] 。这因为关于 [公式] 的第二个动态方程实际上根据(9)已经是不受到 [公式] 控制了,而我们的输出依旧是 [公式] ,故而有这样的结果。若计算传递函数,我们得到:

[公式]

中间的过程我省略了,上三角分块矩阵的逆是有公式的结果的,请大家感兴趣自己验证一下(13),可以参考[2,p222]。那么这里的结论就是:

使用直接全状态反馈构成的闭环系统的传递函数,与Fig.2中使用状态观测器进行全状态反馈的闭环系统的传递函数是一样的。

这个结论告诉我们,我们使用状态观测器来进行full-state feedback,其传递特性是不变的。也就是说状态观测器是否使用,都不会影响整个闭环系统的传递特性。不过要注意,这个结论仅仅在参考信号在标准位置时才成立,我们在第3节会看到更加general的形式。

Fig.2 绘图板画的...有点挫。按照[2,p222]中的示意图所画,采用v作为参考输入(也可以用r)

根据(10),我们画出整个闭环系统,并同时添加了参考输入 [公式] 那么我们刚才计算的传递函数就是从 [公式]  [公式] 的传递函数。实际上我们可以看到,整个状态观测器的误差方程实际上根本没有参与到传递函数的计算中,因为前向通道中根本就不用计算它。这从一个方面解释了传递函数为什么没有发生变化。

我们再看。变换后的 [公式] 中, [公式]  [公式] 的方程根本没有任何作用,这意味着 [公式] 这个状态向量在闭环系统中是不受控制的。从我上面画的草图中也可以看出来了,[公式] 不会流经 [公式] 的动态过程。因此整个闭环系统实际上是不能控的。但是由于我们的目的是控制 [公式] ,误差 [公式] 即便是不能控的,也没有关系[2,p223]。

我们知道闭环系统是一个 [公式] 维的系统,但最后实际传递函数又与原来做了全状态反馈的 [公式] 维系统是一致的,这意味什么呢?这表明闭环系统的极点中有 [公式] 个极点最后和闭环系统的零点发生了相消。我们从图中就可以看出来,正是状态观测器的极点, [公式] 所确定的特征值,与闭环零点发生了相消,所以最后传递函数最后还是一个 [公式] 阶的。传递函数发生pole-zero cancellation,这就意味着根据此传递函数实现的状态空间方程的能控或者能观性发生了破坏。所以我们看到,在这里,闭环系统(10-1)和(10-2)是不能控的,就得到了解释。

从(8)中可以看出,如果最后系统到达稳态,最终 [公式] 是否可以趋于origin(或者有参考输入时稳定在参考输入),取决于 [公式] 是否为0。理论上这种稳态是要无穷时间才能达到的。现实中可以配置极点加快状态估计的收敛,最后达到满意的控制性能就好了。[2,p223]

3. 引入参考输入闭环系统-零点配置 Introduction of the reference input/zeros configuration

我们在这节讨论参考信号位置对闭环系统产生的影响,第2节中谈到闭环传递函数不变性源自一种标准的参考信号配置,这节我们要用一般性的眼光来分析。之前没有引入参考信号,那么系统的最终稳态目标就是origin,所以我们把这时候的controller或者compensator叫做regulator。这里我们引入参考信号,依旧认为是一个常值信号,或者终值是拥有一个稳态的信号。因为在前两篇文章中我们已经看到,我们计算了两个不同的增益 [公式] 使得闭环系统最终的稳态输出 [公式] 与参考信号的稳态 [公式] 能够一致。在计算时,我们只考虑了输出的final value与参考信号的final value要渐进,但是却没有考虑渐进过程中的transient performance。这设计到tracking problem,或者也可以叫command following。这个我们下次文章里再写。

3.1 引入参考信号 Introduction of Ref. signal

按照我们原来的闭环系统方案,我们把参考输入 [公式] 放在如下图的位置。

From [1] compensator in the feedback path

我们可以看到原来的全状态反馈,现在用compensator来实现同样的功能。其中 [公式] 就是我们计算好的一个增益模块,使得最终稳态与参考输入的稳态趋近相同,我们也可以叫它:前置滤波器。只不过很多时候前置滤波器的作用是补偿零点改善系统瞬态,其稳态增益当然是经过设计的,在这里我们就可以认为其稳态增益必须设计成 [公式] 的值。具体请看我上篇文章。

对于这种方案,我们在上一节中已经分析过了,由于传递函数和直接状态反馈是一样的,系统阶数没有发生实质改变,观测器的极点实际上被闭环零点给抵消了。这表明观测器的极点, [公式] 的特征值,根本没有影响到参考输入 [公式] 对输出 [公式] 的作用,因此此时系统输出行为将于 [公式] 所配置的极点表现一致。这实际上就是我们想要的效果,因为我们配置了 [公式] 正是位于期望极点的位置, [公式] 只要是Hurwitz,理论上并不会影响应动态,但是收敛的速度慢了,会影响最终的稳态收敛速度:(8)中的e趋于0的速度。

From [2] compensator in the feedforward path

另外是一种就是置于前向通道,所谓串联的compensator。这种compensator其实在经典控制理论中已经很常见了。显著特点就是,compensator的零极点都会影响到系统的闭环极点。这时候(12)才真正是这个闭环系统的特征方程,并且在传递函数中,这些极点都会起到对参考输入响应的作用。这样的话,系统的响应就会显著受到compensator和plant的共同影响。在经典控制中就是利用这样的compensator来调整系统的动态响应和稳态响应的!不过在状态空间设计法中,我们可以很方便的配置极点,采用反馈方式,第一种方案的compensator可以更容易达到设计要求(因为不用考虑额外的极点带来的影响)。

3.2 零点配置 Configuration of zeros

我们可以用 [公式] 来分配闭环系统的极点,我们现在来研究如何分配闭环系统的零点。方法就是使用给参考输入 [公式] 提供前馈增益。

根据(1),代入 [公式] ,把compensator的方程写出来:

[公式]

现在对(14)和 [公式] 添加参考输入 [公式] ,并且采用前馈增益矩阵 [公式] ,得到:

[公式]

带参考输入的控制律我们已经熟悉了,之前就讲过 [公式] 是为了稳态跟踪参考信号,现在结合 [公式] 可以用于配置零点。由于这两个增益都是跟参考输入 [公式] 有关系的,所以可以知道添加这两个增益是不会影响到系统极点的,只会影响到系统的零点。在[1]中分别讨论了3种最常见的系统结构:

其中(a)是最一般的形式,我们从(a)可以得到(b)和(c)。

3.2.1. Autonomous Estimator (b) :我们考虑从(a)的结构得到(b)。(b)的系统结构应该是最常用的了。之所以叫Autonomous Estimator是因为误差方程(9)是不受到参考输入 [公式] 的影响的,是一个自治(autonomous)系统。注意,在(a)中,我们把 [公式] 返回给了estimator,并不是 [公式] 。所以在(a)中compensator或者说controller的方程是:

[公式]

开环系统的方程是: [公式]

所以状态估计的误差动态方程:

[公式]

为了让(17)能够得到满足Autonomous的要求,显然只要令

[公式]

如此我们就得到了(9)。所以我们再回看(16),把(18)代入,就得到了:

[公式]

(19)正是一个标准的状态观测器方程。加上 [公式] ,构成了完整的controller或者compensator,于是就有了(b)的结构。

在b中plant和estimator共用同一个 [公式] ,并且 [公式] 在参考输入并没有影响到compensator或者controller的内部动态,而是最后与反馈信号相加得到的。在(b)中还包含了一个saturation模块,如果控制信号达到了饱和,那么estimator也会受到同样的输入限制,但是由于共享了同一个控制 [公式] ,所以状态估计的误差方程其实并不受到saturation nonlinearity的影响,这对状态观测器的性能保证非常重要[1,p517]。

3.2.2. Tracking-error Estimator (c) :在(c)中,我们把参考输入 [公式] 直接加在输出端 [公式] ,得到误差信号 [公式] 然后通过整个compansator或者controller产生 [公式] :这就是经典控制理论中串联补偿器的结构。在这里compensator完全可以替代成lead-lag compensator,事实上如果我们写出这里的传递函数,它们也具有一样的形式,我之后的文章会介绍书中的几个例子。

这种结构有时是必须的,因为传感器可能只能测量得到误差信号,而不是绝对输出信号和参考信号。[1]中讲到thermostats(恒温器)

A thermostat is a component which senses the temperature of a physical system and performs actions so that the system's temperature is maintained near a desired setpoint.
A thermostat operates as a "closed loop" control device, as it seeks to reduce the error between the desired and measured temperatures. Sometimes a thermostat combines both the sensing and control action elements of a controlled system, such as in an automotive thermostat.

很多thermostat的output可能只有设定温度当前温度的差值 [公式] ,所以并没有当前的绝对温度 [公式]或者参考信号 [公式] ,有的只是 [公式] 。这应该是由它们的测温原理决定的。[1]中另一个例子是有些radar tracking system的读数是和位置误差成正比的,这种时候只有error signal可以用于反馈控制。

总而言之,此时采取误差信号 [公式] 作为compensator的输入,我们只要简单修改一下(16)就行了。我们需要把所有 [公式]  [公式] 都想办法转换为误差 [公式] 。注意在书中它将 [公式] 取负与 [公式] 相加了,得到的结果是 [公式] 。我们只要令

[公式]

这样(16)就变成了:

[公式]

这样就完成了(c)中的结构。这样结构下,串联的compensator的zeros会被代入forward path称为闭环系统的zeros,容易引起overshoot。同时其极点也被带入了闭环系统的极点,那么系统的动态不再如 [公式] 配置的一样了。

3.2.3. Zero-assignment Estimator (a) :从上面的分析可以看到(b)和(c)都是特殊(a)的形式,上面两种情况其实闭环系统的零点都被改变了。而(a)中我们可以通过配置 [公式] 来自由配置零点,这给了我们很大的设计自由度。如果没有观测器,状态反馈是不会改变系统极点的。现在加入了观测器之后,系统的零点发生了改变,我们想要知道它会如何改变。

我们看图(a),如果从 [公式]  [公式] 的传递函数中包含一个zero,那么从 [公式]  [公式] 的传递函数就会包含这个零点。 [公式]  [公式] 的传递函数中包含 [公式] 的direct transmission,也包括从 [公式] 经过estimator后的成分。这样一来,我们只要考虑compensator或者controller中的zeros对原来plant的影响就可以了。

让我们根据(16)来计算传递函数:

[公式]

[公式]

从这个传递函数中我们就看出来了一个 直流分量[公式] ,并且 [公式] 对零点也会产生影响。根据(16)和零点计算公式:我们得到compensator的A,B,C,D分别是:

[公式]

compensator的零点为:

[公式]

将行列式最后一列除以 [公式] ,再将结果乘以 [公式] 加到左边一列,得到:

[公式]

由于上三角分块矩阵的行列式为主对角线矩阵的乘积,则compensator的零点由:

[公式]

这样我们通过选择 [公式]  [公式] 就可以获得一个n阶多项式,从而决定 [公式] 个zeros。这 [公式] 个零点会被加入到 [公式]  [公式] ,只要他们没有被闭环极点消除。零点会显著影响闭环响应的瞬态,关于零点的选择问题,我在经典控制那部分有过讨论,我们可以根据实际进行trial and error。

3.3.4 (b)与(c)的零点位置

回头看标准状态观测器和反馈律构成的compensator (b),我们把 [公式] 代入(27),得到

[公式]

根据(12)这正是闭环系统极点中的一部分:状态观测器的极点。所以我们之前才说,(b)中的compensator的zeros与闭环系统的poles发生了cancellation,只有 [公式] 是能控的,闭环系统的实际传递函数并没有发生实质变化。

至于(c)采用tracking-error estimator,代入 [公式] ,做一点简单的行列式变换,可以很容易得到其零点由下面的式子决定:

[公式]

这样一来,系统的zeros就必须受到 [公式] 的同时约束,如果提前设计好了闭环系统的poles, 那么最终的zeros会在哪里是无法预先知道,并且后来的改变也会要求修改之前的设计。

4. 总结与增益 [公式] 的选择 Overview and Selection of [公式]

4.1 本文的整体把握 Overview of the discussion

根据[1,p524],看完整个设计后,我们回头从传递函数的角度来分析这三种做法就十分清晰了。以(a)的最一般情况,我们分析得到闭环系统的传递函数由compensator的零点和plant的零点构成,闭环系统的极点由plant被配置后的极点与observer的极点构成,以及总体闭环增益 [公式] 

[公式]

[公式] 就是(28),其为compensator的提供的zeros,[公式] 就是plant自身的零点。 [公式]  [公式] 

对于(a) 我们根据 [公式] 可以任意配置 [公式] 

对于(b) 根据(18),我们有 [公式] ,于是零极点相消,传递函数阶数不变。

对于(c) 根据(20),我们根据(29)确定 [公式] ,从而确定新增的系统零点。

这三种方法不会改变系统原来的零点多项式 [公式] ,除非发生pole-zero cancellation。

4.2 [公式] 的取值问题 Selection of [公式]

这部分参考[1,p525]。关于 [公式] 的取值,根据上一篇文章的结论,采用(b)标准形式,我们令 [公式] ,或者 [公式] 。这样我们的稳态响应就能跟踪上参考信号的稳态。

关于(c)的tracking-error estimator,显然(20)告诉我 [公式] 。这是经典控制中稳定误差的方法, 误差可以稳态最终为0,而且是单位反馈,不需要前馈增益的参与。

关于(a)中 [公式] 的选择,同样的,我们需要 [公式] 能够满足 [公式],即输出稳态时和参考信号的稳态是相等的。我们选择 [公式] 标准就是选择 [公式] 使得整个闭环系统的稳态增益为1(Unity closed-loop DC gain)。学过经典控制的都知道,DC gain表示的是系统稳态时的增益,即系统输出稳态值与系统输入稳态值的比值。既然要让输出跟上参考输入,我们自然需要让闭环DC gain为1。

根据图(a)的配置和(17),整个闭环系统有:

[公式]

选择根据(31)整理出矩阵形式:

[公式]

所以其传递函数根据经典公式 [公式] ,就有:

[公式]

我们使用unit step function作为input,目标输出也应该是1,这样就拥有了unity DC gain了。利用final value theorem最终稳态值:

[公式]

其中 [公式] 的值是我们根据零点位置要预先设计好的。令 [公式] ,我们可以的得到:

[公式]

这样选择的 [公式] 就可以使得最终的DC gain为1。

Reference 参考文献

[1] G.F. Franklin, J.D. Powell, A.Emami-Naeini, Feedback Control of Dynamic Systems, 7th Edition, 2014, Pearson

[2] 刘豹 唐万生,现代控制理论(第三版),2006, 机械工业出版社