欢迎光临散文网 会员登陆 & 注册

卡尔曼滤波:卡尔曼滤波器

2022-11-28 11:14 作者:玛莉真  | 我要投稿

卡尔曼滤波的过程可以概括为3个步骤:预测(prediction),观测(observation),协调或修正(correction)。

预测即根据系统当前的状态预测系统下一个状态,并且评估预测误差

接下来,我们在经过一定时间后读取或者说观测系统的状态(系统现在转换到了新状态)。基于数学模型,把读取的信息转换为系统状态。同样,我们要评估观测误差

下一步是协调两个状态估计(即预测状态和观测状态),并且要考虑两个相关误差的大小。即预测的估计值要根据观测值进行修正。因此,这被称为修正步骤。来自修正步骤的系统状态的协调估计是当前系统状态的最终估计。

这样,我们去到下一个系统状态。然后,重复以上三个步骤继续估计下下个系统状态。卡尔曼滤波就是这样一个重复“预测-->修正”的方法。如下图:

卡尔曼滤波的步骤

那么是如何修正预测值得的呢?我们可以把对下一个状态的预测值理解为期望的观测值,把这这称为预测观测值(predicted observation)。修正状态在卡尔曼滤波器中表示为:

修正的状态

式子中,实际观测值(actual observation)和预测观测值(predcited observation)的差距称为observation innovationk称为Kalman gain。卡尔曼滤波方法规定了k为使得修正状态具有最小的误差方差的值。

卡尔曼还证明了在状态值和观测值的数学模型都是线性的,并且误差来自独立的高斯分布的情况下,该过程是最优的。

接下来看一下卡尔曼滤波步骤的正式规定:

X_%7Bt%7D表示在时间t的状态。注意,状态可以是一个向量,说明这个状态是多维的。在卡尔曼滤波器中,用于预测时间t的状态的数学模型是:

A是一个矩阵,X_%7Bt%7DX_%7Bt-1%7D分别表示在时间t和时间t-1的状态向量,%5Cmu%20_%7Bt%7D是误差向量表示模型的不准确性。

Y_%7Bt%7D表示在时间t的观测值(即观测到的状态)。表示为:

在这种情况下,矩阵AH是已知的。起初,根据到时间t-1为止的状态信息,我们对时间t的状态做一个预测,表示为%5Chat%7BX%7D%20_%7Bt%7Ct-1%7D%20。预测误差在一维状态的情况下表示为方差,在多维状态的情况中表示为协方差矩阵,用符号%5Chat%7BP%7D%20_%7Bt%7Ct-1%7D%20表示。类似地,观测误差在一维状态的情况下表示为方差,在多维状态的情况中表示为协方差矩阵,观测误差用R表示。

这样卡尔曼滤波步骤的正式规定为:

这些步骤会在下一个时间点重复执行。

卡尔曼滤波:卡尔曼滤波器的评论 (共 条)

分享到微博请遵守国家法律