W
E
E
K
2
{\Large WEEK \qquad 2}
WEEK2
K
a
l
m
a
n
滤
波
在
最
后
\color{#F00}{Kalman滤波在最后}
Kalman滤波在最后
2.1 系统和测量建模
\qquad
离散线性动态运动系统:
x
t
+
1
=
A
x
t
+
B
u
t
z
t
=
C
x
t
(
1
)
x_{t+1}=Ax_{t}+Bu_{t}\qquad z_{t}=Cx_{t}\qquad(1)
xt+1=Axt+Butzt=Cxt(1)其中A是状态转移矩阵,
u
t
u_{t}
ut表示不依赖状态
x
t
x_{t}
xt的外部输入,C表示连接测量变量和状态的测量矩阵。
\qquad
基于基于状态动态模型的状态估计值条件概率:
p
(
x
t
+
1
∣
x
t
)
(
忽
略
u
t
)
(
2
)
p(x_{t+1}|x_{t})\qquad(忽略u_{t})(2)
p(xt+1∣xt)(忽略ut)(2)
\qquad
带噪声的测量值的条件概率:
p
(
z
t
∣
x
t
)
(
3
)
p(z_{t}|x_{t})\qquad(3)
p(zt∣xt)(3)
\qquad
应用线性动态模型:
p
(
x
t
+
1
∣
x
t
)
=
A
p
(
x
t
)
(
4
)
p
(
z
t
∣
x
t
)
=
C
p
(
x
t
)
(
5
)
p(x_{t+1}|x_{t})=Ap(x_{t})\qquad(4)\\ p(z_{t}|x_{t})=Cp(x_{t})\qquad(5)
p(xt+1∣xt)=Ap(xt)(4)p(zt∣xt)=Cp(xt)(5)
\qquad
给运动和观测加入噪声
p
(
x
t
+
1
∣
x
t
)
=
A
p
(
x
t
)
+
v
m
(
6
)
p
(
z
t
∣
x
t
)
=
C
p
(
x
t
)
+
v
o
(
7
)
p(x_{t+1}|x_{t})=Ap(x_{t})+v_{m}\qquad(6)\\ p(z_{t}|x_{t})=Cp(x_{t})+v_{o}\qquad(7)
p(xt+1∣xt)=Ap(xt)+vm(6)p(zt∣xt)=Cp(xt)+vo(7)
\qquad
引入状态
x
t
x_{t}
xt的高斯模型
p
(
x
t
+
1
∣
x
t
)
=
A
N
(
x
t
,
P
t
)
+
N
(
0
,
∑
m
)
(
8
)
p
(
z
t
∣
x
t
)
=
C
N
(
x
t
,
P
t
)
+
N
(
0
,
∑
o
)
(
9
)
p(x_{t+1}|x_{t})=A\mathcal{N}(x_{t},P_{t})+\mathcal{N}(0,\begin{matrix}\sum_{m}\end{matrix})\qquad(8)\\ p(z_{t}|x_{t})=C\mathcal{N}(x_{t},P_{t})+\mathcal{N}(0,\begin{matrix}\sum_{o}\end{matrix})\qquad(9)
p(xt+1∣xt)=AN(xt,Pt)+N(0,∑m)(8)p(zt∣xt)=CN(xt,Pt)+N(0,∑o)(9)
\qquad
应用高斯分布的线性变换
p
(
x
t
+
1
∣
x
t
)
=
N
(
A
x
t
,
A
P
t
A
T
)
+
N
(
0
,
∑
m
)
(
10
)
p
(
z
t
∣
x
t
)
=
N
(
C
x
t
,
C
P
t
C
T
)
+
N
(
0
,
∑
o
)
(
11
)
p(x_{t+1}|x_{t})=\mathcal{N}(Ax_{t},AP_{t}A^{T})+\mathcal{N}(0,\begin{matrix}\sum_{m}\end{matrix})\qquad(10)\\ p(z_{t}|x_{t})=\mathcal{N}(Cx_{t},CP_{t}C^{T})+\mathcal{N}(0,\begin{matrix}\sum_{o}\end{matrix})\qquad(11)
p(xt+1∣xt)=N(Axt,APtAT)+N(0,∑m)(10)p(zt∣xt)=N(Cxt,CPtCT)+N(0,∑o)(11)
\qquad
应用高斯分布求和公式
p
(
x
t
+
1
∣
x
t
)
=
N
(
A
x
t
,
A
P
t
A
T
+
∑
m
)
(
12
)
p
(
z
t
∣
x
t
)
=
N
(
C
x
t
,
C
P
t
C
T
+
∑
o
)
(
13
)
p(x_{t+1}|x_{t})=\mathcal{N}(Ax_{t},AP_{t}A^{T}+\begin{matrix}\sum_{m}\end{matrix})\qquad(12)\\ p(z_{t}|x_{t})=\mathcal{N}(Cx_{t},CP_{t}C^{T}+\begin{matrix}\sum_{o}\end{matrix})\qquad(13)
p(xt+1∣xt)=N(Axt,APtAT+∑m)(12)p(zt∣xt)=N(Cxt,CPtCT+∑o)(13)
以下摘自《概率机器人》
2.2 贝叶斯滤波
2.2.1 关于Z=z的贝叶斯准则
p
(
x
∣
y
,
z
)
=
p
(
y
∣
x
,
z
)
p
(
x
∣
z
)
p
(
y
∣
z
)
(
14
)
p(x|y,z)=\frac{p(y|x,z)p(x|z)}{p(y|z)}\qquad(14)
p(x∣y,z)=p(y∣z)p(y∣x,z)p(x∣z)(14)
\qquad
以其他变量z为条件的相互独立的随机变量条件联合概率定律:
p
(
x
,
y
∣
z
)
=
p
(
x
∣
z
)
p
(
y
∣
z
)
(
15
)
p(x,y|z)=p(x|z)p(y|z)\qquad(15)
p(x,y∣z)=p(x∣z)p(y∣z)(15)这种关系被称为条件独立,等价于:
p
(
x
∣
z
)
=
p
(
x
∣
z
,
y
)
(
16
)
p
(
y
∣
z
)
=
p
(
y
∣
z
,
x
)
(
17
)
p(x|z)=p(x|z,y)\qquad(16)\\ p(y|z)=p(y|z,x)\qquad(17)
p(x∣z)=p(x∣z,y)(16)p(y∣z)=p(y∣z,x)(17)
2.2.2 状态的完整性
\qquad
假设一个状态
x
t
x_{t}
xt 可以最好地预测未来,则称其为完整的(complete) 。换句话说, 完整性包括过去状态测量及控制的信息,但不包含其他可以更加精确地预测未来的其他附加信息 。很重要的是,要注意对完整性的定义并不是要求未来是一个关于状态的确定(deterministic) 函数。未来可以是随机的,但是没有先于
x
t
x_{t}
xt的状态变化可以影响未来状态的随机变化,除非这种依赖通过状态
x
t
x_{t}
xt起作用。满足这些条件的暂态过程通常称为马尔可夫链(Markov chain) 。
\qquad
状态完整性的概念主要是理论上的重要性。实际上,对任何一个实际的机器人系统不可能指定一个完整的状态。一个完整的状态不仅包括对未来有影响的环境的所有方面,而且也包括机器人本身、计算机内存的内容以及周围人造成的信息垃圾等。其中有些是很难获得的。现实的实现是挑选所有状态变量的小子集。这样的状态叫作不完整状态(incomplete state) 。
2.2.3 概率生成法则
\qquad
状态和测量的演变由概率法则支配。表征状态演变的概率法则可以由
p
(
x
t
∣
x
0
:
t
−
1
,
z
1
:
t
−
1
,
u
1
:
t
)
p(x_{t}|x_{0:t-1},z_{1:t-1},u_{1:t})
p(xt∣x0:t−1,z1:t−1,u1:t)概率分布给出(假定机器人先执行一个控制动作
u
1
u_{1}
u1,然后得到一个测量
z
1
z_{1}
z1,
x
0
:
t
−
1
x_{0:t-1}
x0:t−1表示从时间0到t-1所获得状态的集合)。
\qquad
如果状态
x
t
x_{t}
xt是完整的,那么它是之前时刻发生的所有状态的充分总结。状态
x
t
−
1
x_{t-1}
xt−1是直到t-1时刻的控制和测量的一个充分统计量,即
u
1
:
t
−
1
u_{1:t-1}
u1:t−1和
z
1
:
t
−
1
z_{1:t-1}
z1:t−1。上述变量中,只有控制
u
t
u_{t}
ut关心是否知道状态
x
t
−
1
x_{t-1}
xt−1(From all the variables in the expression above, only the control
u
t
u_{t}
ut matters if we know the state
x
t
−
1
x_{t-1}
xt−1.)即只有变量
u
t
u_{t}
ut作用在
x
t
−
1
x_{t-1}
xt−1之后。由此:
p
(
x
t
∣
x
0
:
t
−
1
,
z
1
:
t
−
1
,
u
1
:
t
)
=
p
(
x
t
∣
x
t
−
1
,
u
t
)
(
18
)
p(x_{t}|x_{0:t-1},z_{1:t-1},u_{1:t})=p(x_{t}|x_{t-1},u_{t})\qquad(18)
p(xt∣x0:t−1,z1:t−1,u1:t)=p(xt∣xt−1,ut)(18)
\qquad
上式为状态转移概率,由这个等式表达的特性就是条件独立(表明如果知道第三组变量(条件变量)的值,该变量就是独立于其他变量的)。
\qquad
如果状态
x
t
x_{t}
xt是完整的,有如下条件独立:
p
(
z
t
∣
x
0
:
t
,
z
1
:
t
−
1
,
u
1
:
t
)
=
p
(
z
t
∣
x
t
)
(
19
)
p(z_{t}|x_{0:t},z_{1:t-1},u_{1:t})=p(z_{t}|x_{t})\qquad(19)
p(zt∣x0:t,z1:t−1,u1:t)=p(zt∣xt)(19)
\qquad
上式为测量概率,用状态
x
t
x_{t}
xt足以预测(有潜在的噪声的)测量
z
t
z_{t}
zt。如果
x
t
x_{t}
xt是完整的,则任何其他变量的信息,如过去的测量、控制、或过去的状态都是与之无关的。
图
1
表
征
控
制
、
状
态
和
测
量
演
变
的
动
态
贝
叶
斯
网
络
图1\quad表征控制、状态和测量演变的动态贝叶斯网络
图1表征控制、状态和测量演变的动态贝叶斯网络
2.2.4 置信分布
\qquad
置信度反映了机器人有关环境状态的内部信息。状态(位姿)不能直接测量,机器人必须从数据中推测出其状态。概率机器人中通过条件概率分布表达置信度。对于真实的状态,置信度分布为每一个可能的假设分配一个概率(或者概率密度值)。置信度分布是以可获得数据为条件的关于状态变量的后验概率。使用
b
e
l
(
x
t
)
bel(x_{t})
bel(xt)表示状态变量
x
t
x_{t}
xt的置信度,后验概率为:
b
e
l
(
x
t
)
=
p
(
x
t
∣
z
1
:
t
,
u
1
:
t
)
(
20
)
bel(x_{t})=p(x_{t}|z_{1:t},u_{1:t})\qquad(20)
bel(xt)=p(xt∣z1:t,u1:t)(20)
\qquad
该后验分布是时刻t下状态
x
t
x_{t}
xt的概率分布,以所有过去测量
z
1
:
t
z_{1:t}
z1:t和所有过去控制
u
1
:
t
u_{1:t}
u1:t为条件。刚执行完控制
u
t
u_{t}
ut之后,综合
z
t
z_{t}
zt之前计算后验为:
b
e
l
‾
(
x
t
)
=
p
(
x
t
∣
z
1
:
t
−
1
,
u
1
:
t
)
(
21
)
\overline{bel}(x_{t})=p(x_{t}|z_{1:t-1},u_{1:t})\qquad(21)
bel(xt)=p(xt∣z1:t−1,u1:t)(21)
\qquad
在概率滤波框架下,式(21)概率常被称为预测,基于以前状态的后验,在综合时刻t的测量之前,预测时刻t的状态。由
b
e
l
‾
(
x
t
)
\overline{bel}(x_{t})
bel(xt)计算
b
e
l
(
x
t
)
bel(x_{t})
bel(xt)称为修正或测量更新。
2.2.5 贝叶斯算法
\qquad
该算法依据测量和控制数据计算置信度分布bel(),伪代码如下所示:
1:
\qquad
Algorithm Bayes_filter (bel(x_{t-1}),u_{t},z_{t})
2:
\qquad \quad
for all
x
t
\ x_{t}
xt do
3:
\qquad \quad \quad
b
e
l
‾
\overline{bel}
bel(x_{t})=
∫
\int
∫p(x_{t}|u_{t},x_{t-1}) bel(x_{t-1}) dx_{t-1}
4:
\qquad \quad \quad
bel(x_{t})=
η
\eta
η p(z_{t}|x_{t})
b
e
l
‾
\overline{bel}
bel(x_{t})
5:
\qquad \quad
endfor
6:
\qquad \quad
return bel(x_{t})
\qquad
第3行中,通过
u
t
u_{t}
ut和置信度
b
e
l
(
x
t
−
1
)
{bel}(x_{t-1})
bel(xt−1)预测状态
x
t
x_{t}
xt得置信度
b
e
l
‾
(
x
t
)
\overline{bel}(x_{t})
bel(xt)。
\qquad
第4行中,通过观测的测量值
z
t
z_{t}
zt的概率乘以置信度
b
e
l
‾
(
x
t
)
\overline{bel}(x_{t})
bel(xt)和归一化常数
η
\eta
η (由全概率公式之和为1算出) 计算
b
e
l
(
x
t
)
bel(x_{t})
bel(xt)。
以下总结自《最优状态估计》【美】Dan Simon 著
2.3 Kalman滤波
图
2
K
a
l
m
a
n
滤
波
状
态
随
时
间
变
化
过
程
图2\quad Kalman滤波状态随时间变化过程
图2Kalman滤波状态随时间变化过程
\qquad
每一步Kalman滤波过程(由k-1时刻到k时刻)可以分为两个步骤:
\qquad\quad
1. 依据状态时间系统方程,实现由k-1时刻状态估计值的后验(
x
^
k
−
1
+
\hat{x}_{k-1}^{+}
x^k−1+)到k时刻状态估计值的先验(
x
^
k
−
\hat{x}_{k}^{-}
x^k−)的估计。
\qquad\quad
2. 利用在k时刻获得对状态带有噪声的测量值(
y
k
y_{k}
yk),依据线性递推方程求解当估计误差的方差和最小的Kalman增益(
K
k
K_{k}
Kk),再带入到递推方程得到k时刻状态后验(
x
^
k
+
\hat{x}_{k}^{+}
x^k+)。
2.3.1 离散时间系统
\qquad
给出离散时间系统方程:
x
k
=
F
k
−
1
x
k
−
1
+
G
k
−
1
u
k
−
1
+
w
k
−
1
(
22
)
x_{k}=F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}\qquad (22)
xk=Fk−1xk−1+Gk−1uk−1+wk−1(22)
\qquad
其中
u
k
u_{k}
uk是已知的输入,
w
k
w_{k}
wk是零均值的高斯白噪声,协方差为
Q
k
Q_{k}
Qk,
x
k
x_{k}
xk为在k时刻的状态,
F
k
−
1
F_{k-1}
Fk−1为由k-1时刻的状态到k时刻的状态转移矩阵,
G
k
−
1
G_{k-1}
Gk−1为k-1时刻输入到状态的转移矩阵。
\qquad
状态
x
t
x_{t}
xt的均值随时间的变化方程:
x
‾
k
=
E
(
x
k
)
=
F
k
−
1
x
‾
k
−
1
+
G
k
−
1
u
k
−
1
(
23
)
\overline{x}_{k}=E(x_{k})=F_{k-1}\overline{x}_{k-1}+G_{k-1}u_{k-1}\qquad(23)
xk=E(xk)=Fk−1xk−1+Gk−1uk−1(23)
\qquad
状态
x
t
x_{t}
xt的方差随时间的变化方程:
(
x
k
−
x
‾
k
)
(
x
k
−
x
‾
k
)
T
(x_{k}-\overline{x}_{k})(x_{k}-\overline{x}_{k})^{T}
(xk−xk)(xk−xk)T
=
(
F
k
−
1
x
k
−
1
+
G
k
−
1
u
k
−
1
+
w
k
−
1
−
x
‾
k
)
(
F
k
−
1
x
k
−
1
+
G
k
−
1
u
k
−
1
+
w
k
−
1
−
x
‾
k
)
T
=(F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}-\overline{x}_{k})(F_{k-1}x_{k-1}+G_{k-1}u_{k-1}+w_{k-1}-\overline{x}_{k})^{T}
=(Fk−1xk−1+Gk−1uk−1+wk−1−xk)(Fk−1xk−1+Gk−1uk−1+wk−1−xk)T
=
[
F
k
−
1
(
x
k
−
1
−
x
‾
k
−
1
)
+
w
k
−
1
]
[
F
k
−
1
(
x
k
−
1
−
x
‾
k
−
1
)
+
w
k
−
1
]
T
=[F_{k-1}(x_{k-1}-\overline{x}_{k-1})+w_{k-1}][F_{k-1}(x_{k-1}-\overline{x}_{k-1})+w_{k-1}]^{T}
=[Fk−1(xk−1−xk−1)+wk−1][Fk−1(xk−1−xk−1)+wk−1]T
=
F
k
−
1
(
x
k
−
1
−
x
‾
k
−
1
)
(
x
k
−
1
−
x
‾
k
−
1
)
T
F
k
−
1
T
+
w
k
−
1
w
k
−
1
T
+
F
k
−
1
(
x
k
−
1
−
x
‾
k
−
1
)
w
k
−
1
T
+
w
k
−
1
(
x
k
−
1
−
x
‾
k
−
1
)
T
F
k
−
1
T
(
24
)
=F_{k-1}(x_{k-1}-\overline{x}_{k-1})(x_{k-1}-\overline{x}_{k-1})^{T}F_{k-1}^{T}+w_{k-1}w_{k-1}^{T}+F_{k-1}(x_{k-1}-\overline{x}_{k-1})w_{k-1}^{T}+w_{k-1}(x_{k-1}-\overline{x}_{k-1})^{T}F_{k-1}^{T}\qquad(24)
=Fk−1(xk−1−xk−1)(xk−1−xk−1)TFk−1T+wk−1wk−1T+Fk−1(xk−1−xk−1)wk−1T+wk−1(xk−1−xk−1)TFk−1T(24)
\qquad
取上式方程期望即为
x
k
x_{k}
xk的协方差,由
(
x
k
−
x
‾
k
)
(x_{k}-\overline{x}_{k})
(xk−xk)与
w
k
−
1
w_{k-1}
wk−1互不相关且
E
(
w
k
−
1
)
=
0
E(w_{k-1})=0
E(wk−1)=0则上式化简为:
P
k
=
E
[
(
x
k
−
x
‾
k
)
(
x
k
−
x
‾
k
)
T
]
=
F
k
−
1
P
k
−
1
F
k
−
1
T
+
Q
k
−
1
(
25
)
P_{k}=E[(x_{k}-\overline{x}_{k})(x_{k}-\overline{x}_{k})^{T}]=F_{k-1}P_{k-1}F_{k-1}^{T}+Q_{k-1}\qquad(25)
Pk=E[(xk−xk)(xk−xk)T]=Fk−1Pk−1Fk−1T+Qk−1(25)
\qquad
上式称为离散时间Lyapunov方程或Stein方程。由上式可得Kalman滤波先验估计:
x
^
k
−
=
F
k
−
1
x
^
k
−
1
+
+
G
k
−
1
u
k
−
1
(
状
态
先
验
估
计
)
(
26
)
\hat{x}_{k}^{-}=F_{k-1}\hat{x}_{k-1}^{+}+G_{k-1}u_{k-1}\quad(状态先验估计)\qquad(26)
x^k−=Fk−1x^k−1++Gk−1uk−1(状态先验估计)(26)
P
k
−
=
F
k
−
1
P
k
−
1
+
F
k
−
1
T
+
Q
k
−
1
(
协
方
差
先
验
估
计
)
(
27
)
P_{k}^{-}=F_{k-1}P_{k-1}^{+}F_{k-1}^{T}+Q_{k-1}\quad(协方差先验估计)\qquad(27)
Pk−=Fk−1Pk−1+Fk−1T+Qk−1(协方差先验估计)(27)
2.3.2 递推最小二乘估计
\qquad
利用最小二乘估计计算递推式中最优Kalman增益
K
k
K_{k}
Kk。线性的递推估计值为:
y
k
=
H
k
x
k
+
v
k
(
28
)
y_{k}=H_{k}x_{k}+v_{k}\qquad(28)
yk=Hkxk+vk(28)
x
^
k
=
x
^
k
−
1
+
K
k
(
y
k
−
H
k
x
^
k
−
1
)
(
29
)
\hat{x}_{k}=\hat{x}_{k-1}+K_{k}(y_{k}-H_{k}\hat{x}_{k-1})\qquad(29)
x^k=x^k−1+Kk(yk−Hkx^k−1)(29)式中
H
k
H_{k}
Hk为测量矩阵,
v
k
v_{k}
vk为均值为0,方差为
R
k
R_{k}
Rk的测量噪声(高斯白噪声)。
K
k
K_{k}
Kk为增益矩阵,
(
y
k
−
H
k
x
^
k
−
1
)
(y_{k}-H_{k}\hat{x}_{k-1})
(yk−Hkx^k−1)为修正项。
K
k
K_{k}
Kk选择的最优标准使k时刻的估计误差的方差和最小,其方差和
J
k
J_{k}
Jk如下所示:
J
k
=
E
[
(
x
1
,
k
−
x
^
1
,
k
)
2
]
+
…
+
E
[
(
x
n
,
k
−
x
^
n
,
k
)
2
]
J_{k}=E[(x_{1,k}-\hat{x}_{1,k})^{2}]+\ldots+E[(x_{n,k}-\hat{x}_{n,k})^{2}]
Jk=E[(x1,k−x^1,k)2]+…+E[(xn,k−x^n,k)2]
=
E
(
ε
x
1
,
k
2
+
…
+
ε
x
n
,
k
2
)
=
E
(
ε
x
,
k
T
ε
x
,
k
)
=E(\varepsilon_{x1,k}^{2}+\ldots+\varepsilon_{xn,k}^{2})=E(\varepsilon_{x,k}^{T}\varepsilon_{x,k})
=E(εx1,k2+…+εxn,k2)=E(εx,kTεx,k)
=
E
[
T
r
(
ε
x
,
k
ε
x
,
k
T
)
]
=E[Tr(\varepsilon_{x,k}^{}\varepsilon_{x,k}^{T})]
=E[Tr(εx,kεx,kT)]
=
T
r
P
k
(
30
)
=TrP_{k}\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad(30)
=TrPk(30)
由:
E
(
ε
x
,
k
)
=
E
(
x
−
x
^
k
)
=
E
[
x
−
x
^
k
−
1
−
K
k
(
y
k
−
H
k
x
^
k
−
1
)
]
E(\varepsilon_{x,k})=E(x_{}-\hat{x}_{k})=E[x_{}-\hat{x}_{k-1}-K_{k}(y_{k}-H_{k}\hat{x}_{k-1})]
E(εx,k)=E(x−x^k)=E[x−x^k−1−Kk(yk−Hkx^k−1)]
=
E
[
x
−
x
^
k
−
1
−
K
k
(
H
k
x
+
v
k
−
H
k
x
^
k
−
1
)
]
=E[x_{}-\hat{x}_{k-1}-K_{k}(H_{k}x_{}+v_{k}-H_{k}\hat{x}_{k-1})]
=E[x−x^k−1−Kk(Hkx+vk−Hkx^k−1)]
=
E
[
ε
x
,
k
−
1
−
K
k
H
k
ε
x
,
k
−
1
−
K
k
v
k
]
=E[\varepsilon_{x,k-1}-K_{k}H_{k}\varepsilon_{x,k-1}-K_{k}v_{k}]\qquad
=E[εx,k−1−KkHkεx,k−1−Kkvk]
=
(
I
−
K
k
H
k
)
E
(
ε
x
,
k
−
1
)
−
K
k
E
(
v
k
)
(
31
)
=(I-K_{k}H_{k})E(\varepsilon_{x,k-1})-K_{k}E(v_{k})\qquad\qquad(31)
=(I−KkHk)E(εx,k−1)−KkE(vk)(31)
式中
P
k
P_{k}
Pk是估计误差的协方差矩阵
ε
x
,
k
=
[
ε
x
1
,
k
,
ε
x
2
,
k
⋯
ε
x
n
,
k
]
T
(
32
)
\varepsilon_{x,k}=[\varepsilon_{x1,k},\varepsilon_{x2,k}\cdots\varepsilon_{xn,k}]^{T}\qquad(32)
εx,k=[εx1,k,εx2,k⋯εxn,k]T(32)
P
k
=
[
E
(
ε
x
1
,
k
2
)
E
(
ε
x
1
,
k
ε
x
2
,
k
)
⋯
E
(
ε
x
1
,
k
ε
x
n
,
k
)
⋮
⋱
⋮
E
(
ε
x
n
,
k
)
E
(
ε
x
1
,
k
)
E
(
ε
x
n
,
k
ε
x
2
,
k
)
⋯
E
(
ε
x
n
,
k
2
)
]
(
33
)
P_{k}=\begin{bmatrix} E(\varepsilon_{x1,k}^{2}) &E(\varepsilon_{x1,k}\varepsilon_{x2,k}) & \cdots & E(\varepsilon_{x1,k}\varepsilon_{xn,k}) \\ \vdots & \ddots & \vdots \\ E(\varepsilon_{xn,k}) E(\varepsilon_{x1,k}) &E(\varepsilon_{xn,k}\varepsilon_{x2,k})& \cdots & E(\varepsilon_{xn,k}^{2}) \end{bmatrix}\qquad(33)
Pk=⎣⎢⎡E(εx1,k2)⋮E(εxn,k)E(εx1,k)E(εx1,kεx2,k)⋱E(εxn,kεx2,k)⋯⋮⋯E(εx1,kεxn,k)E(εxn,k2)⎦⎥⎤(33)化简
P
k
P_{k}
Pk可得:
P
k
=
E
(
ε
x
,
k
ε
x
,
k
T
)
P_{k}=E(\varepsilon_{x,k}\varepsilon_{x,k}^{T})
Pk=E(εx,kεx,kT)
=
E
{
[
(
I
−
K
k
H
k
)
ε
x
,
k
−
1
−
K
k
v
k
]
[
(
I
−
K
k
H
k
)
ε
x
,
k
−
1
−
K
k
v
k
]
T
}
=E\{[(I-K_{k}H_{k})\varepsilon_{x,k-1}-K_{k}v_{k}][(I-K_{k}H_{k})\varepsilon_{x,k-1}-K_{k}v_{k}]^{T}\}
=E{[(I−KkHk)εx,k−1−Kkvk][(I−KkHk)εx,k−1−Kkvk]T}
=
(
I
−
K
k
H
k
)
E
(
ε
x
,
k
−
1
ε
x
,
k
−
1
T
)
(
I
−
K
k
H
k
)
T
−
K
k
E
(
v
k
ε
x
,
k
−
1
T
)
(
I
−
K
k
H
k
)
T
−
(
I
−
K
k
H
k
)
E
(
v
k
T
ε
x
,
k
−
1
)
K
k
T
+
K
k
E
(
v
k
v
k
T
)
K
k
T
(
34
)
=(I-K_{k}H_{k})E(\varepsilon_{x,k-1}\varepsilon_{x,k-1}^{T})(I-K_{k}H_{k})^{T}-K_{k}E(v_{k}\varepsilon_{x,k-1}^{T})(I-K_{k}H_{k})^{T}-(I-K_{k}H_{k})^{}E(v_{k}^{T}\varepsilon_{x,k-1}^{})K_{k}^{T}+K_{k}E(v_{k}v_{k}^{T})K_{k}^{T}\qquad(34)
=(I−KkHk)E(εx,k−1εx,k−1T)(I−KkHk)T−KkE(vkεx,k−1T)(I−KkHk)T−(I−KkHk)E(vkTεx,k−1)KkT+KkE(vkvkT)KkT(34)
\qquad
由
ε
x
,
k
−
1
\varepsilon_{x,k-1}
εx,k−1(k-1时刻的估计误差)与
v
k
v_{k}
vk(k时刻的测量噪声)相互独立又
E
(
v
k
)
E(v_{k})
E(vk)=0,因此:
E
(
v
k
T
ε
x
,
k
−
1
)
=
E
(
v
k
)
E
(
ε
x
,
k
−
1
)
=
0
(
35
)
E(v_{k}^{T}\varepsilon_{x,k-1}^{})=E(v_{k})E(\varepsilon_{x,k-1})=0\qquad(35)
E(vkTεx,k−1)=E(vk)E(εx,k−1)=0(35)
P
k
=
(
I
−
K
k
H
k
)
P
k
−
1
(
I
−
K
k
H
k
)
T
+
K
k
R
k
K
k
T
=
(
I
−
K
k
H
k
)
P
k
−
1
(
36
)
\qquad\qquad P_{k}=(I-K_{k}H_{k})P_{k-1}(I-K_{k}H_{k})^{T}+K_{k}R_{k}K_{k}^{T}=(I-K_{k}H_{k})P_{k-1}\qquad(36)
Pk=(I−KkHk)Pk−1(I−KkHk)T+KkRkKkT=(I−KkHk)Pk−1(36)
\qquad
对
J
k
J_{k}
Jk求导得:
∂
J
k
∂
K
k
=
(
I
−
K
k
H
k
)
P
k
−
1
(
−
H
k
T
)
+
K
k
R
k
=
0
(
37
)
\frac{\partial J_{k}}{\partial K_{k}}=(I-K_{k}H_{k})P_{k-1}(-H_{k}^{T})+K_{k}R_{k}=0\qquad(37)
∂Kk∂Jk=(I−KkHk)Pk−1(−HkT)+KkRk=0(37)
\qquad
求的:
K
k
=
P
k
−
1
H
k
T
(
H
k
P
k
−
1
H
k
T
+
R
k
)
−
1
(
38
)
K_{k}=P_{k-1}H_{k}^{T}(H_{k}P_{k-1}H_{k}^{T}+R_{k})^{-1}\qquad(38)
Kk=Pk−1HkT(HkPk−1HkT+Rk)−1(38)由以上可得Kalman滤波测量更新:
K
k
=
P
k
−
H
k
T
(
H
k
P
k
−
H
k
T
+
R
k
)
−
1
(
39
)
K_{k}=P_{k}^{-}H_{k}^{T}(H_{k}P_{k}^{-}H_{k}^{T}+R_{k})^{-1}\qquad(39)
Kk=Pk−HkT(HkPk−HkT+Rk)−1(39)
x
^
k
+
=
x
^
k
−
+
K
k
(
y
k
−
H
k
x
^
k
−
)
(
后
验
分
布
)
(
40
)
\hat{x}_{k}^{+}=\hat{x}_{k}^{-}+K_{k}(y_{k}-H_{k}\hat{x}_{k}^{-})\quad(后验分布)\qquad(40)
x^k+=x^k−+Kk(yk−Hkx^k−)(后验分布)(40)
P
k
+
=
(
I
−
K
k
H
k
)
P
k
−
(
41
)
P_{k}^{+}=(I-K_{k}H_{k})P_{k}^{-}\qquad(41)
Pk+=(I−KkHk)Pk−(41)
\qquad
递推方程中递推的时间间隔是由k时刻到k-1时刻表示,而应用在更新方程中是在同一个时刻,只是先验和后验的差距(是否获得在k时刻的测量值)。
\qquad
先验是指以k-1时刻和之前的测量值估计
x
k
x_{k}
xk的状态值,计算方法为以k-1时刻和之前的测量值为条件计算
x
k
x_{k}
xk的期望值。后验则是在先验的基础上增加k时刻的测量值
y
k
y_{k}
yk。
\qquad
有以上两步,得Kalman系统方程:
x
^
k
−
=
F
k
−
1
x
^
k
−
1
+
+
G
k
−
1
u
k
−
1
(
状
态
先
验
估
计
)
(
42
)
\hat{x}_{k}^{-}=F_{k-1}\hat{x}_{k-1}^{+}+G_{k-1}u_{k-1}\quad(状态先验估计)\qquad(42)
x^k−=Fk−1x^k−1++Gk−1uk−1(状态先验估计)(42)
P
k
−
=
F
k
−
1
P
k
−
1
+
F
k
−
1
T
+
Q
k
−
1
(
协
方
差
先
验
估
计
)
(
43
)
P_{k}^{-}=F_{k-1}P_{k-1}^{+}F_{k-1}^{T}+Q_{k-1}\quad(协方差先验估计)\qquad(43)
Pk−=Fk−1Pk−1+Fk−1T+Qk−1(协方差先验估计)(43)
K
k
=
P
k
−
H
k
T
(
H
k
P
k
−
H
k
T
+
R
k
)
−
1
(
44
)
K_{k}=P_{k}^{-}H_{k}^{T}(H_{k}P_{k}^{-}H_{k}^{T}+R_{k})^{-1}\qquad(44)
Kk=Pk−HkT(HkPk−HkT+Rk)−1(44)
x
^
k
+
=
x
^
k
−
+
K
k
(
y
k
−
H
k
x
^
k
−
)
(
后
验
分
布
)
(
45
)
\hat{x}_{k}^{+}=\hat{x}_{k}^{-}+K_{k}(y_{k}-H_{k}\hat{x}_{k}^{-})\quad(后验分布)\qquad(45)
x^k+=x^k−+Kk(yk−Hkx^k−)(后验分布)(45)
P
k
+
=
(
I
−
K
k
H
k
)
P
k
−
(
46
)
P_{k}^{+}=(I-K_{k}H_{k})P_{k}^{-}\qquad(46)
Pk+=(I−KkHk)Pk−(46)
\qquad
Kalman滤波器初始化如下:
x
^
0
+
=
E
(
x
0
)
=
x
‾
0
(
47
)
\hat{x}_{0}^{+}=E(x_{0})=\overline{x}_{0}\qquad(47)
x^0+=E(x0)=x0(47)
P
0
+
=
E
[
(
x
0
−
x
^
0
+
)
(
x
0
−
x
^
0
+
)
T
]
(
48
)
P^{+}_{0}=E[(x_{0}-\hat{x}^{+}_{0})(x_{0}-\hat{x}^{+}_{0})^{T}]\qquad(48)
P0+=E[(x0−x^0+)(x0−x^0+)T](48)
\qquad
由式(47)可以实现推导过程中运算多项式中状态期望和状态估计值的联系。