卡尔曼滤波的学习与应用(五)

[复制链接]

45

主题

179

帖子

455

积分

二氧化硅

Rank: 2

积分
455
楼主
查看: 2636回复: 1 发表于 2018-11-20 16:36:19   只看该作者
本帖最后由 wy2589 于 2018-11-20 16:40 编辑

2.3 卡尔曼滤波参数的估计和调整
在卡尔曼滤波的使用中,通常首先要测量噪声协方差 R。可以通过离线测量实验确定。但是确定过程噪声协方差 Q 一般更困难,因为无法直接观察过程。当对一个相对简单的过程模型加入足够的不确定性时(通过选择合适的 Q)得到的结果是可信的。无论如何,通过运行中调整 Q 和 R 可以得到较好的滤波效果。调整通常是离线的,通常借助于过程的另一个卡尔曼滤波进行系统辨识来实现。在 Q 和 R 为常数的情况下,估计误差协方差 Pk 和卡尔曼增益 Kk 都会迅速镇定,然后保持为常量。如果是这样的话,可以通过离线运行滤波器来预先确定这些参数,或者如(Grewal and Andrews 2001)所述来确定 Pk 的稳态值。

然而通常的情况是测量误差不会保持常量。例如,当观察光电跟踪器面板上的亮点时,对附近的亮点的测量误差要小于远处的。有时过程噪声 Q 在滤波器运行中是动态变化的,变成了 Qk,以调整符合不同的动态特点。例如在跟踪三维虚拟环境中的用户头部时,如果用户慢速移动,就要减小 Qk 值,如果动态变化加快就增加 Qk 值。在这类情况下,通过选择来适应用户意图的不确定性以及模型中的不确定性。

测量方程协方差的确定
测量方程是由测量设备可以实现的测量量来确定形式的,例如激光测距仪可以进行目标位置径向位置和角度位置的测量(极坐标测量),因此这两个量就是测量方程的输出。测量方程的协方差可以通过对激光测距仪的试验来确定。方法是利用在测距仪和目标都固定的情况下,激光测距仪对已知位置的目标进行多次测量,得到一组测量数据,然后利用 matlab 软件求出这组数据的协方差就可以作为测量方程的协方差了。当然测距仪在测量不同距离的目标时,测量的误差可能不同,所以就有不同的协方差,可以取一个中间位置对应的协方差为仪器的协方差。或者取测量范围内最大的协方差。

状态方程(过程方程)的协方差确定
过程方程的协方差比较难以确定,一种方法是对于比较容易观察过程变化的系统,通过经验设定协方差。另一种需要通过仿真来调整。对于给定的过程方程,先预设一个协方差,通过设定一系列标准的测量值,仿真观察卡尔曼滤波是否很快收敛,如果不收敛或者收敛慢则可以调整过程协方差来达到较好的效果。

过程、测量误差及协方差的确定
误差及协方差的准确确定比较重要,也比较困难。测量方程的误差可以通过离线测量确定,但是过程误差不容易准确估计。
设状态方程 X (k +1) = A(k)X (k) + B(k)u(k) +V (k) V (k) 为零均值、白色高斯过程噪声,其协方差为 Q(k) 。如果噪声V (k) 表示成 Γ(k)v(k) Γ(k) 为过程噪声分布矩阵,v(k) 为一个标量。则 Q(k) 变为


以目标在 x 轴方向上做匀速直线运动为例:状态向量


噪声分布矩阵为


T 为采样周期,而标量 v(k) 0 均值,方差为 q 的量。


为何噪声分布矩阵取这样的值?因为这是过程噪声,两个过程变量分别为目标移动的位置和速度,它们的过程噪声有一定的相关性。因为设定目标为匀速运动,所以过程中产生加速度的变化引起状态变量的噪声。


这里将认为 v(k) = a ,是方差为q 的零均值变量,q 的值可以参照在加速度测量中的加速度变化情况。当然还可能存在其它噪声形式,需要通过工作过程中的系统辨识等方法来确定。
协方差的计算。 Q(k) 是噪声V (k) 的协方差。


如果噪声向量中各分量都服从各自的 0 均值正态分布:

其中:


如果噪声向量的各分量互不相关,则 E[v1 (k)v2 (k)] = 0

1

主题

13

帖子

17

积分

一粒轻沙

Rank: 1

积分
17
沙发
发表于 2019-7-28 17:39:24   只看该作者
感谢楼主分享!
快速回复 返回顶部 返回列表