扩展卡尔曼滤波(EKF)

本篇文章是看完http://blog.csdn.net/adamshan/article/details/78265754这篇文章后再加上自己的理解写的,如果侵权可以联系我删除,如果有不对的地方请您不啬赐教!

由于卡尔曼滤波只能对线性模型满足,当遇到非线性模型时,高斯分布就不再满足叠加了,那么我们将非线性的改为线性的不就可以了吗?

好主意,我们可以用泰勒展开,将原本非线性的状态转移公式展开成一阶或者二阶泰勒展开,这样我们就可以将原本非线性的变成线性,再套用原来卡尔曼滤波的结论来做了。

这里我们提供一个新的模型:恒定转率和速度模型(Constant Turn Rate and Velocity,CTRV)作为我们这次分析的非线性模型,这个模型也很有名,等后续再来仔细了解了解

{

  • 恒定速度模型(Constant Velocity, CV)
  • 恒定加速度模型(Constant Acceleration, CA)
  • 恒定转率和速度模型(Constant Turn Rate and Velocity,CTRV)
  • 恒定转率和加速度模型(Constant Turn Rate and Acceleration,CTRA)

}这是一些运动模型,等后面有时间再去一一了解。

再本次CTRV模型中:

目标状态量:   

 转移方程为:

 当w趋向0时,我们有新的状态转移方程:

很明显,在上面那个转移方程中,是非线性的,这时候我们就无法像以前那样直接将状态转移矩阵 来预测和分析了,这时候我们可以得到预测函数:

 其中,g ( ) g()g() 表示CTRV运动模型的状态转移函数,u uu 表示处理噪声。为了解决非线性系统下的问题,我们引入扩展卡尔曼滤波(Extended Kalman Filter,EKF)

扩展卡尔曼滤波

扩展卡尔曼滤波使用线性变换来近似非线性线性变换,具体来说,EKF使用一阶泰勒展式来进行线性化:

对于这个状态转移方程,我们可以求出他的雅可比矩阵,(多元函数中各个因变量关于各个自变量的一阶偏导数构成的矩阵)

具体求雅可比矩阵可以在置顶那个博客中查找

再得到雅可比矩阵之后,我们就可以将原来KF的公式改写成如下公式,对于这个公式我的理解是这样的:第一个状态转移公式很好理解,就是将上一状态的Xk带入状态转移方程求出下一状态,而下一个协方差矩阵为什么是乘J呢?是因为我们将原来非线性的状态转移方程泰勒展开,如下:

这里的u我们可以当成上一状态,等于在上一次状态泰勒展开,对于这样转换后的每一个X中的状态,我们都要带入上面的一阶公式中,由方差和协方差的性质而言,对于D(aX+b)=aXa.T 

所以我们就得到下面的公式,再加上 噪声带来的不确定性 Q

对于后面测量中的矩阵变换也是这样

 后续处理噪声和测量请看原作者!

猜你喜欢

转载自blog.csdn.net/weixin_62705892/article/details/127778625
今日推荐