3. 降维观测器设计
全维观测器咱们聊完了。说白了,它就是把系统的所有状态都估计一遍。但你想想看,有些状态我们明明可以直接测量到,干嘛还要费劲去估计它?
这就是降维观测器出场的理由。我当年第一次接触这个概念时,心里想的是:「这不就是偷懒吗?」后来真做了项目才发现,这哪是偷懒,这是工程智慧。
3.1 降维观测器的核心思想
降维观测器,英文叫 Reduced-Order Observer。它的思路很简单:
- 可测的状态:直接拿传感器读数,不用估计
- 不可测的状态:只对这些状态设计观测器
假设系统有 n 个状态,其中 m 个可以直接测量。那么全维观测器要估计 n 个状态,而降维观测器只需要估计 n-m 个状态。
核心结论:降维观测器的阶数 = n - m,比全维观测器低了 m 阶。
阶数低了,计算量就小了,硬件实现也更省资源。我在一个嵌入式电机控制项目里用过这个,当时 DSP 的资源吃紧,换成降维观测器后,运算周期从 120μs 降到了 75μs。效果很明显。
3.2 降维观测器的结构
咱们先看系统模型。假设状态方程是:
ẋ = Ax + Bu
y = Cx
把状态分成两部分:
- x₁:可测的状态(m 维)
- x₂:不可测的状态(n-m 维)
对应的矩阵也要分块:
[ẋ₁] [A₁₁ A₁₂] [x₁] [B₁]
[ẋ₂] = [A₂₁ A₂₂] [x₂] + [B₂] u
y = [I 0] [x₁]
[x₂]
这里 y = x₁,因为 x₁ 直接可测。
降维观测器的结构长这样:
ẋ̂₂ = (A₂₂ - L A₁₂) x̂₂ + (A₂₁ - L A₁₁) y + (B₂ - L B₁) u + L ẏ
嗯,这里要注意。公式里出现了 ẏ,也就是输出的导数。实际工程中我们不会直接对信号求导——噪声会被放大得一塌糊涂。
避坑指南:我曾经在早期的一个项目中直接对传感器信号求导,结果观测器输出全是毛刺,根本没法用。后来改用变量替换法,才把问题解决。
变量替换法是这样的:
定义一个新变量:
z = x̂₂ - L y
这样就能消掉 ẏ 项。新的观测器方程变成:
ż = (A₂₂ - L A₁₂) z + (A₂₁ - L A₁₁ + (A₂₂ - L A₁₂)L) y + (B₂ - L B₁) u
x̂₂ = z + L y
你看,现在只需要积分 ż,不需要对 y 求导了。这就是工程上的小技巧。
3.3 设计步骤
降维观测器的设计步骤,我习惯这么走:
- 分块:把状态分成可测和不可测两组
- 重写方程:按分块重新整理 A、B、C 矩阵
- 确定极点:根据系统要求,选定观测器的极点位置
- 计算增益 L:用极点配置法,算出 L 矩阵
- 构建观测器:用变量替换法,写出最终的观测器方程
举个例子。假设系统是:
A = [-2 1] B = [1] C = [1 0]
[ 0 -3] [0]
这里 x₁ 可测,x₂ 不可测。分块后:
A₁₁ = -2, A₁₂ = 1
A₂₁ = 0, A₂₂ = -3
B₁ = 1, B₂ = 0
假设我们希望观测器极点在 -5 处。那么:
A₂₂ - L A₁₂ = -3 - L·1 = -5
解得:L = 2
观测器方程:
ż = (-3 - 2·1)z + (0 - 2·(-2) + (-3 - 2·1)·2)y + (0 - 2·1)u
= -5z + (4 - 5·2)y - 2u
= -5z - 6y - 2u
x̂₂ = z + 2y
搞定。就这么简单。
3.4 与全维观测器的对比
咱们用表格来对比一下:
| 对比项 | 全维观测器 | 降维观测器 |
|---|---|---|
| 阶数 | n | n - m |
| 估计的状态 | 全部 n 个 | 仅不可测的 n-m 个 |
| 计算量 | 较大 | 较小 |
| 收敛速度 | 可任意配置 | 可任意配置 |
| 对噪声敏感度 | 较低 | 较高(因为用到 y 的导数) |
| 实现复杂度 | 简单直接 | 需要变量替换 |
我个人习惯是:如果系统状态不多(比如 2-3 个),直接用全维观测器,省事。如果状态多或者硬件资源紧张,就用降维观测器。
小提示:降维观测器的极点可以比全维观测器设得快一些。因为它的阶数低,同样的极点位置,收敛速度会更快。但别设太快,否则对噪声太敏感。
3.5 知识体系图
下面这张图展示了降维观测器的核心逻辑:
3.6 工程中的选择建议
到底用全维还是降维?我给大家几个参考:
- 状态数 n ≤ 3:直接用全维观测器,代码简单,调试方便
- 状态数 n ≥ 6:强烈建议用降维观测器,节省计算资源
- 传感器噪声大:优先考虑全维观测器,降维观测器对噪声更敏感
- 硬件资源紧张:降维观测器是更好的选择
我记得有一次做无人机姿态估计,IMU 的角速度可以直接测量,但姿态角需要估计。系统有 6 个状态,3 个可测。用全维观测器的话,DSP 的负载率飙到了 85%。换成降维观测器后,负载率降到了 55%,还多出了资源做其他控制算法。
这就是降维观测器的价值——不是它比全维观测器「更好」,而是在合适的场景下,它更「经济」。
公众号:蓝海资料掘金营,微信deep3321