什么是 扩展卡尔曼滤波(Extended Kalman Filter)?

扩展卡尔曼滤波(Extended Kalman Filter)是一种非线性状态估计器,它让均值经过非线性动力学传播,并用局部一阶 Jacobian 近似协方差与量测更新。

快速了解

规范文档官方规范

工作原理

围绕当前估计线性化非线性动力学

对 x_k = f(x_(k-1), u_k) + w_k,EKF 用 f 预测均值,却用在当前估计处求得的 Jacobian F_k = df/dx 近似协方差:P_k^- = F_k P_(k-1) F_k^T + Q。非线性噪声映射还需要自己的 Jacobian 与变换后协方差;暗中按加性噪声处理会改变模型。

Särkkä 与 Svensson 的系统推导把 EKF 定位为局部高斯近似。Taylor Expansion 只在展开点附近可信,因此宽广、弯曲、不连续或多峰的不确定性可能被严重误表达。

通过线性化量测模型更新

对 y_k = h(x_k) + v_k,先计算预测量测 h(m_k^-)、量测 Jacobian H_k = dh/dx、Innovation y_k - h(m_k^-),以及 S_k = H_k P_k^- H_k^T + R,再使用与线性 Kalman 更新相同的代数结构计算增益。

Jacobian 必须与单位、坐标系、角度归一化及均值预测使用的求值点一致。Automatic Differentiation 能消除手写导数错误,却不能修复糟糕的状态表示。姿态等流形状态通常需要 Error-state 或 Manifold-aware 形式,而不是直接相减坐标。

在滤波发散前识别不一致

NASA Artemis-1 EKF 报告展示了生产滤波器如何组合动力学、IMU 传播、多类观测、协方差跟踪与显式传感器误差状态;这远比在教材公式中代入 Jacobian 更完整。

应监控 Innovation Whiteness、Normalized Innovation Squared、存在真值时的状态误差一致性、协方差特征值、被拒量测、Jacobian 条件数,以及对初始化和 Q/R 的敏感性。在同一模拟模型上与线性 Kalman 特例、UKF 和 Particle Filter 对照。反复协方差坍缩或新息偏置意味着应修正模型,而不是只放大噪声让曲线好看。

主要特点

  • 让状态均值经过非线性转移函数传播
  • 用一阶 Jacobian 近似协方差传播
  • 在预测估计处线性化非线性观测函数
  • 每个时间步只保留一个高斯近似
  • 支持递归实时状态估计
  • 强非线性下可能不一致或发散

常见用途

  1. 采用非线性运动或距离方位传感器的机器人定位
  2. 惯性与卫星导航传感器融合
  3. 动态系统中的在线参数与偏置估计
  4. 可微非线性量测模型的目标跟踪
  5. 计算预算受限的嵌入式状态估计

示例

loading...
Loading code...

常见问题

扩展卡尔曼滤波对非线性系统是精确的吗?

不是。它传播一个高斯近似,并只保留当前估计附近的一阶项。在线性高斯特例中会退化为精确 Kalman 递推,但非线性场景的准确度依赖具体模型与状态。

EKF 的 Jacobian 应该在哪个点求值?

状态转移 Jacobian 通常在用于预测的上一时刻滤波估计处计算,量测 Jacobian 在预测估计处计算。公式还必须与所选加性或非加性噪声模型保持一致。

扩展卡尔曼滤波为什么会发散?

初始化差、曲率强、状态不可观测、噪声协方差错误、时间或坐标系错位、异常值,以及协方差数值失效都会让滤波器过度自信。协方差错误缩小时,后续量测权重可能不足以恢复。

什么时候应以 UKF 替代 EKF?

当可靠 Jacobian 难以获得,或局部一阶传播明显扭曲均值和协方差时,值得对照 UKF。UKF 仍只保留高斯摘要,并增加 Sigma Point 缩放与矩阵分解成本,因此并非普遍更优。

如何测试 EKF 实现?

用有限差分或 Automatic Differentiation 核验解析 Jacobian,把模型简化到已知 Kalman 结果的线性情形,运行带真值的 Monte Carlo,并检查新息一致性、状态误差、协方差有效性与初始化敏感性。

相关术语

相关文章