【卡尔曼滤波算法剖析】1.3 协方差矩阵
卡尔曼滤波算法
卡尔曼滤波是一种基于“预测–更新”递归框架的最优线性估计器:以状态转移模型先验递推系统状态及其协方差,再以观测数据通过最小化估计协方差进行后验校正,从而在过程与测量噪声并存的环境下给出最小均方误差意义下的最优估计。
1.3 协方差矩阵
在讲解协方差矩阵的时候,先来看下方差的计算,如式
(
14
)
(14)
(14)所示:
x
ˉ
=
1
k
∑
i
=
1
k
x
i
σ
x
x
2
=
1
k
∑
i
=
1
k
(
x
i
−
x
ˉ
)
2
(14)
\begin{aligned} \bar{x} &= \frac{1}{k} \sum_{i=1}^{k} x_i \\ \sigma_{xx}^2 &= \frac{1}{k} \sum_{i=1}^{k} \left( x_i - \bar{x} \right)^2 \end{aligned} \tag{14}
xˉσxx2=k1i=1∑kxi=k1i=1∑k(xi−xˉ)2(14)
根据式
(
14
)
(14)
(14)扩展得到协方差的计算,如式
(
15
)
(15)
(15)所示:
x
ˉ
=
1
k
∑
i
=
1
k
x
i
,
y
ˉ
=
1
k
∑
i
=
1
k
y
i
σ
x
y
2
=
σ
y
x
2
=
1
k
∑
i
=
1
k
(
x
i
−
x
ˉ
)
(
y
i
−
y
ˉ
)
(15)
\begin{aligned} \bar{x} &= \frac{1}{k} \sum_{i=1}^{k} x_i, \bar{y} = \frac{1}{k} \sum_{i=1}^{k} y_i \\ \sigma_{xy}^2 &= \sigma_{yx}^2 = \frac{1}{k} \sum_{i=1}^{k} \left( x_i - \bar{x} \right) \left( y_i - \bar{y} \right) \end{aligned} \tag{15}
xˉσxy2=k1i=1∑kxi,yˉ=k1i=1∑kyi=σyx2=k1i=1∑k(xi−xˉ)(yi−yˉ)(15)
Eg2:如下系统:

系统微分方程如式
(
16
)
(16)
(16)所示:
F
−
k
x
−
B
x
˙
=
m
x
¨
(16)
F - kx - B\dot{x} = m\ddot{x} \tag{16}
F−kx−Bx˙=mx¨(16)
取状态量
{
x
1
=
x
x
2
=
x
˙
\begin{cases}x_1 = x \\x_2 = \dot{x}\end{cases}
{x1=xx2=x˙,则系统状态空间方程:关键每一行为一阶微分方程,如式
(
17
)
(17)
(17)所示:
F
−
k
x
−
B
x
˙
=
m
x
¨
⟹
x
¨
=
−
k
m
x
−
B
m
x
˙
+
F
m
{
x
1
=
x
x
2
=
x
˙
{
x
˙
1
=
x
˙
=
x
2
x
˙
2
=
x
¨
=
−
k
m
x
−
B
m
x
˙
+
F
m
⟹
[
x
˙
1
x
˙
2
]
=
[
0
1
−
k
m
−
B
m
]
[
x
1
x
2
]
+
[
0
1
m
]
F
(17)
\begin{aligned} &F - kx - B\dot{x} = m\ddot{x} \implies \ddot{x} = -\frac{k}{m}x - \frac{B}{m}\dot{x} + \frac{F}{m} \\ &\begin{cases} x_1 = x \\ x_2 = \dot{x} \end{cases} \\ &\begin{cases} \dot{x}_1 = \dot{x} = x_2 \\ \dot{x}_2 = \ddot{x} = -\frac{k}{m}x - \frac{B}{m}\dot{x} + \frac{F}{m} \end{cases} \implies \\ &\begin{bmatrix} \dot{x}_1 \\ \dot{x}_2 \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ -\frac{k}{m} & -\frac{B}{m} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} + \begin{bmatrix} 0 \\ \frac{1}{m} \end{bmatrix} F \end{aligned} \tag{17}
F−kx−Bx˙=mx¨⟹x¨=−mkx−mBx˙+mF{x1=xx2=x˙{x˙1=x˙=x2x˙2=x¨=−mkx−mBx˙+mF⟹[x˙1x˙2]=[0−mk1−mB][x1x2]+[0m1]F(17)
测量量定义,如式
(
18
)
(18)
(18)所示:
z
1
z_1
z1:所测量的位置量;
z
2
z_2
z2:所测量的速度量;
{
z
1
=
x
=
x
1
z
2
=
x
˙
=
x
2
(18)
\begin{cases} z_1 = x = x_1 \\ z_2 = \dot{x} = x_2 \end{cases} \tag{18}
{z1=x=x1z2=x˙=x2(18)
化成一般形式,如式
(
19
)
(19)
(19)所示:
{
[
x
˙
1
x
˙
2
]
=
[
0
1
−
k
m
−
B
m
]
[
x
1
x
2
]
+
[
0
1
m
]
F
⟹
X
˙
(
t
)
=
A
X
(
t
)
+
B
U
(
t
)
{
[
z
1
z
2
]
=
[
1
0
0
1
]
[
x
1
x
2
]
⟹
Z
(
t
)
=
H
X
(
t
)
(19)
\begin{gathered} \begin{cases} \begin{bmatrix} \dot{x}_1 \\ \dot{x}_2 \end{bmatrix} = \begin{bmatrix} 0 & 1 \\ -\frac{k}{m} & -\frac{B}{m} \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} + \begin{bmatrix} 0 \\ \frac{1}{m} \end{bmatrix} F \implies \dot{X}(t) = AX(t) + BU(t) \end{cases} \\[6pt] % 增加垂直间距 \begin{cases} \begin{bmatrix} z_1 \\ z_2 \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} x_1 \\ x_2 \end{bmatrix} \implies Z(t) = HX(t) \end{cases} \end{gathered} \tag{19}
{[x˙1x˙2]=[0−mk1−mB][x1x2]+[0m1]F⟹X˙(t)=AX(t)+BU(t){[z1z2]=[1001][x1x2]⟹Z(t)=HX(t)(19)
离散化,如式
(
20
)
(20)
(20)所示:
{
X
k
=
A
X
k
−
1
+
B
U
k
Z
k
=
H
X
k
(20)
\begin{cases} {X}_k = AX_{k - 1} + BU_k \\ Z_k = HX_k \end{cases} \tag{20}
{Xk=AXk−1+BUkZk=HXk(20)
考虑系统不确定性与时间连续性:即系统包含过程噪声
w
k
−
1
w_{k-1}
wk−1和测量噪声
v
k
v_k
vk,如式(21)所示:
{
X
˙
k
=
A
X
k
−
1
+
B
U
k
+
w
k
−
1
Z
k
=
H
X
k
+
v
k
(21)
\begin{cases} \dot{X}_k = AX_{k - 1} + BU_k + w_{k - 1} \\ Z_k = HX_k + v_k \end{cases} \tag{21}
{X˙k=AXk−1+BUk+wk−1Zk=HXk+vk(21)
问题:如何通过计算结果
X
k
X_k
Xk和测量
Z
k
Z_k
Zk估计相对更为精确的结果:
X
^
k
\hat{X}_k
X^k。
解决方案:计算结果
X
k
X_k
Xk和测量
Z
k
Z_k
Zk曲线融合 Fusion。
参考资料
更多推荐
所有评论(0)