状态空间表示把系统从「黑箱 I/O」升级为「白箱内部结构」:一阶矩阵微分方程同时刻画状态演化与输出观测,是现代控制的总框架,也是 RNN 与 SSM/Mamba 的数学原型。
内部描述:状态方程
传递函数 Transfer Function 只记录输入–输出关系,内部结构不可见;状态空间回到 常微分方程 的一阶形式,把整个系统压缩成一对矩阵方程:
| 符号 | 维度 | 角色 |
|---|---|---|
| 状态向量:概括系统全部历史的最小变量组 | ||
| , | , | 输入,输出 |
| 系统矩阵:自由演化,特征值即极点 | ||
| 输入如何驱动状态 | ||
| 状态如何映射为输出 | ||
| 输入直通输出 |
状态选取: 阶 ODE 取相变量 ;物理系统取储能变量(LC 网络的电感电流、电容电压)。选取不唯一——任意可逆变换 给出相似实现 ,但特征值 不变,它们就是系统极点。
解:矩阵指数
齐次方程的解是矩阵指数(matrix exponential):
受迫解由常数变易法给出:
又称状态转移矩阵 :把 时刻的状态线性搬运到 。若 可对角化 ,则 ——每个特征方向独立地指数演化,极点实部直接决定收敛或发散,稳定判据与时域指标在此同源。
离散化
采样周期 、零阶保持(ZOH)下的精确离散化:
特征值映射 ,即 s 平面到 z 平面(见 离散控制系统 Digital Control)。
import numpy as np
from scipy.linalg import expm
A = np.array([[0, 1], [-2, -3]]) # x'' + 3x' + 2x = u
B = np.array([[0.0], [1.0]])
Ts = 0.1
Ad = expm(A * Ts) # ZOH 精确离散化
Bd = np.linalg.solve(A, (Ad - np.eye(2)) @ B)
x = np.array([[1.0], [0.0]]) # 初值 [x0, x0']
for _ in range(50): # 单位阶跃输入,共 5 秒
x = Ad @ x + Bd # 状态递推
print(x.ravel()) # ≈ [0.5, 0],稳态 x = u/2这条递推式就是 RNN 的骨架: 是输入驱动的非线性离散状态空间系统,hidden state 即状态向量。线性近似下谱半径 才不发散——梯度消失/爆炸与极点位置决定收敛速度,是同一数学事实。
与传递函数互转
同一 LTI 系统的两种描述可互相转换:
的极点恰为 的特征值,但 只保留能控且能观的模态。反向实现(realization)不唯一:同一 对应无穷组 ,阶数最低的最小实现要求 能控、 能观——判定见 能控性与能观性 Controllability and Observability。
| 传递函数 | 状态空间 | |
|---|---|---|
| 视角 | 外部 I/O | 内部结构 |
| 适用 | SISO、LTI | MIMO、时变、非线性均可推广 |
| 初始条件 | 默认为零 | 显式携带 |
| 结构分析 | 无 | 能控性、能观性、Kalman 分解 |
现代控制的总框架
经典频域方法在 MIMO 与多约束下力不从心,状态空间把设计变成线性代数问题:
- 状态反馈 :直接移动闭环极点(状态反馈与极点配置 Pole Placement)
- 状态不可全测时用观测器重构,噪声情形的最优观测器即 卡尔曼滤波 Kalman Filter
- LQR 在此框架下解 Riccati 方程得最优增益;Lyapunov 方法把稳定性判据推广到非线性状态方程
SSM 与 Mamba:序列建模中的状态空间
S4/Mamba 一脉的 SSM(state-space model)直接拿线性状态方程当序列模型骨架:
- 双计算路径:训练时用卷积形式(核为 的采样,对应传递函数)沿整个序列并行;推理时用递推形式(对应状态方程)逐步展开,每 token 常数开销
- HiPPO 初始化:特殊设计 使 高保真压缩全部历史——本质是状态向量的记忆容量问题
- Mamba 的选择性:让 随输入变化,等效时变状态空间;输入调制系统参数在控制中并不陌生——反馈线性化后的系统正是输入依赖的状态方程
控制理论早就算清了这类系统的能控、能观与稳定性;SSM 的贡献是把它做成了可大规模训练的序列架构。