我只是在学习卡尔曼滤波器。在卡尔曼滤波器术语中,我对过程噪声有一些困难。在许多具体的例子中,过程噪声似乎被忽略了(大多数都集中在测量噪声上)。如果有人能够通过示例向我指出一些介绍过程噪音的介绍级链接,那就太棒了。
让我们使用一个具体的标量例子给出我的问题:
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
度。当我们卡尔曼滤波时,我们对过程噪声做了什么呢?
问题2:
过程噪音的方差为Q
。在简单的冰箱示例中,模型似乎很容易,因为您知道基础真实状态是5度,您可以将Q
作为与该状态的偏差。但是,如果真正的潜在状态随时间波动,那么当你建模时,这部分将被视为状态波动与“过程噪声”。我们如何确定一个好的Q
(再一个例子会很好)?
我发现,无论您处于哪个时间步,Q
总是被添加到协方差预测中(参见http://greg.czerniak.info/guides/kalman1/中的协方差预测公式),如果选择过大Q
a * x_j-1
1}},那么卡尔曼滤波器看起来并不是很好。
感谢。
EDIT1我的解释
我对术语过程噪声的解释是系统的实际状态与从状态转移矩阵建模的状态(即{{1}})之间的差异。卡尔曼滤波器试图做的是使预测更接近实际状态。从这个意义上讲,它实际上通过剩余反馈机制将过程噪声部分地“合并”到预测中,而不是“消除”它,以便它可以更好地预测实际状态。我在搜索的任何地方都没有看过这样的解释,我很感激有人评论这个观点。
答案 0 :(得分:14)
在卡尔曼滤波中,“过程噪声”表示系统状态随时间变化的想法/特征,但我们不知道这些变化何时/如何发生的确切细节,因此我们需要将它们建模为随机过程。
在您的冰箱示例中:
t
你看温度计,看它说7度;
因为我们假设测量误差非常小,这意味着
真正的温度是(非常接近)7度。如果我们不知道冷冻机中的冷凝器是否/何时开启,我们可以: 1.后来的温度仍然高于7度(15分钟管理 接近一个周期的最高温度), 2.如果冷凝器已经运行,或者甚至, 3.差不多。
这种观点认为,对于真实状态存在可能结果的分布 以后的系统是“过程噪音”
注意:我对冰箱的定性模型是:冷凝器没有运行,温度上升,直到达到比标称目标温度高几度的阈值温度(注意 - 这是一个传感器所以可能有噪音冷凝器开启时的温度条件,冷凝器一直保持到温度 比设定温度低几度。另请注意,如果有人打开门,那么温度会有所上升;因为我们不知道有人可能会这样做,所以我们将其建模为随机过程。
答案 1 :(得分:4)
请记住,系统通常不具有固有的“真实”状态。冰箱就是一个很好的例子,因为它已经是一个具有非线性特性的控制系统。飞行炮弹是一个更好的例子。有一些地方它“确实是”,但这不是A固有的。在这个例子中,你可以把风看作一种“过程噪音”。 (不是一个很好的例子,因为它不是白噪声,而是在这里和我一起工作。)风是一种影响炮弹速度的三维过程噪声;它不直接影响炮弹的位置。
现在,假设这个地区的风总是吹向西北。我们应该看到风的北部和西部成分之间存在正的协方差。炮弹速度向北的偏差应该使我们期望看到向西的类似偏差,反之亦然。
将Q更多地视为协方差而不是方差;它的自相关方面几乎是偶然的。
答案 2 :(得分:0)
这里有一个很好的讨论。我想补充一点,过程噪声的概念是基于模型进行的预测有一些误差,并使用Q矩阵表示。如果你注意到KF中的方程用于预测协方差矩阵(P_prediction),它实际上是预测状态的均方误差,那么简单地将Q加到它上面。 PPredict = APA' + Q.我建议,如果你能找到KF方程的推导,它会给出一个很好的见解。
答案 3 :(得分:0)
如果您的状态转换模型是准确的,则过程噪声将为零。在现实世界中,几乎不可能用数学模型捕捉精确的状态转换。过程噪声捕捉到了这种不确定性。