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]$,即从"导数"变成了"下一步"。

伪代码:离散状态空间仿真

1
2
3
4
5
给定: A, B, C, D, x[0], u[0..N-1]
对于 n = 0 到 N-1:
    y[n] = C * x[n] + D * u[n]
    x[n+1] = A * x[n] + B * u[n]
返回 y[0..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 验证示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import numpy as np
from scipy import linalg, signal

A = np.array([[0, 1], [-2, -3]])
B = np.array([[0], [5]])
C = np.array([[1, 0]])
D = np.array([[0]])

# 计算状态转移矩阵 Phi(t) at t=1
Phi = linalg.expm(A * 1.0)
print("Phi(1) =", Phi)

# 特征值 → 判断稳定性
eigvals = linalg.eig(A)[0]
print("特征值:", eigvals)  # 应为 -1, -2

# 状态空间 → 传递函数
num, den = signal.ss2tf(A, B, C, D)
print("分子:", num, "分母:", den)

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}$ 的特征值全在左半平面

状态空间方法架起了经典信号分析与现代控制理论之间的桥梁。它将频域的"极点-零点"语言扩展为时域的"状态-矩阵"语言,使得我们不仅能问"系统输出什么",还能回答"系统内部发生了什么,我们能否控制它、观测它"。