实验介绍
- CarMaker自带与Simulink联合仿真的功能
- 与Simulink的仿真不再是之前单一的文件能够解决的了,而是需要创建一个工程,来存放相关的各种文件
- 实验环境:windows10、CarMaker 10.2、Matlab R2021a
- 我在一篇文章中看到了一个很不错的Simulink中CarMaker作用描述:(英文原文在QuickStartGuide.pdf的7.3 Description of the CarMaker Environment in Simulink章节中,翻译来源:http://www.360doc.com/content/21/0126/08/72814757_958968324.shtml)
- CarMaker for Simulink是将IPG的车辆动力学仿真软件完全集成到MathWorks建模和仿真环境Matlab/Simulink中。因此,在CarMaker for Simulink中,用户能够扩展车辆模型本身。
- CarMaker的高度优化和强大的功能是通过使用S函数实现和Matlab/Simulink提供的API函数添加到Simulink环境中的。
- CarMaker for Simulink并不是一个松散耦合的协同仿真,而是两个一流应用的紧密结合,从而形成了一个既能保证良好性能又能保证稳定性的仿真环境。
- 由于这种集成,现在可以在直观的全功能Simulink环境中使用CarMaker的强大功能。此外,在Simulink中使用CarMaker与使用标准的S功能块或内置的Simulink块没有什么不同。CarMaker块的连接方式与其他Simulink块的连接方式相同,现有的Simulink模型现在可以轻松地添加到CarMaker车辆模型中,只需点击几下即可。
- 然而,集成并不意味着功能的损失,因为所有使CarMaker成为其领域内首要软件的功能都已包含在内,现在可以与Simulink的丰富工具集一起使用。CarMaker GUI仍可用于仿真控制和参数调整,以及定义机动和道路配置。IPGControl仍可用于数据分析和图表绘制。IPGMovie仍然可以用来使车辆模型栩栩如生,在三维空间中对多体车辆模型进行逼真的动画和渲染。
- 简而言之,CarMaker for Simulink并不是一个脱胎换骨的版本,而是一个完整的系统,可以快速、轻松地成为任何Simulink仿真的一部分。接下来的步骤将显示它是多么容易。
实验过程
新建工程
- 进入CarMaker界面,新建一个Project
- 勾选CarMaker for Simulink Extras
如果不想新建,想用现在的,那就点击Create Project下面的Update Project,和Create Project一样勾选。
用Matlab打开工程
-
进入目录,打开cmenv.m
-
运行cmenv.m,保证了CarMaker和Matlab之间的连接
-
到命令行窗口查看运行情况
-
回到当前文件夹,双击generic.mdl
generic.mdl示例旨在作为一个启动示例模型,并提供了一个基本的CarMaker子系统(类似于单机版),没有任何额外的控制块。
-
弹出Simulink界面
- 左边的齿轮表示:专用于仅用于高级应用的附加选项
- 中间的汽车表示:CarMaker模型的Simulink表示,双击可查看CarMaker的总体结构
- 右侧的CM是一个链接,双击弹出CarMaker的主界面
-
双击图片里的大CM,弹出CarMaker的主界面
-
如果我们没有关闭之前的CarMaker主界面,那么它会提示应用已经打开了一个,是否要再开一个,我们点击Continue即可
搭建一个简单的道路
- 最简单的一条直线道路,路线也规划一条
- 设置一个简单的行驶策略
- 选一个普通的小车
- 保存
模拟运行
-
回到Simulink界面,点击Run
-
我们在IPGMoive界面,看到小车在运行(IPGMoive界面默认需点击CarMaker主界面的File->IPGMoive调出)
查看实时数据
- 双击CarMaker这个小车,进入底层构造
- 双击DrivMan这个模块,查看驾驶原理构造
- 我们选择记录一些信号
- 点击Data Inspector查看信号
- 勾选信号
- 点击Run,查看信号变化
结束
- 本次实验可以在CSDN的资源中下载:https://download.csdn.net/download/qq_37400312/43134181
- CarMaker和Simulink的联合仿真还可以,部分数据在模块里可以直接观测到,也可以修改车辆接受的数据,但模块里没有可观的描述,不太好改,因此修改还是比较复杂的。
- CarMaker里的CM_SFun竟然是加密的, 看不到源代码,虽然我找到了CM_SFun位置在C:\IPG\carmaker\win64-10.2\CM4SL\R2021a文件夹下,名为CM_Sfun.mexw64,但看不到源代码,也就无从分析他的动力学原理了。
- CarMaker自带一些Simulink的样例,在BasicFunctions下,但不要直接运行,先确保工程下已经配置好了Simulink文件(实验第一步的那个CarMaker for Simulink Extras选项)。
- 我们可以在Matlab的命令行窗口内输入CarMaker4SL调用CarMaker的接口块集。它是一个工具箱,里面有非常有用的模块帮助创建用户定义的模型。
-
界面会显示这十几个模块,但并不意味着它只有这十几个,你可以去Library Browser中找到更多
-
直接调用有时会报错,建议先运行一下cmenv.m再调用CarMaker4SL
-