理解卡尔曼滤波器(MATLAB官方教程)

2,919 阅读2分钟

为什么使用卡尔曼滤波器?

卡尔曼滤波器是一种优化估算算法,在不确定和间接测量的情况下估算系统状态。

  • 可以对感兴趣的变量进行直接测量
  • 可以综合各个可能含有噪声的传感器来进行准确的估计测量

状态观测器

)

完美模型(微分方程/差分方程)+相同的初始条件 那么这个观测器就百分百准确,但是不可能做到

只要两个可测量量相等,那么 Tin也就相同

引入闭环反馈系统,引入增益K,减小两个可测量量的误差

输入燃料,运行观测器得到\hat{T}_{ext},同时并且得到可测量量T_{ext},综合这两个值的error,然后选择控制器增益K,和输入一起扔进model里面估计出系统的内部状态\hat{T}_{in}

K用kalman filter 来确定

最优状态估计

预测状态估计的概率密度和测量值的概率密度乘积,得到最优状态估计的概率密度,其mean就是我们的最有估计值

最优状态估计算法和方程

卡尔曼滤波器就是一种状态观测器,但它是为随机系统设计的

kalman filter分成两部分

不断迭代,不断更新,最终 \hat{x}_k就会收敛到最优估计状态值

以下为有两个传感器的情形(有两个测量值)

)

非线性状态估计器

卡尔曼滤波器仅针对线性系统

观测函数 g(x) 也是如此

因此,卡尔曼滤波器算法可能会不收敛。

扩展卡尔曼滤波器(EKF)

它把非线性函数在当前估算状态的平均值附近进行线性化。在每个时间步,执行线性化,然后将得到的雅可比矩阵用于预测和更新卡尔曼滤波器算法的状态。

然而,它有以下缺点:

  1. 由于复杂的导数,可能难以解析计算雅可比矩阵;
  2. 而以数值方式计算它们则可能需要很高的计算成本;
  3. 扩展卡尔曼滤波器不适用于具有不连续模型的系统,因为系统不可微分时雅各比矩阵不存在;
  4. 高度非线性系统的线性化效果不好。

无迹卡尔曼滤波器unscented Kalman filter (UKF)

粒子滤波器(PF)

与无迹卡尔曼滤波器的显着差异在于,粒子滤波器近似任意分布,所以它不仅限于高斯假设