本文为原创,如有错误疏漏,烦请指出。如需转载,请联系笔者,ask.shenyue@http://gmail.com。
一、求系统响应就是求解一阶微分方程
线性系统:
首先问题是,为什么所有的系统都能写成一阶微分方程?因为任何一个n阶微分方程,永远都可以通过将状态扩展为
的列向量,写成n个一阶的微分方程。例如一个挂在弹簧上的质量为m的小球:
。它是一个二阶微分方程,我们可以通过令
将这个二阶微分方程,写成两个一阶微分方程:
,状态量扩展为
的列向量
。
给定线性系统的状态方程
,A为n阶方阵,B为输入矩阵,假设状态
,输入
。看系统的响应,本质上是,给定初始状态
,根据系统的一阶微分方程
,要算出任意时刻t,状态量
等于什么。高等数学中学过求解微分方程,而状态方程
只是一阶微分方程,还是线性的。在高数课程上,这是一类最容易求解的微分方程,解的形式固定:
由于输出
,将x(t)代入到输出方程,我们有
.
二、可控性的本质
可控性(controllability)的定义:
给定一个控制系统(线性或者非线性),给定初始状态
和初始时间
,假设你想要在某个你指定的时间
让状态
等于你想要的
,如果你可以通过设计u(t)来达到你的目的,那么系统就称作
状态可控;如果你不管怎么想方设法地设计u(t),都无法让x(t)在你想要的时刻
等于你想要的
,那么系统称作是
状态不可控。
我们知道状态x是n维,
,状态可控也就是希望所有n个状态都可控。但是实际问题中,我们可能只想要
可控,其他的状态你不care或者不重要。
探索可控性(controllability)本质与矩阵A的相似对角化的关系(线性系统):
线性状态方程
的解:
由可控性的定义,你想要在时刻
到达你想要的位置
,也就是
令
,有
对A矩阵进行对角化是为了把系统等价转换成相互独立的子系统:
重新回到线性状态方程
,假设存在P阵(由A的n个线性无关的特征向量组成)让A相似对角化
(详细请参考矩阵的特征值、特征向量与相似对角化),那么令
,我们有
。那么我们可以有
,变成了
n个相互独立的子系统了。
A矩阵对角化使得可控性分析一目了然:
所以对于第1个子系统,只要
的
(
矩阵的第一行)不全是0,那么就可以求解该方程的输入u使得
等于任意我想要的位置。如果第i个子系统
和第j个方程
中的
是同一个特征值,也就是
,而且恰好
也相等或者
(
是),那么
就必须等于
或者
必须等于
,也就是
不能任意选取,不符合可控性的定义,也就是系统不可控。所以如果
A矩阵可相似对角化成
中相同特征值
不能线性相关。
那么问题来了,对于那些不能相似对角化而只能约当块对角化的A矩阵(详细请参考矩阵的特征值、特征向量与相似对角化),可控性的条件又是什么?
假设A有r个特征值,
维(几何重数)特征空间,
维(几何重数)特征空间,一直到最后的特征值
维(几何重数)特征空间。所有特征空间一共有
维,那么约当对角化后的
有m个约当块,
,
系统相当于m个独立的子系统。其中,
对应
个约当块,也就对应
个(几何重数)独立子系统;
对应
个(几何重数)独立子系统,以此类推。所以类似分析,
相同特征值
对应的不同约当块的最后一行都是只有
,例如
或者
,所以对应
的那一行必须线性不相关。
我们还可以得到,如果某个特征值
的eigenspace有
维,所以它就对应
个约当块,所以这
个约当块对应的B的那
行(A中的
个同一个特征值的约当块的最后一行)必须线性不相关。如果输入u的维数
,那么这对应的
行怎么也不可能线性不相关,系统不可控。所以我们说,
A矩阵的任何特征值对应的eigenspace维数(几何重数)必须小于等于输入u的维数。