告别年代

阳光里闪耀的色彩真美丽

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

[首发:cnblogs    作者:byeyear    Email:byeyear@hotmail.com]

卡尔曼滤波器根据下面的式子从前一状态推出后一状态:

$\mathbf{x}_k=\boldsymbol{\Phi}_k\mathbf{x}_{k-1}+\mathbf{G}_k\mathbf{u}_k+\mathbf{w}_k$

$\mathbf{x}_k$是状态向量,描述系统状态,例如(弹簧-阻尼-力)系统的位置和速度;

$\mathbf{u}_k$是输入向量,包含所有控制输入,例如弹簧、阻尼器、外力。在$k-1$和$k$之间,输入保持不变;

$\boldsymbol{\Phi}_k$是作用在$\mathbf{x}_{k-1}$上的状态转换矩阵,(它对$k-1$时刻的状态进行加权组合,以)反应系统在$k-1$时刻的状态对$k$时刻的状态的影响。例如,系统在$k-1$时刻的位置和速度都会影响$k$时刻的位置;

$\mathbf{G}_k$是控制输入矩阵,(它对输入进行加权组合,以)反应输入$\mathbf{u}_k$对系统状态的影响。例如,力会影响系统的速度和位置;

$\mathbf{w}_k$是过程噪声向量,反应系统噪声对各状态向量的影响。过程噪声假定为零均值正态分布多维随机过程,协方差矩阵为$\mathbf{Q}_k$。过程噪声有多个来源,如输入信号中的噪声、建模不精确引起的噪声、系统内部噪声等。

测量值表示如下:

$\mathbf{z}_k=\mathbf{H}_k\mathbf{x}_k+\mathbf{v}_k$

$\mathbf{H}_k$是观测模型,将状态空间映射到观测空间;

$\mathbf{v}_k$是观测噪声,符合均值为零的正态分布,协方差矩阵为$\mathbf{R}_k$。

初始状态、状态噪声和观测噪声$\{\mathbf{x}_0, \mathbf{w}_1, \ldots, \mathbf{w}_k,\mathbf{v}_1,\ldots,\mathbf{v}_k\}$互相独立。

这里用$z_k$表示观测空间,包含有观测噪声,注意与一般状态方程中不含观测噪声的$\mathbf{y}_k=\mathbf{H}_k\mathbf{x}_k$区分。

 

因为存在过程噪声和观测噪声,我们只能得到状态向量的估计值。但因为已知状态噪声和观测噪声的协方差矩阵,就可以通过“预测-更新”这两个步骤实现对真实值的跟踪。

1. 预测

在取得观测值之前,先根据上一次的状态估计值和输入预测此次的状态向量,还可以根据上一次的状态估计协方差预测此次的状态估计协方差:

$\mathbf{\hat{x}}_k^-=\boldsymbol{\Phi}_k\mathbf{\hat{x}}_{k-1}+\mathbf{G}_k\mathbf{u}_k$

$\mathbf{P}_k^-=\boldsymbol{\Phi}_k\mathbf{P}_{k-1}\boldsymbol{\Phi}_k^T+\mathbf{Q}_k$

符号$\mathbf{\hat{x}}_k^-$上方的“”帽子”表示这是一个估计值,右上角的减号表示这是在取得测量值之前的最优估计。因为过程噪声均值为0,所以状态向量估计值不包含过程噪声。

状态估计协方差受两个方面的影响:一是状态转换矩阵会作用在已有($k$之前)的过程噪声上从而影响过程向量,这个可通过递推的形式获得;二是最近一段时间($k$到$k-1$)的过程噪声也会影响过程向量。状态估计协方差的预测包含的正是这两项。

2. 更新

获得观测值后,首先计算测量余量、测量余量协方差和最优卡尔曼增益:

$\mathbf{\tilde{y}}_k=\mathbf{z}_k-\mathbf{H}_k\hat{\mathbf{x}}_k^-$

$\mathbf{S}_k=\mathbf{H}_k\mathbf{P}_k^-\mathbf{H}_k^T+\mathbf{R}_k$

$\mathbf{K}_k=\mathbf{P}_k^-\mathbf{H}_k^T\mathbf{S}_k^{-1}$

然后用它们来更新$\mathbf{x}$和$\mathbf{P}$:

$\mathbf{\hat{x}}_k=\mathbf{\hat{x}}_k^-+\mathbf{K}_k\mathbf{\tilde{y}}_k$

$\mathbf{P}_k=(\mathbf{I}-\mathbf{K}_k\mathbf{H}_k)\mathbf{P}_k^-$

计算测量余量时,将上一步的状态估计量映射到观测空间,然后和观测量做减法,这样就得到“估计输出”和“观测输出”的差(测量余量)。

总的测量余量包含两部分:一是状态噪声会被“观测”到,二是观测行为本身的噪声。测量余量协方差$\mathbf{S}_k$包含的就是这两项。

最优卡尔曼增益可以看作是对“估计值的误差”和“观测值的误差”的加权。因为“估计值”和“观测值”都是不可信的,但过程噪声和观测噪声的协方差又是已知的,所以可以通过对它们加权得到最优的状态变量“修正”,即最优卡尔曼增益$\mathbf{K}_k$。

posted on 2017-04-20 21:17  告别年代  阅读(268)  评论(0编辑  收藏  举报