卡尔曼滤波器 - 处理“派生”测量的最佳方式?

信息处理 过滤器 卡尔曼滤波器 估计 测量 贝叶斯估计
2022-01-07 03:49:47

即,如果您将位置(p)和速度(v )作为状态变量,并且我对p进行低频测量,这也间接地为我提供了有关v的信息(因为它是p的导数)。处理这种关系的最佳方式是什么?

A)在更新步骤,我应该只说我已经测量了p并依靠过滤过程和我的累积状态协方差矩阵(P)来纠正v吗?

B)我是否应该在我的更新步骤之后或之前创建一个“额外”预测步骤来测量p,它使用我测量的p和(相对较大的)增量时间来对v进行高方差预测

C)在我的更新/测量步骤中,我应该说我已经测量了pv,然后以某种方式将有关它们相互依赖的信息编码到测量协方差矩阵(R)中吗?


对于更多背景知识,这是我遇到问题的具体情况:

我正在使用一个系统,我想估计一个物体的位置(p),我经常测量加速度(a)和不经常的高噪声测量p

我目前正在使用一个使用扩展卡尔曼滤波器执行此操作的代码库,它保存为状态变量pv它在每次加速度测量后运行一个“预测”步骤,其中它使用测量的 a和 delta-time 来整合和预测新的pv然后它为每个(不频繁的)p测量运行一个“更新”/“测量”步骤。

问题是这样的——我偶尔会得到a 的高误差测量值,这会导致高度错误的v显然, a 的进一步测量永远不会纠正这一点,但p的测量应该摆脱这一点。而且,事实上,这似乎确实发生了......但非常缓慢。

我在想这可能部分是因为p在这个系统中影响v的唯一方法是通过协方差矩阵P - 即上面的方法 A) - 这似乎相当间接。我想知道是否有更好的方法将我们对pv之间的这种关系的知识整合到模型中,以便p的测量可以更快地校正v 。

谢谢!

1个回答

在理想世界中,您将拥有正确的模型并使用它。
在您的情况下,该模型并不完美。

然而,您建议的步骤是基于您对过程的了解 - 您应该使用动态模型矩阵将其合并到您的过程方程中:

  1. 给定 F 矩阵的经典且正确的方法是根据您的知识正确构建的。

  2. “额外”预测步骤不会产生任何结果,因为如果你减少时间框架,你应该相应地改变这应该会让你在小步骤链的末端,相同的Fik=FijFjkQRPkk1

  3. 如果你不测量 V,你必须以某种方式“估计”它。然而,根据定义,如果您的情况属于卡尔曼假设,则使用卡尔曼滤波器将产生最佳结果。

总而言之,坚持“经典”。