离散卡尔曼滤波的使用方法
创始人
2024-11-14 12:34:54

离散KF介绍

KF作为一个迭代算法,所以它是离散的,虽然有连续KF这个说法,但是还是需要把模型打成离散化的形式才可以用于计算。
• 状态方程是微分形式的,需要根据不同的情况进行离散化处理
• 观测方程不是微分形式,而只是简单的线性变化,其内部又不含有采样时间等与时间有关的参数,所以不需要进行离散化(或者说离散形式和连续形式相同)

参数

  • 滤波参数的意义

方程中:x是状态量,z是观测量,φ换h是转移矩阵,ω是系统噪声,ν是观测噪声。这里忽略两个噪声的转移矩阵。
噪声是已知的、系统自带的、不可调的。如果可以调节,我们当然希望噪声为0,因为那样的话得到的结果最好;当然,如果噪声为0,滤不滤波似乎也没有意义了。。。
我们需要调节的参数就是R/Q/P这三个。在正常的卡尔曼滤波中,R和Q不变,P只需要提供一个初值。所以总结来说R/Q/P全都只需要确定一次,后面就不用管了。
• R代表的是观测误差(方差),R越大,表示观测值越不可靠。
• Q代表的是系统的误差(方差),Q越大,表示系统的估计值越不可靠。
• P代表目前迭代值的误差(方差),P越大,也表示系统的估计值越不可靠。
但是书上并没有说过寻找R和Q的方法。。。
为什么呢?因为R可以根据ν的数学参数确定,Q可以根据ω的数学参数确定。所以他们的意思是已经可以通过噪声的形式100%确定了,为什么还要寻找呢?直接搜就行了。可是很多时候我不知道ν和ω的方差啊!有没有一个好的方法可以迅速理解这些值的意义,然后像PID调参一样调节他们呢?
这个时候就需要上公式了:
x ̂_k=x ̂_k^−+K_k (z_k−H_k x ̂_k^−)
这张图也可以便于理解:

所以当观测值不可靠时,K就应该减小,如果K为0 ,则x ̂_k=x ̂_k^−,即滤波值完全由状态估计而来,与观测无关。如果系统的估计值不可靠时 ,K应该变大,K越大表示观测值越被接受。
通常,系统的估计是很不准、有累积误差的,而观测的累积误差几乎没有,但是噪声比较大(某些时候可能延迟还比较高)。当看到这样的滤波结果时,滤波器过于注重系统预测(即Q小了,要调大一点):

这样的结果表示太注重观测值了(即R小了,要调大一点):

一个自动调参的方向
见这个:卡尔曼自动调参(自适应)

使用方法

  • 确定初值

这里的初值指的是:x0-和P0-
三种取值方法:真值、期望、随机
真值:这是一个非常理想的角度,但是真值几乎没有办法取到,如果特定的系统真的可以取得真值,那不用看下面的了,取真值总没错。
期望:对于有些系统,可能x和P的初值不知道,但是根据之前的状态,大致可以知道期望,即使有一点偏差也无所谓,因为知道一个带有少量偏差的期望来滤波,偏差总不会太大。对于期望需要稍加处理。
随机:关于随机取值我的理解是:如果知道初值的大致区间,在这个区间内随机取,基于卡尔曼滤波的强大能力,一般情况下都不会发散的。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...