《飞控数学与控制 · 新手入门连载》第 15 期|状态观测器:Luenberger 观测器与状态重构——看不见的状态也能估计

《飞控数学与控制 · 新手入门连载》第 15 期|状态观测器:Luenberger 观测器与状态重构------看不见的状态也能估计

摘要 / 导读

上一期我们用极点配置与 LQR 让系统"按意愿行动",但 LQR 的前提是全状态反馈 :控制器需要知道 x 的每一个分量。现实中很多状态根本测不到(无人机机体的角加速度、陀螺仪的常值漂移、电机内阻压降......)。本期解决这个问题:状态观测器------用一个"影子系统"(Luenberger 观测器)在线重构无法直接测量的状态,并证明它与真实状态的误差可以按我们指定的速度衰减到零。最后结合飞控场景说明"分离原理"如何让 LQR + 观测器协同工作。


一、为什么需要观测器

第 14 期的状态反馈 u = −Kx 中,K 由 Riccati 方程求出,但x 必须已知。现实矛盾:

  • 无人机角速度环:期望跟踪角速度,但角加速度 ẋ 无法用传感器直接测得;
  • IMU 陀螺仪有常值零漂 b:b 是状态却测不到,只能"估";
  • 某些量测噪声太大:直接微分 y 会放大噪声(第 12 期微分滤波的教训),不如用模型重构。

能观性(第 13 期)告诉我们:只要 (A, C) 能观,系统的全部状态就蕴含在输入输出序列 (u, y) 里。观测器就是把"蕴含"变成"显式估计"。


二、开环观测器:先复制一个"影子系统"

考虑线性系统:

\\dot{x} = Ax + Bu, \\qquad y = Cx \\tag{1}

一个朴素想法:用同样的 A、B 复制一套:

\\dot{\\hat{x}} = A\\hat{x} + Bu \\tag{2}

定义估计误差 e = x - \\hat{x}。两式相减:

\\dot{e} = \\dot{x} - \\dot{\\hat{x}} = (Ax + Bu) - (A\\hat{x} + Bu) = A e \\tag{3}

误差动力学 \\dot{e} = Ae 完全不受输入影响------这是关键发现:误差的演化只由 A 决定。若 A 稳定,e 最终衰减到零;若 A 不稳定(或衰减太慢),估计永远追不上。

开环观测器的问题 :① 衰减速度由系统自身极点决定,不可控;② 对初始误差、建模误差、扰动毫无抵抗。所以必须用测量 y 反馈校正。


三、Luenberger 观测器:注入量测修正

既然真实输出 y = Cx 可测,就把"预测输出 ŷ = Cx̂"和真实输出的差乘上增益 L,反馈进影子系统:

\\dot{\\hat{x}} = A\\hat{x} + Bu + L\\,(y - C\\hat{x}) \\tag{4}

这就是 Luenberger 观测器。再看误差动力学:

\\dot{e} = \\dot{x} - \\dot{\\hat{x}} = Ax + Bu - \\big\[A\\hat{x} + Bu + L(y - C\\hat{x})\\big\]

代入 y = Cx,逐项展开(技巧:把 Bu 抵消掉):

\\dot{e} = A x - A\\hat{x} - L(Cx - C\\hat{x}) = (A - LC)\\, e \\tag{5}

核心结论 :误差动力学变成 \\dot{e} = (A - LC)e。只要我们选择 L 使矩阵 (A − LC) 的特征值(观测器极点)落在期望位置,误差就以对应速度指数衰减。我们彻底掌控了估计的收敛速度。

直观理解:L 就是"相信测量 y 多少、相信模型 x̂ 多少"的权衡旋钮。L 越大,量测修正越强,收敛越快;但噪声也越容易被放大。

图 15-1 Luenberger 观测器结构框图(示意):真实系统与观测器共用输入 u,观测器以量测修正项 L(y − ŷ) 闭环,误差注入点使 ė = (A − LC)e。


四、如何设计 L:对偶原理(本期推导技巧)

第 14 期我们学过极点配置:找 K 使 (A − BK) 极点任意配置。现在要找 L 使 (A − LC) 极点任意配置。两者惊人地对称:

对 (5) 两边取转置(技巧:转置不改变特征值):

(A - LC)\^T = A\^T - C\^T L\^T \\tag{6}

记 \\bar{A} = A\^T,\\ \\bar{B} = C\^T,\\ \\bar{K} = L\^T,则 (6) 变成:

(A - LC)\^T = \\bar{A} - \\bar{B}\\bar{K} \\tag{7}

这正是第 14 期的状态反馈极点配置问题!(A − LC) 的特征值 = (Ā − B̄K̄) 的特征值。于是:

设计步骤(对偶法): 1. 对 (Aᵀ, Cᵀ) 执行 Ackermann/place 极点配置,得到 K̄; 2. 取 L = K̄ᵀ; 3. 验证 (A, C) 能观 ⟺ (Aᵀ, Cᵀ) 能控------这就是"能观性"与"能控性"的对偶(呼应第 13 期)。

能观性保证:只要 det C; CA; ...; CAⁿ⁻¹ ≠ 0,上述设计必定有解。工程上常把观测器极点取为闭环系统极点的 2~5 倍快(带宽分离),既保证收敛又不过度放大噪声。

图 15-2 观测器误差衰减对比(RK4 仿真,dt=0.001s):同一系统 A=0 1; −4 −5, C=1 0,观测器极点取 −2 与 −10 的误差收敛对比------极点越远收敛越快。


五、分离原理:LQR 与观测器各管各的

现在有两条设计线:反馈 K(控制)和观测器 L(估计)。分离原理(Separation Principle)说:当控制器用估计值 \\hat{x} 做状态反馈 u = −Kx̂ 时,闭环系统的特征值 = (A − BK) 的特征值 ∪ (A − LC) 的特征值。

推导概要:闭环系统写成增广形式:

\\begin{bmatrix} \\dot{x} \\ \\dot{e} \\end{bmatrix} = \\begin{bmatrix} A - BK \& BK \\ 0 \& A - LC \\end{bmatrix} \\begin{bmatrix} x \\ e \\end{bmatrix} \\tag{8}

上三角矩阵的特征值就是对角块特征值之和(技巧:上三角阵特征值 = 主对角块特征值)------所以 K 和 L 可以分开设计,互不干扰。这就是飞控工程中"先设计控制器,再设计观测器"的理论依据。


六、飞控实例:估计角加速度与陀螺仪零漂

PX4 / ArduPilot 的姿态环常把陀螺仪零漂 b 增广成状态:

\\begin{bmatrix} \\dot{\\phi} \\ \\dot{b} \\end{bmatrix} = \\begin{bmatrix} 0 \& -1 \\ 0 \& 0 \\end{bmatrix} \\begin{bmatrix} \\phi \\ b \\end{bmatrix} + \\begin{bmatrix} 1 \\ 0 \\end{bmatrix} \\omega_m, \\qquad y = \\phi \\tag{9}

  • 状态 x₁ = φ 为真实角位置,x₂ = b 为零漂;
  • 输入 ω_m 是陀螺仪测量(含漂移),输出 y 来自加速度计/磁力计融合的参考角;
  • 设计 L 使 (A − LC) 极点为期望收敛速度:L 的两个分量分别决定"角度修正强度"和"零漂跟踪速度"。

观测器在线输出 b̂,姿态解算时直接减去:\\omega_{true} = \\omega_m - \\hat{b}。这就是互补滤波(第 35 期每日知识)在状态空间下的严格形式------Mahony 滤波器本质是一个特殊设计的非线性 Luenberger 观测器。


七、小结

  1. 观测器 = 影子系统 + 量测反馈:\\dot{\\hat{x}} = A\\hat{x} + Bu + L(y - C\\hat{x});
  2. 误差动力学 \\dot{e} = (A-LC)e,极点由 L 任意配置;
  3. 设计靠对偶原理:转置成 (Aᵀ, Cᵀ) 的极点配置问题,复用第 14 期工具;
  4. 分离原理保证 K、L 可独立设计,飞控工程直接受益。

思考题

  1. 若 (A, C) 不可观,观测器还能收敛吗?为什么?(提示:回看第 13 期能观矩阵)
  2. L 取太大(观测器极点在很远处)会带来什么副作用?(提示:噪声通道)
  3. 用 (9) 的模型写出 (A − LC) 的具体形式,并设计 L 使其特征值为 λ₁ = λ₂ = −10。

下期预告

第 16 期「卡尔曼滤波:最优状态估计」------Luenberger 观测器是最优固定增益,卡尔曼滤波则让增益 L 随噪声统计自动变化,是观测器家族的最优解,也是 IMU+GPS 融合的标准答案。

参考资源

  1. K. Ogata, Modern Control Engineering, 5th ed., Prentice Hall(第 7 章:状态观测器与分离原理)
  2. 胡寿松,《自动控制原理》(第 6 版), 科学出版社(状态空间部分)
  3. PX4 Dev Guide: Attitude Estimation(互补滤波/观测器实现)
  4. R. Mahony et al., "Nonlinear Complementary Filters on the Special Orthogonal Group," IEEE TAC, 2008(飞控版 Luenberger 观测器)
相关推荐
数字孪生视频孪生2 小时前
在线重构,实时同步:视频动态三维重建打造 “常更常新” 的数字底座
大数据·人工智能·重构·架构·空间计算
李兆龙的博客2 天前
从一到无穷大 #108:Meta 的 AI 存储架构——BLOB 重构与跨地域数据加载
人工智能·重构·架构
中烟创新3 天前
中烟创新×某电力公司 | AI大模型重构电力合规反事故演习
人工智能·重构
行者-全栈开发3 天前
【鸿蒙心迹】国际化 i18n 与多语言资源管理实战(HarmonyOS 7.x)
ui·华为·重构·国际化·harmonyos·多语言
weixin_468466853 天前
视觉Transformer的“第二次革命”:ViT³如何用测试时训练重构注意力范式
人工智能·深度学习·机器学习·ai·重构·transformer·vit
开目软件6 天前
圆满验收 | 泰胜风能 & 开目MOM,数智重构风电塔筒制造内核
重构·制造
KKKlucifer7 天前
国内数据安全服务的产品智能化转型:大模型赋能下的技术能力重构分析
大数据·数据库·重构
nm_zfyjt7 天前
信息流广告投放优化实践:线索成本评估模型与转化链路重构(家装建材案例)
算法·重构·内蒙古朋友圈广告服务商·内蒙古朋友圈获客
WiKiLeaks_successor7 天前
重构Time库的抽象设计
python·重构
小瓜6697 天前
Claude Code替代软件哪个好?TRAE vs Claude Code深度对比:从中文开发、复杂重构到团队成本
重构