解释卡尔曼滤波器中的过程噪声术语

fra*_*ank 21 kalman-filter

我只是在学习卡尔曼滤波器.在卡尔曼滤波器术语中,我对过程噪声有一些困难.在许多具体的例子中,过程噪声似乎被忽略了(大多数都集中在测量噪声上).如果有人能够通过示例向我指出一些介绍过程噪声的介绍级别链接,那就太棒了.

让我们使用一个具体的标量例子给出我的问题,给出:

x_j = a x_j-1 + b u_j + w_j
Run Code Online (Sandbox Code Playgroud)

让我们说x_j随着时间的推移模拟冰箱内的温度.它是5度,应该保持这种方式,所以我们建模a = 1.如果在某些时候t = 100,冰箱的温度变为7度(即炎热的天气,绝缘不良),那么我相信此时的过程噪声是2度.所以我们的状态变量x_100 = 7度,这是系统的真正价值.

问题1:

如果我然后解释我经常看到的用于描述卡尔曼滤波器的短语,"我们过滤信号x以使噪声w的影响最小化",http://www.swarthmore.edu/NatSci/echeeve1/Ref/Kalman/ ScalarKalman.html如果我们最小化2度的影响,我们是否试图摆脱2度的差异?但真正的状态是x_100 == 7度.当我们卡门过滤器时,我们对过程噪声做了什么?

问题2:

过程噪声有变化Q.在简单的冰箱示例中,模型似乎很容易,因为您知道底层的真实状态是5度,您可以将其Q视为与该状态的偏差.但是,如果真正的潜在状态随时间波动,那么当你建模时,这部分将被视为状态波动与"过程噪声".我们如何确定一个好的Q(再一个例子会很好)?

我发现,Q无论你处于哪个时间步长,总是会添加到协方差预测中(参见http://greg.czerniak.info/guides/kalman1/中的协方差预测公式),如果选择过大Q,那么看起来卡尔曼滤波器看起来并不是很好.

谢谢.

EDIT1我的解释

我对术语过程噪声的解释是系统的实际状态与从状态转移矩阵(即a * x_j-1)建模的状态之间的差异.卡尔曼滤波器试图做的是使预测更接近实际状态.从这个意义上讲,它实际上通过剩余反馈机制将过程噪声部分地"合并"到预测中,而不是"消除"它,以便它可以更好地预测实际状态.我在搜索的任何地方都没有看过这样的解释,我很感激有人评论这个观点.

Dav*_*ave 16

在卡尔曼滤波中,"过程噪声"表示系统状态随时间变化的想法/特征,但我们不知道这些变化何时/如何发生的确切细节,因此我们需要将它们建模为随机过程.

在您的冰箱示例中:

  • 系统的状态是温度,
  • 我们通过查看温度计刻度盘获得某个时间间隔(例如每小时)的温度测量值.请注意,您通常需要在卡尔曼滤波中表示测量过程中涉及的不确定性,但您没有在您的问题中关注这一点.我们假设这些错误很小.
  • t你看温度计时,看到它说7度; 因为我们假设测量误差非常小,这意味着真实温度(非常接近)为7度.
  • 现在问题是:在你看了15分钟之后的某个时候温度是多少?

如果我们不知道冷冻机中的冷凝器是否/何时开启,我们可能会:1.以后的温度仍然高于7度(15分钟设法接近一个周期内的最高温度),2如果冷凝器已经运行,或者甚至是3,则降低.3.大致相同.

这种观点认为,系统的实际状态可能会在稍后的时间分布,即"过程噪声"

注意:我对冰箱的定性模型是:冷凝器没有运行,温度上升,直到达到比标称目标温度高几度的阈值温度(注意 - 这是一个传感器,所以可能有噪音冷凝器开启时的温度,冷凝器保持开启,直到温度低于设定温度几度.另请注意,如果有人打开门,那么温度会有所上升; 因为我们不知道有人可能会这样做,所以我们将其建模为随机过程.