卡尔曼滤波(一)

本文为卡尔曼滤波个人学习文档,主要资料来源B站UP主DR_CAN相关视频(【卡尔曼滤波器】1_递归算法_Recursive Processing_哔哩哔哩_bilibili),欢迎各路大佬交流指正。

目录

0.简介

1.从一个实例开始

2.对卡尔曼增益的讨论


0.简介

卡尔曼滤波是一种广受欢迎的滤波算法,其目的是通过一些传感器测得的观察数值以及环境和传感器本身的性质,达到对真实数据的最优估计。因此与其说卡尔曼滤波是一种滤波器,不如说更贴近为一种观测器。其优点不仅仅在于缩小了来自环境误差与测量误差对数据带来的影响,更由于其迭代方便(仅需上一次测量值)和利于程序实现而被广泛运用。

1.从一个实例开始

假设我们用让不同的人同一把的尺子测量一枚硬币的直径,得到了一组结果Z_{k}(表示第k次的测量结果)。假如这枚硬币的真实直径为50mm,由于大家上学时都学过一种估读的方法,所以我们规范测量出来的数据可能是Z_{1}=50.1mmZ_{2}=50.3mmZ_{3}=49.8mm...等数据,因此对这枚硬币的真实半径估计值就以取平均值的方法实现:

\hat{X}_{k}=\frac{1}{k}(Z_{1}+Z_{2}+Z_{3}+...+Z_{k})

 将上式中的Z_{k}从括号中提出得:

\hat{X}_{k}=\frac{1}{k}(Z_{1}+Z_{2}+Z_{3}+...+Z_{k-1})+\frac{1}{k}Z_{k-1}

=\frac{1}{k} \frac{k-1}{\color{Red}{k-1}}{\color{Red} (Z_{1}+Z_{2}+Z_{3}+...+Z_{k-1})}+\frac{1}{k}Z_{k-1}{\color{Red} }

可以看出上式红色部分则为\hat{X}_{k-1},所以有:

\hat{X}_{k}=\frac{k-1}{k}\hat{X}_{k-1}+\frac{1}{k}Z_{k}

对上式进行进一步整理得:

\hat{X}_{k}=\hat{X}_{k-1}+\frac{1}{k}(Z_{k}-\hat{X}_{k-1})

上式中仅包含上次的测量估计值项\hat{X}_{k-1}、测量次数k,以及本次测量结果Z_{k}。意味着当测量次数到达k时,只需要将测量结果Z_{k}带入上式就可得到对真实数据的最新估计值,而且这个最新估计值参考了全体测量数据,但在计算过程中只需要运用上次的估计值即可!

并且通过上述公式可看出,随着测量次数k增大,X_{k}趋近于X_{k-1},这也就意味着,随着测量次数的增多,新的测量值已不再重要,并且估计值逐渐趋近于稳定,其稳定值也就无限接近真实值,也符合常识。

上式中的\frac{1}{k}是根据均值估计求出的系数,改变

另上式中的\frac{1}{k}=K_{k},则有

\hat{X}_{k}=\hat{X}_{k-1}+K_{k}(Z_{k}-\hat{X}_{k-1})

则在卡尔曼滤波中,K_{k}即被称为卡尔曼增益(也可叫做卡尔曼系数,Kalman Gain),调整卡尔曼增益,便可在新的测量之后,以上次估计值为基础,对新的估计值进行优化计算,所以当K_{k}=\frac{1}{k}时,表示我们采用均值估计的方法对测量值进行估计,而卡尔曼增益的取值便代表着卡尔曼滤波核心思想,下面我们将对卡尔曼增益的具体取值进行讨论。

2.对卡尔曼增益的讨论

(本节标红公式会在后面的笔记中会进行重点推导,现在只是体会卡尔曼滤波的思想)

假设估计误差:e_{EST},测量误差:e_{MEA}

{\color{Red}K_{k}=\frac{e_{EST}}{e_{EST}+e_{MEA}} }

便有:\hat{X}_{k}=\hat{X}_{k-1}+\frac{e_{EST}}{e_{EST}+e_{MEA}}(Z_{k}-\hat{X}_{k-1})

分析上式可看出,当e_{EST}\gg e_{MEA}(估计误差远大于测量误差)时,上式可得\hat{X}_{k}=Z_{k},表示测量的误差更小,我们更愿意相信测量值为本次的估计取值;而反之e_{EST} \ll e_{MEA},上式表示为\hat{X}_{k}=\hat{X}_{k-1},表示估计误差更小,我们更愿意以上次的估计值为本次得估计取值。

对于测量误差来说,在测量环境不变的情况下,对于测量误差的评价指标e_{MEA}不会发生变化;而对于估计误差来说,每次计算完\hat{X}_{k}之后我们取新的估计误差为{\color{Red} e_{EST_{k}}=(1-K_{k})e_{EST_{k-1}}}来表示对这个新估计值的评价指标,所以一个简单的卡尔曼滤波过程由以下几个步骤迭代完成:

Step1_{k}:计算卡尔曼增益K_{k}=\frac{e_{EST_{k-1}}}{e_{EST_{k-1}}+e_{MEA}}

Step2_{k}:计算本次估计值\hat{X}_{k}=\hat{X}_{k-1}+K_{k}(Z_{k}-\hat{X}_{k-1})

Step3_{k}:更新估计误差e_{EST_{k}}=(1-K_{k})e_{EST_{k-1}}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值