卡尔曼滤波器

预测:根据前一状态估计当前状态;更新:根据观测值对预测进行修正,达到最优估计

第一条公式:预测

F就是状态转移矩阵,B则是控制矩阵

第二条公式:不确定性的传递

每一个时刻的不确定性都是通过协方差矩阵Σ来给出的;协方差矩阵 Q 表示预测模型本身的噪声(也即是噪声在传递过程中的不确定性)

对估计量进行修正:

前面我们提到,是根据上一状态推测而来的,那么它与最优估计值之间的差距现在就是等式右端加号右侧的部分。表示实际观察值(y)与预估的观测值之间的残差。这个残差再乘以一个系数K就可以用来对估计值进行修正。K称为卡尔曼系数,它也是一个矩阵,它是对残差的加权矩阵,有的资料上称其为滤波增益阵。

但是现在我们仍然可以定性地对这个系数进行解读:滤波增益阵首先权衡预测状态协方差矩阵 Σ 和观测值矩阵R的大小,并以此来觉得我们是更倾向于相信预测模型还是详细观测模型。如果相信预测模型多一点,那么这个残差的权重就会小一点。反之亦然,如果相信观察模型多一点,这个残差的权重就会大一点。不仅如此,滤波增益阵还负责把残差的表现形式从观测域转换到了状态域。例如本题中观测值 Z 仅仅是一个一维的向量,状态 x 是一个二维的向量。所以在实际应用中,观测值与状态值所采用的描述特征或者单位都有可能不同,显然直接用观测值的残差去更新状态值是不合理的。而利用卡尔曼系数,我们就可以完成这种转换。例如,在小车运动这个例子中,我们只观察到了汽车的位置,但K里面已经包含了协方差矩阵P的信息(P里面就给出了速度和位置的相关性),所以它利用速度和位置这两个维度的相关性,从位置的残差中推算出了速度的残差。从而让我们可以对状态值 x 的两个维度同时进行修正。

对噪声分布进行更新:

也就是说当 t = 1 时,我们根据观测值 y1 去估计真实状态 x1 ,这个过程服从一个高斯分布。然后,当 t = 2 时,我们根据上一个观测值 y1 去预测当前的真实状态 x2 ,在获得该时刻的真实观测值 y2 后,我们又可以估计出一个新的真实状态 x2 ,这时就要据此对由 y1 预测的结果进行修正( Update ),如此往复。

猜你喜欢

转载自blog.csdn.net/tttabcgy/article/details/79770761