赞
踩
flyfish
测量向量和观测变量在卡尔曼滤波的上下文中通常是同一个意思。它们都指的是从系统中直接获得的数据,这些数据用于更新系统的状态估计。可以是从传感器或测量设备直接获得的数据。这些数据反映了系统在某一时刻的状态或者实际观测到的值,但通常带有噪声。
状态向量映射到观测向量的过程通过观测矩阵 H \mathbf{H} H 实现。观测矩阵 H \mathbf{H} H 描述了系统状态如何映射到观测值。下面通过一个具体的例子来详细说明这一过程。
构造观测矩阵 H \mathbf{H} H 的步骤包括:
假设我们有一个物体在一维直线上运动,我们希望估计其位置和速度,并且我们可以直接观测到位置,但不能直接观测到速度。
状态向量定义为:
x
k
=
[
x
k
v
k
]
\mathbf{x}_k = [xkvk]
xk=[xkvk]
其中,
x
k
x_k
xk 是位置,
v
k
v_k
vk 是速度。
我们可以直接测量位置
x
k
x_k
xk,但不能直接测量速度
v
k
v_k
vk。因此,观测向量定义为:
z
k
=
[
z
k
]
\mathbf{z}_k = [zk]
zk=[zk]
其中,
z
k
z_k
zk 是我们观测到的位置。
观测方程描述了观测向量如何由状态向量生成。在这个例子中,观测向量只包含位置,因此观测矩阵
H
\mathbf{H}
H 为:
z
k
=
H
x
k
+
v
k
\mathbf{z}_k = \mathbf{H} \mathbf{x}_k + \mathbf{v}_k
zk=Hxk+vk
其中,
v
k
\mathbf{v}_k
vk 是观测噪声。
对于这个例子,观测矩阵
H
\mathbf{H}
H 是:
H
=
[
1
0
]
\mathbf{H} = [10]
H=[10]
这样,观测方程可以写成:
z
k
=
1
⋅
x
k
+
0
⋅
v
k
+
v
k
z_k = 1 \cdot x_k + 0 \cdot v_k + v_k
zk=1⋅xk+0⋅vk+vk
即:
z
k
=
x
k
+
v
k
z_k = x_k + v_k
zk=xk+vk
通过上面的分析,我们得到了观测矩阵
H
\mathbf{H}
H:
H
=
[
1
0
]
\mathbf{H} = [10]
H=[10]
假设我们有一个物体在二维平面上运动,我们希望估计其二维位置和速度,并且我们可以直接观测到位置,但不能直接观测到速度。
状态向量定义为:
x
k
=
[
x
k
y
k
v
x
,
k
v
y
,
k
]
\mathbf{x}_k = [xkykvx,kvy,k]
xk=
xkykvx,kvy,k
其中,
x
k
x_k
xk 和
y
k
y_k
yk 是位置,
v
x
,
k
v_{x,k}
vx,k 和
v
y
,
k
v_{y,k}
vy,k 是速度。
我们可以直接测量位置
x
k
x_k
xk 和
y
k
y_k
yk,但不能直接测量速度
v
x
,
k
v_{x,k}
vx,k 和
v
y
,
k
v_{y,k}
vy,k。因此,观测向量定义为:
z
k
=
[
z
x
,
k
z
y
,
k
]
\mathbf{z}_k = [zx,kzy,k]
zk=[zx,kzy,k]
其中,
z
x
,
k
z_{x,k}
zx,k 和
z
y
,
k
z_{y,k}
zy,k 是我们观测到的位置。
观测方程描述了观测向量如何由状态向量生成。在这个例子中,观测向量只包含位置,因此观测矩阵
H
\mathbf{H}
H 为:
z
k
=
H
x
k
+
v
k
\mathbf{z}_k = \mathbf{H} \mathbf{x}_k + \mathbf{v}_k
zk=Hxk+vk
其中,
v
k
\mathbf{v}_k
vk 是观测噪声。
对于这个例子,观测矩阵
H
\mathbf{H}
H 是:
H
=
[
1
0
0
0
0
1
0
0
]
\mathbf{H} = [10000100]
H=[10010000]
这样,观测方程可以写成:
[
z
x
,
k
z
y
,
k
]
=
[
1
0
0
0
0
1
0
0
]
[
x
k
y
k
v
x
,
k
v
y
,
k
]
+
[
v
x
,
k
v
y
,
k
]
[zx,kzy,k] = [10000100] [xkykvx,kvy,k] + [vx,kvy,k]
[zx,kzy,k]=[10010000]
xkykvx,kvy,k
+[vx,kvy,k]
即:
[
z
x
,
k
z
y
,
k
]
=
[
x
k
y
k
]
+
[
v
x
,
k
v
y
,
k
]
[zx,kzy,k] = [xkyk] + [vx,kvy,k]
[zx,kzy,k]=[xkyk]+[vx,kvy,k]
通过上面的分析,我们得到了观测矩阵
H
\mathbf{H}
H:
H
=
[
1
0
0
0
0
1
0
0
]
\mathbf{H} = [10000100]
H=[10010000]
测量向量包含实际观测或测量得到的数据。它通常是状态向量的一部分或线性变换。
观测矩阵将状态向量映射到测量向量,表示从状态向量到测量向量的关系。它定义了哪些状态变量是可观测的以及如何被观测。
假设我们要跟踪一个在平面上运动的物体,其状态包括位置和速度:
在卡尔曼滤波中,预测步骤利用状态转移矩阵和控制输入预测系统的下一个状态。具体步骤如下:
测量向量通过观测矩阵可以得到预测测量值。这一过程是将状态向量映射到测量空间的关键步骤,用于比较实际测量值和预测测量值,从而更新状态估计。观测矩阵和测量残差一起在卡尔曼滤波器中发挥作用,使得状态估计更加准确和可靠。
观测矩阵(Observation Matrix)描述了状态向量与测量向量之间的关系。它将状态向量映射到测量空间,使得可以从状态向量中提取出测量向量。
假设系统的状态向量为
x
k
\mathbf{x}_k
xk,测量向量为
z
k
\mathbf{z}_k
zk,观测矩阵为
H
k
\mathbf{H}_k
Hk。观测矩阵将状态向量映射到测量空间,得到预测测量值(或估计测量值)
z
^
k
\hat{\mathbf{z}}_k
z^k:
z
^
k
=
H
k
x
k
\hat{\mathbf{z}}_k = \mathbf{H}_k \mathbf{x}_k
z^k=Hkxk
假设我们跟踪一个物体,其状态向量包括位置和速度:
x
k
=
[
x
k
y
k
x
˙
k
y
˙
k
]
\mathbf{x}_k = [xkyk˙xk˙yk]
xk=
xkykx˙ky˙k
假设我们只能测量位置,而不能直接测量速度,观测矩阵可以表示为:
H
k
=
[
1
0
0
0
0
1
0
0
]
\mathbf{H}_k = [10000100]
Hk=[10010000]
假设在时间步长
k
k
k 的预测状态向量为:
x
^
k
∣
k
−
1
=
[
10
15
1
−
1
]
\hat{\mathbf{x}}_{k|k-1} = [10151−1]
x^k∣k−1=
10151−1
观测矩阵将状态向量映射到测量空间,得到预测测量值:
z
^
k
=
H
k
x
^
k
∣
k
−
1
=
[
1
0
0
0
0
1
0
0
]
[
10
15
1
−
1
]
=
[
10
15
]
\hat{\mathbf{z}}_k = \mathbf{H}_k \hat{\mathbf{x}}_{k|k-1} = [10000100] [10151−1] = [1015]
z^k=Hkx^k∣k−1=[10010000]
10151−1
=[1015]
实际测量值可能为:
z
k
=
[
11
14
]
\mathbf{z}_k = [1114]
zk=[1114]
测量残差(或创新)为:
y
k
=
z
k
−
z
^
k
=
[
11
14
]
−
[
10
15
]
=
[
1
−
1
]
\mathbf{y}_k = \mathbf{z}_k - \hat{\mathbf{z}}_k = [1114] - [1015] = [1−1]
yk=zk−z^k=[1114]−[1015]=[1−1]
测量残差用于更新预测状态,使其更接近实际测量值。更新后的状态向量和误差协方差矩阵通过卡尔曼增益
K
k
\mathbf{K}_k
Kk 进行修正:
x
^
k
∣
k
=
x
^
k
∣
k
−
1
+
K
k
y
k
\hat{\mathbf{x}}_{k|k} = \hat{\mathbf{x}}_{k|k-1} + \mathbf{K}_k \mathbf{y}_k
x^k∣k=x^k∣k−1+Kkyk
P
k
∣
k
=
(
I
−
K
k
H
k
)
P
k
∣
k
−
1
\mathbf{P}_{k|k} = (\mathbf{I} - \mathbf{K}_k \mathbf{H}_k) \mathbf{P}_{k|k-1}
Pk∣k=(I−KkHk)Pk∣k−1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。