从0开始建立车辆仿真模型 – 车辆轮胎模型的建立

本来还想继续把MBD有关代码生成的开发的细节再讲讲,后来我的“产品经理”炸了,开始催更物理模型的文章了,那就先来说说物理模型的话题,后面再去补全代码生成的部分。

那首先来说说为什么要建立物理模型,物理模型一方面可以快速建立被控对象的模型,去支持算法和功能的仿真。另一方面物理模型也可以用来支持Mil / Hil测试,对于真实刷写到XCU中的算法代码进行验证。 本文先从0D/1D的系统仿真的层面介绍物理模型的搭建。

首先从系统层面来看,车辆系统级别的需求是整车需要有正常行驶的功能,分解到下一个级别的需求就是,车需要有电机,发动机,电池,变速箱等部件去使车辆能够运行起来。所以整车动力系统级别的物理模型的架构基本就搭建出来了。如下图所示,此处做个说明,图中所示的并未显示出feedback的信号,具体的架构以后续的具体模型为准。

本文所使用的是Simscape的工具箱,有人可能会问对于系统级别的仿真来说,用Excel表格或者简单的公式列出用simulink搭建不就可以了,为什么还要使用工具箱?首先从时间成本上考虑,汽车纵向动力学的基本公式simscape已经封装在了模型中,直接使用能够省去simulink搭建模型和调试的时间,更为重要的方面来说,对于动力系统开发和仿真,后续对于精度更高的功能更全的物理模型,可能还需要热仿真和液压以及电力电子的仿真。目前来说Mathworks的工具箱中已经有这些方面的工具可以使用诸如 Simdriveline, SimFlulid, SimElectrical以及Thermal的模块,在做联合仿真的时候可以得到更为精确的仿真模型,也使得仿真的精度更高。
这个系列的第一篇文章主要就是实现汽车动起来的功能,为了方便阐述,接下来选择使用单动力源去驱动车辆的最简单的模型来做一个说明。也算是Simscape的一个基础的讲解。

首先我们以matlab2018b为例在Simscape的库中找到Tires & Vehicle

如上图所示,建立车辆与轮胎的模型,这里使用的是魔术轮胎和车辆模型的连接。在轮胎模型中可以设置轮胎相关的参数,实际工程中最实用的除了设置轮胎的半径之外,最重要的就是滑阻的设置,一般来说在系统仿真阶段都会有对标车型的滑阻数据,输入后就可以进行动力性仿真。

参数的具体说明,在help文档中做了很清楚的介绍。这样通过实验所得的滑阻曲线进行仿真会比传统的阻力建模的模型更加精确。

说完参数再来介绍下具体的连线,A端口是机械连接的输入所以连接port_A,在完整的车辆模型中A的外层连接的就是差速器或者减速器。A端连接后与车辆模型的NR或者NF相连,NR和NF分别表示的是前驱或者后驱的模式,如果是四轮驱动那么可以在这里再添加两个轮胎连接到NF端,做一个四驱仿真的模型。H端就是起到一个车桥的作用,两轮连接后同时连接到车辆的H端。S端口可以用来测量车辆运动后轮胎的滑移率,从而来判断轮胎是否出现打滑的现象。

说完车轮,再来说整车部分。在整车部分Simscape就提出了一个整车模型,

在模型中可以输入图中所示的参数,参数越准确越能够在仿真结果中看到更加准确的经济型和动力性的数据。通常在工程上表格中的数据可以用参数定义,然后在M脚本中进行具体数值的定义。举个例子,这样的好处是可以实现多个不同车辆的自动化仿真,对于仿真或者系统工程师来说省事很多,不需要每仿真一个车型就要打开模型进行一个参数设置。

这个封装模型的具体方程在help文档中也有具体的解释和推导,对工程师来说工具用起来都是简单的,但是具体参数为什么要这么设置,还是要从源头上进行思考的。

上面介绍的时候已经提到轮胎模型中设置了具体的滑阻,所以风速在这里可以设置为0,道路的坡度在正常动力性仿真中可以设置为0,如果后期在做爬坡度仿真的时候可以在这里进行设置。

这样我们的整车和轮胎模型已经搭建完成。这时候可能有人会提出问题,simulink和simscape怎么进行交互,其实在模型里面已经出现了这个模块,

2018b中这个模块已经被改的很小了不是很起眼,

“PS-S”的一个图标,PS表示的是物理模型,s代表simulink。PS-S自然是物理模型转换到simulink进行输出,如果是S-PS则表示的是simulink信号转换到物理模型进行输入。在上图所示中很重要的一点就是物理量意义的转换,无论是S-PS 还是PS-S都需要进行物理意义也就是单位的设置,这样在仿真的时候才不会出错。

接下来要介绍的就是下图所示的ideal torque source的部分,

在这个模块的上方,我也同时列出了ideal angular velocity source的模块。这两个模块都可以用来简单的表示一个动力源,从名称上也很容易看出,torque source表示的是对系统进行扭矩的输入,而angular source则是输入的转速。对于整车仿真来说通常逻辑部分是驾驶员有踏板输入转换到动力源的扭矩输出,所以在整车的仿真中通常使用torque source作为动力源的输入,这样将这个模块暂时替代掉port A作为系统输入。这时候如果进行仿真很容易出现如下的报错,

在整个模型中,还忽略掉了最重要的一点,需要进行求解器的配置,simscape模块有自己的求解器,添加过后如下图所示。

对于Simscape模块,可以独立于simulink的仿真模块独立设置自己的仿真求解器。这样就完成了整车部分的物理模块的建模。这时候就可以点击RUN看一下仿真结果,

仿真结果表明,我们在给了100Nm的输入后系统是可以给出位移和车辆速度的输出,证明整车模型的建模没有问题。在下一篇文章中,我们添加完整的动力源和变速箱后就可以完成整车模型的建模了。

文章难免有疏漏欢迎交流指正。同时欢迎大家关注我的微信公众号:踱步在六月十七大街

从0开始建立车辆仿真模型 – 车辆轮胎模型的建立相关推荐

  1. 二自由度车辆的运动学模型和动力学模型

    二自由度车辆的运动学模型和动力学模型 最近刚接触自动驾驶相关的知识,得知像LQR.MPC这类基于模型的控制器,若想有不错的控制器性能,那么必须有比较精确的被控对象的数学模型.对于车辆这类被控对象的模型 ...

  2. r语言svr模型_使用R语言建立一个决策树回归模型

    决策树是一种简单但使用广泛的分类算法,根据目标变量的类型,决策树分为分类决策树(目标变量为因子型)与回归决策树(目标变量为连续数值型).在这里,我们使用R建议一个回归决策树模型. 决策树简单介绍 对于 ...

  3. 基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型

    基于阿克曼转向的车辆运动学模型 在simulink中建立车辆运动学模型,为路径规划奠定基础,能够更好的检验简化的运动学模型反映运动过程的准确性. 包括:1.simulink仿真验证(版本为2018b) ...

  4. matlab产生电弧信号,Matlab7.0下电弧模型的建立与分析

    技术与应用 2011 年第 12 期 90 Matlab7.0 下电弧模型的建立与分析 金海望 1 杨炳元 1 郑日红 1 夏永涛 2 (1.内蒙古工业大学电力学院,呼和浩特 010080:2.贵州大 ...

  5. 【评价模型】建立交通网络的数学模型, 定量分析车辆行驶

    目录 1.问题重述 2.问题求解思路 3.模型的建立与求解 3.1 对问题的分析

  6. 01两状态随机游动模拟matlab,一种用于血糖检测的三维耳垂模型的建立方法与流程...

    本发明属于fdtd和cpml算法建模,dla分形.模拟.微波无创检测技术领域. 背景技术: 当前,糖尿病作为一种全球性的疾病发病率不断增长.而诸多无创和微创的方法都未免给患者带来身体上的痛苦和精神的压 ...

  7. python 博弈论 库_6个Python库解释机器学习模型并建立信任

    在机器学习模型中建立信任的案例 全球道路上大约有12亿辆汽车.这是一个令人毛骨悚然的问题-您认为实际上有多少驾驶员了解车辆的内部运行情况? 正如您可能已经猜到的,答案只有少数几个人.我们不需要了解驾驶 ...

  8. 评估模型如何建立_建立和评估分类ML模型

    评估模型如何建立 There are different types of problems in machine learning. Some might fall under regression ...

  9. 商品评论情感分析——基于商品评论建立的产品综合评价模型(1)

    商品评论情感分析--基于用户评论建立的产品综合评价模型(1) 1.背景 1.1问题分析 2.数据预处理 2.1删除无关数据 2.2文本去重 3.情感分析 4.LDA主题模型 4.1评论文本分词 4.2 ...

最新文章

  1. mybatisplus修改单个属性_Mybatis Plus 中 参数传递的优化之路
  2. html5重新加载页面,使用AngularJSHTML 5模式重新加载页面会产生错误的GET请求
  3. 两个字符串的删除操作
  4. 动态ram依靠什么存储信息_ROM、RAM、DRAM、SRAM和FLASH傻傻分不清
  5. java相除保留两位小数_Java:Java快速入门
  6. MSDN-MDX#001 - 多维表达式 (MDX) 参考
  7. 下半年值得关注的新机和科技趋势
  8. 《Advanced .NET Debugging》 读书笔记 Listing 5-6: Pining的简单示例
  9. Jquery CSS 操作 - height() 方法
  10. 路由器,猫,交换机的区别
  11. Spring是什么意思?
  12. GOM GEE引擎的传奇SF“怪物召唤卷”功能脚本实例分享
  13. VSTO插件供WPS使用
  14. 在linux终端下使用scp与远程windows传输文件
  15. flash控件使用手册
  16. HDOJ 6082 度度熊与邪恶大魔王
  17. 思考未来--马云说:30年后的世界不属于互联网公司
  18. MySQL的幻读是怎么被解决的?
  19. 数据存储大讲堂:谈磁盘列阵与RAID技巧
  20. S7-1500 PLC存储卡SD的具体功能和使用方法

热门文章

  1. Android POI 百度地图——周边检索
  2. 学习:EtherCAT总线三种同步模式分析
  3. qt调试android程序崩溃,使用qt5开发的Android应用程序合并了AWS C++库崩溃
  4. open falcon mysql参数_Open-falcon原理介绍
  5. 多线程学习-day-07CountDownLatch、CyclicBarrier
  6. Untiy3d动画脚本
  7. 有关路基和隧道的CASIO 5800P 万能曲线 计算程序
  8. Mac下Android的Eclipse开发环境的搭建
  9. Linux 回收内存
  10. 天朝挖煤的题已经不会做了。。