以下均为本人学习过程中的个人理解,如有错误还请指出!!!
后面会发布Carsim和simulink联合仿真实现自定义路径,验证Pure Pursuit算法的教程,敬请期待!!!
***************************
在CarSim中,有两个核心概念:dataset(数据集)和database(数据库)。它们在汽车仿真建模中扮演着至关重要的角色。
以建造一辆“预制车”为例,我们只需要将车轮、车壳、发动机、底盘等基本组件按照一定规则拼接起来。在CarSim中,dataset可以简单理解为这些基本组件。当我们搭建一个完整的汽车仿真模型时,需要车辆模型、道路模型、仿真工况等。这些基本组件在CarSim中都属于dataset,而汽车仿真模型本身也是一个特殊的dataset,它将其他基本的dataset组合在一起,形成一个可运行的汽车仿真模型。
换句话说,dataset是CarSim仿真中的一个小型数据集,用于保存某个基本组件的数据。而database则是一个大型数据集,它包含了许多不同的dataset。在搭建仿真环境时,我们可以根据自己的需求调用不同的dataset来构建所需的汽车仿真场景。
在CarSim仿真中,为了不修改官方提供的dataset,通常会在使用时复制一个新的dataset。在复制过程中,会有两个文本框需要输入。第一个文本框用于指定新dataset所在的目录。不同组件的dataset目录是相互独立的,例如,汽车模型的dataset不能保存在道路模型的dataset目录下。这就好比电脑的C盘专门用于保存视频,D盘专门用于保存文档。如果新建了一个视频文件,可以将其保存在C盘的根目录,也可以在C盘创建一个子目录来存放,但绝对不能保存在D盘的某个目录下。第二个文本框则用于输入新dataset的名称。
***************************
1.点击Carsim软件
2.选择安装软件中自带的Database,点击Continue with the selected database
3.选择select
4.下图即为Carsim车辆仿真的基本视图
5.选择官方提供的快速开始模型
6.为了不改变官方的仿真范例,此处点击Duplicate对该dataset进行一个复制,点击之后,上面文本框中输入的是新的dataset所在的目录,下面的文本框中输入的是新的dataset的名字
7.对procedure的dataset同样进行复制,选择copy and link dataset,意思就是复制一个新的dataset,并链接到这个新的dataset
8.输入相应的目录名和dataset名称
9.点击上一步复制的dataset,对里面相关属性进行设置
10.因为我们要通过simulink向车辆发送油门和刹车信息,要将控制改为油门和初始速度控制,并且将初始速度设为0
11.更改后如下图所示,如果无法更改点击右上角的解锁
12.选择matlab/simulink作为车辆控制模型
13.选择link to new dataset,链接到一个新的dataset
14.这里同样输入目录名称和dataset名称
16.使用Matlab/Simulink新建一个空的simulink文件,保存在CarSim_Data/Extensions/Simulink/的子目录中
16.进入刚建的dataset,进行配置
17.将15步建立的simulink文件链接到该dataset中,作为仿真控制器
18.选择该接口为Import channels,也就是汽车控制的输入通道(输入油门,刹车,方向盘等数值来控制汽车的运动)
19.选择新建一个dataset并链接
20.选择该接口为Export channels,也就是汽车模型信息的输出通道(可以获取汽车坐标,速度,偏航角等参数信息)
21.建立新的dataset并链接
20.进入Import Channels中的cardemo,添加输入变量
21.选择获取输入信息的数据集,也就是汽车仿真模型的dataset(即前文提到的一个特殊的dataset,它用来将其他基本的dataset组合成一个可运行的汽车仿真模型)
----------------------------------------
如果不知道这个特殊的dataset的具体名称,文章末尾给出了查看方法
----------------------------------------
22.找到油门输入(IMP_THROTTLE_ENGINE)和刹车(IMP_PCON_BK) ,双击添加到模型输入
23.进入Export Channels的dataset,设置输出变量,另外可以设置动画频率为60
24.同21步一样,链接到汽车仿真模型dataset
25.选择通过单位查找变量
26.速度的单位是km/h,选择单位,并找到纵向速度(vx)和横向速度,双击添加到模型输出
27.汽车大地坐标系下的坐标的单位是m,选择单位,并找到横向坐标(xo)和纵向坐标(yo),双击添加到模型输出中
28.回到主界面,点击send to simulink,进入simulink仿真文件(不能直接从matlab进入,否则会找不到对应的求解器模型)
29.点击Library Browser进入库,查找相应模型
30.在搜索框中搜索CarSim S-Function,然后选择红框中的模型,按住将其拖拽到simulink面板中
31.在Library Browser中搜索Mux,分别将两个红色框中的模型拖入simulink面板中(将车辆模型的输入和输出进行分流,合流)
32.依据上文中在carsim中设置的输入,输出变量数量来设置mux(Demux)的接口数量,双击对应的Mux(Demux)来设置数量。上文中我们设置了输入变量共有两个,所以左侧的Mux数量正确,不需要改变,输出变量有四个,而默认的Demux只有两个,那么我们双击设置数量为4
如果Demux四个点过于密集,可以将模型拉大更为清晰
33.在Library Browser中搜索matlab function,并将其拖入simulink面板中
34.双击matlab function模块,编写逻辑代码(matlab function模块负责接收参数,完成相应逻辑处理后返回,函数的参数数量就是输入端口数量,返回值数量就是输出端口数量),编写后保存
35.在Library Browser中搜索scope ,分别拖拽scope 和 XY Graph到simulink面板中,用来展示速度波形和车辆轨迹
36.将所有模型连接在一起
37.点击run,进行仿真
37.点击scope 和XY Graph查看车辆速度变化曲线和车辆轨迹
38.如果XY Graph中的轨迹不明显或者很少,是因为超过了XY Graph设定的x,y数值范围,可以双击该模型,然后设置x,y的范围
39.在carsim中查看车辆运行视频和图表
第一个仅有视频,第二个视频加图表(对于图表可以通过自己设置来获得想要的数据图)
40.查看汽车仿真模型的dataset名称,在主界面中点击datasets,然后选择标黑的目录,最后会有一个带对号的dataset名称。
感谢大家给看到这里,本人是通过下面这篇博客学会carsim和matlab/simulink的联合仿真,并自己写了这篇博客来纪念一下,希望各位亲能点个赞!!!另外b站的联合仿真视频正在录制(视频当然更详细啦)UID:1941380957,希望能支持一下
后面会发布Carsim和simulink联合仿真实现自定义路径,验证Pure Pursuit等车辆追踪算法的教程,敬请期待!!!
-------------------------------------
Carsim2019与Simulink (Matlab2018b)联合仿真成功(超详细)_carsim和simulink联合仿真-CSDN博客
-------------------------------------