状态空间表示把系统从「黑箱 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、LTIMIMO、时变、非线性均可推广
初始条件默认为零显式携带
结构分析无能控性、能观性、Kalman 分解

现代控制的总框架

经典频域方法在 MIMO 与多约束下力不从心,状态空间把设计变成线性代数问题:

SSM 与 Mamba:序列建模中的状态空间

S4/Mamba 一脉的 SSM(state-space model)直接拿线性状态方程当序列模型骨架:

  • 双计算路径:训练时用卷积形式(核为 的采样,对应传递函数)沿整个序列并行;推理时用递推形式(对应状态方程)逐步展开,每 token 常数开销
  • HiPPO 初始化:特殊设计 使 高保真压缩全部历史——本质是状态向量的记忆容量问题
  • Mamba 的选择性:让 随输入变化,等效时变状态空间;输入调制系统参数在控制中并不陌生——反馈线性化后的系统正是输入依赖的状态方程

控制理论早就算清了这类系统的能控、能观与稳定性;SSM 的贡献是把它做成了可大规模训练的序列架构。