【多源融合】 Sage-Husa自适应滤波完整推导
不知道有没有同学跟我一样,有时候碰到公式推不出来强迫症就犯了,Sage-husa滤波虽然存在一些问题,但是其背后数学理论的推导还是比较难的,我也是到处看资料寻摸了一天,终于弄会了。
Sage滤波包括对R矩阵和Q矩阵的自适应,毕竟有时候观测环境和传感器数据特征不会完全符合经验模型,所以采用自适应的方法自动估计R和Q矩阵。本文接下来将主要推导三种Sage滤波:基于新息的观测噪声协方差矩阵(Innovation Adaptive Estimation, IAE)、基于残差的观测噪声协方差矩阵(Residual Adaptive Estimation, RAE)、系统状态噪声协方差矩阵。
基础知识
在
t
k
t_k
tk时刻先验状态
x
k
x_k
xk,先验状态协方差矩阵
P
k
P_k
Pk,观测值
z
k
z_k
zk,后验状态
x
^
k
\hat x_k
x^k,后验状态协方差矩阵
P
^
k
\hat P_k
P^k。
动力学模型
x
k
=
A
k
x
^
k
−
1
+
w
k
(1)
x_k=A_k\hat x_{k-1}+w_k\tag{1}
xk=Akx^k−1+wk(1)
量测模型
z
k
=
H
k
x
k
+
v
k
(2)
z_k=H_kx_{k}+v_k\tag{2}
zk=Hkxk+vk(2)
其中
A
k
A_k
Ak和
H
k
H_k
Hk分别为状态转移矩阵和系数矩阵,
w
k
w_k
wk和
v
k
v_k
vk则是过程噪声和量测噪声,相应的协方差矩阵即为
Q
k
Q_k
Qk和
R
k
R_k
Rk。
经典卡尔曼滤波状态更新过程
x
k
=
A
k
x
^
k
−
1
(3)
x_k=A_k\hat x_{k-1}\tag{3}
xk=Akx^k−1(3)
P
k
=
A
k
P
^
k
−
1
A
k
T
+
Q
k
(4)
P_k=A_k\hat P_{k-1}A_k^T+Q_k\tag{4}
Pk=AkP^k−1AkT+Qk(4)
经典卡尔曼滤波量测更新过程
K
k
=
P
k
H
k
T
(
H
k
P
k
H
k
+
R
k
)
−
1
(5)
K_k=P_kH_k^T(H_kP_kH_k+R_k)^{-1}\tag{5}
Kk=PkHkT(HkPkHk+Rk)−1(5)
x
^
k
=
x
k
+
K
k
(
z
k
−
H
k
x
k
)
(6)
\hat x_k=x_k+K_k(z_k-H_kx_k)\tag{6}
x^k=xk+Kk(zk−Hkxk)(6)
P
^
k
=
(
I
−
K
k
H
k
)
P
k
(7)
\hat P_k=(I-K_kH_k)P_k\tag{7}
P^k=(I−KkHk)Pk(7)
其中,I为单位阵,得到的
v
k
=
z
k
−
H
k
x
k
v_k=z_k-H_kx_k
vk=zk−Hkxk称为新息向量,
v
^
k
=
z
k
−
H
k
x
^
k
\hat v_k=z_k-H_k\hat x_k
v^k=zk−Hkx^k称为残差向量,主要区别在于残差向量经过了观测值的校正,相比于新息向量,残差向量更能反应动力学模型的误差。
接下来介绍Sage滤波如何自适应求解R和Q。
最大似然估计与自适应滤波
Sage滤波思路,开窗平均代替真实随机模型
C
v
k
=
1
N
∑
j
=
0
N
v
k
−
j
v
k
−
j
T
(8)
C_{v_k}=\frac{1}{N} \sum_{j=0}^{N}v_{k-j}v_{k-j}^T\tag{8}
Cvk=N1j=0∑Nvk−jvk−jT(8)
这里的
v
v
v是误差,可以是新息向量,可以是残差向量,也可以是状态误差,相应协方差矩阵也是
R
k
R_k
Rk或
Q
k
Q_k
Qk
在自适应因子
α
\alpha
α为条件,观测值的概率密度函数写为
P
(
z
k
∣
α
k
)
=
1
(
2
π
)
m
∣
C
v
k
∣
e
−
1
2
v
k
T
C
v
k
−
1
v
k
(9)
P\left (z_k| \alpha_k \right)=\frac {1}{\sqrt{(2\pi)^m \left| C_{v_k}\right|}}e^{-\frac {1}{2}v_k^TC_{v_k}^{-1}v_k} \tag{9}
P(zk∣αk)=(2π)m∣Cvk∣1e−21vkTCvk−1vk(9)
两边取对数
l
n
P
(
z
k
∣
α
k
)
=
−
1
2
{
m
∗
l
n
(
2
π
)
+
l
n
(
∣
C
v
k
∣
)
+
v
k
T
C
v
k
−
1
v
k
}
(10)
lnP\left (z_k| \alpha_k \right)=-\frac {1}{2} \left\{m*ln(2\pi)+ln(|C_{v_k}|)+v_k^TC_{v_k}^{-1}v_k \right\} \tag{10}
lnP(zk∣αk)=−21{m∗ln(2π)+ln(∣Cvk∣)+vkTCvk−1vk}(10)
那么式(10)中的最大似然也就变成了式(11)最小
∑
j
=
j
0
k
l
n
∣
C
v
j
∣
+
∑
j
=
j
0
k
v
j
T
C
v
j
−
1
v
j
=
m
i
n
(11)
\sum_{j=j_0}^{k}ln|C_{v_j}|+\sum_{j=j_0}^{k}v_j^TC_{v_j}^{-1}v_j=min \tag{11}
j=j0∑kln∣Cvj∣+j=j0∑kvjTCvj−1vj=min(11)
进一步,对式(11)关于自适应因子
α
\alpha
α求导
∑
j
=
j
0
k
[
t
r
{
C
v
j
−
1
∂
C
v
j
∂
α
}
−
v
j
T
C
v
j
−
1
∂
C
v
j
∂
α
C
v
j
−
1
v
j
]
=
0
(12)
\sum_{j=j_0}^{k}[tr\{C_{v_j}^{-1}\frac {\partial C_{v_j}}{\partial \alpha} \}-v_j^TC_{v_j}^{-1}\frac {\partial C_{v_j}}{\partial \alpha}C_{v_j}^{-1}v_j]=0 \tag{12}
j=j0∑k[tr{Cvj−1∂α∂Cvj}−vjTCvj−1∂α∂CvjCvj−1vj]=0(12)
式(11)中出现了
C
v
k
C_{v_k}
Cvk,但是我们关心的是
R
k
R_k
Rk和
Q
k
Q_k
Qk,将三者关系表达出来(
Q
k
Q_k
Qk包含在
P
k
P_k
Pk里)
C
v
k
=
R
k
+
H
k
P
k
H
k
T
(13)
C_{v_k}=R_k+H_kP_kH_k^T\tag{13}
Cvk=Rk+HkPkHkT(13)
对公式(13)关于自适应因子
α
\alpha
α求导
∂
C
v
k
∂
α
=
∂
R
k
∂
α
+
H
k
∂
P
k
∂
α
H
k
T
(14)
\frac {\partial C_{v_k}}{\partial {\alpha}}=\frac {\partial {R_k}}{\partial {\alpha}}+H_k\frac {\partial P_k}{\partial \alpha}H_k^T\tag{14}
∂α∂Cvk=∂α∂Rk+Hk∂α∂PkHkT(14)
将公式(4)带入式(14),并考虑稳态
∂
P
^
k
−
1
∂
α
=
0
\frac {\partial \hat P_{k-1}}{\partial \alpha}=0
∂α∂P^k−1=0有
∂
C
v
k
∂
α
=
∂
R
k
∂
α
+
H
k
∂
Q
k
∂
α
H
k
T
(15)
\frac {\partial C_{v_k}}{\partial {\alpha}}=\frac {\partial {R_k}}{\partial {\alpha}}+H_k\frac {\partial Q_k}{\partial \alpha}H_k^T\tag{15}
∂α∂Cvk=∂α∂Rk+Hk∂α∂QkHkT(15)
将公式(15)带入公式(12)
∑
j
=
j
0
k
t
r
{
[
C
v
j
−
1
−
C
v
j
−
1
v
j
v
j
T
C
v
j
−
1
]
[
∂
R
j
∂
α
+
H
j
∂
Q
j
−
1
∂
α
H
j
T
]
}
=
0
(16)
\sum_{j=j_0}^{k}tr\{ [C_{v_j}^{-1}-C_{v_j}^{-1}v_jv_j^TC_{v_j}^{-1}][\frac {\partial R_j}{\partial \alpha}+H_j\frac {\partial Q_{j-1}}{\partial \alpha}H_j^T] \}=0 \tag{16}
j=j0∑ktr{[Cvj−1−Cvj−1vjvjTCvj−1][∂α∂Rj+Hj∂α∂Qj−1HjT]}=0(16)
公式(16)显示,
R
k
R_k
Rk和
Q
k
Q_k
Qk均关于
α
\alpha
α自适应。
基于新息的观测噪声协方差矩阵(IAE)
得到
R
k
R_k
Rk自适应后,由开窗法估计新息协方差矩阵时,假设矩阵
Q
k
Q_k
Qk已知并且与
α
\alpha
α无关,则有
∑
j
=
j
0
k
t
r
{
[
C
v
j
−
1
−
C
v
j
−
1
v
j
v
j
T
C
v
j
−
1
]
[
I
+
0
]
}
=
0
(17)
\sum_{j=j_0}^{k}tr\{ [C_{v_j}^{-1}-C_{v_j}^{-1}v_jv_j^TC_{v_j}^{-1}][I+0] \}=0 \tag{17}
j=j0∑ktr{[Cvj−1−Cvj−1vjvjTCvj−1][I+0]}=0(17)
开窗法估计新息协方差矩阵
C
v
k
C_{v_k}
Cvk
C
v
k
=
1
N
∑
j
=
0
N
v
k
−
j
v
k
−
j
T
(18)
C_{v_k}=\frac{1}{N} \sum_{j=0}^{N}v_{k-j}v_{k-j}^T\tag{18}
Cvk=N1j=0∑Nvk−jvk−jT(18)
由新息向量
v
k
=
z
k
−
H
k
x
k
v_k=z_k-H_kx_k
vk=zk−Hkxk和协方差传播律得
C
v
k
=
R
k
+
H
k
P
k
H
k
T
(19)
C_{v_k}=R_k+H_kP_kH_k^T\tag{19}
Cvk=Rk+HkPkHkT(19)
进而可以估计
R
k
R_k
Rk。(PS:这是最简单也最实用的)
基于残差的观测噪声协方差矩阵(RAE)
借助IAE中的思路,由残差向量
v
^
k
\hat v_k
v^k代替新息向量
v
k
v_k
vk求解协方差矩阵
C
v
^
k
=
1
N
∑
j
=
0
N
v
^
k
−
j
v
^
k
−
j
T
(20)
C_{\hat v_k}=\frac{1}{N} \sum_{j=0}^{N}\hat v_{k-j}\hat v_{k-j}^T\tag{20}
Cv^k=N1j=0∑Nv^k−jv^k−jT(20)
然后利用协方差传播律
C
v
^
k
=
R
k
+
H
k
P
^
k
H
k
T
(21)
C_{\hat v_k}=R_k+H_k\hat P_kH_k^T\tag{21}
Cv^k=Rk+HkP^kHkT(21)
万事大吉!(做梦,这是完全错误的估计方法,应该是完事大吉)
要搞清楚,按照协方差传播律,谁才是求和结果,按照观测值和残差向量的定义,公式应为
z
k
=
H
k
x
^
k
+
v
^
k
z_k=H_k\hat x_k+\hat v_k
zk=Hkx^k+v^k(新息向量由预测状态推导,残差向量则是由后验状态推导)
最终,真正的协方差传播律为
R
k
=
C
v
^
k
+
H
k
P
^
k
H
k
T
(22)
R_k=C_{\hat v_k}+H_k\hat P_kH_k^T\tag{22}
Rk=Cv^k+HkP^kHkT(22)
但是式(11)中,要想估计
R
k
R_k
Rk就要先知道
v
^
k
\hat v_k
v^k,但是这玩意儿又要求
R
k
R_k
Rk先知道(死循环),所以采用前
N
N
N个历元来近似估计当前时刻的
R
k
R_k
Rk
R
k
=
1
N
∑
j
=
1
N
+
1
v
^
k
−
j
v
^
k
−
j
T
+
H
k
−
1
P
^
k
−
1
H
k
−
1
T
(22)
R_k=\frac{1}{N} \sum_{j=1}^{N+1}\hat v_{k-j}\hat v_{k-j}^T+H_{k-1}\hat P_{k-1}H_{k-1}^T\tag{22}
Rk=N1j=1∑N+1v^k−jv^k−jT+Hk−1P^k−1Hk−1T(22)
这是最简单的计算方法,如果对推导过程不关心的话,可以直接用上述的(22)就可以了。
接下来,详细推导公式(22)如何得到
由公式(17)得到,
∑
j
=
j
0
k
t
r
{
C
v
j
−
1
−
C
v
j
−
1
v
j
v
j
T
C
v
j
−
1
}
=
0
(23)
\sum_{j=j_0}^{k}tr\{ C_{v_j}^{-1}-C_{v_j}^{-1}v_jv_j^TC_{v_j}^{-1} \}=0 \tag{23}
j=j0∑ktr{Cvj−1−Cvj−1vjvjTCvj−1}=0(23)
由卡尔曼滤波可以得到
R
k
−
1
v
k
=
C
v
k
−
1
v
k
(24)
R_k^{-1}v_k=C_{v_k}^{-1}v_k \tag{24}
Rk−1vk=Cvk−1vk(24)
P
k
H
k
T
C
v
k
−
1
=
P
^
k
H
k
T
R
k
−
1
(25)
P_kH_k^TC_{v_k}^{-1}=\hat P_kH_k^TR_k^{-1} \tag{25}
PkHkTCvk−1=P^kHkTRk−1(25)
公式(24)和(25)的推导参见附录A和附录B
将式(24)带入(23)得到
∑
j
=
j
0
k
t
r
{
R
j
−
1
[
R
j
C
v
j
−
1
R
j
−
v
j
v
j
T
]
R
j
−
1
}
=
0
(26)
\sum_{j=j_0}^{k}tr\{ R_j^{-1}[R_jC_{v_j}^{-1}R_j-v_jv_j^T]R_j^{-1} \}=0 \tag{26}
j=j0∑ktr{Rj−1[RjCvj−1Rj−vjvjT]Rj−1}=0(26)
式(25)左乘
H
k
H_k
Hk得到
(
C
v
k
−
R
k
)
C
v
k
−
1
=
H
k
P
^
k
H
k
T
R
k
−
1
(27)
(C_{v_k}-R_k)C_{v_k}^{-1}=H_k\hat P_kH_k^TR_k^{-1} \tag{27}
(Cvk−Rk)Cvk−1=HkP^kHkTRk−1(27)
式(27)右乘
R
k
R_k
Rk
R
k
C
v
k
−
1
R
k
=
R
k
−
H
k
P
^
k
H
k
T
(28)
R_kC_{v_k}^{-1}R_k=R_k-H_k\hat P_kH_k^T \tag{28}
RkCvk−1Rk=Rk−HkP^kHkT(28)
将式(28)带入到(26)中
∑
j
=
j
0
k
t
r
{
R
j
−
1
[
R
j
−
H
j
P
^
j
H
j
−
v
j
v
j
T
]
R
j
−
1
}
=
0
(29)
\sum_{j=j_0}^{k}tr\{ R_j^{-1}[R_j-H_j\hat P_jH_j-v_jv_j^T]R_j^{-1} \}=0 \tag{29}
j=j0∑ktr{Rj−1[Rj−HjP^jHj−vjvjT]Rj−1}=0(29)
则式(29)的解为中括号“[]”内等于0,得到
R
k
=
C
v
k
+
H
k
P
^
k
H
k
(30)
R_k=C_{v_k}+H_k\hat P_kH_k \tag{30}
Rk=Cvk+HkP^kHk(30)
即式(22)。
系统状态噪声协方差矩阵
假设此时
R
k
R_k
Rk已知,且与
α
\alpha
α无关,由式(16)得到
∑
j
=
j
0
k
t
r
{
H
j
T
[
C
v
j
−
1
−
C
v
j
−
1
v
j
v
j
T
C
v
j
−
1
]
H
j
}
=
0
(31)
\sum_{j=j_0}^{k}tr\{ H_j^T[C_{v_j}^{-1}-C_{v_j}^{-1}v_jv_j^TC_{v_j}^{-1}]H_j \}=0 \tag{31}
j=j0∑ktr{HjT[Cvj−1−Cvj−1vjvjTCvj−1]Hj}=0(31)
上述变换依据
t
r
(
A
B
C
D
)
=
t
r
(
B
C
D
A
)
=
t
r
(
C
D
A
B
)
=
t
r
(
D
A
B
C
)
tr(ABCD)=tr(BCDA)=tr(CDAB)=tr(DABC)
tr(ABCD)=tr(BCDA)=tr(CDAB)=tr(DABC)。
由卡尔曼滤波增益矩阵可以得到
H
k
T
C
v
k
−
1
=
P
k
−
1
K
k
(32)
H_k^TC_{v_k}^{-1}=P_k^{-1}K_k \tag{32}
HkTCvk−1=Pk−1Kk(32)
式(32)进行转置
C
v
k
−
1
H
k
T
=
K
k
T
P
k
−
1
(33)
C_{v_k}^{-1}H_k^T=K_k^TP_k^{-1} \tag{33}
Cvk−1HkT=KkTPk−1(33)
由于
C
v
k
C_{v_k}
Cvk和
P
k
P_k
Pk均为对称矩阵,他们的逆等于矩阵本身。
将式(31)展开并带入式(32)和(33)
∑
j
=
j
0
k
t
r
{
H
j
T
[
C
v
j
−
1
−
C
v
j
−
1
v
j
v
j
T
C
v
j
−
1
]
H
j
}
=
∑
j
=
j
0
k
t
r
{
H
j
T
C
v
j
−
1
H
j
−
H
j
T
C
v
j
−
1
v
j
v
j
T
C
v
j
−
1
H
j
}
=
∑
j
=
j
0
k
t
r
{
P
j
−
1
K
j
H
j
−
P
j
−
1
K
j
v
j
v
j
T
K
j
T
P
j
−
1
}
=
∑
j
=
j
0
k
t
r
{
P
j
−
1
(
K
j
H
j
P
j
−
K
j
v
j
v
j
T
K
j
T
)
P
j
−
1
}
−
>
∑
j
=
j
0
k
t
r
{
K
j
H
j
P
j
−
K
j
v
j
v
j
T
K
j
T
}
=
0
(34)
\begin{aligned} \sum_{j=j_0}^{k}tr\{ H_j^T[C_{v_j}^{-1}-C_{v_j}^{-1}v_jv_j^TC_{v_j}^{-1}]H_j \} &=\sum_{j=j_0}^{k}tr\{ H_j^TC_{v_j}^{-1}H_j-H_j^TC_{v_j}^{-1}v_jv_j^TC_{v_j}^{-1}H_j \} \\&=\sum_{j=j_0}^{k}tr\{ P_j^{-1}K_jH_j-P_j^{-1}K_jv_jv_j^TK_j^TP_{j}^{-1}\} \\&= \sum_{j=j_0}^{k}tr\{ P_j^{-1}(K_jH_jP_j-K_jv_jv_j^TK_j^T)P_{j}^{-1}\} \\&-> \sum_{j=j_0}^{k}tr\{ K_jH_jP_j-K_jv_jv_j^TK_j^T\} \\&=0 \end{aligned} \tag{34}
j=j0∑ktr{HjT[Cvj−1−Cvj−1vjvjTCvj−1]Hj}=j=j0∑ktr{HjTCvj−1Hj−HjTCvj−1vjvjTCvj−1Hj}=j=j0∑ktr{Pj−1KjHj−Pj−1KjvjvjTKjTPj−1}=j=j0∑ktr{Pj−1(KjHjPj−KjvjvjTKjT)Pj−1}−>j=j0∑ktr{KjHjPj−KjvjvjTKjT}=0(34)
在式(34)中,“->”代表化简,因为
P
k
P_k
Pk中特征值均为正定,所以为了满足最后结果为0,对应矩阵运算的结果应该为0。
从卡尔曼滤波中可以推导出
Δ
x
k
=
K
k
v
k
(35)
\Delta x_k=K_kv_k \tag{35}
Δxk=Kkvk(35)
K
k
H
k
P
k
=
P
k
−
P
^
k
(36)
K_kH_kP_k=P_k-\hat P_k \tag{36}
KkHkPk=Pk−P^k(36)
将式(35)和(36)带入简化后的(34)中,
∑
j
=
j
0
k
t
r
{
P
j
−
P
^
j
−
Δ
x
j
Δ
x
j
T
}
=
0
(37)
\sum_{j=j_0}^{k}tr\{ P_j-\hat P_j-\Delta x_j\Delta x_j^T\}=0\tag{37}
j=j0∑ktr{Pj−P^j−ΔxjΔxjT}=0(37)
将公式(4)带入(37)中并经过移项得到Sage自适应Q矩阵
Q
k
=
1
N
∑
j
=
j
0
k
Δ
x
j
Δ
x
j
T
+
P
^
k
−
A
k
P
^
k
−
1
A
k
(38)
Q_k=\frac{1}{N}\sum_{j=j_0}^{k}\Delta x_j\Delta x_j^T+\hat P_k-A_k\hat P_{k-1}A_k \tag{38}
Qk=N1j=j0∑kΔxjΔxjT+P^k−AkP^k−1Ak(38)
附录A
在附录A中,我们将证明如何得到公式(24)。
可以利用条件极值推导卡尔曼滤波解时,目标函数构建为
Ω
(
k
)
=
v
k
T
R
k
v
k
+
v
x
k
T
P
k
v
x
k
−
2
λ
T
(
H
k
x
^
k
−
Z
k
−
v
k
)
=
m
i
n
(A1)
\Omega(k) =v_k^TR_kv_k+v_{x_k}^TP_{k}v_{x_k}-2\lambda^T (H_k\hat x_k-Z_k-v_k)=min \tag{A1}
Ω(k)=vkTRkvk+vxkTPkvxk−2λT(Hkx^k−Zk−vk)=min(A1)
其中,
v
x
k
=
x
^
k
−
x
k
v_{x_k}=\hat x_k-x_k
vxk=x^k−xk,
v
k
=
H
k
x
^
k
−
Z
k
v_k=H_k\hat x_k-Z_k
vk=Hkx^k−Zk,
λ
\lambda
λ为拉格朗日乘数向量
对式(A1)分别对
v
k
v_k
vk和
x
^
k
\hat x_k
x^k求导
∂
Ω
(
k
)
∂
v
k
=
2
v
k
T
R
k
+
2
λ
T
=
0
(A2)
\frac {\partial \Omega(k)}{\partial v_k} =2v_k^TR_k+2\lambda^T=0 \tag{A2}
∂vk∂Ω(k)=2vkTRk+2λT=0(A2)
∂
Ω
(
k
)
∂
x
^
k
=
2
v
x
k
T
P
k
−
2
λ
T
H
k
=
0
(A3)
\frac {\partial \Omega(k)}{\partial \hat x_k} =2v_{x_k}^TP_{k}-2\lambda^TH_k=0 \tag{A3}
∂x^k∂Ω(k)=2vxkTPk−2λTHk=0(A3)
由式(A2)得到
v
k
=
−
R
k
−
1
λ
(A4)
v_k=-R_k^{-1}\lambda \tag{A4}
vk=−Rk−1λ(A4)
由式(A3)推导
v
x
k
=
P
k
−
1
H
k
T
λ
(A5)
v_{x_k}=P_{k}^{-1}H_k^T\lambda \tag{A5}
vxk=Pk−1HkTλ(A5)
分别将式(A4)带入
v
k
=
H
k
x
^
k
−
z
k
v_k=H_k\hat x_k-z_k
vk=Hkx^k−zk,(A5)带入
v
x
k
=
x
^
k
−
x
k
v_{x_k}=\hat x_k-x_k
vxk=x^k−xk得到
−
R
k
−
1
λ
=
H
k
x
^
k
−
z
k
(A6)
-R_k^{-1}\lambda=H_k\hat x_k-z_k \tag{A6}
−Rk−1λ=Hkx^k−zk(A6)
P
k
−
1
H
k
T
λ
=
x
^
k
−
x
k
(A7)
P_{k}^{-1}H_k^T\lambda=\hat x_k-x_k \tag{A7}
Pk−1HkTλ=x^k−xk(A7)
式(A7)同时左乘矩阵
H
k
H_k
Hk
H
k
P
k
−
1
H
k
T
λ
=
H
k
x
^
k
−
H
k
x
k
(A8)
H_kP_{k}^{-1}H_k^T\lambda=H_k\hat x_k-H_kx_k \tag{A8}
HkPk−1HkTλ=Hkx^k−Hkxk(A8)
式(A8)减去式(A6)得到
λ
=
(
H
k
P
k
−
1
H
k
T
+
R
k
−
1
)
−
1
(
z
k
−
H
k
x
k
)
(A9)
\lambda=(H_kP_k^{-1}H_k^T+R_k^{-1})^{-1}(z_k-H_kx_k) \tag{A9}
λ=(HkPk−1HkT+Rk−1)−1(zk−Hkxk)(A9)
根据式(A4)和(A9)有
λ
=
−
(
C
v
k
)
v
k
=
−
R
k
v
k
(A10)
\lambda=-(C_{v_k})v_k=-R_kv_k \tag{A10}
λ=−(Cvk)vk=−Rkvk(A10)
通过式(A10),(24)证毕。
附录B
在本节中,主要证明公式(25)。首先根据卡尔曼滤波公式(5)和(7),将(5)代入(7)
P
^
k
=
P
k
−
P
k
H
k
T
(
H
k
P
k
H
k
T
+
R
k
)
−
1
H
k
P
k
(B1)
\hat P_k=P_k-P_kH_k^T(H_kP_kH_k^T+R_k)^{-1}H_kP_k \tag{B1}
P^k=Pk−PkHkT(HkPkHkT+Rk)−1HkPk(B1)
由矩阵求逆引理
(
A
+
B
C
D
)
−
1
=
A
−
1
−
A
−
1
B
(
C
−
1
+
D
A
−
1
B
)
−
1
D
A
−
1
(B2)
(A+BCD)^{-1}=A^{-1}-A^{-1}B(C^{-1}+DA^{-1}B)^{-1}DA^{-1} \tag{B2}
(A+BCD)−1=A−1−A−1B(C−1+DA−1B)−1DA−1(B2)
将(B1)和(B2)对照可将式(B1)简化为
P
^
k
=
(
P
k
−
1
+
H
k
T
R
k
−
1
H
k
)
−
1
(B3)
\hat P_k=(P_k^{-1}+H_k^TR_k^{-1}H_k)^{-1} \tag{B3}
P^k=(Pk−1+HkTRk−1Hk)−1(B3)
根据公式(5)
K
k
=
P
k
H
k
T
(
H
k
P
k
H
k
T
+
R
k
)
−
1
=
[
(
H
k
P
k
H
k
T
+
R
k
)
(
H
k
T
)
−
1
P
k
−
1
]
−
1
=
[
H
k
+
R
k
(
H
k
T
)
−
1
P
k
−
1
]
−
1
=
[
R
k
(
H
k
T
)
−
1
(
H
k
T
R
k
−
1
H
k
+
P
k
−
1
)
]
−
1
=
[
H
k
T
R
k
−
1
H
k
+
P
k
−
1
]
−
1
H
k
T
R
k
−
1
(B4)
\begin{aligned} K_k&=P_kH_k^T(H_kP_kH_k^T+R_k)^{-1} \\&=[(H_kP_kH_k^T+R_k)(H_k^T)^{-1}P_k^{-1}]^{-1} \\&=[H_k+R_k(H_k^T)^{-1}P_k^{-1}]^{-1} \\&=[R_k(H_k^T)^{-1}(H_k^TR_k^{-1}H_k+P_k^{-1})]^{-1} \\&=[H_k^TR_k^{-1}H_k+P_k^{-1}]^{-1}H_k^TR_k^{-1} \end{aligned}\tag{B4}
Kk=PkHkT(HkPkHkT+Rk)−1=[(HkPkHkT+Rk)(HkT)−1Pk−1]−1=[Hk+Rk(HkT)−1Pk−1]−1=[Rk(HkT)−1(HkTRk−1Hk+Pk−1)]−1=[HkTRk−1Hk+Pk−1]−1HkTRk−1(B4)
将(B3)代入(B4)得
K
k
=
P
^
k
H
k
T
R
k
−
1
(B5)
K_k=\hat P_kH_k^TR_k^{-1}\tag{B5}
Kk=P^kHkTRk−1(B5)
此外,参考公式(5)和公式(19)
K
k
=
P
k
H
k
T
C
v
k
−
1
(B6)
K_k=P_kH_k^TC_{v_k}^{-1}\tag{B6}
Kk=PkHkTCvk−1(B6)
通过式(B5)和(B6),公式(25)证毕。
参考文献
[1] 杨元喜. 自适应动态导航定位(第二版).
[2] Mohamed A., Schwarz K. Adaptive Kalman Filtering for INS/GPS.
[3] 025卡尔曼滤波中滤波增益与协方差阵的等价形式. https://blog.csdn.net/Pro2015/article/details/82908148