如果某个\(b_i = 0\)那么就会有一部分无法控制
如果某个\(c_i = 0\),那么就有一部分无法通过输出\(y\)体现出来
最完蛋的情况就是不可控不客观,状态图有一部分直接悬空,这种情况就比较难搞。
上面就是对角阵的可观可控判据。
不幸的是,有一部分矩阵对应的相同特征值仅有一个无关的特征向量,这种情况下,矩阵无法相似对角化。但是可以变成约当阵。
约当阵没有对角阵那么好,但是也大差不差吧,能用。
约当阵举个例子
\[\left [ \begin{array}{c} \dot{x}_{11} \\ \dot{x}_{12} \\ \dot{x}_{13} \\ \hdashline \dot{x_{4}} \\ \end{array} \right ] = \left [ \begin{array} {ccc:c} a_1 & 1 & 0 & 0\\ 0 & a_1 & 1 & 0\\ 0 & 0 & a_1 & 0 \\ \hdashline 0 & 0 & 0 & a_4 \end{array} \right ] \left [ \begin{array}{c} x_{11} \\ x_{12} \\ x_{13} \\ \hdashline x_{4} \\ \end{array} \right ] + \left [ \begin{array}{c} b_{11} \\ b_{12} \\ b_{13} \\ \hdashline b_4 \\ \end{array} \right ]u\] \[y = \left [ \begin{array} {ccc:c} c_{11} & c_{12} & c_{13} & c_{4} \end{array} \right ] \left [ \begin{array}{c} x_{11} \\ x_{12} \\ x_{13} \\ \hdashline x_{4} \\ \end{array} \right ]\]可以看出,约当块以外的部分判断和对角阵一样,约当块是串联到一起的,因此关注最前面的东西。也就是约当阵判据比较关注约当块对应B阵的最后一行。对应状态图里站在最前面的那个状态的输入,反正后面都串在一起,直管排头,后面跟着就可以控制了。
相应的,可观性,只看队尾那个状态就行,因此判据关注约当块对应的C阵的第一列。
遇到相同特征值的约当块,为了直击本质,取一个特殊的约当阵,由前面知道了每个约当块的可控性只看状态图排头的那个输入就行,因此中间的变量的输入系数就取0,这样简化下来,每个单独的约当块一定是可控的,但是看看相同特征值的约当块组合起来会由什么问题
\[\left [ \begin{array}{c} \dot{x}_{11} \\ \dot{x}_{12} \\ \hdashline \dot{x}_{21} \\ \dot{x}_{22} \\ \end{array} \right ] = \left [ \begin{array} {cc:cc} 1 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ \hdashline 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 1 \end{array} \right ] \left [ \begin{array}{c} x_{11} \\ x_{12} \\ \hdashline x_{21} \\ x_{22} \\ \end{array} \right ] + \left [ \begin{array}{c} 0 \\ 1 \\ \hdashline 0 \\ 1 \\ \end{array} \right ]u\] \[y = \left [ \begin{array} {cc:cc} 1 & 0 & 1 & 0 \end{array} \right ] \left [ \begin{array}{c} x_{11} \\ x_{12} \\ \hdashline x_{21} \\ x_{22} \\ \end{array} \right ]\]凭借着对图的朴素感情和直观理解,好像上面的一块是可控可观的,下面的一块也是可控可观的。确实单独看是这样,但是如果仔细看看,会发现下面的不就是上面的完整复制了一份,只是状态变量变了个名字而已。
那么这时候还能叫状态可控吗?借用线性代数的话术说,这是不是就是线性相关的,在一个输入的作用下,这两部分没法自己变化自己的,所以这也是一种不可控,和前面一部分悬空的不可控不一样。
这种不可控是一部分会随着另一部分变化,这也是比较难搞的一种情况。
然后看可观性,其实思路是一样的,如果说为啥不把输出/2就能得到每个块的输出呢,这个问题就和为啥不把输入信号幅值*2一样。这是个特殊的例子,实际情况下,这个比例值不同,积分环节数不同,但是都是可以从这个简单的角度去理解。用特殊去理解一般,前面的东西可能说的不太精准,但是我觉得还是比较通俗的。
那么该如何操作才能使得系统可控呢,这个问题实际上就是输入维数和可控性的关系。首先至少要有两个输入,才有可能使得系统可控,使得上下两部分自己走自己的。
\[\left [ \begin{array}{c} \dot{x}_{11} \\ \dot{x}_{12} \\ \hdashline \dot{x}_{21} \\ \dot{x}_{22} \\ \end{array} \right ] = \left [ \begin{array} {cc:cc} 1 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ \hdashline 0 & 0 & 1 & 1 \\ 0 & 0 & 0 & 1 \end{array} \right ] \left [ \begin{array}{c} x_{11} \\ x_{12} \\ \hdashline x_{21} \\ x_{22} \\ \end{array} \right ] + \left [ \begin{array}{c} 0 & 0 \\ 1 & 0 \\ \hdashline 0 & 0 \\ 1 & 0 \\ \end{array} \right ] \left [ \begin{array}{c} u_1 \\ u_2 \\ \end{array} \right ]\]继承前面的思路,两个输入还是只操作排头的就行,最最最朴素的情感告诉我,上面部分一个单独输入,下面一个单独输入,这个系统一看就上下部分可以自己管自己。这一看就太可控了。然后两个输出,上面单独出下面单独出。
这就相当于一个拆两个,这才是真正意义上的,每个单独的约当块都可控可观。每个单独的约当块都像是一个独立的系统,互不干扰,也没有变化相关这一说。
到目前为止,全是直观感觉,还没有用到基础数学知识,接下来要向考虑更加一般的情况了。
两个输入有交叉,在一种特殊情况下和一个输入的效果相同,数学上叫"线性相关",大多数情况下虽然有交叠,但是也是可控的,这就是判据里的最后一行向量无关,系统可控的说法。
从抽象空间的角度考虑,一个输入是一个基,两个无关输入就是一个输入空间,输入部分是一个矩阵变换,如果变换时非奇异的,那么输入空间经过变换以后不降维,如果输入部分相关了,这两个输入可一个输入一样。
上面这么一堆,就是约当阵的可控性判据,做题的时候就两句话:
每个约当块末行对应的B的行向量不为全零行。
同一特征值的不同约旦快末行对应B的行向量无关。
更不幸的是,一般系统矩阵就是个普通形式的,就很难搞。
通过矩阵变换和以获得对角阵和约当阵,这是一个方法。而且有很直观的意义。
但是更多的情况时不想做变换,能不能直接通过一些运算,最好是简单一点的运算,起码比做变换简单的运算就能知道系统可控可管的情况。这个思路其实和劳斯判据一样,为了使用简单搞出来的数学方法。甚至名字都有相似的地方,叫做判据。
可控性判据
\[\boldsymbol{S} = \left[\begin{array}{c} \boldsymbol{B} & \boldsymbol{AB} & \cdots & \boldsymbol{A^{n-1}B} \end{array}\right]\] \[\boldsymbol{V} = \left[\begin{array}{c} \boldsymbol{C} \\ \boldsymbol{CA} \\ \vdots \\ \boldsymbol{CA^{n-1}} \end{array}\right]\]若可控可观,那么
\[rank\boldsymbol{S} = rank\boldsymbol{V} = n\]这是最一般的,随便拿来个什么系统,都能这么判断。
还有个输出可控性判据
\[\boldsymbol{S}_0 = \left[\begin{array}{c} \boldsymbol{CB} & \boldsymbol{CAB} & \cdots & \boldsymbol{CA^{n-1}B} & \boldsymbol{D} \end{array}\right]\] \[rank\boldsymbol{S}_0 = q\]q是输出维数
为啥要执着的知道可控可观性呢?
还是从对角阵来看,有发散的极点,要想控制,那么输入一定要能影响这个部分。
控制的方式是状态反馈,知道是啥状态才好反馈回去。
可控可观性是个大前提,就和研究稳定程度一定要先稳定一样。
要控制系统,先得可控可观。
可控性有状态可控性和输出可控性。一般说的都是状态可控性,只看状态方程就行。前面引入的例子我们可以一眼看出可控,但是稍微复杂一点的,就得用数学方法了,
A system is completely controllable if there exists a control that can transfer any initial state to any desired location in a definite time.
对于一个离散系统 \(x(k+1) = Ax(k) + Bu(k)\)
令\(x(0) = 0\)迭代式
\[\begin{array} {l} \left\{ \begin{align} x(1) &= Ax(0) + Bu(0) = Bu(0)\\ x(2) &= Ax(1) + Bu(1) = ABu(0) + Bu(1)\\ x(3) &= Ax(2) + Bu(2) = A^2Bu(0) + ABu(1) + Bu(2)\\ \vdots \\ x(n) &= A^{n-1}Bu(0) + \dots + ABu(n-2) + Bu(n-1) \end{align} \right. \end{array}\]换个形式表达也就是
\[\boldsymbol{x}(n) = \left[\begin{array}{l} \boldsymbol{B} & \boldsymbol{AB} & \dots & \boldsymbol{A^{n-1}B} \end{array}\right] \left[\begin{array}{c} u(n-1) \\ u(n-2) \\ \vdots \\ u(0) \end{array}\right]\]可控性说的是任意状态向量\(\boldsymbol{x}(n)\)都找得到输入\(\boldsymbol{u}\),那么数学上就是说上面那个矩阵方程有解,那么就要求
\[rank \begin{bmatrix} \boldsymbol{B} & \boldsymbol{AB} & \dots & \boldsymbol{A^{n-1}B} \end{bmatrix} = n\]这个也是可控性的秩判据。
对于可控性,还有个很好玩的问题,在相平面上,可控是点对点的可控呢?还是说轨迹上的可控。只能说是点对点,而且还是理论上的可控,实际情况还有一些物理上的限制。
单入单出系统,可控、可观测的充要条件是:由动态方程导出的传递函数不存在零极点对消(不可约)。可控的充要条件是\((sI-A)^{-1}b\)无对消。可观的充要条件是\(c(sI-A)^{-1}\)
如果系统矩阵A又n个相异的特征值,那么可以对角化。
传递函数
\[G(s) = c(sI-A)^{-1}b\]举个例子
\[\dot{\hat{x}}=A\hat{x} + Bu\]其中
\[A = \left [ \begin{array} {cc:c:c:cc:c} -1 & 1 \\ 0 &-1 \\ \hdashline & &-1 \\ \hdashline & & &-1 \\ \hdashline & & & &2 &1 \\ & & & &0 &2 \\ \hdashline & & & & & &2 \\ \hdashline & & & & & & &5 \\ \end{array} \right ]\] \[B = \left [ \begin{array} {} 0 &0 &0 \\ 1 &0 &0 \\ \hdashline 0 &2 &0 \\ \hdashline 0 &0 &4 \\ \hdashline 0 &0 &0 \\ 1 &2 &0 \\ \hdashline 0 &3 &3 \\ \hdashline 8 &0 &0 \\ \end{array} \right ]\] \[C = \left [ \begin{array} {cc:c:c:cc:c} 2 & 0 &0 &0 &1 &0 &0 &0 \\ 0 & 0 &1 &0 &2 &4 &0 &7 \\ 0 & 0 &0 &3 &3 &0 &1 &0 \\ \end{array} \right ]\]每个约当块末行对应的B行不为全零行。
同一特征值的不同约旦快末行对应B的行向量无关。
记住算了。数学上的判断方法。就和一元二次方程有解公式一样,拿来就用。