卡尔曼滤波学习(1)

本文介绍了卡尔曼滤波的基本概念,强调其在动态系统和有噪声测量中的状态估计优势。通过递归更新和权重调整,滤波器能处理不确定性和测量误差。实例演示了如何用卡尔曼滤波法估计物体长度,显示了预测结果逐渐逼近真实值的过程。
摘要由CSDN通过智能技术生成

        卡尔曼滤波(Kalman Filtering)是一种用于估计系统状态的数学方法,特别适用于动态系统和含有噪声的测量。该滤波器由数学家Rudolf E. Kálmán于1960年提出,被广泛应用于控制系统、导航、信号处理等领域。

        卡尔曼滤波的主要目标是通过融合系统的动态模型和实际测量,提供对系统状态的最优估计。它假设系统的状态是线性动态的,且测量中可能存在噪声。卡尔曼滤波器通过递归地更新状态估计,动态地调整权重以平衡系统模型和测量之间的不确定性。

        实际场景的应用场景是充满不确定性:

1、不存在完美的数学模型;

2、系统的扰动是不可控的,同时也很难建模;

3、传感器的测量值是存在误差的。

        在对一个物体进行k次测量,每次测量结果记为Z_{k},希望通过这k次测量数据,估计一个接近物体实际的值\hat{x_{k}},最容易想到最简单的就是对多次测量结果求平均值,那么就有一下公式:

\hat{x_{k}} = \frac{1}{k} * \left ( z_{1} + z_{2} + z_{3} + ... + z_{k} \right ) = \frac{1}{k} * \frac{k-1}{k-1} * \left ( z_{1} + z_{2} + z_{3} + ... + z_{k-1} \right ) + \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} * (z_{k} - \hat{x_{k-1}})

        随着测量次数k的增加,测量值Z_{k}将变的不再重要,当k趋近于无穷大时,\frac{1}{k} * (z_{k} - \hat{x_{k-1}})趋近于0,当k较小时,测量值Z_{k}的作用将对较大,当k等于1时\hat{x_{k}} = Z_{k}。若使用K_{k}替换\frac{1}{k},则上述公式整理可得:

\hat{x_{k}} = \hat{x_{k-1}} + K_{k} * (z_{k} - \hat{x_{k-1}})

此时K_{k}就是所谓的卡尔曼增益(Kalman Gain),由上述公式可知卡尔曼滤波的本次预测结果仅与上次预测值有关,与更早之前的预测值并没有直接关系。

        一个系统中,对结果进行估计,使用传感器测量均会引入误差,估计误差:e_{EST},测量误差:e_{MEA},则卡尔曼增益:K_{k} = \frac{e_{EST}}{e_{EST} + e_{MEA}}

        在k时刻,e_(EST) >> e_(MEA)时,K_{k} \rightarrow 1则,\hat{x_{k}} = Z_{k};在k时刻,e_{EST} << e_{MEA}时,K_{k} \rightarrow 0则,\hat{x_{k}} = \hat{x_{k-1}}

此时我们得到3个公式,

K_{k} = \frac{e_{EST}}{e_{EST} + e_{MEA}}                                (1)

\hat{x_{k}} = \hat{x_{k-1}} + K_{k} * (z_{k} - \hat{x_{k-1}})        (2)

e_{ESTk} = (1 - K_{k}) * e_{ESTk-1}           (3)

公式(1)和(3)在后面学习中会有详细的推导过程。

        由上面3个公式我们就可以做一些对结果估计的事情了,例如,一个物体实际长度50cm,现在有一把尺子来测量其长度,每次测量误差为±3cm,我们来使用上述公式对该物体长度进行估计。

kZ(k)e(MEAk)x(hatk)K(k)e(ESTk)
0355
1513450.6251.875
253348.076923080.3846153851.153846154
347347.777777780.2777777780.833333333
449348.043478260.2173913040.652173913
552348.750.1785714290.535714286
647348.484848480.1515151520.454545455
751348.815789470.1315789470.394736842
848348.720930230.116279070.348837209
949348.750.1041666670.3125
1053349.15094340.0943396230.283018868
1147348.965517240.0862068970.25862069
1248348.888888890.0793650790.238095238
1348348.823529410.0735294120.220588235
1452349.041095890.0684931510.205479452
1551349.166666670.0641025640.192307692
1647349.036144580.0602409640.180722892
1749349.034090910.0568181820.170454545
1853349.247311830.0537634410.161290323
1952349.38775510.0510204080.153061224
2052349.514563110.0485436890.145631068

由上述表格和折线图可见,预测结果随着次数不断增加在不断靠近物体长度的真实值。

        学习笔记,参考资料【【卡尔曼滤波器】1_递归算法_Recursive Processing】 https://www.bilibili.com/video/BV1ez4y1X7eR/?share_source=copy_web&vd_source=c29456ffa88bc7559f8ffbe6f8e8f7a5

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值