卡尔曼滤波器 Kalman Filter(Part 1)

#本篇文章创作灵感来自B站up主DR_CAN博士的卡尔曼滤波教程

卡尔曼滤波器本质上是一种, Optimal Recursive Data Processing Algorithm.(最优化递归数字处理算法)。

卡尔曼滤波器的应用非常广泛,常常应用在导航当中。其广泛应用往往是由于我们的生活中存在着大量的不确定性,主要体现在三个方面:

1. 是不存在完美的数学模型

2. 是系统的扰动往往是不可控的,也很难建模

3. 测量传感器存在着误差


为了便于说明,我们举一个例子,(在视频中DR_CAN恰恰也是这么做的):

比如我们来测量一枚硬币的直径,可以用z_{k}来表示第k次的测量结果,由于每个人的测量是主观的,而且尺子也有误差,所以测量的结果可能也不尽相同,这个时候在一组数字中,我们想要取得一个较为精确的结果,很容易想到的就是取平均值。

这个时候我们把估计得到的数据称为\hat{x}_{k},其中\hat{x}_{k}等于:

\hat{x}_{k}=\frac{1}{k}(z_{1}+z_{2}+...+z_{k}) =\frac{1}{k}(z_{1}+z_{2}+...+z_{k-1})+\frac{1}{k}*z_{k}

=\frac{1}{k}*\frac{k-1}{k-1}(z_{1}+z_{2}+...+z_{k-1})+\frac{1}{k}*z_{k} =\frac{1}{k}*(k-1)*\hat{x}_{k-1}+\frac{1}{k}*z_{k}

=\frac{k-1}{k}*\hat{x}_{k-1}+\frac{1}{k}*z_{k}

=\hat{x}_{k-1}-\frac{1}{k}\hat{x}_{k-1}+\frac{1}{k}*z_{k}

\Rightarrow \hat{x}_{k}=\hat{x}_{k-1}+\frac{1}{k}(z_{k}-\hat{x}_{k-1})


对此公式分析,得到随着k的而增加,测量结果逐渐收敛,k-1测量得到的和k次测量得到的值可以认为相等了,那么测量值Z其实并不是那么重要。

相反的,如果测量次数k比较小,那么测量值比较重要。

在这里,令\frac{1}{k}K^{_{k}},得到\hat{x}_{k}=\hat{x}_{k-1}+K_{k}(z_{k}-\hat{x}_{k-1})

进一步分析这个式子:

当前的估计值=上一次的估计值+系数x(当前的测量值-上一次的估计值)

这里的系数就是卡尔曼增益/系数,这里同样也可以分析得出,当前的估计值和上一次的估计值有关,上一次的估计值和上上次的估计值有关,这就是递归思想。


关于卡尔曼增益K^{_{k}},这里做一点简要的介绍:

首先引入两个参数:

e_{EST}:估计误差,估计值和真实值之间的差距

e_{MEA}:测量误差,测量值和真实值之间的差距

K^{_{k}}=\frac{e_{EST_{k-1}}}{e_{EST_{k-1}}+e_{MEA_{k}}}

这个公式是卡尔曼滤波的核心公式,下一节我会具体说明👆。我们先来做一个具体的分析:

在k时刻:

  1. {e_{EST}}_{k-1}>>{e_{MEA}}_{k}时,卡尔曼因数趋近于1,带入到上面\hat{x}_{k}=\hat{x}_{k-1}+K_{k}(z_{k}-\hat{x}_{k-1})式子中可以得到,\hat{x}_{k}=z_{k},当k-1时刻的估计误差远大于k时的测量误差,那么第k时候的估计值就很接近测量值了(这个很好理解,测量更准确,估计的相当不准确了)
  2. {e_{EST}}_{k-1}<<{e_{MEA}}_{k}时,卡尔曼因数趋近于0,带入到上面\hat{x}_{k}=\hat{x}_{k-1}+K_{k}(z_{k}-\hat{x}_{k-1})式子中可以得到,\hat{x}_{k}=\hat{x}_{k-1},当k-1时刻的估计误差远小于k时的测量误差,那么第k时候的估计值就很接近上一时刻的估计了(这个也很好理解,测量误差很大,我们选择相信估计)

下次会给出一个例子,便于大家理解,但是解决一个问题的思路我先列出来,各位可以先记住:

  1. 首先计算  K^{_{k}}=\frac{e_{EST_{k-1}}}{e_{EST_{k-1}}+e_{MEA_{k}}}
  2. 计算  \hat{x}_{k}=\hat{x}_{k-1}+K_{k}(z_{k}-\hat{x}_{k-1})
  3. 更新估计误差e_{MEA_{k}}=(1-K^{_{k}})e_{EST_{k-1}}(这个公式下一篇文章讲)
  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值