最近几篇文章的阅读量不大,我也能理解:毕竟到了真正hardcore的部分了,能真的深入认真学习的人也肯定会少起来。这几天疫情搞得人人自危,在家何不好好学习呢?

我们从这篇开始关注另外两个状态空间设计法中重要概念:能观性(observability)与能构性(constructibility)。

在这篇之前,我写了3篇文章专门针对能控性与能观性。在这3篇文章中的分析思路可以完全套用到observability和constructibility的分析上。如果你没有看过前面3篇文章,请花时间把大概读一读。如果你对线性代数的理论比较熟悉,那么那3篇文章就不会很难。

能控性问题和能观性问题之所以分析思路如此接近,我们还可以给出另外一个解释:那就是对偶原理(Duality)。一个系统的能控性问题可以转化为对偶系统的能观性问题。所以本质上研究能控也等同于研究了能观,反过来也是一样。

关于能观与能构的讨论我会尽量语言简洁,绝大多数的结论和分析思路和之前讨论的能控与能达是一致的。

本篇目录

1. 为什么提能观性和能构性? Why Observability and Constructibility ?

2. 能观性和能构性的初步概念 Intro of Observability and Constructibility

3. 探究能观性和能构性:从离散LTI系统出发 Difference from Discrete LTI System


1. 为什么提能观性和能构性? Why Observability and Constructibility ?

在状态空间法设计控制律时,我们常常会用到状态反馈(state feedback control),更确切的应该是全状态反馈(full-state feedback control)。控制设计这块,我们在后续的文章中可以再回顾,我在这里稍稍解释一下: 也就是我们在反馈控制中需要把状态向量 x 乘上对应的增益矩阵 K ,然后得到负反馈规律:

[公式]

当然也可以进行输出反馈(output feedback),但是输出反馈某种程度降低了控制设计的自由度,一般都是不如全状态反馈来的好的。现在问题来了,控制律设计完了,系统稳定了,都没有什么毛病,那请问状态向量 x(t) 如何得到呢?

这是一个全状态反馈设计中要解决的至关重要的问题。按照刚才的思路,我需要测量出所有的系统状态,否则我就无法得到反馈信号。

但这是一个几近疯狂的假设:要是系统的状态上百上千,你需要多少个传感器才能完成这样的“宏伟”设计?从设计成本上考虑,你已经一筹莫展了。这时候人家PID控制工程师乐呵呵地跑来调调参数,三下五除二就把问题解决了,老板拍了拍你的肩,意味深长地说:小伙子,一直以来你辛苦了...

一个好的控制工程师应该懂得如何去优化自己的设计,以最小的成本解决问题,那就是为企业创造效益。比如用最少的传感器解决同样的问题,不仅节约了经费,简化了调试经历,同时也提高了系统的带宽。除了个别小系统可以比较容易地测量全状态,大部分系统的全状态测量都是一个问题。

构造全状态的问题,就是我们后面会提到的观测器问题。我们先暂时不说。状态空间法设计中full-state feedback的一个前提就是必须能得到状态向量。很多时候虽然我们不能直接测量所有的状态,或者测量起来困难,成本高等等,我们还是有输出可以直接测量。我们知道了输出之后,是否可以对全状态进行某种程度的重构呢?这种做法是否是可能的呢?

于是我们的能构性和能观性问题就是讨论状态重构的可能性

2. 能观性和能构性的初步概念 Intro of Observability and Constructibility

2.1 能观性的概念

这两个概念之间的关系简直和能控能达之间的关系一模一样。依旧是一个着重于初始状态,另一个着重于终端状态。废话就不多说了,先给定义:

Observability:给定任意输入 u ,初始时刻 t0 处的状态 x(t0) 如果能够被系统的输出
 [公式] 
,[公式]唯一确定,那么初始状态
[公式]就是能观的(observable)。如果
[公式]的值可以取便整个状态空间,那么系统的就是完全能观的。

关于此定义我们有几点要注意:

  • 在这里为什么我不care控制输入 u 了呢?因为我考察的是从输出 y 中还原 x 。假设输入为 u1 ,以LTI系统为例

[公式]

我们知道通过状态方程的解受到初始条件和输入两部分的影响

[公式]

所以后面这积分部分是由输入 

[公式] 造成的影响。从

 [公式]中我们能够减掉这部分影响,这并不会影响初始状态

 [公式]  y之间的确定关系。所以索性 让u=0 ,我们就有

[公式]

  • 那么既然有了 (1) 我们是不是直接这样求初值状态就行了呢?

[公式]

然而由于输出的维数一般都会小于状态变量的个数,于是

 [公式] 就可能不是一个方阵,逆也因此不存在。于是问题不能这样求解。

  • 我们最后的目的主要还是求取其他时刻的状态,因为要做实时的状态反馈,光知道初始时刻的并没有用。不过我们把

 [公式] 

 [公式]代入到

[公式]

就可以解出来 x(t) 了,当然只能到观测终止时间

 [公式] 

2.1 能构性的概念

它关注的问题和能观性异曲同工。看定义:

Constructibility:给定任意输入 u ,终端时刻
 [公式] 处的状态
 [公式] 如果能够被系统的输出
 [公式] ,
[公式] ,唯一确定,那么终端状态
 [公式]就是能构的(constructible)。如果
[公式]的值可以取便整个状态空间,那么系统的就是完全能构的。

我们把终端时刻看作现在,那么能构性表征的是当前的状态能否过去和当前的输入 y(t) 唯一确定的性质。很显然,作为状态反馈控制设计,我们更关心的是Constructibility。当前的状态是能构的,那么我就可以利用它进行反馈控制。不过不用担心,下面我们会讲,其实能观已经能够直接推出能构了,所以我们用能观性的概念更多。

我们有必要再次从离散LTI系统的例子中讨论这两个概念的差别。(这部分和之前能控和能观的第一篇文章中的讨论思路是一样的)。

3. 探究能观性和能构性:从离散LTI系统出发 Difference from Discrete LTI System

3.1 讨论能观性

现在就考虑一个离散LTI系统,我们就不用考虑输入了,所以直接让它为0。理由上面已经说过了。

[公式]

系统的解我们之前就已经讨论过了,简单起见我们取 [公式] 开始 [公式]

[公式]

把计算 y(0) 也算作一步,所以到第 k-1 步我们有

[公式]

k 的值随着时间还会继续增加,在这里我们就直接导到 n-1 步,我们就等价于考察下面这个方程组有解的条件

[公式]

总共有 nm 个方程,而状态最多只有 n 个。为了从给定的 y 确定 x0 实际上只需要 n 个方程就足够了。方程多了,也没用,不然只能用最小二乘法来求得最优解了。那么话说回来,为什么必须写到 n-1 步呢?实际上,如果 m=1 ,那么理论上必须写到 n-1 步才能保证

 [公式]  n 行,才允许其秩能够为 n ,才能使得方程有解。如果 m>1 ,那么其实只要取前 n 行就够了,后面的都是多余的,所以不必一定要写到 n-1 这一步了。不过为了统一单输入和多输入起见,

 [公式] 就是由 n 行矩阵

 [公式] 构成的。

所以其实能观性的充要条件我们已经得出了:我们定义

 [公式] 为能观性矩阵(observability matrix),只要其满秩,即

 [公式] ,离散LTI系统就是能观的。

多说一句,因为行秩和列秩相等,所以满秩就是指秩为 n,行数 nm 在这里总是大于等于列数 n 

* 注意,我们换个深入角度理解这个公式:

[公式]

由于

[公式] 

[公式] 的矩阵,所以它是一个把向量从n 维空间变换到 nm 维空间的线性变换。那么它的零空间的维度,就等于

 [公式] 。如果

 [公式] 满秩,则零空间只有零元素,即不存在任何其他非零元素。这代表 y ,除了

 [公式] 之外时,始终落在

 [公式] 的像空间中,并且肯定是非零的。同时也告诉了我们,如果初始状态

 [公式] ,那么 y 也必定为0。至此,给定一个 y 不管是 0 也好,还是非零也好,我都可以唯一确定

 [公式] 

要是

 [公式] 的秩不满,则

 [公式] 的零空间

 [公式] 就是不能观子空间。因为存在一些非零的初始状态对应的输出为0。所以光从输出里已经无法唯一确定初始状态了。

3.2 讨论能构性

对于线性系统,我们依旧假设控制输入为 0 ,这样输出就只是由于初始状态所引起的。那么我们在上面的分析中已经得出了

[公式]

给一组 y ,至少大于等于n个输出,并且

 [公式] 是满秩的,我们就能唯一的解出

 [公式] 来,这就是能观性的含义。

知道了

 [公式] ,我往解公式里一代,那终端的状态我一样能够得到(这里用了连续LTI的解公式,应该用离散的,懂就行):

[公式]

所以我们立刻能得到一个结论,至少对于离散LTI系统而言:

[公式]

所以我们研究了observability自然就能得到construtibility,挺不错的结论。

那么我们如果不满足系统observable呢?也就是说

 [公式] 是不满秩的。此时,我们知道方程

[公式]

是存在非零解 

[公式] 的。针对输出 y=0 而言,

 [公式] 中的

 [公式] 就不是唯一确定的了,零空间至少是1维的,具体维度取决于秩与 n 的差值。这样一来,由 y=0 ,我们可以确定不止一个

 [公式] 作为系统的初始状态。那么此时根据输出 y ,我们可能可以构造的终端状态就是(由于控制我们假设为0,这里也可以不写出来后面的部分) [公式]

这个时候我们就发现,即便一个状态在

 [公式] 是constructible的,但是根据observability的定义,其无法被 u=0,y=0 唯一确定,所以说,它不是observable的。

此时离散LTI系统能够通过 u,y 得到的状态是 

[公式] 的集合,即

 [公式] 其中只有 x(k) 是因为能观的

 [公式] 而根据解构造出来的,而

 [公式] 却是因为其初始状态

 [公式] 在不能观子空间中才被构造出来的,即处在

 [公式] 的零空间

 [公式] 中,或者

 [公式] 。由于

 [公式] 取决于

 [公式] ,而后者是不能唯一确定的,所以

 [公式] 是不能构的。我们根据上面的观察就发现,离散LTI系统的状态 x(k)contructibility条件是:

[公式]

也就是说在第k步,所有在不能观子空间中的初始状态

 [公式] ,都在

 [公式] 的零空间中。我们至少需要 n 步才能让系统满足能构,那么

[公式] 只要在

 [公式] 的零空间中,就能使系统能够,即:

[公式]

再强调一遍,因为我们的目标就是要给一组

 [公式] 唯一确定一个

[公式] 。现在我能同时确定出好几个初始条件 

[公式] 来,自然就不是observable的。

那么注意了! 如果输入u 不为零,我们还是可以根据解方程得到(这里我采用连续LTI公式,其实应用跟上面一样用离散解的形式,不过是为了让你看的舒服些):

[公式]

所以此时等价讨论的就是当

 [公式] 时,矩阵

 [公式] 的零空间维度大于等于1的情况了,即初始状态无法唯一确定。因此我们说:

[公式]

由此从离散LTI系统的分析中我们得知:

能观则能构,能构却不一定能观。

但是对于连续的LTI系统而言,我们就能得到:

[公式]

即它们相互等价!

我们下一篇再叙述。

这些概念是理解基于状态空间法的控制设计的一个基础。


参考文献 Reference

  1. 第一节的动机在看多了资料之后自然能够体会。这里我要再次推荐Franklin的Feedback Control of Dynamic System一书。它在每次你产生了类似疑问的时候,总会恰到好处地留下comment来帮助你理解这些概念提出的意义和历史,还有工程实际中需要注意的种种问题。在原书中关于全状态反馈,它在正文就这样说到(7th Ed. Page465):We assume for feedback purposes that all the elements of the state vector are at our disposal which is why we refer to this as “full-state,” feedback. In practice, of course, this would usually be a ridiculous assumption; moreover, a well-trained control designer knows that other design methods do notrequire so many sensors. The assumption that all state-variables are available merely allows us to proceed with this first step. 它的书确实是一本入门控制理论的极佳教材,尤其是经典控制理论部分,解释地非常清楚。不过对更深入的线性系统理论,要继续阅读更多书籍才能有更好的认识,FCDS只是一个入门。我写这些文章的动机除了满足自己查阅的需要,还有就是想创造自己心目中的那种控制教材。当然目前这些只能作为一个注解,就好像四书五经无疑是经典,我只是看的比较多,就给诸君注解一下。
  2. 找了两篇类似lecture note的东西,如果你英文过关就自己看看吧: