MSCConfidential第七章驾驶机器•驾驶机器根据你的指示驱动你的虚拟车辆,就像一名试车驾驶员驾驶一辆真车一样。MSCConfidential驾驶机器•本章内容:•标准驾驶员界面(SDI)和驾驶机器•为什么使用SDI?•数据流程•使用驾驶机器•限制•生成SDI的输入•驾驶员控制文件(DriverControlFiles)•驾驶员控制文件(.xml)的例子•生成.dcf和.dcd文件•驾驶员控制文件(.dcf)的结构•指定结束条件•可扩展的结束和退出条件•指定属性•驾驶员控制数据文件(DriverControlDataFiles)•驾驶员控制数据文件(DriverControlDataFiles)的构造体系•生成.dcd文件MSCConfidential标准驾驶员界面(SDI)和驾驶机器•标准驾驶员界面(SDI)为ADAMS/Car所用的一套结构体系,以完成利用输入来驱动你的虚拟样车的驾驶性能分析目的。这套体系可以进是ADAMS/Car的一个特色,名为DrivingMachine,即驾驶机器。界面控制五个不同的信号:转向、油门、离合器、挡位和刹车。有了这些设置,使你很容易再现任何物理样机试验过程或从测试数据中复现实际的驾驶事件。•驾驶机器提供了与三种车辆控制方法的无缝接口:•开环控制(Open-loopcontrol)–开环控制可以使用常数或函数表达式来驱动车辆。没有反馈信号返回给控制系统。•机器控制(Machinecontrol)–机器控制为一种闭环控制,通过车辆的运动状态控制车辆。•人工控制(Humancontrol)–人工控制,类似于机器控制,为一种闭环控制,但是这种控制方式有学习的能力。MSCConfidential标准驾驶员界面(SDI)和驾驶机器•为了帮助你计算控制信号,驾驶机器传递车辆的状态,诸如,位置、速度和加速度给你的驾驶控制器。它同样提供一种方法以确定并传递系列命令信号、反馈信号以及五个控制信号对应的参数。•采用一个XML格式的脚本控制整车的仿真,以替代原来的TeimOrbit格式的驾驶控制文件(drivercontrolfile即DCF文件)•如果有先前版本生成的DCF文件,Aadams/Car仍读入,并创建对应用于驾驶机器的XML事件文件MSCConfidential为什么使用SDI?•使用驾驶机器,你能做什么?•使用驾驶机器,你能够:•输入车辆的路径{x,y}以及速度,使用闭环的驾驶机器以控制车辆的转向使其沿着给定的路径或按照给定的速度或二者兼而有之进行运动。•输入各种开环函数,如正弦扫频及脉冲信号,控制转向、油门或刹车等。•向模型输入记录的转向、油门、刹车、挡位和离合信号。•根据是否达到目标的横向加速度、纵向速度或移动的距离,停止仿真、切换控制器和改变输出步长。MSCConfidential为什么使用SDI?•使用驾驶机器能够得到什么?•使用驾驶机器,你有下述好处:•输入车辆的路径{x,y}和速度,使用闭环,机器控制来实现车辆按指定的路径和速度来转向•输入开环函数,如正弦扫描和角脉冲来转向,油门或制动•输入记录的转向,油门,制动,档位和离合器信号靠控制车辆•停止一个仿真,转换控制,和改变输出步大小基于目标侧向加速度,纵向速度或位移。MSCConfidential数据流程•有关驾驶机器的数据流程•当你利用驾驶机器提交一个仿真时,ADAMS/Car生成一个ADAMS/Solver的模型文件(.adm),一个ADAMS/Solver的命令文件(.acf)和一个驾驶控制文件(.dcf)。驾驶控制文件(.dcf)为控制仿真事件的脚本。模型文件(.adm)参照驾驶控制文件(.dcf),而命令文件(.acf)调用一个包含在ADAMS/Car解算器中的CONSUB的子程序读取并处理.dcf文件中的内容以完成.dcf文件中脚本所描述的操控过程。ADAMS/Car解算器然后提供标准的输出文件:.msg,.req,.res,.gra,and.out等等。•驾驶控制文件(.dcf)描述你想执行的操控过程为一系列的最基本的操控过程。驾驶控制文件(.dcf)可以再参照一个或多个驾驶控制数据文件。驾驶控制数据文件包含或者机器驾驶(闭环控制)所需用的车辆路径和速度,或者车辆开环控制输入所需要的转向、油门、刹车、挡位和离合器的信号等。•下页汇总了驾驶机器所使用的数据流程。MSCConfidential数据流程•驾驶机器数据流程如下所示:MSCConfidential使用驾驶机器•使用驾驶机器的步骤:•使用驾驶机器包含下列的步骤:1.将一个整车模型与.__MDI_SDI_TESTRIG试验台装配一起或打开一个已有的整车装配。2.进行下面的一种分析:•使用预先定义的分析•生成你自己的.xml文件以完成你所指定的一系列仿真过程•下页表示驾驶机器在虚拟样机模型中的工作机理。MSCConfidential使用驾驶机器MSCConfidential限制•驾驶机器有一些限制,如下所示:•它只能在正转向输入使车辆向左转向时实现精确的转向。•车速过低时控制无效。MSCConfidential生成SDI的输入•用于描述基于标准驾驶界面(SDI)事件的两种文件:事件文件(.xml)和驾驶控制数据文件(.dcd)。•事件文件(.xml)–控制事件,包含一系列的最基本的控制,允许你用脚本描述仿真过程。•驾驶控制数据文件(.dcd)–包含用于驾驶控制文件的输入数据。只有在驾驶控制文件(.xml)中需要参照时,才需要此文件。MSCConfidential事件文件•事件文件(.xml)描述在你想在虚拟试验或分析时驾驶机器如何驱动你的车辆。驾驶控制文件(.dcf)指示驾驶机器以多快的速度驱动车辆、什么地方驱动车辆(例如,在80m半径的skidpad),并且停下来(横向加速度=8m/s2时)。驾驶控制文件指定驾驶机器应该使用什么输入信号什么类型的控制,如转向、油门等等。一个驾驶控制文件(.dcf)可以参照其它的文件,主要是驾驶控制数据文件(.dcd),以得到必要的输入数据,如speedversustime等。有关参照.dcd文件的信息,请参见ADAMS/Car的在线帮助手册的Analyze部分。•事件文件将复杂的试验过程组织成一系列的小的简单的步骤称为最基本操控。一个驾驶控制文件主要包含一个静力学设置方法和一系列在EXPERIMENT块后面的最基本操控数据,每一条对应一个最基本的操控方式。每一条最基本操控数据块依次指定驾驶机器如何控制转向、油门、刹车、挡位和离合器等。MSCConfidential事件文件•事件文件是.xml格式的文件,可以在Adams/Car标准界面FullVehicleAnalysis–EventBuilder来对文件进行修改。可以修改驾驶机器执行整车仿真的事件的属性。也可以引用外部数据.dcd文件来驱动车辆,如转向盘位移,车辆加速度,或其它输入。时间文件需要下列信息:•Experiment–指定一些仿真的初始化条件,静力学求解设置选项和一系列的最基本操控命令,组成完整的试验或事件过程。•Mini-maneuver(s)–指定车辆如何转向、多大油门、刹车参数、挡位和离合器等每个操控操作所要控制的参数,这些参数为车辆最基本的控制参数。最基本的操控的名字必须与experiment块下的名字相匹配。MSCConfidential事件文件的例子MSCConfidential事件文件的例子MSCConfidential生成事件文件•最简单的方法就是在Adams/Car标准界面FullVehicleAnalysis–EventBuilder对结果事件文件作必要的修改。下面讲述对数据块可做的修改:•Unitsblock–单位应该为在你的.dcf文件中所使用的数据的单位,可以用于你的装配模型中所使用的单位不同。•Experimentblock–如下图所示:MSCConfidential事件文件的结构•EXPERIMENT数据块–指定静力学求解设置,初始速度,初始挡位以及一系列试验的最基本操控方式。驾驶机器按照文件中列出顺序执行操控过程,直到列表操控过程结束或某一个最基本操控过程被终止。在EXPERIMENT数据块,你必须提供INITIAL_SPEED的参数,可选的,INITIAL_GEAR的参数(缺省值为3)以及INITIAL_CLUTCH的参数(缺省值为0,保持啮合状态)。可选地,你能够指定静力学求解的设置,这样可以除去开始仿真阶段的瞬态影响,也可以减少你正常需要的最小操控步骤,比如,你要做一次转圈操控分析。你可以在STATIC_SETUP下选择下面的任何值。如果你忽略STATIC_SETUP的值,ADAMS/Car使用缺省值NORMAL。•NORMAL•NONE•SETTLE•STRAIGHT•SKID_PAD•有关EXPERIMENT数据块方面更多信息,参见ADAMS/Car在线帮助手册Analyze部分。MSCConfidential事件文件的结构在EXPERIMENT数据块的后面必须带有MINI_MANEUVER子数据块。在每一个基本操控中,MINI_MANEUVER子数据块必须指定一个基本操控的名字、结束时间和输出步长。可选地,你能够定义每个基本操控的结束条件,最大的积分步长HMAX(HMAX必须小于输出步长)。如果结束时间先于满足结束条件,驾驶机器将终止整个仿真试验过程,而不仅仅只是该基本操控步骤。你也可以指定结束条件子数据块,该结束条件子数据块可以应用于试验过程中所有的基本操控步骤。•下图所示为一个做好的完整的EXPERIMENT数据块的例子。MSCConfidential事件文件的结构•Mini-maneuverblock(s)–一个驾驶控制文件可以包含的基本操控步骤的数量并没有限制。每一个基本操控块必须以在EXPERIMENT数据块下的MINI_MANEUVERS子数据块内所指定的列表作为标题。每个基本操控块必须包含子数据块,其标题为(STEERING)、(THROTTLE)、(BRAKE)、(GEAR)和(CLUTCH)。依据你指定的控制方法,你可能需要包含或者MACHINE_CONTROL或者HUMAN_CONTROL数据块。一个基本操控块同样可以包含一个END_CONDITIONS数据块,其中指定一个结束条件,可以作为触发条件结束该基本操控步骤,并转到下一个操控步骤。通常来讲,这样的数据块对所有的基本操控步骤都是需要的,而不只是最后一个基本操控步骤,这样可以保证所有的基本操控步骤在结束时间到了以前都能够被执行。•下页所示为一个基本操控块的例子,基本操控块的名字为BRAKE_TURN:MSCConfidential事件文件的结构MSCConfidential指定结束条件•对每一个基本操控步骤,你可以在一个子数据块内指定结束仿真条件。END_CONDITIONS子数据块看起来应该如下所示:其中:measure为监测量,比如:•VELOCITY–车辆的纵向速度•LAT_VELOCITY(VY)–车辆的横向速度•VERT_VELOCITY(VZ)–车辆的垂向速度•LON_ACCEL-车辆的纵向加速度•LAT_ACCEL-车辆的横加向速度•VERT_ACCEL(ACCZ)-车辆的垂向加速度MSCConfidential指定结束条件•DISTANCE–在基本操控期间车辆所驶过的总里程•TIME–仿真时间•YAW_ANGLE–相对于车辆垂直轴转动的角位移•YAW_RATE-相对于车辆垂直轴转动的角速度•YAW_ACCEL-相对于车辆垂直轴转动的角加速度•PITCH_ANGLE-相对于车辆横向坐标轴转动的角位移•ROLL_ANGLE-相对于车辆纵向坐标轴转动的角位移•SIDE_SLIP_ANGLE-Angularoffsetbetweentheprojectedvehicle’slongitudinalaxisandthevehicle’svelocityvector(侧偏角)•LON_DIS(DX)–纵向位移•LAT_DIS(D