打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于MATLAB&SIMULINK开发自动驾驶系统第五讲之扩展卡尔曼滤波

当物体运动遵循非线性状态方程或测量值是状态的非线性函数时,使用扩展卡尔曼滤波器。一个简单的例子是,当物体的状态或测量值是以球面坐标计算的,如方位角、海拔和范围。

5.1状态更新模型

扩展的卡尔曼滤波公式将状态方程线性化。更新后的状态和协方差矩阵仍然是之前状态和协方差矩阵的线性函数。然而,线性卡尔曼滤波器中的状态转换矩阵被状态方程的雅各布矩阵所取代。 雅各布矩阵不是恒定的,而是可以取决于状态本身和时间。要使用扩展卡尔曼滤波器,必须同时指定状态转换函数和状态转换函数的Jacobian。

假设有一个预测状态的闭式表达式,作为之前状态、控制、噪声和时间的函数:

预测状态相对于前一状态的Jacobian为:

预测状态相对于噪声的Jacobian为:

当噪声线性地进入状态更新方程时,这些函数采取更简单的形式。

在此状态下,

.

5.2 测量模型

在扩展卡尔曼滤波器中,测量可以是状态和测量噪声的非线性函数。

相对于状态的测量的雅各布值为           

               

相对于测量噪声,测量的雅各布值为

当噪声以线性方式进入测量方程时,这些函数采取更简单的形式。

此时 ,

 

5.3 扩展卡尔曼滤波环路

这种扩展卡尔曼滤波环路与线性卡尔曼滤波环路几乎相同,只是。

- 尽可能使用精确的非线性状态更新和测量函数状态转换矩阵被状态雅各布取代

- 测量矩阵由相应的雅各布代替。 

5.4 预定义的扩展卡尔曼滤波函数

自动驾驶工具箱提供了预定义的状态更新和测量功能,用于扩展卡尔曼滤波器。 

运动模型

函数名字

函数目的

Constant velocity

constvel

恒速状态更新模型

constveljac

恒速状态更新雅各布

cvmeas

恒速测量模型

cvmeasjac

定速测量Jacobian

Constant acceleration

constacc

恒加速状态更新模型

constaccjac

恒加速状态更新雅各布

cameas

恒加速度测量模型

cameasjac

恒定加速度测量Jacobian

Constant turn rate

constturn

恒定转率状态更新模型

constturnjac

恒定转速状态更新雅各布

ctmeas

恒定转速测量模型

ctmeasjac

恒速测量雅各布函数

trackingKF 函数实例:

创建一个二维追踪EKF对象,并使用名-值对来定义StateTransitionJacobianFcn和MeasurementJacobianFcn属性。使用预定义的恒速运动和测量模型以及它们的雅各布系数。

EKF = trackingEKF(@constvel,@cvmeas,[0;0;0;0], ...
'StateTransitionJacobianFcn',@constveljac, ...
'MeasurementJacobianFcn',@cvmeasjac);

运行过滤器。使用预测和纠正函数来传播状态。你可以按任何顺序调用预测和纠正,次数不限。在笛卡尔坐标中指定测量。

measurement = [1;1;0];
[xpred, Ppred] = predict(EKF);
[xcorr, Pcorr] = correct(EKF,measurement);
[xpred, Ppred] = predict(EKF);

[xpred, Ppred] = predict(EKF)

xpred = 4×1

1.2500
0.2500
1.2500
0.2500

Ppred = 4×4

11.7500 4.7500 0 0
4.7500 3.7500 0 0
0 0 11.7500 4.7500
0 0 4.7500 3.7500
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
卡尔曼滤波器学习笔记(二)
卡尔曼滤波(KF)与扩展卡尔曼滤波(EKF)的一种理解思路及相应推导(1)
基于扩展卡尔曼滤波(EKF)的机器人状态估计
matlab实现扩展卡尔曼滤波(EKF)进行故障检测
卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波以及粒子滤波原理
KF,EKF怎样设置Q和R阵?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服