什么是 迭代扩展卡尔曼滤波(Iterated Extended Kalman Filter)?
迭代扩展卡尔曼滤波(Iterated Extended Kalman Filter)是一种在单次更新内部反复重线性化非线性量测模型、以改进后验状态估计的扩展卡尔曼滤波变体。
快速了解
| 规范文档 | 官方规范 |
|---|
工作原理
把更新写成非线性最小二乘
对于高斯先验和量测 z = h(x) + v,更新目标包含先验位移的协方差加权项,以及量测残差的 R^-1 加权项。第 i 次迭代在 x_i 处计算 Jacobian H_i 并执行 Gauss-Newton Step。修正公式必须保留原始预测均值,并包含补偿线性化点与先验点不同的项。
Bell 与 Cathey 1993 年论文证明了迭代更新是用于近似最大似然估计的高斯牛顿方法。若每次把中间状态当成新先验,再套一次普通 EKF,会把同一量测重复计数,并不等价于 IEKF。
用明确策略重线性化一次量测
内部循环从预测状态开始,依次计算 h、Jacobian 和加权修正,直到状态增量或目标函数变化足够小。实现必须设置最大迭代次数、与状态尺度匹配的容差、有限值检查;局部二次近似不可靠时,还需要 Damping 或 Line Search。
每个观测时刻通常只执行一次时间预测。若在内部循环中重复状态转移并反复加入过程噪声,就相当于凭空增加经过时间。最终协方差也应说明采用哪种末次线性化约定,不能把它解释为完整非线性后验协方差。
把收敛结果当作证据而非保证
2025 年 GNSS 数据协调研究把 IEKF 更新写成非线性最小二乘,并演示了多个信息源与约束的融合。该任务结果不能推出所有非线性量测都能从任意初值收敛。
应记录迭代次数、目标函数下降、末次步长、创新统计、阻尼触发和拒绝更新情况,并从相同先验比较一次 EKF、IEKF 与可信批量优化器。目标非凸、存在歧义、不连续或多峰时,可能需要多初值或能表示更广后验的方法。
主要特点
- 在单次滤波更新内部反复执行量测重线性化
- 内部循环始终使用同一预测先验与同一观测
- 局部对应高斯牛顿后验众数计算
- 只执行一次迭代时退化为普通 EKF 更新
- 需要停止、阻尼、发散与迭代预算策略
- 仍用局部高斯近似表示不确定性
常见用途
- 局部曲率较强的距离、方位角与伪距更新
- 带非线性量测残差的地图约束定位
- 一次 EKF 线性化出现明显偏差的传感器融合
- 满足实时预算的小规模非线性最小二乘近似
- 用批量 MAP 优化器校验滤波更新
示例
Loading code...常见问题
迭代 EKF 与标准 EKF 有什么区别?
标准 EKF 在预测状态处只线性化一次量测模型;迭代 EKF 保持预测先验不变,围绕逐步改进的中间估计反复线性化同一量测,以额外计算换取更合适的局部后验众数。
IEKF 指迭代还是不变扩展卡尔曼滤波?
两种方法在文献中都可能缩写为 IEKF。Iterated EKF 重复非线性量测更新;Invariant EKF 在 Lie Group 上定义误差并利用对称性。代码、文档与实验应写出完整名称或使用 InEKF 区分。
迭代更新一定会收敛吗?
不会。高斯牛顿是局部方法,初值差、几何退化、离群点或强非线性都可能导致振荡、发散或收敛到不理想驻点。实现应设置迭代上限、容差、目标检查,并在必要时加入阻尼。
IEKF 每次迭代是否重复使用量测?
它是在重新线性化同一个后验目标,而不是把量测当成新的独立数据。预测均值和协方差保持不变。若用同一观测连续更新先验,就会错误地把证据计入多次。
什么时候应改用批量优化器?
需要联合重线性化多个状态与约束、处理延迟量测,或需要稳健损失与更完整收敛控制时,批量或滑动窗口优化更合适。若一次有界递归更新能满足时延预算,IEKF 仍有优势。