卡尔曼滤波算法详细推导(全网最详细的推导过程)

本文是来源于B站Dr_CAN的视频的学习笔记,有需要详细了解的,可以到B站看相关视频DR_CAN的个人空间

1、递归算法

例:
假设测一段距离,第一次测 z 1 z_1 z1=50.1mm,第二次测 z 2 z_2 z2=50.4mm,第三次测 z 3 z_3 z3=50.2mm,若想得到准确的值,可以计算这几次测量的平均值,
据此,可以定义估计真实数据等于平均值,可得到如下公式
x ^ k = 1 k ( x 1 + x 2 + ⋯ x k ) \hat{x }_k=\frac{1}{k }(x_1+x_2+⋯x_k ) x^k=k1(x1+x2+xk)
= 1 k ( x 1 + x 2 + ⋯ x ( k − 1 ) ) + 1 k x k =\frac{1}{k }(x_1+x_2+⋯x_(k-1) )+\frac{1}{k } x_k =k1(x1+x2+x(k1))+k1xk
= ( k − 1 ) k ( k − 1 ) ( x 1 + x 2 + ⋯ x ( k − 1 ) ) + 1 k x k =\frac{(k-1)}{k(k-1)} (x_1+x_2+⋯x_(k-1) )+\frac{1}{k } x_k =k(k1)(k1)(x1+x2+x(k1))+k1xk
= k − 1 k x ^ k − 1 + 1 / k x k =\frac{k-1}{k} \hat{x }_{k-1}+1/k x_k =kk1x^k1+1/kxk
= x ^ ( k − 1 ) − 1 / k x ^ ( k − 1 ) + 1 k x k =\hat{x }_(k-1)-1/k \hat{x }_(k-1)+\frac{1}{k } x_k =x^(k1)1/kx^(k1)+k1xk
于是有 x ^ k = x ^ k − 1 + 1 k ( x k − x ^ k − 1 ) \hat{x }_k=\hat{x }_{k-1}+\frac{1}{k } (x_k-\hat{x }_{k-1}) x^k=x^k1+k1(xkx^k1)
据此可分析得到,随着k的数值增大,测量结果不再重要,可将上式描述为:
x ^ k = x ^ k − 1 + k k ( x k − x ^ ( k − 1 ) ) \hat{x}_k=\hat{x}_{k-1}+k_k (x_k-\hat{x}_{(k-1)}) x^k=x^k1+kk(xkx^(k1))

当前的估计值=上一次的估计值+系数×(当前测量值-上一次估计值)

该式即为卡尔曼滤波的递归公式,可以对系数进行重新定义

k k = E e k − 1 E e k − 1 + M e k k_k=\frac{Ee_{k-1}}{Ee_{k-1}+Me_k } kk=Eek1+MekEek1
E e E_e Ee是估计误差
M e M_e Me是测量误差

2、数据融合、协方差矩阵、状态空间方程、观测器

(1)数据融合
例:假设两个传感器测得一物体的重量分别为 z 1 z_1 z1=30g, z 2 z_2 z2=32g,其标准差分别为 σ 1 σ_1 σ1=2g, σ 2 σ_2 σ2=4g,估计真实值 z ^ \hat z z^
z ^ = z 1 + k ( z 2 − z 1 ) \hat z=z_1+k(z_2-z_1) z^=z1+k(z2z1)
求k,使 z ^ \hat z z^的标准差 σ z ^ σ_{\hat z } σz^最小;
在这里插入图片描述

为了求使 σ z ^ σ_{\hat z} σz^最小的k值,可以对其进行求导:
即:
在这里插入图片描述

(2)协方差矩阵

3卡尔曼增益推导

已知状态空间:

在这里插入图片描述
实际状态空间模型:
在这里插入图片描述
在这里插入图片描述
于是有
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 20
    点赞
  • 174
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
卡尔曼滤波算法是一种用于估计状态变量的优化算法,常用于处理带有噪声的测量数据。它的推导过程可以通过以下步骤进行: 1. 建立系统的状态空间模型:首先,我们需要确定系统的状态变量以及它们之间的关系。例如,如果我们要估计一个移动物体的位置和速度,我们可以将位置和速度作为状态变量,并通过运动方程建立它们之间的关系。 2. 确定系统的测量模型:接下来,我们需要确定系统测量到的数据与状态变量之间的关系,也就是测量模型。在上述例子中,我们可以使用位置的测量值作为系统的输入。 3. 建立卡尔曼滤波的数学模型:根据系统的状态空间模型和测量模型,我们可以建立卡尔曼滤波的数学模型。这个模型包括预测和更新两个步骤。 4. 预测步骤:在预测步骤中,我们利用当前时刻的状态估计值和模型方程对下一时刻的状态进行预测。 5. 更新步骤:在更新步骤中,我们将预测的状态与实际测量值进行比较,得到更准确的状态估计值。 6. 更新滤波器的协方差矩阵:卡尔曼滤波算法还会更新滤波器的协方差矩阵,以反映状态估计值的不确定性。 通过以上步骤,我们可以得到一个递推的卡尔曼滤波算法,用于估计状态变量。这个算法可以在实时环境中使用,并且对噪声有较好的抗干扰能力。 总而言之,卡尔曼滤波算法通过建立系统的状态空间模型和测量模型,利用预测和更新步骤进行状态估计,并更新滤波器的协方差矩阵。通过对系统状态的优化估计,可以得到准确的状态估计结果。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值