能控性与能观性是状态空间理论的两大结构性质:输入能否把状态引导到任意位置,输出能否把状态完全推断出来。它们不问稳定与否、只问结构通不通,由矩阵秩一刀判定;Kalman 分解进而表明——传递函数只描绘系统的能控能观部分,其余状态全是 I/O 看不见的内部动态。
两个结构问题
状态空间表示 State-Space 描述 维内部状态,但输入 未必摸得着每个状态分量,输出 未必看得清每个分量:
| 性质 | 问题 | 定义 |
|---|---|---|
| 能控性 controllability | 输入能否指挥全部状态 | 存在有限时间 与输入 ,把任意 转移到任意 |
| 能观性 observability | 输出能否看清全部状态 | 由 上的 可唯一确定 |
二者只取决于 、 的结构,与稳定性、增益大小无关——完全能控的系统可以极不稳定,反之亦然。
秩判据
把解 中的矩阵指数展开可知:可达方向全部落在 里;由 Cayley–Hamilton 定理(矩阵满足自己的特征方程,正是常微分方程中特征方程解法的矩阵版), 的 都是低次幂的线性组合。于是只需检查两个有限矩阵:
能控 ⟺ ;能观 ⟺ 。
能观性的读法:零输入下对输出反复求导得 ,共 组关于 的线性方程——恰好定位初态 ⟺ 列满秩。
能量形式是 Gramian: 正定 ⟺ 能控,且由它构造的输入给出最小能量转移。秩判据回答「通不通」,Gramian 回答「多费劲」。
import numpy as np
def ctrb(A, B):
"""能控性矩阵 [B, AB, ..., A^{n-1}B]"""
blocks = [B]
for _ in range(len(A) - 1):
blocks.append(A @ blocks[-1])
return np.hstack(blocks)
def obsv(A, C):
"""能观性矩阵 [C; CA; ...; CA^{n-1}]"""
blocks = [C]
for _ in range(len(A) - 1):
blocks.append(blocks[-1] @ A)
return np.vstack(blocks)
A = np.diag([1.0, 2.0]) # 两个独立模态
B = np.array([[1.0], [0.0]]) # 输入只驱动模态 1
C = np.array([[1.0, 0.0]]) # 输出只看见模态 1
print(np.linalg.matrix_rank(ctrb(A, B))) # 1 < 2 → 不能控
print(np.linalg.matrix_rank(obsv(A, C))) # 1 < 2 → 不能观模态视角:PBH 判据
秩条件有一条透明的物理读法。设 为 的左特征向量 且 ,则
投影 按 自生自灭,任何输入都够不着这个模态——它与执行器绝缘。对偶地,右特征向量 且 时,从 出发的响应全程 ——该模态对传感器隐形。
PBH 判据(Popov–Belevitch–Hautus):能控 ⟺ 对每个特征值 有 ;能观 ⟺ 。
一句话:能控 = 每个模态都可被输入激发;能观 = 每个模态都在输出留下痕迹。 工程原型俯拾皆是——激振器频率不合振型(不可激发),传感器装在振型节点上(不可观测)。
对偶性
能控 ⟺ 能观: 转置恰是对偶系统的 。控制与估计因此共享一套数学,能控性理论原样翻译成观测器理论;卡尔曼滤波 Kalman Filter 与 LQR 的深层对偶正是这一关系的概率版。
Kalman 分解与最小实现
按能控、能观两个布尔属性,状态空间被切成四块。取适当坐标变换:
耦合项在传函中全部抵消,只剩能控且能观块:
三条推论:
- 传递函数是半张脸:传递函数 Transfer Function 只刻画 子系统,其余状态是 I/O 测不到的内部动态
- 零极点对消 = 结构性失明:对消掉的极点并未消失,只是落入不可达或不可见的块。若被消的是右半平面极点,系统 BIBO 稳而内部发散——系统稳定性 Stability 中外部与内部稳定的裂缝正源于此
- 最小实现:给定 的最低阶实现在模相似意义下唯一,就是能控且能观的那个;一切非最小实现都是它挂载的死重
危险组合一目了然:不能控 + 不稳定模态是拆不掉的炸弹——反馈够不着;不能观 + 不稳定模态是隐形的炸弹——传感器看不见。两者都让基于传函的设计产生虚假的安全感。
可镇定与可检测
设计上常只需弱化版本:
| 弱化条件 | 要求 | 支撑的设计 |
|---|---|---|
| 可镇定 stabilizable | 不能控模态均稳定 | 状态反馈与极点配置 Pole Placement:能控才可任意配置极点,可镇定则足以镇定 |
| 可检测 detectable | 不能观模态均稳定 | 观测器 / 卡尔曼滤波误差收敛的充要条件 |
分离原理:可镇定 + 可检测时,状态反馈增益与观测器可独立设计、拼装后性能不打折——LQG 的模块化架构正立在这两条结构性质上。
表示的写入与读出:ML 视角
结构化状态空间模型(S4、Mamba)的递推 就是离散线性系统,能控/能观于是成为架构的先天属性——训练只能微调,无法凭空补上:
- 能控 = 写入带宽: 满秩且良态,输入序列才能把 hidden state 引向任意方向; 病态时,部分记忆维度永远收不到新信息
- 能观 = 读出无死角:hidden 的每个方向都应在输出留下可分辨痕迹,能观性病态的方向存了信息也读不出来。线性探针(linear probe)检验的正是表示的能观性
- S4 的 HiPPO 初始化刻意塑造 的谱结构,让「最近输入可达、历史信息可读」成为先验而非运气
更广地看,表示学习反复追问的「信息能否写进表示、能否从表示恢复」(可达性与可辨识性 identifiability)与能控/能观同构——Kalman 的秩条件是任何「状态 + 输入输出接口」系统的通用体检表。