滤波估计理论(三)——扩展卡尔曼滤波器(Extended Kalman Filter)
在经典Kalman滤波的推导中,我们假设系统的动态模型和量测模型皆是线性的,因而可以基于Gaussian分布的线性化性质,直接推导出线性变换后的分布。但在实际生活中,线性模型是一个强假设,大多数的系统并不是线性的,其动态模型和量测模型通常通过一个非线性函数进行映射:
x
k
=
f
(
x
k
−
1
,
u
k
−
1
)
+
q
k
−
1
z
k
=
h
(
x
k
)
+
r
k
\begin{aligned} \bm{x}_k&=f\left(\bm{x}_{k-1},\bm{u}_{k-1}\right)+\bm{q}_{k-1}\\ \bm{z}_k&=h\left(\bm{x}_k\right)+\bm{r}_{k} \end{aligned}
xkzk=f(xk−1,uk−1)+qk−1=h(xk)+rk
由于Gaussian分布并没有任何的分线性映射性质,如何求解上述模型成为了一个难题。自然而然地,如果我们能有某些线性映射的组合去近似表示该非线性映射,那么这一难题就可以得到解决。
矢量函数的泰勒级数
我们知道任何一元函数都可以表示为无限连加的形式,即泰勒级数(Taylor Series),而对于矢量函数同样如此,这里直接给出矢量函数泰勒级数展开定义:
定理1:对于多元函数
y
=
g
(
x
)
,
x
∈
R
n
,
y
∈
R
m
\bm{y}=\bm{g}(\bm{x}),x\in\mathbb{R}^n,y\in\mathbb{R}^m
y=g(x),x∈Rn,y∈Rm,令
x
=
μ
+
δ
x
\bm{x}=\bm{\mu}+\delta\bm{x}
x=μ+δx,则
g
(
x
)
\bm{g}(\bm{x})
g(x)其在
μ
\bm{\mu}
μ点处的泰勒级数为:
g
(
x
)
=
g
(
μ
+
δ
x
)
≈
g
(
μ
)
+
J
(
μ
)
δ
x
+
1
2
∑
i
=
1
m
[
δ
x
T
H
i
(
μ
)
δ
x
]
u
i
+
⋯
(1)
\bm{g}(\bm{x})=\bm{g}(\bm{\mu}+\delta\bm{x})\approx\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}+\frac{1}{2}\sum\limits_{i=1}^m[\delta\bm{x}^T\bm{H}_i(\bm{\mu})\delta\bm{x}]\bm{u}_i+\cdots \tag{1}
g(x)=g(μ+δx)≈g(μ)+J(μ)δx+21i=1∑m[δxTHi(μ)δx]ui+⋯(1)
式中
u
i
=
[
0
,
⋯
,
1
,
⋯
,
0
]
T
\bm{u}_i=[0,\cdots,1,\cdots,0]^T
ui=[0,⋯,1,⋯,0]T为第
i
i
i行为
1
1
1的单位矢量;
J
(
μ
)
\bm{J}(\bm{\mu})
J(μ)表示
g
(
x
)
\bm{g}(\bm{x})
g(x)对变量
x
\bm{x}
x的Jacobian矩阵,对应位置处元素为:
[
J
(
μ
)
]
j
,
j
′
=
∂
g
j
(
x
)
∂
x
j
′
∣
x
=
μ
[\bm{J}(\bm{\mu})]_{j,j'}=\left.\frac{\partial g_j(\bm{x})}{\partial x_{j'}}\right|_{\bm{x}=\bm{\mu}}
[J(μ)]j,j′=∂xj′∂gj(x)∣∣∣∣x=μ
式中 g j ( x ) g_j(\bm{x}) gj(x)为矢量函数 g ( x ) = [ g 1 ( x ) , ⋯ , g m ( x ) ] T \bm{g}(x)=[g_1(\bm{x}),\cdots,g_m(\bm{x})]^T g(x)=[g1(x),⋯,gm(x)]T中第 j j j行所表示的实值函数; x j ′ x_{j'} xj′为变量 x = [ x 1 , ⋯ , x n ] T \bm{x}=[x_1,\cdots,x_n]^T x=[x1,⋯,xn]T中第 j ′ j' j′行对应的元素。
H
i
(
μ
)
\bm{H}_i(\bm{\mu})
Hi(μ)表示对变量
x
\bm{x}
x的Hessian矩阵,对应位置处元素为:
[
H
i
(
μ
)
]
j
,
j
′
=
∂
2
g
i
(
x
)
∂
x
j
∂
x
j
′
∣
x
=
μ
[\bm{H}_i(\bm{\mu})]_{j,j'}=\left.\frac{\partial^2g_i(\bm{x})}{\partial x_j\partial x_{j'}}\right|_{\bm{x}=\bm{\mu}}
[Hi(μ)]j,j′=∂xj∂xj′∂2gi(x)∣∣∣∣x=μ
式中 g i ( x ) g_i(\bm{x}) gi(x)、 x j x_j xj和 x j ′ x_{j'} xj′的含义参照Jacobian矩阵。
注:这里需要注意的是与Jacobian矩阵不同,Hessian要求被求导的函数必须是一个实值函数,因此这里我们说 H i ( μ ) \bm{H}_i(\bm{\mu}) Hi(μ)而非 H ( μ ) \bm{H}(\bm{\mu}) H(μ)是Hessian矩阵。而Jacobian矩阵的被求导函数既可以为矢量函数也可以为实值函数,当Jacobian矩阵的求导函数为实值函数时,Jacobian矩阵将退化为梯度矩阵。
高斯分布非线性变换的线性近似
假设现在有一个高斯随机变量
x
∼
N
(
μ
,
P
)
\bm{x}\sim N(\bm{\mu},\bm{P})
x∼N(μ,P)和对应的非线性变换
y
=
g
(
x
)
\bm{y}=\bm{g}(\bm{x})
y=g(x),利用式(1)对
g
(
x
)
\bm{g}(\bm{x})
g(x)进行泰勒展开并取其前可获得其对应的线性近似如下:
g
(
x
)
≈
g
(
μ
)
+
J
(
μ
)
δ
x
\bm{g}(\bm{x})\approx\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}
g(x)≈g(μ)+J(μ)δx
进而可以获得线性近似后的分布如下:
E
[
g
(
x
)
]
≈
E
[
g
(
μ
)
+
J
(
μ
)
δ
x
]
=
g
(
μ
)
+
J
(
μ
)
E
[
δ
x
]
=
g
(
μ
)
C
o
v
[
g
(
x
)
]
≈
E
[
(
g
(
x
)
−
E
[
g
(
x
)
]
)
(
g
(
x
)
−
E
[
g
(
x
)
]
)
T
]
≈
E
[
(
g
(
x
)
−
g
(
μ
)
)
(
g
(
x
)
−
g
(
μ
)
)
T
]
=
E
[
(
g
(
μ
)
+
J
(
μ
)
δ
x
−
g
(
μ
)
)
(
g
(
μ
)
+
J
(
μ
)
δ
x
−
g
(
μ
)
)
T
]
=
E
[
(
J
(
μ
)
δ
x
)
(
J
(
μ
)
δ
x
)
T
]
=
J
(
μ
)
E
[
δ
x
δ
x
T
]
J
T
(
μ
)
=
J
(
μ
)
P
J
T
(
μ
)
(2)
\begin{aligned} E[\bm{g}(\bm{x})]&\approx E[\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}]\\ &=\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})E[\delta\bm{x}]\\ &=\bm{g}(\bm{\mu})\\ Cov[\bm{g}(\bm{x})]&\approx E[(\bm{g}(\bm{x})-E[\bm{g}(\bm{x})])(\bm{g}(\bm{x})-E[\bm{g}(\bm{x})])^T]\\ &\approx E[(\bm{g}(\bm{x})-\bm{g}(\bm{\mu}))(\bm{g}(\bm{x})-\bm{g}(\bm{\mu}))^T]\\ &=E[(\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}-\bm{g}(\bm{\mu}))(\bm{g}(\bm{\mu})+\bm{J}(\bm{\mu})\delta\bm{x}-\bm{g}(\bm{\mu}))^T]\\ &=E[(\bm{J}(\bm{\mu})\delta\bm{x})(\bm{J}(\bm{\mu})\delta\bm{x})^T]\\ &=\bm{J}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T]\bm{J}^T(\bm{\mu})\\ &=\bm{J}(\bm{\mu})\bm{P}\bm{J}^T(\bm{\mu})\\ \end{aligned} \tag{2}
E[g(x)]Cov[g(x)]≈E[g(μ)+J(μ)δx]=g(μ)+J(μ)E[δx]=g(μ)≈E[(g(x)−E[g(x)])(g(x)−E[g(x)])T]≈E[(g(x)−g(μ))(g(x)−g(μ))T]=E[(g(μ)+J(μ)δx−g(μ))(g(μ)+J(μ)δx−g(μ))T]=E[(J(μ)δx)(J(μ)δx)T]=J(μ)E[δxδxT]JT(μ)=J(μ)PJT(μ)(2)
记
g
~
(
x
)
=
[
x
g
(
x
)
]
T
\tilde{\bm{g}}(\bm{x})=[\begin{array}{c}\bm{x} &\bm{g}(\bm{x})\end{array}]^T
g~(x)=[xg(x)]T,进而我们可以得到
x
\bm{x}
x和
g
(
x
)
\bm{g}(\bm{x})
g(x)的联合分布为:
E
[
g
~
(
μ
)
]
≈
[
μ
g
(
μ
)
]
C
o
v
[
g
~
(
μ
)
]
≈
J
~
(
μ
)
P
J
T
~
(
μ
)
=
[
I
J
(
μ
)
]
P
[
I
J
(
μ
)
]
T
=
[
P
P
J
T
(
μ
)
J
(
μ
)
P
J
(
μ
)
P
J
T
(
μ
)
]
(3)
\begin{aligned} E[\tilde{\bm{g}}(\bm{\mu})]&\approx\left[\begin{array}{c}\bm{\mu}\\\bm{g}(\bm{\mu})\end{array}\right]\\ Cov[\tilde{\bm{g}}(\bm{\mu})]&\approx\tilde{\bm{J}}(\bm{\mu})\bm{P}\tilde{\bm{J}^T}(\bm{\mu})\\ &=\left[\begin{array}{c}\bm{I}\\\bm{J}(\bm{\mu})\end{array}\right]\bm{P}\left[\begin{array}{c}\bm{I}\\\bm{J}(\bm{\mu})\end{array}\right]^T\\ &=\left[\begin{matrix} \bm{P} & \bm{P}\bm{J}^T(\bm{\mu})\\ \bm{J}(\bm{\mu})\bm{P} & \bm{J}(\bm{\mu})\bm{P}\bm{J}^T(\bm{\mu}) \end{matrix}\right] \end{aligned} \tag{3}
E[g~(μ)]Cov[g~(μ)]≈[μg(μ)]≈J~(μ)PJT~(μ)=[IJ(μ)]P[IJ(μ)]T=[PJ(μ)PPJT(μ)J(μ)PJT(μ)](3)
由于
g
(
x
)
\bm{g}(\bm{x})
g(x)是由
x
\bm{x}
x变换而来,其分布相当于条件分布
p
(
g
(
x
)
∣
x
)
p(\bm{g}(\bm{x})|\bm{x})
p(g(x)∣x),式(3)实际上和我们在Kalman滤波推导中提到过的由条件分布求解联合分布的公式是完全一致的。
一阶近似线性近似EKF
加性噪声模型
在状态空间模型中,很多时候我们会假设控制变量 u k \bm{u}_k uk为零,而只考虑系统本身的状态变量 x k \bm{x}_k xk和噪声 q k \bm{q}_k qk;又或者如量测方程一般,本身就并不包含控制变量。此时无论是预测方程还是量测方程都为 y = g ( x ) + q \bm{y}=\bm{g}(\bm{x})+\bm{q} y=g(x)+q形式,由于噪声变量 q \bm{q} q是附加在原状态变量上的,这一类模型统称为加性噪声模型。
在加性噪声模型下我们有:
y
=
g
(
x
)
+
q
x
∼
N
(
μ
,
P
)
q
∼
M
(
0
,
Q
)
\begin{aligned} \bm{y}&=\bm{g}(\bm{x})+\bm{q}\\ \bm{x}&\sim N(\bm{\mu},\bm{P})\\ \bm{q}&\sim M(\bm{0},\bm{Q}) \end{aligned}
yxq=g(x)+q∼N(μ,P)∼M(0,Q)
对联合分布
g
~
(
x
)
=
[
x
g
(
x
)
]
T
\tilde{\bm{g}}(\bm{x})=[\begin{array}{c}\bm{x} &\bm{g}(\bm{x})\end{array}]^T
g~(x)=[xg(x)]T取一阶泰勒近似有:
g
~
(
x
)
≈
[
μ
+
I
δ
x
g
(
μ
)
+
q
+
J
(
μ
)
δ
x
]
\tilde{\bm{g}}(\bm{x})\approx\left[\begin{array}{c}\bm{\mu}+\bm{I}\delta\bm{x}\\\bm{g}(\bm{\mu})+\bm{q}+\bm{J}(\bm{\mu})\delta\bm{x}\end{array}\right]
g~(x)≈[μ+Iδxg(μ)+q+J(μ)δx]
对其求取均值,其中已知
q
\bm{q}
q和所有
δ
x
\delta\bm{x}
δx项均值均为
0
\bm{0}
0,有:
E
[
g
~
(
x
)
]
≈
[
μ
+
E
[
I
δ
x
]
g
(
μ
)
+
E
[
q
]
+
E
[
J
(
μ
)
δ
x
]
]
=
[
μ
g
(
μ
)
]
\begin{aligned} E[\tilde{\bm{g}}(\bm{x})]&\approx\left[\begin{array}{c}\bm{\mu}+E[\bm{I}\delta\bm{x}]\\\bm{g}(\bm{\mu})+E[\bm{q}]+E[\bm{J}(\bm{\mu})\delta\bm{x}]\end{array}\right]\\ &=\left[\begin{array}{c}\bm{\mu}\\\bm{g}(\bm{\mu})\end{array}\right] \end{aligned}
E[g~(x)]≈[μ+E[Iδx]g(μ)+E[q]+E[J(μ)δx]]=[μg(μ)]
将上述两式同时带入方差的定义中有:
C
o
v
[
g
~
(
x
)
]
≈
E
[
(
g
~
(
x
)
−
E
[
g
~
(
x
)
]
)
(
g
~
(
x
)
−
E
[
g
~
(
x
)
]
)
T
]
=
E
[
[
μ
+
I
δ
x
−
μ
g
(
μ
)
+
q
+
J
(
μ
)
δ
x
−
g
(
μ
)
]
[
μ
+
I
δ
x
−
μ
g
(
μ
)
+
q
+
J
(
μ
)
δ
x
−
g
(
μ
)
]
T
]
=
[
E
[
δ
x
δ
x
T
]
E
[
δ
x
δ
x
T
]
J
T
(
μ
)
J
(
μ
)
E
[
δ
x
δ
x
T
]
J
(
μ
)
E
[
δ
x
δ
x
T
]
J
T
(
μ
)
+
E
[
δ
q
δ
q
T
]
]
=
[
P
P
J
T
(
μ
)
J
(
μ
)
P
J
(
μ
)
P
J
T
(
μ
)
+
Q
]
\begin{aligned} Cov[\tilde{\bm{g}}(\bm{x})]&\approx E[\left(\tilde{\bm{g}}(\bm{x})-E[\tilde{\bm{g}}(\bm{x})]\right)\left(\tilde{\bm{g}}(\bm{x})-E[\tilde{\bm{g}}(\bm{x})]\right)^T]\\ &=E\left[\left[\begin{array}{c}\bm{\mu}+\bm{I}\delta\bm{x}-\bm{\mu}\\ \bm{g}(\bm{\mu})+\bm{q}+\bm{J}(\bm{\mu})\delta\bm{x}-\bm{g}(\bm{\mu})\end{array}\right]\left[\begin{array}{c}\bm{\mu}+\bm{I}\delta\bm{x}-\bm{\mu}\\ \bm{g}(\bm{\mu})+\bm{q}+\bm{J}(\bm{\mu})\delta\bm{x}-\bm{g}(\bm{\mu})\end{array}\right]^T\right]\\ &=\left[\begin{matrix} E[\delta\bm{x}\delta\bm{x}^T] & E[\delta\bm{x}\delta\bm{x}^T]\bm{J}^T(\bm{\mu})\\ \bm{J}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T] & \bm{J}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T]\bm{J}^T(\bm{\mu})+E[\delta\bm{q}\delta\bm{q}^T] \end{matrix}\right]\\ &=\left[\begin{matrix} \bm{P} & \bm{P}\bm{J}^T(\bm{\mu})\\ \bm{J}(\bm{\mu})\bm{P} & \bm{J}(\bm{\mu})\bm{P}\bm{J}^T(\bm{\mu})+\bm{Q} \end{matrix}\right] \end{aligned}
Cov[g~(x)]≈E[(g~(x)−E[g~(x)])(g~(x)−E[g~(x)])T]=E[[μ+Iδx−μg(μ)+q+J(μ)δx−g(μ)][μ+Iδx−μg(μ)+q+J(μ)δx−g(μ)]T]=[E[δxδxT]J(μ)E[δxδxT]E[δxδxT]JT(μ)J(μ)E[δxδxT]JT(μ)+E[δqδqT]]=[PJ(μ)PPJT(μ)J(μ)PJT(μ)+Q]
现在再回到我们的状态估计问题中来,在加性噪声模型下,待估计系统的状态空间模型为:
{
x
k
=
f
(
x
k
−
1
)
+
q
k
−
1
z
k
=
h
(
x
k
)
+
r
k
\left\{ \begin{aligned} \bm{x}_k&=\bm{f}(\bm{x}_{k-1})+\bm{q}_{k-1}\\ \bm{z}_k&=\bm{h}(\bm{x}_k)+\bm{r}_k \end{aligned}\right.
{xkzk=f(xk−1)+qk−1=h(xk)+rk
类比Kalman滤波的推导过程,假设我们有了
k
k
k时刻的先验分布
p
(
x
k
−
1
∣
z
1
:
k
−
1
)
∼
N
(
μ
k
−
1
,
P
k
−
1
)
p(\bm{x}_{k-1}|\bm{z}_{1:k-1})\sim N(\bm{\mu}_{k-1},\bm{P}_{k-1})
p(xk−1∣z1:k−1)∼N(μk−1,Pk−1)和过程噪声
p
(
q
k
−
1
)
∼
N
(
0
,
Q
k
−
1
)
p(\bm{q}_{k-1})\sim N(\bm{0},\bm{Q}_{k-1})
p(qk−1)∼N(0,Qk−1),那么根据状态转移方程我们很容易得到联合分布
p
(
x
k
,
x
k
−
1
∣
z
1
:
k
−
1
)
p(\bm{x}_k,\bm{x}_{k-1}|\bm{z}_{1:k-1})
p(xk,xk−1∣z1:k−1)为:
p
(
x
k
,
x
k
−
1
∣
z
1
:
k
−
1
)
∼
N
(
f
(
μ
k
−
1
)
,
F
(
μ
k
−
1
)
P
k
−
1
F
T
(
μ
k
−
1
)
)
+
Q
k
−
1
)
p(\bm{x}_k,\bm{x}_{k-1}|\bm{z}_{1:k-1})\sim N(\bm{f}(\bm{\mu}_{k-1}),\bm{F}(\bm{\mu}_{k-1})\bm{P}_{k-1}\bm{F}^T(\bm{\mu}_{k-1}))+\bm{Q}_{k-1})
p(xk,xk−1∣z1:k−1)∼N(f(μk−1),F(μk−1)Pk−1FT(μk−1))+Qk−1)
式中,
F
(
μ
)
\bm{F}(\bm{\mu})
F(μ)为对应的Jacobian矩阵。同样我们简记
p
(
x
k
,
x
k
−
1
∣
z
1
:
k
−
1
)
∼
N
(
μ
^
k
,
P
^
k
)
p(\bm{x}_k,\bm{x}_{k-1}|\bm{z}_{1:k-1})\sim N(\hat{\bm{\mu}}_k,\hat{\bm{P}}_k)
p(xk,xk−1∣z1:k−1)∼N(μ^k,P^k),根据量测方程我们可以写出条件概率
p
(
z
k
∣
x
k
)
∼
N
(
H
k
x
k
,
R
k
)
p(\bm{z}_k|\bm{x}_k)\sim N(\bm{H}_k\bm{x}_k,\bm{R}_k)
p(zk∣xk)∼N(Hkxk,Rk),进而得到联合概率
p
(
x
k
,
z
k
∣
z
1
:
k
−
1
)
p(\bm{x}_k,\bm{z}_k|\bm{z}_{1:k-1})
p(xk,zk∣z1:k−1)为:
p
(
x
k
,
z
k
∣
z
1
:
k
−
1
)
∼
N
(
[
μ
^
k
h
(
μ
^
k
)
]
,
[
P
^
k
P
^
k
H
T
(
μ
^
k
)
H
(
μ
^
k
)
P
^
k
H
(
μ
^
k
)
P
^
k
H
T
(
μ
^
k
)
+
R
k
]
)
p(\bm{x}_k,\bm{z}_k|\bm{z}_{1:k-1})\sim N(\left[\begin{array}{c}\hat{\bm{\mu}}_k\\ \bm{h}(\hat{\bm{\mu}}_k) \end{array}\right],\begin{bmatrix} \hat{\bm{P}}_k & \hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k)\\ \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k & \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k) +\bm{R}_k \end{bmatrix})
p(xk,zk∣z1:k−1)∼N([μ^kh(μ^k)],[P^kH(μ^k)P^kP^kHT(μ^k)H(μ^k)P^kHT(μ^k)+Rk])
进而我们可以得到条件概率
p
(
x
k
,
z
k
∣
z
1
:
k
−
1
)
p(\bm{x}_k,\bm{z}_k|\bm{z}_{1:k-1})
p(xk,zk∣z1:k−1)为:
p
(
x
k
∣
z
k
,
z
1
:
k
−
1
)
∼
N
(
μ
~
k
,
P
~
k
)
μ
~
k
=
μ
^
k
+
P
^
k
H
T
(
μ
^
k
)
[
H
(
μ
^
k
)
P
^
k
H
T
(
μ
^
k
)
+
R
k
]
−
1
(
z
k
−
h
(
μ
^
k
)
P
~
k
=
P
^
k
−
P
^
k
H
T
(
μ
^
k
)
[
H
(
μ
^
k
)
P
^
k
H
T
(
μ
^
k
)
+
R
k
]
−
1
H
(
μ
^
k
)
P
^
k
\begin{aligned} &p(\bm{x}_k|\bm{z}_k,\bm{z}_{1:k-1})\sim N(\tilde{\bm{\mu}}_k,\tilde{\bm{P}}_k)\\ &\tilde{\bm{\mu}}_k=\hat{\bm{\mu}}_k+\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k)[ \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k) +\bm{R}_k]^{-1}(\bm{z}_k-\bm{h}(\hat{\bm{\mu}}_k)\\ &\tilde{\bm{P}}_k=\hat{\bm{P}}_k-\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k)[ \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k) +\bm{R}_k]^{-1}\bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k \end{aligned}
p(xk∣zk,z1:k−1)∼N(μ~k,P~k)μ~k=μ^k+P^kHT(μ^k)[H(μ^k)P^kHT(μ^k)+Rk]−1(zk−h(μ^k)P~k=P^k−P^kHT(μ^k)[H(μ^k)P^kHT(μ^k)+Rk]−1H(μ^k)P^k
至此我们就得到了加性噪声模型下的一阶近似EKF算法,整理如下:
一
阶
近
似
E
K
F
(
加
性
)
{
一
步
预
测
{
x
^
k
=
f
(
μ
k
−
1
)
P
^
k
=
F
(
μ
k
−
1
)
P
k
−
1
F
T
(
μ
k
−
1
)
)
+
Q
k
−
1
量
测
更
新
{
K
=
P
^
k
H
T
(
μ
^
k
)
[
H
(
μ
^
k
)
P
^
k
H
T
(
μ
^
k
)
+
R
k
]
−
1
x
~
k
=
μ
^
k
+
K
(
z
k
−
h
(
μ
^
k
)
)
P
~
k
=
P
^
k
−
K
H
(
μ
^
k
)
P
^
k
一阶近似EKF(加性)\left\{ \begin{aligned} 一步预测&\left\{\begin{aligned} \hat{\bm{x}}_k &= \bm{f}(\bm{\mu}_{k-1}) \\ \hat{\bm{P}}_k &= \bm{F}(\bm{\mu}_{k-1})\bm{P}_{k-1}\bm{F}^T(\bm{\mu}_{k-1}))+\bm{Q}_{k-1} \end{aligned}\right.\\ 量测更新&\left\{\begin{aligned} \bm{K} &= \hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k)[ \bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k\bm{H}^T(\hat{\bm{\mu}}_k) +\bm{R}_k]^{-1}\\ \tilde{\bm{x}}_k &= \hat{\bm{\mu}}_k+\bm{K}(\bm{z}_k-\bm{h}(\hat{\bm{\mu}}_k))\\ \tilde{\bm{P}}_k &= \hat{\bm{P}}_k-\bm{K}\bm{H}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k \end{aligned}\right. \end{aligned} \right.
一阶近似EKF(加性)⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧一步预测量测更新{x^kP^k=f(μk−1)=F(μk−1)Pk−1FT(μk−1))+Qk−1⎩⎪⎪⎨⎪⎪⎧Kx~kP~k=P^kHT(μ^k)[H(μ^k)P^kHT(μ^k)+Rk]−1=μ^k+K(zk−h(μ^k))=P^k−KH(μ^k)P^k
非加性噪声模型
而如果在状态空间模型中控制变量 u k \bm{u}_k uk不为零,此时预测方程会变为 y = g ( x , q ) \bm{y}=\bm{g}(\bm{x},\bm{q}) y=g(x,q)形式。此时噪声变量 q \bm{q} q是和状态变量 x \bm{x} x同为 g ( x ) \bm{g}(\bm{x}) g(x)的自变量,两者显然并不具有可加性,因此这一类模型统称为非加性噪声模型。
对于非加性噪声模型来说,其泰勒级数在式(1)的基础上需要进行一定改动,这里直接给出结论:
定理2:假设
g
(
x
,
u
)
∈
R
n
\bm{g}(\bm{x},\bm{u})\in\mathbb{R}^n
g(x,u)∈Rn为关于自变量为
x
∈
R
n
\bm{x}\in\mathbb{R}^n
x∈Rn和
u
∈
R
m
\bm{u}\in\mathbb{R}^m
u∈Rm的矢量函数,则
g
(
x
,
u
)
\bm{g}(\bm{x},\bm{u})
g(x,u)在点
(
x
0
,
u
0
)
(\bm{x}_0,\bm{u}_0)
(x0,u0)处的泰勒级数为:
g
(
x
,
u
)
=
g
(
x
0
,
u
0
)
+
J
x
(
x
0
,
u
0
)
δ
x
+
J
u
(
x
0
,
u
0
)
δ
u
+
⋯
\bm{g}(\bm{x},\bm{u})=\bm{g}(\bm{x}_0,\bm{u}_0)+\bm{J}_\bm{x}(\bm{x}_0,\bm{u}_0)\delta\bm{x}+\bm{J}_\bm{u}(\bm{x}_0,\bm{u}_0)\delta\bm{u}+\cdots
g(x,u)=g(x0,u0)+Jx(x0,u0)δx+Ju(x0,u0)δu+⋯
那么,对于非线性变换
y
=
g
(
x
,
q
)
\bm{y}=\bm{g}(\bm{x},\bm{q})
y=g(x,q),
x
∼
N
(
μ
,
P
)
\bm{x}\sim N(\bm{\mu},\bm{P})
x∼N(μ,P),
q
∼
N
(
0
,
Q
)
\bm{q}\sim N(\bm{0},\bm{Q})
q∼N(0,Q),联合分布
g
~
(
x
)
=
[
x
g
(
x
,
q
)
]
T
\tilde{\bm{g}}(\bm{x})=[\begin{array}{cc}\bm{x}&\bm{g}(\bm{x},\bm{q})\end{array}]^T
g~(x)=[xg(x,q)]T,可以求得均值为:
E
[
g
~
(
x
)
]
=
[
E
[
x
]
E
[
g
(
μ
,
0
)
+
J
x
(
μ
,
0
)
δ
x
+
J
q
(
μ
,
0
)
δ
q
]
]
=
[
μ
g
(
μ
)
+
J
x
E
[
(
μ
)
δ
x
]
+
J
q
(
μ
)
E
[
δ
q
]
]
=
[
μ
g
(
μ
)
]
\begin{aligned} E[\tilde{\bm{g}}(\bm{x})]&=\left[\begin{array}{c}E[\bm{x}]\\ E[\bm{g}(\bm{\mu},\bm{0})+\bm{J}_\bm{x}(\bm{\mu},\bm{0})\delta\bm{x}+\bm{J}_\bm{q}(\bm{\mu},\bm{0})\delta\bm{q}]\end{array}\right]\\ &=\left[\begin{array}{c}\bm{\mu}\\ \bm{g}(\bm{\mu})+\bm{J}_\bm{x}E[(\bm{\mu})\delta\bm{x}]+\bm{J}_\bm{q}(\bm{\mu})E[\delta\bm{q}]\end{array}\right]\\ &=\left[\begin{array}{c}\bm{\mu}\\ \bm{g}(\bm{\mu})\end{array}\right]\\ \end{aligned}
E[g~(x)]=[E[x]E[g(μ,0)+Jx(μ,0)δx+Jq(μ,0)δq]]=[μg(μ)+JxE[(μ)δx]+Jq(μ)E[δq]]=[μg(μ)]
同样,参考加性噪声模型的方法求解方法有:
C
o
v
[
g
~
(
x
)
]
≈
E
[
(
g
~
(
x
)
−
E
[
g
~
(
x
)
]
)
(
g
~
(
x
)
−
E
[
g
~
(
x
)
]
)
T
]
=
E
[
[
δ
x
J
x
(
μ
)
δ
x
+
J
q
(
μ
)
δ
q
]
[
δ
x
J
x
(
μ
)
δ
x
+
J
q
(
μ
)
δ
q
]
T
]
=
[
E
[
δ
x
δ
x
T
]
E
[
δ
x
δ
x
T
]
J
x
T
(
μ
)
+
E
[
δ
x
δ
q
T
]
J
q
T
(
μ
)
J
x
(
μ
)
E
[
δ
x
δ
x
T
]
+
J
q
(
μ
)
E
[
δ
q
δ
x
T
]
J
x
(
μ
)
E
[
δ
x
δ
x
T
]
J
x
(
μ
)
+
J
q
(
μ
)
E
[
δ
q
δ
x
T
]
J
x
(
μ
)
+
J
x
(
μ
)
E
[
δ
x
δ
q
T
]
J
q
(
μ
)
+
J
q
(
μ
)
E
[
δ
q
δ
q
T
]
J
q
(
μ
)
]
=
[
P
P
J
x
T
(
μ
)
J
x
(
μ
)
P
J
x
(
μ
)
P
J
x
(
μ
)
+
J
q
(
μ
)
Q
J
q
(
μ
)
]
\footnotesize \begin{aligned} Cov[\tilde{\bm{g}}(\bm{x})]&\approx E[\left(\tilde{\bm{g}}(\bm{x})-E[\tilde{\bm{g}}(\bm{x})]\right)\left(\tilde{\bm{g}}(\bm{x})-E[\tilde{\bm{g}}(\bm{x})]\right)^T]\\ &=E\left[\left[\begin{array}{c}\delta\bm{x}\\ \bm{J}_\bm{x}(\bm{\mu})\delta\bm{x}+\bm{J}_\bm{q}(\bm{\mu})\delta\bm{q}\end{array}\right]\left[\begin{array}{c}\delta\bm{x}\\ \bm{J}_\bm{x}(\bm{\mu})\delta\bm{x}+\bm{J}_\bm{q}(\bm{\mu})\delta\bm{q}\end{array}\right]^T\right]\\ &=\begin{bmatrix} E[\delta\bm{x}\delta\bm{x}^T] & E[\delta\bm{x}\delta\bm{x}^T]\bm{J}_\bm{x}^T(\bm{\mu})+E[\delta\bm{x}\delta\bm{q}^T]\bm{J}_\bm{q}^T(\bm{\mu})\\ \bm{J}_\bm{x}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T]+\bm{J}_\bm{q}(\bm{\mu})E[\delta\bm{q}\delta\bm{x}^T] & \begin{aligned} &\bm{J}_\bm{x}(\bm{\mu})E[\delta\bm{x}\delta\bm{x}^T]\bm{J}_\bm{x}(\bm{\mu})+\bm{J}_\bm{q}(\bm{\mu})E[\delta\bm{q}\delta\bm{x}^T]\bm{J}_\bm{x}(\bm{\mu})+\\ &\bm{J}_\bm{x}(\bm{\mu})E[\delta\bm{x}\delta\bm{q}^T]\bm{J}_\bm{q}(\bm{\mu})+\bm{J}_\bm{q}(\bm{\mu})E[\delta\bm{q}\delta\bm{q}^T]\bm{J}_\bm{q}(\bm{\mu}) \end{aligned} \end{bmatrix}\\ &=\begin{bmatrix} \bm{P} & \bm{P}\bm{J}_\bm{x}^T(\bm{\mu})\\ \bm{J}_\bm{x}(\bm{\mu})\bm{P} & \bm{J}_\bm{x}(\bm{\mu})\bm{P}\bm{J}_\bm{x}(\bm{\mu})+\bm{J}_\bm{q}(\bm{\mu})\bm{Q}\bm{J}_\bm{q}(\bm{\mu}) \end{bmatrix} \end{aligned}
Cov[g~(x)]≈E[(g~(x)−E[g~(x)])(g~(x)−E[g~(x)])T]=E[[δxJx(μ)δx+Jq(μ)δq][δxJx(μ)δx+Jq(μ)δq]T]=⎣⎡E[δxδxT]Jx(μ)E[δxδxT]+Jq(μ)E[δqδxT]E[δxδxT]JxT(μ)+E[δxδqT]JqT(μ)Jx(μ)E[δxδxT]Jx(μ)+Jq(μ)E[δqδxT]Jx(μ)+Jx(μ)E[δxδqT]Jq(μ)+Jq(μ)E[δqδqT]Jq(μ)⎦⎤=[PJx(μ)PPJxT(μ)Jx(μ)PJx(μ)+Jq(μ)QJq(μ)]
上式最后一步化简中利用了
x
\bm{x}
x和
q
\bm{q}
q不相关的,互协方差
E
(
δ
x
δ
q
T
)
=
E
(
δ
q
δ
x
T
)
=
0
E(\delta\bm{x}\delta\bm{q}^T)=E(\delta\bm{q}\delta\bm{x}^T)=\bm{0}
E(δxδqT)=E(δqδxT)=0的性质。
在有了非加性噪声模型下的Gaussian变换公式后,我们同样可以按照Kalman滤波的推导方法推导如下所示非加性噪声模型下的一阶近似EKF
{
x
k
=
f
(
x
k
−
1
,
q
k
−
1
)
z
k
=
h
(
x
k
,
r
k
)
\left\{ \begin{aligned} \bm{x}_k&=\bm{f}(\bm{x}_{k-1}, \bm{q}_{k-1})\\ \bm{z}_k&=\bm{h}(\bm{x}_k,\bm{r}_k) \end{aligned}\right.
{xkzk=f(xk−1,qk−1)=h(xk,rk)
具体的推导步骤和加性噪声模型完全一致,这里不再赘述,直接给出结论:
一
阶
近
似
E
K
F
(
非
加
性
)
{
一
步
预
测
{
x
^
k
=
f
(
μ
k
−
1
,
0
)
P
^
k
=
F
x
(
μ
k
−
1
)
P
k
−
1
F
x
T
(
μ
k
−
1
)
+
F
q
(
μ
k
−
1
)
Q
k
−
1
F
q
T
(
μ
k
−
1
)
量
测
更
新
{
S
=
H
x
(
μ
k
−
1
)
P
k
−
1
H
x
T
(
μ
k
−
1
)
+
H
r
(
μ
k
−
1
)
Q
k
−
1
H
r
T
(
μ
k
−
1
)
K
=
P
^
k
H
x
T
(
μ
^
k
)
S
−
1
x
~
k
=
μ
^
k
+
K
(
z
k
−
h
(
μ
^
k
,
0
)
)
P
~
k
=
P
^
k
−
K
H
x
(
μ
^
k
)
P
^
k
\footnotesize 一阶近似EKF(非加性)\left\{ \begin{aligned} 一步预测&\left\{\begin{aligned} \hat{\bm{x}}_k &= \bm{f}(\bm{\mu}_{k-1},\bm{0}) \\ \hat{\bm{P}}_k &= \bm{F}_\bm{x}(\bm{\mu}_{k-1})\bm{P}_{k-1}\bm{F}_\bm{x}^T(\bm{\mu}_{k-1})+\bm{F}_\bm{q}(\bm{\mu}_{k-1})\bm{Q}_{k-1}\bm{F}_\bm{q}^T(\bm{\mu}_{k-1}) \end{aligned}\right.\\ 量测更新&\left\{\begin{aligned} \bm{S} &= \bm{H}_\bm{x}(\bm{\mu}_{k-1})\bm{P}_{k-1}\bm{H}_\bm{x}^T(\bm{\mu}_{k-1})+\bm{H}_\bm{r}(\bm{\mu}_{k-1})\bm{Q}_{k-1}\bm{H}_\bm{r}^T(\bm{\mu}_{k-1})\\ \bm{K} &= \hat{\bm{P}}_k\bm{H}_{\bm{x}}^T(\hat{\bm{\mu}}_k)\bm{S}^{-1}\\ \tilde{\bm{x}}_k &= \hat{\bm{\mu}}_k+\bm{K}(\bm{z}_k-\bm{h}(\hat{\bm{\mu}}_k,\bm{0 }))\\ \tilde{\bm{P}}_k &= \hat{\bm{P}}_k-\bm{K}\bm{H}_{\bm{x}}(\hat{\bm{\mu}}_k)\hat{\bm{P}}_k \end{aligned}\right. \end{aligned} \right.
一阶近似EKF(非加性)⎩⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎧一步预测量测更新{x^kP^k=f(μk−1,0)=Fx(μk−1)Pk−1FxT(μk−1)+Fq(μk−1)Qk−1FqT(μk−1)⎩⎪⎪⎨⎪⎪⎧SKx~kP~k=Hx(μk−1)Pk−1HxT(μk−1)+Hr(μk−1)Qk−1HrT(μk−1)=P^kHxT(μ^k)S−1=μ^k+K(zk−h(μ^k,0))=P^k−KHx(μ^k)P^k
式中, F i ( μ k − 1 , 0 ) , i = x , q \bm{F}_\bm{i}(\bm{\mu}_{k-1},\bm{0}),\bm{i}={\bm{x},\bm{q}} Fi(μk−1,0),i=x,q和 H i ( μ ^ k , 0 ) , i = x , q \bm{H}_\bm{i}(\hat{\bm{\mu}}_k,\bm{0}),\bm{i}={\bm{x},\bm{q}} Hi(μ^k,0),i=x,q分别为状态转移函数 f ( x , q ) \bm{f}(\bm{x},\bm{q}) f(x,q)和量测函数 h ( x , r ) \bm{h}(\bm{x},\bm{r}) h(x,r)在对应点处的Jacobian矩阵。
总结
除了上述两种一阶近似EKF之外,还有一种取泰勒级数二次项的二阶近似EKF,但其公式推导复杂,计算资源消耗较大,一般应用较少。对于大多数工业应用来说,一阶近似EKF的性能已完全能够满足我们的需求,因此这里对于二阶EKF略过不提,感兴趣的可自行推导。