Dr_can Kalman Filter学习笔记(一)

Dr_can Kalman Filter学习笔记(一)

首先,为什么会提出卡尔曼滤波呢,主要是解决问题的过程中中经常存在不确定性问题。

不确定性:

  • 不存在完美的模型
  • 系统的扰动不可控,也很难建模
  • 测量传感器存在误差

例1:假如我们有一个硬币需要测量直径长度 x x x,假设我们现在测得了 k k k个测量值, z 1 , z 2 , ⋯   , z k z_1,z_2,\cdots,z_k z1,z2,,zk我们很容易想到会用平均值来代替硬币的直径长度,但是会不会有一种更高效的方式呢,如果仅仅只是考虑平均值会不会太简单了呢?
x k ^ = 1 k ( z 1 + z 2 + ⋯ + z k ) \hat{x_k} = \frac{1}{k}(z_1+z_2+\cdots+z_k) xk^=k1(z1+z2++zk)

让我们先对上述式子进行进一步推导:
1 k ( z 1 + z 2 + ⋯ + z k ) = 1 k ( z 1 + z 2 + ⋯ + z k ) + 1 k z k = 1 k k − 1 k − 1 ( z 1 + z 2 + ⋯ + z k ) + 1 k z k = k − 1 k x ^ k − 1 + 1 k z k = k − 1 k x ^ k − 1 + 1 k z k \begin{align*} & \frac{1}{k}(z_1+z_2+\cdots+z_k) \notag \\ ={}&\frac{1}{k}(z_1+z_2+\cdots+z_k)+\frac{1}{k}z_k \notag \\ ={}&\frac{1}{k}\frac{k-1}{k-1}(z_1+z_2+\cdots+z_k)+\frac{1}{k}z_k \notag \\ ={}&\frac{k-1}{k}\hat{x}_{k-1}+\frac{1}{k}z_k \notag \\ ={}&\frac{k-1}{k}\hat{x}_{k-1}+\frac{1}{k}z_k \notag \\ \end{align*} ====k1(z1+z2++zk)k1(z1+z2++zk)+k1zkk1k1k1(z1+z2++zk)+k1zkkk1x^k1+k1zkkk1x^k1+k1zk
所以可得一个递归方程为: x k ^ = x k − 1 ^ + 1 k ( z k − x k − 1 ^ ) \hat{x_k} = \hat{x_{k-1}}+\frac{1}{k}(z_k-\hat{x_{k-1}}) xk^=xk1^+k1(zkxk1^),我们令 1 k = K k \frac{1}{k}=K_k k1=Kk,如下:

x k ^ = x k − 1 ^ + K k ( z k − x k − 1 ^ ) K a l m a n G a i n : K k = e E S T k − 1 e E S T k − 1 − e M E A k \hat{x_k} = \hat{x_{k-1}}+K_k(z_k-\hat{x_{k-1}}) \\ Kalman\quad Gain:\quad K_k = \frac{e_{{EST}_{k-1}}}{e_{{EST}_{k-1}}-e_{{MEA}_k}} xk^=xk1^+Kk(zkxk1^)KalmanGain:Kk=eESTk1eMEAkeESTk1
式中的 K k K_k Kk为卡尔曼增益,卡尔曼增益公式是卡尔曼滤波的核心。可以很明显的看出来,当前的观测状态和上一个观测状态有关.

好了,在这里我们先总结下卡尔曼滤波的计算步骤和求解过程:
w h i l e r e s t r i c t i o n S t e p 1 : 计算 K a l m a n G a i n K k = e E S T k − 1 e E S T k − 1 − e M E A k S t e p 2 : 计算 x k ^ = x k − 1 ^ + K k ( z k − x k − 1 ^ ) S t e p 3 : 更新 e E S T k = ( 1 − K k ) e E S T k − 1 e n d w h i l e while\quad restriction\\ Step1:计算Kalman\quad Gain\quad K_k = \frac{e_{{EST}_{k-1}}}{e_{{EST}_{k-1}}-e_{{MEA}_k}}\\ Step2:计算\hat{x_k} = \hat{x_{k-1}}+K_k(z_k-\hat{x_{k-1}})\\ Step3:更新e_{EST_{k}}=(1-K_k)e_{EST_{k-1}} \\ end \quad while whilerestrictionStep1:计算KalmanGainKk=eESTk1eMEAkeESTk1Step2:计算xk^=xk1^+Kk(zkxk1^)Step3:更新eESTk=(1Kk)eESTk1endwhile
例2:有一实际长度为50mm的物体,第一次的估计值为 x ^ 0 = 40 m m \hat{x}_0=40mm x^0=40mm, e E S T 0 = 5 m m e_{EST_{0}}=5mm eEST0=5mm, z 1 = 51 m m , e M E A k = 3 m m z_1=51mm,e_{MEA_{k}}=3mm z1=51mm,eMEAk=3mm,利用上述求解步骤,在excel表格中进行求解。

注:Kalman Gain的推导和Step3的更新公式推导会在后续进行笔记更新。

问题:为什么不能用平均值直接作为观测的结果,而需要使用递归?是否与神经网络传递过程中的移动均值和移动方差有关?

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值