扩展卡尔曼滤波器原理-扩展卡尔曼滤波器原理
想象一下,你正站在湖边,手里攥着一张不断晃动的旧地图。风挺大,地图边缘全是磨损的胶,上面还印着不清楚不清的标记。
这就是现实世界,充满了噪声,充满了不确定性。
你想去把地图上的某个点(比如某座城市的坐标)精准定位下来,但地图本身可能还没翻上去,要么正在被风吹得扭曲变形。
这时候,单纯靠那张纸自己走不动,它得有个搭档,要么靠自己的力量,要么靠你的直觉去“修正”它。卡尔曼滤波器(KF)就是这种搭档,它不像那些复杂的算法,而是像一只灵动的鹿,背着地图(预测器),在原地小跑(预测),然后突然嗅到一股陌生的气味(测量),赶紧把地图修正一下,再带着新信息蹦到刚刚的位置(更新)。它不需求记一辈子事,只需求记住刚刚看到的,就能把未来的路走得更准。 在传统的思维里,我们要处理数据,得先假设标准,再往里填数据,最终再回头去验证假设对不对。但这事儿做起来特别像是在泥地里修路,每一步都得小心翼翼。卡尔曼滤波的核心逻辑实际上挺好办,就是“一步一镜”。它的眼分两块,一块叫预测器,眼长在脑子里,负责瞎蒙一下看个大约;另一块叫测量器,眼长在传感器上,负责仔细看看眼前到底是啥。预测器干啥呢?它根据上一秒的状态,结合一点遗忘系数,猜一下下一秒可能会在哪儿。
这就好比你在跑步,上一秒跑在 A 点,下一秒跑在 B 点,预测器就根据速度方向和加速度,估算你目前大约在哪,就连让你略微提前一点站好姿势,省得摔倒。
这时候,地图(状态空间)里的点已经离真位置有一点点偏差了。紧接着,测量器登场,它拿着激光测距仪要么 GPS 信号,实际测量出你目前确实在 C 点。数据回来了,预测器和测量器一碰,形成了“融合”。
这一步最关键的是“加权”,相当于说,这一头是用传感器来的,一头是用脑子猜的。
要是传感器挺准,权重就大;要是脑子总能猜对,权重就大。
最终,状态向量就更新成一个新的点,变成“更新”后的状态。整个过程就完了,你看待难题的态度变了,从原来的“全信地图”变成了“一半信地图,一半信眼”。 说句大实话,这个加法过程实际上挺费事,特别是当地图忒大、数据忒乱的时候。人在社会里,有时候脑子会“短路”,有时候又会“偏执”,有时候还会出于信息忒多而不知所措。
这时候,声纳功率谱密度要么雷达回波就显得不那么那么“直观”了。
一般/平平的算法往往得把所有数据全塞进一个漏斗里,最终再说个结论。但卡尔曼更新不是这样,它得一个个地过一遍。你就得把每一个新到的数据,都去和现有的地图进行“加减乘除”这种微妙的数学博弈。
这就是为啥老话要讲“数据每分钟更新一次”的道理。数据进来的越快,地图就越鲜活;数据进来的忒慢,地图就死板了。 举个具体的例子,咱们来算个账。假设你在沙漠里开车,想导航回家。你的预测器看着前方,说:“我认定前方五百米处有个岔路口,大约往右转,速度保持 60 公里每小时。”这时候,你启动了摄像头或激光雷达,实际测量的结局是:“前方三百米处有个大棚,在左边,速度是 40 公里每小时。”这两个信息到了,预测器和测量器启动打架。预测器说:“我看岔路口要右转,那这个大棚算啥?”测量器说:“你少看个地方,这个就是我要去的家,别管那些岔路了!”这时候权重分配变得微妙。
要是摄像头挺灵敏,能看清环境,那权重就大,你挺可能得取消那个转向的指令,改回家。
要是摄像头坏了,全是风声,那权重就小,你信任自己的预判,持续往右转。实时的权重调整,就是卡尔曼滤波最迷人的地方,它承认自己可能会犯错,也愿意根据证据随时更换策略。 有时候,预测器干得特别绝,它就连敢预测未来,预测下一个瞬间的状态。
这在工程上叫“预测阶段”。
比方说,你正在降落一架飞机,预测器会根据当前的姿态和速度,大胆地推算出下一秒你会在左侧三米外滚落。
这时候,传感器还没来得及反应,预测器已经把飞机“推”出去了。
这听起来有点疯狂,但在某些应急场景下,这就是救命。
要是传感器反应慢,预测器就得先救急,哪怕它有点“瞎蒙”。待传感器反应过来,再把测量数据投进去,这时候预测器就得退后一步,承认刚刚那个大胆盘算是忒冲动了,赶紧修正。
这种“预测 - 修正 - 再预测”的循环,让系统对未来的反应速度提升了个位数,但代价是增添了运算量。 自然,卡尔曼滤波也不是万能的。它有个著名的缺点,就是假设状态空间里,预测和测量都是线性的,并且 noises(噪声)也是正态分布的。现实世界忒杂了,有时候是个混沌系统,有时候是非线性关系。
比如你在做股票分析,价格变动不是好办的线性叠加,而是情绪、政策、技术面这些因素非线性耦合的结局。
这时候,纯卡尔曼滤波可能会变得“僵化”,预测和测量之间会出现怪的偏差,就连预测会变得越来越虚,彻底不管测量器的意见了。
这时候就得换个算法,比如粒子滤波,它靠的是想象多种可能性的概率云,而不是单点预测。 故此,我们总结的时候,或许不要说“起初”,实际上就是一个好办的故事:我们在一个充满噪点的世界里,手里拿着一张可能不准的地图。我们的目标就是把那张地图塞进能做圆的圆的容器,让它越圆越好。预测器负责把地图推到合适的位置,测量器负责把地图拉回真的位置。在这个过程中,我们不断地放下旧地图,捡起新数据,给地图贴上新的标签。
这就是卡尔曼滤波,它不需求你懂复杂的数学公式,它只需求你信任自己的感知和逻辑,并且愿意信任自己的感知可能会犯错,愿意随时停下来重新审视自己。在这个充满不确定性的世界里,这种“猜-看-改”的循环,就是最可靠的导航系统。
声明:演示网站所有内容,若无特殊说明或标注,均来源于网络转载,仅供学习交流使用,禁止商用。若本站侵犯了你的权益,可联系本站删除。
