我们从一个常见的例子说起
一个质量为m的物体,受到一个弹簧和阻尼的共同作用,弹簧的弹力系数为k,阻尼的阻尼系数是B,这样的系统称为质量-弹簧-阻尼系统(mass-spring-damping)。这个系统的输入是
u
(
t
)
=
f
(
t
)
u(t) = f(t)
u(t)=f(t),输出是弹簧块向右的位移
x
x
x,也就是我们可以通过控制
f
(
t
)
f(t)
f(t)的大小,来控制物体右移的距离。汽车的悬挂系统,以及任何与振动相关的系统都是这种形式。
我们可以通过受力来建立起这个系统的数学模型。物体m受到的向左的力包括弹簧的弹力和阻尼力。
f k = k x , f B = B x ˙ (1) f_k = kx, \ f_B = B\dot{x} \tag{1} fk=kx, fB=Bx˙(1)
根据牛顿第二定律,可以得到如下的方程
m x ¨ = f ( t ) − f k − f B ⇒ m x ¨ + f k + f B = f ( t ) (2) m\ddot{x} = f(t) - f_k-f_B \Rightarrow m\ddot{x} + f_k + f_B = f(t) \tag{2} mx¨=f(t)−fk−fB⇒mx¨+fk+fB=f(t)(2)
我们可以通过Laplace Transform来找到这个系统的传递函数,对两边同时进行拉普拉斯变换,可以得到
m s 2 X ( s ) + B s X ( s ) + k X ( s ) = F ( s ) (3) ms^2X(s) + BsX(s) + kX(s) = F(s) \tag{3} ms2X(s)+BsX(s)+kX(s)=F(s)(3)
这样的系统的传递函数就是系统的输出比输入
G ( s ) = X ( x ) F ( s ) = 1 m s 2 + B s + k (4) G(s) = \frac{X(x)}{F(s)} = \frac{1}{ms^2+Bs+k}\tag{4} G(s)=F(s)X(x)=ms2+Bs+k1(4)
状态空间
在现代控制理论中,我们常会用state-space(状态空间)去表达系统的输入,输出和状态变量,而且通常是用一阶微分方程的形式去表达。现在上边的系统是用二阶微分方程去表达的,我们可以选取合适的状态变量去把二阶项消除掉,我们选取这样两个状态
z 1 = x z 2 = x ˙ ⇒ z 1 ˙ = x ˙ = z 2 z 2 ˙ = x ¨ = f ( t ) − B x ˙ − k x m = 1 m u ( t ) − B m z 2 − k m z 1 (5) \begin{matrix} z_1 = x \\ z_2 = \dot{x}\end{matrix} \Rightarrow \begin{matrix} \dot{z_1} = \dot{x} = z_2 \\ \dot{z_2} = \ddot{x} = \frac{f(t) - B\dot{x} - kx}{m} = \frac{1}{m}u(t) - \frac{B}{m}z_2 - \frac{k}{m}z_1 \end{matrix} \tag{5} z1=xz2=x˙⇒z1˙=x˙=z2z2˙=x¨=mf(t)−Bx˙−kx=m1u(t)−mBz2−mkz1(5)
我们就可以把上边的微分方程写成状态空间表达式的形式, z 1 , z 2 z_1,z_2 z1,z2就是系统状态随时间的变化
[
z
1
˙
z
2
˙
]
=
[
0
1
−
k
m
−
B
m
]
[
z
1
z
2
]
+
[
0
1
m
]
u
(
t
)
(6)
\left[ \begin{matrix} \dot{z_1} \\ \dot{z_2} \end{matrix}\right] = \left[ \begin{matrix} 0 & 1 \\ -\frac{k}{m} & -\frac{B}{m} \end{matrix}\right] \left[ \begin{matrix} z_1 \\ z_2 \end{matrix}\right] +\left[ \begin{matrix} 0 \\ \frac{1}{m} \end{matrix}\right]u(t) \tag{6}
[z1˙z2˙]=[0−mk1−mB][z1z2]+[0m1]u(t)(6)
系统的输出
y
y
y可以用下面这种形式表达
y = [ 1 0 ] [ z 1 z 2 ] + [ 0 ] [ u ( t ) ] (7) y = [1 \ 0]\left[ \begin{matrix} z_1 \\ z_2\end{matrix}\right] + [0][u(t)] \tag{7} y=[1 0][z1z2]+[0][u(t)](7)
上边的两个式子可以用更一般的通用形式表示
z ˙ = A z + B u (8) \dot{z} = Az+Bu\tag{8} z˙=Az+Bu(8)
y = C z + D u (9) y = Cz+Du \tag{9} y=Cz+Du(9)
这就是系统的状态方程的表达形式。
现在来看一下系统的状态方程与传递函数之间的关系。我们对(8)式做拉普拉斯变换
s Z ( s ) = A Z ( s ) + B U ( s ) (10) sZ_{(s)} = AZ_{(s)}+BU_{(s)} \tag{10} sZ(s)=AZ(s)+BU(s)(10)
可以得到下面的等式
Z ( s ) = ( s I − A ) − 1 B U ( s ) , I 是 单 位 矩 阵 (11) Z_{(s)} = (sI-A)^{-1}BU_{(s)},I是单位矩阵 \tag{11} Z(s)=(sI−A)−1BU(s),I是单位矩阵(11)
我们再对(9)式做拉普拉斯变换
Y ( s ) = C Z ( s ) + D U ( s ) (12) Y_{(s)} = CZ_{(s)}+DU_{(s)} \tag{12} Y(s)=CZ(s)+DU(s)(12)
将(11)式带入到(12)式中,可以得到
Y ( s ) = C ( s I − A ) − 1 B U ( s ) + D U ( s ) (13) Y_{(s)} = C(sI-A)^{-1}BU_{(s)}+DU_{(s)} \tag{13} Y(s)=C(sI−A)−1BU(s)+DU(s)(13)
然后这个系统的传递函数就是
G ( s ) = Y ( s ) U ( s ) = C ( s I − A ) − 1 B + D (14) G_{(s)} = \frac{Y_{(s)}}{U_{(s)}} = C(sI-A)^{-1}B+D \tag{14} G(s)=U(s)Y(s)=C(sI−A)−1B+D(14)
如果我们上边那个系统的系数带入到(14)中,我们会得到 G ( s ) = C ( s I − A ) − 1 B + D = 1 m s 2 + B s + k G(s) = C(sI-A)^{-1}B+D = \frac{1}{ms^2+Bs+k} G(s)=C(sI−A)−1B+D=ms2+Bs+k1。
我们看一下上式中的分母部分,如果令分母 m s 2 + B s + k = 0 ms^2+Bs+k=0 ms2+Bs+k=0,则此时的 s s s为极点,极点将会决定系统的稳定性,我们可以猜测 A A A矩阵的特征值也会决定系统的稳定性,是因为在求解上述传递函数的过程中,要求 ( s I − A ) − 1 (sI-A)^{-1} (sI−A)−1,这时候会用到 ( s I − A ) − 1 = ( s I − A ) ∗ ∣ s I − A ∣ (sI-A)^{-1} = \frac{(sI-A)^*}{|sI-A|} (sI−A)−1=∣sI−A∣(sI−A)∗,如果令 ∣ s I − A ∣ = 0 |sI-A| = 0 ∣sI−A∣=0,这时候 s s s就是 A A A的特征值,也就是 A A A矩阵的特征值同样决定系统的稳定性。如果系统不稳定怎么办?我们就要想办法改造 A A A矩阵,这会在后边提起。