背景说明
由于在工程应用中,系统的动态模型和量测模型往往不是线性的,此时,卡尔曼滤波不再适用。所以本文介绍三种模型构造高斯逼近的方法。
- 基于泰勒基数展开的扩张卡尔曼滤波(extend Kalman filter,EKF);
- 基于统计线性化的统计线性化滤波器(statistically linearized filter,SLF);
- 基于无迹变换的无迹卡尔曼滤波(unscented Kalman filter,UKF)。
无迹卡尔曼滤波被认为是统计线性化滤波的逼近。ULF优于EKF在于:SLF是更全局的逼近。不足在于:非线性函数的期望值必须进行闭型解算。UKF不要求模型函数可微,不要计算雅可比矩阵,但UKF的精度低于SLF,因为SLF采用了更多的数据;且UKF计算步骤较多。
扩展卡尔曼滤波
将高斯随机变量性转换在另一个随机变量y:
x∼N(m,P)y=g(x)
对g(x)进行泰勒展开,设x=m+δx,且δx∼N(m,P)。其中Gx(m),Gxxi(m)分别是g的雅可比矩阵和Hessian矩阵。
g(x)=g(m+δx)≈g(m)+Gx(m)δx+∑21δxGxxiδxei+...
利用展开式中的前两项逼近g(x),且可求起均值和方差分别为:
g(x)=g(m+δx)≈g(m)+Gx(m)δxE[g(x)]=g(m)E[(g(x)−E[g(x)])(g(x)−E[g(x)])T]=Gx(m)PGxT(m)
通常需要求x,y的联合协方差阵,该联合协方差阵可通过增光变换得到:

扩展卡尔曼滤波-过程和量测噪声可叠加类型:
叠加变换的通式为:【注意】该变换通式在后面的统计线性化滤波器和无迹变换滤波器中均一致。

则经过线性逼近的高斯逼近的x,y联合分布为:

EKF模型为:

式中,xk∈Rn为状态量,yk∈Rm为量测量,qk−1∼N(0,Qk−1)为高斯过程噪声,rk∼N(0,Rk)为量测噪声,f(⋅)为系统的动态模型,h(⋅)为系统的量测模型。
一阶可叠加卡尔曼滤波的预测与更新过程如下:


扩展卡尔曼滤波-过程和量测噪声不可叠加类型:
不可叠加变换通式为:

通过增广变换得到关于x,y的均值和协方差为:

非叠加变换的线性逼近为:

EKF模型为:

相关的变量和函数均与可叠加变换的一致。
一阶不可叠加卡尔曼滤波的预测和更新过程如下:

统计线性化滤波器
对于统计线性化滤波器,只是把一阶泰勒级数逼近换成统计线性化。变换模型一致:
x∼N(m,P)y=g(x)
在统计线性化中,可得到函数的线性近似:
g(x)≃b +Aδxδx=x−m
使均方根误差最小,可得:

对g(x)的逼近中,b恰好为均值,而逼近得到的协方差阵为:

统计线性化滤波器-噪声可叠加类型
其中,关于x,y的增广矩阵的均值和方差求法与EKF一致:

关于x的变换通式是一致的。
基于高斯逼近的统计线性化得到的x,y联合分布为:

该统计线性化滤波器的预测和更新过程如下:
统计线性化滤波器-噪声不可叠加类型
通过增广变换得到关于(x,y)均值和协方差:

关于x的变换通式为不可叠加的变换通式;
基于高斯逼近的统计线性化得到的x,y的分布如下:

不可叠加噪声的统计线性化(卡尔曼)滤波器的预测和更新步骤如下:


无迹卡尔曼滤波
噪声可叠加的无迹卡尔曼滤波
可叠加的变换通式均一致。
基于高斯逼近的无迹变换的x,y的分布为:

式中,子矩阵的计算表达式:
- 构造2n+1个sigma点:

式中,λ为比例系数,且由算法系数α, κ决定(这两个系数应该是在相关算法中确定):
- 将sigma点带入非线性函数g(⋅)中:
- 计算子矩阵:

其中,常值权值Wi(m),Wi(c)的定义为:
噪声可叠加的无迹卡尔曼滤波预测和更新步骤:
系统的动态模型和量测模型与先前一致。
预测部分:
1). 构造sigma点:

2). 将sigma点带入系统动态模型中:

3). 计算预测均值mk−和预测协方差Pk−:

更新部分:
1). 构造sigma点:

2). 将sigma点带入系统量测模型中:

3). 计算量测量预测均值mk−和预测协方差Pk−,以及状态与量测量之间的互协方差Ck:

4). 结合量测量yk,计算滤波增益Kk,滤波状态平均值mk和方差Pk:

噪声不可叠加的无迹卡尔曼滤波
不可叠加的变换通式如EKF中的一致。
基于高斯逼近的无迹变换的x,y的分布如下:

式中,子矩阵的计算方法如下:
设x,q的维数分别为n,nq,且n′=n +nq.
1). 构造增广随机变量 x=(x,q)的sigma点:

式中,λ′与λ的定义式一致,另外,增广均值和协方差定义式为:

2). 将sigma点带入非线性方程:

3). 计算预测均值μU,预测协方差SU和状态量和量测量之间的互协方差CU:

噪声不可叠加的无迹卡尔曼滤波:
预测步骤:
1). 构造增广随机变量 (xk−1,qk−1)的sigma点:

2). 将sigma点带入动态模型中:

3). 计算预测均值mk−,预测协方差Pk−:

更新步骤:
1). 构造增广随机变量 (xk,qk)的sigma点:

2). 将sigma点带入量测模型中:

3). 计算预测均值μk,预测协方差Sk和状态量和量测量之间的互协方差Ck:

4). 结合量测量yk,计算滤波增益Kk,滤波状态平均值mk和方差Pk:

本文参考贝叶斯滤波与平滑,作者萨日伽。太累了,不想去一一检验错误,如有疑问,请留言。