自动驾驶仿真|软件工具-CarSim
大家好,我是李慢慢。学习自动驾驶仿真有段时间了,又来分享一点小知识。本文目录:1、自动驾驶的仿真平台是什么2、CarSim在仿真平台中的作用3、CarSim软件功能介绍4、CarSim的软件界面介绍5、CarSim和Simulink的联合仿真以下正文:1、自动驾驶的仿真平台是什么自动驾驶仿真有三个要素:场景库、仿真平台、以及结果评价。关于场景库,我在上一篇文章(戳我可看)描述了个大概,今天想来说说
大家好,我是李慢慢。
学习自动驾驶仿真有段时间了,又来分享一点小知识。
本文目录:
1、自动驾驶的仿真平台是什么
2、CarSim在仿真平台中的作用
3、CarSim软件功能介绍
4、CarSim的软件界面介绍
5、CarSim和Simulink的联合仿真
以下正文:
1、自动驾驶的仿真平台是什么
自动驾驶仿真有三个要素:场景库、仿真平台、以及结果评价。关于场景库,我在上一篇文章(戳我可看)描述了个大概,今天想来说说仿真平台。但是仿真平台是一系列软件的集合,一言以蔽之不了,所以还是只能一个一个软件地来说。
心中有地图,学习不迷路,我觉得有必要先简单说下仿真平台是个什么东西。仿真平台目前大多还不成熟,各厂家各有各的玩儿法。但大致做法是将诸多仿真软件进行联合,搭建起一个框架,形成一个“临时拼凑”的仿真平台,在仿真平台中,用海量的场景(场景库)对自动驾驶的各个算法进行功能验证(大概逻辑如下所示)。
当然也有厂家“野心勃勃”要自个儿开发出来自动驾驶仿真平台的(如蔚来的DevOps平台、丰田的e-Palette平台),但其逻辑也逃不出这个大图,只不过是用自主研发的软件取代了外部的商用软件而已。
2、CarSim在仿真平台中的作用
言归正传,在仿真平台中,有很多商用软件是受欢迎的,比如CarSim、PreScan、CarMaker、VTD、Matlab/Simulink等。这些软件各有各的特点,我们本期要说的CarSim就是以擅长汽车动力学分析而脱颖而出的。
百科:汽车动力学,是指主要研究汽车在行驶过程中汽车轮胎、空气阻力对其的影响,并包括汽车自身驱动与制动之间的相互作用的科学。
在自动驾驶仿真中,如果对汽车的动力学比较看重,是有必要建立出相应的车辆动力学模型的。就比如,对于AEB(自动紧急制动)功能来说,如果系统检测到前方有障碍物,给出指令从而采取制动措施,那么汽车以多大的制动力来刹车才能保证既不撞到障碍物也能平稳停下来呢,就是汽车动力学在自动驾驶仿真算法中的一个简单应用。
3、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的意思)。
4、CarSim的软件界面介绍
4.1、主界面
主界面可以分为三部分:
1、最左边部分可设置车辆的基本参数;
2、中间部分设置仿真的参数,以及和控制模型如(simulink、labview)的接口;
3、最右边部分查看运行的结果,动画以及曲线;
4.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文件
4.3、Edit菜单
1、Undo:撤销操作
2、Redo:重复操作
3、Change Title or Category of This Dataset:修改本数据库的标题或类目
4.4、Dataset菜单
这是CarSim自带数据库,满足不同的测试,通常这些Dataset都是lock住的。因此,用户在修改的时候,建议新建并复制数据库。防止误操作修改后无法运行系统自带的数据库。
4.5、Library菜单
这个是库文件菜单,包含制动系统模型、传动系模型、转向模型、悬架模型、路面模型等库文件。
4.6、View菜单
View菜单可以用来调整CarSim软件的界面大小,可设置是否显示工具栏、侧边栏。
4.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:锁定/解锁
5、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就可以看到仿真控制的结果。
本文完。
转载自-VX公众号【车路慢慢】
更多推荐
所有评论(0)