本文是对卡尔曼滤波学习的记录,主要参照了DR_CAN老师的视频进行学习,文章末尾有链接!
卡尔曼滤波
卡尔曼滤波(Kalman Filtering) 是一种用于估计系统状态的数学方法,它结合了传感器测量和系统模型的信息,以获得对系统状态的最佳估计。卡尔曼滤波最初是由Rudolf E. Kálmán在1960年代提出的,用于航空航天领域的导航和控制问题。自那时以来,它已经在许多领域得到了广泛应用,包括工程、经济学、生物学等。
卡尔曼滤波的主要思想是通过融合系统的动态模型(通常是线性系统)和实际测量值来估计系统的状态。它基于两个主要假设:
(1) 系统的动态行为可以用线性动态方程描述。
(2) 测量噪声和过程噪声都是高斯分布的,并且彼此独立。
卡尔曼滤波的过程可以概括为以下几个步骤:
(1) 预测(Predict):根据系统的动态模型,使用先前的状态估计来预测下一个时刻的状态,并估计状态的不确定性。
(2) 更新(Update):将新的测量值与预测值进行比较,根据它们的不确定性,更新状态的估计值和不确定性。这一步使用贝叶斯推断来融合测量和预测信息。
1. 数据融合
在学习卡尔曼滤波(Kalman Filtering)之前首先要对数据融合(对于理解卡尔曼滤波很重要)有一定的概念(卡尔曼滤波就是先验数据和后验数据的数据融合):
例如:你用两个称,去称物体,得到两个重量和标准差(符合正态分布)分别是:
z
1
=
30
g
σ
1
=
2
g
z
2
=
32
g
σ
2
=
4
g
>
正态分布
\begin{gather}\begin{array}{ll} z_1=30 \mathrm{~g} & \sigma_1=2 \mathrm{~g} \\ z_2=32 \mathrm{~g} & \sigma_2=4 \mathrm{~g} \end{array}>\begin{gathered} \text { 正态分布 } \end{gathered}\end{gather}
z1=30 gz2=32 gσ1=2 gσ2=4 g> 正态分布
如图所示,如何去估算的物体真实重量(如绿虚线所示)?凭感觉肯定在30~32g之间,而如何利用数学去找到最优的估计值呢?就要用到数据融合的思想。
那么,定义估计的真实重量 z ^ = z 1 + k ( z 2 − z 1 ) \hat{z}=z_1+k\left(z_2-z_1\right) z^=z1+k(z2−z1) ,其中 k ∈ [ 0 , 1 ] k \in[0,1] k∈[0,1] 就是卡尔曼增益(Kalman Gain),当 k = 0 k=0 k=0 时, z ^ = z 1 \hat{z}=z_1 z^=z1; 当 k = 1 k=1 k=1 时, z ^ = z 2 \hat{z}=z_2 z^=z2. 通过调节 k k k 的大小,可以表征估计值更接近哪个数据。为了获得最优的估计值,那么我们希望估计出来的值方差小,表明这个估计值较为准确,所以我们需要求得一个合适的 k k k 值,使得 z ^ \hat{z} z^ 的方差 V a r ( z ^ ) Var(\hat{z}) Var(z^) 或者标准差 σ z ^ \sigma_{\hat{z}} σz^最小.
σ
z
^
2
=
V
a
r
(
z
^
)
=
V
a
r
(
z
1
+
k
(
z
2
−
z
1
)
)
=
V
a
r
(
(
1
−
k
)
z
1
+
k
z
2
)
=
(
1
−
k
)
2
V
a
r
(
z
1
)
+
k
2
V
a
r
(
z
2
)
=
(
1
−
k
)
2
σ
1
2
+
k
2
σ
2
2
\begin{gather} \begin{aligned} \sigma_{\hat{z}}^2 = Var(\hat{z}) & = Var(z_1+k\left(z_2-z_1\right)) \\ & =Var((1-k)z_1+kz_2) \\ & =(1-k)^2Var(z_1) + k^2Var(z_2) \\ & =(1-k)^2\sigma_{1}^2 + k^2\sigma_{2} ^2 \end{aligned}\end{gather}
σz^2=Var(z^)=Var(z1+k(z2−z1))=Var((1−k)z1+kz2)=(1−k)2Var(z1)+k2Var(z2)=(1−k)2σ12+k2σ22
为了使
V
a
r
(
z
^
)
Var(\hat{z})
Var(z^) 最小,对
k
k
k 求导等于0得:
−
2
(
1
−
k
)
σ
1
2
+
2
k
σ
2
2
=
0
\begin{gather} -2(1-k)\sigma_{1}^2 + 2k\sigma_{2} ^2 = 0\end{gather}
−2(1−k)σ12+2kσ22=0
整理得:
k
=
σ
1
2
σ
1
2
+
σ
2
2
=
2
2
2
2
+
4
2
=
0.2
\begin{gather}k =\frac{\sigma_{1}^2}{\sigma_{1}^2+\sigma_{2}^2} = \frac{2^2}{2^2+4^2} = 0.2\end{gather}
k=σ12+σ22σ12=22+4222=0.2
因此,通过数据融合得到的最优估计值为:
z
^
=
z
1
+
k
(
z
2
−
z
1
)
=
30
+
0.2
(
32
−
30
)
=
30.4
\begin{gather}\hat{z} =z_1+k\left(z_2-z_1\right) =30+0.2(32-30) =30.4 \end{gather}
z^=z1+k(z2−z1)=30+0.2(32−30)=30.4
2. 协方差矩阵
接下来介绍一下协方差矩阵的概念,协方差矩阵 是将方差和协方差在一个矩阵中表现出来,表征的是个变量间的联动关系,为了更好的理解其含义,
例:
球员 | 身高 x x x | 体重 y y y | 年龄 z z z |
---|---|---|---|
A | 179 | 74 | 33 |
B | 187 | 80 | 31 |
C | 175 | 71 | 28 |
平均 | 180.3 | 75 | 30.7 |
那么,我们可以计算身高、体重、年龄的方差和协方差分别为:
方差
:
σ
x
2
=
1
3
(
(
179
−
180.3
)
2
+
(
187
−
180.3
)
2
+
(
175
−
180.3
)
2
)
=
24.89
σ
y
2
=
14
σ
z
2
=
4.2
协方差
:
σ
x
σ
y
=
1
3
(
(
179
−
180.3
)
(
74
−
75
)
+
(
187
−
180.3
)
(
80
−
75
)
+
(
175
−
180.3
)
(
71
−
75
)
)
=
18.7
=
σ
y
σ
x
σ
x
σ
z
=
4.4
=
σ
z
σ
x
σ
y
σ
z
=
3.3
=
σ
z
σ
y
\textbf{方差}:\ \ \ \ \ \begin{aligned} & \sigma_x^2=\frac{1}{3}\left((179-180.3)^2+(187-180.3)^2+(175-180.3)^2\right)=24.89 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \\ & \sigma_y^2=14 \\ & \sigma_z^2=4.2 \end{aligned} \\ \textbf{协方差}:\ \ \ \ \begin{aligned} & \sigma_x \sigma_y=\frac{1}{3}((179-180.3)(74-75)+(187-180.3)(80-75)+(175-180.3)(71-75))=18.7=\sigma_y \sigma_x \\ & \sigma_x \sigma_z=4.4=\sigma_z \sigma_x \\ & \sigma_y \sigma_z=3.3=\sigma_z \sigma_y \end{aligned}
方差: σx2=31((179−180.3)2+(187−180.3)2+(175−180.3)2)=24.89 σy2=14σz2=4.2协方差: σxσy=31((179−180.3)(74−75)+(187−180.3)(80−75)+(175−180.3)(71−75))=18.7=σyσxσxσz=4.4=σzσxσyσz=3.3=σzσy
那么协方差矩阵
P
P
P 为(注意:
σ
x
σ
y
\sigma_x \sigma_y
σxσy 不是表示二者相乘而是协方差 Cov
(
σ
x
,
σ
y
)
(\sigma_x,\sigma_y)
(σx,σy),下文也是如此:
P
=
[
σ
x
2
σ
x
σ
y
σ
x
σ
z
σ
y
x
σ
y
2
σ
y
σ
z
σ
z
x
σ
z
σ
y
σ
z
2
]
=
[
24.89
18.7
4.4
18.7
14
3.3
4.4
3.3
4.22
]
\begin{gather}P=\left[\begin{array}{ccc} \sigma_x^2 & \sigma_x \sigma_y & \sigma_x \sigma_z \\ \sigma_{y x} & \sigma_y^2 & \sigma_y \sigma_z \\ \sigma_{z x} & \sigma_z \sigma_y & \sigma_z^2 \end{array}\right]=\left[\begin{array}{ccc} 24.89 & 18.7 & 4.4 \\ 18.7 & 14 & 3.3 \\ 4.4 & 3.3 & 4 .22 \end{array}\right]\end{gather}
P=
σx2σyxσzxσxσyσy2σzσyσxσzσyσzσz2
=
24.8918.74.418.7143.34.43.34.22
这边解释一下协方差各个数的含义:首先是对角线,24.89、14、4.22分别体现了身高、体重、年龄的跨度,越大表示跨度越大;
σ
x
σ
y
=
18.7
\sigma_x \sigma_y = 18.7
σxσy=18.7 表示了身高和体重的相关性,是比较相关的;再看
σ
x
σ
z
=
4.4
\sigma_x \sigma_z = 4.4
σxσz=4.4 和
σ
y
σ
z
=
3.3
\sigma_y \sigma_z = 3.3
σyσz=3.3表示身高和年龄以及体重和年龄的关联性就不是很强。
方便编程运算协方差矩阵
P
P
P 可通过矩阵计算:
a
=
[
x
1
y
1
z
1
x
2
y
2
z
2
x
3
y
3
z
3
]
−
1
3
[
1
1
1
1
1
1
1
1
1
]
[
x
1
y
1
z
1
x
2
y
2
z
2
x
3
y
3
z
3
]
P
=
1
3
a
T
a
\begin{gather}\begin{aligned} & a=\left[\begin{array}{lll} x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \\ x_3 & y_3 & z_3 \end{array}\right]-\frac{1}{3}\left[\begin{array}{lll} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{array}\right]\left[\begin{array}{lll} x_1 & y_1 & z_1 \\ x_2 & y_2 & z_2 \\ x_3 & y_3 & z_3 \end{array}\right] \\ & P=\frac{1}{3} a^{T} a \\ & \end{aligned}\end{gather}
a=
x1x2x3y1y2y3z1z2z3
−31
111111111
x1x2x3y1y2y3z1z2z3
P=31aTa
3. 卡尔曼滤波器的推导
假设系统的状态
X
k
=
[
x
1
x
2
]
T
X_{k} = [x_1 \ \ x_2]^T
Xk=[x1 x2]T , 输出为
Z
k
Z_{k}
Zk且状态空间方程为:
X
k
=
A
X
k
−
1
+
B
U
k
−
1
+
W
k
−
1
Z
k
=
H
X
k
+
V
k
\begin{gather} \begin{aligned} &X_{k}=A X_{k-1}+B U_{k-1} +W_{k-1}\\ &Z_k=HX_{k}+V_k \end{aligned}\end{gather}
Xk=AXk−1+BUk−1+Wk−1Zk=HXk+Vk其中,
W
k
−
1
=
[
w
1
w
2
]
T
W_{k-1} = [w_{1} \ \ w_{2}]^T
Wk−1=[w1 w2]T 为系统的过程噪声,
V
k
V_k
Vk 为测量噪声, 二者都是一种不确定性的表现,在自然界中,一般可以将它们假设符合正态分布,也就是其概率分布符合期望为 0,协方差矩阵为
Q
Q
Q,即
P
(
W
)
∼
(
0
,
Q
)
P(W) \sim (0 , Q)
P(W)∼(0,Q) 。其中,
Q
=
E
[
W
W
T
]
=
E
[
[
w
1
w
2
]
[
w
1
w
2
]
]
=
[
σ
w
1
2
σ
w
1
σ
w
2
σ
w
2
σ
w
1
σ
w
2
2
]
\begin{gather}Q = E[W \ \ W^T] = E \left[\left[\begin{array}{l} w_1 \\ w_2 \end{array}\right]\left[\begin{array}{ll} w_1 & w_2 \end{array}\right]\right] = \left[\begin{array}{l} \ \ \sigma_{w_1}^2 \ \ \ \ \ \sigma_{w_1}\sigma_{w_2}\\ \sigma_{w_2}\sigma_{w_1} \ \ \ \ \sigma_{w_2}^2\end{array}\right]\end{gather}
Q=E[W WT]=E[[w1w2][w1w2]]=[ σw12 σw1σw2σw2σw1 σw22]
另外,同上
P
(
V
)
∼
(
0
,
R
)
P(V) \sim (0 , R)
P(V)∼(0,R)。
3.1 先验估计
由于我们不确定噪声量的大小,所以只能得到
X
k
X_{k}
Xk 的先验估计值
X
k
−
^
\hat{X_{k}^-}
Xk−^ (^表示估计值的意思,-表示先验),也就是不考虑状态方程中的过程噪声计算出来的结果称为先验估计值,也就是:
X
k
−
^
=
A
X
^
k
−
1
+
B
U
k
−
1
(算出来的)
\begin{gather}\hat{X_{k}^-} = A \hat{X}_{k-1}+B U_{k-1} \ \ \ \ \ \text { (算出来的) }\end{gather}
Xk−^=AX^k−1+BUk−1 (算出来的)
而后,我们可以测量测出
Z
k
Z_k
Zk ,不考虑噪声前提下,根据
Z
k
=
H
X
k
Z_k=HX_{k}
Zk=HXk 反求状态得:
X
k
m
e
a
^
=
H
−
1
Z
k
(测出来的)
\hat{X_{k_{mea}}} = H^{-1}Z_k \ \ \ \ \ \text { (测出来的) }
Xkmea^=H−1Zk (测出来的)
所以,无论是算出来的还是测出来的的数据都不包含噪声,所以我们才需要用卡尔曼滤波去估计真实值(这时候就是体现出上一章所讲的数据融合概念的意义)根据数据融合可得后验估计值
X
k
^
\hat{X_{k}}
Xk^ 为(当 G=0 表示完全相信算出来的数据,G=1表示完全相信测出来的数据):
X
^
k
=
X
^
k
−
+
G
(
H
−
1
Z
k
−
X
^
k
−
)
\begin{gather} \begin{array}{ll} \hat{X}_k=\hat{X}_{k}^{-}+G\left(H^{-1} Z_k-\hat{X}_k^{-}\right) \end{array}\end{gather}
X^k=X^k−+G(H−1Zk−X^k−)
为了方便计算,我们可定义
G
=
k
k
H
G=k_k H
G=kkH带入得卡尔曼滤波器的重要公式(
k
k
∈
[
0
,
H
−
1
]
k_k \in[0,H^{-1}]
kk∈[0,H−1] ):
X
^
k
=
X
^
k
−
+
k
k
(
Z
k
−
H
X
^
k
−
)
\begin{gather}\begin{array}{ll} \hat{X}_k=\hat{X}_{k}^{-}+k_k(Z_k-H\hat{X}_k^{-}) \end{array}\end{gather}
X^k=X^k−+kk(Zk−HX^k−)
3.2 求解最优卡尔曼增益
此时,需要去寻找一个最优的
k
k
k_k
kk 使得估计值
X
^
k
\hat{X}_k
X^k 与真实值
X
k
X_k
Xk 误差最小, 引入误差
e
k
=
X
k
−
X
^
k
e_k =X_k - \hat{X}_k
ek=Xk−X^k , 将估计值(12)代入误差公式中去,得:
e
k
=
X
k
−
X
^
k
=
X
k
−
(
X
^
k
−
+
k
k
(
Z
k
−
H
X
^
k
−
)
)
(
化简得
)
=
(
I
−
k
k
H
)
(
X
k
−
X
^
k
−
)
−
k
k
V
k
=
(
I
−
k
k
H
)
e
k
−
−
k
k
V
k
(定义误差先验为
e
k
−
=
X
k
−
X
^
k
−
)
\begin{gather} \begin{array}{ll} e_k =X_k - \hat{X}_k &=X_k-(\hat{X}_{k}^{-}+k_k(Z_k-H\hat{X}_k^{-}) ) \\ (化简得) & =(I-k_kH)(X_k-\hat{X}_k^-)-k_kV_k \\ & =(I-k_kH)e_k^--k_kV_k ( 定义误差先验为e_k^- = X_k-\hat{X}_k^-) \end{array}\end{gather}
ek=Xk−X^k(化简得)=Xk−(X^k−+kk(Zk−HX^k−))=(I−kkH)(Xk−X^k−)−kkVk=(I−kkH)ek−−kkVk(定义误差先验为ek−=Xk−X^k−)
根据此前定义
P
(
e
k
)
∼
(
0
,
P
k
)
P(e_k) \sim (0 , P_k)
P(ek)∼(0,Pk) ,那么协方差矩阵
P
k
P_k
Pk(推导较为复杂,懒得推可直接看结果):
P
k
=
E
[
e
e
T
]
=
[
σ
e
1
2
σ
e
1
σ
e
2
σ
e
2
σ
e
1
σ
e
2
2
]
注:
(
A
B
)
T
=
B
T
A
T
;
(
A
+
B
)
T
=
A
T
+
B
T
=
E
[
[
I
−
k
k
H
)
e
k
−
−
k
k
V
k
]
[
(
I
−
k
k
H
)
e
k
−
−
k
k
V
k
]
T
]
=
E
[
[
I
−
k
k
H
)
e
k
−
−
k
k
V
k
]
[
e
k
−
T
(
I
−
k
k
H
)
T
−
V
k
T
k
k
T
]
]
=
E
[
(
I
−
k
k
H
)
e
k
−
e
k
−
T
(
I
−
k
k
H
)
T
]
+
E
[
k
k
V
k
V
k
T
k
k
T
]
注:
E
[
(
I
−
k
k
H
)
e
k
−
V
k
T
k
k
T
]
=
(
I
−
k
k
H
)
E
[
e
k
−
]
E
[
V
k
T
]
k
k
T
=
0
由于
E
[
e
k
−
]
=
0.
=
(
I
−
k
k
H
)
E
[
e
k
−
e
k
−
T
]
(
I
−
k
k
H
)
T
+
k
k
E
[
V
k
V
k
T
]
k
k
T
=
(
I
−
k
k
H
)
P
k
−
(
I
−
k
k
H
)
T
+
k
k
R
k
k
T
=
(
P
k
−
−
k
k
H
P
k
−
)
(
I
T
−
H
T
k
k
T
)
+
k
k
R
k
k
T
=
P
k
−
−
k
k
H
P
k
−
−
P
k
−
H
T
k
k
T
+
k
k
H
P
k
−
H
T
k
k
T
+
k
k
R
k
k
T
注:
P
−
为先验协方差
\begin{gather}\begin{array}{ll}P_k &=E[e \ \ e^T] = \left[\begin{array}{l} \ \ \sigma_{e_1}^2 \ \ \ \ \ \sigma_{e_1}\sigma_{e_2}\\ \sigma_{e_2}\sigma_{e_1} \ \ \ \ \sigma_{e_2}^2\end{array}\right] \ \ \ \ \ \ \ \ \ 注:(AB)^T=B^TA^T;(A+B)^T=A^T+B^T \\ & =E \left[[I-k_kH)e_k^--k_kV_k][(I-k_kH)e_k^--k_kV_k]^T\right]\\ & =E [[I-k_kH)e_k^--k_kV_k][{e_k^-}^T(I-k_kH)^T-V_k^Tk_k^T]] \\ & =E[(I-k_kH)e_k^-{e_k^-}^T(I-k_kH)^T ]+E[k_kV_kV_k^Tk_k^T]\\ & 注:E[(I-k_kH)e_k^-V_k^Tk_k^T] = (I-k_kH)E[e_k^-]E[V_k^T]k_k^T=0 \ \ \ 由于E[e_k^-] = 0. \\ & =(I-k_kH)E[e_k^-{e_k^-}^T](I-k_kH)^T +k_kE[V_kV_k^T]k_k^T\\ & =(I-k_kH)P_k^-(I-k_kH)^T +k_kRk_k^T\\ & =(P_k^--k_kHP_k^-)(I^T-H^Tk_k^T) +k_kRk_k^T\\ & =P_k^--k_kHP_k^--P_k^-H^Tk_k^T+k_kHP_k^-H^Tk_k^T+k_kRk_k^T \ \ 注:P^-为先验协方差\\ \end{array} \end{gather}
Pk=E[e eT]=[ σe12 σe1σe2σe2σe1 σe22] 注:(AB)T=BTAT;(A+B)T=AT+BT=E[[I−kkH)ek−−kkVk][(I−kkH)ek−−kkVk]T]=E[[I−kkH)ek−−kkVk][ek−T(I−kkH)T−VkTkkT]]=E[(I−kkH)ek−ek−T(I−kkH)T]+E[kkVkVkTkkT]注:E[(I−kkH)ek−VkTkkT]=(I−kkH)E[ek−]E[VkT]kkT=0 由于E[ek−]=0.=(I−kkH)E[ek−ek−T](I−kkH)T+kkE[VkVkT]kkT=(I−kkH)Pk−(I−kkH)T+kkRkkT=(Pk−−kkHPk−)(IT−HTkkT)+kkRkkT=Pk−−kkHPk−−Pk−HTkkT+kkHPk−HTkkT+kkRkkT 注:P−为先验协方差
此时,引入迹的概念:
t
r
(
P
k
)
=
σ
e
1
2
+
σ
e
2
2
tr(P_k) = \sigma_{e_1}^2 + \sigma_{e_2}^2
tr(Pk)=σe12+σe22 ,为对角线方差相加,我们希望能取到最优
k
k
k_k
kk 使方差最小,也就是迹最小,使误差
e
k
e_k
ek 接近期望值 0。
t
r
(
P
k
)
=
t
r
(
P
k
−
)
−
2
t
r
(
k
k
H
P
k
−
)
+
t
r
(
k
k
H
P
k
−
H
T
k
k
T
)
+
t
r
(
k
k
R
k
k
T
)
注:
k
k
H
P
k
−
与
P
k
−
H
T
k
k
T
互为转至,所以迹是一样的
\begin{gather}\begin{array}{ll}tr(P_k) = tr(P_k^-)-2tr(k_kHP_k^-)+tr(k_kHP_k^-H^Tk_k^T)+tr(k_kRk_k^T) \\ 注:k_kHP_k^-与P_k^-H^Tk_k^T互为转至,所以迹是一样的\end{array}\end{gather}
tr(Pk)=tr(Pk−)−2tr(kkHPk−)+tr(kkHPk−HTkkT)+tr(kkRkkT)注:kkHPk−与Pk−HTkkT互为转至,所以迹是一样的
为了取最优的卡尔曼增益
k
k
k_k
kk 使得迹最小,所以迹对
k
k
k_k
kk 求导等于0 得 (注:
∂
t
r
(
A
B
)
∂
A
=
B
T
;
∂
t
r
(
A
B
A
T
)
∂
A
=
2
A
B
\frac{\partial tr(AB) }{\partial A} = B^T; \frac{\partial tr(ABA^T) }{\partial A} = 2AB
∂A∂tr(AB)=BT;∂A∂tr(ABAT)=2AB):
∂
t
r
(
P
k
)
∂
k
k
=
−
2
(
H
P
k
−
)
T
+
2
k
k
H
P
k
−
H
T
+
2
k
k
R
=
0
−
P
k
−
H
T
+
k
k
(
H
P
k
−
H
T
+
R
)
=
0
k
k
(
H
P
k
−
H
T
+
R
)
=
P
k
−
H
T
因此:
k
k
=
P
k
−
H
T
H
P
k
−
H
T
+
R
\begin{gather}\begin{aligned} \frac{\partial tr(P_k) }{\partial k_k} =-2(HP_k^-)^T+2k_kHP_k^-H^T+2k_kR&=0 \\ -P_k^-H^T+k_k(HP_k^-H^T+R)&=0 \\ k_k(HP_k^-H^T+R) &=P_k^-H^T\\ \end{aligned} \\ 因此:k_k =\frac{P_k^-H^T}{HP_k^-H^T+R} \end{gather}
∂kk∂tr(Pk)=−2(HPk−)T+2kkHPk−HT+2kkR−Pk−HT+kk(HPk−HT+R)kk(HPk−HT+R)=0=0=Pk−HT因此:kk=HPk−HT+RPk−HT
因此,公式17可以理解为:当测量噪声协方差
R
R
R 无穷大时,
k
k
=
0
k_k=0
kk=0,状态估计值:
X
^
k
=
X
^
k
−
+
k
k
(
Z
k
−
H
X
^
k
−
)
=
X
^
k
−
\hat{X}_k=\hat{X}_{k}^{-}+k_k(Z_k-H\hat{X}_k^{-})=\hat{X}_{k}^{-}
X^k=X^k−+kk(Zk−HX^k−)=X^k−,选择相信计算值;反之,测量噪声协方差等于 0 时,
k
k
=
H
−
1
k_k=H^{-1}
kk=H−1, 状态估计值:
X
^
k
=
H
−
1
Z
k
\hat{X}_k=H^{-1}Z_k
X^k=H−1Zk,选择相信测量值。
至此,卡尔曼滤波的数学推导就记录到这里了,下一章将具体讲解卡尔曼滤波的5个重要公式以及其应用!请各位移步下文。
敲公式不易,麻烦各位看官一键三连!感谢!欢迎收藏以便后续用到的时候查公式!
视频专栏链接:DR_CAN卡尔曼滤波视频专栏:密码:6.66
链接: DR_CAN卡尔曼滤波视频专栏