12.1 为什么需要状态空间
在前几章中,我们用微分方程、传递函数和频率响应来分析系统。这些方法的共同局限是:只关心输入和输出之间的关系,却忽略了系统内部发生了什么。
更具体地说:
- 微分方程和传递函数本质上只能处理单输入单输出 (SISO, Single-Input Single-Output) 系统。当你有一个输入 $u(t)$ 和一个输出 $y(t)$ 时,传递函数 $H(s) = Y(s)/U(s)$ 足以描述行为。
- 现代工程系统多为多输入多输出 (MIMO, Multi-Input Multi-Output)。例如一架无人机有四个旋翼(四个输入)和六个运动自由度(六个输出),用一组传递函数描述既繁琐又丢失了系统内部耦合信息。
- 传递函数无法揭示系统内部状态。两个传递函数完全相同的系统,内部动态可能截然不同——一个稳定可控,另一个则不可控。
状态空间方法(State-Space Method)源自 1960 年代 R.E. Kalman 等人的工作,它用一阶矩阵微分方程组统一描述连续和离散系统,天然支持 MIMO,并直接刻画系统内部状态。
flowchart LR
A["微分方程 / 传递函数
SISO, 外部描述"] -->|"局限"| B["无法描述 MIMO
丢失内部信息"]
C["状态空间模型
MIMO, 内部+外部"] -->|"优势"| D["统一框架
适用于现代控制与通信"]
style A fill:#C62828,color:#fff
style C fill:#228B22,color:#fff
12.2 状态的概念
状态 (State) 是系统内部一组变量,在给定未来输入的条件下,它们足以完全确定系统未来的全部行为。
几个要点:
- 最小状态集:状态变量之间彼此独立,不含冗余信息。一个 $n$ 阶系统最少需要 $n$ 个状态变量。
- 状态变量的选择不唯一:同一系统可以有多种状态变量的选取方式,它们之间通过线性变换互相转化。
- 状态向量:将 $n$ 个状态变量排成列向量:
$$\mathbf{x}(t) = \begin{bmatrix} x_1(t) \ x_2(t) \ \vdots \ x_n(t) \end{bmatrix}$$
直觉理解:如果你把系统比作一台机器,状态就是你打开盖子后"看到的一切"——弹簧的伸长量、电容上的电压、飞轮的转速。只要知道这些量和未来的外力(输入),你就能预测机器的未来。
12.3 连续时间状态空间模型
一个线性时不变 (LTI, Linear Time-Invariant) 连续系统可以用两个矩阵方程完整描述:
状态方程 (State Equation):
$$\dot{\mathbf{x}}(t) = \mathbf{A}\mathbf{x}(t) + \mathbf{B}\mathbf{u}(t)$$
输出方程 (Output Equation):
$$\mathbf{y}(t) = \mathbf{C}\mathbf{x}(t) + \mathbf{D}\mathbf{u}(t)$$
其中:
| 符号 | 名称 | 维度 | 含义 |
|---|---|---|---|
| $\mathbf{x}(t)$ | 状态向量 | $n \times 1$ | 系统内部状态 |
| $\mathbf{u}(t)$ | 输入向量 | $p \times 1$ | 外部激励 |
| $\mathbf{y}(t)$ | 输出向量 | $q \times 1$ | 可观测输出 |
| $\mathbf{A}$ | 系统矩阵 | $n \times n$ | 状态间的内部耦合 |
| $\mathbf{B}$ | 输入矩阵 | $n \times p$ | 输入对状态的作用 |
| $\mathbf{C}$ | 输出矩阵 | $q \times n$ | 状态到输出的映射 |
| $\mathbf{D}$ | 直馈矩阵 | $q \times p$ | 输入到输出的直接通路 |
flowchart LR
U["u(t) 输入"] -->|"B"| SUM["Σ"]
STATE["x(t) 状态"] -->|"A"| SUM
SUM -->|"积分"| STATE2["ẋ(t) → x(t)"]
STATE -->|"C"| Y["y(t) 输出"]
U -->|"D"| Y
style U fill:#1565C0,color:#fff
style STATE fill:#5E35B1,color:#fff
style Y fill:#228B22,color:#fff
style SUM fill:#E65100,color:#fff
数学背景提示:状态方程本质上是一阶常系数线性常微分方程组 (ODE System)。我们在线性代数中学过的矩阵特征值分解,正是求解这类方程组的核心工具。
示例:RLC 电路
考虑一个串联 RLC 电路,输入为电压源 $u(t)$,输出为电容电压 $v_C(t)$。取状态变量为电感电流 $x_1 = i_L$ 和电容电压 $x_2 = v_C$,则:
$$\dot{\mathbf{x}}(t) = \begin{bmatrix} 0 & -1/L \ 1/C & -1/(RC) \end{bmatrix} \mathbf{x}(t) + \begin{bmatrix} 1/L \ 0 \end{bmatrix} u(t)$$
$$y(t) = \begin{bmatrix} 0 & 1 \end{bmatrix} \mathbf{x}(t)$$
12.4 离散时间状态空间模型
对于离散时间 LTI 系统,状态方程变为递推形式:
$$\mathbf{x}[n+1] = \mathbf{A}\mathbf{x}[n] + \mathbf{B}\mathbf{u}[n]$$
$$\mathbf{y}[n] = \mathbf{C}\mathbf{x}[n] + \mathbf{D}\mathbf{u}[n]$$
与连续模型唯一的区别是:$\dot{\mathbf{x}}(t)$ 变成了 $\mathbf{x}[n+1]$,即从"导数"变成了"下一步"。
伪代码:离散状态空间仿真
| |
12.5 从微分方程到状态空间
给定一个 $n$ 阶常系数线性微分方程:
$$y^{(n)} + a_{n-1}y^{(n-1)} + \cdots + a_1 y’ + a_0 y = b_0 u(t)$$
相位变量形式 (Phase Variable Form)
取输出 $y$ 的各阶导数为状态变量:
$$x_1 = y, \quad x_2 = \dot{y}, \quad \ldots, \quad x_n = y^{(n-1)}$$
写成矩阵形式:
$$\mathbf{A} = \begin{bmatrix} 0 & 1 & 0 & \cdots & 0 \ 0 & 0 & 1 & \cdots & 0 \ \vdots & & & \ddots & \vdots \ 0 & 0 & 0 & \cdots & 1 \ -a_0 & -a_1 & -a_2 & \cdots & -a_{n-1} \end{bmatrix}, \quad \mathbf{B} = \begin{bmatrix} 0 \ 0 \ \vdots \ 0 \ b_0 \end{bmatrix}$$
$$\mathbf{C} = \begin{bmatrix} 1 & 0 & \cdots & 0 \end{bmatrix}, \quad \mathbf{D} = 0$$
$\mathbf{A}$ 矩阵的这种特殊结构称为友矩阵 (Companion Matrix),末行放系数,其余各行形成"移位"结构。
示例
$$\ddot{y} + 3\dot{y} + 2y = 5u$$
取 $x_1 = y, ; x_2 = \dot{y}$:
$$\mathbf{A} = \begin{bmatrix} 0 & 1 \ -2 & -3 \end{bmatrix}, \quad \mathbf{B} = \begin{bmatrix} 0 \ 5 \end{bmatrix}, \quad \mathbf{C} = \begin{bmatrix} 1 & 0 \end{bmatrix}, \quad \mathbf{D} = 0$$
12.6 状态转移矩阵与状态方程的解
状态转移矩阵
对于齐次方程 $\dot{\mathbf{x}} = \mathbf{A}\mathbf{x}$(无外部输入),解为:
$$\mathbf{x}(t) = e^{\mathbf{A}t} \mathbf{x}(0)$$
其中 $e^{\mathbf{A}t}$ 称为状态转移矩阵 (State Transition Matrix),记作 $\mathbf{\Phi}(t)$。
数学背景——矩阵指数:对标量 $e^{at}$,矩阵指数定义为无穷级数:
$$e^{\mathbf{A}t} = \mathbf{I} + \mathbf{A}t + \frac{\mathbf{A}^2 t^2}{2!} + \frac{\mathbf{A}^3 t^3}{3!} + \cdots$$
拉普拉斯变换法求 $\mathbf{\Phi}(t)$
对 $\dot{\mathbf{x}} = \mathbf{A}\mathbf{x}$ 两端取拉普拉斯变换:
$$s\mathbf{X}(s) - \mathbf{x}(0) = \mathbf{A}\mathbf{X}(s)$$
$$\mathbf{X}(s) = (s\mathbf{I} - \mathbf{A})^{-1} \mathbf{x}(0)$$
因此:
$$\mathbf{\Phi}(t) = e^{\mathbf{A}t} = \mathcal{L}^{-1}\left{(s\mathbf{I} - \mathbf{A})^{-1}\right}$$
$(s\mathbf{I} - \mathbf{A})^{-1}$ 称为预解矩阵 (Resolvent Matrix)。
非齐次方程的完全解
对于 $\dot{\mathbf{x}} = \mathbf{A}\mathbf{x} + \mathbf{B}\mathbf{u}$:
$$\mathbf{x}(t) = \underbrace{e^{\mathbf{A}t}\mathbf{x}(0)}{\text{零输入响应}} + \underbrace{\int_0^t e^{\mathbf{A}(t-\tau)}\mathbf{B}\mathbf{u}(\tau),d\tau}{\text{零状态响应}}$$
输出:
$$\mathbf{y}(t) = \mathbf{C}e^{\mathbf{A}t}\mathbf{x}(0) + \int_0^t \mathbf{C}e^{\mathbf{A}(t-\tau)}\mathbf{B}\mathbf{u}(\tau),d\tau + \mathbf{D}\mathbf{u}(t)$$
其中 $\mathbf{h}(t) = \mathbf{C}e^{\mathbf{A}t}\mathbf{B} + \mathbf{D}\delta(t)$ 正是系统的冲激响应矩阵。
Python 验证示例
| |
12.7 可控性与可观测性
这是状态空间分析中最具深刻意义的两个概念,由 Kalman 在 1960 年提出。
可控性 (Controllability)
定义:如果存在一个输入 $\mathbf{u}(t)$,能在有限时间内将系统从任意初始状态 $\mathbf{x}(0)$ 驱动到任意目标状态 $\mathbf{x}_f$,则系统完全可控。
判据:构造可控性矩阵:
$$\mathcal{C} = \begin{bmatrix} \mathbf{B} & \mathbf{A}\mathbf{B} & \mathbf{A}^2\mathbf{B} & \cdots & \mathbf{A}^{n-1}\mathbf{B} \end{bmatrix}$$
若 $\text{rank}(\mathcal{C}) = n$,则系统完全可控。
直觉:$\mathcal{C}$ 的列向量张成了输入 $\mathbf{u}$ 能影响到的状态空间。如果满秩,说明输入能"够得着"每一个状态维度。
可观测性 (Observability)
定义:如果能通过有限时间内的输出 $\mathbf{y}(t)$ 唯一确定任意初始状态 $\mathbf{x}(0)$,则系统完全可观测。
判据:构造可观测性矩阵:
$$\mathcal{O} = \begin{bmatrix} \mathbf{C} \ \mathbf{C}\mathbf{A} \ \mathbf{C}\mathbf{A}^2 \ \vdots \ \mathbf{C}\mathbf{A}^{n-1} \end{bmatrix}$$
若 $\text{rank}(\mathcal{O}) = n$,则系统完全可观测。
对偶性 (Duality)
可控性和可观测性之间存在优美的对偶关系:系统 $(\mathbf{A}, \mathbf{B}, \mathbf{C})$ 的可控性等价于系统 $(\mathbf{A}^T, \mathbf{C}^T, \mathbf{B}^T)$ 的可观测性。
flowchart TD
Q1["可控?
输入能否驱动所有状态?"] -->|"rank(C)=n"| YES1["完全可控"]
Q1 -->|"rank(C)输出能否推断所有状态?"] -->|"rank(O)=n"| YES2["完全可观测"]
Q2 -->|"rank(O)
12.8 稳定性分析
特征值判据
对于 LTI 系统 $\dot{\mathbf{x}} = \mathbf{A}\mathbf{x}$,系统渐近稳定的充要条件是:
$$\text{Re}(\lambda_i) < 0, \quad \forall, i = 1, 2, \ldots, n$$
即 $\mathbf{A}$ 的所有特征值均位于复平面左半部分。$\mathbf{A}$ 的特征值正是传递函数的极点:
$$\det(s\mathbf{I} - \mathbf{A}) = 0$$
就是系统的特征方程。
Lyapunov 稳定性
对于线性系统,Lyapunov 给出了一个等价判据:系统渐近稳定,当且仅当对任意正定矩阵 $\mathbf{Q}$,Lyapunov 方程:
$$\mathbf{A}^T \mathbf{P} + \mathbf{P}\mathbf{A} = -\mathbf{Q}$$
存在唯一的正定解 $\mathbf{P}$。
物理直觉:$V(\mathbf{x}) = \mathbf{x}^T \mathbf{P} \mathbf{x}$ 可以理解为一个"能量函数"。$\dot{V} < 0$ 意味着能量持续耗散,系统必然趋于平衡点。
12.9 工程应用
12.9.1 控制系统设计——LQR 与状态反馈
状态空间模型的直接价值在于状态反馈控制。若所有状态可测,控制律:
$$\mathbf{u}(t) = -\mathbf{K}\mathbf{x}(t)$$
将闭环系统变为 $\dot{\mathbf{x}} = (\mathbf{A} - \mathbf{B}\mathbf{K})\mathbf{x}$。通过选择 $\mathbf{K}$,可以任意配置闭环极点(前提是系统可控)。
线性二次型调节器 (LQR) 通过最小化代价函数:
$$J = \int_0^{\infty} \left(\mathbf{x}^T \mathbf{Q}\mathbf{x} + \mathbf{u}^T \mathbf{R}\mathbf{u}\right) dt$$
自动求解最优反馈增益 $\mathbf{K} = \mathbf{R}^{-1}\mathbf{B}^T\mathbf{P}$。
12.9.2 通信系统中的信道建模
多天线 (MIMO) 通信系统中,发射端的多个信号经信道矩阵 $\mathbf{H}$ 耦合到接收端:
$$\mathbf{y} = \mathbf{H}\mathbf{x} + \mathbf{n}$$
当信道存在记忆(多径延迟)时,可以用状态空间模型描述信道动态。
12.9.3 密码学中的 LFSR
线性反馈移位寄存器 (LFSR) 是流密码的核心组件,天然具有状态空间结构。
一个 $n$ 级 LFSR 的反馈关系为:
$$a_k = c_{n-1}a_{k-1} + c_{n-2}a_{k-2} + \cdots + c_0 a_{k-n}$$
取状态 $\mathbf{x}[k] = [a_{k-1}, a_{k-2}, \ldots, a_{k-n}]^T$,则:
$$\mathbf{x}[k+1] = \begin{bmatrix} c_{n-1} & c_{n-2} & \cdots & c_0 \ 1 & 0 & \cdots & 0 \ 0 & 1 & \cdots & 0 \ \vdots & & \ddots & \vdots \ 0 & 0 & \cdots & 0 \end{bmatrix} \mathbf{x}[k]$$
LFSR 的周期取决于 $\mathbf{A}$ 矩阵的特征多项式在 GF(2) 上是否为本原多项式。状态空间视角使得我们可以用线性代数工具分析密码系统的性质。
12.10 小结
概念
核心思想
状态空间模型
用一阶矩阵方程统一描述系统内部与外部行为
状态变量
系统内部最小信息集,足以预测未来
状态转移矩阵 $e^{\mathbf{A}t}$
描述状态在时间上的自由演化
可控性
输入能否到达所有状态维度
可观测性
输出能否反映所有状态维度
稳定性
$\mathbf{A}$ 的特征值全在左半平面
状态空间方法架起了经典信号分析与现代控制理论之间的桥梁。它将频域的"极点-零点"语言扩展为时域的"状态-矩阵"语言,使得我们不仅能问"系统输出什么",还能回答"系统内部发生了什么,我们能否控制它、观测它"。