news 2026/5/4 3:24:23

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于扩展卡尔曼滤波(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 的车辆状态估计有更深入的了解,也能在自己的学习和研究中顺利上手。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 16:29:03

布隆过滤器

一、布隆过滤器 1. 什么是布隆过滤器? 布隆过滤器是一种空间效率极高的概率型数据结构,核心作用是快速判断「一个元素是否存在于集合中」。它的特点可以总结为: 说「元素不在」→ 100%准确(绝对没在集合里)&#xff1b…

作者头像 李华
网站建设 2026/5/1 0:23:04

【JESD22-B109C】倒装芯片拉伸测试

B109C 测试方法:Flip Chip Tensile Pull 倒装芯片拉伸测试1 范围本测试方法适用于芯片与基板焊点形成后、未涂覆底部填充胶或其他会提高表观结合强度的材料前的倒装芯片。其用途包括:评估特定倒装芯片的芯片接合工艺一致性与质量;评估特定倒装…

作者头像 李华
网站建设 2026/5/2 19:53:41

2025年应届生闭坑指南:如何挑选低费用、高认可度的AI技能证书?

随着人工智能技术席卷各行各业,手握相关技能证书已成为应届毕业生提升就业竞争力的重要筹码。然而,面对市场上琳琅满目、价格不一的认证项目,许多同学不禁感到迷茫:如何避开“高价低能”的坑,选择一款既具高含金量又不…

作者头像 李华
网站建设 2026/5/1 0:37:26

基于YOLOv12农作物检测系统1:农作物检测数据集说明(含下载链接)

一. 前言 本篇博客是《基于YOLOv12农作物检测系统》系列文章之《农作物检测数据集说明(含下载链接)》,网上有很多农作物检测数据集的数据,百度一下,一搜一大堆,但质量参差不齐,很多不能用,即使一个一个的看…

作者头像 李华
网站建设 2026/4/30 23:17:21

pip遇到依赖冲突警告时候的排查办法

使用pip安装的时候遇到了以下的依赖冲突问题,解决流程记录一下,相似的过程可以进行排查: (hello-agent) tipriestUranus:~/Documents/hello-agents/code/chapter15/Helloagents-AI-Town/backend (main*) $ pip install -r requirements.txt Collecting …

作者头像 李华