实验介绍

  • 既然是做实验,肯定要有对比分析,手动一次次改参数后运行,要花费大量时间,而CarMaker为大家准备了贴心的自动测试功能,搭建好一次实验环境,准备好每次实验的不同参数,就可以自动进行实验,并记录实验数据。
  • 写论文,尤其是理工科的论文,优美的图标必不可少,我们可以借助Simulink生成图表,但CarMaker自动生成的图表也不输Simulink
  • 本实验会围绕汽车不同期望速度进行实际速度的测量,并进行比较。
  • 环境:Windows 10、CarMaker 10.2


目录

  • 实验介绍
  • 实验效果
  • 实验过程
  • 新建一个直线跑道并规划路线
  • 选择一辆测试车辆
  • 创建一个行驶策略
  • 保存当前项目
  • 打开TestManager界面
  • 新增一个TestRun,并设置测试场景
  • 新增两个Variation,并对speed的值进行设置
  • 新增一个Diagram,清晰的看到速度的变化
  • 启动测试
  • 查看测试报告
  • 附录1:TestManager中四种变量类型介绍
  • NValue
  • KValue
  • TS
  • CM
  • ScriptFile
  • ResultFName
  • Popup Timeout
  • 附录2:TestManager中常用的其他测试功能
  • 测试组(Group)
  • 车辆(Vehicle)
  • 特征值(Characteristic)
  • 实时计算(Online calculation)
  • 离线计算(Offline calculation)
  • 判定标准(Criterion)
  • 测试配置项(Test Configuration)
  • 设置(Settings)
  • 结束
  • 补充


实验效果

testsigma recorder使用_数据分析

实验过程

新建一个直线跑道并规划路线

testsigma recorder使用_NValue_02

选择一辆测试车辆

testsigma recorder使用_CarMaker_03

创建一个行驶策略

采用IPGDrive模型行驶30秒,速度为$speed=10,表示定义一个NValue变量,变量值为10

testsigma recorder使用_数据分析_04

将速度定义为变量是为了后面的对这个变量进行修改,关于NValue变量的性质可以在最后的附录1中查看。

保存当前项目

项目名为:testManagerExperience

testsigma recorder使用_数据对比_05


testsigma recorder使用_数据对比_06

打开TestManager界面

testsigma recorder使用_数据分析_07

新增一个TestRun,并设置测试场景

testsigma recorder使用_数据分析_08


testsigma recorder使用_TestManager_09


testsigma recorder使用_数据分析_10


testsigma recorder使用_NValue_11

新增两个Variation,并对speed的值进行设置

testsigma recorder使用_数据对比_12


testsigma recorder使用_TestManager_13


testsigma recorder使用_NValue_14

如果之前在配置IPGDriver的Speed的时候正确,则此处的Name下的speed的值是可以通过下拉获取的

新增一个Diagram,清晰的看到速度的变化

testsigma recorder使用_CarMaker_15

  • 将数据在一张表上显示,方便对比
  • testsigma recorder使用_CarMaker_16

  • 对x轴和y轴进行命名
  • testsigma recorder使用_NValue_17

CarMake目前r不支持中文,不要写中文

  • x轴取值默认为Time,y轴取值我们手动输入为Car.v表示车速
  • testsigma recorder使用_数据分析_18

启动测试

testsigma recorder使用_TestManager_19

  • 我们可以看到IPGMoive界面的车辆在不同的参数下运行

查看测试报告

testsigma recorder使用_TestManager_20

  • 第一页记录了测试的时间等信息
  • 第二页记录了测试结果的基本情况
  • 第三页为数据图标
  • 后面两页记录了测试的参数

testsigma recorder使用_TestManager_21


testsigma recorder使用_CarMaker_22

附录1:TestManager中四种变量类型介绍

NValue

  • 全称:Named Value
  • 作用:NValue是一种命名变量,可以放到CarMaker的任何可编辑参数字段中。要引入命名值,可以直接在选择的参数字段或输入文件中输入美元符号$,该符号后面需要跟上希望该变量具有的名称。同时,可以给这个变量提供一个默认值。
  • 范例:设置IPGDriver的速度为变量speed的值,初始为10
  • 在IPGDriver界面的Speed框内,输入$speed=10,表示定义一个命名变量speed,初始值为10
  • 图示:
  • 定义成功的NValue可以在TestManager的参数名称栏找到

KValue

  • 全称:Key Value
  • 作用:KValue是关键字变量,属于infofile关键字,主要适用于CarMakerGUI中没有可编辑参数字段的设置。例如,使用不同的轮胎执行相同的测试运行,或者如果交换车辆数据集。
  • 部分参数样例:

TS

  • 全称:TestSpace variables
  • 作用:TestSpace variables称为全局测试变量,是仅在测试体系中的辅助变量。其功能可与黑板类似。测试空间变量可以存储和计算值。
  • 创建方法:
  • 打开ScriptControl界面
  • testsigma recorder使用_CarMaker_23

  • 输入命令set TS::oneValue 100,按回车,表示创建一个叫oneValue的TS变量,赋值为100
  • testsigma recorder使用_TestManager_24

  • 可以从测试管理器中的“View->TestSpace”菜单中检索所有现有TS变量的概述:
  • testsigma recorder使用_数据对比_25


  • testsigma recorder使用_NValue_26

  • 使用方法:$TS::oneValue
  • testsigma recorder使用_NValue_27

testsigma recorder使用_TestManager_28

CM

ScriptFile

  • 作用:脚本文件类变量只存在于测试管理器中。它们允许访问测试管理器中的脚本控件扩展。因此,可以将用Tcl/Tk编程语言编写的脚本文件加载到测试空间中,以便在执行测试系列时可以调用用户定义的函数和过程。
  • 样例:可参考Examples > BasicFunctions > TestAutomation > TestManager > VariationsAndSkipping.ts样例

ResultFName

  • 作用:这是一个特殊的命令,它会影响在此测试系列中创建的结果文件的存储路径和名称。在类型为CM的变量的字段中,只需输入新的存储路径作为绝对路径或相对于CarMaker项目文件夹。
  • 样例:Examples > BasicFunctions > TestAutomation > ScriptControl > Straight_TrailerSwingingDVA

Popup Timeout

作用:避免插入运行的弹出消息是弹出超时。在以秒为单位定义的超时后,弹出式消息将自动关闭。如果弹出窗口有选择,则给出默认答案。

附录2:TestManager中常用的其他测试功能

测试组(Group)

  • 我们可以通过Group进行多个不相关的测试,每一个Group内的测试都是互不影响的。

车辆(Vehicle)

  • 可以为不同的测试组指定不同的车辆

特征值(Characteristic)

  • 在进行测试时,计算一些特征值通常是很有用的,这有助于评估最后的模拟结果。特征值项内需要定义这些特征值,并指定它们的计算规则。对于每个特征值,您、必须定义一个唯一的标识符,该标识符以后可以在标准或图中作为参考名称使用。在CarMaker中,计算特征值基本上有两种不同的方法,即实时计算和离线计算。

实时计算(Online calculation)

  • 通过应用用户定义的实时表达式。这适用于那些计算仅取决于以前的时间步长的特征值。
  • 要实时计算特征值,选择RTExpr作为计算类型,并在指定的输入字段中指定的实时表达式(。实时表达式必须定义一个新的数量,其名称与前面指定的特征值的标识符相同。
  • 样例:计算刹车距离
  • 标示符(Identifier):BrakeDist
  • 类型(Type):RTExpr
  • 值(Value):(first() ? Qu::BrakeDist=0); DM.ManNo>0 ? BrakeDist=Delta2Ev(Car.Road.sRoad, change(DM.Brake), Car.v <=0.01)
  • 设置图表Mode为Characteristic vs Variation
  • 设置Y轴为BrakeDist
  • 设置车辆运行策略
  • Description:Accelerating
  • End Condition:Car.Road.sRoad>=50
  • Duration (time/dist):10.0
  • Longitudinal Dynamics:IPGDriver
  • Description:Braking to standstill
  • End Condition:Car.v<=0.001
  • Duration (time/dist):30.0
  • Longitudinal Dynamics:Manual(Pedals,Gear)
  • Cluth的Value:1
  • Brake的Value:$Brake=0.6
  • 记住,保存
  • TestRun的测试环境设置为刚才保存的场景
  • 运行测试,查看Rport中的图表,发现成功计算出刹车距离约23.36

离线计算(Offline calculation)

  • 通过分析存储的结果数据,在模拟完成后计算该值。这基本适用于所有的特征值。为了脱离线计算特征值,用户必须指定一个tcl脚本,它提供了计算所需值的函数。此脚本文件的路径必须在定义特征值之前,在“Settings”测试项中定义。此外,用户必须指定执行实际计算的函数的名称。

判定标准(Criterion)

  • 对于评估一个已完成的模拟,通常需要定义一个或多个标准,将模拟结果与给定的参考值进行比较。这可以通过在测试系列中添加一个或多个标准项来实现。对这一标准的评价结果可以是好的、警告的或坏的。为了区分这些结果,可以在标准项的详细视图中指定不同的约束。
  • 样例:接着Characteristic实时计算的样例,我们加上两几个条件:刹车距离小于20,合格,20到30之间警告,30及以上,危险。
  • Criterion参数设置
  • good:[get BrakeDist] < 20.0
  • warn:[get BrakeDist] >= 20.0 && [get BrakeDist] < 30.0
  • bad:[get BrakeDist] >= 30.0
  • 创建三个变量,修改Brake分别为0.3、0.6、0.9
  • 运行测试,查看结果,不同的Brake会产生不同的BrakeDistance

测试配置项(Test Configuration)

  • Test Configuration被设计为解决测试配置器向导的方法,该向导可用于基于预定义的测试目录,即所谓的测试软件软件包,创建大型测试系列。

设置(Settings)

  • Settings使用户可以进行一些配置,不仅适用于一个测试,而且适用于更大规模的测试。例如参数变量可以设置,这些变量对不止一个变量有效,但是一组测试运行。因此,将设置放置在测试系列中的位置非常重要,因为它们适用于相同或更低级别的所有设置。

结束

  • TestManager并不难,有难度的可能还是变量的使用,需要花一些时间去研究,我也主要学习了NValue、KValue和TS的使用,对于其他的变量没有花太多时间了解。
  • 本次实验可以在CSDN的资源中下载(只包含前面的实验,不包含附录的实验):
    注意:用CarMaker打开testManagerExperience,在TestManager界面打开testManagerExperience.ts,即可进行不同速度的车辆自动测试。

补充

  • 默认情况下,测试方式Execution mode为顺序测试Sequential,我们可以改为并行测试Parallel,这样会有更快的测试速度。