卡尔曼滤波理解
关于卡尔曼滤波的理解
核心是从多种不确定的信息中提取出有价值的信息,进而得到一个更确定的结果。
注:在概率论和统计学中,协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况,即当两个变量是相同的情况。
卡尔曼滤波公式推导
x
k
=
A
∗
x
k
−
1
+
B
∗
u
k
+
w
k
−
1
(1)
x_k = A * x_{k-1} + B * u_k + w_{k-1}\tag{1}
xk=A∗xk−1+B∗uk+wk−1(1)
z
k
=
H
∗
x
k
+
v
k
(2)
z_k = H * x_k + v_k\tag{2}
zk=H∗xk+vk(2)
其中,各变量表征的意义为:
x
k
x_k
xk 系统状态矩阵,-------,
z
k
z_k
zk 状态阵的观测量(实测)
A A A 状态转移矩阵 ,-------, B B B 控制输入矩阵
H H H 状态观测矩阵
w
k
−
1
w_{k-1}
wk−1过程噪声,-------,
v
k
v_k
vk 测量噪声
如果大家学过《现代控制理论》的话,对上述模型的描述形式一定不会陌生,只是多了变量
w
k
−
1
w_{k-1}
wk−1与
v
k
v_k
vk 。其中,
w
k
−
1
w_{k-1}
wk−1 代表过程噪声,
v
k
v_k
vk代表测量噪声,且为高斯白噪声,协方差分别为
Q
Q
Q和
R
R
R。
对于状态估计算法而言,我们可以获取状态量的三个值:状态预测值(
x
k
−
x_k^-
xk−)、最优估计值(
x
~
k
\widetilde{x}_k
x
k)以及真实值(
x
k
x_k
xk),卡尔曼滤波的原理就是利用卡尔曼增益来修正状态预测值,使其逼近真实值。
卡尔曼滤波的推到分为两个过程:
1、状态估计协方差
p
k
p_k
pk 的推导,即代价函数的求取;
2、卡尔曼增益矩阵及其他准则的推导;
1.1 状态估计协方差
p
k
p_k
pk
x
k
x_k
xk状态的真实值;
x ~ k − \widetilde{x}_k^- x k− 状态的预测值,也称先验状态估计值(a prior state estimate);
x ~ k \widetilde{x}_k x k 状态的最优估计值,也称后验状态估计值(a posteriori state estimate);
状态预测值
x
~
k
−
\widetilde{x}_k^-
x
k− 由状态预测方程可得:黄金1条
x
~
k
−
=
A
∗
x
~
k
−
1
−
+
B
∗
u
k
(3)
\widetilde{x}_k^-=A*\widetilde{x}_{k-1}^-+B*u_k\tag{3}
x
k−=A∗x
k−1−+B∗uk(3)状态最优估计值
x
~
k
\widetilde{x}_k
x
k 可由状态更新方程可得:黄金2条
x
~
k
=
x
~
k
−
+
K
(
z
k
−
H
∗
x
~
k
−
)
(4)
\widetilde{x}_k=\widetilde{x}_k^-+K(z_k-H*\widetilde{x}_k^-)\tag{4}
x
k=x
k−+K(zk−H∗x
k−)(4)通过该方程可知,卡尔曼增益
K
K
K 实际上表征了状态最优估计过程中模型预测误差(Predicted error)与量测误差(Measurement error)的比重(如下所示),即
k
∈
[
0
,
1
]
k\in[0,1]
k∈[0,1]。当
k
=
0
k=0
k=0时,即预测误差为0,系统的状态值完全取决于预测值(
x
~
k
=
x
~
k
−
\widetilde{x}_k=\widetilde{x}_k^-
x
k=x
k− );而当
k
=
1
k=1
k=1 时,即量测误差为0,系统的状态值完全取决于量侧值。
k
=
P
r
e
d
i
c
t
e
d
e
r
r
o
r
/
(
P
r
e
d
i
c
t
e
d
e
r
r
o
r
+
M
e
a
s
u
r
e
m
e
n
t
e
r
r
o
r
)
k= Predicted error/ (Predicted error + Measurement error)
k=Predictederror/(Predictederror+Measurementerror)因此,可令:
其中: