实践中的卡尔曼滤波器


17

我已经阅读了有关卡尔曼滤波器的说明,但是在实际中如何结合起来尚不清楚。它似乎主要针对机械或电气系统,因为它想要线性状态转换,并且出于相同的原因(它想要线性状态转换),对于异常检测或定位状态转换没有用处,对吗?在实践中,通常如何使用卡尔曼滤波器找到期望预先知道的成分。我已经列出了组件,如果我对需要提前知道的内容的理解不正确,请纠正我。

我相信这些不必“事先”知道:

  • 过程噪声w
  • 观察噪声v
  • 实际状态(这是卡尔曼滤波器尝试估算的状态)x

我相信使用卡尔曼滤波器需要事先知道这些:

  • 我们应用于的线性状态转换模型(我们需要事先知道这一点,因此我们的状态必须受已知定律支配,即,当从一个状态到另一个状态的转换得到很好的理解和理解时,卡尔曼滤波器可用于校正测量值确定性的,直到一点点噪音-它不是异常发现者,也不是发现随机状态变化的工具)x
  • 控制向量u
  • 应用于输入向量控制输入​​模型(我们需要事先了解这一点,因此,使用卡尔曼滤波器时,我们还需要事先知道我们的控制值如何影响模型,最多影响一些高斯噪声,以及效果必须是线性的)u
  • 过程噪声的协方差(在Wikipedia文章中似乎与时间有关,即,它取决于时间k)-似乎我们需要提前知道这一点,并且随着时间的流逝,我认为实际上它被认为是恒定的?Qk
  • A(线性)观察模型H
  • 协方差(在维基百科文章中似乎也与时间有关)-与Q相似的问题RQ

PS,是的,我知道其中许多依赖时间,我只是将所有下标都弄乱了。如果愿意,可以随意想象每个变量名右边和右边的小写字母k


Answers:


18

在某些情况下,让我们回到卡尔曼滤波器方程式:

x(k+1)=F(k)x(k)+G(k)u(k)+w(k)z(k)=H(k)x(k)+v(k)

简而言之,对于普通香草KF:

必须完全定义。这直接来自系统的微分方程。如果没有,您将遇到双重估计问题(即,估计状态和系统模型)。如果您没有系统的微分方程,那么KF不适合您!F(k)

根据定义, xk 是未知的。毕竟,如果您知道的话,那将不是一个估计问题!x(k)

控制矢量必须完全定义。在没有附加系统建模的情况下,控制矢量的唯一不确定性可能是AWGN,它可能会合并到过程噪声中。已知矩阵Gk 将控制输入与状态相关联-例如,副翼运动如何影响飞机的侧倾。在数学上,这是KF开发的一部分。u(k)G(k)

w(k)Q(k)Q

H(k)z(k)

但是,传感器的测量结果被AWGN破坏了。 v(k), which, being random noise, is by definition unknown. The statistics of the noise must be known, which is zero mean with covariance R(k). Once again, the covariance may change with time, but for many applications, it is a fixed value. Often, your sensors will have known noise characteristics from the datasheet. Otherwise, it's not too hard to determine the mean and variance of your sensors that you need to use. Yes, this can also be "tuned" empirically.

There are a huge number of "tricks" that can be done to work around the restrictions in a plain vanilla KF, but these are far beyond the scope of this question.


Afterthought:

Whilst googling for "Kalman Filter" results in a million hits, there are a couple of things that I think are worth looking at. The wikipedia page is a too cluttered to learn from effectively :(

On AVR Freaks, there is an "equation free" intro to the Kalman Filter that I wrote some time ago to try to introduce where it is used for real.

If you're not afraid of maths, there are several books worth reading that are at the senior undergraduate/early postgraduate level. Try either Brown and Hwang which includes all the theory and plenty of example systems. The other that comes highly recommended but I have not read is Gelb, which has the distinct advantage of being cheap!


1
+1 for the AVR Freaks link! Very nicely done. Will probably use that in class. :-)
Peter K.
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.