Carsim2019与Simulink (Matlab2018b)联合仿真成功(超详细)
Carsim与Simulink联合仿真成功
首先,想吐槽一下,一些教程和英文帮助文档一样,逐个介绍界面按钮,人都被转晕了也进入不了主题。终于,看了UP主自动驾驶废材的:
终于成功了,首先感谢老哥。但视频中有一些细节和新手的选项不一样,让人疑惑(害怕),此处重新整理一遍,做一个能正常运行的仿真。
目标
通过控制油门和刹车,保持车速为 60km/h。
- 车速不超过60km/h时,油门为0.8,刹车为0;
- 车速超过60km/h时,油门为0,刹车为0.6。
步骤1:创建Carsim工程
1.1 双击桌面图标,选择Carsim仿真存放地址
1.2 直接 Select
1.3 选择官方的快速开始模型,选择完成后最上面如箭头所指
如果页面太大,在 view 一栏设置
1.4 为了不改了官方例程,复制(Duplicate)一个,如下图
注意复制后页面上方会发生变化。
同样,为了避免修改 Procedure,复制一个,名字相同
弹框里写
结果如下
步骤2:修改Carsim工程
2.1 进入设置,点击Procedure蓝色框,进入设置页面
2.2 取消速度为常数(否则外部怎么给车发速度呢?)
2.3 联系Simlunk模型
选择Simulink模型
下拉框里的dataset自己新建一个
名字依旧取
最终效果如下
2.4 链接simulink文件
点击进入新的界面
链接到simulink文件(.slx文件),没有的话新建一个即可,此处取名 demo1.slx,文件位置随意
2.5 添加输入
先顺便添加动画刷新频率
链接到新的dataset
依旧取名 Demo-demo1
2.6 添加输出
和添加输入类似,如下
依旧选择链接到新的dataset,命名依旧 Demo, demo1,如下
2.7 选择输入参数(油门和刹车)
点击进入设置参数
选择刚才新建的 Demo-demo1
找到油门输入(IMP_THROTTLE_ENGINE) ,双击则添加到模型输入
同理,找到刹车(IMP_PCON_BK),添加至模型输入
2.8 选择输出参数(速度)
点击 Home 回到主页面
点击运动控制的模型进入设置页面
选择设置输出
和输入一样,选择 Demo-demo1
左边选择 “根据单位选择”
速度的单位是 km/h,选择单位,并找到纵向速度(Vx),双击选择作为模型输出
所有设置完成,点击 Home 回到主页面。
步骤3:Carsim/Simulink联合仿真
3.1 打开Simulink
点击 “Send to Simulink”,会打开 Matlab/Simulink,且打开文件就是之前选择链接的 demo1.slx。
耐心等一下,如下
3.2 Simulink 模型搭建
点击模型库浏览器(Library Browser)
输入 carsim 查找如下
此时会出现CarSim 的几个模型,选择 CarSim S-Function 拖入demo.slx。这个模块就是 CarSim 里的车辆模型,此时输入为油门和刹车,输出为速度。
注意,这几个 CarSim 不是Simulink自带的模块,是CarSim 生成的,要从CarSim软件里打开才会出现。
双击 CarSim S-Function 模块,如果没有 simfile.sim,添加一下。这里应该是为了链接到CarSim 而写的,不加会报错!
添加函数模块。直接在页面搜索,英文输入 “matlab function”,自然会有模块提示,
选择第一个 Matlab Function
双击 fcn 模块,进入函数编写,控制逻辑如下。
写完,保存,关闭。
回到 Simulink,添加 Mux 模块,连接输入。然后,连接输出。最后再添加一个 scope 查看。最终框图如下
3.3 Simulink模型运行
点击 运行 按钮,然后查看波形
波形如下,可见车辆达到了60km/h的指定速度。
3.4 CarSim 运行查看
点击 Home 回到主页面,点击 Video + Plot 查看视频与绘图
可见车辆正在运行,双击纵向速度窗口放大,可见和matlab 的scope显示一致。
这表明,一切顺利!
希望各位小伙伴顺利完成这次联合仿真~~
更多推荐
所有评论(0)