• Carsim2019与Simulink (Matlab2018b)联合仿真成功(超详细)


    首先,想吐槽一下,一些教程和英文帮助文档一样,逐个介绍界面按钮,人都被转晕了也进入不了主题。终于,看了UP主自动驾驶废材的:

    从零开始搭建carsim与simulink联合仿真模型

    终于成功了,首先感谢老哥。但视频中有一些细节和新手的选项不一样,让人疑惑(害怕),此处重新整理一遍,做一个能正常运行的仿真。


    目标

    通过控制油门和刹车,保持车速为 60km/h。

    1. 车速不超过60km/h时,油门为0.8,刹车为0;
    2. 车速超过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显示一致。

    在这里插入图片描述
    在这里插入图片描述
    这表明,一切顺利!

    希望各位小伙伴顺利完成这次联合仿真~~

  • 相关阅读:
    链路追踪--Sleuth和日志聚合---Zipkin
    【kafka】十二、Zookeeper在kafka中的作用
    王道并查集代码
    深度学习必备Python基础知识充电2
    LinkedList与链表
    鸡尾酒学习——长岛冰茶
    抗击疫情静态HTML网页作业作品 大学生抗疫感动专题页设计制作成品 简单DIV CSS布局网站
    基于SSM的开心农家乐系统设计与实现
    详解设备指纹核心算法
    冒泡排序与二分查找
  • 原文地址:https://blog.csdn.net/weixin_41869763/article/details/126473402