本文为卡尔曼滤波个人学习文档,主要资料来源B站UP主DR_CAN相关视频(【卡尔曼滤波器】1_递归算法_Recursive Processing_哔哩哔哩_bilibili),欢迎各路大佬交流指正。
目录
0.简介
卡尔曼滤波是一种广受欢迎的滤波算法,其目的是通过一些传感器测得的观察数值以及环境和传感器本身的性质,达到对真实数据的最优估计。因此与其说卡尔曼滤波是一种滤波器,不如说更贴近为一种观测器。其优点不仅仅在于缩小了来自环境误差与测量误差对数据带来的影响,更由于其迭代方便(仅需上一次测量值)和利于程序实现而被广泛运用。
1.从一个实例开始
假设我们用让不同的人同一把的尺子测量一枚硬币的直径,得到了一组结果(表示第次的测量结果)。假如这枚硬币的真实直径为50mm,由于大家上学时都学过一种估读的方法,所以我们规范测量出来的数据可能是,,...等数据,因此对这枚硬币的真实半径估计值就以取平均值的方法实现:
将上式中的从括号中提出得:
可以看出上式红色部分则为,所以有:
对上式进行进一步整理得:
上式中仅包含上次的测量估计值项、测量次数,以及本次测量结果。意味着当测量次数到达时,只需要将测量结果带入上式就可得到对真实数据的最新估计值,而且这个最新估计值参考了全体测量数据,但在计算过程中只需要运用上次的估计值即可!
并且通过上述公式可看出,随着测量次数增大,趋近于,这也就意味着,随着测量次数的增多,新的测量值已不再重要,并且估计值逐渐趋近于稳定,其稳定值也就无限接近真实值,也符合常识。
上式中的是根据均值估计求出的系数,改变
另上式中的,则有
则在卡尔曼滤波中,即被称为卡尔曼增益(也可叫做卡尔曼系数,Kalman Gain),调整卡尔曼增益,便可在新的测量之后,以上次估计值为基础,对新的估计值进行优化计算,所以当时,表示我们采用均值估计的方法对测量值进行估计,而卡尔曼增益的取值便代表着卡尔曼滤波核心思想,下面我们将对卡尔曼增益的具体取值进行讨论。
2.对卡尔曼增益的讨论
(本节标红公式会在后面的笔记中会进行重点推导,现在只是体会卡尔曼滤波的思想)
假设估计误差:,测量误差:
令
便有:
分析上式可看出,当(估计误差远大于测量误差)时,上式可得,表示测量的误差更小,我们更愿意相信测量值为本次的估计取值;而反之,上式表示为,表示估计误差更小,我们更愿意以上次的估计值为本次得估计取值。
对于测量误差来说,在测量环境不变的情况下,对于测量误差的评价指标不会发生变化;而对于估计误差来说,每次计算完之后我们取新的估计误差为来表示对这个新估计值的评价指标,所以一个简单的卡尔曼滤波过程由以下几个步骤迭代完成:
:计算卡尔曼增益
:计算本次估计值
:更新估计误差