0%

卡尔曼滤波原理分析及对比

卡尔曼滤波器(Kalman Filter)原理简述

卡尔曼滤波器是一种用于估计动态系统状态的递归算法,特别适用于噪声较大的测量系统。它广泛应用于导航、跟踪和控制系统中。其核心思想是通过预测和更新两个步骤,结合系统模型和测量数据,提供最优的状态估计。

基本原理

卡尔曼滤波器的基本原理包括状态预测和测量更新两个步骤。它通过不断修正预测值和测量值来实现对系统状态的最优估计。

1. 系统模型

卡尔曼滤波器假设系统可以用线性模型描述,包括状态方程和观测方程:

  • 状态方程:
    其中, 是在时间 的状态向量, 是状态转移矩阵, 是控制输入矩阵, 是控制输入, 是过程噪声,假设为均值为零、协方差为 的高斯白噪声。

  • 观测方程:
    其中, 是在时间 的观测向量, 是观测矩阵, 是观测噪声,假设为均值为零、协方差为 的高斯白噪声。

2. 预测步骤

在预测步骤中,根据上一时刻的状态估计和系统模型,对当前时刻的状态进行预测:

  • 状态预测:

  • 误差协方差预测:

3. 更新步骤

在更新步骤中,利用当前时刻的观测值对预测的状态进行修正:

  • 计算卡尔曼增益:

  • 状态更新:

  • 误差协方差更新:

结论

卡尔曼滤波器通过结合系统模型的预测和实际观测的更新,提供了一个在最小均方误差意义下最优的状态估计方法。其高效的递归计算方式,使得卡尔曼滤波器在实时应用中尤为适用。

扩展卡尔曼滤波器(EKF)原理简述

扩展卡尔曼滤波器(Extended Kalman Filter,EKF)是一种用于非线性系统状态估计的滤波算法,是卡尔曼滤波器(KF)的推广。EKF通过线性化非线性系统模型来实现对系统状态的估计。

基本原理

EKF的基本原理可以分为预测和更新两个步骤,与标准卡尔曼滤波器类似,但在处理非线性系统时有所不同。具体过程如下:

1. 系统模型

非线性系统可以表示为以下状态方程和观测方程:

  • 状态方程:

  • 观测方程:

其中, 是系统在时间 的状态, 是观测值, 分别是过程噪声和观测噪声,假设它们是均值为零的高斯白噪声。

2. 预测步骤

在预测步骤中,利用系统的状态方程对当前状态进行预测:

  • 状态预测:

  • 误差协方差预测:

    其中, 是对状态方程 的雅可比矩阵:

3. 更新步骤

在更新步骤中,利用观测方程对预测的状态进行修正:

  • 计算卡尔曼增益:

    其中, 是对观测方程 的雅可比矩阵:

  • 状态更新:

  • 误差协方差更新:

结论

EKF通过在每一步预测和更新中线性化非线性系统模型,成功地将卡尔曼滤波器扩展到非线性系统中。尽管线性化可能引入一定误差,但在许多应用中,EKF仍然是一种有效的状态估计方法。

无迹卡尔曼滤波器(UKF)原理简述

无迹卡尔曼滤波器(Unscented Kalman Filter,UKF)是一种用于非线性系统状态估计的滤波算法。UKF通过无迹变换(Unscented Transform,UT)来处理非线性系统中的状态预测和更新,避免了扩展卡尔曼滤波器(EKF)中的线性化近似误差。

基本原理

UKF的基本原理包括状态预测和测量更新两个步骤。与EKF不同的是,UKF使用一组精心选择的采样点(sigma点)来近似状态分布,从而更准确地捕捉非线性系统的特性。

1. 系统模型

UKF假设系统可以用以下非线性状态方程和观测方程描述:

  • 状态方程:

  • 观测方程:

其中, 是系统在时间 的状态, 是控制输入, 是观测值, 分别是过程噪声和观测噪声,假设它们是均值为零的高斯白噪声。

2. 无迹变换

无迹变换的核心思想是通过一组sigma点来近似状态分布。这些sigma点通过以下方式生成:

  • 计算状态均值和协方差的sigma点: 其中, 是第 个sigma点, 是状态维度, 是一个缩放参数, 表示协方差矩阵的第 列的平方根。

  • 通过非线性函数传播sigma点:

  • 计算预测状态均值和协方差:

    其中, 是sigma点的权重。

3. 预测步骤

  • 状态预测:

  • 误差协方差预测:

4. 更新步骤

  • 计算观测sigma点:

  • 计算预测观测均值和协方差:

  • 计算状态和观测的交叉协方差:

  • 计算卡尔曼增益:

  • 状态更新:

  • 误差协方差更新:

结论

UKF通过无迹变换和sigma点来处理非线性系统中的状态预测和更新,相比EKF具有更高的精度和鲁棒性。它在很多实际应用中,如导航和跟踪系统,提供了更加准确的状态估计。

以下是卡尔曼滤波器(KF)、扩展卡尔曼滤波器(EKF)和无迹卡尔曼滤波器(UKF)在IMU和里程计数据融合中的对比表:

特性 卡尔曼滤波器(KF) 扩展卡尔曼滤波器(EKF) 无迹卡尔曼滤波器(UKF)
处理系统类型 线性系统 非线性系统 非线性系统
线性化方法 不需要 泰勒展开(一次线性化) 无需线性化,使用无迹变换
计算复杂度 中等
预测精度 高(线性系统) 较高(轻度非线性系统) 很高(适用于高度非线性系统)
应用范围 线性系统 广泛用于工程实际 高精度需求的非线性系统
实时性 很好 较好 适中
误差特性 无误差(线性系统) 线性化引入误差 无迹变换更准确
计算资源需求 中等
适用性(IMU和里程计) 不适用 适用 最适用

无迹卡尔曼滤波器(UKF): - 最适用于IMU和里程计数据融合。 - 能够处理复杂的非线性系统并提供更高的精度。 - 适合在高精度需求的情况下使用,但是计算复杂度较高,需要更多计算资源。

扩展卡尔曼滤波器(EKF): - 适用于IMU和里程计数据融合。 - 能处理非线性系统,计算复杂度较低,适合实时性要求高、计算资源有限的情况。 - 可能会因线性化过程引入误差,适用于轻度非线性系统。

卡尔曼滤波器(KF): - 不适用于IMU和里程计数据融合。 - 仅适用于线性系统,无法处理IMU和里程计融合中的非线性问题。

参考资料