现代控制理论(1):系统的描述
系统本质上由微分方程描述,对于线性系统,可采用拉普拉斯变换获取其传递函数,从而在频域上表达系统的特性。对于高阶的微分方程,还可以将其转化为由一系列一阶微分方程组构成的状态空间描述。本文介绍这三种描述系统的方法。
系统的微分方程
由于系统是由元件构成的,而元件的特性通常满足一定的(微分)方程,考虑元件之间的约束后,系统的本质就可以看作是微分方程。以经典的弹簧-质量-阻尼系统为例,如下图所示。
该系统由弹簧、阻尼器、质量三个元件构成,三个元件的特性分别由以下方程进行描述:
- 弹簧满足胡克定律: $F_k = -kx$
- 阻尼与速度成正比: $F_c = -cv = -c \dot{x}$
- 质量满足牛顿定律: $F_m = ma = m \ddot{x}$
元件与输入之间的联系可以考虑为质量块力的合成: $F_m = F+F_k+F_c$
综合元件特性与相互联系后,该系统的微分方程为:
$$m \ddot{x} + c \dot{x} + k x = F$$更一般地,设系统的输入为 $u$ ,输出为 $y$,线性系统的微分方程通常可表示为:
$$y^{(n)} + a_{n-1} y^{(n-1)} + ...+a_1 y' + a_0 = b_m u^{(m)} + b_{m-1} u^{(m-1)} + ...+b_1 u' + b_0$$对于实际的系统,上式通常有 $m \le n$ 。
系统的传递函数
对于线性微分方程,可以通过所谓的拉普拉斯变换将其转化为频域表达式,拉普拉斯变换的定义为:
$$X(s) = \int_{-\infty}^{\infty} x(t) \mathrm{e}^{st}\, \mathrm{d}t$$根据定义,对系统的微分方程两边同时进行拉普拉斯变换,有:
$$ \left( s^{n} + a_{n-1} s^{n-1} + ...+a_1 s + a_0 \right) Y(s) = \left( b_m s^{m} + b_{m-1} s^{m-1} + ...+b_1 s + b_0 \right) U(s) $$如此做,系统的微分方程在形式上变成了关于复变量 $s$ 的代数方程,称系统输出的拉普拉斯变换与输入的拉普拉斯变换之比为传递函数,记为 $H(s)$ ,由上式可得:
$$H(s) = \frac{b_m s^{m} + b_{m-1} s^{m-1} + ...+b_1 s + b_0}{s^{n} + a_{n-1} s^{n-1} + ...+a_1 s + a_0}$$系统的状态空间
系统的微分方程阶数通常较高而不便于分析,状态空间的思想在于引入状态变量,将一个高阶微分方程转化为多个一阶微分方程。对于线性微分方程,状态变量的数量等于输出变量的最高微分阶数 $n$ ,从技巧上通常可以取输出及其 $n-1$ 次导数作为状态变量。以上述弹簧-质量-阻尼系统为例,输出最高阶数为2,因此需要选择两个状态变量。选取第一个状态变量为输出,即 $x_1 = x$ ,第二个状态变量为输出的一阶导数,即 $x_2=\dot{x}$ ,于是有:
$$ \left\{ \begin{aligned} \dot{x}_1 &= x_2 \\ \dot{x}_2 &= -\frac{k}{m} x_1 -\frac{c}{m}x_2 + \frac{F}{m} \end{aligned} \right. $$不失一般性地,将上述表达写成矩阵的形式为:
$$ \left\{ \begin{aligned} \dot{\bm{x}} &= A \bm{x} + Bu \\ y &= C \bm{x} + Du \end{aligned} \right. $$其中, $\bm{x}$ 为系统的状态变量, $A$ 称为系统矩阵, $B$ 为输入矩阵, $C$ 为输出矩阵, $D$ 为直接传输矩阵且通常 $D=0$。就本例而言:
$$ A = \begin{bmatrix} 0 & 1\\ - \frac{k}{m} & - \frac{c}{m} \end{bmatrix}, \quad B = \begin{bmatrix} 0 \\ \frac{1}{m} \end{bmatrix}, \quad C = \begin{bmatrix} 1 & 0 \end{bmatrix} $$需要说明的是,系统的微分方程和传递函数表达式都是唯一的,而状态空间却不是唯一的,这是由于状态变量的选择不唯一。状态空间有几种标准的形式,将在以后进行讨论。除此之外,状态空间表达并不局限于线性时不变系统,它跟微分方程一样广泛适用于各种系统的描述,状态空间更一般的形式如下,暂不做过多讨论。
$$ \left\{ \begin{aligned} \dot{\bm{x}} &= f(\bm{x},\bm{u},t) \\ y &= h(\bm{x},\bm{u},t) \\ \end{aligned} \right. $$为了说明状态空间方程的求解思路,设系统的状态空间方程为:
$$ \left\{ \begin{aligned} \dot{\bm{x}} &= A \bm{x} + Bu \\ y &= C \bm{x} \end{aligned} \right. $$设辅助状态变量 $\bm{z}$ 满足线性变换 $\bm{x}=P\bm{z}$( $P$ 为常矩阵),带入第一个方程,有:
$$ P\dot{\bm{z}}=AP\bm{z}+B\bm{u} \quad \Rightarrow \quad \dot{\bm{z}}=P^{-1}AP\bm{z}+P^{-1}B\bm{u} $$选取合适的变换矩阵 $P$ 使得 $P^{-1}AP$ 为矩阵 $A$ 的相似变换,即 $P^{-1}AP$ 为特征值对角矩阵:
$$ P^{-1}AP = \begin{bmatrix} {{\lambda_1}}&{}&{}&{}\\ {}&{{\lambda_2}}&{}&{}\\ {}&{}& \ddots &{}\\ {}&{}&{}&{{\lambda_n}} \end{bmatrix} $$如此做,关于辅助状态变量 $\bm{z}$ 的微分方程组解耦为独立的一阶微分方程:
$$ \dot{z}_i = \lambda_i z_i + \tilde{u}_i \quad \Rightarrow \quad z_i(t) = C_i \mathrm(e)^{\lambda_i t} + \tilde{z}_i(t) $$其中, $\tilde{u}_i$ 表示 $P^{-1}B\bm{u}$ 的第 $i$ 的分量,其对应的特解为 $\tilde{z}_i(t)$ 。最后代回 $\bm{x}=P\bm{z}$ 即可得到原状态变量,进而带入输出矩阵解得输出。
由微分方程的解可以看出,若系统矩阵 $A$ 存在某特征值 $\lambda_i$ 大于零,根据微分方程的通解,系统将存在某一状态量随时间趋于无穷,在实际系统中将是输出饱和,于是说该系统是不稳定的。若系统矩阵的特征值的实部均小于零,通解将收敛到零(若存在虚部,则是震荡收敛),意味着状态变量的初值将收敛,系统的输出由输入控制,称系统是(渐进)稳定的。特别地,若系统的特征值小于等于零,等于零的特征值将对应于某状态的等幅震荡,由于不会导致系统输出发散,因而也可以说系统是(临界)稳定的。对于实际工作的系统,都应当满足渐进稳定。
三种描述的对比
微分方程作为系统的本质,适用于各种系统,且对系统的描述是最为详尽的,但其表达不够直观,通常不利于分析问题;传递函数仅适用于线性时不变系统,但其计算简单,直接在频域建模,能够直观表达系统的频率特性(主要指幅频响应和相频响应),但传递函数没有指明系统的状态变量,在基于传递函数建模的仿真系统中通常不能对初始状态的影响进行分析;状态空间是微分方程的等价表述,因而也可以广泛用于各种系统,由于其引入了状态变量的概念,能够方便地分析系统初始状态带来的影响,线性系统的状态空间由矩阵描述,还能使用线性代数中的各种技巧,便于计算。但状态空间基于时域建模,分析系统频率特性时还需要进行拉普拉斯变换。