上一篇中简单介绍了关于Kalman Decomposition的一些简单数学知识。这一篇将会把状态空间的完全分解的思路大致讲完。线性系统的一个基本性质就是其状态空间可以分解为四个子空间,将来这种decomposition也可以试着推广到nonlinear control systems。

我们在这里只回顾LTI系统的状态空间分解。至于LTV系统和线性离散系统在这里就不展开了,若是有研究需要可自行查阅文献。我们重要的是要理解这种分解的由来和意义

本篇目录:

9.1 矩阵的基变换 transformation of matrix via changing basis

9.2 能控与能观状态子空间分解 Decomposition into controllable and observable subspaces

9.3 卡尔曼分解 Kalman Decomposition

9.4 最小实现 Minimal Realization

9.5 能控能观与传递函数零极点的关系 Relationship between z/p and minimal realization


9.1 矩阵的基变换 transformation of matrix via changing basis

我们首先需要简单回顾下线性代数基本知识。一个 [公式] 维空间 [公式] 中的元素 [公式] 可以由空间中的一组 [公式] 个向量组成的基 [公式] 唯一表示:

[公式]

在另外一个基 [公式] 下我们还可以得到另外一组坐标 [公式] 。这两组基之间的坐标是可以相互转化的。因为 [公式] 也是空间中的元素,可以由 [公式] 来表示,所以我们可以得到这两组基之间的关系:[公式]

其中 [公式] 是一个方阵矩阵,每一列都是 [公式] 在基 [公式] 下的坐标,我们把这样的 [公式] 叫Transition matrix 或者 Change of coordinates matrix,中文里叫过渡矩阵(见[2] P144)。所以元素 [公式] 的一组在 [公式] 基下的坐标(这里作为列向量) [公式] ,在 [公式] 基下为 [公式] ,我们有:

[公式]

由于 [公式] 是线性无关的,系数唯一确定,我们根据(3)得到: [公式] 。所以在 [公式] 基下的坐标为 [公式] 

现在有一个线性变换 [公式] ,我们已经知道如果选定一组基比如上面的 [公式] ,我们就可以写出线性变换 [公式] 对于 [公式] 的变换结果:

[公式]

所以任何 [公式]  [公式] 的像只需要知道原来的基 [公式] 在线性变换下的像就可以得到。我们如果仍然采用 [公式] 来表示 [公式] ,那么我们就得到了 [公式] 在基 [公式] 下的矩阵:

[公式]

以第一列为例 : [公式] 。于是就有

[公式]

根据(4)结合(6),我们就得到了:

[公式]

可见原来 [公式]  [公式] 下的坐标为 [公式] ,但变换后在 [公式] 下的坐标为 [公式] 。所以用坐标记,我们得到:[公式]

(8)表明了线性变换(指的是从自身空间到自身的映射,维度不改变)在一组确定的基下,可以由一个唯一的方阵来表示。

方阵的具体形式是由基决定的。我们在上一篇文章中也已经讲过,如果基选的好,我们可以让这个方阵中的大多数元素为0,从而方便我们计算。因为一个线性变换 [公式] 在有限维非零空间中总存在一个特征值,从而至少存在一个特征向量使得 [公式] ,把这个向量当做第一个向量,然后扩充成 [公式] 的一个基,总能出现至少第一列第一行元素为 [公式] ,第一列其余元素为0的矩阵。我们之前说过如果能找到 [公式] 的一个 [公式] 维的不变子空间 [公式] ,那么以这 [公式] 个向量扩充成 [公式] 的一组基,在此下线性映射的矩阵是一个上三角分块矩阵。

在一个一般的基 [公式] 中表示矩阵为(5)。如果我们说 [公式] 是另外一组基,那么其表示下的矩阵 [公式] 。如果我们之前已经得到了从 [公式] 基到 [公式] 基我们有一个坐标变换矩阵 [公式] 

[公式]

所以我们得到变换后的像在 [公式] 下的坐标可以写成 [公式] ,并且可以由原来的 [公式] 基下的矩阵来表示为: [公式] ,这正是相似矩阵的定义。所以同一个线性变换在不同基下的矩阵都是相似的,它们拥有相同的特征值。

9.1 能控与能观状态子空间分解 Decomposition into controllable and observable subspaces

如果把 [公式] 维LTI系统的演变看作是一系列 [公式] 维线性空间中[公式] 线性变换,那么系统矩阵A就是这一系列线性变换中非常重要的一个矩阵。从线性LTI系统的解来看,

[公式]

初值向量 [公式] 会被 [公式] 变换,根据Cayley-Hamilton theorem我们知道实际上 [公式] 将被 [公式] 决定的线性变换所变换并求和(当然也可以不用定理,直接写到无穷幂)。而输入部分也同样会受到 [公式] 的影响。

矩阵A不过只是线性映射在选定基下的一种表示形式而已。这取决于我们在分析问题时如何选取坐标系。我们完全可以重新选择线性变换的基,即重选坐标系,得到其他形式的系统矩阵,即A的相似矩阵。现在假设系统不能控,能控子空间维度为 [公式] 

上一篇中我们发现如果能找到系统中的一组基构成 [公式] 空间中 [公式] 的不变空间 [公式] ,那么我们就能把原来的系统矩阵通过相似变换,变成上三角矩阵。如果 [公式] 还能完全分解成一维不变空间的直和(特征空间),那么映射在此基的变换下可以对角化。而我们之前讨论的能控与能观子空间就是这样的不变子空间。取LTI系统的系统矩阵A,它代表了某个线性映射 [公式]  [公式]维状态空间中的某个基下的表示。由于这个 [公式] 维空间也可以分为能控子空间与不能控子空间的直和。假设能控子空间是 [公式] 维的,那么不能控子空间就是 [公式] 维。我们便可以在能控子空间中取这[公式] 个列,在不能控子空间中取 [公式] 个列来表示状态空间中所有的 [公式] ,于是得到空间中另外一组基。

很有意思的是,我们发现 [公式] 个向量组成的基张成的能控子空间 [公式]  [公式] 的不变子空间。这里我拿单输入的情况证明一下,多输入的情况无非就是 [公式] 不是一个向量,所以就会多几列,要写好多符号,道理是一个道理。假设单输入的情况,能控矩阵只有 [公式] 维:

[公式]

假设原来的A与 [公式] 是在基 [公式] 下表示的。现在证明(11)是 [公式]  [公式] 的不变子空间。我们在 [公式] 中取一个元素,其一定可以表示成所有列的线性组合:

[公式]

当然其中有线性相关的列,我们知道其实只要 [公式] 个列就能表示 [公式]  [公式] 个列是这个能控子空间的基,我们就叫 [公式]。那么实际上我们只要看 [公式] 是不是还在这个 [公式] 中就行了。我们记 [公式]  [公式] 下的坐标是 [公式] ,这里的 [公式] 的具体形式就是 [公式] 中的 某一列。(每一列其实都可以表示成[公式] 的组合,所以 [公式] 都只是坐标)。

那么我们根据(8)就有 [公式] 。意思就是我们讨论一个向量的像是否还在能控子空间中,即讨论其坐标变换后新坐标是否还能由原来的d个基向量 [公式] 表示。显然 [公式] 的形式是 [公式] 。 根据Caley-Hamilton定理我们知道 [公式] 是可以由d个形如向量 [公式] 的向量表示的,于是得知 span([公式]) ,即能控子空间,是 [公式] 的一个不变子空间,也可以说是A的不变子空间。

这样取前 [公式] 个向量就可以表示能控子空间中的所有状态,我们用这一组新的基(n个基向量)来表示 [公式] 所代表的线性变换 [公式] ,新坐标下的矩阵 [公式] 就称为了一个上三角矩阵。

[公式]

原来的 [公式] 可以由新坐标系下的 [公式] 表示:

[公式]

默认把 [公式] 的基当做标准基,所以这里的transition matrix [公式] 的每一列就直接由新的基向量直接构成。 [公式] 。其中 [公式] 是由能控子空间中最大线性无关组构成的, [公式] 则是任意使得 [公式] 为nonsingular的线性无关组,显然就是不能控子空间的基。如此排列的话,我们就知道状态空间中前 [公式] 个状态能控,而其余则不能控。其实也就是换了一组基,得到了相似矩阵而已。

这样一来,整个状态方程就可以写成:

[公式]

而输出方程也变成了:

[公式]其中 [公式], [公式] ,根据能控子空间的定义,显然所有的 [公式] 的列都在能控子空间中,那么不能控子空间对应的分量都为0。 [公式] 也被分为了前 [公式] 个分量和剩余的分量。

这样原来的系统就被分为了两个子系统,一个能控,一个不能控。

[公式]

如果画出系统结构图我们就会发现,子系统部分是不受到 [公式] 控制的。

单输入LTI系统的能观性的分解完全就可以按照对偶系统能控性分解,然后再转置回来,因此就不赘述了。而多变量系统的能观性和上面的做法是很相似的,也是依靠 [公式] 其中的线性无关向量扩充得到非奇异变换矩阵,参看相关资料就可以理解了。

9.3 卡尔曼分解 Kalman Decomposition

对于一个LTI系统而言,一般情况下总可以分解为四个子系统,分别是能控、能观、不能控与不能观四个。如果系统正好是能控或者能观,那么就无法分成四个子系统了。这里讨论一般的情况。

所谓Kalman Decomposition也就是把LTI系统分成四个subsystem的过程。我们按照上一节的做法,完全可以先进行能控性分解,再进行能观性分解,得到最终的分解系统。但是也可以用过寻找一个nonsingular的线性变换一步到位。不过这种操作一般也都是依靠MATLAB或者自己写程序来完成的,不然状态数量一旦增加那简直就是灾难。

对于Kalman Decomposition来讲,最为关键的就是找到那个nonsingular的矩阵,本质上就是让系统进行非奇异线性变换,得到一组基下的特殊形式。可想而知,这一组基,必须由即能控又能观,能控不能观,能观不能控,既不能控也不能观的四组基组成。这一个过程我们采用MATLAB的命令minreal来完成:

Minimal realization or pole-zero cancellation

我在看相关资料时,也看到optimal方法分解,可以参考下面这篇文章的内容:

总之有许多资料已经讨论过具体该怎么分解比较好了,作为实现功能,我们直接采用MATLAB就可以了。MATLAB作为商业软件一大特点就是: 算法成熟。人家毕竟是要赚钱的,公司拿来要实用的,所以东西都比较可靠。

9.4 最小实现 Minimal Realization

实际中测量的impulse response来得到传递函数或者传递函数阵还是相对容易一些,困难的是确定一个具体的实现。对应同一个传递函数的实现有无数种,我们根据需要要寻找合适问题的实现,当然我们希望找到维度最小的实现,也就是最小实现的问题。也不是所有传递函数阵都能实现的,但是从实际角度来看,实测得到的当然是可以实现的。

那么传递函数(阵)最小实现的充要条件就是系统能控且能观。所以是不是最小实现,先选择一种能控或者能观实现方法,这样系统就起码是能控或者能观的,再检验是否也是能观或者能控,从而断定其是不是最小实现。上面的MATLAB命令已经能够帮我们了。

9.5 能控能观与传递函数零极点的关系 Relationship between z/p and minimal realization

一个单输入LTI系统要能控且能观的充要条件其是传递函数零极点没有发生相消。

如果我们有一个传递函数,其不存在零极点相消,那么它所能代表就是系统的能控与能观部分,因为传递函数本来就是一个输入输出模型,能输入也就能输出。如果一部分输入不起作用,一部分输出观察不到,那么它们将无法被传递函数所描述。

如果发生了零极点对消,那么根据不同的实现,系统具体可能是只能控,只能观,或者既不能控也不能观。要尽量避免零极点对消,否则就会存在一部分内动态,其稳定性不经过分析是可能造成严重后果的。

这里注意一个问题: 我们说是否发生零极点相消一定是要在没有简化传递函数的基础上讨论,不然人为已经分母分子相消了,那结果看起来一定是个正常的传递函数。所以根据一个未简化的传递函数来实现,是无法能到既能控又能观的系统的,因为可以找到比其维数更小的系统(通过简化)。因此只有一个没有零极点相消而降维的传递函数,才能得到与传递函数对应系统维数相同的最小实现。实现时可以系统升维,添加不能观不能控的部分,但最小维度一定是传递函数分母的次数,只对应能控且能观的部分。

MIMO系统的传递函数阵并不满足这个充要条件,零极点相消只是系统最小实现的充分条件。如果有零极点相消发生,系统还是可能为最小实现。

Additional Reference

[1] 现代控制理论(第三版) 刘豹 第三章

[2] 工程数学-线性代数 同济(第五版)第六章

[3] Robust and Optimal Control, Kemin Zhou, Chapter 3 Section 3

[4] Linear Algebra Done Right, Chapter 5


线性系统理论对于线性代数的要求比较高,而对于应用来说,没有必要探究过深。有很多不错的结论我们直接拿来使用,以及MATLAB中有比较成熟的工具(我之后再专门写文章介绍一下)可以使用,帮助我们高效地解决问题。关于系统分解,暂时了解到这一步就可以了。这也早就是不是什么科研的热点了,上面这篇paper都是80年代的了。

不过在整个课程的框架中,我们要清楚Kalman Decomposition是后续反馈设计与状态观测器设计的基础。我们的传递函数只能实现系统的能观与能控的部分,以及对应同一个传递函数或者传递函数阵的具体实现不是唯一的。寻找最小实现就是一种简化模型的方法,我们以后在其他文章中会再提。

接下来的几篇文章我会开始介绍线性系统控制的设计问题。关于Lyapunov稳定性定理,我不打算在这里专栏中展开讨论。如果之后有时间,我会更新非线性系统的基础知识,然后在那里再展开Lyapunov稳定性定理。

我们目前讲到的这些东西,也就上世纪70,80年代的水平。现在要学的东西真是太多了。