本文是滤波算法_扩展卡尔曼滤波(EKF, Extended Kalman filter)_全网最详细的数学推导_Part1的延续。
3、卡尔曼增益推导
回顾标准卡尔曼滤波中 模型估计和测量估计进行数据融合的方程(后验估计方程):
x
^
k
=
x
^
k
−
+
K
k
(
z
k
−
H
x
^
k
−
)
{\mathbf{\hat x}}_k^{} = {\mathbf{\hat x}}_k^ - + {K_k}\left( {{{\mathbf{z}}_k} - {\mathbf{H\hat x}}_k^ - } \right)
x^k=x^k−+Kk(zk−Hx^k−)
类似地:扩展卡尔曼滤波的后验估计方程定义如下:
x
^
k
≜
x
^
k
−
+
K
k
(
z
k
−
h
(
x
^
k
−
,
0
)
)
=
x
^
k
−
+
K
k
(
z
k
−
z
^
k
−
)
{\mathbf{\hat x}}_k^{} \triangleq {\mathbf{\hat x}}_k^ - + {K_k}\left( {{{\mathbf{z}}_k} - h\left( {{\mathbf{\hat x}}_k^ - ,{\mathbf{0}}} \right)} \right) = {\mathbf{\hat x}}_k^ - + {K_k}\left( {{{\mathbf{z}}_k} - {\mathbf{\hat z}}_k^ - } \right)
x^k≜x^k−+Kk(zk−h(x^k−,0))=x^k−+Kk(zk−z^k−)
在上述的定义中,
h
(
x
^
k
−
,
0
)
h\left( {{\mathbf{\hat x}}_k^ - ,{\mathbf{0}}} \right)
h(x^k−,0)与标准卡尔曼滤波后验估计方程中的
H
x
^
k
−
{\mathbf{H\hat x}}_k^ -
Hx^k−代表相同的含义。
与标准卡尔曼滤波类似,现在的问题也是 K k {K_k} Kk应该如何设计?
与标准卡尔曼滤波的推导过程类似,首先定义估计误差向量为:
e
k
=
x
k
−
x
^
k
{{\mathbf{e}}_k} = {{\mathbf{x}}_k} - {\mathbf{\hat x}}_k^{}
ek=xk−x^k,
p
(
e
k
)
∼
(
0
,
P
k
)
p\left( {{{\mathbf{e}}_k}} \right) \sim \left( {{\mathbf{0}},{{\mathbf{P}}_k}} \right)
p(ek)∼(0,Pk),要想
x
^
k
→
x
k
{\mathbf{\hat x}}_k^{} \to {{\mathbf{x}}_k}
x^k→xk,就需要令误差
e
k
=
x
k
−
x
^
k
{{\mathbf{e}}_k} = {{\mathbf{x}}_k} - {\mathbf{\hat x}}_k^{}
ek=xk−x^k的方差最小,方差越小,就越接近于期望值,而我们当然期望估计误差向量为0了,即:
E
(
e
k
)
=
0
E\left( {{{\mathbf{e}}_k}} \right) = 0
E(ek)=0。 同样地,与标准卡尔曼滤波的推导类似,估计误差向量的方差最小,即是估计误差协方差矩阵
P
k
{{{\mathbf{P}}_k}}
Pk的迹
t
r
(
P
k
)
=
σ
e
1
2
+
σ
e
2
2
+
⋯
σ
e
n
2
tr\left( {{{\mathbf{P}}_k}} \right) = \sigma _{{e_1}}^2 + \sigma _{{e_2}}^2 + \cdots \sigma _{{e_n}}^2
tr(Pk)=σe12+σe22+⋯σen2最小。
P
k
=
E
(
e
k
e
k
T
)
=
E
[
(
x
k
−
x
^
k
)
(
x
k
−
x
^
k
)
T
]
{{\mathbf{P}}_k} = E\left( {{{\mathbf{e}}_k}{\mathbf{e}}_k^T} \right) = E\left[ {\left( {{{\mathbf{x}}_k} - {\mathbf{\hat x}}_k^{}} \right){{\left( {{{\mathbf{x}}_k} - {\mathbf{\hat x}}_k^{}} \right)}^T}} \right]
Pk=E(ekekT)=E[(xk−x^k)(xk−x^k)T]
在标准卡尔曼滤波的那篇博客我已经推导过上式的结论了。
明确目标后,下面正式开始扩展卡尔曼滤波的Kalman Gain
K
k
{K_k}
Kk求解。
首先化简
x
k
−
x
^
k
{{\mathbf{x}}_k} - {\mathbf{\hat x}}_k^{}
xk−x^k,将
x
k
=
x
^
k
−
+
A
k
(
x
k
−
1
−
x
^
k
−
1
)
+
W
k
w
k
−
1
{{\mathbf{x}}_k}{\mathbf{ = \hat x}}_k^ - + {{\mathbf{A}}_k}\left( {{{\mathbf{x}}_{k - 1}} - {{{\mathbf{\hat x}}}_{k - 1}}} \right) + {{\mathbf{W}}_k}{{\mathbf{w}}_{k - 1}}
xk=x^k−+Ak(xk−1−x^k−1)+Wkwk−1与
x
^
k
=
x
^
k
−
+
K
k
(
z
k
−
z
^
k
−
)
{\mathbf{\hat x}}_k^{} = {\mathbf{\hat x}}_k^ - + {K_k}\left( {{{\mathbf{z}}_k} - {\mathbf{\hat z}}_k^ - } \right)
x^k=x^k−+Kk(zk−z^k−)代入:
x
k
−
x
^
k
=
[
x
^
k
−
+
A
k
(
x
k
−
1
−
x
^
k
−
1
)
+
W
k
w
k
−
1
]
−
[
x
^
k
−
+
K
k
(
z
k
−
z
^
k
−
)
]
=
A
k
(
x
k
−
1
−
x
^
k
−
1
)
+
W
k
w
k
−
1
−
K
k
(
z
k
−
z
^
k
−
)
\begin{aligned} {{\bf{x}}_k} - {\bf{\hat x}}_k^{} &= \left[ {{\bf{\hat x}}_k^ - + {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}}} \right] - \left[ {{\bf{\hat x}}_k^ - + {K_k}\left( {{{\bf{z}}_k} - {\bf{\hat z}}_k^ - } \right)} \right]\\\\ &= {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}\left( {{{\bf{z}}_k} - {\bf{\hat z}}_k^ - } \right) \end{aligned}
xk−x^k=[x^k−+Ak(xk−1−x^k−1)+Wkwk−1]−[x^k−+Kk(zk−z^k−)]=Ak(xk−1−x^k−1)+Wkwk−1−Kk(zk−z^k−)
进一步将 z k = z ^ k − + H k ⋅ ( x k − x ^ k − ) + V k v k {{\bf{z}}_k} = {\bf{\hat z}}_k^ - + {{\bf{H}}_k} \cdot \left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right) + {{\bf{V}}_k}{{\bf{v}}_k} zk=z^k−+Hk⋅(xk−x^k−)+Vkvk代入:
x k − x ^ k = A k ( x k − 1 − x ^ k − 1 ) + W k w k − 1 − K k { [ z ^ k − + H k ⋅ ( x k − x ^ k − ) + V k v k ] − z ^ k − } = A k ( x k − 1 − x ^ k − 1 ) + W k w k − 1 − K k [ H k ⋅ ( x k − x ^ k − ) + V k v k ] \begin{aligned} {{\bf{x}}_k} - {\bf{\hat x}}_k^{} &= {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}\left\{ {\left[ {{\bf{\hat z}}_k^ - + {{\bf{H}}_k} \cdot \left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right) + {{\bf{V}}_k}{{\bf{v}}_k}} \right] - {\bf{\hat z}}_k^ - } \right\}\\\\ &= {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}\left[ {{{\bf{H}}_k} \cdot \left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right) + {{\bf{V}}_k}{{\bf{v}}_k}} \right] \end{aligned} xk−x^k=Ak(xk−1−x^k−1)+Wkwk−1−Kk{[z^k−+Hk⋅(xk−x^k−)+Vkvk]−z^k−}=Ak(xk−1−x^k−1)+Wkwk−1−Kk[Hk⋅(xk−x^k−)+Vkvk]
不必惊讶, 下面进一步再将 x k = x ^ k − + A k ( x k − 1 − x ^ k − 1 ) + W k w k − 1 {{\mathbf{x}}_k}{\mathbf{ = \hat x}}_k^ - + {{\mathbf{A}}_k}\left( {{{\mathbf{x}}_{k - 1}} - {{{\mathbf{\hat x}}}_{k - 1}}} \right) + {{\mathbf{W}}_k}{{\mathbf{w}}_{k - 1}} xk=x^k−+Ak(xk−1−x^k−1)+Wkwk−1代入:
x k − x ^ k = A k ( x k − 1 − x ^ k − 1 ) + W k w k − 1 − K k { H k [ x ^ k − + A k ( x k − 1 − x ^ k − 1 ) + W k w k − 1 − x ^ k − ] + V k v k } = A k ( x k − 1 − x ^ k − 1 ) + W k w k − 1 − ( K k H k A k ( x k − 1 − x ^ k − 1 ) + K k H k W k w k − 1 + K k V k v k ) = A k ( x k − 1 − x ^ k − 1 ) + W k w k − 1 − K k H k A k ( x k − 1 − x ^ k − 1 ) − K k H k W k w k − 1 − K k V k v k \begin{aligned} {{\bf{x}}_k} - {\bf{\hat x}}_k^{} &= {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}\left\{ {{{\bf{H}}_k}\left[ {{\bf{\hat x}}_k^ - + {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {\bf{\hat x}}_k^ - } \right] + {{\bf{V}}_k}{{\bf{v}}_k}} \right\}\\\\ &= {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - \left( {{K_k}{{\bf{H}}_k}{{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {K_k}{{\bf{H}}_k}{{\bf{W}}_k}{{\bf{w}}_{k - 1}} + {K_k}{{\bf{V}}_k}{{\bf{v}}_k}} \right)\\\\ & = {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}{{\bf{H}}_k}{{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) - {K_k}{{\bf{H}}_k}{{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}{{\bf{V}}_k}{{\bf{v}}_k} \end{aligned} xk−x^k=Ak(xk−1−x^k−1)+Wkwk−1−Kk{Hk[x^k−+Ak(xk−1−x^k−1)+Wkwk−1−x^k−]+Vkvk}=Ak(xk−1−x^k−1)+Wkwk−1−(KkHkAk(xk−1−x^k−1)+KkHkWkwk−1+KkVkvk)=Ak(xk−1−x^k−1)+Wkwk−1−KkHkAk(xk−1−x^k−1)−KkHkWkwk−1−KkVkvk
由于前面定义了
e
k
=
x
k
−
x
^
k
{{\bf{e}}_k} = {{\bf{x}}_k} - {\bf{\hat x}}_k^{}
ek=xk−x^k,所以
x
k
−
1
−
x
^
k
−
1
{{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}}
xk−1−x^k−1可以用
e
k
−
1
{e_{k - 1}}
ek−1来表示,
x
k
−
x
^
k
{{\bf{x}}_k} - {\bf{\hat x}}_k^{}
xk−x^k进一步化简为:
x
k
−
x
^
k
=
A
k
e
k
−
1
+
W
k
w
k
−
1
−
K
k
H
k
A
k
e
k
−
1
−
K
k
H
k
W
k
w
k
−
1
−
K
k
V
k
v
k
{{\bf{x}}_k} - {\bf{\hat x}}_k^{} = {{\bf{A}}_k}{e_{k - 1}} + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}{{\bf{H}}_k}{{\bf{A}}_k}{e_{k - 1}} - {K_k}{{\bf{H}}_k}{{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}{{\bf{V}}_k}{{\bf{v}}_k}
xk−x^k=Akek−1+Wkwk−1−KkHkAkek−1−KkHkWkwk−1−KkVkvk
( x k − x ^ k ) T = e k − 1 T A k T + w k − 1 T W k T − e k − 1 T A k T H k T K k T − w k − 1 T W k T H k T K k T − v k T V k T K k T {\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^{}} \right)^T} = e_{k - 1}^T{\bf{A}}_k^T + {\bf{w}}_{k - 1}^T{\bf{W}}_k^T - e_{k - 1}^T{\bf{A}}_k^T{\bf{H}}_k^TK_k^T - {\bf{w}}_{k - 1}^T{\bf{W}}_k^T{\bf{H}}_k^TK_k^T - {\bf{v}}_k^T{\bf{V}}_k^TK_k^T (xk−x^k)T=ek−1TAkT+wk−1TWkT−ek−1TAkTHkTKkT−wk−1TWkTHkTKkT−vkTVkTKkT
P k = E ( e k e k T ) = E [ ( x k − x ^ k ) ( x k − x ^ k ) T ] = E [ ( A k e k − 1 + W k w k − 1 − K k H k A k e k − 1 − K k H k W k w k − 1 − K k V k v k ) × ( e k − 1 T A k T + w k − 1 T W k T − e k − 1 T A k T H k T K k T − w k − 1 T W k T H k T K k T − v k T V k T K k T ) ] \begin{aligned} {{\bf{P}}_k} &= E\left( {{{\bf{e}}_k}{\bf{e}}_k^T} \right) = E\left[ {\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^{}} \right){{\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^{}} \right)}^T}} \right]\\\\ & = E\left[ \begin{array}{l} \left( {{{\bf{A}}_k}{e_{k - 1}} + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}{{\bf{H}}_k}{{\bf{A}}_k}{e_{k - 1}} - {K_k}{{\bf{H}}_k}{{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}{{\bf{V}}_k}{{\bf{v}}_k}} \right)\\\\ \times \left( {e_{k - 1}^T{\bf{A}}_k^T + {\bf{w}}_{k - 1}^T{\bf{W}}_k^T - e_{k - 1}^T{\bf{A}}_k^T{\bf{H}}_k^TK_k^T - {\bf{w}}_{k - 1}^T{\bf{W}}_k^T{\bf{H}}_k^TK_k^T - {\bf{v}}_k^T{\bf{V}}_k^TK_k^T} \right) \end{array} \right] \end{aligned} Pk=E(ekekT)=E[(xk−x^k)(xk−x^k)T]=E⎣ ⎡(Akek−1+Wkwk−1−KkHkAkek−1−KkHkWkwk−1−KkVkvk)×(ek−1TAkT+wk−1TWkT−ek−1TAkTHkTKkT−wk−1TWkTHkTKkT−vkTVkTKkT)⎦ ⎤
上式公式如果真的展开的话,公式会特别长,因此下面拿一项来说明化简的办法,在上式第一个括号的第一项与第二个括号的第二项相乘时,会产生一项是: E ( A k e k − 1 w k − 1 T W k T ) = A k E ( e k − 1 w k − 1 T ) W k T E\left( {{{\bf{A}}_k}{e_{k - 1}}{\bf{w}}_{k - 1}^T{\bf{W}}_k^T} \right) = {{\bf{A}}_k}E\left( {{e_{k - 1}}{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T E(Akek−1wk−1TWkT)=AkE(ek−1wk−1T)WkT因为 e k − 1 , w k − 1 {e_{k - 1}},{\bf{w}}_{k - 1}^{} ek−1,wk−1互相独立的随机变量,因此: A k E ( e k − 1 w k − 1 T ) W k T = A k E ( e k − 1 ) E ( w k − 1 T ) W k T = A k ⋅ 0 ⋅ 0 ⋅ W k T = 0 {{\bf{A}}_k}E\left( {{e_{k - 1}}{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T = {{\bf{A}}_k}E\left( {{e_{k - 1}}} \right)E\left( {{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T = {{\bf{A}}_k} \cdot {\bf{0}} \cdot {\bf{0}} \cdot {\bf{W}}_k^T = 0 AkE(ek−1wk−1T)WkT=AkE(ek−1)E(wk−1T)WkT=Ak⋅0⋅0⋅WkT=0
因此在化简上式的时候,就可以把存在两个互相独立的随机变量的项全部约掉。 e k − 1 , w k − 1 , v k {e_{k - 1}},{\bf{w}}_{k - 1}^{},{{\bf{v}}_k} ek−1,wk−1,vk它们三个都互相独立的。
P k {\bf{P}}_k Pk的表达式可进一步化为:
P k = E [ ( A k e k − 1 + W k w k − 1 − K k H k A k e k − 1 − K k H k W k w k − 1 − K k V k v k ) × ( e k − 1 T A k T + w k − 1 T W k T − e k − 1 T A k T H k T K k T − w k − 1 T W k T H k T K k T − v k T V k T K k T ) ] = A k E ( e k − 1 e k − 1 T ) A k T − A k E ( e k − 1 e k − 1 T ) A k T H k T K k T + W k E ( w k − 1 w k − 1 T ) W k T − W k E ( w k − 1 w k − 1 T ) W k T H k T K k T − K k H k A k E ( e k − 1 e k − 1 T ) A k T + K k H k A k E ( e k − 1 e k − 1 T ) A k T H k T K k T − K k H k W k E ( w k − 1 w k − 1 T ) W k T + K k H k W k E ( w k − 1 w k − 1 T ) W k T H k T K k T + K k V k E ( v k v k T ) V k T K k T \begin{aligned} {{\bf{P}}_k} &= E\left[ \begin{array}{l} \left( {{{\bf{A}}_k}{e_{k - 1}} + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}{{\bf{H}}_k}{{\bf{A}}_k}{e_{k - 1}} - {K_k}{{\bf{H}}_k}{{\bf{W}}_k}{{\bf{w}}_{k - 1}} - {K_k}{{\bf{V}}_k}{{\bf{v}}_k}} \right)\\\\ \times \left( {e_{k - 1}^T{\bf{A}}_k^T + {\bf{w}}_{k - 1}^T{\bf{W}}_k^T - e_{k - 1}^T{\bf{A}}_k^T{\bf{H}}_k^TK_k^T - {\bf{w}}_{k - 1}^T{\bf{W}}_k^T{\bf{H}}_k^TK_k^T - {\bf{v}}_k^T{\bf{V}}_k^TK_k^T} \right) \end{array} \right]\\\\ & = {{\bf{A}}_k}E\left( {{e_{k - 1}}e_{k - 1}^T} \right){\bf{A}}_k^T - {{\bf{A}}_k}E\left( {{e_{k - 1}}e_{k - 1}^T} \right){\bf{A}}_k^T{\bf{H}}_k^TK_k^T + {{\bf{W}}_k}E\left( {{{\bf{w}}_{k - 1}}{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T\\\\ &-{{\bf{W}}_k}E\left( {{{\bf{w}}_{k - 1}}{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T{\bf{H}}_k^TK_k^T - {K_k}{{\bf{H}}_k}{{\bf{A}}_k}E\left( {{e_{k - 1}}e_{k - 1}^T} \right){\bf{A}}_k^T + {K_k}{{\bf{H}}_k}{{\bf{A}}_k}E\left( {{e_{k - 1}}e_{k - 1}^T} \right){\bf{A}}_k^T{\bf{H}}_k^TK_k^T\\\\ &-{K_k}{{\bf{H}}_k}{{\bf{W}}_k}E\left( {{{\bf{w}}_{k - 1}}{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T + {K_k}{{\bf{H}}_k}{{\bf{W}}_k}E\left( {{{\bf{w}}_{k - 1}}{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T{\bf{H}}_k^TK_k^T + {K_k}{{\bf{V}}_k}E\left( {{{\bf{v}}_k}{\bf{v}}_k^T} \right){\bf{V}}_k^TK_k^T \end{aligned} Pk=E⎣ ⎡(Akek−1+Wkwk−1−KkHkAkek−1−KkHkWkwk−1−KkVkvk)×(ek−1TAkT+wk−1TWkT−ek−1TAkTHkTKkT−wk−1TWkTHkTKkT−vkTVkTKkT)⎦ ⎤=AkE(ek−1ek−1T)AkT−AkE(ek−1ek−1T)AkTHkTKkT+WkE(wk−1wk−1T)WkT−WkE(wk−1wk−1T)WkTHkTKkT−KkHkAkE(ek−1ek−1T)AkT+KkHkAkE(ek−1ek−1T)AkTHkTKkT−KkHkWkE(wk−1wk−1T)WkT+KkHkWkE(wk−1wk−1T)WkTHkTKkT+KkVkE(vkvkT)VkTKkT
这里引用标准卡尔曼滤波里面的结论。
E
(
e
k
−
1
e
k
−
1
T
)
=
P
k
−
1
,
E
(
w
k
−
1
w
k
−
1
T
)
=
Q
,
E
(
v
k
v
k
T
)
=
R
E\left( {{e_{k - 1}}e_{k - 1}^T} \right) = {P_{k - 1}},E\left( {{{\bf{w}}_{k - 1}}{\bf{w}}_{k - 1}^T} \right) = Q,E\left( {{{\bf{v}}_k}{\bf{v}}_k^T} \right) = R
E(ek−1ek−1T)=Pk−1,E(wk−1wk−1T)=Q,E(vkvkT)=R
将其代入可得:
P
k
=
A
k
P
k
−
1
A
k
T
−
A
k
P
k
−
1
A
k
T
H
k
T
K
k
T
+
W
k
Q
W
k
T
−
W
k
Q
W
k
T
H
k
T
K
k
T
−
K
k
H
k
A
k
P
k
−
1
A
k
T
+
K
k
H
k
A
k
P
k
−
1
A
k
T
H
k
T
K
k
T
−
K
k
H
k
W
k
Q
W
k
T
+
K
k
H
k
W
k
Q
W
k
T
H
k
T
K
k
T
+
K
k
V
k
R
V
k
T
K
k
T
\begin{aligned} {{\bf{P}}_k} &= {{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T - {{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T{\bf{H}}_k^TK_k^T + {{\bf{W}}_k}Q{\bf{W}}_k^T - {{\bf{W}}_k}Q{\bf{W}}_k^T{\bf{H}}_k^TK_k^T\\\\ &-{K_k}{{\bf{H}}_k}{{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T + {K_k}{{\bf{H}}_k}{{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T{\bf{H}}_k^TK_k^T - {K_k}{{\bf{H}}_k}{{\bf{W}}_k}Q{\bf{W}}_k^T\\\\ &+{K_k}{{\bf{H}}_k}{{\bf{W}}_k}Q{\bf{W}}_k^T{\bf{H}}_k^TK_k^T + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T \end{aligned}
Pk=AkPk−1AkT−AkPk−1AkTHkTKkT+WkQWkT−WkQWkTHkTKkT−KkHkAkPk−1AkT+KkHkAkPk−1AkTHkTKkT−KkHkWkQWkT+KkHkWkQWkTHkTKkT+KkVkRVkTKkT
进一步提取公共项,把
P
k
{{\bf{P}}_k}
Pk的表达式化简一番
P
k
=
A
k
P
k
−
1
A
k
T
−
A
k
P
k
−
1
A
k
T
H
k
T
K
k
T
+
W
k
Q
W
k
T
−
W
k
Q
W
k
T
H
k
T
K
k
T
−
K
k
H
k
A
k
P
k
−
1
A
k
T
+
K
k
H
k
A
k
P
k
−
1
A
k
T
H
k
T
K
k
T
−
K
k
H
k
W
k
Q
W
k
T
+
K
k
H
k
W
k
Q
W
k
T
H
k
T
K
k
T
+
K
k
V
k
R
V
k
T
K
k
T
=
A
k
P
k
−
1
A
k
T
(
I
−
H
k
T
K
k
T
)
+
W
k
Q
W
k
T
(
I
−
H
k
T
K
k
T
)
−
K
k
H
k
A
k
P
k
−
1
A
k
T
(
I
−
H
k
T
K
k
T
)
−
K
k
H
k
W
k
Q
W
k
T
(
I
−
H
k
T
K
k
T
)
+
K
k
V
k
R
V
k
T
K
k
T
=
(
I
−
K
k
H
k
)
A
k
P
k
−
1
A
k
T
(
I
−
H
k
T
K
k
T
)
+
(
I
−
K
k
H
k
)
W
k
Q
W
k
T
(
I
−
H
k
T
K
k
T
)
+
K
k
V
k
R
V
k
T
K
k
T
=
(
I
−
K
k
H
k
)
(
A
k
P
k
−
1
A
k
T
+
W
k
Q
W
k
T
)
(
I
−
H
k
T
K
k
T
)
+
K
k
V
k
R
V
k
T
K
k
T
\begin{aligned} {{\bf{P}}_k} &= {{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T - {{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T{\bf{H}}_k^TK_k^T + {{\bf{W}}_k}Q{\bf{W}}_k^T - {{\bf{W}}_k}Q{\bf{W}}_k^T{\bf{H}}_k^TK_k^T\\\\ &-{K_k}{{\bf{H}}_k}{{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T + {K_k}{{\bf{H}}_k}{{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T{\bf{H}}_k^TK_k^T - {K_k}{{\bf{H}}_k}{{\bf{W}}_k}Q{\bf{W}}_k^T\\\\ &+{K_k}{{\bf{H}}_k}{{\bf{W}}_k}Q{\bf{W}}_k^T{\bf{H}}_k^TK_k^T + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T\\\\ &={{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T\left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right) + {{\bf{W}}_k}Q{\bf{W}}_k^T\left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right) - {K_k}{{\bf{H}}_k}{{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T\left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right)\\\\ &-{K_k}{{\bf{H}}_k}{{\bf{W}}_k}Q{\bf{W}}_k^T\left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right) + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T\\\\ &=\left( {{\bf{I}} - {K_k}{{\bf{H}}_k}} \right){{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T\left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right)\\\\ &+\left( {{\bf{I}} - {K_k}{{\bf{H}}_k}} \right){{\bf{W}}_k}Q{\bf{W}}_k^T\left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right) + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T\\\\ &= \left( {{\bf{I}} - {K_k}{{\bf{H}}_k}} \right)\left( {{{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T + {{\bf{W}}_k}Q{\bf{W}}_k^T} \right)\left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right) + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T \end{aligned}
Pk=AkPk−1AkT−AkPk−1AkTHkTKkT+WkQWkT−WkQWkTHkTKkT−KkHkAkPk−1AkT+KkHkAkPk−1AkTHkTKkT−KkHkWkQWkT+KkHkWkQWkTHkTKkT+KkVkRVkTKkT=AkPk−1AkT(I−HkTKkT)+WkQWkT(I−HkTKkT)−KkHkAkPk−1AkT(I−HkTKkT)−KkHkWkQWkT(I−HkTKkT)+KkVkRVkTKkT=(I−KkHk)AkPk−1AkT(I−HkTKkT)+(I−KkHk)WkQWkT(I−HkTKkT)+KkVkRVkTKkT=(I−KkHk)(AkPk−1AkT+WkQWkT)(I−HkTKkT)+KkVkRVkTKkT
大道至简,越简洁的式子越美。 P k {{\bf{P}}_k} Pk的化简式暂时先放一放。
参考估计误差向量的定义:
e
k
=
x
k
−
x
^
k
{{\bf{e}}_k} = {{\bf{x}}_k} - {\bf{\hat x}}_k^{}
ek=xk−x^k定义先验估计误差向量为:
e
k
−
=
x
k
−
x
^
k
−
{\bf{e}}_k^ - = {{\bf{x}}_k} - {\bf{\hat x}}_k^ -
ek−=xk−x^k−
那么,
P
k
−
=
E
(
e
k
−
e
k
−
T
)
=
E
[
(
x
k
−
x
^
k
−
)
(
x
k
−
x
^
k
−
)
T
]
{\bf{P}}_k^ - = E\left( {{\bf{e}}_k^ - {\bf{e}}_k^{ - T}} \right) = E\left[ {\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right){{\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right)}^T}} \right]
Pk−=E(ek−ek−T)=E[(xk−x^k−)(xk−x^k−)T]
同样地,先计算
x
k
−
x
^
k
−
{{\bf{x}}_k} - {\bf{\hat x}}_k^ -
xk−x^k−。
x
k
−
x
^
k
−
=
[
x
^
k
−
+
A
k
(
x
k
−
1
−
x
^
k
−
1
)
+
W
k
w
k
−
1
]
−
x
^
k
−
=
A
k
(
x
k
−
1
−
x
^
k
−
1
)
+
W
k
w
k
−
1
=
A
k
e
k
−
1
+
W
k
w
k
−
1
\begin{aligned} {{\bf{x}}_k} - {\bf{\hat x}}_k^ - &= \left[ {{\bf{\hat x}}_k^ - + {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}}} \right] - {\bf{\hat x}}_k^ - \\\\ &= {{\bf{A}}_k}\left( {{{\bf{x}}_{k - 1}} - {{{\bf{\hat x}}}_{k - 1}}} \right) + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} = {{\bf{A}}_k}{{\bf{e}}_{k - 1}} + {{\bf{W}}_k}{{\bf{w}}_{k - 1}} \end{aligned}
xk−x^k−=[x^k−+Ak(xk−1−x^k−1)+Wkwk−1]−x^k−=Ak(xk−1−x^k−1)+Wkwk−1=Akek−1+Wkwk−1
(
x
k
−
x
^
k
−
)
T
{\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right)^T}
(xk−x^k−)T也先求出来方便后续计算。
(
x
k
−
x
^
k
−
)
T
=
e
k
−
1
T
A
k
T
+
w
k
−
1
T
W
k
T
{\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right)^T} = {\bf{e}}_{k - 1}^T{\bf{A}}_k^T + {\bf{w}}_{k - 1}^T{\bf{W}}_k^T
(xk−x^k−)T=ek−1TAkT+wk−1TWkT
将上面两个式子代入到
P
k
−
{\bf{P}}_k^ -
Pk− 的表达式中:
P
k
−
=
E
[
(
x
k
−
x
^
k
−
)
(
x
k
−
x
^
k
−
)
T
]
=
E
[
(
A
k
e
k
−
1
+
W
k
w
k
−
1
)
(
e
k
−
1
T
A
k
T
+
w
k
−
1
T
W
k
T
)
]
=
A
k
E
(
e
k
−
1
e
k
−
1
T
)
A
k
T
+
A
k
E
(
e
k
−
1
w
k
−
1
T
)
W
k
T
+
W
k
E
(
w
k
−
1
e
k
−
1
T
)
A
k
T
+
W
k
E
(
w
k
−
1
w
k
−
1
T
)
W
k
T
=
A
k
P
k
−
1
A
k
T
+
0
+
0
+
W
k
Q
W
k
T
=
A
k
P
k
−
1
A
k
T
+
W
k
Q
W
k
T
\begin{aligned} {\bf{P}}_k^ - &= E\left[ {\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right){{\left( {{{\bf{x}}_k} - {\bf{\hat x}}_k^ - } \right)}^T}} \right] = E\left[ {\left( {{{\bf{A}}_k}{{\bf{e}}_{k - 1}} + {{\bf{W}}_k}{{\bf{w}}_{k - 1}}} \right)\left( {{\bf{e}}_{k - 1}^T{\bf{A}}_k^T + {\bf{w}}_{k - 1}^T{\bf{W}}_k^T} \right)} \right]\\\\ &= {{\bf{A}}_k}E\left( {{{\bf{e}}_{k - 1}}{\bf{e}}_{k - 1}^T} \right){\bf{A}}_k^T + {{\bf{A}}_k}E\left( {{{\bf{e}}_{k - 1}}{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T + {{\bf{W}}_k}E\left( {{{\bf{w}}_{k - 1}}{\bf{e}}_{k - 1}^T} \right){\bf{A}}_k^T + {{\bf{W}}_k}E\left( {{{\bf{w}}_{k - 1}}{\bf{w}}_{k - 1}^T} \right){\bf{W}}_k^T\\\\ &= {{\bf{A}}_k}{\bf{P}}_{k - 1}^{}{\bf{A}}_k^T + 0 + 0 + {{\bf{W}}_k}{\bf{QW}}_k^T\\\\ &= {{\bf{A}}_k}{\bf{P}}_{k - 1}^{}{\bf{A}}_k^T + {{\bf{W}}_k}{\bf{QW}}_k^T \end{aligned}
Pk−=E[(xk−x^k−)(xk−x^k−)T]=E[(Akek−1+Wkwk−1)(ek−1TAkT+wk−1TWkT)]=AkE(ek−1ek−1T)AkT+AkE(ek−1wk−1T)WkT+WkE(wk−1ek−1T)AkT+WkE(wk−1wk−1T)WkT=AkPk−1AkT+0+0+WkQWkT=AkPk−1AkT+WkQWkT
将 P k − = A k P k − 1 A k T + W k Q W k T {\bf{P}}_k^ - = {{\bf{A}}_k}{\bf{P}}_{k - 1}^{}{\bf{A}}_k^T + {{\bf{W}}_k}{\bf{QW}}_k^T Pk−=AkPk−1AkT+WkQWkT,带入到 P k {{\bf{P}}_k} Pk的公式当中,可得
P k = ( I − K k H k ) ( A k P k − 1 A k T + W k Q W k T ) ( I − H k T K k T ) + K k V k R V k T K k T = ( I − K k H k ) P k − ( I − H k T K k T ) + K k V k R V k T K k T \begin{aligned} {{\bf{P}}_k} &= \left( {{\bf{I}} - {K_k}{{\bf{H}}_k}} \right)\left( {{{\bf{A}}_k}{P_{k - 1}}{\bf{A}}_k^T + {{\bf{W}}_k}Q{\bf{W}}_k^T} \right)\left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right) + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T\\\\ & = \left( {{\bf{I}} - {K_k}{{\bf{H}}_k}} \right){\bf{P}}_k^ - \left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right) + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T \end{aligned} Pk=(I−KkHk)(AkPk−1AkT+WkQWkT)(I−HkTKkT)+KkVkRVkTKkT=(I−KkHk)Pk−(I−HkTKkT)+KkVkRVkTKkT
把
P
k
{{\bf{P}}_k}
Pk的公式再进行展开:
P
k
=
(
I
−
K
k
H
k
)
P
k
−
(
I
−
H
k
T
K
k
T
)
+
K
k
V
k
R
V
k
T
K
k
T
=
P
k
−
−
P
k
−
H
k
T
K
k
T
−
K
k
H
k
P
k
−
+
K
k
H
k
P
k
−
H
k
T
K
k
T
+
K
k
V
k
R
V
k
T
K
k
T
\begin{aligned} {{\bf{P}}_k} &= \left( {{\bf{I}} - {K_k}{{\bf{H}}_k}} \right){\bf{P}}_k^ - \left( {{\bf{I}} - {\bf{H}}_k^TK_k^T} \right) + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T\\\\ &= {\bf{P}}_k^ - - {\bf{P}}_k^ - {\bf{H}}_k^TK_k^T - {K_k}{{\bf{H}}_k}{\bf{P}}_k^ - + {K_k}{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^TK_k^T + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T \end{aligned}
Pk=(I−KkHk)Pk−(I−HkTKkT)+KkVkRVkTKkT=Pk−−Pk−HkTKkT−KkHkPk−+KkHkPk−HkTKkT+KkVkRVkTKkT
Don’t Forget,我们的目的是寻找一个合适的
K
k
{{\bf{K}}_k}
Kk使得
t
r
(
P
k
)
tr\left( {{\bf{P}}_k^{}} \right)
tr(Pk)最小。等式两边分别取迹可得:
t
r
(
P
k
)
=
t
r
(
P
k
−
)
−
t
r
(
P
k
−
H
k
T
K
k
T
)
−
t
r
(
K
k
H
k
P
k
−
)
+
t
r
(
K
k
H
k
P
k
−
H
k
T
K
k
T
)
+
t
r
(
K
k
V
k
R
V
k
T
K
k
T
)
tr\left( {{\bf{P}}_k^{}} \right) = tr\left( {{\bf{P}}_k^ - } \right) - tr\left( {{\bf{P}}_k^ - {\bf{H}}_k^T{\bf{K}}_k^T} \right) - tr\left( {{{\bf{K}}_k}{{\bf{H}}_k}{\bf{P}}_k^ - } \right) + tr\left( {{{\bf{K}}_k}{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T{\bf{K}}_k^T} \right) + tr\left( {{K_k}{{\bf{V}}_k}{\bf{RV}}_k^TK_k^T} \right)
tr(Pk)=tr(Pk−)−tr(Pk−HkTKkT)−tr(KkHkPk−)+tr(KkHkPk−HkTKkT)+tr(KkVkRVkTKkT)
注意上式的第二项和第三项,取第二项 P k − H T K k T {\bf{P}}_k^-{{\bf{H}}^T}{\bf{K}}_k^T Pk−HTKkT的转置 ( P k − H T K k T ) T = K k ( P k − H T ) T = K k H P k − T = K k H P k − {\left( {{\bf{P}}_k^- {{\bf{H}}^T}{\bf{K}}_k^T} \right)^T} = {{\bf{K}}_k}{\left( {{\bf{P}}_k^ - {{\bf{H}}^T}} \right)^T} = {{\bf{K}}_k}{\bf{HP}}{_k^{-T}}= {{\bf{K}}_k}{\bf{HP}}_k^- (Pk−HTKkT)T=Kk(Pk−HT)T=KkHPk−T=KkHPk−
第二项的转置正好是第三项。
数学基础知识补充:
如果
A
=
B
T
,
t
r
(
A
)
=
t
r
(
B
)
{\bf{A}} = {{\bf{B}}^T},tr\left( {\bf{A}} \right) = tr\left( {\bf{B}} \right)
A=BT,tr(A)=tr(B) ,因为转置之后,对角线的不变的。
因此:
t
r
(
P
k
)
=
t
r
(
P
k
−
)
−
2
t
r
(
K
k
H
k
P
k
−
)
+
t
r
(
K
k
H
k
P
k
−
H
k
T
K
k
T
)
+
t
r
(
K
k
V
k
R
V
k
T
K
k
T
)
tr\left( {{\bf{P}}_k^{}} \right) = tr\left( {{\bf{P}}_k^ - } \right) - 2tr\left( {{{\bf{K}}_k}{{\bf{H}}_k}{\bf{P}}_k^ - } \right) + tr\left( {{{\bf{K}}_k}{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T{\bf{K}}_k^T} \right) + tr\left( {{K_k}{{\bf{V}}_k}{\bf{RV}}_k^TK_k^T} \right)
tr(Pk)=tr(Pk−)−2tr(KkHkPk−)+tr(KkHkPk−HkTKkT)+tr(KkVkRVkTKkT)
要找到
K
k
{{\bf{K}}_k}
Kk使得
t
r
(
P
k
)
tr\left( {{\bf{P}}_k^{}} \right)
tr(Pk)最小,即对
t
r
(
P
k
)
tr\left( {{\bf{P}}_k^{}} \right)
tr(Pk)求
K
k
{{\bf{K}}_k}
Kk的导数,并令导数为0。即:
d
[
t
r
(
P
k
)
]
d
(
K
k
)
=
0
\frac{{d\left[ {tr\left( {{\bf{P}}_k^{}} \right)} \right]}}{{d\left( {{\bf{K}}_k^{}} \right)}} = 0
d(Kk)d[tr(Pk)]=0
数学基础知识补充:
d
[
t
r
(
A
B
)
]
d
(
A
)
=
B
T
,
d
[
t
r
(
A
B
A
T
)
]
d
(
A
)
=
2
A
B
{{d\left[ {tr\left( {{\bf{AB}}} \right)} \right]} \over {d\left( {\bf{A}} \right)}} = {{\bf{B}}^T},{{d\left[ {tr\left( {{\bf{AB}}{{\bf{A}}^T}} \right)} \right]} \over {d\left( {\bf{A}} \right)}} = 2{\bf{AB}}
d(A)d[tr(AB)]=BT,d(A)d[tr(ABAT)]=2AB
因此:
d
[
t
r
(
P
k
)
]
d
(
K
k
)
=
0
−
2
(
H
k
P
k
−
)
T
+
2
K
k
H
k
P
k
−
H
k
T
+
2
K
k
R
=
−
2
P
k
−
H
k
T
+
2
K
k
H
k
P
k
−
H
k
T
+
2
K
k
V
k
R
V
k
T
=
2
[
−
P
k
−
H
k
T
+
K
k
(
H
k
P
k
−
H
k
T
+
V
k
R
V
k
T
)
]
=
0
\begin{aligned} \frac{{d\left[ {tr\left( {{\bf{P}}_k^{}} \right)} \right]}}{{d\left( {{\bf{K}}_k^{}} \right)}} &= {\bf{0}} - 2{\left( {{{\bf{H}}_k}{\bf{P}}_k^ - } \right)^T} + 2{{\bf{K}}_k}{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T + 2{{\bf{K}}_k}{\bf{R}}\\\\ &= - 2{\bf{P}}_k^ - {\bf{H}}_k^T + 2{{\bf{K}}_k}{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T + 2{{\bf{K}}_k}{{\bf{V}}_k}{\bf{RV}}_k^T\\\\ &= 2\left[ { - {\bf{P}}_k^ - {\bf{H}}_k^T + {{\bf{K}}_k}\left( {{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T + {{\bf{V}}_k}{\bf{RV}}_k^T} \right)} \right] = 0 \end{aligned}
d(Kk)d[tr(Pk)]=0−2(HkPk−)T+2KkHkPk−HkT+2KkR=−2Pk−HkT+2KkHkPk−HkT+2KkVkRVkT=2[−Pk−HkT+Kk(HkPk−HkT+VkRVkT)]=0
最终,终于得到扩展卡尔曼滤波器的增益。
K
k
=
P
k
−
H
k
T
(
H
k
P
k
−
H
k
T
+
V
k
R
V
k
T
)
−
1
=
P
k
−
H
k
T
H
k
P
k
−
H
k
T
+
V
k
R
V
k
T
{{\bf{K}}_k} = {\bf{P}}_k^ - {\bf{H}}_k^T{\left( {{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T + {{\bf{V}}_k}{\bf{RV}}_k^T} \right)^{ - 1}} = \frac{{{\bf{P}}_k^ - {\bf{H}}_k^T}}{{{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T + {{\bf{V}}_k}{\bf{RV}}_k^T}}
Kk=Pk−HkT(HkPk−HkT+VkRVkT)−1=HkPk−HkT+VkRVkTPk−HkT
4、估计误差协方差矩阵化简
下面对估计误差协方差矩阵
P
k
{{\bf{P}}_k}
Pk进行进一步化简,将
K
k
{{\bf{K}}_k}
Kk的表达式代入:
P
k
=
P
k
−
−
P
k
−
H
k
T
K
k
T
−
K
k
H
k
P
k
−
+
K
k
H
k
P
k
−
H
k
T
K
k
T
+
K
k
V
k
R
V
k
T
K
k
T
=
P
k
−
−
P
k
−
H
k
T
K
k
T
−
K
k
H
k
P
k
−
+
K
k
(
H
k
P
k
−
H
k
T
+
V
k
R
V
k
T
)
K
k
T
=
P
k
−
−
P
k
−
H
k
T
K
k
T
−
K
k
H
k
P
k
−
+
P
k
−
H
k
T
H
k
P
k
−
H
k
T
+
V
k
R
V
k
T
(
H
k
P
k
−
H
k
T
+
V
k
R
V
k
T
)
K
k
T
=
P
k
−
−
P
k
−
H
k
T
K
k
T
−
K
k
H
k
P
k
−
+
P
k
−
H
k
T
K
k
T
=
P
k
−
−
K
k
H
k
P
k
−
=
(
I
−
K
k
H
k
)
P
k
−
\begin{aligned} {{\bf{P}}_k} &= {\bf{P}}_k^ - - {\bf{P}}_k^ - {\bf{H}}_k^TK_k^T - {K_k}{{\bf{H}}_k}{\bf{P}}_k^ - + {K_k}{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^TK_k^T + {K_k}{{\bf{V}}_k}R{\bf{V}}_k^TK_k^T\\\\ &= {\bf{P}}_k^ - - {\bf{P}}_k^ - {\bf{H}}_k^TK_k^T - {K_k}{{\bf{H}}_k}{\bf{P}}_k^ - + {K_k}\left( {{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T + {{\bf{V}}_k}R{\bf{V}}_k^T} \right)K_k^T\\\\ &= {\bf{P}}_k^ - - {\bf{P}}_k^ - {\bf{H}}_k^TK_k^T - {K_k}{{\bf{H}}_k}{\bf{P}}_k^ - + \frac{{{\bf{P}}_k^ - {\bf{H}}_k^T}}{{{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T + {{\bf{V}}_k}{\bf{RV}}_k^T}}\left( {{{\bf{H}}_k}{\bf{P}}_k^ - {\bf{H}}_k^T + {{\bf{V}}_k}R{\bf{V}}_k^T} \right)K_k^T\\\\ &= {\bf{P}}_k^ - - {\bf{P}}_k^ - {\bf{H}}_k^TK_k^T - {K_k}{{\bf{H}}_k}{\bf{P}}_k^ - + {\bf{P}}_k^ - {\bf{H}}_k^TK_k^T\\\\ &= {\bf{P}}_k^ - - {K_k}{{\bf{H}}_k}{\bf{P}}_k^ - \\\\ &= \left( {{\bf{I}} - {K_k}{{\bf{H}}_k}} \right){\bf{P}}_k^ - \end{aligned}
Pk=Pk−−Pk−HkTKkT−KkHkPk−+KkHkPk−HkTKkT+KkVkRVkTKkT=Pk−−Pk−HkTKkT−KkHkPk−+Kk(HkPk−HkT+VkRVkT)KkT=Pk−−Pk−HkTKkT−KkHkPk−+HkPk−HkT+VkRVkTPk−HkT(HkPk−HkT+VkRVkT)KkT=Pk−−Pk−HkTKkT−KkHkPk−+Pk−HkTKkT=Pk−−KkHkPk−=(I−KkHk)Pk−
5、全文总结
下面总结扩展卡尔曼滤波的5大公式:
先验估计公式:(
u
k
{{\bf{u}}_k}
uk是已知量,
x
^
k
−
1
{{\bf{\hat x}}_{k - 1}}
x^k−1是上一时刻的后验估计)
x
^
k
−
=
f
(
x
^
k
−
1
,
0
,
u
k
)
{\bf{\hat x}}_k^ - = f\left( {{{{\bf{\hat x}}}_{k - 1}},{\bf{0}},{{\bf{u}}_k}} \right)
x^k−=f(x^k−1,0,uk)
后验估计公式:
x
^
k
=
x
^
k
−
+
K
k
(
z
k
−
h
(
x
^
k
−
,
0
)
)
{\bf{\hat x}}_k^{} = {\bf{\hat x}}_k^ - + {{\bf{K}}_k}\left( {{{\bf{z}}_k} - h\left( {{\bf{\hat x}}_k^ - ,{\bf{0}}} \right)} \right)
x^k=x^k−+Kk(zk−h(x^k−,0))
卡尔曼增益计算公式:
K
k
=
P
k
−
H
T
(
H
P
k
−
H
T
+
V
k
R
V
k
T
)
−
1
{{\bf{K}}_k} = {\bf{P}}_k^ - {{\bf{H}}^T}{\left( {{\bf{HP}}_k^ - {{\bf{H}}^T} + {{\bf{V}}_k}{\bf{RV}}_k^T} \right)^{ - 1}}
Kk=Pk−HT(HPk−HT+VkRVkT)−1
先验估计协方差更新公式:
P
k
−
=
A
k
P
k
−
1
A
k
T
+
W
k
Q
W
k
T
{\bf{P}}_k^ - = {{\bf{A}}_k}{\bf{P}}_{k - 1}^{}{\bf{A}}_k^T + {{\bf{W}}_k}{\bf{QW}}_k^T
Pk−=AkPk−1AkT+WkQWkT
后验估计协方差矩阵更新公式:
P
k
=
(
I
−
K
k
H
)
P
k
−
{\bf{P}}_k^{} = \left( {{\bf{I}} - {{\bf{K}}_k}{\bf{H}}} \right){\bf{P}}_k^ -
Pk=(I−KkH)Pk−
与标准的卡尔曼滤波类似,在使用扩展卡尔曼滤波进行递归滤波时,需要我们给出0时刻的后验估计值初值 x ^ 0 {\bf{\hat x}}_0^{} x^0,以及后验估计误差协方差矩阵初值 P 0 {\bf{P}}_0^{} P0。