敲黑板了!核心知识警告!

从这篇开始介绍线性系统理论中的最核心概念:Kalman Decomposition。正是基于Kalman Decomposition这种对状态空间的分解,我们才能得到传递函数真正能够实现的“最小规模”的系统:即最小实现(minimal realization)问题。我们在第一篇文章中就已经提到过了,我们后面的文章还会继续提。

如果阅读有困难,请回顾之前文章或者多读几篇。还有好好阅读我给出的几个关于线性代数的回答,都是我觉得解释不错,才贴出来的。我个人虽然都理解,不过建议初学者还是要看好的材料才能更快上手。

这篇着重介绍线性代数的基础,下一篇我们正式讲能控性分解。(线性代数的知识对一个正常工科生来说体系过于庞大,你看看我po的台湾周老师的博客上的文章,你就会发现自己是多无知了。不过我们抓住几个常用的基本定理和重要概念即可。一些细节暂时用不到就不用管了。)

本篇目录

1. 卡尔曼分解概述 Intro of Kalman Decomposition

2. 从不变子空间说起:矩阵的简化 Start with Invariant subspace


1. 卡尔曼分解概述 Intro of Kalman Decomposition

我们在经典控制理论中学过传递函数法表示系统模型。在传递函数中如果出现零点与极点相同并相互抵消的现象,称之为零极点相消(Pole-zero cancellation),那么这时候传递函数实际上是不能完全表示系统的动态,因为有一部分的系统模态可能不受到输入的控制,或者一部分系统状态无法在输出中体现,又或者两者都有。

这些不能控或者不能观的状态构成了线性系统状态空间中的不能控子空间(uncontrollable subspace)不能观子空间(unobservable subspace)。所以,给定了一个传递函数,或者传递函数阵,它实际能够代表的就只是系统的能控与能观部分,因为给定一个传递函数,实际中能根据它实现的状态空间表达式有无数多种。其中维度最小的,自然就是能控且能观这一部分子空间,称之为最小实现

我们之后设计控制时候,一般都是要针对传递函数的最小实现部分来设计的,或者说是能观能观子空间。因为不能控,意味着输入无法改变系统的对应不能控状态;不能观,意味着从目前输出与输入中无法重构系统的状态。

有一点需要提醒的是:能控与能观也是会随着控制矩阵和输出矩阵的改变而改变的,比如一个状态在系统拥有某种输出矩阵 [公式] 时是可能是unobservable的,但是如果我们能够改变输出矩阵,测量更多的信号,那么该状态有可能是observable的。所以说一个状态有时虽然不是能观的,但这并不代表它是物理不能够被测量。一个状态在某种控制矩阵下是不能控的,但并不代表实际上一定没有办法控制,我们可以改变设计来达到能控。所以能控与能观都是基于当前模型设计和测量方法而定的,它并不是绝对的。

那么已经给定了一个系统了,我如何寻找其最小实现呢? Kalman Decomposition正是这个问题的答案。

2. 从不变子空间说起:矩阵的简化 Start with Invariant subspace

在正式开始讲能控性分解之前,我们先讲讲线性代数的一部分知识。根据我的学习经验,只要你线性代数过关,学线性理论真的是易如反掌,理解起来不费吹灰之力。我在这里只写关键部分,剩下的大家参看我给参考资料,或者自行寻找资料。

2.1 基本概念

我们先说说子空间。向量空间的概念我想大家都熟悉,集合中的元素只要满足叠加性和齐次性,还有剩余的几条公理,就把一个集合称之为vector space,也叫线性空间(linear space)。其中如果它的子集中也有满足这些条件的,我们就把它的这种子集称为子空间(subspace)。所以子空间中的元素加减之后仍然在子空间中,数乘之后也落在子空间中,这点和vector space一样。一组向量(无论是否线性无关)所处的最小子空间就是由它们张成的空间。

那么针对一个向量空间 [公式] 不变子空间(invariant subspace),就是指针对一个子空间 [公式] ,有一个线性映射 [公式] ,其中把元素映射到原来空间的线性映射也称为线性算子。一个线性空间 [公式] 可以“分割”为一系列不相交子空间(只拥有共同元素:0向量)的direct sum(直和):

[公式]

关于direct sum的意义可以参考下面这个回答:

简单来说, [公式] 中任何一个元素 [公式] 能够唯一地用 [公式] 来表示为:

[公式]

根据线性映射的性质:

[公式] [公式] 进行分割,我们便可以将对线性映射[公式] [公式] 中的性质,分别在 [公式] 的不同子空间 [公式] 中进行研究,然后再线性叠加起来。如上面的回答中所述: 分而治之的思想。为了让 [公式] 的行为在各个子空间中是独立的方便研究,我们便要限定线性映射的作用范围,所以我们让每个直和分解的子空间都必须为 [公式] 的不变子空间,即 [公式] 。显然一个线性映射在 [公式] 上的零空间和像空间都是invariant的。

2.2 简化矩阵:分块上三角

利用不变子空间的性质,我们可以简化线性映射 [公式] 所代表的矩阵。考虑一个一般的线性映射[公式] ,我们知道所谓矩阵是线性映射的一种表达方式:其中的每一列,是原空间 [公式] 中的基 [公式]  [公式] 作用下,在目标空间 [公式] 中对应像 [公式] 在基 [公式] 下的坐标。因此如果选择不同的基,矩阵也就会变得不一样,但是它们仍然可以表示同一个线性映射。关于这点,只要学习过Linear Algebra Done Right,从线性映射的角度来理解矩阵,很多线性代数的问题就都可以迅速理解。你可以参考下面这个答案,希望能帮助你早日找到学习线性代数的窍门(这就是国内线代学了半天,学生依旧理解不到精髓的原因,学习角度开始就是矩阵,根本不知道矩阵怎么来的,和线性映射有什么关系):

针对线性算子 [公式] 和n维向量空间 [公式] ,由于 [公式] 本身一定是 [公式] 的不变空间(这不是子空间, [公式] 一定落在最大空间自身里),前后变换元素所处的空间是相同的,所以矩阵一定是一个方阵。考虑 [公式] 中的一组基 [公式] ,线性变换前后的基我们都选同一组 [公式] 。我们有变换结果:

[公式]

那么按照矩阵每一列的定义,其第 [公式] 列为就是 [公式] 。整个矩阵有 [公式] 列,于是构成方阵。

注意,如果我们取一组比较特别的基,比如特征向量,我们有可能发现这个矩阵是一个对角矩阵。没错,如果 [公式] 的特征值是互异的,那么在选择特征向量作为变换前后的基的矩阵就是对角化了的对角矩阵。这时候整个空间 [公式] 被分为了 [公式] 个不变子空间的直和,每个子空间都是1维的,满足 [公式] ,显然 [公式] 就是对角线上的特征值。

现在 [公式]  [公式] 中取 [公式] 个基,由它们张成的子空间 [公式] 。如果 [公式]  [公式] 的一个不变子空间,那么我们现在取 [公式] ,一定有:

[公式]

也就是说向量空间 [公式] 中的有一部分向量只需要用 [公式] 个基就可以表示,而剩下的 [公式] 基的坐标为0。而我们总可以改变基排列顺序,让这 [公式] 个基放到 [公式] 的前 [公式] 个。如此我们再看此时 [公式] 这个线性变换,在基[公式](变换前后都采用 [公式] 为基)下的矩阵就可以变成一个分块上三角矩阵( Block Upper Triangular Matrix)

[公式]

矩阵的前 [公式] 列由于不需要 [公式] 这些基来表示,它们的坐标于是都是0。而后面不属于 [公式] 的向量必须由全部基来表示。这也就是矩阵会呈现分块上三角的原因!

要是剩下的 [公式] 个向量也可以构成不变子空间 [公式] ,那么我们就知道此时有一部分向量不需要这前 [公式] 个基来表示,所以此时矩阵的右上角也全部为0,此时我们就发现原来 [公式]在基[公式] 下的矩阵变成了分块对角矩阵(Block Diagonal Matrix

[公式]以此类推,你就可以想象如果 [公式] 能够完全分为了 [公式]  [公式] 的不变子空间的direct sum,那么它在某组基下的矩阵就能成为一个block diagonal matrix,否则,如果有些空间不是不变子空间,那么该矩阵只能转化为分块上三角矩阵。

下一篇文章我们就根据这个知识,把原来的状态空间进行不变子空间的划分。我们之后会证明,能控子空间 [公式] 正是 [公式] 的不变子空间,从而我们可以通过一个非奇异变换[公式] 把原来的系统进行坐标转换(本质上是找到其不变子空间,然后把多余的基下的坐标都化为了零元)得到能控型分解。


参考资料 Reference

  1. 同样参考Kemin Zhou的Robust and Optimal control中Linear system部分来回顾一个大体思路。
  2. 这个链接的文章非常不错地解释了不变子空间的来龙去脉,我这里的思路是参考它的。不變子空間──解構線性算子的利器。事实上,不变子空间还关系着矩阵对角化与Jordan分块的知识,在这篇文章里可以清楚看到。PS: 这个网站关于线性代数的文章非常非常地好,建议有时间多看看。
  3. 一个中文的资料,可以简短回顾下线性代数和能控分解的概念,我们下篇会详细说。当然你也可以看看刘豹的现代控制理论,不过他并没有展开关于不变子空间的讨论,因此更想是为了考研而出的书。