首页/文章/ 详情

攻略|自动驾驶CarSim和Simulink联合仿真

1年前浏览12201
作者 | 车路慢慢 仿真秀科普作者
首发 | 仿真秀App
导读:大家好,我叫李慢慢,仿真秀专栏作者,某汽车主机厂汽车仿真工程师。自2020年起,我就在仿真秀平台分享了一些CAE仿真的教程或者文章,也开始自己学习自动驾驶仿真,准备转岗。前不久,我原创撰稿的浅谈自动驾驶仿真-场景库的那些事,擅自使用了中汽院智能网联科技有限公司宣讲稿中的一些图片且未能注明出处,在此表示诚挚致歉。

中汽院智能网联是中国汽车工程研究院股份有限公司全资子公司,致力于成为国际领先的智能汽车和车路协同测试评价与集成应用解决方案供应商,我在这里学到很多东西,能成功转岗,也多亏了其公开的很多资料,强烈推荐大家订阅。

言归正传。

因为慢慢本人转岗的方向是自动驾驶仿真,因此,也非常希望自己把目前市面上的一些主流仿真软件都探索一遍,以加深自己对这个领域的理解。我接触的第一个仿真软件是CarSim,所以,今天的文章,就这样面世了。

本文目录:

1、自动驾驶的仿真平台是什么
2、CarSim在仿真平台中的作用
3、CarSim软件功能介绍
4、CarSim的软件界面介绍
5、CarSim和Simulink的联合仿真

以下正文:

一、自动驾驶的仿真平台是什么

自动驾驶仿真有三个要素:场景库、仿真平台、以及结果评价。关于场景库,我在上一篇文章(戳我可看)描述了个大概,今天想来说说仿真平台。但是仿真平台是一系列软件的集 合,一言以蔽之不了,所以还是只能一个一个软件地来说。

心中有地图,学习不迷路,我觉得有必要先简单说下仿真平台是个什么东西。

仿真平台目前大多还不成熟,各厂家各有各的玩儿法。但大致做法是将诸多仿真软件进行联合,搭建起一个框架,形成一个“临时拼凑”的仿真平台,在仿真平台中,用海量的场景(场景库)对自动驾驶的各个算法进行功能验证(大概逻辑如下所示)。


当然也有厂家“野心勃勃”要自个儿开发出来自动驾驶仿真平台的(如蔚来的DevOps平台、丰田的e-Palette平台),但个人揣测哈其逻辑也逃不出这个大图,只不过是用自主研发的软件取代了外部的商用软件而已。

二、CarSim在仿真平台中的作用

言归正传,在仿真平台中,有很多商用软件是受欢迎的,比如CarSim、PreScan、CarMaker、VTD、Matlab/Simulink等。这些软件各有各的特点,我们本期要说的CarSim就是以擅长汽车动力学分析而脱颖而出的。

百科:汽车动力学,是指主要研究汽车在行驶过程中汽车轮胎、空气阻力对其的影响,并包括汽车自身驱动与制动之间的相互作用的科学。



在自动驾驶仿真中,如果对汽车的动力学比较看重,是有必要建立出相应的车辆动力学模型的。就比如,对于AEB(自动紧急制动)功能来说,如果系统检测到前方有障碍物,给出指令从而采取制动措施,那么汽车以多大的制动力来刹车才能保证既不撞到障碍物也能平稳停下来呢,就是汽车动力学在自动驾驶仿真算法中的一个简单应用。

三、CarSim软件功能介绍

CarSim是专门针对车辆动力学的仿真软件,CarSim模型在计算机上运行的速度比实时快3-6倍,可以仿真车辆对驾驶员,路面及空气动力学输入的响应,主要用来预测和仿真汽车整车的操纵稳定性、制动性、平顺性、动力性和经济性,同时被广泛地应用于现代汽车控制系统的开发。CarSim可以方便灵活的定义试验环境和试验过程,详细的定义整车各系统的特性参数和特性文件。

CarSim软件的主要功能如下:

a、适用于以下车型的建模仿真:轿车、轻型货车、轻型多用途运输车及SUV;
b、可分析车辆的动力性、燃油经济性、操纵稳定性、制动性及平顺性;
c、可以通过软件如MATLAB,Excel等进行绘图和分析;
d、可以图形曲线及三维动画形式观察仿真的结果;包括图形化数据管理界面,车辆模型求解器,绘图工具,三维动画回放工具,功率谱分析模块;程序稳定可靠;
e、CarSim软件可以扩展为CarSim RT, CarSim RT 是实时车辆模型,提供与一些硬件实时系统的接口,可联合进行HIL仿真;
f、先进的事件处理技术,实现复杂工况的仿真;
g、友好的图形用户界面,可快速方便实现建模仿真;
h、提供多种车型的建模数据库;
i、可实现用户自定义变量的仿真结果输出;
j、可实现与simulink的相互调用;
k、多种仿真工况的批运行功能;

CarSim只是Mechanical Simulation cooperation的一个产品。他们还有Truck Sim,BikeSim ,SuspensionSim等等各种各样的Sim(这里sim指的就是Simulation的意思)。

四、CarSim的软件界面介绍

1、主界面


主界面可以分为三部分:

  • 最左边部分可设置车辆的基本参数;

  • 中间部分设置仿真的参数,以及和控制模型如(simulink、labview)的接口;

  • 最右边部分查看运行的结果,动画以及曲线;


2、File菜单

菜单1、New Database(Empty)
新建一个空白的资料库

菜单2、New Database from this Dataset
在当前数据库的基础上新建资料库

菜单3、New Dataset(Duplicate of Current Dataset)
新建数据库,复 制当前界面的

菜单4、New Dataset(Empty)
新建一个空白的数据库

菜单5、New Dataset Plus All Linked Datasets
新建一个数据库,复 制当前数据库所有的链接

菜单6、Toggle Locked Status
锁定当前的数据库界面,和右上角的小锁一个效果

菜单7、Export Consolidated Parsfile
导出合并的Par文件

菜单8、Export Expanded Parsfile
导出展开的Par文件


3、Edit菜单

  • Undo:撤销操作

  • Redo:重复操作

  • Change Title or Category of This Dataset:修改本数据库的标题或类目




4、Dataset菜单


这是CarSim自带数据库,满足不同的测试,通常这些Dataset都是lock住的。因此,用户在修改的时候,建议新建并复  制数据库。防止误操作修改后无法运行系统自带的数据库。

5、Library菜单

这个是库文件菜单,包含制动系统模型、传动系模型、转向模型、悬架模型、路面模型等库文件


6、View菜单

View菜单可以用来调整CarSim软件的界面大小,可设置是否显示工具栏、侧边栏。


7、工具栏

工具栏下拉菜单的选项简单解释如下。
1、back:后退
2、Forward:前进
3、Home:返回最开始的主界面
4、Preview:前一个数据库
5、Next:下一个数据库
6、duplicate:复 制当前界面
7、undo:撤销操作
8、redo:重新操作
9、library tool:库工具
10、Parsfile:Par文件
11、Sidebar:打开/关闭侧边栏
12、refresh:刷写界面
13、help:当前界面的帮助
14、lock:锁定/解锁


五、CarSim和Simulink的联合仿真

其实我一直很疑惑,我在Simulink中可以仿真,在CarSim中也可以仿真,那我为什么还要学Simulink和CarSim联合仿真?由于是自我转行学习,所学比较片段,很难成体系,所以也是研究了很久,才稍微有了些理解。

先说Simulink:

总体来说,在Simulink中搭建模型,虽说是图形化建模,比Matlab快多了,但还是很慢的,因为Simulink中是搭建底层的算法,然后求解方程等,所得的结果也最多是弄个示波器演示下波形给你看,这个仿真的功能,在我看来,有点弱弱的。

图1、Simulink中搭建的一个速度控制模型

再来说说CarSim:

这个软件感觉就很强大了,因为可以很直观地看到仿真的车辆的运行姿态,也能看波形,这才是真正的仿真嘛,而且车辆模型和道路模型等都能非常快速的创建出来。但这个软件有一个缺点,车辆的参数等都是只能通过选择激活和激活后填取参数等设置,因为看不到背后的运算逻辑,所以很难理性地理解整个控制逻辑。所以,世界不由我控制,也是很难受的。

图2、CarSim主界面中的模块划分

那么其实很简单了,Simulink和CarSim各有优缺点,而且正好互补,所以两者可以一起运作。CarSim中可以搭建车辆模型、道路模型、驾驶员模型等,然后Simulink中可以将这些模型联合起来进行控制,进行底层的逻辑控制,然后求解得出结果。最后结果又可以在CarSim中非常形象的显示出来,帮助我们直观地看到求解的结果。


所以,这么一搭配就非常完美了。而且,CarSim中也非常懂事地设置了相应的接口,Simulink中也一般有对应的CarSim模块。

接口1:直接设置为在Simulink中求解

接口2:直接调用搭建的Simulink模型

所以经过这么一描述,那么联合仿真的流程就有了,简述如下。

a、在Simulink中搭建整个汽车动力学模型,如下图。

在这个模型中,我们最重要的是搭建控制逻辑算法,而对于基础的车辆模型、道路模型、驾驶员模型等内容,都可以调用Simulink中自带的CarSim S-Function模块(定义好输入输出就行),具体的模型我们需要到CarSim中去搭建(这样更快)。


b、在CarSim中,设置好车辆模型、道路模型、驾驶员模型等内容,然后设置求解方式为Simulink求解,并填入第一步搭建的Simulink模型,设置一些求解参数,然后点击Send to Simulink就可以把当前的车辆模型、道路模型、驾驶员模型等内容打包再发送回Simulink中的CarSim S-Function模块中去,这样,在CarSim中搭建的车辆模型、道路模型、驾驶员模型等内容就被很快速的引用到Sinmulink模型中去了。


c、再然后,在Simulink中运行求解就行了(看需要的话,也会有需要定义一些初始参数)。


d、求解完以后,就可以到CarSim中去查看结果了。点击Video就可以看到仿真控制的结果。


本文完。



相关阅读:

相关文章,在仿真秀官网搜索:

浅谈自动驾驶仿真-场景库的那些事

一点转行的心得

Matlab|通过图形化界面构建驾驶场景

现有的自动驾驶仿真软件有哪些?

声明:本文首发仿真秀App,部分图片和内容源自网络,如有不当请联系我们,欢迎分享,禁止私自转载,转载请联系我们。

来源:车路慢慢
Mechanical汽车MATLABSimulinkPreScan自动驾驶传动科普控制试验CarSim
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-06-21
最近编辑:1年前
李慢慢
硕士 自动驾驶仿真工程师一枚
获赞 11粉丝 71文章 122课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈