迭代扩展卡尔曼滤波IEKF(Iterated Extended Kalman Filter) 是扩展卡尔曼滤波(EKF) 的一种改进算法,主要用于解决非线性系统的状态估计问题。可以把它理解为EKF的“精益求精”版本,EKF只做一次线性化和更新,而IEKF则在这个更新步骤上反复迭代,每次迭代都基于一个新的、更准确的估计点重新进行线性化,直到收敛。
它的核心思想非常直观,既然EKF因为只在单个点(先验估计点)线性化而引入误差,那就在多个点上进行线性化,通过迭代来逼近真实状态,从而减少线性化误差。
IEKF与EKF使用相同的预测步骤,主要的区别和改进在于更新步骤。
核心原理
通过多次迭代,线性化点从最初的先验估计 x^k−逐步逼近真实的(未知)状态 xk,使得线性化更加准确,从而提高了状态估计的精度。
假设非线性系统模型如下:

步骤一:预测(与EKF完全相同)

步骤二:迭代更新(IEKF的核心)

协方差更新通常只在最后一次迭代计算一次,因为每次迭代都重新计算 Pk+ 并用于下一次预测在理论上更复杂,且实践中常采用上述方式。
IEKF 是对 EKF 的自然进化,通过迭代重线性化来减小线性误差,在不显著增加计算复杂度的前提下,显著提升了滤波精度,特别是在处理高度非线性的观测模型时。
UKF 则采用了与EKF/IEKF完全不同的哲学,它摒弃了泰勒展开线性化的思路,转而使用无迹变换来直接近似非线性传播后的统计特性。
特性 | 扩展卡尔曼滤波 (EKF) | 迭代扩展卡尔曼滤波 (IEKF) | 无迹卡尔曼滤波 (UKF) |
|---|---|---|---|
核心思想 | 一阶泰勒展开,在单个点(先验估计)线性化 | 多次线性化,通过迭代使线性化点逼近真实状态 | 无需求导,采用确定性采样(Sigma点)来捕捉状态的均值和协方差。 |
精度 | 中等。对于中度非线性系统有效,线性化误差较大。 | 高。通常比EKF精度更高,线性化误差显著减小。 | 高。通常与IEKF相当或更好,尤其对于强非线性系统。 |
计算成本 | 低。只需计算一次雅可比矩阵和一次更新。 | 中等。需要多次(通常3-5次)计算雅可比矩阵和更新。比EKF慢,但通常比UKF快。 | 高。需要传播 2n+1 个Sigma点(n为状态维数),计算成本随维数增长。 |
实现难度 | 简单。需要推导和计算雅可比矩阵。 | 中等。迭代循环需要小心处理收敛性。 | 中等。无需推导雅可比矩阵,但需要设计Sigma点和权重。 |
适用场景 | 非线性程度不高,计算资源有限的系统。 | 高度非线性系统,且对精度要求高于计算效率的场景。观测模型非线性强时特别有效。 | 高度非线性系统,特别是函数不可微或难以求导的情况。对状态分布的近似更好。 |
线性化点 | 固定的先验估计点 | 动态变化,从 迭代至收敛点。 | 无需线性化,直接对非线性函数进行传播。 |
可靠性 | 一般。线性化误差可能导致发散。 | 较好。更准确的线性化提高了稳定性。 | 好。对非线性变换的统计特性捕捉得更准,更稳定。 |
EKF:是基准方法。当系统接近线性、计算资源非常紧张、或者需要快速实现原型时使用。它是一个很好的起点。
IEKF:当你需要比EKF更高的精度,并且系统的观测模型 h(x)高度非线性时,IEKF是极佳的选择。它的计算增量是可控的(迭代几次),但收益(精度提升)很大。在激光雷达SLAM、导航等领域应用广泛。
UKF:当系统整体非线性都很强,或者函数不可微(如带有if-else条件的模型),或者不想计算繁琐的雅可比矩阵时,UKF是更好的选择。它对状态概率分布的近似更优,但计算成本通常更高,尤其是在高维状态空间中。