问题

如何通俗并尽可能详细地解释卡尔曼滤波?

回答
卡尔曼滤波,这个名字听起来有点高大上,但其实它的核心思想非常接地气,就像我们生活中处理不确定性一样。想象一下,你想知道一辆车在路上的确切位置,但你手里只有一块不太准的GPS,它会告诉你一个大概范围,但不会给你一个绝对精确的点。同时,你也知道这辆车会怎么开,比如它会加速或者减速,这个运动规律是相对可预测的。

卡尔曼滤波,就像一个聪明的“估算器”,它能结合这两方面的信息:我们对事物运动的“预测” 和 我们从传感器获得的“测量”,来得出一个比单独任何一方都更靠谱的估算结果。

咱们把它拆解开,一步步说清楚。

第一步:有什么“不确定性”需要我们处理?

生活中,几乎所有的事情都存在不确定性。我们想知道的东西,就像上面说的车的确切位置,我们称之为“状态”。这个状态不是一成不变的,它会随着时间变化。

状态 (State): 比如车的“位置”和“速度”。如果你想追踪一个物体,你可能需要知道它的位置、速度、加速度,甚至姿态等等。这些就是它的“状态”。我们通常用一个向量来表示,里面包含了很多个数值。
不确定性 (Uncertainty): 为什么我们不能直接知道确切的位置?因为我们用的设备不完美,或者外部环境有干扰。比如GPS信号会漂移,轮胎打滑会影响速度的测量。这种不确定性,在卡尔曼滤波里,我们用“协方差矩阵”来描述。你可以想象它是一个“误差的散布图”,告诉我们各个状态量之间误差的大小以及它们之间的关联性。

第二步:我们怎么“预测”事物的状态?

我们的大脑总是会根据经验去“预测”接下来会发生什么。比如,你知道一辆车刚刚加速了,你自然会预测它下一秒会比现在快一些。卡尔曼滤波也有一个“预测模型”。

状态转移模型 (State Transition Model): 这个模型描述了事物状态是如何随着时间变化的。比如,如果我们知道一辆车当前的位置 `x` 和速度 `v`,并且假设它在下一秒内匀速运动,那么下一秒的位置就是 `x + vdt` (dt是时间间隔),下一秒的速度仍然是 `v`。这个模型就像一套“物理定律”,告诉我们状态会怎么“进化”。
预测状态 (Predicted State): 根据上一个时间点的“最优估算”和这个“状态转移模型”,我们就能“预测”出当前时间点事物可能的状态。
预测不确定性 (Predicted Uncertainty): 不仅状态会变化,我们预测本身也会带来新的不确定性。因为我们的预测模型也不是100%准确的,它可能会受到一些“过程噪声”的影响。比如,除了车本身的运动,可能还有风吹或者路面不平造成的额外影响。这个过程噪声也会增加我们预测的不确定性。

简单来说,这一步就是:“根据过去最好的估算和运动规律,猜一猜现在应该是什么样子。”

第三步:有什么“测量”可以帮我们修正预测?

光靠预测是不够的,因为我们的预测模型总有误差。这时候,我们从传感器那里获得的“测量”就派上用场了。

测量 (Measurement): 就是传感器给我们的原始数据。比如GPS给我们的位置读数,或者雷达给我们的速度读数。
测量模型 (Measurement Model): 这个模型告诉我们,我们想知道的“真实状态”是如何体现在“测量值”里的。比如,GPS测量的就是车的“位置”,它直接反映了我们状态里的“位置”这一项。但如果是其他传感器,比如测量磁场强度的传感器,它可能反映的是车的位置和速度的某种组合。
测量不确定性 (Measurement Uncertainty): 传感器也不是完美的,它的测量值也有误差,我们称之为“测量噪声”。这个噪声的大小,我们也需要知道,通常也是由传感器的精度决定的。

这一步就是:“从传感器那里得到一些‘参考信息’,这些信息跟我们想知道的东西有关,但也有自己的误差。”

第四步:如何结合预测和测量,做出更优的估算?

这就是卡尔曼滤波的核心环节了,它要做的是一个“权衡”和“融合”。

想象一下,你有一个预测值,说车大概在A点附近。这时,GPS告诉你车在B点附近,但你知道GPS有点误差。卡尔曼滤波会怎么做?

它不会简单地信任预测,也不会简单地信任测量,而是会根据它们各自的“靠谱程度”来决定听谁的话更多一些。

“靠谱程度”是怎么衡量的? 就是前面提到的“不确定性”或者说“方差”。如果预测的误差很小,而测量误差很大,那么它会更倾向于相信预测。反之,如果预测误差很大,测量误差很小,它就会更倾向于相信测量。
卡尔曼增益 (Kalman Gain): 这个“权衡因子”就是卡尔曼增益。它是一个根据预测不确定性和测量不确定性计算出来的数值。卡尔曼增益越大,说明测量值越“值得信赖”,我们就会更多地用测量值来修正预测。
更新状态 (Update State): 卡尔曼滤波会用这个卡尔曼增益,将预测值和测量值进行一个“加权平均”,得到一个“更新后的最优估算”。这个更新后的估算,比单纯的预测或者单纯的测量都要更精确。
更新不确定性 (Update Uncertainty): 不仅状态被更新了,我们对状态的“不确定性”也会随之减小。因为我们成功地融合了新的信息,我们对事物的了解更进了一步。

打个比方:

假设你想知道一个球的温度。

1. 预测: 你知道这个球在恒温箱里,而且恒温箱的温度是20度,但恒温箱的温度会波动一点点(过程噪声)。所以你预测球的温度会在20度附近,但也不是绝对精确。
2. 测量: 你拿一个体温计去量球的温度,体温计也不是100%准确,它也有自己的测量误差。
3. 融合: 如果你的恒温箱非常稳定,温度波动很小,而体温计又不怎么准,那么你就会更相信恒温箱的“预测”。反之,如果恒温箱温度波动很大,而体温计很灵敏准确,你就会更相信体温计的“测量”。
卡尔曼滤波就像一个聪明的中间人,它会根据“恒温箱的温度稳定性”和“体温计的准确性”来决定给哪个信息更多的“权重”。最终得出的球的温度,会比单纯看恒温箱或者单纯用体温计得出的结果更接近真实值。

卡尔曼滤波的循环

卡尔曼滤波的工作方式是一个循环:

1. 预测: 根据上一时刻的最优估算和运动模型,预测当前时刻的状态和不确定性。
2. 测量: 获取当前时刻的传感器测量值和测量不确定性。
3. 更新: 利用预测值、测量值以及卡尔曼增益,计算出当前时刻的最优估算和更新后的不确定性。

然后,这个“更新后的最优估算”就成为了下一时刻的“上一时刻最优估算”,继续进行预测,如此循环往复。

总结一下,卡尔曼滤波做了什么?

1. 处理不确定性: 它能够量化和管理我们信息中的不确定性(用协方差矩阵)。
2. 预测未来: 它能根据事物的运动模型,预测事物未来的状态。
3. 融合信息: 它能够智能地结合来自不同来源(预测和测量)的不确定性信息,进行最优融合。
4. 实时跟踪: 通过不断地预测和更新,它能够对事物的状态进行持续、实时的估算,即使传感器读数有噪音或者模型不完全准确。

举几个生活中的例子,你可能就更明白了:

手机定位: 你的手机GPS接收器并不是每时每刻都那么精准,它可能会受到建筑物遮挡、信号反射等影响。同时,你也知道手机在移动(比如走路、开车),有一个运动趋势。卡尔曼滤波会结合GPS的测量和手机的运动模型,给你一个更平滑、更准确的位置估算。
无人机飞行控制: 无人机需要精确地知道自己的高度、速度、姿态,才能稳定飞行。传感器(如陀螺仪、加速度计、气压计)会提供测量数据,但这些数据都有噪音。无人机的动力学模型可以预测它接下来的运动。卡尔曼滤波就是将这些测量和预测融合起来,为无人机提供精确的导航信息。
股票价格预测: 虽然很难,但理论上也可以用类似的思路。你可以根据历史价格走势建立一个“价格模型”进行预测,同时观察每天公布的各种经济数据作为“测量”。卡尔曼滤波可以尝试结合这两种信息来预测股票价格的波动。

卡尔曼滤波就像一个永不疲倦的侦探,他总是在收集线索(测量),分析可能的案情进展(预测),然后根据新线索和过去的经验,不断修正自己对“真相”(真实状态)的判断,并告诉你这个判断有多大的把握。正是这种不断地“猜测——验证——修正”的过程,让它在科学和工程领域如此强大和流行。

网友意见

user avatar

放几个相关视频,对想了解的同学应该会有很大帮助

【1】为什么使用卡尔曼滤波器?

【1】为什么使用卡尔曼滤波器? https://www.zhihu.com/video/1161658604536479744

【2】状态观察器

【2】状态观察器 https://www.zhihu.com/video/1161658853350977536

【3】最佳状态估计器

【3】最佳状态估计器 https://www.zhihu.com/video/1162036710111367168

【4】

【4】最佳状态估计器算法 https://www.zhihu.com/video/1162404317918375936

【5】非线性状态估计器

【5】非线性状态估计器 https://www.zhihu.com/video/1163156542810726400

【6】如何在Simulink中使用卡尔曼滤波器

【6】如何在Simulink中使用 https://www.zhihu.com/video/1163156693743112192

【7】如何在Simulink中使用扩展卡尔曼滤波器

【7】在Simulink中使用扩展 https://www.zhihu.com/video/1163548516382646272

——————————————————

花了好几天的时间,终于把字幕做完了,希望对大家有用。

别光收藏啊,也请点赞呦~~

如果可以的话,给个关注最好不过了~

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有