卡尔曼滤波器之调参

Dirty hands

在一整套卡尔曼滤波理论和公式学完之后,你终于觉得大功告成,开始设计第一个卡尔曼滤波器。

但是好像还是有什么地方不对劲:


你>:。。。等会。。。卡尔曼博士,你这公式好像没给全啊

卡尔曼博士>:哪里没给全?

你>:这预测方程和更新方程里都假设叠加了一个随机变量Q和R,它们的期望和方差具体值都不知道啊。方差都不知道,这公式让我怎么算呢?

卡尔曼博士>:我是个数学家,你这问的都不是个数学问题,跟我有关系吗?!

你>:。。。???!!!


得,又回到原点,学了一大堆公式,怎么还是没用呢?的确,要设计出一个能好用的卡尔曼滤波器,现在才刚刚开始;而现在最重要的任务,就是要确定Q和R的值,这样公式才能计算起来。然而对于任何一种随机自然现象,比如刮风下雨,地震海啸,数学家在推导公式过程中可以简单地用一个高斯分布来假设,但分布的具体参数值怎么找出来?所以数学家这个工作有时候还是挺让人羡慕的,至少挖坑不用填。而工程师这职业就有点作孽,总得有人填上吧!以后如果碰上一个“见坑就想填”的工程师那真算是福星高照,这简直就称得上是剑胆琴心呐。

从1961年NASA正式决定在登月舱中采用卡尔曼滤波理论开始,到1969年阿波罗登月成功之前,数千名工程师工作了近8年时间。

所以如果想要实现一个能真正工作的卡尔曼滤波器,那么就做好"Get your hands dirty"的决心吧!

调参的方法

调参这个事其实大家多少都有点经验。比如控制领域非常普及的PID系统,在系统设计完成之后要进行仔细的参数调节。这种参数调节实际上是一个根据经验不断试错的过程,最后试出一组最合适的参数出来。这是一种手工的过程,所以效率实在算不上高。

卡尔曼滤波器的参数有其自己的特点。相比PID系统,线性系统的卡尔曼滤波器数学模型比较完整,参数一般都有比较明确的物理意义,参数调整的时候其实是一些规律可循的。

手工调参


对于模型简单一些的系统来说,还是有不少人习惯手工调参,比如:

1. 限制P的值,防止P趋近于0

2. 适当增加Q的值,这样P的值也相应增加

3. 给P乘以一个适当的因子,这样确保K值在一个恰当的范围里

这样通过反复迭代,当迭代出来的参数值逐步收敛于一个稳定值时,就认为获得了一组可用的参数。

离线学习


如果系统模型比较复杂,或者精度要求高,可以使用离线学习的方式,这就要用到Kalman smoother。Smoother可以看作是Kalman滤波的一个特别情况:一般的Kalman filter是利用过去和现在的测量数据来估计将来的状态,而Smoother是在已经获得所有(包括未来)测量数据的情况下,估计过去时间下的系统状态。

Smoother的概念倒也不难理解,不容易弄清楚的是Smoother到底有什么用?尤其是为啥要起个名字叫Smoother?

Smoother主要用于不需要实时处理的情况。有一个基本的事实是:当我们估计状态时,如果有用的信息越多,那显然估计的准确度就越高。过去和现在的数据,能提供的信息量当然是不如包括将来数据在内的所有数据提供的信息量大。所以Smoother在理论上,能够提供比Kalman filter精度更高的估计。估计出来的状态曲线噪声更小,更平滑,因此被称为Smoother也算是切题。

但Smoother因为要等待所有数据都采集完毕才能进行处理,所以付出的代价是失去了Kalman滤波的实时性。不过这样用作离线参数学习的工具倒是没有问题。在这种应用中,通常是对已经建立好卡尔曼模型的目标系统先做大量的测量,把测量数据都记录下来,利用这个测量数据集估计出过去的一系列系统状态值。这个状态值序列的精度是比较高的。然后利用这个状态值序列估计出一个新的参数,以这个新参数代入Smoother模型再次估计出一组系统状态值,如此迭代一直到参数值收敛为止。

自适应滤波


自适应滤波基本思路是引入一个随时间变化的加权因子,在每个更新迭代步骤时对Q和R等参数进行加权更新。当参数趋于稳定收敛时,也就得到了一组优化的参数。这是一种自动化的调参方法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342