我只是在学习卡尔曼滤波器。用卡尔曼滤波器的术语来说,我在处理过程中遇到了一些困难。在许多具体示例中,过程噪声似乎被忽略了(大多数集中在测量噪声上)。如果有人可以让我指向一些入门级链接,并通过示例很好地描述了过程噪声,那将是很好的。
给我一个具体的标量示例,给出:
x_j = a x_j-1 + b u_j + w_j
假设对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
度。当我们进行卡尔曼滤波时,我们到底要对过程噪声w做什么?
问题2:
过程噪声的方差为Q
。在简单的冰箱示例中,建模似乎很容易,因为您知道基本真实状态为5度,并且可以将其Q
作为该状态的偏差。但是,如果真正的基础状态随时间波动,则在建模时,将其中的哪一部分视为状态波动与“过程噪声”之间的关系。以及我们如何去确定一个好品Q
(再举一个例子就好了)?
我发现Q
无论您处于哪个时间步长,它总是被添加到协方差预测中(请参阅http://greg.czerniak.info/guides/kalman1/的协方差预测公式),如果您选择了一个太大的值Q
,那么看来卡尔曼滤波器的行为似乎并不完善。
谢谢。
EDIT1我的解释
我对过程噪声一词的解释是系统的实际状态与根据状态转换矩阵(即a * x_j-1
)建模的状态之间的差异。卡尔曼滤波器尝试做的是使预测更接近实际状态。从这个意义上讲,它实际上是通过残余反馈机制将过程噪声部分“合并”到预测中,而不是“消除”该噪声,以便可以更好地预测实际状态。我在搜索中的任何地方都没有阅读过这样的解释,对于任何对此评论发表评论的人,我将不胜感激。
在卡尔曼滤波中,“过程噪声”表示系统状态随时间变化的想法/特征,但是我们不知道这些变化何时/如何发生的确切细节,因此我们需要将它们建模为随机过程。
在您的冰箱示例中:
t
您看着温度计时,它会显示7度。由于我们假设测量误差非常小,这意味着真实温度为(非常接近)7度。如果我们不知道是否/何时打开冰箱中的冷凝器,我们可能会:1.稍后的温度仍高于7度(15分钟设法达到一个周期的最高温度),2 。如果冷凝器正在/正在运行,甚至更低,则降低3。
在稍后的某个时间,系统真实状态可能分布的结果的想法是“过程噪声”
注意:我对冰箱的定性模型是:冷凝器未运行,温度升高直到达到阈值温度,该阈值温度比标称目标温度高出几度(注意-这是一个传感器,因此可能存在噪音)冷凝器开启的最大温度),冷凝器将保持开启状态直到温度低于设定温度几度。还要注意,如果有人打开门,那么温度会突然升高。由于我们不知道何时有人可以这样做,因此我们将其建模为随机过程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句