vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第1张图片

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第2张图片

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第3张图片

1

CarSim仿真快速入门(一)

2

CarSim仿真快速入门(二)3

3

CarSim仿真快速入门(三)

4

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

5

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

6

CarSim仿真快速入门(六)—VS;Events

7

CarSim仿真快速入门(七)—车辆参数化建模

8

CarSim仿真快速入门(八)—车辆动力系统建模(1)

9

CarSim仿真快速入门(九)—车辆动力系统建模(2)

10

arSim仿真快速入门(十)—制动系统建模

11

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

CarSim和TruckSim包括驾驶员通常提供的所有控制:转向,制动,油门,变速和离合器控制。每个控件都有开环和闭环操作选项。这些控件可以直接作为开环控件提供,可以从外部软件导入。

VS Math Models旨在在响应驾驶员控制时提供对物理车辆的仿真。它还包括提供转向,制动等功能的闭环控制器。这些闭环控制器通常用于在以给定速度或以基本规则确定的速度遵循给定路径的情况下模仿驾驶员的典型行为。适当的转向,油门,制动,换挡,以及可能的离合器控制等。闭环控制器使用可配置函数来定义路径和速度的目标。驾驶员模型使用的目标速度和横向偏移可配置函数(分别为SPEED_TARGET和LTARG)还可用于控制运动对象的运动,以用于仿真交通车辆和ADAS传感器的其他目标。

开环控制

VS数学模型中定义的开环控件不受VS求解器内置的任何控制器的影响。但是,这些控制变量可以替换为Simulink等外部软件的闭环控制器中的值,也可以替换为运行时处理VS命令。也可以使用驾驶模拟器测量控制变量(转向,油门等)并将其替换为驾驶员的值,并将这些变量作为VS提供给VS数学模型。当使用内置速度控制器时,开环节气门和制动控件将保持激活状态,以支持干预驾驶员控制的高级安全系统的仿真。因此,如果创建一个在运行过程中从开环模式切换到闭环模式的过程(使用VS命令和事件),则可能需要将开环控件设置为零,以防止不必要的交互。

配置函数

VS求解器中的每个开环控件均带有可配置函数,可以将其设置为使用多种计算方法之一。例如,图1显示了用于开环方向盘角度控制的库界面。在这种情况下,函数类型设置为Linear interpolation,flat-lineextrapolation ①                             (线性插值,平线外推),并且基于方向盘角度与时间的值表 ②。界面上以图形方式显示数字表中的非线性关系。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第4张图片

图 1. 转向开环控制界面

与特定可配置函数关联的选项和参数的关键字可以在为每次仿真运行生成的Echo文件中找到。GUI界面下部的文本表示,在Echo文件中包含基于根名称的关键字的开环方向盘角度信息,例如“ STEER_SW ③”.图2显示了在仿真运行结束时写入的Echo文件的一部分,其中使用了来自图1的STEER_SW波形,并在运行期间重新调整了比例。列表顶部的注释行描述了此特定可配置函数(常数,线性系数,时间的非线性函数,自定义方程式等)支持的选项。所有可配置函数的选项都不相同;Echo文件提供了参考,以指示可用于每个特定函数的选项.在文档中,Echo文件列出了与该函数关联的数据。在界面上选择的函数类型 ①(图1)在parsfile中使用关键字STEER_SW_TABLE和LINEAR_FLAT定义,后跟与界面上显示的数字匹配的数字表。在关键字END_TABLE之后,列出了四个参数(两个比例因子和两个偏移量),它们可以按如下所述变换函数的形状.

参考波形比例

内置的(native)开环控制是通过可配置函数计算的:

e4b9863e5db6cba2ab9a54d3b24bf2ec.png

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第5张图片

图2. Echo文件的一部分,显示了方向盘角度的可配置函数

公式中f是使用用户在界面上定义的方法(例如线性插值)的函数(例如STEER_SW);X是界面上显示的自变量,用于计算f;X依次定义为时间和两个参数的函数:X = [t –tstart] / tscale,其中t是仿真时间,tstart是偏移控件时间轴的参数(例如TSTART_STEER),tscale 是用于缩放控件时间轴的参数(例如TSCALE_STEER);gain 是应用于该函数的无量纲增益乘数(例如STEER_SW_GAIN);offset是应用于函数的偏移量(例如STEER_SW_OFFSET).请注意,数据界面中的数字表显示了从零开始的波形,方向盘角度范围限制为±1°。使用关键字STEER_SW_GAIN增加图中所示波形的幅度。因此,在写入Echo文件时,带有驻留时间的正弦振幅不是如图所示的1°,而是112.357°(图2)。使用关键字TSTART_STEER将波形延迟到T = 43.9s开始。因此,波形不是如图所示在T = 0处开始,而是在43.9s处开始。在此运行中未设置其他两个参数(TSCALE_STEER和STEER_SW_OFFSET),并保留默认值1(TSCALE_STEER)和0(STEER_SW_OFFSET)。重新调整参考波形后,通常会在与具有该波形的界面不同的界面上设置参数的值。通常,缩放参数来自Procedures界面,Events界面,或者对于快速更改,来自Run Control 界面。与往常一样,如果在不同的数据集中指定了相同的参数,则VS Solver读取的最后一个值将覆盖同一函数或参数的所有先前值。

用自定义控制器的输出替换开环变量

在本文档中定义为开环的控件不受VS求解器内置的任何控制器的影响。但是,可以使用由外部软件(例如Simulink)定义的闭环控制器或在运行时处理的VS命令来设置控件。《 VS命令手册》描述了几种扩展可配置函数的方法,这些方法适用于数学模型中使用的开环控件:
  1. 可以定义事件,其中在仿真中达到条件时可以重新定义一些参数。

  2. 可以定义公式来计算每个时间步的现有参数或变量。

  3. 可以设置可配置函数以使用方程,该方程根据车辆模型中存在的具有关联关键字的数千个变量中的任何一个来定义f。

除了内置选项外,还可使用Simulink和LabVIEW等外部软件来定义变量,这些变量将导入到VS Solver中,并在数学模型中应用它们。可以使用四种可能的方法将导入的变量与内部计算的值组合:1.导入的变量可以替换内部值。2.导入的变量可以添加到内部值中。3.导入的变量可以与内部值相乘。4.导入的变量可以忽略。

开环控制函数和变量总结

所有用于开环控制的库界面的布局都与图1(第3页)所示的布局相似。表1总结了由用于指定控件的关键字定义的函数。表中的root关键字用于表函数(上述等式中的f),import变量标识import。如前所述,每个函数还具有四个用于转换计算值(例如STEER_SW)或时间的参数。该表还列出了用于绘制函数值的输出变量。表2列出了开环控制处于激活状态的条件。仅当闭环驱动器模型未激活(OPT_DM = 0)时,才应用转向控制的开环控制。当闭环速度控制器处于活动状态(OPT_SC> 0)时,制动和动力总成控制不会禁用;为避免干扰,使用闭环速度控制时,最好将开环制动和节气门设置为零。

表 1. 用于开环控制的配置函数总结 

控制库界面名称

Root 关键字

输入变量

输出

Control:  Braking MC Pressure (Open Loop)

PBK_CON

IMP_PCON_BK

Pbk_Con

Control: Braking Pedal  Force (Open Loop)

F_BRAKE_PEDAL

IMP_FBK_PDL

F_Pedal

Control: Clutch (Open Loop)

CLUTCH_CONTROL

IMP_CLUTCH

ClutchTr

Control:  Shifting (Open Loop)

GEAR_TRANS

IMP_GEAR_TRANS

GearStat

Control: Steering (Open Loop)

STEER_SW

IMP_STEER_SW

Steer_SW

Control:  Steering Torque (Open Loop)

M_STR_IN

IMP_STEER_T_IN

M_SW

Control: Throttle (Open Loop)

THROTTLE_ENGINE

IMP_THROTTLE_ENGINE

Throttle

表 2.控制库和模型的总结 

库名称

激活时刻

Control: Braking MC Pressure (Open Loop)

OPT_BK_PEDAL= 0

Control: Braking Pedal Force (Open Loop)

OPT_BK_PEDAL= 1 or 2

Control:  Clutch (Open Loop)

OPT_CLUTCH_MODE =0

Control:  Shifting (Open Loop)

MODE_TRANS =1

Control: Steering (Open Loop)

OPT_STR_BY_TRQ = 0and OPT_DM = 0

Control: Steering Torque (Open Loop)

OPT_STR_BY_TRQ = 1 and OPT_DM = 0

Control:  Throttle (Open Loop)

OPT_PT > 0

参考路径

VS参考路径是一条存在于水平面中且位置和坡度连续的连续线。即没有尖角。路径定义了一组两个坐标,可用于描述路径附近的位置:位移S(沿路径的距离)和横向坐标L(点与路径的距离,在与该点和路径相交的线上测量),并且与相交点处的路径垂直(图3)。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第6张图片

图 3. 参考路径的坐标S和L

VS数学模型中与路径关联的S和L坐标的主要应用是:
  1. 闭环转向控制器通过尝试通过可配置函数LTARG遵循目标L定义为S的函数。
  2. 道路高程和道路附着系数被定义为道路参考路径的S和L的函数。
  3. 可以使用参考路径和LTARG数据集定位运动对象。
CarSim和TruckSim支持多达500条路径,并包括几种定义路径的方法,如路径和路面相关章节中所述。每个路面都需要一条路径作为其定义的一部分。此外,可以定义不与道路关联的多个参考路径。当使用路径定义闭环控制器的目标或指定运动对象的运动时,通常使用LTARG可配置函数将横向目标L指定为沿着路径的S的函数。VS求解器最多支持500个LTARG数据集。用于转向的闭环控制器需要路径和LTARG数据集,而用于速度的闭环控制器可以选择使用转向控制器使用的同一对路径和LTARG数据集。遵循驾驶员模型的路径(即,闭环驾驶员模型)所使用的路径可以是道路的一部分,或者仅作为控制车辆的方法而存在。

定义参考路径 

CarSim和TruckSim包含多个用于定义参考路径的库(表3)。这些库可从VS浏览器的“Libraries”菜单中的“Pathsand Road Surfaces”子菜单中找到。

图 3.定义参考路径的数据库 

库名称

描述

道路?

Path: Segment Builder

从直线,纯圆弧,曲率,X-Y坐标表和/或回旋曲线的线段构建路径

Path: X-Y Coordinates for Segment

从X-Y表构建路径段,与Path: Segment  Builder一起使用

Path: X-Y Coordinates

具有单个X-Y表的构建路径

Path: X-Y  Coordinates (Legacy)

Path/Road: Segment Builder  (Legacy)

从直线和弧形线段构建路径和/或道路

可配置

Road: X-Y-Z Coordinates of

Reference Line

从X-Y-Z表建立路径和道路

Road:  X-Y-Z Coordinates of Edges

从两个X-Y-Z表格构建路径和道路

Scene: External Import

从其他工具导入数据

表3中的两个库的名称以“Road”开头,它们定义了一条道路参考线以及一些随S以及可能随S和L改变的高程信息。Path/Road: Segment Builder (Legacy)具有以下选项:确定是仅定义参考路径还是包含一些道路属性,例如每个路段的路肩。表3中名称以“ Path”开头的库均定义了参考路径,该参考路径可用作驾驶员模型或交通运输工具的输入,而无需作为道路描述的一部分。这些路径可用于定义道路,但这不是必需的。“Scene: External Import”界面用于从其他来源导入路径,可能的道路数据以及可能的动画形状文件。表3中的库与CarSim和TruckSim中的大多数其他库之间存在重要区别。大多数库具有VS数学模型中已经存在的函数的属性(轮胎,转向系统,开环控制选项等)。例如,如果仿真运行的设置中有两个转向系统链接,则VS Solver最后接收到的将覆盖第一个链接在数据集中指定的属性;最后读取的参数值是仿真中使用的参数值。VS数学模型支持在运行时使用命令DEFINE_PATHS和DEFINE_ROADS定义的多个参考路径和道路。表3中的库具有可以使用适当的命令添加新路径和/或道路,然后设置该路径或道路的属性的数据集。如果用户的设置具有指向路径的四个链接,则可能会将四个路径添加到模型中。

附加路径的应用包括引导交通车辆,仿真车道检测或其他使用S-L坐标系的情况。

路径,道路和LTARG数据集具有用户定义的ID号。这些函数允许将相同的ID号用于路径,道路或侧向目标,而不管其在仿真中何时定义。也就是说,ID为1001的路径将是相同的ID号,无论它是仿真中的唯一路径,还是定义为15条路径中的第五条。

分配给车辆的路径和LTARG数据集

与驾驶员转向控制器关联的路径和LTARG函数也用于定义车辆位置。

驾驶员模型部分的Echo文件

图4显示了Echo文件中该部分的顶部,该部分具有有关闭环转向控制器的信息。无论是否使用驾驶员模型转向控制器,图4中列出的参数均可用。始终使用参数PATH_ID_DM将唯一的参考路径分配给车辆(第719行)。如果驾驶员模型处于活动状态,则这是用于控制转向和可能的速度的路径。即使未使用驾驶员模型,其ID与PATH_ID_DM匹配的路径也将定义一些与路径相关的输出变量,例如Station和Lat_Veh。LTARG数据集是可选的,并且可以使用参数LTARG_ID_DM指定(第720行)。除了设置车辆的输出变量之外,PATH_ID_DM和LTARG_ID_DM还可用于通过设置参数OPT_INIT_PATH = 1(线722)来设置车辆的初始位置。在这种情况下,VS求解器将车辆定位在驾驶员参考路径的指定起点SSTART(线727)处,偏航角与该路径平行。如果LTARG_ID_DM> 0,则位置和偏航角也会考虑指定的LTARG目标。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第7张图片

图4. Echo文件的Driver Model部分,带有车辆初始化设置

车辆沿由参数OPT_DIRECTION设置的路径指向方向(线724)。如果需要定义停止条件(当系统参数OPT_STOP = 1时),则显示SSTOP参数。参数OPT_INIT_PATH,OPT_DIRECTION和SSTART通常是从“Procedures”库界面设置的。OPT_INIT_PATH的默认值为1。为了提供一种禁用此参数以及其他与初始化有关的参数的方法,该界面上具有一个复选框,用于指定初始化详细信息(图5)。连同车辆位置参数OPT_INIT_PATH(车辆X,Y和横摆角)一起,还显示了复选框,用于车辆初始化参数OPT_INIT_SPEED(车轮速度)和OPT_INIT_CONFIG(弹簧挠度)。

1459284d3fee406f8e0f4590bf908c51.png

图5. Procedures界面上用于设置初始化详细信息的部分

与“Procedures”库中的数据集一样,“Events”库界面上有一个复选框,用于指定初始化详细信息,默认情况下也将其隐藏。如果选中该框以显示初始化详细信息,则OPT_INIT_PATH,OPT_INIT_SPEED和OPT_INIT_CONFIG的框最初未被选中(即,每个都设置为0)。如果运行开始后从事件库加载了数据集,并且选中了这些框,则结果是初始化将在运行开始后进行。通常,这是不需要的。但是,该函数用于在单次运行中仿真一系列测试,或者重置车辆位置以开始进行测试。

链接顺序

每个参考路径数据集都有一行文本,这些文本将PATH_ID_DM设置为该数据集创建的路径。假定所有参考路径数据集都将PATH_ID_DM设置为数据集中的PATH_ID,则车辆PATH_ID_DM将始终由VS Solver扫描的最后一个数据集确定,除非在此之后将其重置。在涉及多个路径的任何仿真中,最好将PATH_ID_DM设置为其它项的黄色字段,并在扫描完所有Path数据集之后对其进行扫描。

使用事件更改路径

VS事件用于在仿真过程中更改数学模型。可以设置事件以更改运行期间驾驶员模型使用的路径。这涉及更改单个参数:驾驶员模型的路径ID:PATH_ID_DM。此更改可能会导致的一个复杂情况是,新路径上的位移定义可能与旧路径上的位移不匹配。通常,目的是使车辆状态保持“原样”,而任何运动部件的位置或速度均不变。在这些情况下,求解器必须通过将车辆的全局X和Y坐标值转换为S和L路径坐标来确定车辆沿新路径的位置。对于数学模型,从X-Y坐标转换为S-L坐标有时会很复杂。一个主要的潜在困难是,可能存在许多对给定车辆位置有效的S-L坐标解决方案。例如,图6显示了一条跑道(蓝色)和车辆上的兴趣点(红色圆圈)的路径。参考路径上标记为A,B等的任何点均通过垂直于路径的线连接到该点,因此是确定S和L的有效位置。(在这种情况下,点A可能是正确的位置)

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第8张图片

图6.路径上的多个位置可能会为车辆提供有效的S-L坐标

在内部,数学模型会跟踪每个兴趣点的位移最新值。闭环控制器用于速度和转向的station变量是一个状态变量,可以使用其输出名称Station进行访问。如果将“Event”设置为在行驶过程中更改PATH_ID_DM,则最好同时将“Station”设置为接近车辆在新路径上的位置的值。例如,假设在行驶过程中激活了图6中所示的路径,并且车辆将进入A点附近。A点处的路径站为2012 m,C点处的路径站为1243 m,并且Station的当前值是956 m。求解器很可能会确定路径上的位置为点C(S = 1243),或者可能找不到值并停止运行。为了提供清晰的过渡,触发事件时加载的parsfile不仅应加载新的路径数据集,还应将Station的值设置为2000附近,以使求解器能够正确地在路径上定位车辆的位置。

内置的闭环控制驾驶员模型

CarSim和TruckSim包含一个内置的驾驶员模型(DM)控制器,该控制器可用于遵循使用参数PATH_ID_DM和LTARG_ID_DM指定的路径和目标。

表4列出了与DM控制器相关的输出变量。这些变量存在于CarSim和TruckSim中,即使在仿真过程中OPT_DM保持为零也是如此。DM控制器的正常结果是图7显示了从图4开始的Echo文件部分的延续。该部分从参数OPT_DM(第734行)开始,该参数可以使用三种模式之一(值1,2或3表示)激活驾驶员模型。在任何一种情况下,模型都会计算方向盘角度Steer_DM。

表4.与DM控制器关联的输出变量

短名称

单位

长名称

Lat_Targ

m

目标相对于路径的横向偏移

Lat_Veh

m

车辆到路径的横向距离

LtrgIdDm

-

DM使用的LTARG数据集的ID

M_SW

N-m

方向盘转向扭矩

PathIdDm

-

DM使用的路径数据集的ID

PtchPath

deg

驾驶员路径上的地面倾斜度

RhoPathY

1/m

路径曲率(道路横向)

RhoPathZ

1/m

路径曲率(道路法线)

Rho_Road

1/m

X-Y道路参考路径的曲率

RollPath

deg

在驾驶员路径上向地面俯仰角

Station

m

车辆起始点位置(路径)

Steer_DM

deg

DM控制器的转向角

Steer_SW

deg

方向盘转角

X_Design

m

参考路径的X坐标

X_Target

m

目标路径的X坐标

Y_Design

m

参考路径的Y坐标

Y_Target

m

目标路径的Y坐标

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第9张图片

图7.使用单点预瞄的驾驶员模型参数

有经验的用户可以使用参数OPT_DRIVER_ACTION,以使DM计算方向盘角度以用于另一个控制器。当OPT_DRIVER_ACTION的默认值为0时,方向盘角度Steer_SW设置为Steer_DM。但是,如果OPT_DRIVER_ACTION = 1,则不使用DM计算的转向。它可用于输出和/或导出到外部模型。

参数A_SW_MAX_DM和AV_SW_MAX_DM定义了Steer_DM和Steer_DM的导数范围的限制。参数VLOW_DM定义了控制器行为取决于车速的最低速度。当车速的绝对值小于该极限时,控制器的行为使用车速是VLOW_DM。

转向扭矩控制

参数OPT_STR_BY_TRQ确定是通过方向盘上的扭矩还是方向盘角度来控制车辆。当OPT_STR_BY_TRQ = 1(通过转矩转向)时,在驾驶员模型中使用了更多参数(图8)。在这种情况下,将计算出所需的方向盘转角Steer_DM。Steer_DM和Steer_SW之间的差异是使用弹簧(K_TRQ_CON_DM)和阻尼器(D_TRQ_DM),以用于方向盘扭矩M_SW扭矩控制,但要遵守最大限制M_TRQ_CON_MAX_DM。

转向控制器的坐标系

DM控制器将图9所示的轴系与DM参考路径和DM目标路径一起用于向前行驶的车辆。设置控制器以计算转向,以尝试将DM车辆参考点(以红色显示)相对于参考路径(输出变量Lat_Veh)的横向位置与使用LTARG数据集(输出变量)指定的目标路径进行匹配 Lat_Targ)。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第10张图片

图8.扭矩转向时使用的其它参数

从DM控制器的角度来看,车辆的位置应使车辆所的簧载质量(以蓝色显示)的原点位于局部X = 0,局部Y =0。所述车辆的横摆定义为零,使得局部X和Y轴与车辆的纵向和横向轴,其由所述车辆横摆角的惯性轴线旋转对准。

控制器考虑使用沿参考路径的预览距离∆S定义的目标点。沿参考路径的车辆原点的当前站点为So时,用于确定目标点的位移为:

2a8cc21a06f48488df0e694e33084fe7.png

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第11张图片

图9.转向控制器的轴系统和一个预览点

LTARG函数用于获取目标点L targ的相应L坐标。给定路径坐标S targ和L targ,可以使用VS API函数获取目标点的全局坐标Xtarg和Ytarg。那些全局X-Y坐标将转换为局部X和Y控制器坐标,如下所述。在DM参考点预估车辆的横向位置,该点以红色显示。参考点的局部Y坐标为零,而X坐标则在向前行驶时将其置于前悬架的中心(图9),而向后行驶时则将其置于后悬架的中心。该点的局部X坐标在Echo文件中用关键字XREF_DM列出(例如,图8中的748行)。在许多情况下,DM参考点与弹簧上的质量原点重合。但是,这不是必需的。从版本2019.1开始,可以使用两种替代方法来计算转向控制。一种使用简单的几何形状,另一种使用带有线性动力学模型的最优控制理论。

使用几何和单个预览点进行转向控制

当OPT_DM = 3时,使用单个预览点。当车辆向前行驶时,前轮的转角的计算为指向预览点的方向。使用站增量∆S将指定的预览直接应用于路径位移∆S:

b1729020dba9e7b4f3260d702ad165c5.png

其中X ref是DM参考点的局部X坐标,T是预览时间,Vx是纵向车速(图9)。目标位移S targ(等式2)用于通过L TARG函数计算目标L;然后将路径坐标Starg和L targ转换为全局坐标X targ和Y targ。对于驾驶员模型X DM和Y DM,将全局坐标转换为局部坐标:

515a60d9d1a51154ef6c6297e6527d1b.png

从DM参考点到目标点的角度是转向控制u c:

0f918d3d54f9ebe32607a6e4db88ef2a.png

向后行驶时,转向也会反转:

933b8dbda7c772493de65c4213c46e21.png

其中π的符号与atan2(Y DM,X DM)的符号相同。将控制角乘以有效齿轮比即可从DM控制器获得方向盘角:

f0a307125ec797f83b7a7ee30e5847e6.png

其中比率是使用与转向盘角度和方向盘角度相关的运动表在模型中动态计算的。目标点的全局X,Y和Z坐标可以通过使用命令INSTALL_DM_OUTPUTS提供(图8中的第747行)作为输出。如果VS Solver读取命令时,如果OPT_DM = 3,则将创建三个输出,名称分别为X_DM_1,Y_DM_1和Z_DM_1。另外,添加了两个导入变量:IMP_X_DM和IMP_Y_DM。这允许目标点由外部软件或VS命令提供。

使用线性动力学和多点预瞄的转向控制

当OPT_DM = 1或2时,使用的是基于线性动态系统最佳控制的方法,该方法由UMTRI的Charles MacAdam在1980年开发[1,2]。本文档中介绍的算法已经过简化和重新设计,可以与CarSim和TruckSim中使用的参考路径一起使用。随着时间的流逝,控制器已经扩展到可解决悬架转向效果(前后)和主动后转向的问题。它也已扩展为支持反向行驶。对通用控制方法进行编程,以在车辆模型中生成方向盘角度。算法流程如图10所示。给定目标路径后,转向控制器会在给定车辆当前状态的情况下计算方向盘角度。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第12张图片

图 10.逻辑流程图

该算法计算最佳控制u,以使车辆参考点的路径与目标路径的偏差最小,并从其它来源(运动学和柔度)中减去前后转向(uf和ur)以获得驾驶员所需的转向uc。后面提供了该方法在转向控制器中的理论和应用。该算法假定多个预览点在车辆X轴方向上均匀分布(图11)。向前移动(Vx> 0)时,每个预览点都有一个局部X坐标:

7ff7d281550eebd44b2e792ee9106ac7.png

其中X ref是DM参考点的本地X坐标,i是间隔编号,T是整体预览时间,m是间隔数量。 相应的位移大约是:

4ab1c07f567562fbb7fa7005b3bc8a74.png

其中 9cd6bf0c365775d93666c71bb41e049c.png (车辆相对于参考路径的航向角)假定在预瞄距离内恒定。当车辆指向增加位移的路径方向时(参数OPT_DIRECTION = +1), 9cd6bf0c365775d93666c71bb41e049c.png是路径航向角 95f7708d0332e2e10f50d9cf531fcbc3.png 和车辆横摆角Y之间的差。  但是,当车辆沿路径指向另一个方向时(朝减小位移方向,OPT_DIRECTION = –1),两个角度之间的差调整为180°。  

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第13张图片

图11.多个预瞄点的几何

给定路径位移S targ,LTARG函数用于获取目标L targ的相应L坐标;然后,将路径坐标S targ和L targ转换为每个目标点的全局坐标X targ和Y targ。然后使用车辆横摆角Y和航向角 9cd6bf0c365775d93666c71bb41e049c.png 获得局部Y坐标:

4999cb671ed59902a0de85b258d11de9.png

等式9和11基于以下假设:参考路径的航向在预瞄范围内是恒定的,并且目标路径和参考路径是平行的。使用十个预览点(m = 10),并且由于悬架运动学和柔顺性,前轮的道路转向是理论控制量u减去转向:

3ae30bea57cc8d2a08b732f39ccce14d.png

公式12基于附录中的公式31,公式12中的变量y targ,i对应于公式11中的YDM。当使用线性动态控制器时,Echo文件中将显示另外两个参数(图12)。使用线性动态控制器时,参数TLAG(行745)可用;它为Steer_DM增加了纯时间延迟。在之前的研究中,这种延迟被用来复制人类驾驶员所观察到的延迟。不过,一般很少使用,除非需要包括延迟,否则建议值为0。在版本2019.1中,对驾驶员模型进行了进一步修订,以包括上一小节中描述的单预瞄控制器,并包括向后驱动时的控制。为此,对内部方程式进行了一些修改。参数OPT_DM_2019提供了一种使用旧的(2019.0及更早版本)方程式的方法,以支持版本到版本的测试。如果车辆行驶模式为-1(向后行驶)或使用单点方法(OPT_DM = 3),则此参数不适用。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第14张图片

图12.具有10个预瞄点的线性模型的DM参数

当设置为零(默认值)时,将使用本文档中介绍的方程式。此外,在向后行驶或使用单点方法(OPT_DM = 3)时,无论OPT_DM_2019参数的值如何,都会使用新的方程式。如果需要从旧版本中复制结果,请将此参数设置为1。这是新旧版本之间的主要区别:1. ∆S的公式10不包含系数:cos( 9cd6bf0c365775d93666c71bb41e049c.png)。2. YDM的公式11不包含除数:cos( 95f7708d0332e2e10f50d9cf531fcbc3.png)。3.没有使用B和H数组的第三个元素(等式33)。4.后转向(主动和悬挂)的影响降低了50%。5.车辆的初始横摆角设置为与参考路径平行,但不包括与指定的LTARG偏移量相关的任何角度。车辆的属性用于计算附录中所示的矩阵系数;这些在Echo文件中作为计算的属性提供(第748 – 753行)。

查看驾驶员转向模型的预瞄点

驾驶员模型转向控制器使用一个(OPT_DM = 3)或十个(OPT_DM = 1或2)预瞄点来确定方向盘角度。提供了一个命令INSTALL_DM_OUTPUTS,以使高级用户能够生成该点的全局X,Y和Z坐标。对于每个点i(i = 1、2,... 10),三个输出变量分别命名为X_DM_i,Y_DM_i和Z_DM_i。将命令放在任何其他黄色字段中以创建这些输出变量。

CarSim和TruckSim都包括示例数据集,这些数据集显示了一个用于单点驾驶员预瞄的球体(图13),并在驾驶员预瞄点显示了具有之前控制选项的10个球体。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第15张图片

图13.带有动画球体的驾驶员模型的十个预瞄点

MultipleMovingObjects库包含使用小球体显示兴趣点的多个数据集。图14显示了支持一个驾驶员预瞄点的设置。其他数据集显示更多兴趣点。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第16张图片

图14.具有移动对象的示例数据集,显示驾驶员预瞄点

在此示例中,INSTALL_DM_OUTPUTS命令被写入其他黄色字段 ①。路径ID设置为0 ④,指示每个对象的水平位置是具有全局X和Y坐标的指定方向。VS Command EQ_OUT ③为每个运动对象提供了这些坐标。将使用ID为CURRENT_ROAD_ID的车辆道路来计算每个对象的Z坐标。但是,在加载此数据集时,可能不知道CURRENT_ROAD_ID。因此,黄色字段设置为0 ⑤,并且初始化完成后,将使用EQ_INIT命令将对象的道路ID设置为CURRENT_ROAD_ID ②。

将闭环驾驶员模型与外部模型一起使用

如果选择了单点选项(OPT_DM = 3),还将创建两个导入变量,以支持高级用户使用VS命令或外部模型(例如Simulink)计算预瞄点的X和Y坐标。假设驾驶员模型只是将转向轮指向该点,则可以通过提供预瞄点的X和Y坐标来控制转向。导入变量具有关键字IMP_X_DM和IMP_Y_DM。另一个选择是使用参数OPT_DRIVER_ACTION(对于高级用户,通过在其他黄色字段中键入关键字和值来设置)。设置OPT_DRIVER_ACTION = 1(默认值)会使驾驶员模型计算方向盘角度并将计算出的方向盘角度应用于转向系统。设置OPT_DRIVER_ACTION = 0会使驾驶员模型计算出用于输出目的的方向盘角度,但是计算出的方向盘角度不会应用于转向系统。由驾驶员模型计算出的方向盘角度在变量Steer_DM中输出。这可用于为外部定义的转向控制系统(如线控转向)提供控制输入。(将其视为来自驾驶员的“转向请求”。)计算出的驾驶员控制可作为导出,以供外部软件(例如Simulink)或VS命令定义的方程式使用。

闭环控制驾驶员模型:GUI界面

闭环转向控制通常使用图15所示的库界面进行配置。界面顶部显示与LTARG可配置函数相关的横向偏移。底部显示DM控制器的属性。

横向目标

界面顶部的控件为DM控制器定义LTARG数据集,或指定移动对象的运动。   ①相对于参考路径的目标,该参考路径根据路径位移S计算L。与大多数可配置函数一样,这可以是常量,系数或非线性表,该表用一组数字以及选择的插值和外推方法来指定。   ②用于为此LTARG数据集设置用户ID的下拉控件。此可配置函数包括用户ID(关键字= LTARG_ID)。ID可以自动设置,也可以指定为999或更高的ID。   ③ 选中此复选框可显示自定义设置的其他字段。高级用户可以输入其他属性或VS命令来扩展模型。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第17张图片

图15.闭环驾驶员模型控制的库界面

闭环驾驶员模型转向控制器

选中复选框 ④后,此界面将激活DM控制器,并提供DM控制器的设置。   ④ Use closed-loop steeringand show parameters复选框. 如果未选中此框,则不会显示所有控件和更高的控件 ⑤(界面下部的所有内容)。如果要创建LTARG数据集而不影响内置驾驶员模型,请取消选中此框。例如,LTARG数据集可用于控制运动对象的位置。选中后,将显示路径跟随器控件,并且将参数LTARG_ID_DM设置为LTARG数据集的LTARG_ID。  ⑤控制设置预瞄时间。下拉控件用于在定义预瞄时间的不同选项之间进行选择(图16)。

e33df94f2c7b942756d42c3af801b860.png

图16.用于定义预瞄时间的选项

当下拉列表设置为Constant(图15)⑥ 时,预瞄时间是恒定的,如黄色字段中所指定。                                                                         

当下拉列表设置为Configurablefunction或Config.function+gain+offset在下拉控件下显示一个链接(图17)。链接的数据集用于名为TPREV的可配置函数,该函数在内部用于计算随速度变化的预览时间T。当选项设置为Config. function + gain + offset,会在偏移量 ⑦和增益 ⑧处显示其他黄色字段。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第18张图片

图17.选择可配置函数时的外观

    ⑥ 固定的预瞄时间(关键字= TPREV_CONSTANT)。仅当下拉控件设置为Constant时,才显示此字段(图15)。

预瞄时间通常设置为0.1到2.0秒之间。一些注意事项:

1.如果使用单个预瞄点(选中了⑨复选框),则通常将预瞄时间设置为小于预瞄时间涵盖十个间隔(不选中复选框)时的时间。

2.更长的预瞄时间会带来更稳定的行为,同时跟踪精度也会降低。

3.如果未选中该复选框⑨,则预瞄时间较短,可以提供更高的跟踪精度,并且可能会失去稳定性。

在低于指定限制的速度下⑫,预瞄是与在低速限制处应用的预瞄时间相对应的固定距离。

   ⑦从表格添加到预瞄时间的偏移量(关键字= TPREV_OFFSET)。仅当下拉列表⑤设置为Config. function + gain + offset时,此字段才可见。使用此选项,可以定义标准形状的标准化表格,并使用增益和偏移值对其进行调整。

   ⑧ 获得变速驾驶员模型预瞄时间(数据库关键字= TPREV_GAIN)。仅当下拉列表⑤设置为Config. function + gain + offset时,此字段才可见。使用它来设置比例因子以乘以表中的值。使用此选项,可以定义标准形状的标准化表格,并使用增益和偏移值对其进行调整。

    复选框以使用单个预瞄点。这在计算转向角的方法之间进行选择。

  1. 选中(OPT_DM = 3)时,将进行转向控制,将前轮指向距离Lprev = Tprev•|Vfwd |。在DM参考点的前面,其中Tprev是预瞄时间。向前行驶时,参考点位于前悬架的中心,向后行驶时,参考点位于后悬架的中心。

  2.  如果未选中(OPT_DM = 1或2),则会使用内置的线性动态车辆模型来计算转向控制,以预测与覆盖DM参考点前方距离Lprev的目标路径的要点相匹配的转向。在这种情况下,将显示更多控件:⑩,⑪和⑮(图18)。

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第19张图片

图18.显示更多选项并带有多个预瞄点

单点方法(OPT_DM = 3)已添加到版本2019.1; 其他两个选项在以前的版本中可用。单点方法更可靠,建议用于大多数仿真,尤其是那些涉及极限条件的仿真。单点的预瞄时间通常应设置为不选中此框时用于十个点的预瞄时间的一半。

    ⑩复选框,带有在使用线性动态模型时使用旧方程式的选项(关键字= OPT_DM_2019)。仅当未选中⑨单点框时,此控件才可见。

行为上的差异通常很小。选中此框时,将使用旧的公式(2019.0及更早版本),以支持版本间验证测试。 

    ⑪带有选项的复选框,可忽略后轮的运动学转向效果(OPT_DM = 2)。仅当未选中⑨单点框时,此控件才可见。提供此功能是为了与VS Solvers的旧版本(2004年之前)兼容,但不建议这样做.

  ⑫驾驶员转向模型中对速度敏感度的低速限制(关键字= VLOW_DRIVER)。对于超过此限制的速度,预瞄距离与速度成比例。取消选中⑨单点复选框后,将使用取决于速度的内部动态车辆模型(二维动态模型)。如果车速降至该限制以下,则预览基于该速度。

当速度小于0.1m / s(0.36 km / h)且未选中 ⑨单点框时,来自控制器的方向盘角度将被冻结。

 ⑬驾驶员模型的最大方向盘角度(关键字= A_SW_MAX_DM)。这指定方向盘可以从中心向任一方向旋转的最大角度。

 ⑭ 最大方向盘转角率(关键字= AV_SW_MAX_DM)。这指定驾驶员模型可以在任一方向上转动方向盘的最大角速度。.

 ⑮ 复选框以包括驾驶员滞后。仅当未选中⑨单点框时,此控件才可见(图18)。选中“驾驶员滞后”框时,将显示驱动程序滞后的相邻黄色字段(关键字= TLAG_DM)。由驾驶员模型生成的方向盘角度会延迟此时间量,以模拟人的神经肌肉延迟。实际值约为0.15秒。较大的值可用于仿真受伤的驾驶员。

随着滞后的增加,驾驶员-车辆系统趋于过度校正至不稳定点。

如果用户尝试沿着一条路径而不尝试仿真驾驶员响应动力学,则建议将其值设置为0.0。在这种情况下,只需取消选中该框。

 ⑯选中该复选框以使驾驶员模型通过扭矩转向。选中后,将显示另外三个字段:,和(图19)。DM仍会计算目标方向盘角度,但是,无论隐含扭矩如何,DM都不会应用它,而是使用控制器根据需要生成方向盘扭矩,以生成控制器请求的角度。 

b2619fcf2dc683033b6ac05f6546909d.png

图19.当驾驶员模型通过扭矩转向时,将使用更多参数

  ⑰DM可以应用的最大方向盘扭矩(关键字= M_TRQ_CON_MAX_DM)。

  ⑱DM用来产生转向扭矩的扭转刚度(关键字= K_TRQ_CON_DM)

  ⑲DM使用扭转阻尼来产生转向扭矩(关键字= D_TRQ_CON_DM)。

VS Visualizer中目标路径的可视化

界面的右下部分具有用于在动画中目标路径的位置显示虚线的控件。

 ⑳选中该框时,将显示其他控件以指定虚线的外观。

为了显示线,将根据这些控件中设置的值自动为VSVisualizer生成矩形对象。三个控件指定生成的虚线形状的大小:以目标路径为中心的以米为单位的线宽,每个虚线段的长度(线段之间的间距与线段长度相同)以及分辨率。每个片段由一个或多个形状组成,其中每个片段都被分解为长度=分辨率的形状。较小的值可使显示的线段更紧贴山坡和道路高程变化,但可能会大大增加VS Visualizer加载的数据量。参数“ dZ”指定虚线在3D路面上方“浮起”的高度。将形状放置在相同的高度会导致纹理之间的干扰,从而导致图像质量下降和闪烁。垂直高度减少即可避免这种情况。通过在颜色字段中输入RGB值或从调色板控件中选择一种颜色来指定。如果驾驶员的参考路径未循环,则将生成形状以覆盖仿真中涵盖的仿真位移的范围。为了确定这一点,VS浏览器读取运行开始和结束时生成的Echo文件,并扫描关键字SSTART和SSTOP。这些关键字总是出现在两个Echo文件中。第一个是SSTART,它定义了运行开始时的仿真位移;第二个,SSTOP,定义运行结束时的仿真位移。如果驾驶员的参考路径已循环,则会生成形状以覆盖整个循环。

运行开始时从数据中获取用于生成形状的路径信息。如果在运行过程中使用“事件”或“ VS命令”更改了路径,则不会显示这些更改。

使用LTARG数据集

可配置函数LTARG由驾驶员模型使用,也可用于控制模仿交通车辆或其他自定义应用程序的运动对象。当前活动LTARG数据集的数量是带有关键字N_LTARG的系统参数。在VS规划求解读取任何数据集Parsfile之前,N_LTARG的值为零。每次从该库中获取数据集时(控制:闭环驱动模型),如果自动设置ID或指定了新的自定义ID,都会添加一个新的数据集。如VS命令章节中所述,还可以使用VS命令SET_ILTARG_FOR_ID添加新的LTARG数据集。每个数据集都有一个由参数LTARG_ID指定的ID。例如,第一个数据集的ID为LTARG_ID(1),对于第二个数据集是LTARG_ID(2),依此类推。

LTARG_ID_DM是驾驶员模型使用的LTARG数据集的ID号。它的默认值为1,可以设置为N_LTARG以下的任何正数,也可以设置为与现有数据集的LTARG_ID匹配的任何值。如果设置为零,则距路径的横向偏移将保持为零。在创建多个LTARG数据集以将特定目标分配给驾驶员模型之后,可以通过指定一个值来覆盖LTARG_ID_DM值。VS事件中,LTARG_ID_DM也可能会更改。

(待续...)

未经作者许可,禁止转载

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第20张图片

vs快速注释_CarSim仿真快速入门(十一)—驾驶员模型(1)_第21张图片

你可能感兴趣的:(vs快速注释)