状態空间 可观测性模拟器 返回
控制工程

状態空间 可观测性模拟器

针对2次线性时不变系统 ẋ=Ax+Bu, y=Cx 的工具,判断「仅从测定的输出 y 能否了解全部内部状态 x」。通过改变系统矩阵 A 和传感器行向量 C,可实时得到可观测矩阵 O=[C;CA] 的行列式与秩,探索可实现状态估计的设计方案。

参数设置
系统矩阵 A
2次系统的动力学 A = [[a11,a12],[a21,a22]]
a11
a12
a21
a22
输出行向量 C
传感器如何测量状态 y = C·x = c1·x1 + c2·x2
c1
c2
设为 0 表示不直接测量状态 x2 的配置
计算结果
可观测矩阵的行列式 det
CA 成分1
CA 成分2
可观测性
|det|
可观测矩阵的行向量 — C 与 CA 张成的平面

从原点出发的两条箭头分别代表可观测矩阵的行 C(蓝)和 CA(橙)。若线性无关则张成全平面(绿色网纹=可观测),平行则不可观测方向显示为红色。

det(𝒪) 的 c2 依赖性
可观测矩阵的行向量成分
理论·主要公式

$$\mathcal{O}=\begin{bmatrix}C \\ CA\end{bmatrix},\qquad \text{可观测}\iff \operatorname{rank}\mathcal{O}=n$$

可观测矩阵 𝒪 与可观测性判定条件。C:输出行向量,A:系统矩阵,n:状态阶次(此处 n=2)。满秩时可从输出 y 重构全部状态 x。

$$CA=\bigl[\,c_1a_{11}+c_2a_{21},\;\; c_1a_{12}+c_2a_{22}\,\bigr]$$

2次系统的 CA 行向量成分。输出行 C 右乘 A,成为 𝒪 的第2行。

$$\det\mathcal{O}=c_1\,CA_2-c_2\,CA_1$$

2×2 可观测矩阵的行列式。若不为 0 则秩为2、满秩、可观测。n 次系统中 𝒪=[C;CA;CA²;…;CAⁿ⁻¹] 逐行堆叠。可观测性与可控制性对偶,(A,C) 的可观测性等同于 (Aᵀ,Cᵀ) 的可控制性。

可观测性概述

🙋
我在控制课上听说过「可观测性」这个词,但其实不太明白。到底什么是「可以观测」呢?
🎓
简单说就是「只看传感器测得的输出 y,能否完全了解系统内部状态 x?」这个问题。比如无人机姿态控制,理想情况下既要知道角度也要知道角速度,但有时只有陀螺仪测角速度。如果从输出历史能够全部复原角度,那就是「可观测」;如果有些方向永远看不到,就是「不可观测」。
🙋
那怎样判断是否「可观测」呢?不能靠感觉,肯定有严格的计算方法吧?
🎓
对,用可观测矩阵 𝒪 来判断。把输出行向量 C 和它右乘 A 的结果 CA 纵向堆起来。对于2次系统,𝒪=[C;CA] 就是个2×2矩阵。看这个矩阵的秩是否等于状态阶次(这里是2)。满秩就可观测。试试左边的滑块,调整 c2。当 det(𝒪) 越过 0 时,秩从2掉到1,判定就变成「不可观测」了。
🙋
右边的画布里有两条箭头。那是 C 和 CA 吧?平行时变红色…
🎓
完全对。这是可观测矩阵「行向量」的可视化。C 和 CA 如果指向不同方向,两条线张成整个平面=能得到2个独立信息=可观测。但如果都在一条直线上(平行),本质上只能得到1个方向的信息。那个「看不见的方向」就显示为红色。det(𝒪) 实际上就是这两条线围成的平行四边形的有向面积。面积为0说明图形压扁了。
🙋
那要是不可观测了,是不是就无法解决了?
🎓
不是,还是有办法的。最直接的是增加传感器来改变 C。比如只需把 c2 从 0 改到 0.5,混入 x2 的信息,常常就能变成可观测。如果硬件上加不了传感器,至少要确认「不可观测的模态是不是稳定的」(可检测性)。如果不可观测的模态会发散,那观测器和卡尔曼滤波器都会失效,这是致命问题。
🙋
经常听到「可观测性」和「可控制性」一起提,两者什么关系?
🎓
这两个是「对偶(duality)」关系,硬币的两面。可控制性问的是「输入能否把状态推到任意地方」,可观测性问的是「输出能否读到所有状态」。数学上可观测矩阵 [C;CA;…] 和 A 转置后的对偶系统的可控制矩阵完全相同。所以 (A,C) 的可观测性等价于 (Aᵀ,Cᵀ) 的可控制性,判定算法可以通用。观测器设计和状态反馈设计是「镜像关系」,就是因为这个对偶性。

常见问题

可观测性是指仅从有限时间内测量的输出 y(t) 历史,就能唯一重构系统内部状态 x(t) 的性质。对于状态空间模型 ẋ=Ax+Bu, y=Cx,当可观测矩阵 O=[C;CA;…;CAⁿ⁻¹] 的秩等于状态阶次 n 时,该系统称为可观测。不可观测的系统存在不影响输出的「不可观测状态方向」。
对于2次系统,将输出行向量 C=[c1,c2] 与其右乘 A 的结果 CA 纵向堆叠形成 O=[C;CA] 的2×2矩阵。CA=[c1·a11+c2·a21, c1·a12+c2·a22]。该矩阵的行列式为 det(O)=c1·CA[1]−c2·CA[0]。若 det(O)≠0,则秩为2(满秩)为可观测;若为0,则行 C 和 CA 线性相关,秩下降,不可观测。
可控制性表示「输入能否到达所有状态」,可观测性表示「输出能否读取所有状态」,二者为互对偶的概念。可观测矩阵 O=[C;CA;…] 与对偶系统(A→Aᵀ, B→Cᵀ)的可控制矩阵完全相同。即 (A,C) 的可观测性等价于 (Aᵀ,Cᵀ) 的可控制性,判定方法可互用。
在不可观测系统中,状态空间内存在完全不出现在输出 y 中的「不可观测子空间」。其中的状态(如内部发散的模态)无论如何观测都无法用观测器或卡尔曼滤波器估计。实际应用需要增加传感器以改变 C、重新设计或确认不可观测模态处于稳定(可检测)状态。

实际应用

观测器(状态估计器)设计:电机旋转角可用编码器测,但角速度或负载力矩往往测不到。用卢恩伯格观测器做未测状态的推估时,首先必须确认系统可观测。不可观测系统无法任意配置观测器极点,估计误差无法收敛。本工具的秩判定是搭建观测器前的第一步检验。

卡尔曼滤波与传感器融合:自动驾驶车的自定位、飞行器惯性导航从多个含噪传感器推估状态。卡尔曼滤波稳定收敛需要系统可观测(至少可检测)。GPS中断时「部分状态临时不可观测」可作为分析框架,估计那段时间滤波性能衰减。

传感器位置确定:大型结构健康监测或化工厂温度浓度推估时,「在哪里放多少传感器才能读取全部内部状态」是设计课题。候选 C 矩阵逐个计算秩,选出满秩且传感器数最少的配置。本工具调整 c1、c2 的过程就是这个选择过程的缩影。

模型降阶与现代控制教学:只保留既可观测又可控制的部分(最小实现)来缩简模型时,要用到可观测性。大学控制课程必学可观测矩阵、可控制矩阵、对偶性等。手工算完 det(𝒪) 后,用本工具验算答案;连续改变参数看秩何时下降,体验「奇异配置」。

常见误区与注意事项

最常见的误解是「可观测性只由 A 决定」。错!可观测性由组合 (A,C) 决定,取决于输出矩阵 C 的选择——即选择测哪个状态。同一个 A,把 c2 改成 0 就变不可观测了。反过来,也别以为「不可观测就系统设计坏了」。往往加个传感器改变 C 就可观测,可观测性应该看作「传感器设计问题」而非「系统缺陷」。

其次是「det(𝒪) 接近但不为0就基本可观测,问题不大」的麻痹。理论上 det(𝒪)≠0 确实可观测,但 det(𝒪) 极小的系统「几乎不可观测」,实用上很危险。可观测格拉姆矩阵最小奇异值小时,微小测量噪声会被放大成状态推估的巨大误差。本工具显示 |det|,但实机要看条件数、奇异值这类「可观测性强度」指标。

最后是「不可观测就无法控制」的刻板印象。可观测性和可控制性是两码事!不可观测的系统,只要不可观测模态都稳定(可检测),输出反馈就能镇定它。反之一个可控可观的系统,如果不可检测的模态会发散,状态推估会失控。实务中常需要的是「可检测」(比「可观测」弱)和「可镇定」(比「可控制」弱),而不是完整的可观测和可控制。选对真正需要的条件最重要。

使用指南

  1. 用滑块或数字输入框设置系统矩阵 A 的4个元素(a11、a12、a21、a22)。参数范围制约可进行敏感性分析
  2. 输出矩阵 C 标准形式[1 0]固定。可观测矩阵 O=[C; CA] 自动生成,行列式和秩实时计算
  3. 可观测性判定:2次系统当 rank(O)=2 且 det(O)≠0 时完全可观测。状态估计器(观测器)设计可行,判定为可观测

具体计算示例

直流电动机控制系统,A=[[0,1],[-10,−3]]、C=[1,0]。得 CA=[-10,-3],可观测矩阵 O=[[1,0],[−10,−3]],det(O)=−3≠0,rank=2。完全可观测,卢恩伯格观测器可实现极点配置[-5,-8]。反例:A=[[0,1],[0,−2]],CA=[0,−2],det(O)=0,不可观测。角速度无法测得,必须增加编码器。

工程实践注意点