卡尔曼滤波-卡尔曼滤波全篇讲解

个人理解

  在卡尔曼滤波中,有两种变量。
  第一种是我们预测的状态变量,是我们从日常的生活经验中总结出来的普遍公式来进行预测的,就像一辆小车在镜面上行驶,速度 2m/s,我们通过 s = v * t,预测下一秒会前进两米,但实际结果与预测有差异,因为我们的公式没办法将实际的情况全部体现出来(像摩擦力,风速等未在公式中体现)。
  第二种就是我们实际测量的观察变量,我们用尺子测量小车在一秒内行进的距离。这个变量因为尺子本身的局限性也无法测量出小车的实际前进距离。
  那么在生活中我们就没法得到小车1 s内的实际前进距离了吗,的却是这样的,我们得到的数据都是满足可接受误差的数据。卡尔曼滤波就是让得到数据不停逼近实际数据的算法。其大体思想就是将状态变量与观测变量进行数据融合得到接近真实数据的数据,然后作为下一过程的状态变量,再与下一过程的观测变量进行融合,如此往复,最后的数据就会非常接近真实数据。

两种信号

  我们得到的都是接近实际数据的数据,那么如何表示实际数据。这里引入状态变量公式,在公式中加入不断变换的噪声,来弥补我们无法预测的误差。

状态变量(按照人类经验预测的状态)

请添加图片描述
x为状态变量(预测得来的状态变量),u为控制变量,A为状态矩阵,B为控制矩阵,w为过程噪声。下角标 k表示第几个过程。

观测变量(根据生活工具测量的实际状态)

请添加图片描述
z观测变量,H增益矩阵,x状态变量(测量得来的状态变量),v观测噪声。下角标 k表示第几个过程。
z为工具直接测量的数据,不可直接使用,需经增益矩阵转化后得到测量的状态变量 x进行使用。增益矩阵为 I(单位矩阵)时,z与 x近乎相同。

噪声

噪声分布

  变量分布就是该变量符合的密度函数。
请添加图片描述
过程噪声和观测噪声相互独立,遵循正态分布。在实际系统中,过程噪声协方差矩阵 Q和观测噪声协方差矩阵 R可能随着每次迭代计算而改变。

噪声表达

  假设w为两阶
w = [ w 1 w 2 ] w=\left[ \begin{matrix} w1\\ w2 \end{matrix} \right] w=[w1w2]

Q = E [ w , w ⊺ ] = E [ [ w 1 w 2 ] [ w 1 , w 2 ] ] = [ E ( w 1 ² ) , E ( w 1 w 2 ) E ( w 2 w 1 ) , E ( w 2 ² ) ] Q = E\left[ \begin{matrix} w,\mathbf{w}^\intercal \end{matrix} \right] =E\left[ \begin{matrix} \left[ \begin{matrix} w1\\w2 \end{matrix} \right] \left[ \begin{matrix} w1,w2 \end{matrix} \right] \end{matrix} \right] =\left[ \begin{matrix} E(w1²) ,E(w1w2)\\ E(w2w1),E(w2²) \end{matrix} \right] Q=E[w,w]=E[[w1w2][w1,w2]]=[E(w1²)E(w1w2)E(w2w1),E(w2²)]

符号 Var(x) = E(x²) - E²(x),且E(x) = 0
故σ²(x)= E²(x),σ(x)= E(x)

Q = [ σ ² ( w 1 ) , σ ( w 1 ) σ ( w 2 ) σ ( w 2 ) σ ( w 1 ) , σ ² ( w 2 ) ] Q =\left[ \begin{matrix} σ²(w1) ,σ(w1)σ(w2)\\ σ(w2)σ(w1),σ²(w2) \end{matrix} \right] Q=[σ²(w1)σ(w1)σ(w2)σ(w2)σ(w1),σ²(w2)]

滤波器的计算原型

先验估计、后验估计与测量状态变量

x ^ \hat{x} x^k- :第 k个过程的先验状态估计,就是去掉噪声的预测得来的状态变量。
x ^ \hat{x} x^k测:第 k个过程的测量状态变量,就是去掉噪声,由测量变量 z经增益矩阵 H转化来的状态矩阵。
x ^ \hat{x} x^k:第 k个过程的后验状态估计,就是去掉噪声的融合数据变量。
(- 表示先验。^表示估计。因为ht元素与Latex公式不融合,下面公式中由x^代替 x ^ \hat{x} x^。)

计算增益系数K

数据融合基础变量(先验估计、测量状态变量)

先验估计:

x^ k - = (A * x^ k-1) + (B * u^ k-1) .

测量状态变量:

Z k= H * x k测  ➡ x k测 = H - * Z k .

一、列表达式变形(后验估计)

表达式1:

x^ k = x^ k - + G * (H - * Z k - x^ k -).   G∈[0,1]
G = 0时,x^ k = x^ k -
G = 1时,x^ k = x k测

令G = Kk * H,得表达式2(后验估计公式):

x^ k = x^ k - + K k* (Z k - H * x^ k -).   K k∈[0,H -]
K k = 0时,x^ k = x^ k -
K k = H -时,x^ k = x k测

二、引入误差

  不同于单个过程,直接以融合数据变量方差越小越精确。多个过程引入了误差,以误差方差或协方差矩阵越小越精确。

误差公式:

e k = x k -x^ k .   p(e k)~(0, P)
e k - = x k -x^ k - .   p(e k)~(0, P)

  数据为一维时,误差方差越小越精确.
  数据为多维时,误差协方差越小越精确,即误差协方差矩阵的迹越小越精确。(协方差矩阵大小由协方差矩阵的迹来反映。)

以二维数据为例:
e = [ e 1 e 2 ] e=\left[ \begin{matrix} e1\\ e2 \end{matrix} \right] e=[e1e2]
P = E [ e , e ⊺ ] = [ σ ² ( e 1 ) , σ ( e 1 ) σ ( e 2 ) σ ( e 2 ) σ ( e 1 ) , σ ² ( e 2 ) ] P =E\left[ \begin{matrix} e,\mathbf{e}^\intercal \end{matrix} \right] =\left[ \begin{matrix} σ²(e1) ,σ(e1)σ(e2)\\ σ(e2)σ(e1),σ²(e2) \end{matrix} \right] P=E[e,e]=[σ²(e1)σ(e1)σ(e2)σ(e2)σ(e1),σ²(e2)]
协方差矩阵迹最小,即是 σ²(e1) + σ²(e2)最小。

三、计算最小协方差矩阵等式

  1. 计算误差协方差 P表达式

Pk = Pk- - (Kk * H * Pk-) - (Pk- * H ⊺ \mathbf{H}^\intercal H * K ⊺ \mathbf{K}^\intercal Kk) + (Kk * H * Pk- * H ⊺ \mathbf{H}^\intercal H * K ⊺ \mathbf{K}^\intercal Kk) + (Kk * R * K ⊺ \mathbf{K}^\intercal Kk) .

计算过程如图:
在这里插入图片描述

  1. 计算误差方差的迹 tr(Pk)表达式

tr(Pk) =tr(Pk-) - 2tr(Kk * H * Pk-) + tr((Kk * H * Pk- * H ⊺ \mathbf{H}^\intercal H * K ⊺ \mathbf{K}^\intercal Kk) + tr(Kk * R * K ⊺ \mathbf{K}^\intercal Kk) .

计算过程如图:
在这里插入图片描述

  1. 使协方差矩阵的迹 tr(Pk)对 Kk求导,并等于0. 得到迹结果最小时的等式

d [ t r ( P k ) ] d ( K k ) = 0. \frac{d[tr(P_k)]}{d(K_k)}=0 . d(Kk)d[tr(Pk)]=0.

( P k − ∗ H ⊺ ) + K k ∗ ( H ∗ P k − ∗ H ⊺ + R ) = 0. (P_k^- * \mathbf{H}^\intercal) + K_k * (H * P_k^- * \mathbf{H}^\intercal + R) = 0 . (PkH)+Kk(HPkH+R)=0.

进行化简,得增益系数表达式:
请添加图片描述
Pk是误差的协方差,R是测量噪声,H为增益矩阵。

计算过程如图:
在这里插入图片描述

增益矩阵特点

  当测量噪声 R很大时,意味着测量不准确。我们选择相信预测变量。
  当测量噪声 R很小时,意味着测量很准确。我们选择相信测量变量。

在公式中体现:
  测量噪声 R很大,Kk→0, x ^ \hat{x} x^k x ^ \hat{x} x^k-
  测量噪声 R很小,Kk→H- x ^ \hat{x} x^k x ^ \hat{x} x^k测

计算先验误差协方差P-

推算未知变量

  目前要求出后验估计,需要对先验估计公式,卡尔曼增益公式与后验估计公式进行运算。
1 .
先验估计公式:

x^ k - = (A * x^ k-1) + (B * u^ k-1) .

其中,状态矩阵 A已知,上一过程状态变量 x ^ \hat{x} x^k-1已知,控制矩阵 B已知,上一过程控制变量 u ^ \hat{u} u^k-1已知。则先验估计 x ^ \hat{x} x^k-可求出。
2 .
后验估计公式:

x^ k = x^ k - + K k* (Z k - H * x^ k -).   K k∈[0,H -]

其中,先验估计 x ^ \hat{x} x^k-已知,观测变量 Zk已知,增益矩阵 H已知。仅增益系数 Kk未知。
3 .
卡尔曼增益系数公式:
请添加图片描述
其中,增益矩阵 H已知,观测噪声 R已知。仅先验误差协方差 P-未知。

  综上,只需要求出先验误差协方差 P-,即可得出增益系数 Kk,进而求出后验估计 x ^ \hat{x} x^k

先验误差协方差 P-表达式

4 .
先验误差协方差公式:
在这里插入图片描述
A为状态矩阵, Q为观测噪声,Pk-1为上一过程误差协方差。

计算过程如图:

请添加图片描述

滤波循环过程

基本循环过程

  由上述四个公式先验估计公式( x ^ \hat{x} x^k-)、后验估计公式( x ^ \hat{x} x^k)、卡尔曼增益系数公式(Kk)与先验误差协方差公式(P-)即可推出一个循环过程。
请添加图片描述

完善循环过程

  在循环过程中,可以发现,在赋予初始估计,循环完第一遍后。除先验误差协方差公式 (P-)外,每个公式中所没有提供的变量,都由其它公式的结果提供。只有先验误差协方差公式 (P-)中上一过程误差协方差 Pk-1没有提供,所以要在一个过程最后加上该过程误差协方差 Pk的公式(进入下个过程时就变成了 上一过程的误差协方差Pk-1)。
5 .
误差协方差公式:

在这里插入图片描述
计算过程如图:
在这里插入图片描述
请添加图片描述
最后得到完整的循环过程
在这里插入图片描述

学习视频:
B站 up DR_CAN
链接.

学习资料:
卡尔曼滤波论文
卡尔曼滤波实验excel
链接. 提取码:cm0x

  • 137
    点赞
  • 950
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
滤波器和神经网络是两种不同的技术,分别在信号处理和人工智能领域有广泛的应用。 滤波器是一种用于估计不确定过程的滤波器。它使用了一种递归方法来估计系统的状态,这种方法基于对过去和现在的观测值进行线性最小方差优化。滤波器在许多应用中都非常有用,包括传感器数据融合、机器人导航和控制系统等。 神经网络是一种深度学习技术,它使用人工神经元模拟人脑的工作方式。神经网络通过学习大量数据来识别模式和预测新的数据。它们在许多应用中都非常有用,包括图像识别、语音识别、自然语言处理和机器学习等。 将滤波器和神经网络结合使用可能可以提高模型的性能。滤波器可以用于提供输入数据的高精度估计,而神经网络则可以学习从这些估计中提取有用的信息。例如,神经网络可以用于预测未来的状态或识别异常值,而滤波器则可以提供这些预测或识别所需的输入数据的高精度估计。这种结合使用的方法通常被称为神经网络(Kalman Neural Network)或深度学习(Kalman Deep Learning)。 值得注意的是,虽然滤波器和神经网络可以结合使用,但它们并不是互斥的。许多应用可以使用单一的技术来实现,而不需要结合使用这两种技术。因此,选择使用哪种技术取决于具体的应用需求和数据特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值