卡尔曼滤波器-处理“衍生”测量值的最佳方法?


13

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

A)在更新步骤中,我应该只说我测量了p,并且依靠滤波过程以及我积累的状态-协方差矩阵(P)来校正v

b)如果我创建一个“额外”的预测步骤,之后或者用于测量我更新步骤之前p,使用我的测量p和(相对大的)Δ-时间作出的高方差预测v

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


为了获得更多背景信息,以下是我遇到问题的具体情况:

我正在使用一个系统来估计对象的位置(p),并经常测量加速度(a)和不频繁地测量p高噪声。

我目前正在使用扩展卡尔曼过滤器(Extended Kalman Filter)执行此操作的代码库,其中将其保留为状态变量pv。在每次加速度测量之后,它都会执行“预测”步骤,在该步骤中,它使用测量的a和增量时间来积分和预测新的pv。然后,它为每个(不频繁的)p测量运行一个“更新” /“测量”步骤。

问题是这样的-我得到的偶然的高误差测量一个,这导致高度误差v。显然,对a的进一步测量将永远不会纠正此问题,但对p的测量应摆脱此问题。而且,实际上,这确实发生了……但是非常缓慢。

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

谢谢!


1
稍后,我将尝试返回更长的答案,但是我对您的问题的立即反应将是A)是,B和C)可能不是。您是否可以通过某种方式检测的高误差度量?如果可以检测到异常值,则可以将其丢弃以减轻其影响。如果系统位置的采样率与动态相比太低,则可能很难获得出色的性能。a
杰森R

2
另一件事;在状态转换矩阵中表示的和之间应该存在隐式关系。具体来说,它应表示或类似值。pvpk+1=pk+vkΔt
杰森R

Answers:


3

在理想的世界中,您将拥有正确的模型并使用它。
在您的情况下,该模型并不完美。
然而,您建议的步骤是基于您对过程的了解-您应该使用动态模型矩阵将其合并到过程方程中:

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

  2. “额外”预测步骤将不会产生任何结果,因为并且如果您缩短时间范围,则应相应地更改和,这将使您在小步骤链的末尾,相同的P_k_k-1。Fik=FijFjkQR

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.