关于问题问Q卡尔曼滤波器中的矩阵(模型过程协方差)

信息处理 matlab 卡尔曼滤波器
2021-12-22 12:03:57

我正在实现我自己的离散卡尔曼滤波器来估计加速度和位置测量的速度(使用 Matlab )。

我想我设法以这种方式处理了矩阵(测量噪声协方差矩阵):R

M = [x;x2dot];
R = cov(M);

我不确定的是矩阵Q

在我在网上和本网站上找到的所有示例中,该矩阵中的值非常小。此外,我在这里找到了这个声明:

如果您选择了一个过大的 Q,那么卡尔曼滤波器似乎不会表现良好。

事实是,在我的模型中,为了获得可接受的结果,我矩阵的对角线上1e6Q

通过这种方式,我得到了估计的位移等于测量的位移,估计的加速度等于测量的位移。速度在正确的值范围内,但看起来仍然很嘈杂。

中使用的值是否有限制Q

此外,是否有选择这些值的指南?

编辑

最后一个问题,矩阵必须是对角的还是也可以是满的?Q

4个回答

我是上面链接的教科书的作者。这是一个新帐户,因此我无法回复该答案。

无论如何,高斯章节涵盖了协方差矩阵的定义。通常,尽管您的 Q 矩阵将是完整的,而不是对角线,因为状态变量之间存在相关性。例如,假设您正在跟踪汽车在 x 轴上的位置和速度。过程噪声(Q 正在建模)可能是风、道路颠簸等。如果由于这种噪声而导致速度发生变化,那么位置也会发生变化。它们是相关的,因此这些项的非对角线元素将不为零。

卡尔曼数学章节告诉你如何计算各种场景的 Q 矩阵。诚然,该部分还有更多工作要做。它是最不透明的主题之一,因为大多数消息来源要么掩盖它,要么只是向你扔一个积分,并期望你找出其余的。

最后,配套的FilterPy 项目包含为给定常见场景计算完整 Q 矩阵的代码。代码是通用/离散化的。对于分析困难的情况,有一个例程可以按照 Golub 和 Van Loan 的想法以数值方式找到结果;然而,教科书缺乏关于这个主题的内容。

首先,我真的推荐这个关于卡尔曼滤波的优秀教科书项目。您可以在此处找到有关设置过程噪声的一些文字它还有一个pdf版本

在每一步中,滤波器估计一个多元正态分布,参数为(状态向量)和(协方差矩阵)。μ=xσ=P

通过查看卡尔曼滤波器方程,您可以看到被添加到预测的中。通过这样做,我们“人为地”抹黑了新的正态分布,增加了我们预测的不确定性。这也意味着我们提高了附近状态向量的概率。QFPFTx

因此,如果您选择相比具有巨大值的 ,您基本上会说该模型在预测过程方面做得不好,我们真的必须扩大我们认为真实状态向量所在的范围。QP

你可以自由选择一个完整的矩阵作为,只要它是一个有效的协方差矩阵。对角线表示您的状态参数彼此独立。关于多元正态分布的部分可以为您提供更多见解和示例。QQ

问问你自己,植物噪音被用来建模/表示什么。通常的怀疑是未建模状态和/或模型参数中的随机漂移的影响(这可能是同一件事,但处理方式不同)。如果你能回答这个问题,你可以尝试自己推导适当的植物鼻子协方差。

另一种方法是反复试验。

您可能已经注意到一种方法,即方差分量估计 (VCE)。通常有 Q 和 R 对角线。VCE 可以使用测量残差和过程噪声残差来估计单个测量和过程噪声矢量中的单个噪声因子的方差分量。