vs快速注释_CarSim仿真快速入门(六)—VS Events

9b8786edcd784cd353da42f943f8f513.gif

45eb14a9ed3121f81537179bb43a9ce3.gif

1

CarSim仿真快速入门(一)

2

CarSim仿真快速入门(二)3

3

CarSim仿真快速入门(三)

4

CarSim仿真快速入门(四)—Run Contro

5

CarSim仿真快速入门(五)—The Procedures

45eb14a9ed3121f81537179bb43a9ce3.gif

未经作者授权,禁止任何形式的转载!

6

VS Events

Procedure界面用于在仿真开始时确定控件和条件。在某些感兴趣的场景中,用户将需要在运行仿真时更改控件或模型的其他部分。VS Events用于进行这些更改。

什么是VS Events?

VS Solver可以监视用户使用公式指定的一组条件,可能还结合了Parsfile的路径名。每个公式-路径名对称为Pending Event待处理事件。每个时间步骤,都将连续评估“PendingEvent”列表上的每个公式。如果结果不为零,则触发VS事件。与事件相关的可能动作很简单:1.如果没有耦合的路径名,则运行停止,或者2.耦合的路径名用于读取一个Parsfile(以及可能的其他链接的Parsfile),并且仿真继续进行。在事件期间通过读取Parsfile启用的选项几乎是无限的:新的数据文件可以更改输入和控制设置,甚至可以描述车辆和道路的属性。事件公式可以包括VS Commands支持的任何函数和运算符,以及具有VS Solver可以识别的关键字的所有变量和参数。唯一的限制是,在仿真开始后读取Parsfile时,它不能更改定义将哪些数据写入文件和/或与其他软件交换的仿真设置。例如,用户不能更改时间步长,活动状态数据库的导入和/或导出变量的集合等。事件用于提供以下测试顺序的指令,例如加速至一定速度,保持一段时间的速度,制动或转向直到发生某种情况,恢复控制和速度以及重复执行。事件还用于仿真ADAS情况下的驾驶员行为,例如寻找路标和行人,并做出相应反应。在运行开始时定义的待处理事件在所有其他VS命令之后的末尾Echo文件中列出(图7)。在Echo文件中,VS Command DEFINE_EVENT显示每个未决事件,后跟一个公式,该公式在求值时可能为零,也可能为Parsfile的路径名。每个时间步长,通过评估其公式以查看其是否为非零,依次检查每个未决事件。例如,如果变量TYPESIGN等于STOP_SIGN,则将触发第6326行中定义的事件。在这种情况下,VS求解器将立即读取指定的Parsfile Events \Events_7249….par,擦除事件,然后继续仿真。如果没有为事件指定Parsfile,则如果触发了事件,则仿真只会停止。         

79eed46b60940e42d927bdd307c1cc05.png

      图7.在Echo文件末尾附近的挂起事件列表除了DEFINE_EVENT命令中指定的条件和Parsfile,每个事件都有一个关联的ID号,该ID号可用于删除一组事件,而其他事件保持不变。每个事件的ID在文本行的末尾显示为注释。在此示例中,前三个事件的ID为100,最后一个事件的ID为110。命令SET_EVENT_ID用于指定ID,该ID将用于使用DEFINE_EVENT命令创建的新事件。在此示例中,SET_EVENT_ID将ID设置为100(第6325行),该ID用于以下事件,直到在第6329行中应用下一个SET_EVENT_ID。默认ID为0,因此在定义所有事件之后,将设置ID 返回0(第6331行)。 

Log文件

每当运行仿真时,都会生成一个日志文件,该日志文件记录读取了哪些Parsfile,所生成的错误消息,所触发的事件;以及运行停止的时间。使用“Run Control”界面右下角的“View”按钮进行仿真后,可以随时查看仿真的日志文件。图8显示了用于生成前面显示的Echo文件的相同模拟的日志文件的一部分(图7)。日志文件在读取后按标题列出每个Parsfile,并以文本“ Used Dataset:”开头的一行。运行开始后(第297行),日志文件将在事件触发时报告(例如第299行),并继续报告所读取的每个数据集。例如,第300行报告已读取的Parsfile的路径名,第301行报告该数据集的库(Events),类别(SignDetection)和标题(DetectedStop Sign)。

时钟时间重置 Resetting Clock Times

VS求解器维持几种时间度量。仿真时间T从参数(TSTART)指定的值开始,并随着运行的进行而增加。此变量可用于绘图中,以提供绝对时间戳记,以替代后期处理过程中通过将采样间隔乘以从文件读取的采样计数而计算出的记录时间。 

7d8c3142b9fc27e6727c4d824b70a0f6.png

图8.日志文件显示涉及事件的活动

记录时间在图中以名称Time标识,时间戳在名称T_Stamp标识。如果在VS命令添加的事件或方程式中使用了时间,则应使用符号T或T_Stamp(两个关键字都附加到同一内部变量)。大多数开环驾驶员模型控制器控件由可配置函数定义,格式为:native_control = f([T– tstart]/tscale)公式中:native_control是可用于仿真的内置车辆控件,f是可配置函数,用户可以在界面上定义的方法决定(例如,通过样条插值进行表格查找),T是当前的仿真时间,tstart是可以在此界面上的其他字段之一中设置的参数,以使开环控制像当前时间为零一样应用,tscale是缩放波形的参数;它通常保持其默认值unity。表2列出了用于指定tstart的time-offset关键字。 表2.时间偏移量参数的总结    

时间偏移量

使用偏移量的表格

TSTART_T_EVENT

用于 T_Event

TSTART_BRAKES

制动开环控制

TSTART_CLUTCH

离合器开环控制

TSTART_F_BRAKE_PEDAL

制动踏板力开环控制

TSTART_GEAR

变速箱开环控制

TSTART_PBK_CON

制动主缸压力开环控制

TSTART_SPEED_CTRL

目标速度闭环控制

TSTART_STEER

开环转向控制(角度)

TSTART_STEER_TQ

开环转向控制(力矩)

TSTART_THROTTLE

开环节气门控制

TSTART_TRANS

变速箱模型开环控制

TSTART_WIND

风速和航向角开环控制

事件界面The Events Screen

图9显示了“Event”界面,该界面用于定义前面显示的Echo文件中列出的前三个事件(图7)。

它用于定义运行过程中更改模型特征的条件。

1aee8222c10752b9e17ab2bc00317b75.png

图9.事件界面,显示了多个新事件

事件界面包含三个不同类型的控制:

  1. 它具有“Procedures”界面上可用的部分控件,用于组合涉及驾驶员控件(①-⑦)的数据。

  2. 它具有其他字段⑧和链接⑨,可根据需要使用这些字段和链接来修改仿真条件。

  3. 它使用界面底部的控件(⑩-⑯)定义一组未决事件。

初始化设定Initialization settings

VS数学模型具有在运行开始时设置时钟时间,车辆位置,悬架挠度和车轮速度的选项。读取事件数据集时也可以设置选项。①  Specify initialization details? 选中此复选框可查看另外四个复选框(图10)。如果未选中(图9),则不会将任何涉及四个初始化选项的内容写入Parsfile。

91b064c2ab15cd10e85a7b72f489eb14.png

图10:可以选择显示的初始化详细信息

②  Reset all control clocks? 如果选中此框,则表2中列出的所有时间偏移都将设置为当前时间T。名为TSTART_T_EVENT的变量也将设置为当前时间。每个时间步都会计算一个称为T_EVENT的内置变量,该变量可在某些高级方案中使用:T_EVENT = T - TSTART_T_EVENT此复选框提供了一种方便的方式来重置时钟。但是,如果用户想重设一些时钟而不是全部,那么用户应该在其他字段⑧之一中输入文本命令,以指定要修改的时间偏移。例如,如果要在发生事件的任意时间应用开环制动控制,则可以将以下行输入到其他字段⑧之一,并使用其他链接⑨之一访问开环制动控制数据集。TSTART_BRAKES= T③  初始化选项复选框。如果这些框可见,则初始化选项将被专门打开或关闭,如前面对“Procedures”界面所述。如果未选中该框,则发生的默认行为取决于是否在运行开始之前或运行期间读取了数据集。1. 如果尚未开始运行,则默认为执行所有初始化。2. 如果运行正在进行中,则默认为不执行任何初始化。④    More links? 选中此框以显示另外两个其他链接⑯。为了腾出空间,界面会刷新,并调整了其他黄色字段的大小⑧。

速度控制Speed Control

⑤   速度/加速度选项。该下拉列表具有用于控制车速的选项。它的功能类似于“Procedures”界面上的控件。如果选择的选项意味着需要更多信息,则会显示更多信息。特别是,如果选择恒定的目标速度,则会显示两个以上的控件(图11)。与“Procedures”界面一样,目标速度会显示一个黄色字段,并显示一个复选框,以允许速度控制器⑦使用发动机制动。

c3d8723d0121cffe60da45809584787c.png

图11.设置恒定的目标速度

与“Produces”界面不同,“Event”界面还显示了一对用于设置SPEED_TARGET可配置函数ID的控件⑥。⑥   显示了一个下拉控件,其中有两个用于数据集的选项,用于指定恒定速度(图12)。如果选择第一个选项(Addadataset),则此事件数据集的Parsfile将包含用于向模型添加新的SPEED_TARGET数据集并以指定的速度配置⑤的命令。新数据集的ID是自动设置的。另一方面,如果选择了第二个选项(Set a custom ID),则会显示一个黄色字段来指定SPEED_TARGET数据集的ID,如图12所示。它必须是一个大于或等于999的整数。或使用计算公式时≥999的公式。如果存在具有指定ID的SPEED_TARGET数据集,则将其重新配置为具有指定值的常量。如果不存在具有指定ID的数据集,则采取以下步骤:

0335c08947dd0868f55a156f3e7571c3.png

图12.下拉控件,用于选择速度控制数据集ID的选项

  1. 创建一个数据集,

  2. ID设置为指定的整数值,

  3. 新数据集被配置为具有指定值的常量⑤.

固定目标速度的处理比“Produces”界面的处理更为复杂,“Produces”界面没有用于处理SPEED_TARGET数据集ID的选项。原因是有时在涉及迭代的仿真中重复读取事件数据集。如果未指定自定义ID,则每次VS Solver读取事件数据集的Parsfile时,它将添加一个新的SPEED_TARGET数据集。使用自定义ID允许VS Solver通过无限制的迭代来重用现有数据集。⑦   如果将速度选项设置为恒定目标速度(图11),则会显示此复选框,以指定速度控制器是否考虑发动机制动。速度控制器的其他设置将使用其默认设置。

其它区域和链接Miscellaneous Fields and Links

⑧   其它黄色区域。输入关键字以及要分配给它们的值或公式。格式是每行都有一个关键字和值,这些关键字和值之间用空格和/或“ =”符号分隔(图9)。⑨  到其他数据集的其他链接。使用这些链接可以收集有关驾驶员控件(开环和闭环)以及可能与测试或过程相关的其他条件的信息。请注意,某些数据集仅用于指定运行开始之前的条件,并且不应包括在运行进行之前不可访问的事件数据集中。运行开始后无法更改的一些示例数据的仿真参数(时间步长,开始时间等),用于创建输出变量的VS命令等。

VS Visualizer仅在运行开始之前接收可用的设置数据。在仿真开始后,将不使用事件访问的动画师形状,参考系,图等数据集。

定义待定事件Defining Pending Events

⑩   清除现有事件列表的复选框。遇到此数据集时,可能已经有待定事件的列表。如果选中此框,则清除现有列表。如果按顺序运行独立测试,则此选项非常方便。当开始新测试时,它将清除先前测试中的所有事件信息。

请注意,事件在触发时会自动清除。此复选框用于清除其他可能待处理的事件。

如果显示了“GroupID”复选框⑫,并且在相邻字段中提供了一个值,则如果选中了“Clear”框⑩,则仅删除具有指定ID的事件。如果未选中该复选框⑫,则清除所有未决事件,无论其关联的ID号如何。⑪    当前界面上定义的事件数。一个数据集中最多可以定义10个事件。要指定10个以上的待处理事件,用户可以使用其他链接之一链接到更多事件数据集⑨。当多个事件挂起时,它显示为通过逻辑OR连接到其他挂起事件。评估列表中的第一个条件,如果未触发,则测试下一个条件,依此类推。Number of Events defined on the current screen. Up to 10⑫  复选框,用于为当前数据集中引用的所有事件指定组ID。选中后,将显示一个相邻的黄色区域,以指定一个整数ID。在该示例中,使用用户定义的参数SIGN_DETECT设置ID。使用命令SET_EVENT_ID在Parsfile中指定ID,如果在写入Echo文件时事件未决,则该ID也列在Echo文件中(图7)如果选中了清除框⑩,并且在ID黄色区域中提供了一个值,则VS命令DELETE_EVENTS_ID将被写入Parsfile中以清除具有该ID的所有事件。对于示例ID SIGN_DETECT,Parsfile将包含一行文本。

DELETE_EVENTS_IDSIGN_DETECT

⑬   用于创建事件的变量⑭,以及运算符,阈值⑮,以及可能链接到另一个Parsfile的链接,如果Event被触发⑯,该链接将被读取。如果将操作符下拉控件⑭(图13)设置为前两个选项之一,则此字段是隐藏的。

25de12beef7c0d696994eb47d5d9a3a0.png

图13:指定事件公式的选项

⑭    事件的定义以以下形式显示在界面上:IF formula [THEN loaddataset]此下拉控件确定如何设置事件公式。表3中列出了此控件可用的选项。对于前两个选项(0〜=和0 ==),将为该公式显示一个黄色区域⑮,当该公式不为零时将触发事件(0〜 =,如该图中的第三个事件所示),或者当公式为零(0 ==)时,在这些情况下,另一个区域⑬是隐藏的。

表3.可以定义事件条件的关系运算符 

操作符

逻辑条件描述

VS 命令行

0  ~=

非0为真

DEFINE_EVENT

0 ==

0为真

==

变量等于参考量为真

MAKE_EVENT

~=

变量不等于参考量为真

变量大于参考量为真

>=

变量大于或等于参考量为真

变量小于参考量为真

<=

变量小于或等于参考量为真

 通过建立一个在每个时间步都评估的公式来定义事件。有两种布局可用于输入公式,如图9和图13所示。在第一种情况下(0〜=),VS命令DEFINE_EVENTS用于使用相邻区域⑮中提供的任何公式来创建未决事件。语句(在Echo文件中看到)具有以下形式:DEFINE_EVENTformula[; [pathname]]在第二种情况下(0 ==),使用相同的命令,但是黄色区域中的公式放在括号中,并以字符“〜”(“ not”运算符)开头:

DEFINE_EVENT~( formula )[; [pathname]]

使用其他六个选项,将显示两个区域,这些区域由布尔关系运算符分隔。例如,图13中的第一个Event使用==运算符来创建带有命名变量(TypeSign⑬)和引用公式(STOP_SIGN⑮)的公式。在这种情况下,VS命令MAKE_EVENTS用于创建未决事件。该命令的格式为:MAKE_EVENTvariable operatorreference [; [pathname]]其中variable是VS Solver生成的Echo文件中出现的任何变量或参数的名称,包括输出变量,浮点参数(例如,具有单位的参数),状态变量和导入变量,而threshold是数字或 涉及VS Command公式中允许的任何变量,参数和函数的公式.在公式中使用==和〜=运算符时要小心。当数值应用公式时,可能会出现截断/舍入错误,这将导致两个在数学上应该相同的表达式有所不同。例如,(x / 3)* 3可能不等于x,因为除法(x / 3)的结果将出现截断误差,并且将结果乘以3通常不会消除该误差。此外,计算机进行的从十进制到二进制的转换中也可能会出现错误。例如,十进制数0.025在内部表示为0.025000000000000001。考虑使用运算符>或 = 0.99999。

此问题的例外是测试零。没有截断或舍入:零为零。

下一部分将提供有关DEFINE_EVENT和MAKE_EVENT之间差异的更多信息。⑮  该区域是:
  1.  自包含公式,如果下拉控件设置为表3中列出的前两个选项之一,或者

  2.  如果使用下拉控件指定了其他六个选项中的任何一个,则仅在逻辑表达式的右侧。 

⑯   链接到另一个事件数据集以读取是否触发了事件。如果此处未指定数据集且事件被触发,则运行终止。如前所述,所有对Event的触发都记录在日志文件中(请参见图8)。

DEFINE_EVENT和MAKE_EVENT之间的区别

事件于2004年推出,当时未开发用于求解器模块的VehicleSim架构。在原始版本中,命令DEFINE_EVENT命令必须具有以下形式:DEFINE_EVENTvariableoperator reference [;[pathname]]  {OldForm: up to2019.0}运算符是“ ”,而引用是数字。在更高版本中,运算符已扩展为包括表3中列出的六个选项,而引用已扩展为包括符号公式。从版本2019.1开始,VS Solvers可以在公式中处理布尔运算符。使用此功能,语法已更改为当前语法,用于在Echo文件中显示事件:

DEFINE_EVENTformula [; [pathname]]

新形式的用途更加广泛,并且比以前更容易地使单个挂起的偶数包含AND和OR条件。但是,原始语法支持在引用是数字的情况下很方便的功能。它会自动从用户单位转换为内部单位。例如,图14显示了一个事件数据集,该数据集用于开始运行并加速直到达到80km / h的目标速度,此时触发事件并读取链接的数据集。

61b3015108f99d4e59052e5d184c6e10.png

图14.阈值为数字的示例

图15显示了包含图14所示界面显示数据的Parsfile的一部分,该部分使用MAKE_EVENT命令,后跟一个与界面显示极为相似的公式。另一方面,图16显示了所得的DEFINE_EVENT命令如何将数字速度值从80km / h转换为22.2222m / s。

bbefb6ccd3dcea70f7c65f67ea6f7c46.png

图15.在Parsfile中使用MAKE_EVENT命令 

7c90ccd65b5764c3f21813e1d1c64411.png

图16.由MAKE_EVENT命令创建的DEFINE_EVENT命令

为了保持与旧数据集的兼容性,当使用两个字段(变量和阈值)时,浏览器始终会编写MAKE_EVENT命令。MAKE_EVENT命令于2019.1中引入,仅用于检查数字表达式,并在需要时从用户单位转换为内部单位。例如,图17显示了图9和图13所示数据的Parsfile的一部分。前两个事件是使用MAKE_EVENT命令创建的;第三个使用DEFINE_EVENT命令。

Echo文件将永远不会显示MAKE_EVENT命令。该命令仅用于处理单位转换以做出正确的DEFINE_EVENT语句。

fdbc78748f57385189cfe1c3de74baae.png

图17.带有MAKE_EVENT和DEFINE_EVENT命令的Parsfile

事件使用实例

CarSim,BikeSim和TruckSim包含许多示例事件数据集。其中大多数包含说明数据集用途的注释。在许多情况下,会有一系列事件来模拟复杂的测试或场景。在这些情况下,约定是所有事件数据集都在同一用户定义的类别中.

1. 在停车标识处停车

CarSim,TruckSim和BikeSim附带的许多示例ADAS场景都使用可以按各种顺序触发的事件。当检测到停止标志时,将触发图9和图13所示的事件数据集中的第一个悬置事件。一种用于控制车辆以使其停在指定位置(在路径上的站点)的方法是让内置速度控制器使用目标速度,该目标速度在某些位置从当前车辆速度变为零 (与停车标志或交通信号灯的位置有关)。图18显示了一个数据集,该数据集具有最简单的可能的目标速度方程,对V = 1 m / s(3.6 km / h)进行归一化,直到S =0。在该数据集中配置的函数为SPEED_TARGET。与大多数可配置函数一样,可以使用内置转换参数来缩放输入和输出。

fae95754b2d161c772ab45b58045cecc.png

图18.恒定减速度停止的目标速度数据集借助此SPEED_TARGET数据集,可以将车辆配置为基于速度控制器中的参数以指定的减速度停车。例如,在事件数据集中设置了SPEED_TARGET增益和位移偏移,该数据在检测到停车标志时加载(图19)。(这是图9和图13中所示的第一个事件的数据集链接。)

13974007506b569baf1f33fd0000e350.png

图19.检测到停止标志时触发的事件

其它项区域⑧有一个命令来设置增益SPEED_TARGET_GAIN以匹配车辆的当前前进速度:Vxz_Fwd。自变量(位移)SSTART_SPEED_TARGET的偏移量设置为车辆应停止的位移值,即:位移+SignDist – StopDist,其中Station是车辆簧载质量的原点位置,SignDist和StopDist为在其他地方定义的参数。一旦车辆停止移动,就不再可能根据运动跟踪变化。因此,当目标速度VxFwd  ③< ⑭0.1 km / h⑮时,未决事件被定义为在停止之前触发。

请注意,组ID设置为SIGN_DETECT,这是在其他位置定义的用户定义参数。因为指定了ID,Clear all existing events? ⑩?仅适用于具有相同ID的事件。也就是说,具有不同ID值的待处理事件将保持有效。

当车辆快要停止时加载的数据集(图20)将节气门设置为0⑤,使用命令OPT_SC = 0⑧关闭速度控制器,并施加一些制动压力⑨。它还根据用户定义的参数和来自两个ADAS传感器的输出变量,针对两个条件添加了一个待处理事件:如果没有检测到行人(TypeO〜=行人)并且没有检测到红灯(TypeSign〜= light_red),然后加载Parsfile以重新启动车辆运动⑯。在此示例中,不同的参数代表红灯和停车标志。如果有停车标志,则可以开始。但是如果是信号,车辆会等到灯光变亮为止。

19133b4395ab26cc21382e2a1812e565.png

图20.在停车标志处等待的事件

2. 稳态回转系列Steady-State Circle Series

ISO 4138定义了一个长测试系列,以确定在稳定转弯条件下的转向不足。车辆在恒定半径的路径上以恒定速度行驶,直到达到平衡为止,然后提高速度并保持恒定,直到出现平衡为止,依此类推。仅当车辆已达到新平衡时才写入输出。尽管仿真测试可能会花费几分钟,但通常只记录40左右次,目的是创建有效的变量的交叉图(图21)。 

1fcfa6448d93774b2fba595a2101e479.png

图21.根据ISO 4138从稳态回转在CarSim中制作的交叉图

仿真示例使用了五个事件数据集。当事件通常按顺序应用时,标题通常以字母或数字开头,因此可以按通常触发它们的顺序轻松查看它们(图22)。

a1856d9291eae14fc21c422f62684cca.png

图22.菜单显示了“稳定回转”系列测试的五个事件

图23显示了该系列中的第一个Event,它链接到Procedure数据集,因此在仿真开始之前由VS Solver读取。其它项区域使用VS命令DEFINE_PARAMETER和DEFINE_VARIABLE向模型添加新变量,包括一个名为T_WAIT的变量。定义了一个待处理事件,当T>3 * T_WAIT时将触发该事件。发生这种情况时,VS求解器将加载链接的事件“ B”数据集(图24)。

bf0e3af373b9084b2d27b9d30fca0b6c.png

图23.事件:A.开始稳态回转系列

2ea35236db9b689adc96908aa1176cb6.png

图24.事件:B. 保持Ackermann 转角

“ B”数据集(图24)保存了两个变量,这些变量以后用作参考:这是在低速时遵循指定道路半径所需的转向角,称为Ackermann转向角。一个是方向盘转角(Steer_SW),另一个是两个前轮转向角(Steer_F)的平均值。未决事件被设置为在下一个时间步无条件触发(0〜= 1),从而导致链接的“ C”事件数据集(图25)被加载。

6a3c8ee7f9123bdc6b7bdd2b833b0d94.png

图25.事件:C.转到下一个速度

“ C”数据集(图25)将目标横向加速度AY_TARG递增,并使用公式SQRT(R * AY_TARG)计算新的目标速度,其中R是圆形路径的半径。写入文件由参数OPT_WRITE控制。将其设置为用户定义的参数WRITE_ALL,该参数通常为零。(提供了WRITE_ALL参数是为了便于诊断时,方便地写入仿真的整个时间历史记录。)通过设置T_EVENT_START = T来重置T_EVENT时钟。定义了一个新事件,当T_EVENT大于T_WAIT并且 导致“ D”数据集被加载(图26)。

85d9b97ed3b64520552d8345075521ae.png

图26.事件:D.检查横向加速度

“ D”数据集(图26)添加了两个新的未决事件。第一个事件检查以查看当前横向加速度(Ay)与目标AY_TARG的差异是否大于步骤AY_STEP。如果是这样,则说明车辆已达到其横向加速度极限,并且VS求解器将加载一个Parsfile,这将导致行驶停止。否则,它将无条件加载“ E”数据集(图27)。 

c47c92c13fbea9986ce98a90a44289c3.png

图27.事件:E.写入一个时间步长“ E”数据集(图27)设置参数OPT_WRITE = 1,因此VS Solver将在时间步结束时写入文件。下一步,它将无条件加载前面显示的链接事件数据集“ C”(图25),以提高横向加速度中下一步的目标速度。仿真将继续进行事件C,D和E,直到加速度不再增加为止,这时由于事件“ D”中的检查结果,运行将停止(图26).

使用事件创建和更改变量的限制

仿真开始运行后,一些参数变量将被锁定,内部数组(例如用于导入和导出的内部数组)以及将输出变量写入文件的状态也会被锁定。开始运行后,不允许在运行开始前进行某些设置和VS命令。开始运行后,在事件数据集中可能不会更改在Echo文件中标识为锁定[L]的参数(例如TSTEP)。同样,永远不能直接设置标识为“只读”或“ CALC”的参数;它们在Echo文件中以文档形式显示给可能在VS Commands中使用它们的高级用户。运行开始后,可能无法使用VS命令DEFINE_IMPORT,DEFINE_OUTPUT和EQ_DIFFERENTIAL。尝试这样做将导致VS求解器生成错误消息并停止。如果事件数据库仅链接到过程数据集或运行开始之前读取的任何其他数据集,则可以在事件数据集中使用将被锁定的参数以及VS命令(例如DEFINE_OUTPUT)。限制不是在包含设置的数据集上,而是在VS Solver加载它的时间上。如果在运行开始之前已加载,则可以;如果稍后在触发事件时加载,它将生成错误并导致运行停止.

覆盖数据Overriding Data

来自“RunControl”控制的数据和链接的数据集被发送到两种程序,每种程序具有不同的效果 

Simulation Modules (VS Solvers)

进行仿真运行时,VS求解器首先从Run Control数据集和所有链接的数据集(例如过程数据集)读取所有数据。大多数数据为内置在数学模型中的参数和表提供值。如果为同一参数或表提供了多个设置,则在仿真中使用最后一次读取。例如,可以在链接的“Procedures”数据集中指定一个制动控制数据集,而在“Run Control”界面上指定另一个。如果最后从“Run Control”界面中读取了数据集,则将使用它。。考虑到这一点,通常最好在Procedures数据集中提供所有驾驶员控件作为默认值。如果将Procedures与其他设置(例如,不同的速度目标)一起使用,则可以从“Run Control”界面中应用替代设置,以覆盖“Procedures”数据集中的设置。当用户单击“Run”按钮以运行仿真时,将扫描“Run Control”数据集和所有链接的数据集中的所有数据,以获取对动画和绘图的引用,以确保激活了动画或绘图所需的任何输出变量并将其写入输出中VS规划求解生成的文件。

驾驶员控件中的一个例外是目标速度,该速度可支持200个实例,前面已进行了描述。如果为目标速度设置了新值,则可以将其添加到模型中,或替换现有数据集中的值。 

VS Visualizer

VS Visualizer生成视频和/或绘图时,它将读取发送到VS Solver程序的同一文件(包含来自“Run Control”数据集和所有链接的数据集的所有数据)。VS Visualizer不会读取运行开始后VS Solver可能读取的任何Parsfile。这意味着将不会使用从触发事件时读取的Parsfile引用的任何动画或绘图设置数据。例如,考虑使用“事件”加载新轮胎数据集的情况。加载事件后,VS求解器器将加载新的轮胎数据并将其应用到行驶中,但是与该轮胎数据集关联的任何动画形状都不会由VS Visualizer加载。 

动画Animation Video

使用车辆数学模型和VS Visualizer进行建模的概念存在根本差异。车辆模型的许多属性都通过参数和表格进行了预定义。数据文件的目的是更改参数的数值或替换数字表。另一方面,动画没有预定义的3D世界。在涉及3D对象的许多场景中都使用相同的工具。提供给动画的数据文件用于从头开始构建此3D模型。通常使用相同的形状数据文件定义许多3D对象,每个副本都有一个唯一的位置。例如,许多车辆动画对所有车轮都使用相同的形状。因为发送到VS Visualizer的动画形状总是添加到3D视觉世界中,所以只有在使用该Procedures时以及当使用该过程时相关的形状始终可见的情况下,才应将动画信息放入“Procedures”数据集中.

 图表Plots

从“plot:Setup”库到数据集的链接用于生成单独的图。可以在“Procedures”界面和任何其他界面上进行链接,前提是假设如果链接到该界面,则应始终生成某些图。如果多次引用相同的绘图设置,则会生成重复的绘图.

道路路面

CarSim,TruckSim和BikeSim支持多达200个路面和多达500条参考路径。在读取道路数据集时,界面上有一个选项,可帮助确定是将数据集用于重新定义现有道路还是添加新道路。但是,如果在运行开始之前读取了VS Visualizer读取的任何道路数据集,则会添加3D表面信息。

如果在处理事件时添加了路面,则VS Visualizer将不会显示关联的动画形状。

未经作者许可,禁止转载

bf78475c70776b67cc89c42f2992b401.png

d3ed87143b2bf0f2698498a051deb999.gif

cb9aaa237b07811f38fd7839098b96bb.gif

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值