CarMaker是由德国IPG公司开发的一款专门针对乘用车的车辆动力学仿真软件,旗下还有TruckMaker和MotorMaker分别用于商用车和摩托车仿真。同其它车辆仿真软件如DSpace、CarSim/TruckSim等一样,能够与MATLAB/Simulink进行联合仿真,为车辆ECU以及智能驾驶开发提供了很好的平台。可以将Simulink搭建的控制策略编译成C代码并下载到ECU中,并与其配套的实时目标机中,能够进行实时仿真测试。
在CarMaker中进行仿真,需要相似于真实测试驾驶的操作定义。例如定义车辆的类型、轮胎、驾驶员、测试赛道和驾驶员执行的操作等。CarMaker为这些需求提供了几个预定义的模型。这些模型和设置的组合就构成了所谓的TestRun。
究竟什么是TestRun?
CarMaker基于固定的模型(车辆、悬架、轮胎等),其属性(例如每个车身的重量或弹簧刚度的值)是可以改变的。
这意味着车身和它的自由度(DOF)的数量已经定义好了,用户不需要自己去建模。如果用户希望去扩展一个模型,建议使用CM4SL。
虽然模型本身已经定义好了,但它们仍然需要根据环境进行参数化。为此,需要为每个模型手动实现或加载一个所谓的数据集。参数化包括选择车辆、选择或设计道路、定义驾驶员类型以及定义车辆的操作。在所有这些组件设置好之后,CarMaker就有了控制虚拟车辆环境(VVE)和仿真所需的信息。
所有这些设置都存储在VVE仿真过程使用的文件中。这个文件可以被保存、加载或编辑,我们称之为TestRun定义。在指定的测试仿真中加载并执行这个文件。TestRun文件具有普通文本文件的格式,可以用编辑器查看。
简而言之:一个TestRun代表了一个测试场景,其所有的虚拟环境(车辆、驾驶员、轮胎等)的参数都被充分定义。
标准的CarMaker安装包含了各种TestRun示例,其中包含了描述这些模型所需的所有数据。这使得新用户可以使用CarMaker工作,并了解该程序的其他主要功能。
1.1加载一个预定义的虚拟车辆环境
首次启动CarMaker时,需要创建一个包含所有TestRun数据的项目文件夹。在 CarMaker 主界面中选择 File > Project Folder > Create Project即可完成。当以后再次启动CarMaker时,可以继续使用相同的项目文件夹,或者创建一个新的项目文件夹。无论哪种方式,都必须定义一个项目目录。
图1.1 创建新的项目文件夹
在标有"Project Folder"的字段中选择了项目目录的路径。可用的附加功能可以通过勾选附加框来激活。
现在,在定义了一个项目目录后,可以加载一个TestRun。
加载 TestRun "SegmentBasedClosedTrack "。在CarMaker GUI中,点击 File > Open,选择Product Examples,然后选择 Examples > BasicFunctions > Driver > SegmentBasedClosedTrack。
图1.2 加载"SegmentBasedClosedTrack"
看一下CarMaker主界面,它现在具备了执行仿真所需的所有数据集。TestRun现在可以进行仿真了。
图1.3 包含相关数据集的CarMaker GUI
1.2运行仿真
现在,因为在CarMaker中加载了TestRun,所以成功执行仿真所需的所有数据都已经具备。
开始仿真:点击CarMaker GUI中绿色的“Start”按钮。
仿真开始。可以通过以下几点来识别:
- 在IPGMovie中:当前仿真动画正在运行,用户可以观看。仿真结束后,可以以不同的速度重放动画。
- 在CarMaker GUI中:在“Simulation”框中,显示了车辆运行的时间和距离,以及当前仿真的状态。
- 在Instruments中:操作显示,尤其是转速表可以实时浏览。
注意:当启动CarMaker时,如果IPGMovie和Instruments没有自动弹出,可以通过点击主GUI中的File > IPGMovie和File > Instruments。
图1.4 在主GUI, Instruments和IPGMovie中显示正在运行的仿真
停止仿真:点击CarMaker GUI中红色的“Stop”按钮。
IPGMovie动画结束,Instruments慢慢地静止,CarMaker GUI中的所有其它显示都停止。
当需要在完成之前中止TestRun时,可以使用Stop按钮。其它方面,当TestRun自行结束时,仿真也会停止并返回到空闲状态,用户不需要手动结束。
下面章节将进一步详细介绍仿真过程中发生的事情。
点击绿色的“Start”按钮,再次运行TestRun。
现在可以观察CarMaker GUI、IPGMovie、Instruments和IPGControl,了解在仿真过程中这些显示的内容。
1.2.1当前仿真的交互视图
CarMaker提供了多种方式来观察仿真。本章将简要介绍其中的一些方法,最重要的一些将在后面的章节再次介绍,例如”IPGControl”。
IPGMovie
通过IPGMovie,用户可以观看当前仿真的动画。
图1.5 IPGMovie中的仿真在线视图
在动画中,可以选择不同的视角和背景场景。尽管IPGMovie有可用的视角和设计设置,但它不仅仅只是一个动画工具。例如,当前的动画可以导出到文件中,以便在演示中进一步使用。
CarMaker GUI
图1.6 CarMaker GUI
Box(A):储存结果
CarMaker生成的结果通常保存到计算机RAM中的缓冲区。但是也可以通过mode选项save all代替collect only来保存到文件中进行进一步分析。该Box有助于控制和定义保存策略。
Box(B):仿真
在此Box中,用户可以定义仿真速度:实时或比实时慢/快。最大选项可以使仿真速度达到当前PC硬件和激活的软件所允许的速度。这可以达到实时的40倍,记住,打开IPGMovie会对PC的性能产生影响,就像所有其他应用程序一样。
加快仿真速度可以节省时间,尤其是在使用自动测试运行时,往往会有大量的TestRuns依次进行。另一个特点是,在仿真过程中可以改变仿真速度。
另外,在这个Box中,可以显示当前仿真的时间和距离。用户还可以收到有关仿真状态的信息。当仿真没有运行时显示Idle,在开始阶段显示Preparing或仿真正在进行时显示Running。
观察IPGMovie在仿真速度为2x、Max和Realtime时的变化。
Box(C):车辆操作
定义的若干个操纵步骤都会在这个Box中显示,在 "创建你的第一个TestRun "一节中进一步的介绍。当前的操纵步骤用蓝色高亮显示,这样就可以清楚地看到当前正在仿真的是哪个步骤。
Instruments
Instruments是一个补充的显示,它用于快速、直观地检查最重要的数据,并对驾驶员的动作进行概述。Instruments的内容与真实车辆的仪表盘上所能看到的内容非常相似。
图1.7 Instruments GUI
在Instruments中显示的内容可以由用户选择性地进行个性化和扩展。为此,CarMaker提供了一个使用tcl/tk脚本语言的界面,该界面使每个用户都可以构建单独的GUI。
IPGControl
IPGControl是一个嵌入式工具,用于在线绘制仿真结果的各种图表。
打开IPGControl: File > IPGControl。
图1.8 IPGControl窗口
绘制车辆的速度和侧向加速度:IPGControl Sidebar > "Quantities" field > 左键点击变量"Car.v "和 "Car.ay"。
在CarMaker GUI中,开始仿真。
一段时间后,选择"Fit totally” 以便在可用的图表区域内拟合图表。
1.3 IPGMovie动画
点击绿色的 "Start "按钮,再次仿真TestRun HandlingCourse。
IPGMovie提供了在线动画的功能。这意味着当前的仿真数据可以无延迟地提供,在仿真过程中直接显示虚拟世界。此外,通过加载外部的结果文件,在IPGMovie中仍然可以显示之前已经进行过的TestRun的动画。这就是所谓的脱机动画。
这里要介绍的第一个IPGMovie的功能是,在仿真过程中,用户可以使用鼠标来改变视角和放大、缩小。
改变视点:按下鼠标左键,将光标向所需方向移动。
缩放:按住鼠标中键,将光标上下移动或使用鼠标滚轮。
图1.9在IPGMovie中的不同视点
中止Testrun:在CarMaker主界面单击红色“Stop”按钮。
仿真结束后(当TestRun结束或用户点击CarMaker主界面中的Stop按钮后),可以使用控制栏中的光标在IPGMovie中重新播放动画。摄像机的视点仍可随时修改。
使用控制栏中的光标,在IPGMovie中再次观看上次仿真的动画。改变视点。
此外,IPGMovie还提供了各种有用的功能:
- 比较两种不同仿真的动画效果:在IPGMovie中进行两种不同设置的仿真,同步播放,可以对结果进行快速、直观的分析。
- 通过在IPGMovie窗口中的右键单击可访问各种选项。
- 在IPGMovie窗口中通过点击顶部菜单中的 "相机 "可选择不同的相机选项。此外,可定义多个个性化的摄像机视图。
- 通过顶部菜单中的场景选项,可选择各种选项。
- 导出动画中的视频或图片:File > Export(DivX是一种可能导出的文件,只有在当前系统上安装了编解码器才有可能)。
- 查看轮胎受力情况:View > Show > Forces.。每个轮胎接触点处的彩色条形图代表三个方向或坐标系中每个方向的力。
对道路定义所做的所有修改都会在IPGMovie中显示。不过,首先需要对动画进行更新。这意味着至少需要启动和停止一次仿真。
1.4数据分析
有几种方法来分析CarMaker仿真过程中产生的数据。IPG提供了自己的工具IPGControl,它是为查看和分析仿真数据而开发的,也可以独立使用。除此之外,还可以使用各种第三方工具如Excel或Matlab来进行数据分析。
1.4.1 IPGControl
本章将介绍如何使用IPGControl分析和绘制仿真结果。
IPGControl提供了一个在线结果管理应用程序的功能。这意味着可以毫不延迟地提供当前的仿真数据。仿真过程中可以直接显示图表。通过加载外部结果文件,用户也可以显示以前的TestRuns结果。这被称为离线结果管理。每个新的结果源都会在选择窗口中的数据集列表中显示。保存在这些文件中的数据可以在另一张图中绘制出来。
下图中可以清楚地看到,可以绘制的变量非常多(仿真变量)。IPGControl允许用户对绘制的变量进行操作,改变坐标轴的范围比例,以便更有效地分析结果。
打开IPGControl
IPGControl通过CarMaker主图形用户界面中的File菜单打开。
图1.10 IPGControl窗口
使用侧边栏中的数据源,可以选择要在图中显示的结果文件。
选择要绘图的变量
图1.11选择绘图的变量
首先,最重要的是,如果数据窗口中出现了多条线图,必须激活一个线图进行编辑。只有这样才能选择变量进行绘图。因此,左键单击一次所需的图表。黄色的小符号告诉用户哪个线图处于目前激活状态。
变量和参考变量可以从侧边栏中的变量列表中选择,也可以通过变量浏览器选择。点击并按住主菜单中的X或Y按钮,即可打开 "变量浏览器"。只需点击顶部菜单中的X/Y按钮一次,侧边栏中的变量列表就会在纵轴或横轴的使用范围内切换(见图1.11)。在搜索栏中的变量列表中应用了一个过滤器。通过点击条目字段旁边的红叉,可以取消过滤器。
可以通过在之前的列表(变量和参考变量)中重新选择变量,或者在变量浏览器中用红色的十字符号取消显示变量,或者在图表右侧的列表中双击变量本身,将变量从图表中删除。
在IPGControl中显示的变量也可以被称为用户可访问的变量(UAQ)。
使用主菜单
使用数据源下的下拉菜单,用户可以选择显示数据的来源。这可以是当前的仿真,也可以是以前的仿真结果文件。
此外,数据的采样率可以通过Settings > Sampling rate定义。
通过选项Diagram > Add window,可以将更多的 "图表 "窗口添加到显示中。
图1.12添加额外的图表窗口
与主窗口相比,各独立窗口可以有相同或独立的视图设置和数据源。侧栏配置、数据源和信号选择完全独立于主视图管理。
通过Diagram > Add/Delete Diagram选项,可以在数据窗口中添加或删除图表。
图1.13在白色背景下改变图表的采样率
图表的背景颜色可以通过 Settings > White diagram background将图表的背景颜色从黑色(默认值)改为白色。请注意,必须重新启动IPGControl才能使背景颜色变为激活状态。
图表窗口的功能
图1.14 图表窗口功能
调整图表的功能:
- 在图表中间右击 > Fit options:以所需的方式将选定的曲线(或所有曲线,如果没有选定特定的曲线)拟合到图表中的可用空间。
- 按Shift + x或只按x:改变x轴的比例。
- 按Shift + y或仅按y键:改变所有y轴的比例。要只改变一个y轴的比例,需要先选择所需的曲线。
- 按 Ctrl + y 或 Ctrl + z:缩放所有y轴。
- 左击图表+移动鼠标:沿着所有的图轴移动图表。
- 按 Shift + 在图表中左击 + 移动鼠标:根据鼠标移动沿垂直或水平轴移动图表。
- 按Shift + 鼠标滚轮:缩放激活的y轴(如果没有激活轴:全部缩放)。
- 按Ctrl+鼠标滚轮:缩放x轴。
- 按Shift + Ctrl + 鼠标滚轮:缩放所有y轴。
- 按向上和向下键:可同时移动所有的Y轴。要只移动一个y轴,需要先选择所需的曲线。
- 按shift和向上或向下键:以较小的步长移动所有y轴。要只移动一个y轴,需要先选择所需的曲线。
- 按PageUp和PageDown键:移动x轴。
- 按Home或End:更改x轴的限制,以便显示整个数据范围。
- 在图表上左击:激活图表。
- 在变量名称上左击:选择变量。
- 在y轴上左击:选择y轴和所有属于它的变量。
- 按Ctrl并在y轴或变量名上左击:允许同时选择多个变量。
- 按Ctrl + a: 选择所有图形。
- 按Ctrl + o/l:+/-偏移参考变量。
- 按Ctrl + r:重新连接/加载/更新所选数据源(根据它的类型)。
- 右击:打开一个图表/数量相关的上下文菜单。
- 在一个变量名称上左击,按住鼠标按钮,在图上拖动该变量,然后将其拖动到另一个相同单位类型的变量上(鼠标光标:|<- ):在同一单位类型的y轴上显示该变量与目标变量。
- 在处于相同轴中的变量名称上左击,按住鼠标按钮,将该变量拖动到图中的空闲区域(鼠标光标:_|_):在自己的(新的)y轴上显示该变量。
- 在y轴上双击左键:打开一个轴参数对话框。
- 在变量名称上双击左键:取消显示所选变量。
- 右击所选变量 > Colors/Unit:改变所选变量的颜色或单位。