实例讲解使用Matlab_Simulink整车模型进行车速控制策略仿真测试验证方法

在进行VCU软件开发过程中,经常要设置一些扭矩控制相关的参数,一般可以通过经验先设置一版参数,然后通过与整车模型的联合仿真及实车标定优化相关参数,最终得到一版综合性能最优的参数作为最终程序定版参数。本文通过蠕行扭矩控制模块与整车模型联合仿真来说明仿真测试验证的方法。本文采用的模型是Matlab自带的整车模型,通过将自己设计的控制模型替换原模型中的控制模型,最终来验证自己设计的控制模型是否符合预期,如果不符合预期,可以调整参数进行再次测试。本文使用的是Matlab 2022b版本。

目录

一、新建整车模型

二、控制器模块控制模型替换设置

三、行驶工况的设置

四、观测模块的设置

五、仿真测试验证

六、总结


一、新建整车模型

1、在Matlab 2022b APP选项选择汽车-Virtual Vehicle Composer。(如果找不到该模块,可能是Matlab版本太低,Matlab2022a及以后的版本具备这个APP)

6f7a1c6d26944a619dd1bbdb13a82dd4.png

2、在打开的窗口中,选择New,新建一个整车模型

9f96768af8a54d94915128e06f35e8eb.png

3、在打开的整车模型界面,可以根据自己仿真的车辆模型类型进行相关参数选择

dcf5d1bc73fe4ce782c223a61f09126d.png

4、可以选择模型保存位置,设置模型名称,选择整车动力类型,此处我选择电动汽车,当然也可以选择不同形式的混动汽车,车辆动力学模型选择车辆纵向动力学-longitudinal vehicle dynamics,然后选择Create,创建模型

cd0d928317244ecba560bd165c2c290c.png

5、在创建的模型参数设置界面,可以根据自己所控制车辆的参数进行设置,如果无法得到全部参数,则根据要验证的功能,设置相关性较强的参数

dc4223c6356c4f249f8010b9abe6d3d0.png

6、我根据控制车辆的参数设置整车总质量为3495kg,迎风面积为3.5㎡

41acd7356cfc4e6b80ad430f4672e4dc.png

7、设置主减速器传动比为10.5

2cfd9da7d800414bad1d3b7f57fe2a3f.png

8、选择Scenario and Test 页面,可以根据需求选择循环工况添加

342f8c2656ec4937a8382f46a3c8c074.png

9、比如选择添加NEDC工况,并设置单位和仿真时间

0cd971edd7f248769cc7de1abdee8951.png

10、选择Logging页面,选择要输出记录的信号,比如选择电池功率BatPwr

29776fa2c47e40ceb6aadb5cf77326b1.png

11、设置完成后,点击主界面BULID Virtual Vehicle,生成虚拟整车模型

6a2a5823795e47ec80892d2dcb9334d1.png

9、等待生成完成,以下就是生成的整车Simulink模型,主要包括整车模型,驾驶员模型,行驶工况模型,环境模型,控制器模型以及观测模块

f20838d07e8c4db0aab458a2d223beec.png

二、控制器模块控制模型替换设置

1、双击控制器模型,进入控制器模块

0c52bf783a9340ea9d6b799236556340.png

2、双击VCU模型,进入VCU控制模块

422faaa787ba472d9bc01ec430ccc615.png

3、选择EV 1EM模型,双击进入电动汽车VCU控制模块

a9936c75daaa4f11a67eaba378bd2c73.png

4、选择Motor Torque Arbitration and Power Management,双击进入电机扭矩仲裁及能量管理模型

c0dd5900727d402e95fbc621792a2bb1.png

5、选择Power Management,双击进入能量管理模块

44b9348b3a85480798328ad9f7c09a33.png

6、选择Torque Limit,双击进入扭矩限制模块

704fe54203b249bca8c1da5e49591a98.png

7、可以看到原模型的扭矩限制模块模型

28e8ba94091d4adcbbd60a91f3b36d96.png

8、将自己搭建的蠕行车速控制模型复制进入该扭矩限制模块,其中车速可以通过接收的电机转速,结合轮胎滚动半径0.316m、主减速比10.5,转换单位为km/h得到车速;由于是验证蠕行车速控制,档位信号设置为1,即D挡。蠕行控制模型搭建详细介绍可以参考之前发布的《实例讲解电动汽车蠕行控制策略及Simulink建模方法》

d1e57089fd244b598e80cfb94bdc0b44.png

9、选择原控制模型,右键选择注释掉,将原控制逻辑隐藏掉,完成控制模型的替换

e03ffb3572eb437db543bbdbb17caa33.png

三、行驶工况的设置

1、选择Reference Generator模块,双击进入设置界面

cf4bab128e4b4ad89ed26180da5d8d7e.png

2、选择Sine with Dwell,可以生成车辆持续加速的工况,当然也可以通过自定义设置Drive Cycle设置需要验证的工况

db05809ed397405b8216d6b6216728cc.png

3、设置参考最大加速车速

610f966e07a64e4b9c5c6e0d96cfb811.png

4、打开变量编辑器

50853d7ecfd240ab99f61141d638f731.png

5、此处设置为120

cd1c75cb7f114bbdb962ce8dba85af8f.png

6、设置车速单位,此处选择千米每小时,即km/hr

687077bf63384740a361728d09b63db5.png

7、主菜单选择建模-模型设置,设置仿真时间为60s

94faef42903e4da38850bcdf77e6da67.png

四、观测模块的设置

1、在主界面选择Visualization观测模块,双击进入

eb5409a3dd3d4d0d9839bbcba1d2979b.png

2、选择DataLogging,双击进入数据记录模块

37aa0a1234204dcbae4180f55614da31.png

3、模块中输出变量即在整车模型设置时Logging页面选择的信号,将xdot车速信号、EMSped电机转速信号及EMTrq电机扭矩信号引出作为示波器显示信号

ce5e98a5bf3d4c2e83200a446f11e65d.png

4、其中车速输出信号初始单位为m/s,通过添加Unit Conversion模块及Signal Specification模块,将单位转换为km/h

957ed0e220654f259bc3925c3880d6a0.png

五、仿真测试验证

1、选择主菜单仿真-运行,运行整个模型

e7da193ae72a4aac8d00b5dd15047c38.png

2、仿真正常运行中,可以通过弹出的Vehicle Position窗口观察车辆行驶车速

cb9e651e9edb4a0f8f6e09fe71ec9917.png

3、仿真运行完成后,打开DataLogging模块,双击Scope,查看仿真结果

e54fc759a8564451811a4371c60a2a27.png

4、仿真结果显示,车速从0逐渐平稳上升,最终稳定在5-6km/h,符合蠕行控制策略车速设定预期,输出扭矩从0开始逐渐增大,最大值不超过40Nm,然后逐渐下降最终保持稳定,符合设定的扭矩控制策略。当然如果加速度或者最终稳定车速如果不满足要求,可以通过修改控制策略参数进行再次仿真测试,从而得到更好的控制模型参数。仿真结果可以一定程度代表控制策略的效果,但是由于仿真模型有很多参数与实车有差异,最终还是要在实车上进行测试,如果不符合预期,需要在实车上进行标定优化。

60b82d3043db4e67a7da3cb1f8947dd4.png

六、总结

本文通过Matlab自有整车模型的创建、参数设置及蠕行控制策略仿真策略验证,介绍了一种利用Matlab自有整车模型对自己所创建的扭矩控制策略进行仿真测试验证的方法。本文中只是进行了关键参数的设置,如果要进行更加精准的仿真策略,可以对相关整车参数、环境参数、驾驶员模型等参数,对电机扭矩转速效率MAP、电池参数、BMS系统等进行更加详细的设置。希望通过本文的介绍能给相关技术人员带来一些参考和帮助。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143232.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

C++八股文之STL篇

🤖个人主页:晚风相伴-CSDN博客 思维导图链接:STL 持续更新中…… 💖如果觉得内容对你有帮助的话,还请给博主一键三连(点赞💜、收藏🧡、关注💚)吧 &#x1f64…

[Python]一、Python基础编程

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\1、人工智能开发入门\1、零基础Python编程 1. Python简介 Python优点: 学习成本低开源适应人群广泛应用领域广泛1.1 Python解释器 下载地址:Download Python | Python.org 1.2 Python开发IDE -- Pycharm 2. 基础语法…

数据权限的设计与实现系列9——前端筛选器组件Everright-filter集成框架开发2

功能实现 ‍ 规则转换为 SQL 片段‍ 规则解析 首先我们来构造一个典型的规则,包括两个条件组,每个组由两个条件组成,由且与或两种逻辑关系,如下图: 然后看看生成的规则,如下: {"filt…

合宙Air201模组LuatOS:PWRKEY控制,一键解决解决关机难问题

不知不觉间,我们已经发布拉期课程:hello world初体验,点灯、远程控制、定位和扩展功能,你学的怎么样?很多伙伴表示已经有点上瘾啦!合宙Air201,如同我们一路升级打怪的得力法器,让开发…

计算机的错误计算(九十六)

摘要 探讨 的计算精度问题。 计算机的错误计算(五十五)与(七十八)分别列出了 IEEE 754-2019 中的一些函数与运算。下面再截图给出其另外3个运算。 例1. 已知 x-0.9999999999966 . 计算 不妨在Python下计算,则有&am…

10 - UDP实验

在本章节中,我们将采用 network 与 socket 这两个第三方库来构建UDP网络连接的功能。具体而言,network 库将被应用于WiFi连接的建立,而 socket 库则基于 lwIP 协议栈来实现网络协议的连接。在实验环节,我们将利用 ESP32 开发板与远…

【自动驾驶】决策规划算法(一)决策规划仿真平台搭建 | Matlab + Prescan + Carsim 联合仿真基本操作

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

FL Studio 24.1.1.4285中文完整版新功能介绍及百度网盘下载

‌FL Studio 24‌版本引入了多项新功能和改进,旨在提升用户体验和工作效率,同时保持其强大的功能和灵活性。以下是一些主要的新功能: ‌CLAP插件支持‌:FL Studio 24支持Clever Audio Plug-in (CLAP)插件,这扩展了软件…

认知小文3《打破桎梏,编程与人生的基本法则》

内容摘要: 面对挑战,编程起步艰难但必经磨砺。每周深耕Python,实战项目巩固技能。财务需努力与实战结合,构建坚实基础。规划先行,先进知识助力专家之路。认知升级阅读与多元资源,拓宽视野。价值积累靠专业证…

25届校招IQCAT思维能力自适应测验智鼎测评指南:题库获取、刷题策略与真题解析!

IQCAT思维能力自适应测验考试内容介绍 IOCAT思维能力自适应测验基于二因素智力理论,通过考察作答者的一般认知能力,预测其学习新知识、新技能以及理解、解决问题时的工作表现。IQCAT使用自适应测验技术,根据作答者的作答情况,从题…

8.Lab Sevent —— Multithreading

首先切换到thread分支 git checkout thread make clean Uthread:switch between threads 为用户级线程系统设计上下文切换机制 xv6中已经放了两个文件: user/uthread.c和user/uthread_switch.S 以及一个规则:运行在Makefile中以构建uthre…

Text-to-SQL技术升级 - 阿里云OpenSearch-SQL在BIRD榜单夺冠方法

Text-to-SQL技术升级 - 阿里云OpenSearch-SQL在BIRD榜单夺冠方法 Text-to-SQL 任务旨在将自然语言查询转换为结构化查询语言(SQL),从而使非专业用户能够便捷地访问和操作数据库。近期,阿里云的 OpenSearch 引擎凭借其一致性对齐技术,在当前极具影响力的 Text-to-SQL 任务…

【C++前后缀分解】1888. 使二进制字符串字符交替的最少反转次数|2005

本文涉及知识点 C前后缀分解 LeetCode1888. 使二进制字符串字符交替的最少反转次数 给你一个二进制字符串 s 。你可以按任意顺序执行以下两种操作任意次: 类型 1 :删除 字符串 s 的第一个字符并将它 添加 到字符串结尾。 类型 2 :选择 字符…

点到直线的距离公式证明

根据勾股定理,已知直角三角形的两个直角边长为,,可以计算出斜边长为 进而根据三角形的面积公式,可以求得斜边的高为 下面证点到直线的距离公式: 如上图,知任意点到直线的距离公式为

解决Tez报错问题

在启动hive的时候,发现该报错 1、检测HADOOP_PATH环境变量 echo $HADOOP_CLASSPATH 如果没有输出,说明我们的配置文件没有生效,这时候需要重写source一下 2、刷新配置文件生效 source /etc/profile 有输出,环境生效 3、再次运…

计算机毕业设计 玩具租赁系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

MySQL | 知识 | 从底层看清 InnoDB 数据结构

文章目录 一、InnoDB 简介InnoDB 行格式COMPACT 行格式CHAR(M) 列的存储格式VARCHAR(M) 最多能存储的数据记录中的数据太多产生的溢出行溢出的临界点 二、表空间文件的结构三、InnoDB 数据页结构页页的概览Infimum 和 Supremum使用Page Directory页的真实面貌 四、B 树是如何进…

基于SpringBoot+Vue的房屋租赁平台

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

如何使用ssm实现企业人事管理系统+vue

TOC ssm628企业人事管理系统vue 研究背景 自计算机发展以来给人们的生活带来了改变。第一代计算机为1946年美国设计,最开始用于复杂的科学计算,占地面积、开机时间要求都非常高,经过数十几的改变计算机技术才发展到今天。现如今已是电子时…