当前位置: 首页 > news >正文

基于扩展卡尔曼滤波(EKF)的车辆状态估计——为初学者开启的探索之旅

基于扩展卡尔曼滤波(EKF)的车辆状态估计(采用基于Dugoff轮胎的七自由度车辆动力学模型,B09商品基础上建模) 1.软件: MATLAB 2018以上;CarSim 2020.0 2.商品介绍: (1)基于Dugoff轮胎模型和车身动力学公式,搭建7DOF车辆动力学Simulink模型,对相关变量(质心侧偏角,横摆角速度,纵、横向速度及加速度)进行CarSim对比验证。 (2)采用EKF估计车辆质心侧偏角、横摆角速度及纵向车速。 包括:S函数编写EKF、Simulink自带EKF模块两种方式。 (3)在线性状态方程下使用的EKF,即质心侧偏角、横摆角速度的表达式是线性方程。 整体逻辑清晰,界面整洁舒适,适合初学者入门学习。

在车辆动力学研究领域,准确估计车辆状态至关重要。今天咱们就来讲讲基于扩展卡尔曼滤波(EKF)的车辆状态估计,采用的可是基于 Dugoff 轮胎的七自由度车辆动力学模型,而且是在 B09 商品基础上建模哦。

一、软件准备

本次研究用到的软件是 MATLAB 2018 以上版本以及 CarSim 2020.0 。MATLAB 强大的计算与仿真能力,搭配 CarSim 专业的车辆动力学仿真功能,简直是天作之合。

二、商品介绍

1. 搭建 7DOF 车辆动力学 Simulink 模型

基于 Dugoff 轮胎模型和车身动力学公式,咱们搭建 7DOF 车辆动力学 Simulink 模型。这个模型可不简单,它能对质心侧偏角、横摆角速度、纵横向速度及加速度这些关键变量进行精确模拟。

比如说,在 Simulink 里搭建模型的时候,就像搭乐高一样,每个模块都有它的作用。以质心侧偏角的计算模块为例:

% 假设这里有一些基础参数 m = 1500; % 车辆质量 lf = 1.2; % 质心到前轴距离 lr = 1.5; % 质心到后轴距离 v = 20; % 车速 % 质心侧偏角近似计算公式 beta = atan((lr * delta_f - lf * delta_r) / (lf + lr)) / v;

这里通过车辆的一些基本参数(质量、轴距分配等),再结合前后轮转角,就可以近似计算出质心侧偏角。然后把这些模块按照车辆动力学的逻辑关系连接起来,就构成了完整的 7DOF 模型。最后还要和 CarSim 进行对比验证,确保模型的准确性。

2. 采用 EKF 估计车辆状态

S 函数编写 EKF

咱们可以通过 S 函数来编写 EKF。S 函数就像是一个自定义的小工厂,按照我们的要求生产数据。

function [sys,x0,str,ts] = ekf_sfunc(t,x,u,flag) switch flag, case 0, [sys,x0,str,ts]=mdlInitializeSizes; case 1, sys=mdlDerivatives(t,x,u); case 2, sys=mdlUpdate(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 4, sys=mdlGetTimeOfNextVarHit(t,x,u); case 9, sys=mdlTerminate(t,x,u); otherwise DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag)); end

这段代码是 S 函数的基本框架,不同的case对应不同的功能。case 0初始化参数,case 1计算导数(在 EKF 里可能用不到),case 2更新状态,case 3输出估计值等等。我们在这个框架里填充 EKF 的具体算法,就可以实现对质心侧偏角、横摆角速度及纵向车速的估计。

Simulink 自带 EKF 模块

Simulink 本身也提供了 EKF 模块,使用起来更加方便。就像直接买了个组装好的玩具,只要把参数设置好就能用。我们只需要把车辆模型的输出连接到 EKF 模块的输入,再设置好状态转移矩阵、观测矩阵等参数,就能轻松得到估计值。

3. 线性状态方程下的 EKF

这里我们使用的是线性状态方程下的 EKF,也就是说质心侧偏角、横摆角速度的表达式是线性方程。这样做的好处是计算相对简单,对于初学者来说更容易理解和上手。

比如说质心侧偏角的线性表达式:

beta_dot = - (C_f + C_r) / (m * v) * beta - (C_f * lf - C_r * lr) / (m * v^2) * r + C_f / m * delta_f;

这里betadot是质心侧偏角的变化率,CfCr分别是前后轮侧偏刚度,deltaf是前轮转角。通过这样的线性方程,我们可以在 EKF 算法里更好地处理和估计质心侧偏角的状态。

整个研究从模型搭建到状态估计,逻辑清晰,界面也尽量做到整洁舒适,特别适合初学者入门学习。希望大家通过这篇博文,对基于 EKF 的车辆状态估计有更深入的了解,也能在自己的学习和研究中顺利上手。

http://www.cnnetsun.cn/news/53582.html

相关文章:

  • AMD Ryzen性能调优:快速掌握处理器调试工具的使用技巧
  • 深蓝词库转换:轻松打通全平台输入法数据壁垒
  • (新卷,200分)- 最小传输时延Ⅱ(Java JS Python)
  • OpenHarmony AI人脸识别与手势控制系统开发指南
  • 新一代空间感知驱动的军工仓库与硐室透明化管控技术研究
  • Sketch MeaXure插件:设计师必备的智能标注工具
  • 强化学习Q-learning求最优策略
  • 你对电脑上的【Fn】熟悉多少
  • 计及N-k安全约束的含光热电站电力系统优化调度模型【IEEE14节点、118节点】附Matlab代码
  • 计及需求响应的粒子群算法求解风能、光伏、柴油机、储能容量优化配置附Matlab代码
  • conda使用详细指南
  • 豆包与DeepSeek底层大模型的深度解析:技术架构、设计理念与生态分野
  • Linux系统中的socket激活:先创建监听端口,后启动程序
  • 从零解决pyproject.toml构建失败的实战指南
  • Redis Lua脚本入门:从零写出你的第一个原子操作
  • 旧机转手不再慌!电子产品信息清除新国标落地,核心技术逻辑全解析
  • 安全体验馆好用供应商
  • 第二章——数据分析场景之Python数据可视化:用Matplotlib与Seaborn绘制洞察之图
  • 【Java毕设全套源码+文档】基于springboot的高校毕业生离校管理系统小程序设计与实现(丰富项目+远程调试+讲解+定制)
  • 如何用AI工具jstat优化Java应用性能分析
  • 【Java毕设全套源码+文档】基于springboot的高校毕业生信息管理系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • Day 38 GPU训练及类的call方法
  • 【Python实战】火爆全网的“隔空手势画板”是如何实现的?教你用OpenCV+MediaPipe复刻钢铁侠黑科技!
  • 【学习笔记】如果打造可复现、可评测、可迭代的AI技术体系
  • 【论文自动阅读】See Once, Then Act: Vision-Language-Action Model with Task Learning from One-Shot Video Demo
  • 利用齐次坐标系证明各种几何定理【射影几何】
  • 小程序基于springboot的乡镇普法知识科普宣传系统 律师预约系统设计与实现_qf4cwws6(java毕业设计项目源码)
  • 面向对象编程三大特性:封装、继承、多态的核心要义
  • leetcode 2147. 分隔长廊的方案数 困难
  • 学生党必备!这款桌面课表工具太省心了