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

基于二自由度汽车模型的汽车质心侧偏角估计

一、质心侧偏角介绍

在车辆坐标系中,质心侧偏角通常定义为质心速度方向与车辆前进方向的夹角。如下图所示,u为车辆前进方向,v为质心速度方向,uv之间的夹角便是质心侧偏角。

 质心侧偏角的作用有如下三点:

1、稳定性评估,转弯过程中,质心侧偏角可以反映车辆的姿态变化,过大或者过小都可能导致车辆失去稳定性,通过监控质心侧偏角,可以提高车辆在转弯时的稳定性。

2、操控性优化,合适的侧偏角可以使车辆更容易控制,提高驾驶员对车辆的操控性和响应度。

3、车辆姿态控制,质心侧偏角是很多车辆动态控制系统的重要输入参数,如ESC

质心侧偏角不容易由传感器直接测量得到,在实际应用中,质心侧偏角常常使用估算的方法得到。本篇博客中,使用卡尔曼滤波器,基于车辆二自由度模型,进行质心侧偏角估计。

关于卡尔曼滤波器的使用,可以查看博主往期文章。

三个实例迅速掌握经典卡尔曼滤波用法_卡尔曼滤波 实例-CSDN博客

二、 二自由度模型的推导

在汽车理论第五章,以下三页有推导过程,心急的小伙伴可以直接看结论。

最终得到以下这组方程:

式子中,

m,整车质量;k1为前轮侧偏刚度;k2为后轮侧偏刚度;β为质心侧偏角;a为质心到前轴距离;b为质心到后轴距离;u为车速;δ为前轮转角;wr为横摆角速度;Iz为汽车转动惯量;v为车辆坐标系下的侧向速度。这几个量中,k1,k2,a,b,Iz为车辆固定参数;u为车速,直接测量得到;δ,前轮转角,也很容易由方向盘转角就可以换算得到;wr,陀螺仪直接采集得到。只有β质心侧偏角无法由传感器直接测量得到。

本篇文章中,通过已知的观测量横摆角速度Wr和方向盘转角δ,用卡尔曼观测器估计,初步估计质心侧偏角,并与carsim中质心侧偏角进行对比。

三、状态空间方程推导

四、与carsim联合仿真

目前仍在以下两问题:1、确保质心侧偏角估算准确的情况下,轮胎侧偏刚度k1,k2与carsim中的轮胎侧向力曲线对不上;2、低速(50km/h)以下时,侧偏角估算震荡。

五、模型与脚本

需要模型的同学们,还是在某宝店  极简车辆控制

包含以下几个文件

1、双击carsim图标,打开carsim,选择红框中的按钮,并continue;

2、选择文件夹中的发货文件夹中的.cpar文件,并按照提示,创建一个文件夹,用于存放carsim工程,在接下来的对话框中,直接按照默认的第一个,点击select,出现进度条,导入完成后,会弹出carsim界面。

3、更改simulink模型路径,

先解锁,再点击simlink模型名称,蓝色位置。

在这个界面中,同样需要先解锁,然后把这两个路径设置到存放simulink模型的位置。注意,路径最好不要有中文名。

4、点击home,返回主界面,点击Send to Simulink,可以打开matlab,并打开simulink模型。

5、运行simulink模型即可。

6、仿真环境

博主用的是carsim 2019+matlab2022b版本。

carsim建议用2019版本,下载及按照过程可参照b站链接:

最新!Carsim2019详细安装教程【附安装包】_哔哩哔哩_bilibili

如果你的matlab不是2022b版本,注意核对下carsim工程中这个matlab版本选项。

同时,这里选择另存的2018b版本模型。注意,路径最好不要有中文名。

相关文章:

基于二自由度汽车模型的汽车质心侧偏角估计

一、质心侧偏角介绍 在车辆坐标系中,质心侧偏角通常定义为质心速度方向与车辆前进方向的夹角。如下图所示,u为车辆前进方向,v为质心速度方向,u和v之间的夹角便是质心侧偏角。 质心侧偏角的作用有如下三点: 1、稳定性…...

前端html+css+js 基础总结

​​​HTML 行级元素 标签分为行级元素与块级元素 行级元素占据区域由其显示内容决定&#xff0c;如span&#xff0c;img(图片)&#xff0c;<a></a>基本格式: <a href"链接" target"_blank"></a>用于跳转到其他网站&#xff0c…...

若依VUE项目安全kind-of postcss vite漏洞扫描和修复

npm install unplugin-auto-import0.16.7 npm install vite3.2.11 升级vite、unplugin-auto-import npm install 报错New major version of npm available! 8.5.5 -> 10.8.3&#xff0c;使用命令npm install --force npm install --force...

C语言实现简单凯撒密码算法

**实验2&#xff1a;传统密码技术 【实验目的】 通过本次实训内容&#xff0c;学习常见的传统密码技术&#xff0c;通过编程实现简单代替密码中的移位密码算法&#xff0c;加深对传统密码技术的了解&#xff0c;为深入学习密码学奠定基础。【技能要求】 分析简单代替密码中的移…...

多态的使用和原理(c++详解)

一、多态的概念 多态顾名思义就是多种形态&#xff0c;它分为编译时的多态&#xff08;静态多态&#xff09;和运行时的多态&#xff08;动态多态&#xff09;&#xff0c;编译时多态&#xff08;静态多态&#xff09;就是函数重载&#xff0c;模板等&#xff0c;通过不同的参数…...

OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【Trace调测】

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 基本概念 Trace调测旨在帮助开发者获取内核的运行流程&#xff0c…...

Lombok 在 IntelliJ IDEA 中的使用步骤

Lombok 是一个非常流行的 Java 库&#xff0c;它通过注解简化 Java 类的开发&#xff0c;特别是在处理 POJO&#xff08;Plain Old Java Objects&#xff09;类时&#xff0c;如生成 getter、setter、toString 等常用方法。Lombok 在减少样板代码&#xff08;boilerplate code&…...

计算机网络 --- Socket 编程

序言 在上一篇文章中&#xff0c;我们介绍了 协议&#xff0c;协议就是一种约定&#xff0c;规范了双方通信需要遵循的规则、格式和流程&#xff0c;以确保信息能够被准确地传递、接收和理解。  在这篇文章中我们将介绍怎么进行跨网络数据传输&#xff0c;在这一过程中相信大家…...

git笔记之在多个分支中复用某个分支提交的更改

git笔记之在多个分支中复用某个分支提交的更改 code review! 文章目录 git笔记之在多个分支中复用某个分支提交的更改1.实现该功能的 Bash 脚本示例2.这个脚本是否可以处理新添加的文件&#xff1f;3.该脚本使用前&#xff0c;应先使用下述脚本重置本地仓库所有分支与远程保持一…...

HTML、CSS

初识web前端 web标准 Web标准也称为网页标准&#xff0c;由一系列的标准组成&#xff0c;大部分由W3C (World Wide Web Consortium&#xff0c;万维网联盟) 负责制定。三个组成部分: HTML: 负责网页的结构(页面元素和内容)。CSS: 负责网页的表现(页面元素的外观、位置等页面样…...

数据文件(0)

一、使用场景 1、字典数据 对于一些数据量不大的配置类数据&#xff0c;放到数据库中占用数据库资源&#xff0c;可以放到代码中维护。比如 &#xff08;1&#xff09;字段少业务单一&#xff1a;做成枚举&#xff1b; &#xff08;2&#xff09;字段多业务复杂&#xff1a…...

Go语言并发模式详解:深入理解管道与上下文的高级用法

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在Go语言中,并发编程是其最强大的特性之一。合理地使用并发模式,可以让我们的程序高效而优雅地处理复杂的任务。在本文中,我们将深入探讨Go语言中的一些高级并发模式,包括管道的技巧和上下文包的应用。通过丰…...

标准文档流解析及 CSS 中的相关特性

目录 非 VIP 用户可前往公众号回复“css”进行免费阅读 标准文档流特点 空白折叠现象 高矮不齐、底边对齐 自动换行,一行写不满,换行写 标准文档流中的元素等级 HTML 与 CSS 中的标签分类总结 块级元素和行内元素的相互转换 块级转行内 行内转块级 display 非 VIP…...

水下攻防面试题

水下攻防面试题通常涉及对水下环境的理解、水下安全操作、水下技术应用以及攻防策略等多个方面。由于具体的面试题可能因组织、职位和目的的不同而有所差异,以下是一些可能出现在水下攻防面试中的典型问题及其参考答案框架: 一、基础概念与理解 什么是水下攻防? 水下攻防是…...

vmware 虚拟机多屏幕或添加屏幕

vmware 虚拟机多屏幕或添加屏幕 前置条件 vmware 安装 vmware tools 虚拟机系统支持多屏幕 物理上有至少两个屏幕&#xff0c;就是物理机上接至少一个屏幕 方法 虚拟机上点设置&#xff0c;需要在虚拟机关机时进行 ctrl alt enter 让当前虚拟机全屏 鼠标移动到屏幕虚拟机…...

鹏哥C语言49-51---第6次作业:循环语句 for 和 while

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> //-----------------------------------------------------------------------------------------------第六次作业&#xff1a;for循环等 //--------------------------------------------------------------------…...

springboot中药材进存销管理系统

基于springbootvue实现的中药材进存销管理系统 &#xff08;源码L文ppt&#xff09;4-079 4 系统总体设计 4.1系统功能结构设计图 根据需求说明设计系统各功能模块。采用模块化设计方法实现一个复杂结构进行简化&#xff0c;分成一个个小的容易解决的板块&#xff0c;然…...

GitHub上图像超分开源项目推荐【持续更新】

SRCNN 介绍&#xff1a;SRCNN&#xff08;Super-Resolution Convolutional Neural Network&#xff09;是一种用于图像超分辨率的卷积神经网络。它由Dong等人在2014年提出&#xff0c;是早期的深度学习方法之一&#xff0c;用于提高图像的分辨率。SRCNN通过学习低分辨率&#…...

浅谈软件测试的基础知识(1)

文章目录 一、什么是测试1.1、生活中的测试案例1.2、为什么需要进行软件测试 二、测试和开发的区别2.1、调试和测试的区别 四、测试人员需具备哪些素质五、软件的生命周期六、软件测试的生命周期七、设计测试用例的方法[!]7.1、什么是测试用例7.2、测试用例作用 八、走测试岗位…...

Mac 上哪个剪切板增强工具比较好用? 好用剪切板工具推荐

在日常文字编辑中&#xff0c;我们经常需要重复使用复制的内容。然而&#xff0c;新内容一旦复制&#xff0c;旧内容就会被覆盖。因此&#xff0c;选择一款易用高效的剪贴板工具成为了许多人的需求。本文整理了一些适用于 macOS 系统的优秀剪贴板增强工具&#xff0c;欢迎大家下…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?

在大数据处理领域&#xff0c;Hive 作为 Hadoop 生态中重要的数据仓库工具&#xff0c;其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式&#xff0c;很多开发者常常陷入选择困境。本文将从底…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...