Kalman算法、扩展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)的比较

目录

一、Kalman算法

Kalman算法优缺点:

二、扩展卡尔曼滤波(EKF)

原理:

扩展Kalman算法优缺点:

步骤简化:

优点简化:

缺点简化:

三、无迹卡尔曼滤波(UKF)

Unscented 滤波的主要优点:

原理:

步骤:

优点:

缺点:

四、对比总结:

五、选择建议

六、示例应用

七、代码资源

一、Kalman算法

卡尔曼(Kalman)于1960年提出的,卡尔曼(Kalman)滤波是一种线性最小方差估计。该递推算法可以利用状态空间方法构建系统模型和完成整个滤波过程,并能在计算机上较方便的实现。卡尔曼(Kalman)滤波具有较好的滤波性能,在线性高斯白噪声假设条件下滤波过程能得到最优状态估计。现在卡尔曼(Kalman)滤波理论已经被广泛应用于各个领域,特别是在目标跟踪领域中的应用是相当成功的。

Kalman算法优缺点:

Kalman 滤波理论是 Bayes 估计理论对一类状态估计问题的解决方法。就前面所作的关于系统初始状态变量x(0)及系统噪声序列的高斯假定而言,Kalman滤波器是最优的最小均方误差(MMSE)估计器。假如上述的随机变量不是高斯随机变量,而仅知道它们的前二阶矩(均值及协方差),那么,这时的Kalman滤波器是最好的线性状态估计器,即线性最小均方误差(LMMSE)估计器。它由于具有模型简单、数据存储量小的特点,特别适用于计算机应用,被广泛应用于航天、航空、航海、系统工程、通信、工业过程控制、遥感等多个领域在系统建模过程中,由于模型简化、噪声统计特性不准确、对实际系统初始状态的统计特性建模不准、实际系统的参数发生变动等诸多因素的影响,使得系统模型往往存在一定的不确定性。Kalman 滤波对于模型不确定性的鲁棒性很差,导致状态估计不准,甚至出现发散。

另外在应用Kalman滤波算法时,除了尽可能精确的描述动态方程外,还有一个重要的问题就是如何选取Q(k),选取的好坏直接影响滤波精度,当动态模型不精确时,这种影响更大。选取Q(k)的一个基本原则是:将它的大小与动态模型的精度相匹配。

二、扩展卡尔曼滤波(EKF)

在实际的状态估计问题中,即使是很简单的系统,也是非线性系统。尽管在处理某些系统状态变量相对变化率较小的非线性系统时,可以将系统分段线性化,再利用常规的Kalman 滤波算法进行状态估计,但是这样的处理方法可能会产生很多问题,如滤波发散、收敛速度慢、模型近似度不高等。同时在很多时候,比如在目标进行机动时,须采用非线性滤波来实现目标运动状态估计。扩展Kalman滤波(EKF)是种最常用的非线性滤波算法,它可以解决以上提到的问题(尽管不能完全解决)。

原理:

EKF通过对非线性系统进行线性化来处理非线性问题。它采用泰勒级数展开,将非线性函数近似为线性函数来进行状态预测和更新。

扩展Kalman算法优缺点:

扩展Kalman滤波是一种比较常用的非线性滤波方法,它的优点有如下:

(1)计算速度快,存储量低,在工程应用方面有明显的优势。

(2)在高斯白噪声且非线性强度低的环境中,算法稳定、收敛速度较快、估计精度较高。

但是也存在如下一些缺点。

(1)扩展Kalmman 滤波需要计算雅可比矩阵,而且在非线性强度大的环境中线性化误差容易增大,估计精度会明显下降,甚至发散。后面介绍的基于UT变换的滤波方法不需要求导计算雅可比矩阵,且能解决非线性强度大的系统。

你可能感兴趣的:(技术积累,经典kalman的扩展应用,kalman,python,kalman算法)