CarMaker入门第二课-创建第一个TestRun

本节课将介绍如何建立一个单独的TestRun,并有可能根据不同的领域选择一个例子。
第一课传送门:CarMaker入门第一课

:车辆动力学方面的应用

在本节中,将介绍如何建立在分离路面制动试验的一个例子。

3.1.1 使用场景编辑器构建道路网络

在本节中,将学习如何建立一个具有摩擦系数的道路。
打开场景编辑器:在CarMaker主界面的顶部栏中,点击参数
> 场景/道路。
使用鼠标导航到 "场景编辑器 "窗口左侧的 "道路 "部分。单击并按住第一个名为 "路段 "的图标,直到打开一个下拉菜单。选择公路段类型 "直线"。

图3.1:选择直线段选项

使用光标导航进入编辑器的设计区(中间窗口),单击一次,定义直线段的起点。设置的第一个点也是全局坐标系的原点。按住shift,再单击一次,就可以创建一条长1500米的水平直路段。

图3.2:实施直线段
让右边的车道变宽。在 "道路 "选项卡中,选择 "车道 "选项,然后单击刚才实施的道路右侧车道。在右侧的选项卡中,将开始时的宽度和结束时的宽度这两个参数改为30米。
在车道模式仍处于活动状态时,点击左边的车道,然后点击右上角选项卡右上角的红色 "X",删除左边的车道。
图3.3: 改变车道宽度和删除车道
添加摩擦条纹:在 "道路 "选项卡中,左键单击并按住 "凸点 "图标。在下拉菜单中,选择 "摩擦条 "选项。
在链接(直路段)上单击一次选择它,然后在链接上任意位置放置两个点来定义摩擦条纹的开始和结束。在右侧的选项卡中修改这些点,使摩擦条从LINK起点800米开始,到LINK起点1300米结束。
将Lat.偏移量设置为-15m,并使条纹的宽度为10m。摩擦系数应该是0.5。
请看下图的设置和条纹的样子。也可以编辑道路道路标线。
图5.4: 添加摩擦种类
现在,为了让车辆能够在路上行驶,必须要有一个行驶路线。
因为这是一条单车道的道路右侧,所以只要驾驶侧是右侧交通,车辆就会沿着中心线行驶。你可以通过点击场景编辑器顶部栏中的齿轮图标,查看一下规范,就可以检查活动的驾驶侧。左手车流也可以正常工作。只要记住,驾驶侧只能在道路建设之前更改。
在道路上添加一条路线。在编辑器左侧的工具栏中,在 "交通 "选项卡中,选择路线图标。使用光标,在预定义的路径上单击一次绿色标记的路径,选择它,然后再次单击确认想要在此路径上开始生成路径。它将变成橙色高亮显示。由于我们不想再选择更多的路径,所以双击路径之外的任何地方就可以结束路径定义。
提示:为了简化预定义路径的选择,放大路径的大小是很有用的。
现在的路已经定义完成了。如果需要的话,打开产品实例中的解决方案,就可以继续前进了。包括解决方案Step1_Scenario在内的TestRun可以在Product Examples > Examples > VehicleDynamics >_QuickStartGuide中找到。

3.1.2 定义车辆操纵控制

在这种驾驶实验中,车辆首先需要加速到一定的速度,然后当车辆到达路面摩擦条件时,立即刹车。然后,在刹车的同时,左手的两个轮子会在比较滑的一侧,而右手的两个轮子会在抓地力比较大的一侧。
这就意味着需要两个操纵步骤,而这两个步骤也都需要一个结束条件。
定义第一个操纵步骤 "加速"。在CarMaker主图形用户界面中,打开Parameters > Maneuver,点击列表中的最后一行(END),然后突出显示。现在选择 "新建 "来插入一个操纵步骤。
在描述中写上 "加速",将持续时间(Duration)改为999s(确保机动运行时间足够长),并给它一个适当的End条件。
Car.Road.sRoad >= 800
图3.5:定义加速操纵步骤
终止条件是在所谓的实时表达式中。最终条件是由一个特定的量的值来决定的。在本例中,这个量是Car.Road.sRoad,表示车辆的道路坐标。这意味着车辆的道路坐标的s坐标。
由于之前建立的道路上的摩擦摩擦系数是从Link起点800米处开始的,所以驾驶者应该在这时停止加速并开始刹车。这就是为什么第一个操纵步骤到此结束。
定义第二个操纵步骤制动:再次点击列表中的最后一行(END),突出显示。现在选择 "新建",在第一个操作步骤下面插入第二个操作步骤。
请注意,新的操纵步骤总是在操纵步骤列表中的高亮行上方插入。
将此操纵步骤称为 "制动",将"持续时间 "改为999s,将 "结束 "改为"终止"。
Car.v <= 0.001
此外。选择 "纵向动力学 "选项 "手动",并设置以下值刹车和离合到1。
图3.6:定义制动操作步骤
这里实现的结束条件是,当车速低于0.001 m/s时,操纵步骤结束,因为这是最后一步,所以仿真结束。
到目前为止的练习的解决方案,请打开TestRun Step2_Maneuver,可以在产品实例 > 实例 > 实例 > VehicleDynamics >_QuickStartGuide中找到。

3.1.3 选择一个车辆并仿真

Testrun还缺少一个相关的组件,那就是车辆。CarMaker提供了多种多样的示例车辆,可以在产品实例中选择。
选择车辆。在 Carmaker 主 GUI 中,在标有汽车的字段中左键单击 "选择"。
在打开的浏览器中,导航到 "产品实例",然后选择DemoCar。
图3.7:选择CarMakerDemoCar
现在,道路已经定义好了,一个车辆操纵已经完成,指示驾驶员加速,直到到达摩擦条,然后刹车,车辆已经选择好了,TestRun就完成了,可以开始仿真了。
开始仿真。点击CarMaker GUI中的绿色 "开始 "按钮。
要观看仿真的动画,请通过CarMaker主界面打开IPGMovie。
> 文件 > IPGMovie。
图3.8:IPGMovie中的对开道路制动测试动画
关于到现在为止的练习的模型,打开TestRun Step3_Vehicle,可以通过产品实例>实例>VehicleDynamics>_QuickStartGuide找到。另外,也可以看看TestRun Step4_VehicleDynamics,它与Step3_Vehicle基本相同,但包含了一些3D对象来美化场景。

3.1.4 保存TestRun

保存TestRun,这样就可以检索到之前的模型了。在CarMaker GUI中,点击 "文件">"另存为",在对话框左栏选择 "项目"。右键单击,创建一个新文件夹 "My_TestRun"。在新文件夹上双击,输入TestRun的任意名称,例如:My_TestRun_TestRun_VehicleDynamics> OK。

图 5.9: 保存

3.2 CarMaker在ADAS与智能驾TestRun实例

下面的例子将演示如何实现自主紧急制动(AEB)TestRun。对于对ADAS应用感兴趣的用户来说,这个例子可能会更感兴趣。

3.2.1使用场景编辑器构建道路网络

在本章中,将使用场景编辑器建立一个T型道路路口。
通过 CarMaker 主 GUI 打开场景编辑器。左键点击参数 > Scenar- io / Road 或使用快捷键 crtl + r。
添加路段。在左侧的 "道路 "选项卡中,左键单击道路选项卡中的第一个图标 "道路段 "一次,然后在场景编辑器的绘图区域右键单击,打开一个小的下拉菜单。在路段上左键单击一次,打开另一个下拉菜单,里面有路段的所有选项。
左键选择 "路口"。
图3.10:选择道路类型交叉路口
实施结点。使用光标,在绘图区左键单击一次,设置中间的交点。
注意,你在场景编辑器中定义的第一个点也会初始化x,y,z-坐标系,并设置为(0,0,0,0)值。
将光标向左移动并按住shift(shift使光标锁定在标示值上)再次点击,创建第一个交接臂,角度为180,长度为10m。
现在,将光标向右移动,按住shift,点击执行第二个连接臂,长度为10m,角度为0。
最后,将光标移动到底部,按住shift键。当光标在正确的位置定义最后一个结点臂的长度为10m,角度为270,双击,完成与最后一个结点臂的构建。
图3.11:实现道路交叉口结点
在第一个交接臂中添加一条道路。单击并按住左侧 "道路 "选项卡中的路段图标。在下拉菜单中,选择道路段类型 "直路"。
将光标移动到第一个交接臂的末端(交接臂0),并在中间悬停,直到出现一个橙色的圆圈,光标锁定在参考线上。在这里左键单击一次开始绘制直线段,将光标向左移动,再单击一次即可实现直线。在右侧的选项卡中,你可以编辑这个直线段的长度。
将此直线段的长度设置为500米。
图3.12:在连接臂0上增加一个直线
依次类推,增加另外两条连接臂。都在右侧和BOT-TOM之间,增加一条直段,长度分别为500米(右侧)和300米(底部)。
现在的道路网应该像下图中的样子。
图3.13: 完成的T型交叉路口
为了让车辆知道自己在链接上按什么顺序行驶,必须确定一条路线。
点击场景编辑器左下角的路线图标。
Route_0:点击链接1右侧车道上的预定义路径(如下图所示),选择此路径。当出现一条断裂的橙色线条时,再次点击确认这是正确的路径,在此基础上开始定义路径。现在,单击直接穿过路口的路径,然后单击 Link 2 上的直行路径,通过这两条路径扩展路线。要完成路线的实现,请双击链接上的某处。

路径_1: 首先,选择Link 3右侧车道上的路径,如前文所述,确认后,选择在路口左转的路径,延长Route。最后添加Link 1左侧车道上的路径段。双击完成。现在Route从下面来,在路口左转。

图3.14:完成车辆行驶路线
在场景编辑器中,用户可以为他的路网工作生成地形。地形的高度剖面是由CarMaker随机生成的,用户不能对其进行任意化,只能定义一个最小和最大的高度值。此外,用户可以在生成后在右侧的选项卡中选择一个几何图形文件(.obj文件)。如果在该字段中没有选择文件,则使用CarMaker的默认图像。地形是使用地形生成器添加的。
生成地形。点击场景编辑器左侧场景选项卡中标有 "地形生成 "的图标,然后点击右侧的 "生成 "选项卡中的 "生成"。
图3.15:场景编辑器的地形生成器

3.2.2 定义车辆操纵控制

配置完路况后,可以选择一辆测试车。
选择一辆车。在 Carmaker 主图形用户界面中,在标有 "选择 "的字段中左键单击 "选择" 汽车。
在打开的浏览器中,导航到产品实例,然后选择 DemoCar。
现在需要定义一个操纵,告诉司机如何操纵车辆行驶。
通过CarMaker主图形界面>参数>操纵,或使用快捷键crtl + m打开操纵对话框。
在操纵列表中添加一个新的操纵步骤(目前仍为空),并将持续时间(Duration)改为60s。可以在右侧编辑标有 "持续时间"(Duration)的字段中的条目来改变操纵步骤的持续时间。
在标有操纵动态的字段中,确保IPGDriver是活动选项,并将速度改为70km/h。
图3.16:添加新的操纵步骤
此外,通过点击全局设置/准备,用户可以定义各种启动值和附加命令。
点击 "全局设置/准备",将起始值速度设置为70公里/小时,并将仿真开始时的档位设置为第5档。
图3.17: 操纵全局设置/准备工作
现在确定了道路、车辆和操纵,就可以开始TestRun了。
开始仿真。选择Route_0作为活动路线(车辆行驶的路线),在顶部菜单中点击场景设置,然后点击车辆启动位置>活动路线。在CarMaker主图形用户界面中,按绿色的 "开始 "按钮。
打开IPGMovie,观察仿真过程。

3.2.3 增加交通流

现在将在仿真中加入一个交通对象,展示CarMaker中的对象检测是如何工作的。这对于AEB系统的激活是必要的。有非常多的可用交通对象和可能的功能和操作方式,以后的课程中会有更多的详细介绍,欢迎关注收藏与转发。下面的例子将只演示一种整合交通对象的可能性。
打开 "交通流 "对话框。CarMaker 主 GUI > 参数 > 交通流,然后点击新建以插入一个新的交通流对象。默认情况下,这个对象被称为T00。
将起始位置(s和t坐标)设置为285m,路线1(左转的路线)上的起始位置(s和t坐标)为0m。
图3.18:交通对象配置(1)
在交通对象中增加两个驾驶操纵的动作。
1.    持续时间->时间300s,Long.Motion-> Velocity 0 km/h, 结束条件 Car.Road.s2nextJunc < 60(见上图中机动步骤1的定义)。
2.    持续时间->时间5s且Long.Motion->Acceleration 3 m/s^2  (见下图中的操纵步骤2定义)。
现在,在这个Traffic对象的全局设置/开始条件中,在末端设置Action为冻结速度。
图3.19:交通对象配置(2)
驾驶员将默认考虑交通对象。对于AEB测试,IPGDriver不应该考虑任何交通对象。
关闭交通流考虑:取消选择 "主界面">"参数">"驾驶员">"交通接口 "中的 "考虑交通"复选框。
图3.20: 驾驶员参数考虑交通量
启动TestRun,观察IPGMovie中的动画。

3.2.4 碰撞检测

在这一步中,仿真中加入了自动碰撞检测系统。为此,需要对车辆和操纵进行修改。
在MainGUI > Parameters > Car > Sensors > Collision中激活 "General "选项。
默认情况下,碰撞检测使用车辆外皮,定义在MainGUI > 参数 > 汽车 > 其它选项中。如果需要更详细的外皮,可以选择2D Contour。
此外,碰撞检测也需要在Maneuver中定义。
在 "操纵 "对话框中,点击已定义的 "操纵"步骤0。在右侧,在标有 "结束条件 "的字段中,键入: Sensor.Collision.Vhcl.Fr1.Count>=1
对于发生碰撞的通知,可以发送一个日志消息。如果检测计数器大于或等于1,则机动控制将继续产生错误日志。为此,需要在Minimaneuver命令对话框中添加以下实时表达式。
Eval (Sensor.Collision.Vhcl.Fr1.Count>0) ? LogErr ("检测到碰撞!")
函数 LogErr 将停止仿真并将 "检测到碰撞!"打印到会话日志中。
图3.21:实现碰撞检测

3.2.5 设置AEB系统

目前正在使用的是CarMaker DemoCar。在不需要扩展功能的情况下,通常会选择这种车辆作为简单的例子。对于特定的测试场景,可以使用不同的车辆,或者需要调整DemoCar。
对于AEB试验,需要一个AEB系统。由于DemoCar没有配备这样的系统,下面的练习将如何在车辆上添加传感器和控制器,以仿真AEB系统。
为车辆的纵向控制定义一个传感器。CarMaker主GUI >参数> 汽车 > 传感器 > 对象。
单击 "添加 "以添加一个对象-传感器,并将其命名为 "雷达"。编辑其余的传感器参数,使其与下图中的参数一致。
图 3.22:命名为 "雷达 "的对象传感器的定义
实现一个控制器。CarMaker主GUI > 参数> 汽车 > 车辆控制。
对于控制模型0,选择Generic Longitudinal Control,并将Referenced ObjectSensor设置为Radar(之前创建的对象传感器)。
根据下图填写其他参数。
图3.23:用于车辆纵向控制的控制器
最后一步是通过另一个选项扩展机动结束条件。其目的是在检测到碰撞或汽车刹车静止时停止仿真。
结束条件的扩展是命令。
Sensor.Collision.Vhcl.Fr1.Count>=1 ||Car.v < 0.01
启动仿真,观察路口AEB系统的功能。

3.2.6 使用NamedValues

在这一步中,引入了NamedValues。这些参数允许用户使用不同的参数集来执行TestRun的变化。
第一个NamedValues将在IPGDriver操纵控件中设置。NamedValues可以用于参数变化,但一开始需要给它们一个默认值。在这种情况下,IPGDriver Target Velocity将由NamedValue来定义。
打开操纵对话框,点击操纵步骤0,在纵向动力学字段中,将速度改为$Speed=70。
现在,IPGDriver的目标速度的数量已被命名为 "Speed",并预设为70 km/h。现在,交通对象的结束条件也将被调整。
在Traffic GUI中,将交通对象的第一个操纵的结束条件改为
Car.Road.s2nextJunc<$JunctionDistance=60
$JunctionDistance是一个NamedValue,默认值为60。$JunctionDis- tance的值决定了测试车到交叉口的距离,在这个路口,交通对象开始行驶到交叉口。
图3.24:使用NamedValues修改TestRun (1)
图3.25:使用NamedValues修改TestRun (2)
另外,将物体传感器的水平孔径设置为另一个NamedVal- ue $RadarHoriz=10,如下图所示。这将允许用户改变检测区域。
在车辆数据集编辑器中通过 "文件">"保存 "保存,然后在CarMaker主窗口中通过 "文件">"保存 "保存TestRun。
图3.26:使用NamedValues修改TestRun (3)
3.2.7 使用TestManager执行多个TestRun变量
在这最后一步中,用户将使用上一章中定义的NamedValues创建多个变体的驾驶员试验。
打开测试管理器。CarMaker主界面 > 仿真> 测试管理器,通过左键单击 "添加">"TestRun",添加一个TestRun到TestSeries。通过点击标有TestRun的文件右侧的文件夹图标,选择你已经建立的TestRun。这将打开一个浏览器,你可以在其中导航到相应的TestRun文件。
下图显示了如何使用类型为变体添加参数(步骤1)。NamedValue(NValue),以及如何通过点击Add > Variation来创建变量本身(步骤2)。
图3.27: TestManager的变体 (1)
此外,还添加了一个成功完成TestRun的条件。为此,选择TestRun,然后转到Add > Criteria。在 "评估 "选项卡上,通过下面的条件定义了成功完成的好。
get Sensor.Collision.Vhcl.Fr1.Count] < 1
在这条语句中,函数get被用来访问一个CarMaker quantitiy。
图3.28: TestManager的变体 (2)
在创建的变化中,之前在TestRun中定义的NamedValues可以被修改。在这里,测试车辆的速度、交通物体进入交叉路口的触发条件和传感器的水平孔径都会被改变。

3.3 CarMaker在动力系统的TestRun实例

本节介绍了如何建立48V P1和P2混合动力,以及如何在RDE道路上比较它们的油耗。

3.3.1 创建48V混合动力P1动力系统

本节展示了如何从传统汽车中创建出48V P1混合动力车,本案例中的例子是:DemoCar。
载入DemoCar。Main GUI > Car > Select,选择ProductExamples > Examples > DemoCar。
将动力系统布局从传统动力系统改成P1混合动力系统。参数 > 汽车> 动力系统。在窗口中的任意位置单击右键,选择并联混合动力系统 -> P1 -> 自动手动变速器。
想保留传统的发动机,只需添加一个更强的起动机发电机。
转到驱动源,选择起动马达。在 "常规 "选项卡中设置了传动比,将其改为1(直接在曲轴上)。
在标有扭矩的选项卡中,将机械功率改为12 kW,最大扭矩改为130 Nm,最大转速改为8000 rpm。
图3.29:起动器电机的参数设置
在确定了驱动源的硬件后,我们再调整控制策略。由于我们使用电动马达的扭矩较大,所以我们必须改变油门踏板与扭矩调节器。现在满油时的最大扭矩应该是315牛米(内燃机的185牛米,电动机的130牛米)。
点击 "控制单元",然后点击 "PT控制",在标有 "Gas "的选项卡中,将满油时的最大扭矩改为315牛米。
图3.30:对PTControl进行参数化处理
创建的车辆有一个自动变速箱。为了实现现实的换挡行为,我们必须调整几个值。
转到TCU选项卡,然后转到换挡限值。将换挡限值从一维查找表改为二维查找表,使油门踏板位置影响换挡策略。
现在,4档和5档在0%油门踏板位置时的最小转速过高,导致在某些速度下会出现振荡换挡,所以我们必须改变4档和5档在0%油门踏板位置时的数值。
改变Rot. 0油门位置下4档和5档的转速最小值改为1250rpm。
对于48V混合动力车,我们必须改变高压电瓶的大小和电压。车辆的电动转换器的功率应该有3千瓦。
点击电源选项卡,在 "常规 "下,点击转换器HV1 LV。将变流器的最大功率改为3千瓦。
电池本身的参数设置在HV电池选项卡下。将容量改为10Ah,空闲电压改为48V,最大功率应为14kW。
最后一步是让刹车器再生。这是在 "制动器 "选项卡中完成。单击 "制动器 "选项卡,进入 "控制",将再生制动模式设置为 "串行"。
图3.31:高压电池的参数
现在,一款P1 48V混合动力车已经从传统车型中诞生了。通过 "文件">"另存为">"DemoCar_48V_P1"保存。

3.3.2 导入道路

由于我们已经创建了车辆,现在我们需要一条道路。为此,我们将使用 CarMaker 中已经包含的 RDE 路径。另外,也可以通过使用*.kml数据或其他来源导入自己的道路。不过,为了保持简单,我们将使用产品例子中的一个。
通过 CarMaker 主界面中的 "参数">"场景/道路 "打开场景编辑器。
通过单击并按住 "道路 "选项卡中的 "道路",选择"文件",插入一个道路段类型文件。现在,点击绘图区域中的任意位置来设置第一个点。这个点也成为x、y、z坐标系的原点。
用第二次点击确认方向矢量后(在这个例子中,方向不起作用),会打开一个浏览器,在这里你可以选择文件Product Exam- ples/Examples/"IPG_RDE_KA_Route.bin"。
图 3.32 增加一个道路路段类型文件
按下 "确定 "键,路线就被导入了。我们现在有了道路,但我们还必须定义一个车辆应该行驶的路线。还有一个(可选)步骤是将道路的两端连接起来,将其变成一个闭合的环路。这样,车辆将继续在环路中行驶,直到操纵结束。否则,一旦车辆到达道路的终点,仿真就会中止。在这种情况下,用户可能会收到一个错误通知,说明车辆已经离开了道路。
可选。选择 "连接路段 "类型,并将道路的开放端连接起来,生成闭环回路。
选择 "交通 "选项卡中的路线符号。点击链接右侧车道上的预定义路径。当出现一条断裂的橙色线条时,再次点击确认这就是我们要行驶的路径。要完成路径的执行,双击任何靠近链接的地方。
图3.33:增加一条路线
现在,车辆、道路和路线已经完成了。为了让TestRun完成,还缺少一个操纵,告诉驾驶员要进行哪些操作。
将TestRun保存为PT_QuickStartGuide_BasicRoad。

3.3.3 车辆操纵和驾驶员参数

在这个例子中,将创建一个简单的操纵,其中驾驶员模型 - IPGDriver - 控制车辆的纵向和横向方向。
通过 "参数">"操纵 "打开操纵图形用户界面,然后点击 "新建 "来添加新的操纵步骤。添加的默认操纵步骤已经足够满足我们的测试要求。
赋予驾驶员一个防御性特征:在操纵界面中,单击 "驾驶员参数"。或者你也可以在主图形用户界面中点击 "参数">"驾驶员"。在 "驾驶员图形用户界面 "中的任意位置单击右键,选择 "参数设置 "defensive "来选择防御性驾驶员的预设。
图 3.34 添加一个默认的操纵步骤
图3.35:选择防守型驾驶员的预设
现在,所有必要的部件都已经实现了,可以第一次仿真TestRun了。首先,保存TestRun。
将TestRun保存为PT_QuickStartGuide_Maneuver。
开始仿真。在主GUI中,将Simulation Perf.设置为实时,然后按绿色的Start按钮。在IPGMovie中观看仿真过程。
如果在菜单 "视图">"叠加左侧 "中选择 "速度和动力系统",可以观察到不同的操作策略。

3.3.4实施速度限制

观察仿真,可以看出,道路上没有速度限制。这意味着驾驶员通常会努力达到用户在操纵步骤中给出的预期速度。在这种情况下,100公里/小时已经被防御性驾驶模型预设为100公里/小时。
下一步是设置一个速度限制。首先,应该将TestRun再次保存为PT_QuickStartGuide_SingleSpeedLimit(单速限速)。
设置一个速度限制:在场景编辑器中,导航到轨道的起点。寻找x和y值(0,0),或者在绘图区域中右键点击右键,选择 "默认视图"。
点击并按住标记图标,在下拉菜单中,选择 "驾驶员速度"。在道路上点击选择链接,然后点击一次定义起点和一次定义限速路段的终点。
图3.36:设置标记,类型:驾驶员速度
在设置好限速的起始点和终点后,用户还可以在之后更改各种设置。这可以在场景编辑器右侧的小选项卡中进行,在选择模式下左键选择限速后,在场景编辑器右侧打开的小选项卡中进行。下图显示的是可以设置的参数。
图3.37:驾驶员速度参数
请注意,交通标志允许用户在道路网络中添加交通标志,仅用于美化道路。驾驶员不会对此做出反应,因为只有交通标志传感器才能检测到这些标志。对于对驾驶者行为有影响的标志,必须选择标记。
将限速的速度设置为30公里/小时。
通过点击场景编辑器中的保存符号保存TestRun并开始仿真。
这时,驾驶员将只以最高时速30公里/小时的速度行驶,因为他一直在努力按照指引行驶。
图3.38:驾驶人通过限速起点
由于考虑的TestRun大约有90公里的长度,所以手动设置所有的限速并不是很有效。这里,我们可以选择从其他TestRun中导入速度限制。在这种情况下,速度限制将从一个TestRun示例中导出。
首先,应将TestRun保存为PT_QuickStartGuide_RDE_Speedlimits。
打开场景编辑器,点击并按住顶部栏中的导入道路定义图标,选择从TestRun导入。选择TestRun产品实例 > 实例/动力总成/驾驶场景/Karlsruhe_RDE_Track。
现在应该已经导入了RDE TestRun中的所有交通标志和交通灯。在场景编辑器中保存TestRun。
图 3.39 从其它TestRun中导入部件
打开Maneuver GUI,修改Maneuver步骤的Duration。删除30s的时间条件,改为定义5000米的距离限制。
图3.40:改变操纵步骤的持续时间
此外,还需要记录燃料消耗量。为了做到这一点,需要添加一个持续时间为0s的机动步骤。这些类型的操纵步骤(持续时间 = 0s)是一种特殊的步骤,在这里定义的动作总是在TestRun结束时执行,无论仿真结束在哪一点。大多数情况下,这种步骤是用来启动后处理动作的。
创建一个新的操纵步骤,在操纵步骤列表中突出显示最后一行(END),然后点击新建。
将 Duration 设置为 0 s,并在Minimaneuver Com- mands 字段中添加以下命令。
Eval first() ? Log("平均油耗:%.1fl/100km",PT.Control.Con-sump.Fuel.Avgig)
该命令将在每次仿真结束时显示平均燃料消耗量,并在会话日志(主图形用户界面 > 仿真 > 会话日志)。
保存TestRun并开始仿真。
车辆在不同的限速和红绿灯的情况下,在RDE场景中行驶。在TestRun结束时,会话日志会显示出平均油耗。可以通过在Car-Maker主界面中选择所需的速度来加快仿真速度。

3.3.5 创建48V P2混合动力系统

现在可以创建48V P2混合动力系统,可以纯电模式驱动的48V P2混合动力系统。第一章中创建的48V P1混合动力系统可以作为基础,让参数设置更加简单。首先,需要对动力总成架构进行调整。
打开 "车辆数据集",进入动力总成>常规选项卡。在对话框窗口中右键点击任意位置,选择并联式混合动力系统->P2->自动手动变速器。
由于P2混合动力车采用的是传统的起动电机,所以我们要改变P1混合动力车的动力和扭矩。此外,还需要对电动机进行定义。
在 "驱动源">起动机下,进入 "常规 "选项卡,将传动比设置为4,在 "扭矩 "选项卡下,将机械功率设置为3千瓦,最大扭矩设置为50牛米。
在电动机 > 扭矩下,为电动机型号设置以下性能数据。机械功率 = 12 kW,最大扭矩 = 130 Nm。为了简单起见,对下面的发电机型号应用相同的参数。
图3.41:驱动电机的参数
P2混合动力车的发动机和电动机之间有一个离合器。有了这个离合器,可以在发动机关闭时断开发动机动力源。
转到控制单元 > PT 控制 > 平行加速,并激活专家参数选项。可以将默认值保持不变。
在 "电动驾驶 "选项卡中。目前,电动车的SOC限制为50%,最高时速50公里。请将SOC限值改为25%,续航能力改为10%,时速限制为75公里/小时(在 "主动巡航 "状态下关闭发动机)。
将车辆保存为Demo Car_48 V_P2,将Testrun保存为PT_QuickStartGuide_RDE_Speedlimits_P2。
图3.42:PT控制的参数

5.3.6 使用测试管理器实现测试自动化

CarMaker程序中的一个强大工具是测试管理器。本章将介绍如何通过改变车辆或增加有效载荷来创建一个给定的TestRun的变化。
打开测试管理器。CarMaker主图形用户界面 > 仿真 > 测试管理器。
添加一个TestRun。左键单击 "添加",然后选择 "TestRun"。点击上一节中的文件夹图标,添加创建的TestRun PT_QuickStartGuide_RDE_Speedlimits_P2.
图3.43: 在测试管理器中添加一个TestRun到测试管理器中
现在,目标是执行两个TestRun,先用P1混合动力车型,然后用P2混合动力车型。在此之前,用户必须添加一个Variation。当用户想改变整个参数集时,如车辆或轮胎,可以使用KValues。
单击 "添加">"变量",在 "类型"中选择 KValue。名称必须是TestRun:Vehicle意味着要更改车辆文件。
对于值,打开车辆对话框(Main GUI > Car > Select),选择想在这个变量中使用的车辆。DemoCar_48V_P1。标记名称并复制它。在测试管理器中的"值 "字段中插入路径和车辆名称。
图3.44:测试管理器中的车辆变化情况
为这个特定的变体选择一个描述(例如,P1基地),然后复制并粘贴一次变体。
第二个变体应该与P2混合动力运行,所以将KVal- ue的值改为DemoCar_48V_P2,并将此变体的描述改为P2基础。
图3.45:测试管理器中的第二种车辆变化
点击测试管理器中的 "开始">"运行 "来启动测试系列。
现在已经启动了两个TestRuns系列测试。通过打开Session日志,用户可以比较两台不同车的油耗。
最后,我们要研究一下负载的影响。为此,我们必须定义一个Named- Value (NValue)。
在CarMaker主图形用户界面中,打开示例TestRun"Step4_RDE_SpeedLimits",可以在Examples/Powertrain/_QuickStartGuide/中找到。确保使用的是DemoCar_48V_P1车辆。
在主图形用户界面中,单击 "加载 "字段中的"选择"。将打开 "负载 "对话框,可以在其中定义不同位置的不同负载。
设置 NValue。在定义载荷质量的第一个字段中,输入$load=0,这就是NV值的启动方式。它们以$符号开头,后面是用户定义的名称,该名称是为该字段的参数选择的,并且必须始终以默认值结束。
在这种情况下。默认值为0公斤。这意味着没有定义任何东西,额外设置一个0公斤的负载,意味着没有负载。这时,可以在测试管理器中更改负载。
图3.46:设置命名值
将当前的TestRun保存为PT_QuickStartGuide_RDE_Speedlimits_P1。
打开测试管理器,将定义的TestRun替换成刚才保存的TestRun。通过复制并粘贴P2基础变量,添加一个新的变量(描述:P2基础有效载荷500)。添加一个参数,对于Type,选择NValue,Name应该是load,Value设置为500。
图3.47:添加一个带有命名值的变体
通过单击 "文件">"另存为 "并命名为 "动力总成_TestSeries "来保存TestSeries。
运行所有变化并比较不同的油耗水平。

5.4 在自动驾驶场景建模TestRun实例

在本节中,用户将获得创建一个完全参数化的TestRun的指导,主要是以场景编辑器为重点。为了使TestRun得到充分的参数化,必须定义车辆、驾驶员、道路和车辆操纵的模型。其他组件是可选的。

3.4.1 使用场景编辑器建立道路网络

加载准备好的TestRun Step1_TestRunWithoutScenario:
在CarMaker GUI中,点击文件 > 打开,选择产品数据库,然后点击产品实例 > 实例 > BasicFunctions > Road >_QuickStartGuide > Step1_TestRunWithoutScenario。
以不同的名称保存TestRun,以便可以检索到的相关工程:
在CarMaker GUI中,点击文件 > 另存为,在对话框左栏选择项目。用右键单击,创建一个新的文件夹(如果你还没有的话)"My_TestRun"。双击新文件夹并输入测试运行的任意名称,例如"My_TestRun_TestRun_ScenarioEditor">确定。
暂时关闭 IPGControl 和 Instruments,但保持打开 IPGMovie。
图3.48: 以不同的名称保存TestRun
下面的章节将介绍如何扩展这个TestRun,到目前为止,只定义了一个车辆和简单的操作。工作可以通过CarMaker主界面中的 "文件">"保存 "或使用快捷键Ctlr+S来保存。
场景编辑器基础知识
场景编辑器是一个图形化的用户界面,用于对道路进行参数化和建立路网。道路模型,称为IPGRoad,是一个三维模型。一条道路由一个或几个Links组成,这些Links由Junctions连接起来。用户可以定义这些Links和Junction的形状,添加一个三维轮廓(如高程),定义车道的数量和宽度,改变路面的摩擦系数,在场景中添加其他元素,如路标和交通标志等,并指定车辆行驶的路线。
一般情况下,确定轨道的行驶路线的方式不止一种。
- 基于场景编辑器中相互连接的路段(如直路、弯道)。
- 测量的道路数据保存在ASCII文件(文本文件)中,可以加载到CarMaker中。这些文件需要包含卡斯特(x、y、z)或地理(长、纬度)坐标。
- 以KML文件(KeyholeMarkup Language)保存的道路数据。这些文件由 Google Earth 或 Google Maps 创建,可以在 CarMaker 中上传。
- 从ASCII-或KML文件中组合的路段和道路数据。所有这些选项将在用户指南中进一步说明。
下面的例子将介绍如何使用场景编辑器。
打开场景编辑器:在CarMaker主界面顶部栏中,点击参数>场景/道路。
图 3.49 场景编辑器GUI
在这个GUI中,定义了道路网络和道路属性。鸟瞰式的可视化可以帮助用户看到当前正在建模的内容。
->在GUI左侧的标签页:
-工具: 在这个选项卡中,用户可以切换到标准光标的选择模式,通过点击标尺(测量距离)来测量道路上的随机距离。
-道路: 该选项卡用于创建路段(直路、弯道、曲线、十字形等)、车道断面、车道、高程剖面和凸点(局部路面变形)。有关所有这些组件的详细信息可在用户指南的相应章节中找到。
- 附件: 在这里,可以在现有的道路上添加道路附件,如路标、路画、交通标志、交通标志、交通护栏和导向柱。同样,进一步的信息可以在《用户指南》的相应章节中找到。
- 景区: 可以在仿真中添加桥梁、隧道、标志、几何物体、树木和地形,以美化环境。这些组件通过此选项卡选择,可以添加到现有道路上。
- 交通:在这里,可以为驾驶员设置特殊操纵或测量和路线定义的标记。此外,可以在道路上随机分布交通对象。
->GUI中心的显示窗口:
- 这是用户设计道路网络的空间。
- 通过鸟瞰式的二维预览,可以立即看到路网工作的全貌。
- 在选择模式下,道路网的某些组件会在这个窗口中选择。选定的部件会被高亮显示,以显示当前道路的哪个部分被激活。
- 在GUI右侧的选项卡。在该字段中,列出了当前所选部件的信息,并可以编辑相应的参数。例如,当选择了一个链路或车道时,宽度和摩擦系数就会在这里被定义。
- 顶部菜单。除了在用户指南中进一步介绍的其他功能外,还可以使用3D-预览(带播放符号的按钮)来查看设计的道路网络。
实施和检查道路几何:
检查道路定义有两种选择:一是在场景编辑器显示窗口中鸟瞰道路,二是使用IPGMovie进行3D预览。下面的练习将介绍如何实现一些路段,然后可以在编辑器或IPGMovie中查看。
使用鼠标导航到 "Sce- nario Editor "窗口左侧选项卡中的 "道路 "部分。单击并按住第一个名为 "路段 "的图标,直到打开一个下拉菜单。选择 "路段 "类型"直"。
图 3.50 插入新的道路路段
使用光标导航进入编辑器的设计区(中间窗口),单击一次,定义直线段的起点。设置的第一个点也是全局坐标系的原点。按住shift,再单击一次,就可以创建一个100米长的水平直路段。
在选择相应的线段时,可以通过在右侧选项卡中标有 "长度 "的字段中输入所需的值来改变线段的长度。
要在场景编辑器中选择特定的元素,可使用选择模式。
保存TestRun并在IPGMovie中打开3D-Preview。在场景编辑器的顶部面板中单击带播放符号的按钮,选择3D预览。
图 3.51在IPGMovie场景编辑器中的2D预览和3D预览
在场景编辑器中的显示中,可以显示出道路的二维几何图形。这种查看方式可能没有IPGMovie中的预览那么详细,但在仿真准备过程中,非常方便实现和快速检查。
IPGMovie以三维动画的形式显示道路的定义,其细节要详细得多。通过移动控制栏中的滑块或按下播放按钮,道路预览中的黄色标记会沿着轨迹移动,显示道路及其所有特征。这个功能只有在确定了路线之后才可以使用。这一点将在本例中进行说明。
在这一点上,道路只是一条直线,摩擦系数不变。在本文的下一节中,当道路定义发生变化时,在3D-preview中会立即更新。
这个新功能使用户可以方便地访问道路文件中的不同对象。在这种树形格式中,对象是按照层次结构排列的,点击一个对象就可以打开与之相关的参数。这使得用户更容易理解各种对象的依赖关系。
图 3.52: 在场景编辑器中查看对象列表
建设道路网
现在,两个路口和一些额外的链接将被添加到之前保存的TestRun中。
在场景编辑器左侧的 "道路 "选项卡中,再次点击并按住第一个图标 "道路 "段。

1. 这一次,在 "交点 "选项上松开鼠标按钮。使用光标导航到第一个Segment的末端(Link 0,Segment0,直道),并寻找一个橙色的小圆圈,当参考线的末端被封顶时,这个圆圈会出现。单击一次,将直线定义为第一个连接臂。

图3.53:定义第一交叉连接路口

2.按住Shift键,添加三个25米长的路口,每个路口与另一个路口成90度,并通过双击最后一个连接路口或在连接处的中间点击确认。

图3.54: 完成后的交界处
3. 在每个连接路口上添加一条直线段。添加新段时,一定要把握好基准线的右点。
向上向右走的线段应该是200米长,向下走的线段只需要50米长。
图3.55:有四个路口链接的交界处
4.在道路网的右端添加第二个连接点:在左侧的道路选项卡中再次选择道路隔离带类型的Junction,并点击一次,在Link 2的末端抓取正确的点。
按住Shift键,添加一个25米长的Junction路口,指向右上方40度,一个指向下方270度。
图3.56:第二三条交叉的路口
5.  使用 "点列表 "在路网右上方添加一条长长的弯道。再次点击并按住路段图标,在下拉菜单中选择点列表。
确保在右上角的交点链接处的参考线的右点,并尽可能多地放置一些点,以创建一个类似于下图中的链接。双击最后一个点,结束此模式。
图 3.57:路网右端结束段的点
6.    在道路上添加一条路线。在编辑器左侧的工具栏中,在 "交通 "选项卡中,选择路线图标。使用光标,在链接的右侧车道上选择预定义的路径,车辆将在其上开始行驶。在这种情况下,这意味着点击左侧链接0的底部车道上的直线、水平路径。
现在,将光标再次悬停在这条路径上,当这条线被标记为橙色的断线时,再一次左键单击。
现在,我们需要依次选择以下所有的路径段,这些路径段是我们的车辆行驶路线所需要的。首先是直接穿过第一个路口的路径,然后是连接线2上的右车道路径,再向上穿过路口的路径,最后是连接线4上的右车道路径。这一连串的路径定义了我们的 "路线"。
要设置和完成路径定义,双击路径本身(或除了道路以外的任何地方),直到它改变颜色。在右侧的选项卡中,给路线命名为"Woods"。
图3.58:定义路线
使用IPGMovie在3D-Preview中检查道路的几何形状,再次按下标有播放符号的按钮。
现在可以使用滑块沿着预览中的路线移动了。
图 3.59 使用3D-预览检查道路几何图形
启动TestRun。点击CarMaker主界面中的绿色 "Start "按钮。
在IPGMovie中观看仿真,可以看到车辆在到达赛道的尽头之前就已经停止了。这个例子显示了道路和机动车定义之间的依赖关系。
为了使车辆行驶到道路的尽头,需要定义一个不会在道路结束之前结束的操纵。这意味着,一旦道路或操纵定义结束,仿真就结束了。
编辑操纵,使车辆到达赛道的终点。在CarMaker GUI中,点击参数>操纵。
在 "持续时间 "字段中,插入以下值:9999。
图 3.60:改变车辆操纵的持续时间
在CarMaker主界面中点击 "文件">"保存 "保存TestRun,然后重新开始仿真。
图 3.61: 道路尽头的车辆
车辆现在行驶到道路的尽头,只有在道路结束后,仿真才会终止。在3.4.2节 "定义车辆操纵"中进一步详细说明了车辆操纵的定义。
创建一个具有3D曲面的封闭轨道
之前建造的道路现在将被延长,以建造一条封闭的轨道。要加载p r ev i o u s Te s t R u n My_Test Run_ Scenario Editor,请在CarMaker主界面上单击 Fi l e > 打开 > My_TestRun_ScenarioEditor > OK。为了更好的可视化,也应该打开IPGMovie。如果需要的话,在产品实例 > 实例 > BasicFunctions > Road > _QuickStartGuide >Step2_Woods下的TestRun示例中,可以找到到目前为止的步骤的解决方案。如果正在使用该解决方案,请务必将其保存为 "My_TestRun_ScenarioEditor",以便进一步使用。
在这个例子中,将在之前建立的轨道中添加两个新的段和一个高程和坡度剖面,其几何形状如下。按照下面列表中的说明,将建立一个封闭的轨道,如图3.62 "无高程文件的赛道 "中所示。
->链接3,第1段。
- 在第0段之后
- 分段类型。转弯
- 半径:100米
- 角度:180度
- 坡度剖面,外角高度为0.5米;
-> 链接3,第2段。
- 在第1段之后
- 与前一个转弯处的第二个路口相接。
- 分段类型。连接
-> Link 2的高程剖面图(两个路口之间的连接线)
- 短的部分,顶部高度为8米左右
首先,在平面内实现所有的线段都有正确的长度和曲率。最后将高程曲线添加到道路中。
链接3、段1:再次点击并按住道路选项卡中的道路段图标,选择转弯。在直道的尽头点击一次,按住shift,再次点击,创建一个半径为100米、角度为180度的左转弯。如有必要,可在右侧选项卡中调整参数半径和角度。
需要注意的是,在实现转弯时,第二次点击定义转弯是向右转还是向左转。
链接3、转弯段2:点击并按住路段图标,选择连接。在转弯结束时点击一次,然后在第二个连接段的底部连接路段处再次点击。一定要捕捉到橙色的点,以创建正确的过渡。
现在的轨道应该像下图中显示的那样。
图3.62: 无高程剖面图
现在,针对具体的路段链接实现了不同的高度剖面。重要的是,每个路段链接只能有一个高度剖面(高程、坡度和外倾)。当用户在同一链接上添加更多的高度节点点时,应该扩展现有的列表,而不是尝试添加一个新的。
高度剖面图是相对于沿道路中心的s坐标(参考线)定义的。有两种方法来定义某些高程的起始点和终点(极限)。
- 精确的S坐标。起点和终点可以在高程剖面中精确地设置,相对于相应的Link的起点。
- 直观性。使用光标,用户可以在Sce- nario Editor的显示窗口中选择点来定义高程剖面的起始点和终点。
在这个例子中,用户可以使用光标在显示窗口中直观地设置高程剖面的起始点和终点。如果需要,可以在右侧的选项卡中调整数值,以适应后面的解决方案。
将高程剖面图添加到链接2:单击并按住道路选项卡中的3D曲面按钮。选择高程剖面。点击链接,在链接2开始后不久定义第一个点。在第一个点后不久选择第二个点,第三个点靠近链接的结尾处,第四个点就在结尾处。双击最后一个点就结束了选择。
现在,在右边的选项卡中可以看到一个代表高程剖面值的列表。如果放置了太多的点或有些点的位置不对,可以用这个表来删除或改变每个点的值。
中间两个点的高程为8m,其他点的高程为0m。这样,为了使高程剖面的花键计算正确,其余部分不变形,在每个点的标高选择0。
这就是高程剖面图应该是类似于以下内容:
图 3.63: 纵坡的高程剖面图
既然是直观地选择了,那就不要紧,如果点位稍有不同,也不要紧。点击预览图显示了现在的路是什么样子。
现在可以实现Link 3上的Segment 1的侧边坡了。
与定义纵坡的高程剖面时类似,单击并按住 "道路 "选项卡中的3D曲面按钮。选择坡度剖面,选择相关链接(底部的长转弯),并在段1(转弯)上定义四个点。
点1:绕过弯道的起始点。当离开这个点时,坡度将开始逐渐达到所需值。
点2:在第一个点后面几米处。当离开该点时,坡度将稳定在设定值。
点3:离曲线的终点不远处。当偏离此点时,斜率将开始下降。
点4:曲线的终点,在点3之后不久。
现在,在右边的选项卡中可以看到一个代表斜率曲线的列表。插入-0.5为第二点和第三点的斜率,其余的斜率为0。同时,将四个点的坡度值都设置为0。斜率值是否需要为正值或负值取决于斜率应该向哪个方向发展。
坡度剖面图应该是这样的:
图 3.64:侧坡的坡度剖面图
插入第二条路径。再次点击 "路线 "图标,首先选择0号线上的右车道路径(左侧第一条),在出现橙色断线后确认此路径。相应地,选择穿过路口的路径、Link 2上的右车道路径、向下穿过路口的路径、长转弯上的右车道路径,然后再向上选择路径到Link 1。
双击结束路径定义,并将此路径命名为 "TestTrack"。
图 3.65:定义车辆航线 "TestTrack"
在全局设置中定义了驾驶员应在哪条路线上行驶。可以使用编辑器顶部栏中的齿轮图标访问这些设置。右侧标有 "活动路线 "的字段会打开一个包含所有可用路线的下拉菜单。
选择 "TestTrack "作为活动路线,保存TestRun并重新开始仿真。可以将TestRun与示例TestRun Step3_TestTrack进行比较。
在IPGMovie中,刚才定义的道路特性现在更明显了,尤其是纵向和横向坡度。
图 3.66 纵向和侧向坡度
修改道路宽度和路面附着系数
到目前为止,设计的道路都是在场景编辑器中预先定义了路面附着系数和道路宽度。如果需要的话,用户可以轻松地对这两个参数进行单独调整。用户必须如何进行调整,将在本章中介绍。
在这个例子中,再次使用保存的TestRun My_TestRun_ScenarioEditor。另外,前几步的解决方案可以在 "产品实例">"实例 "中找到。
> BasicFunctions > Road >_QuickStartGuide >Step3_TestTrack。记住要保存为 My_TestRun_ScenarioEditor。
当设置了一个车道的宽度,这适用于整个车道的宽度。
为了定义具有单个车道宽度的区域,必须定义一个新的车道段(车道段=具有恒定车道数的道路路段)。要做到这一点,需要在 "道路 "选项卡中选择 "Lane section",然后使用光标,在显示窗口中点击所需的道路上的点,就可以定义新的Lane Sec- tion的限制。现在,该路段内的车道宽度可以按照已知的方式独立于其他车道段的车道宽度进行更改。在下面的例子中不需要这样做。
通过改变链接1(从第一个路口向上的链接)上的车道设置,添加一个区域进行制动测试。
首先,删除Link 1的左侧车道。由于我们要在道路中间进行制动测试,所以右车道就足够了。点击"道路 "选项卡中的车道图标,选择左侧车道。点击右侧选项卡中的红色 "X",将其删除。
更改车道段1的车道宽度:点击 "道路"选项卡中的车道图标,选择车道1的单车道。在右侧选项卡中的两个字段(起点宽度和终点宽度)中设置车道宽度为10米。
在左侧的 "附件 "选项卡中选择 "道路标记 "工具,点击当前断线,将 "线 "类型改为"单线",在左侧的 "道路标记 "选项卡中选择 "道路标记 "工具,将 "线"类型改为 "单线"。
开始仿真,观察赛道的变化,使其变得更宽。
图 3.67 车辆动力学平台
除了车道宽度之外,路面附着系数还可以由用户使用两个方法来定义。
- 改变整个Link的路面附着系数(全局)。在选择模式下,点击道路,选择所需的链接。在右侧的选项卡中,可以为参数 "摩擦(路面附着)"分配一个值。这将改变整个赛道的路面附着系数。
- 改变路段的路面附着系数。点击并按住 "道路 "选项卡中的 "凸点 "图标,选择 "摩擦(路面附着)"。通过此工具,用户可以放置可变路面附着系数条。点击所需的链接,并定义两个点来限制路面附着系数条。在右边的选项卡中,现在可以定义路面附着条的横向偏移量、宽度和路面附着系数。
在车辆动力学平台中添加路面附着系数条:如前文所述,选择 "凸点 "工具,然后选择 "摩擦(路面附着)"选项。点击链接1(我们刚才改编的链接),然后放置两个点来定义路面附着系数条的起始和结束。在右侧的选项卡中改变这些点,使条纹的起点为120米,终点为200米。
同样在右边的选项卡中,将侧向偏移量设置为-10m(负值是道路右侧的参考线),宽度设置为10m,路面附着系数设置为0.5。
图 3.68: 路面附着系数参数
上图中定义的路面附着系数条纹在IPGMovie中创建了如下的可视化:
图 3.69 定义道路附着系数
插入凸点、车道标记和动画对象
改变道路的道路宽度和道路附着系数只是IPGRoad提供的众多可能性中的两种。在左边的选项卡中,有许多选项可以让用户在道路和周围的风景中添加特殊项目。
图 3.70:场景编辑器中的特殊项目
可选择的功能分为道路、附件和风景。
-> 道路 - 颠簸。通过这个工具,用户可以选择横梁、锥体、摩擦条纹、网状、波浪和横向轮廓。这些功能可以改变道路的3D外观,改变道路的表面。
-> 附件-路标、路画、交通标志、交通标志、交通灯、交通护栏和导向柱都可以在这个选项卡中实现。这些组件中的一些可能会对驾驶员和车辆行为产生影响,例如,可以使用交通标志传感器定义车辆在停止标志处停车。
-> 场景。这些对象并不直接影响仿真,因为它们是设计元素。用户可以实现桥梁、隧道、几何对象、标志板、树条和地形。
有关单个参数及其元素的更多信息,欢迎关注,收藏,后期课程更新。
图 3.71: 带有车道线标识和物体动画的道路
保存TestRun和道路文件。在场景编辑器中保存道路文件。这将保存一个以.rd5结尾的文件。将其命名为My_Road.rd5。
比较TestRun:
比较TestRun My_TestRun_ScenarioEditor与预定义的TestRunStep4_FrictionStripe(位于产品实例>实例>BasicFunctions>道路>_QuickStartGuide中),或者看一看TestRun Final_Road在同一文件夹中的TestRun Final_Road,看看各种几何对象和环境设置如何改变道路网络和环境。
建好了道路之后,现在是时候进一步详细看一下操纵的定义了。
在选择模式下点击。下图是可以设置哪些参数。
图 3.72:驾驶员速度参数
请注意,交通标志允许用户在道路网络中添加交通标志,仅用于美化道路。驾驶员不会对此做出反应,因为只有交通标志传感器才能检测到这些标志。对于对驾驶员行为有影响的标识,必须选择标识。

3.4.2 界定车辆操纵

对于本章中的例子,需要使用之前建立的TestRun My_TestRun_ScenarioEditor或Step4_FrictionStripe或Step5_Road(包括环境的改变)。
保存TestRun My_TestRun_TestRun_ScenarioEditor。或者,使用预先定义的测试运行步骤4_Friction Stripe或步骤5_Road中的一个,并将其保存为My_TestRun_ScenarioEditor,这样你的TestRun就可以达到当前状态。
在此TestRun的基础上,将解释和扩展车辆操纵定义。
操纵GUI

在CarMaker主图形用户界面中,单击参数 > 操纵。

图 3.73:CarMaker中的操纵图形用户界面
上图显示的是操纵图形用户界面。
- 区域(A)。在这一部分中,显示了所有将被执行的操纵步骤的列表。当选择了一个步骤后,更多的参数信息将在右侧显示。
- 区域(B)。在这一节中,纵向和横向动力学被指定。这些定义了车辆的控制方式。车辆的纵向和横向控制是完全独立的。
- 区域(C):用户可以在这里为每个操纵步骤设置一个描述,并定义结束条件。终止条件可以是一个时间或距离,当达到时,终止仿真。
- 区域 (D): Minimaneuver Commands "字段是为有经验的CarMaker用户提供的功能。高级操纵定义可以单独编程并集成到该字段中。由于该字段是可选的,因此在本例中它将保持为空。
使用DrivMan跳转限制操纵步数
到现在为止,TestRun中的机动步数一直都是一样的:一个单一的机动步数,从静止状态下驾驶,长度为999999s。
在这一节中,机动步骤的持续时间不是由时间来限制,而是由一个标记来限制,这个标记会将驾驶员重新引导到另一个操纵步骤。这意味着,只要车辆通过上述标记,就会启动并执行一个新的操纵步骤,直到它的结束条件得到满足。
在下面的例子中,在制动区前不久就有一个标识。当车辆到达该标识时,将启动制动操作,使驾驶员在滑行的摩擦带上开始制动。称为 "目标标签(Target label) "的字段定义了驾驶员在通过标记后将跳转到的操纵步骤。
在制动区域上设置一个标识。在编辑器的左侧,在名为交通的选项卡下,点击并按住标记图标。在下拉菜单中,选择名为 "DrivMan Jump "的选项,点击车辆动态平台(链接1),再次点击放置标记。
在右侧选项卡中,编辑偏移量为110米,目标标签为制动(这指的是机动步骤列表中的第二步)。
图 3.74: 标记的设置
现在,在车辆动力学平台上的道路摩擦系数10米处设置了一个标记,该标记指的是操纵步骤1。目前只定义了一个操纵步骤(第0步)。因此,如果现在开始仿真,只要驾驶员到达标记点,仿真就会被中止,因为他将被引用到一个不存在的操纵步骤。
需要定义第二个操纵步骤 "制动"。
定义第二步操纵。在CarMaker主图形用户界面中,打开Parameters > Maneuver,点击列表中的最后一行(END),然后突出显示。现在选择 "新建",在第一个操作步骤下插入第二个操纵步骤。
在 "描述 "中写上"制动",并在 "标签 "中写上 "制动",然后点击相应字段中的小箭头,将纵向动态改为手动。
为了让驾驶员突然刹车,将离合器和刹车的值都改为1,即在标记后,驾驶员迅速踩住两个踏板,直到静止。
将 "持续时间 "改为999s,以确保驾驶员在操纵结束前达到静止状态。
图 3.75:定义车辆制动操纵
确保 "TestTrack "是活动路线,保存TestRun并仿真。
图 3.76 在IPGMovie中显示的新操纵
现在车辆行驶到标线处后,驾驶员开始刹车,车辆就停了下来。由于道路附着系数很小,制动距离比平时要大。可以尝试改变道路附着系数,看看仿真中的变化。
添加开环操作步骤
通过插入一个开环操纵,在同一仿真中可以使用多个操纵步骤。
在本例中,将使用动态测试平台进行sinus式转向操纵。
插入一个新的操纵步骤。在Maneuver GUI中,点击最后一个操纵步骤("END"),然后点击列表底部的 "New"。
选择并定义新的操纵步骤。
标签。sinus转向
描述:sinus转向
持续时间:3s 3s
纵向动态:IPGDriver
侧面动力学:正弦, 振幅=50度, 周期=1s, #周期=3
图 3.77:开环式车辆操纵步骤
在场景编辑器中,选择标记,并为目标标签插入 " Sinus转向",使驾驶员跳转到操纵步骤2,而不是1。
保存TestRun。
在CarMaker主GUI中,将仿真速度设置为实时。
保存并启动仿真,在IPGMovie中观看,并注意CarMaker主界面中的Maneuver框。
在CarMaker GUI的Maneuver框中,会显示所有的操纵步骤。在整体操纵的第一部分,即持续到标记的时候,第一个操纵步骤会被高亮显示。当Sinus转向阶段开始时,第三个操纵步骤将被高亮显示。
这个非常简单的例子显示了如何插入一个开环操纵,然后检查当前正在运行的机动步骤。
使用IPGDriver添加闭环操作步骤
之前的仿真都是开环操纵,因为车辆在某一时刻会停滞不前或到达道路的尽头。在闭环操纵过程中,IPGDriver会继续在特定的行驶路线上无限量地行驶一圈。需要注意的是,行驶路线必须是一个回路,这样才能实现闭环操纵。
IPGDriver是IPG开发的一个模型,它的动作和反应与真实驾驶者完全一样。虚拟驾驶员由一个敦促他按照路线行驶的控制器和一个调节速度的速度控制器组成。
在场景编辑器中,通过点击 "路线 "图标定义一个新的路线。在第一个链接(链接0)的右侧车道上选择预定义的路径,然后再次点击确认。现在选择穿过路口的路径,相应地,选择所有必要的路径来绕过长转弯。最后要添加到路线中的路径段应该是在第一个路口右转的路径。双击确认 "路线"。将其命名为 "ClosedLoop"。
现在,IPGDriver将识别出Route的最后一点位于同一Route的另一个点上,而他将继续无休止地在这个行驶路线上运行。
保存TestRun,打开仪器并开始仿真。
图 3.78 闭环驾驶行驶路线
车辆现在继续行驶。使用仪表仪观察速度。在操纵图形用户界面中,可以为每个操纵步骤单独设置一个目标速度。驾驶员将尝试达到并保持这个速度,同时考虑到车辆的物理极限并保持在轨道上。尝试输入一个目标速度,并观察驾驶者如何使用仪器处理这些指导线。
这表明了两点:
- 驾驶员所要追求的最高速度可以在每个操纵步骤中单独定义。
- 驾驶员保持在道路轨迹上,自动识别理想的轨迹。
定义操纵步骤的其他选项
到目前为止,只有IPGDriver和一个非常简单的sinus转向的操纵步骤。这些都是CarMaker中使用的最重要的选项之一。然而,还有其他各种选项可供选择。
操纵的持续时间:
图 3.79 定义操纵持续时间步骤
之前曾讨论过如何通过一个标记来限制一个操纵步骤,强制启动一个新的操纵步骤。到目前为止,这还不是实现结束条件的唯一可能性。
在标有 "结束条件 "的字段中,可以定义其他参数来终止操纵步骤。通过在条目字段中右击,CarMaker中的所有用户可访问的数量列表将显示出来。可以选择其中的任何一项与逻辑运算符结合,以成为结束条件。逻辑运算符可以小于(<=)、大于(>=)或与(===)相同。此外,可以同时定义多个条件。量可以用逻辑运算符 AND (&&&) 或 OR (|||) 组合。
图  3.80 定义终止条件参数
纵向动力学
图 3.81: 纵向动力学的定义
为了控制纵向动态,例如车辆的速度和/或纵向加速度,有几个选项可供选择。
- IPGDriver。通过IPG驱动模型对车辆的速度和加速度进行全自动控制,通过IPG驱动模型自动控制车辆的速度和加速度。
- 速度曲线:该选项可以使用速度曲线定义。
- 车速控制:该选项代表简单的车速控制器。
- 手动控制:该选项代表了简单的速度控制器。可直接控制踏板位置。
- Stop Vehicle(停止车辆)。停止车辆:停止车辆。该选项特别为从事主动驻车辅助系统工作的工程师设计。
- 倒车:倒车。与IPGDriver相同,但为倒车。
- IPGDriver + 用户驾驶员模型:激活用户定义的驾驶员模型
侧向动力学:
图 3.82定义侧向动力学
车辆的方向可以通过几个选项来定义。
- IPGDriver。完全自动控制方向盘。
- Sinus输入:方向盘上的Sinus输入
- Sinus变幅度输入:方向盘上的Sinus输入。方向盘上的窦道输入,具有不同的振幅(具体地说,可以是线性或非线性的起始和结束振幅)。
- 转向步进:方向盘上的转向步进输入。
- 循序渐进:循序渐进。这个选项是一个类似IPGDriver的方向盘控制器,但简化了。
本节中改变的TestRun现在可以与预定义的TestRun进行比较。
Step6_Maneuver (位于产品实例 > 实例 > BasicFunctions > Road)下>_QuickStartGuide)。)
两万余字,创作不易,欢迎,点赞,关注,转发。您的支持是小明师兄前进的动力。
(0)

相关推荐