卡尔曼滤波公式及参数详解

目录

一.卡尔曼滤波介绍

二.卡尔曼滤波5大公式

0.状态方程

1.预测

2.更新

3.参数详解

4.参数设置与调整

 


一.卡尔曼滤波介绍

卡尔曼滤波是对输入线性系统的观测值进行最优估计的一种递归算法,在数据融合、滤波、预测等方面具有广泛的应用。我们无法建立一个完美的模型来消除系统的不确定因素,这些不确定性包括系统模型的自身缺陷、系统过程扰动(不可测也不可建模)以及得到观测数据的传感器的测量误差。这些误差往往会影响我们的估计值,所以卡尔曼滤波算法通过最小化误差方差求解卡尔曼增益,以此来进行后验估计,已达到滤波效果。卡尔曼滤波使用条件:有限维的线性系统,测量噪声和过程噪声均服从正态分布。

二.卡尔曼滤波5大公式

0.状态方程

X_{k}=AX_{k-1}+BU_{k-1}+W_{k-1}

Z_{k}=HX_{k}+V_{k}

1.预测

先验估计:根据上一次最优估计的结果,预测当前时刻的估计值,由于缺失过程噪声,所以是不完整的,先验的。

\hat{x}_{\hat{k}}=A\hat{x}_{k-1}+Bu_{k-1}

先验估计协方差:

P_{\bar{k}}=AP_{k-1}A^{T}+Q

2.更新

kalman增益:先验估计值与实际值存在误差,该误差也假设符合正太分布,为了使误差最小,即求误差方差最小,通过对K求导等于0,求出K值,此时误差最小。根据调整测量误差R,可以调整增益是更相信观测还是更相信预测。

K_{k}=\frac{P_{\bar{k}}H^{T}}{HP_{\bar{k}}H^{T}+R}

后验估计:

\hat{x_{k}}=\hat{x}_{\bar{k}}+K_{k}(Z_{k}-H\hat{x}_{\bar{k}})  Z_{k}-H\hat{x}_{\bar{k} 代表实际观测与预测观测的残差。)

后验估计协方差:

P_{k}=(I-K_{k}H)P_{\bar{k}}

3.参数详解

  • \hat{x}_{\bar{k}}:代表先验状态估计值,通过上一时刻最优估计值预测到当前时刻的结果。
  • \hat{x_{k}}\hat{x_{k-1}}:代表后验状态估计值,\hat{x_{k}}为滤波后的最优估计。
  • A:代表状态转移矩阵,是对状态变量的运动建模,例如匀速直线模型,弹簧阻尼模型等。
  • B:代表控制矩阵(将输入转化为状态),u_{k-1}:代表输入控制量。当系统有外加作用时,如匀加速运动模型,会有控制量,也可能没有控制量。
  • P_{\bar{k}}:代表先验估计协方差(\hat{x}_{\bar{k}}协方差),通过使它的迹最小(方差和最小)使得误差最小,以此求出卡尔曼增益。
  • P_{k}:代表后验估计协方差,更新后作为下一次迭代的输入。
  • K:卡尔曼增益,为观测和预测的加权系数。
  • Q:过程噪声协方差,由于W_{K-1}(过程噪声)不可测,所以假设其符合正态分布,P(W_{k-1})\sim (0,Q)
  • R:测量噪声协方差,由于V_{K}(测量噪声)不可测,所以假设其符合正态分布,P(V_{k})\sim (0,R)
  • Z:实际观测值。
  • H:测量矩阵,把状态变量转化为预测观测值。
  • 初始化:\hat{x_{k-1}}P_{k-1}需要进行初始化。

4.参数设置与调整

  • 对于过程噪声Q值,其值越小代表我们对模型预测值信任越高,系统收敛的也越快,反之相反;对于测量噪声R,其值越大代表我们对测量值信任越低,若过大此时系统表现为响应慢,过小则会出现系统震荡。调整参数时固定一个调整一个,从小到大调整Q值使系统收敛速度正常,从大到小调整R值使输出结果接近真实。
  • 对于X,P的初始值,其值决定了开始时的收敛速度,一般设置为与理想值相同数量级或者较小的数,以求较快的收敛,随着迭代的进行,P值会收敛为最小的估计协方差矩阵。
  • 27
    点赞
  • 200
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
卡尔曼滤波是一种用于估计系统状态的递归滤波器。它通过结合系统动态模型和观测数据来提供对状态的最优估计。下面是卡尔曼滤波公式推导过程: 1. 系统模型: 状态方程:x_k = F_k * x_{k-1} + B_k * u_k + w_k 观测方程:z_k = H_k * x_k + v_k 其中,x_k表示系统在时间步k时的状态向量,u_k表示控制输入,z_k表示观测向量。 F_k是状态转移矩阵,描述系统状态从时间步k-1到时间步k的演化关系。 B_k是控制输入矩阵,描述控制输入对系统状态的影响。 w_k是系统过程噪声,假设其均值为0,协方差矩阵为Q_k。 H_k是观测矩阵,描述观测向量与系统状态之间的关系。 v_k是观测噪声,假设其均值为0,协方差矩阵为R_k。 2. 预测步骤(时间更新): 根据上一时刻的状态估计x_{k-1}和控制输入u_{k-1},通过状态转移矩阵F_k和控制输入矩阵B_k进行状态预测: x_{k}^- = F_k * x_{k-1} + B_k * u_{k-1} 同时,计算预测误差协方差矩阵P_{k}^-: P_{k}^- = F_k * P_{k-1} * F_k^T + Q_k 3. 更新步骤(测量更新): 根据当前观测向量z_k,通过观测矩阵H_k对预测状态进行观测估计: y_k = z_k - H_k * x_{k}^- 计算观测残差协方差矩阵S_k: S_k = H_k * P_{k}^- * H_k^T + R_k 计算卡尔曼增益K_k: K_k = P_{k}^- * H_k^T * S_k^{-1} 更新状态估计值: x_{k} = x_{k}^- + K_k * y_k 更新误差协方差矩阵: P_{k} = (I - K_k * H_k) * P_{k}^- 其中,^-表示预测值,而没有^-表示更新值。 以上就是卡尔曼滤波公式推导过程。通过递归地进行预测和更新步骤,卡尔曼滤波能够对系统状态进行最优估计。请注意,以上推导过程是基于线性系统和高斯噪声的情况,对于非线性系统还需要进行扩展,例如使用扩展卡尔曼滤波(Extended Kalman Filter)或无迹卡尔曼滤波(Unscented Kalman Filter)等方法。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值