CarMaker入门第四课-CarMaker与Simulink联合仿真
5.1 开启CarMaker与Simulink联合仿真使用Windows "开始 "按钮打开CarMaker,并创建一个新项目。CarMaker GUI > File > Project Folder > Create Project并切换选项CarMaker for Simulink Extras。单击 "确定",完成项目文件夹的创建。
图 5.1 使用CarMaker for Simulink Extras创建新项目现在,项目文件夹中包含一个名为src_cm4sl的额外文件夹,它提供了Simulink的接口。关闭CarMaker GUI,打开Matlab。作为工作目录,选择项目的src_cm4sl文件夹。在左侧显示工作目录内容的选项卡中,右击名为cmenv.m的文件,运行脚本。这个选项保证了CarMaker和Matlab之间的连接。打开generic.mdl模型。现在,Matlab应该已经打开了,接着是Simulink环境和Simulink模型generic.mdl。成功的启动程序会出现以下窗口。
图 5.2 带有Simulink模型generic.mdl的MATLAB窗口。疑难解答:有时,文件类型.mdl与Matlab无关。出现一个新的对话框,要求用以下程序之一打开文件。
图 5.3 打开文件对话框必须找到Matlab可执行文件,然后才能确认执行。启动确认Matlab和CarMaker for Simulink通过扩展Matlab的搜索路径共同工作,因此它知道在哪里可以找到CarMaker for Simulink块集和辅助命令。Matlab的搜索路径是通过执行一个名为cmenv.m的脚本来扩展的,它位于CarMaker项目目录的mdl子目录--src_cm4sl中。该脚本可以手动执行,但也有办法在每次启动Mat- lab或加载模型时自动调用它。最重要的规则是。始终将 cmenv.m 脚本与 Simulink 模型放在同一目录下。每当加载包含CarMaker for Simulink块集中CarMaker子系统块的Simulink模型时,cmenv.m将自动执行。这个默认行为应该足以满足CarMaker for Simulink的大多数用途。cmenv.m 脚本应该在 Matlab console 窗口中生成一个类似于下面的消息:CarMaker directory: c:/IPG/carmaker/-addpath:/IPG/carmaker/-/Matlabaddpath:/IPG/carmaker/-/Matlab/vx.x-r20xxxaddpath:/IPG/carmaker/-/CM4SLaddpath:/IPG/carmaker/-/CM4SL/vx.x-r20xxxaddpath:/path/to/your/project_dir>/src_cm4slInitialize CarMaker for Simulink.Done.5.2 使用Simulink和CarMaker联合仿真generic.mdl示例旨在作为一个启动示例模型,并提供了一个基本的CarMaker子系统(类似于单机版),没有任何额外的控制块。关于该系统的更多细节将在下一节中介绍。确保之前打开的任何CarMaker GUI都被关闭。双击Simulink中的 "Open GUI "块,弹出CarMaker for Simulink window。
图 5.4 从MATLAB调用CarMaker GUI将打开与前几章相同的GUI,其中包含加载TestRun、更换车辆等信息。加载TestRun产品实例 > 实例 > BasicFunctions > Driver > HandlingCourse。环境与平时非常相似。即使在Simulink内,也不需要准备特殊的Simulink模型。当加载模型 "Generic "时,会选择最简单的车辆模型(这次是模型,而不是数据集!),这实际上是CarMaker单机版中可用模型的对应。现在CarMaker for Simulink已经可以工作了!在下面的章节中,将介绍CarMaker单机版和CarMak- er for Simulink之间的基本区别。5.3 Simulink中CarMaker环境的描述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仿真的一部分。接下来的步骤将显示它是多么容易。5.4 在Simulink中使用CarMaker的优缺点功能CarMaker 单机版CarMaker与 Simulink联合仿真备注仿真速度速度非常快。速度慢,特别是对于附加模型。simulink环境需要大量的处理能力。当使用simulink模型 "generic.mdl "时,可以达到最佳的性能。即使这样,仿真速度也有很大的差异。即使是模型中的一些小的附加功能也会导致性能损失。灵活性充分的灵活性。有限的灵活性,即使不需要的时候,Simulink也会对已实现的模型进行仿真。c代码提供了一个机会,可以只在需要的时候才使用仿真的部分内容(例如附加的子模型,动态交通对象)。交换模型简单,全局性灵活性有限,即使在不需要的情况下,Simulink也会对所有的模型进行仿真。要使用C-代码的接口,必须在需要的时候才使用模拟的部分(如附加的子模型,动态交通对象)。Va r i a bl e s卡接口,但只有单机版,C代码可在界面变量和用户知识是必须的。C库是可使用的数量是可以使用。可用。可管理性很好的。C-代码是理想的结构化。创建libs a n d ob j e c t s,你也可以很容易地共享模型。很好的到了中等多元化水平。c代码大多安排得很好,比复杂的simulink模型更好理解。图形化建模舒适度较低,只能使用R e a l T i m e - Workshop。从此以后,m o d e l s变得越来越难管理。特别是对于初学者和没有c代码知识的人来说,在Sim- ulink中扩展CarMaker要容易得多。物有所值非常好。非常容易。两种变体都可以在CarMaker/Office包中使用。对于Simulink版本,你需要Matlab和Sim- ulink,这需要额外的几千欧元。