状态空间表达式及其实现:现代控制原理基础

状态空间表达式

我们知道,传递函数是线性时不变(LTI)系统在零输入条件下,输出信号的拉氏变换与输入信号的拉氏变换之比,是对系统外部的描述(外部模型),体现了系统的封装特性,但是没有揭示系统内部细节。也即同一传递函数的系统有多种具体的实现方式。在现代控制理论中,状态空间方程被用以描述系统内部关系(内部模型),该模型不仅描述了输入-输出之间的行为,还在任何初始条件下都能揭示系统的内部行为。简单说,就是该模型也描述了一些中间变量,而这些中间变量足以表示系统内部的所有细节。
例如,对于如下图的RLC电路:

有:
{Ldidt+Ri+1C∫i dt=uuC=1C∫i dt(对于u为输入,uc为输出) \begin{cases} L \dfrac{di}{dt} + Ri + \dfrac{1}{C} \displaystyle\int i \, dt = u \\ u_C = \dfrac{1}{C} \displaystyle\int i \, dt \end{cases} \quad(对于u为输入,u_c为输出) Ldtdi+Ri+C1idt=uuC=C1idt(对于u为输入,uc为输出)
显然,通过求解方程组,可以得到表示输入输出关系的一个微分方程,经由拉氏变换则可以得到传递函数。
此时,若取iii∫i dt\displaystyle\int i \, dtidt两个不同阶的表达式作为中间变量,同时有y=uCy = u_Cy=uC作为系统输出变量,分别对应:
{x1=ix2=∫i dty=uC \begin{cases} x_1 = i \\ x_2 = \displaystyle\int i \, dt \\ y = u_C \end{cases} x1=ix2=idty=uC
代入原方程组有:
{Ldx1dt+Rx1+1Cx2=uy=1Cx2 \begin{cases} L \frac{dx_1}{dt} + R x_1 + \frac{1}{C} x_2 = u \\ y = \frac{1}{C} x_2 \end{cases} {Ldtdx1+Rx1+C1x2=uy=C1x2
把方程组拆成关于两个中间变量的一阶微分方程和一个输出方程,有:
{dx1dt=−RLx1−1LCx2+1Ludx2dt=x1y=1Cx2 \begin{cases} \frac{dx_1}{dt} = -\frac{R}{L}x_1 - \frac{1}{LC}x_2 + \frac{1}{L}u \\ \frac{dx_2}{dt} = x_1 \\ y = \frac{1}{C}x_2 \end{cases} dtdx1=LRx1LC1x2+L1udtdx2=x1y=C1x2
这里令
{x˙1=dx1dtx˙2=dx2dt \left\{ \begin{aligned} \dot{x}_1 &= \frac{dx_1}{dt} \\ \dot{x}_2 &= \frac{dx_2}{dt} \end{aligned} \right. x˙1x˙2=dtdx1=dtdx2
有:
{x˙1=−RLx1−1LCx2+1Lux˙2=x1y=1Cx2 \begin{cases} \dot{x}_1 = -\frac{R}{L}x_1 - \frac{1}{LC}x_2 + \frac{1}{L}u \\ \dot{x}_2 = x_1 \\ y = \frac{1}{C}x_2 \end{cases} x˙1=LRx1LC1x2+L1ux˙2=x1y=C1x2
使用矩阵表示有:
{[x˙1x˙2]=[−RL−1LC10][x1x2]+[1L0]uy=[01C][x1x2] \begin{cases} \begin{bmatrix} \dot{x}_1 \\ \dot{x}_2 \end{bmatrix} = \begin{bmatrix} -\frac{R}{L} & -\frac{1}{LC} \\ 1 & 0 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} + \begin{bmatrix} \frac{1}{L} \\ 0 \end{bmatrix} u \\ y = \begin{bmatrix} 0 & \frac{1}{C} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \end{cases} [x˙1x˙2]=[LR1LC10][x1x2]+[L10]uy=[0C1][x1x2]
其中[x1x2]\begin{bmatrix} x_1 \\ x_2 \end{bmatrix}[x1x2]为选取的中间变量,又称为状态变量,表示了在不同情况下系统内部情况。uuu输入变量yyy输出变量,矩阵方程组中第一个方程表示了状态变量和输入变量的关系,称为状态方程,第二个方程表示了状态变量与输出变量之间的关系,称为输出方程

抽象出上面几个变量,有公式:
{x˙=Ax+Buy=Cx+Du \left\{ \begin{aligned} \dot{x} &= Ax + Bu \\ y &= Cx + Du \end{aligned} \right. {x˙y=Ax+Bu=Cx+Du
这便是状态空间表达式,公式中各符号表示为:

符号说明
AnA_{n}An状态矩阵
BnrB_{nr}Bnr输入矩阵
CmnC_{mn}Cmn输出矩阵
DmrD_{mr}Dmr直接转移矩阵
xxx状态变量
uuu输入变量
yyy输出变量

其中,状态变量是足以完全表征系统运动状态的最小个数的一组变量,对于n阶微分方程,对应的独立变量应该有n个,通过这n个相互独立的状态变量的方程,便可以完整地描述系统的动态变化。例如:对于一个输入变量为位移,输出变量为加速度的物理系统,对于这个二阶运动系统,其两个独立状态变量可以是速度、加速度,通过了解不同位移输入下速度和加速度的变化,建立起状态方程(因为站在巨人的肩膀上,我们不假思索地基于牛顿运动定律列出了速度-加速度方程以及速度-位移方程,通过待定系数法代入求解变量系数。这便是基于选取速度、加速度这两个具有物理意义的表达式作为状态变量建立起来的状态方程)。该方程依托输入变量位移、状态变量速度和加速度,清晰地描述出整个物理系统的内外部结构及任意时刻系统的行为。
状态空间是指以状态变量作为坐标轴所构成的一个多维空间。状态矢量是状态变量组成的列向量,状态矢量在状态空间上的一个取值,表示了系统的一个状态。
状态变量构成的一阶微分方程组称为状态方程,状态方程把系统表示为多个一阶微分方程的形式,把系统运动状态映射到了一个以状态变量为坐标轴的状态空间中。
输出方程是系统输出与状态变量之间的函数关系式,一个完整的状态空间表达式包括状态方程和输出方程。

连续时间模型之间的转换

上面简单介绍了连续时间系统的状态空间表达式描述。众所周知,连续时间系统还可以由微分方程、传递函数以及框图的形式描述。各种描述之间理论上应该可以相互转换。通过微分方程或者传递函数建立系统的状态空间表达式的问题叫做实现问题。相应的,通过系统的微分方程或者传递函数求解状态空间模型称之为系统的实现。下面将基于单输入单输出(SISO)线性时不变系统(LTI),重点叙述其他模型如何转换为状态空间模型。通常把没有零极点对消的传递函数的实现称为最小实现,本文叙述的内容均基于最小实现问题。

传递函数中无零点的实现

传递函数中无零点的微分方程可以表示为:
y(n)+an−1y(n−1)+⋯+a1y˙+a0y=b0u(t) y^{(n)} + a_{n - 1}y^{(n - 1)} + \dots + a_1\dot{y} + a_0y = b_0u(t) y(n)+an1y(n1)++a1y˙+a0y=b0u(t)
对应的传递函数为:
W(s)=b0sn+an−1sn−1+⋯+a1s+a0 W(s) = \frac{b_0}{s^n + a_{n - 1}s^{n - 1} + \dots + a_1s + a_0} W(s)=sn+an1sn1++a1s+a0b0
取输出变量及其各阶导数为状态变量,即:
{x1=yx2=y˙x3=y¨…xn=y(n−1) \begin{cases} x_1 = y \\ x_2 = \dot{y} \\ x_3 = \ddot{y} \\ \dots \\ x_n = y^{(n-1)} \end{cases} x1=yx2=y˙x3=y¨xn=y(n1)
即有状态方程为:
{x˙1=x2x˙2=x3…x˙n−1=xnx˙n=−a0x1−a1x2−⋯−an−2xn−1−an−1xn+b0u \begin{cases} \dot{x}_1 = x_2 \\ \dot{x}_2 = x_3 \\ \dots \\ \dot{x}_{n - 1} = x_n \\ \dot{x}_n = -a_0x_1 - a_1x_2 - \dots - a_{n - 2}x_{n - 1} - a_{n - 1}x_n + b_0u \end{cases} x˙1=x2x˙2=x3x˙n1=xnx˙n=a0x1a1x2an2xn1an1xn+b0u
输出方程为:
y=x1 y = x_1 y=x1
表示为矩阵形式有:
{(x˙1x˙2⋮x˙n−1x˙n)=(010…0001…0⋮⋮⋮⋱⋮000…1−a0−a1−a2…−an−1)(x1x2⋮xn−1xn)+(00⋮0b0)uy=[1, 0, 0, …, 0]⏟cx \begin{cases} \begin{pmatrix} \dot{x}_1 \\ \dot{x}_2 \\ \vdots \\ \dot{x}_{n - 1} \\ \dot{x}_n \end{pmatrix} = \begin{pmatrix} 0 & 1 & 0 & \dots & 0 \\ 0 & 0 & 1 & \dots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & 1 \\ -a_0 & -a_1 & -a_2 & \dots & -a_{n - 1} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_{n - 1} \\ x_n \end{pmatrix} + \begin{pmatrix} 0 \\ 0 \\ \vdots \\ 0 \\ b_0 \end{pmatrix} u \\ y = \underbrace{[1,\ 0,\ 0,\ \dots,\ 0]}_{\boldsymbol{c}} \boldsymbol{x} \end{cases} x˙1x˙2x˙n1x˙n=000a0100a1010a2001an1x1x2xn1xn+000b0uy=c[1, 0, 0, , 0]x

其中,像上述状态方程中的状态矩阵一样主对角线上方的元素均为1、最后一行元素任意取值、其他元素均为0的矩阵称为友矩阵

传递函数中有零点的实现

传递函数中有零点的微分方程可以表示为:
y(n)+an−1y(n−1)+⋯+a1y˙+a0y=bmu(m)+bm−1u(m−1)+⋯+b1u˙+b0u y^{(n)} + a_{n - 1}y^{(n - 1)} + \dots + a_1\dot{y} + a_0y = b_m u^{(m)} + b_{m - 1}u^{(m - 1)} + \dots + b_1\dot{u} + b_0u y(n)+an1y(n1)++a1y˙+a0y=bmu(m)+bm1u(m1)++b1u˙+b0u
对应的传递函数为:
W(s)=bmsm+bm−1sm−1+⋯+b1s+b0sn+an−1sn−1+⋯+a1s+a0,m≤n W(s) = \frac{b_m s^m + b_{m - 1} s^{m - 1} + \dots + b_1 s + b_0}{s^n + a_{n - 1} s^{n - 1} + \dots + a_1 s + a_0}, \quad m \leq n W(s)=sn+an1sn1++a1s+a0bmsm+bm1sm1++b1s+b0,mn
这里要求m≤nm \leq nmn是因为我们讨论的模型应该是物理可行的。m>nm > nm>n条件下,输出变量yyy需要根据输入变量xxx的导数得出,不具有因果性,非物理可实现的。
这里,m=nm = nm=nm≤nm \leq nmn的特殊情况,我们直接讨论m=nm = nm=n的情况,同时为了方便说明和理解,首先考虑m=n=3m = n = 3m=n=3的情况。

3阶系统的实现

对于传递函数:
W(s)=Y(s)U(s)=b3s3+b2s2+b1s+b0s3+a2s2+a1s+a0 W(s) = \frac{Y(s)}{U(s)} = \frac{b_3 s^3 + b_2 s^2 + b_1 s + b_0}{s^3 + a_2 s^2 + a_1 s + a_0} W(s)=U(s)Y(s)=s3+a2s2+a1s+a0b3s3+b2s2+b1s+b0
提出一个常数有:
W(s)=Y(s)U(s)=b3+(b2−a2b3)s2+(b1−a1b3)s+(b0−a0b3)s3+a2s2+a1s+a0 W(s) = \frac{Y(s)}{U(s)} = b_3 + \frac{(b_2 - a_2 b_3)s^2 + (b_1 - a_1 b_3)s + (b_0 - a_0 b_3)}{s^3 + a_2 s^2 + a_1 s + a_0} W(s)=U(s)Y(s)=b3+s3+a2s2+a1s+a0(b2a2b3)s2+(b1a1b3)s+(b0a0b3)
即:
Y(s)=b3U(s)+(b2−a2b3)s2+(b1−a1b3)s+(b0−a0b3)s3+a2s2+a1s+a0U(s) Y(s) = b_3U(s) + \frac{(b_2 - a_2 b_3)s^2 + (b_1 - a_1 b_3)s + (b_0 - a_0 b_3)}{s^3 + a_2 s^2 + a_1 s + a_0}U(s) Y(s)=b3U(s)+s3+a2s2+a1s+a0(b2a2b3)s2+(b1a1b3)s+(b0a0b3)U(s)
Y1(s)=1s3+a2s2+a1s+a0U(s)Y_1(s) = \frac{1}{s^3 + a_2 s^2 + a_1 s + a_0} U(s)Y1(s)=s3+a2s2+a1s+a01U(s),则有:
Y(s)=b3U(s)+[(b2−a2b3)s2+(b1−a1b3)s+(b0−a0b3)]Y1(s) Y(s) = b_3 U(s) + \left[ (b_2 - a_2 b_3)s^2 + (b_1 - a_1 b_3)s + (b_0 - a_0 b_3) \right]Y_1(s) Y(s)=b3U(s)+[(b2a2b3)s2+(b1a1b3)s+(b0a0b3)]Y1(s)
两边求拉氏反变换,得到:
y=b3u+(b2−a2b3)y¨1+(b1−a1b3)y˙1+(b0−a0b3)y1 y = b_3 u + (b_2 - a_2 b_3) \ddot{y}_1 + (b_1 - a_1 b_3) \dot{y}_1 + (b_0 - a_0 b_3) y_1 y=b3u+(b2a2b3)y¨1+(b1a1b3)y˙1+(b0a0b3)y1
这样,一个传递函数有零点的实现问题便被转换为传递函数无零点的实现问题。其中,y1y_1y1Y1(s)Y_1(s)Y1(s)的拉氏反变换,有:

y...1(t)+a2y¨1(t)+a1y˙1(t)+a0y1(t)=u(t) \overset{...}{y}_1(t) + a_2 \ddot{y}_1(t) + a_1 \dot{y}_1(t) + a_0 y_1(t) = u(t) y...1(t)+a2y¨1(t)+a1y˙1(t)+a0y1(t)=u(t)
状态变量选取y1y_1y1及其各阶导数,有:

{x1=y1x2=y˙1x3=y¨1 \begin{cases} x_1 = y_1 \\ x_2 = \dot{y}_1 \\ x_3 = \ddot{y}_1 \\ \end{cases} x1=y1x2=y˙1x3=y¨1
即有状态空间表达式为:

{x˙1=x2x˙2=x3x˙3=−a0x1−a1x2−a2x3+uy=b3u+(b2−a2b3)x3+(b1−a1b3)x2+(b0−a0b3)x1 \begin{cases} \dot{x}_1 = x_2 \\ \dot{x}_2 = x_3 \\ \dot{x}_3 = -a_0 x_1 - a_1 x_2 - a_2 x_3 + u \\ y = b_3 u + (b_2 - a_2 b_3) x_3 + (b_1 - a_1 b_3) x_2 + (b_0 - a_0 b_3) x_1 \end{cases} x˙1=x2x˙2=x3x˙3=a0x1a1x2a2x3+uy=b3u+(b2a2b3)x3+(b1a1b3)x2+(b0a0b3)x1
表示为矩阵形式有:
{(x˙1x˙2x˙3)=(010001−a0−a1−a2)(x1x2x3)+(001)uy=(b0−a0b3b1−a1b3b2−a2b3)(x1x2x3)+b3u \begin{cases} \begin{pmatrix} \dot{x}_1 \\ \dot{x}_2 \\ \dot{x}_3 \end{pmatrix}= \begin{pmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ -a_0 & -a_1 & -a_2 \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ x_3 \end{pmatrix} + \begin{pmatrix} 0 \\ 0 \\ 1 \end{pmatrix} u \\ y = \begin{pmatrix} b_0 - a_0 b_3 & b_1 - a_1 b_3 & b_2 - a_2 b_3 \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ x_3 \end{pmatrix} + b_3 u \end{cases} x˙1x˙2x˙3=00a010a101a2x1x2x3+001uy=(b0a0b3b1a1b3b2a2b3)x1x2x3+b3u

推广到nnn阶系统的实现

对于n阶传递函数:

W(s)=bmsm+bm−1sm−1+⋯+b1s+b0sn+an−1sn−1+⋯+a1s+a0,m≤n W(s) = \frac{b_m s^m + b_{m - 1} s^{m - 1} + \dots + b_1 s + b_0}{s^n + a_{n - 1} s^{n - 1} + \dots + a_1 s + a_0}, \quad m \leq n W(s)=sn+an1sn1++a1s+a0bmsm+bm1sm1++b1s+b0,mn
对应的微分方程为:

y(n)+an−1y(n−1)+⋯+a1y˙+a0y=bmu(m)+bm−1u(m−1)+⋯+b1u˙+b0u y^{(n)} + a_{n - 1}y^{(n - 1)} + \dots + a_1\dot{y} + a_0y = b_m u^{(m)} + b_{m - 1}u^{(m - 1)} + \dots + b_1\dot{u} + b_0u y(n)+an1y(n1)++a1y˙+a0y=bmu(m)+bm1u(m1)++b1u˙+b0u
其状态空间表达式为:
{(x˙1x˙2⋮x˙n−1x˙n)=(010…0001…0⋮⋮⋮⋱⋮000…1−a0−a1−a2…−an−1)(x1x2⋮xn−1xn)+(00⋮01)uy=(b0−a0bnb1−a1bn…bn−2−an−2bnbn−1−an−1bn)(x1x2⋮xn−1xn)+bnubn=0当n>m \begin{cases} \begin{pmatrix} \dot{x}_1 \\ \dot{x}_2 \\ \vdots \\ \dot{x}_{n - 1} \\ \dot{x}_n \end{pmatrix}= \begin{pmatrix} 0 & 1 & 0 & \dots & 0 \\ 0 & 0 & 1 & \dots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & 1 \\ -a_0 & -a_1 & -a_2 & \dots & -a_{n - 1} \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_{n - 1} \\ x_n \end{pmatrix} + \begin{pmatrix} 0 \\ 0 \\ \vdots \\ 0 \\ 1 \end{pmatrix} u \\ y = \begin{pmatrix} b_0-a_0b_n & b_1-a_1b_n & \dots & b_{n-2}-a_{n-2}b_n & b_{n-1}-a_{n-1}b_n \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_{n - 1} \\ x_n \end{pmatrix} + b_n u \end{cases} \quad b_n = 0当n>m x˙1x˙2x˙n1x˙n=000a0100a1010a2001an1x1x2xn1xn+0001uy=(b0a0bnb1a1bnbn2an2bnbn1an1bn)x1x2xn1xn+bnubn=0n>m

状态空间表达式的非唯一性

对于任意一个系统,其状态空间表达式描述了系统的内部性质。而对于给定一个时不变系统,可以选取多个状态变量的组合,对应会出现多种状态空间表达式的表现形式,即一个系统可以有多个状态空间表达式,各状态空间表达式对应的状态矢量彼此之间应该是线性相关,可以通过坐标变换相互转换。下面给予上述表述数学证明:

设给定系统:
{x˙=Ax+Bu,x(0)=x0y=Cx+Du \left\{ \begin{aligned} \dot{x} &= Ax + Bu, \quad x(0) = x_0 \\ y &= Cx + Du \end{aligned} \right. {x˙y=Ax+Bu,x(0)=x0=Cx+Du
总可以找到任意一个非奇异矩阵TTT,将原状态矢量xxx作线性变换,得到另一状态矢量zzz,设变换关系为:
x=Tz x = Tz x=Tz

z=T−1xz = T^{-1}xz=T1x
代入原状态空间表达式,得到新的状态空间表达式:
{z˙=T−1ATz+T−1Bu,z(0)=T−1x(0)=T−1x0y=CTz+Du \left\{ \begin{aligned} \dot{z} &= T^{-1}ATz + T^{-1}Bu, \quad z(0) = T^{-1}\boldsymbol{x}(0) = T^{-1}\boldsymbol{x}_ 0 \\ y &= CTz + Du \end{aligned} \right. {z˙y=T1ATz+T1Bu,z(0)=T1x(0)=T1x0=CTz+Du
由于TTT为任意非奇异矩阵,故状态空间表达式是非唯一的。通常称TTT为变换矩阵。

状态空间表达式的标准型

我们了解到传递函数和微分方程表示的只是系统的外部性质,其内部实现并不是唯一的,即建立起的状态空间表达式也具有非唯一性。为了简化控制系统的分析与设计,规范化矩阵形式,现代控制理论中规定了集中具有固定结构规律的规范化的状态空间表达式的形式,这些形式被称为状态空间表达式的标准型。状态空间表达式的标准型核心分为三大类:

  • 能控标准型
  • 能观标准型
  • 对角标准型/约当标准型

对角标准型/约当标准型

对角矩阵和约当矩阵

对角矩阵和约当矩阵是线性代数中两个特殊矩阵。其中,对角矩阵为:
A=diag(λ1,λ2,…,λn)=(λ10…00λ2…0⋮⋮⋱⋮00…λn) A = \text{diag}(\lambda_1, \lambda_2, \dots, \lambda_n) = \begin{pmatrix} \lambda_1 & 0 & \dots & 0 \\ 0 & \lambda_2 & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & \lambda_n \end{pmatrix} A=diag(λ1,λ2,,λn)=λ1000λ2000λn
λ1,λ2,…,λn\lambda_1, \lambda_2, \dots, \lambda_nλ1,λ2,,λn是对角矩阵的主对角线元素(可重复)。
约当矩阵是对角矩阵的自然推广,对于不可对角化的矩阵(几何重数小于代数重数),常常使用约当矩阵构建分块对角矩阵,实现其标准化需求。约当矩阵的基本单元为“约当块”,约当块的定义如下:
λ∈F\lambda \in \mathbb{F}λF,对正整数kkk,称kkk阶方阵:
Jk(λ)=(λ10…00λ1…0⋮⋮⋮⋱⋮000…1000…λ) J_k(\lambda) = \begin{pmatrix} \lambda & 1 & 0 & \dots & 0 \\ 0 & \lambda & 1 & \dots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & 1 \\ 0 & 0 & 0 & \dots & \lambda \end{pmatrix} Jk(λ)=λ0001λ000100001λ
为对应特征值λ\lambdaλkkk阶约当块。约当块的一条副对角线值为1,上下副对角线都可以,但是所有约当块选取的副对角线需相同。

在此基础上,约当矩阵的定义有:
若一个方阵J∈Fn×nJ \in \mathbb{F}^{n \times n}JFn×n可以表示为分块对角矩阵,且每个分块都是约当块,则称JJJ为约当矩阵,即:
J=(Jk1(λ1)0…00Jk2(λ2)…0⋮⋮⋱⋮00…Jkm(λm)) J = \begin{pmatrix} J_{k_1}(\lambda_1) & 0 & \dots & 0 \\ 0 & J_{k_2}(\lambda_2) & \dots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \dots & J_{k_m}(\lambda_m) \end{pmatrix} J=Jk1(λ1)000Jk2(λ2)000Jkm(λm)
其中:
k1+k2+⋯+km=nk_1 + k_2 + \dots + k_m = nk1+k2++km=n,即分块的阶数之和等于矩阵总阶数;λ1,λ2,…,λm\lambda_1, \lambda_2, \dots, \lambda_mλ1,λ2,,λm是数域F\mathbb{F}F中的元素(可重复,对应特征值);约当块的顺序不唯一。

状态空间表达式的对角标准型和约当标准型

由于本文的实现问题都是最小实现问题,能转化为对角标准型的实现不存在重根。也就是说,存在重根的实现问题只能转换为约当标准型。从这个角度看,对角标准型是约当标准型的一个特殊情况(即无重根的约当标准型)。而所谓状态空间表达式转换为约当标准型,实际上是原状态空间表达式通过矩阵变换,使得状态矩阵变换为约当矩阵的形式。

一般实现转换为约当标准型

前面我们描述了状态空间表达式的非唯一性,下面我们基于此叙述一般状态空间表达式转换为约当标准型状态空间表达式的问题:
对于实现:
{x˙=Ax+Buy=Cx \begin{cases} \dot{\boldsymbol{x}} = \boldsymbol{A}\boldsymbol{x} + \boldsymbol{B}\boldsymbol{u} \\ \boldsymbol{y} = \boldsymbol{C}\boldsymbol{x} \end{cases} {x˙=Ax+Buy=Cx
要求通过非奇异矩阵TTT,有x=zTx = zTx=zT,代入原方程组,使之变换为形式:
{z˙=Jz+T−1Buy=CTz \begin{cases} \dot{\boldsymbol{z}} = \boldsymbol{J}\boldsymbol{z} + \boldsymbol{T}^{-1}\boldsymbol{B}\boldsymbol{u} \\ \boldsymbol{y} =\boldsymbol{C}\boldsymbol{T}\boldsymbol{z} \end{cases} {z˙=Jz+T1Buy=CTz
其中JJJ为约旦标准型矩阵,无重根时:
J=(λ1λ2⋱λn) \boldsymbol{J} = \begin{pmatrix} \lambda_1 & & & \\ & \lambda_2 & & \\ & & \ddots & \\ & & & \lambda_n \end{pmatrix} J=λ1λ2λn
有重根时(q+1q+1q+1个重根):
J=(λ110⋯0λ11⋯0λ1⋱⋱⋱10λ1λq+1⋱λn) J = \begin{pmatrix} \lambda_1 & 1 & 0 & \cdots & & \\ 0 & \lambda_1 & 1 & \cdots & & \\ & 0 & \lambda_1 & \ddots & & \\ & & \ddots & \ddots & 1 & \\ & & & 0 & \lambda_1 & \\ \hline & & & & & \lambda_{q+1} & \\ & & & & & \ddots & \\ & & & & & & \lambda_n \end{pmatrix} J=λ101λ1001λ101λ1λq+1λn
所以,问题就变成了求奇异矩阵TTT,使变换T−1ATT^{-1}ATT1AT为约当矩阵,这里就不加说明了。

传递函数的约当标准型实现

对角标准型实现

对于可以转换为对角标准型的传递函数:
G(s)=Y(s)U(s)=bnsn+bn−1sn−1+⋯+b1s+b0sn+an−1sn−1+⋯+a1s+a0 G(s) = \frac{Y(s)}{U(s)} = \frac{b_n s^n + b_{n-1} s^{n-1} + \dots + b_1 s + b_0}{s^n + a_{n-1} s^{n-1} + \dots + a_1 s + a_0} G(s)=U(s)Y(s)=sn+an1sn1++a1s+a0bnsn+bn1sn1++b1s+b0
其特征方程无重根,故可以把G(s)G(s)G(s)分解因式得到如下形式:
G(s)=c1s−λ1+c2s−λ2+⋯+cns−λn+bn G(s) = \frac{c_1}{s - \lambda_1} + \frac{c_2}{s - \lambda_2} + \dots + \frac{c_n}{s - \lambda_n} + b_n G(s)=sλ1c1+sλ2c2++sλncn+bn
其中λ1,λ2,…λn为其极点\lambda_1,\lambda_2,\dots\lambda_n为其极点λ1,λ2,λn为其极点。令
{X1(s)=1s−λ1U(s)X2(s)=1s−λ2U(s)⋮Xn(s)=1s−λnU(s) \begin{cases} X_1(s) = \frac{1}{s - \lambda_1} U(s) \\ X_2(s) = \frac{1}{s - \lambda_2} U(s) \\ \vdots \\ X_n(s) = \frac{1}{s - \lambda_n} U(s) \end{cases} X1(s)=sλ11U(s)X2(s)=sλ21U(s)Xn(s)=sλn1U(s)
则有状态变量:
{x1=eλ1tx2=eλ1t⋮xn=eλnt \begin{cases} x_1 = e^{\lambda_1t} \\ x_2 = e^{\lambda_1t} \\ \vdots \\ x_n = e^{\lambda_nt} \end{cases} x1=eλ1tx2=eλ1txn=eλnt
可得系统的状态方程为:
{x˙1=λ1x1+ux˙2=λ2x2+u⋮x˙n=λnxn+u \begin{cases} \dot{x}_1 = \lambda_1 x_1 + u \\ \dot{x}_2 = \lambda_2 x_2 + u \\ \vdots \\ \dot{x}_n = \lambda_n x_n + u \end{cases} x˙1=λ1x1+ux˙2=λ2x2+ux˙n=λnxn+u
矩阵表示为:
x˙=(λ10⋯000λ2⋯00⋮⋮⋱⋮⋮00⋯λn−1000⋯0λn)x+(11⋮11)u \dot{\boldsymbol{x}} = \begin{pmatrix} \lambda_1 & 0 & \cdots & 0 & 0 \\ 0 & \lambda_2 & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & \cdots & \lambda_{n-1} & 0 \\ 0 & 0 & \cdots & 0 & \lambda_n \end{pmatrix} \boldsymbol{x} + \begin{pmatrix} 1 \\ 1 \\ \vdots \\ 1 \\ 1 \end{pmatrix} u x˙=λ10000λ20000λn10000λnx+1111u
输出方程为:
y=(c1c2⋯cn−1cn)x y = \begin{pmatrix} c_1 & c_2 & \cdots & c_{n-1} & c_n \end{pmatrix} \boldsymbol{x} y=(c1c2cn1cn)x
故其状态空间表达式为:
{x˙=(λ10⋯000λ2⋯00⋮⋮⋱⋮⋮00⋯λn−1000⋯0λn)x+(11⋮11)uy=(c1c2⋯cn−1cn)x \begin{cases} \dot{\boldsymbol{x}} = \begin{pmatrix} \lambda_1 & 0 & \cdots & 0 & 0 \\ 0 & \lambda_2 & \cdots & 0 & 0 \\ \vdots & \vdots & \ddots & \vdots & \vdots \\ 0 & 0 & \cdots & \lambda_{n-1} & 0 \\ 0 & 0 & \cdots & 0 & \lambda_n \end{pmatrix} \boldsymbol{x} + \begin{pmatrix} 1 \\ 1 \\ \vdots \\ 1 \\ 1 \end{pmatrix} u \\ y = \begin{pmatrix} c_1 & c_2 & \cdots & c_{n-1} & c_n \end{pmatrix} \boldsymbol{x} \end{cases} x˙=λ10000λ20000λn10000λnx+1111uy=(c1c2cn1cn)x

约当标准型实现

对于传递函数有重根的情况,其传递函数G(s)G(s)G(s)可以因式分解为形式:
G(s)=c11(s−λ1)r+c12(s−λ1)r−1+⋯+c1rs−λ1+cr+1s−λr+1+⋯+cns−λn G(s) = \frac{c_{11}}{(s - \lambda_1)^r} + \frac{c_{12}}{(s - \lambda_1)^{r-1}} + \dots + \frac{c_{1r}}{s - \lambda_1} + \frac{c_{r+1}}{s - \lambda_{r+1}} + \dots + \frac{c_n}{s - \lambda_n} G(s)=(sλ1)rc11+(sλ1)r1c12++sλ1c1r+sλr+1cr+1++sλncn
其中,λ1\lambda_1λ1是其rrr重根,以此类推。令:
{X1(s)=1(s−λ1)rU(s)X2(s)=1(s−λ1)r−1U(s)⋮Xr(s)=1s−λ1U(s)Xr+1(s)=1s−λr+1U(s)⋮Xn(s)=1s−λnU(s) \begin{cases} X_1(s) = \frac{1}{(s - \lambda_1)^r} U(s) \\ X_2(s) = \frac{1}{(s - \lambda_1)^{r-1}} U(s) \\ \vdots \\ X_r(s) = \frac{1}{s - \lambda_1} U(s) \\ X_{r+1}(s) = \frac{1}{s - \lambda_{r+1}} U(s) \\ \vdots \\ X_n(s) = \frac{1}{s - \lambda_n} U(s) \end{cases} X1(s)=(sλ1)r1U(s)X2(s)=(sλ1)r11U(s)Xr(s)=sλ11U(s)Xr+1(s)=sλr+11U(s)Xn(s)=sλn1U(s)
即系统状态变量为:
{x1=tr−1(r−1)!eλitx2=tr−2(r−2)!eλit⋮xr=eλ1txr+1=eλr+1t⋮xn=eλnt \begin{cases} x_1 = \frac{t^{r - 1}}{(r - 1)!} e^{\lambda_i t} \\ x_2 = \frac{t^{r - 2}}{(r - 2)!} e^{\lambda_i t} \\ \vdots \\ x_r = e^{\lambda_1 t} \\ x_{r+1} = e^{\lambda_{r + 1} t} \\ \vdots \\ x_n = e^{\lambda_n t} \end{cases} x1=(r1)!tr1eλitx2=(r2)!tr2eλitxr=eλ1txr+1=eλr+1txn=eλnt
有系统状态空间表达式为:
{x˙=(λ110⋯000λ110⋯0⋮⋱⋱⋮λ11λr+1⋱00⋯0λn)n×nx+(00⋮01⋮1)n×1⏟其中重根对应系数为0,单根对应系数为1uy=(c11c12⋯c1rcr+1⋯cn−1cn)1×nx \begin{cases} \boldsymbol{\dot{x}} = \begin{pmatrix} \lambda_1 & 1 & 0 & \cdots & 0 & 0 \\ 0 & \lambda_1 & 1 & 0 & \cdots & 0 \\ \vdots & & \ddots & \ddots & & \vdots \\ & & & \lambda_1 & 1 & \\ & & & & \lambda_{r+1} & \ddots \\ 0 & 0 & \cdots & 0 & & \lambda_n \end{pmatrix}_{n \times n}\boldsymbol{x} + \underbrace{\begin{pmatrix} 0 \\ 0 \\ \vdots \\ 0 \\ 1 \\ \vdots \\ 1 \end{pmatrix}_{n \times 1}}_{其中重根对应系数为0,单根对应系数为1}\boldsymbol{u} \\ \boldsymbol{y} = \begin{pmatrix} c_{11} & c_{12} & \cdots & c_{1r} & c_{r+1} & \cdots & c_{n-1} & c_n \end{pmatrix}_{1 \times n}\boldsymbol{x} \end{cases} x˙=λ1001λ10010λ1001λr+100λnn×nx+其中重根对应系数为0,单根对应系数为100011n×1uy=(c11c12c1rcr+1cn1cn)1×nx

系统的能控性和能观性

前面讨论过:状态方程和输出方程分别描述了随时间变化的输入u(t)u(t)u(t)引起状态x(t)x(t)x(t)的变化过程以及状态x(t)x(t)x(t)引起输出y(t)y(t)y(t)变化的过程。其中输入变量引起的状态变量变化程度被称为能控性(输入变量对状态变量的控制能力),由于状态变量变化导致的输出变量变化被称为能观性(输出变量对状态变量的反应能力),下面基于单输入单输出(SISO)线性时不变系统(LTI),分别详细叙述系统的能控性和能观性。

系统的能控性

关于线性连续定常系统(即线性时不变系统LTI),其能控性定义有:

如果存在一个分段连续的输入u(t)u(t)u(t)能在有限时间区间[t0,tf][t_0,t_f][t0,tf]内,使系统由某一初始状态x(t0)x(t_0)x(t0),转移到指定的任一终端状态x(tf)x(t_f)x(tf),则称此状态是能控的。若系统的所有状态都是能控的,则称此系统是状态完全能控的,简称系统是能控的。

定义看起来十分抽象,简单解释,就是能控系统的所有状态变量均可唯一地由输入变量的函数表示。下面分别看两个框图即可了然:
能控系统框图
上图中,选取了两个相互独立的状态变量,状态变量均可由输入u(t)u(t)u(t)的函数直接表示,即系统是完全能控的。
不完全能控系统框图
对于这个系统框图,其状态变量x2x_2x2不能由输入变量直接表示,即系统是不完全能控的。

系统的能观性

系统的能观性表征的是输出变量的变化是否能体现状态变量的变化,即能否通过对输出的测量获取状态变化的信息。其定义如下:

如果对于任意给定的输入uuu,在有限观测时间tf>t0t_f>t_0tf>t0,使得根据[t0,tf][t_0,t_f][t0,tf]期间的输出y(t)y(t)y(t)能唯一确定系统在初始状态x(t0)x(t_0)x(t0),则称状态x(t0)x(t_0)x(t0)是能观测的。若系统的每一个状态都是能观测的,则称系统是状态完全能观测的,简称能观。

能控标准型和能观标准型实现

在前面描述微分方程和传递函数的实现时,实际上已经描述了能控标准型的实现,能观标准型可以记为能控标准型的转置实现,下面只给出结果(基于传递函数):
对于传递函数:
W(s)=bmsm+bm−1sm−1+⋯+b1s+b0sn+an−1sn−1+⋯+a1s+a0,m≤n W(s) = \frac{b_m s^m + b_{m - 1} s^{m - 1} + \dots + b_1 s + b_0}{s^n + a_{n - 1} s^{n - 1} + \dots + a_1 s + a_0}, \quad m \leq n W(s)=sn+an1sn1++a1s+a0bmsm+bm1sm1++b1s+b0,mn
其能控标准型实现为:
{(x˙1x˙2⋮x˙n−1x˙n)=(010…0001…0⋮⋮⋮⋱⋮000…1−a0−a1−a2…−an−1)n×n(x1x2⋮xn−1xn)+(00⋮01)uy=(b0−a0bnb1−a1bn…bn−2−an−2bnbn−1−an−1bn)(x1x2⋮xn−1xn)+bnubn=0当n>m \begin{cases} \begin{pmatrix} \dot{x}_1 \\ \dot{x}_2 \\ \vdots \\ \dot{x}_{n - 1} \\ \dot{x}_n \end{pmatrix}= \begin{pmatrix} 0 & 1 & 0 & \dots & 0 \\ 0 & 0 & 1 & \dots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \dots & 1 \\ -a_0 & -a_1 & -a_2 & \dots & -a_{n - 1} \end{pmatrix}_{n\times n} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_{n - 1} \\ x_n \end{pmatrix} + \begin{pmatrix} 0 \\ 0 \\ \vdots \\ 0 \\ 1 \end{pmatrix} u \\ y = \begin{pmatrix} b_0-a_0b_n & b_1-a_1b_n & \dots & b_{n-2}-a_{n-2}b_n & b_{n-1}-a_{n-1}b_n \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_{n - 1} \\ x_n \end{pmatrix} + b_n u \end{cases} \quad b_n = 0当n>m x˙1x˙2x˙n1x˙n=000a0100a1010a2001an1n×nx1x2xn1xn+0001uy=(b0a0bnb1a1bnbn2an2bnbn1an1bn)x1x2xn1xn+bnubn=0n>m
其能观标准型实现为:
{(x˙1x˙2⋮x˙n−1x˙n)=(00…0−a010⋱0−a101⋱0−a2⋮⋱⋱0⋮0…01−an−1)n×n(x1x2⋮xn−1xn)+(b0−a0bnb1−a1bn⋮bn−2−an−2bnbn−1−an−1bn)uy=(00…01)(x1x2⋮xn−1xn)+bnubn=0当n>m \begin{cases} \begin{pmatrix} \dot{x}_1 \\ \dot{x}_2 \\ \vdots \\ \dot{x}_{n - 1} \\ \dot{x}_n \end{pmatrix}= \begin{pmatrix} 0 & 0 & \dots & 0 & -a_0 \\ 1 & 0 & \ddots & 0 & -a_1 \\ 0 & 1 & \ddots & 0 & -a_2 \\ \vdots & \ddots & \ddots & 0 & \vdots \\ 0 & \dots & 0 & 1 & -a_{n - 1} \end{pmatrix}_{n\times n} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_{n - 1} \\ x_n \end{pmatrix} + \begin{pmatrix} b_0-a_0b_n \\ b_1-a_1b_n \\ \vdots \\ b_{n-2}-a_{n-2}b_n \\ b_{n-1}-a_{n-1}b_n \end{pmatrix} u \\ y = \begin{pmatrix} 0 & 0 & \dots & 0 & 1 \end{pmatrix} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_{n - 1} \\ x_n \end{pmatrix} + b_n u \end{cases} \quad b_n = 0当n>m x˙1x˙2x˙n1x˙n=0100001000001a0a1a2an1n×nx1x2xn1xn+b0a0bnb1a1bnbn2an2bnbn1an1bnuy=(0001)x1x2xn1xn+bnubn=0n>m

posted @ 2025-10-06 20:26  ONGround  阅读(0)  评论(0)    收藏  举报  来源