CarSim和TruckSim包含一个内置的闭环速度控制器(SC),它将根据需要调整油门和制动,以响应目标速度或加速度。如果没有动力总成(OPT_PT = 0,图20),则SC将使用简单模型生成车轮扭矩,该模型具有可用功率和车桥上驾驶员扭矩分配的参数。
图20.用于速度控制的简单动力总成选项
安装速度控制器
速度控制器最初未安装;必须使用命令INSTALL_SPEED_CONTROLLER进行安装。在大多数情况下,通过链接到本节稍后介绍的三个库之一中的速度控制器Speed Controller数据集或在“RunControl”界面上指定目标速度来安装速度控制器。但是,在某些情况下,仿真将从将油门设置为开环模式开始,然后通过触发VS事件切换到使用速度控制。仿真开始后无法安装速度控制器(安装微分方程式)。对于在开始时不使用SC但在以后的运行中将使用SC的仿真,可以使用Vehicle界面上的复选框(图21)来确保在仿真该特定车辆时SC始终可用。另一个选择是将命令INSTALL_SPEED_CONTROLLER放入“Run Control或Procedure数据集的其他黄色字段中。
图21.车辆界面上的复选框,用于在车辆上安装SC
表5列出了SC提供的输出变量。 除非安装了SC,否则这些变量不可用。请注意,导入版本可用于两个命令变量。
表5.与速度控制器关联的输出变量
短名称 | 单位 | 全名称 | 输入 |
Ax_SCcmd | g | 速度控制器的加速度命令 | IMP_AX_SC |
Ax_SCrq | g | 速度控制器的加速度需求 | |
Pwr_SC | kW | 速度控制的功率 | |
Pwr_SCrq | kW | 速度控制的功率需求 | |
VxTarget | km/h | 目标速度 | IMP_SPEED |
Vx_Err | km/h | 速度控制偏差 | |
Vx_IErr | m | 速度控制偏差积分 |
SC的参数在Echo文件中一起列出(图24)。始终为SC和移动对象使用的SPEED_TARGET可配置函数提供支持。最多可以为此功能定义200个数据集,并显示其数量(请参见图中的753行)。如果通过命令INSTALL_SPEED_CONTROLLER安装,则该命令将在下面列出(第756行)。仅在安装了控制器的情况下,才显示注释和其余参数。
图22. Echo文件的速度控制器部分
参数OPT_SC指定SC的模式(行763)。根据模式,将显示其他参数。可以将目标速度指定为时间和位移的预定义函数,或者可以通过预览目标路径并考虑沿该路径的曲率以及路面的3D属性(OPT_SC = 4)来动态计算目标速度。另一种选择是SC使用加速命令(OPT_SC = 5)。
速度控制器的操作
使用时,SC具有两个用于控制车辆的内部步骤:1.根据目标速度或加速度以及车辆运动的当前状态请求纵向加速度(Ax_SCrq)。2.使用动力总成和可能的制动器在主轴单元的车轮上施加旋转扭矩,以使车辆向Ax_SCrq加速。
关于速度、加速度和俯仰
CarSim和TruckSim模型中提供了几个变量来表示纵向速度和加速度(表6)。
表6.牵引车辆加速度和速度的输出变量
Name | Description | Speed controller |
Ax | ISO / SAE方向上的总单位质量CG的加速分量 | 未使用,因为X方向是水平的,不适合山丘 |
Ay | ||
Az | ||
Ax_Rd | VS道路方向上总单位质量CG的加速度分量 | 当OPT_SC= 5时,SC将使用Ax_Rd |
Ay_Rd | ||
Az_Rd | ||
Ax_SM | 簧载质量CG在X,Y,Z方向上的加速度分量 | 未使用,因为X方向受车距影响 |
Ay_SM | ||
Az_SM | ||
Vx | ISO / SAE方向上的总质量CG的速度分量 | 未使用,因为X方向是水平的,不适合山丘 |
Vy | ||
Vz | ||
Vx_Rd | VS方向上总单位质量CG的速度分量 | 由于版本<2018.0中的时间滞后而未使用 |
Vy_Rd | ||
Vz_Rd | ||
Vx_SM | 物体X,Y,Z方向上簧载质量CG的速度分量 | 未使用,因为X方向受车距影响 |
Vy_SM | ||
Vz_SM | ||
Vxz_Fwd | sqrt(Vx_SM^2 + Vz_SM^2) | 当OPT_SC= 1, 2, 3, 4时SC使用Vxz_Fwd |
与其他多体模型一样,加载的簧载质量CG的速度和加速度是基于局部固定的X-Y-Z轴方向内部使用的。X轴受俯仰影响,而俯仰又受道路坡度(山坡),车辆负载和动态俯仰影响。SC内未使用Vx_SM和Ax_SM。ISO / SAE轴方向(从全局XYZ轴开始,然后通过车辆横摆绕Z轴旋转)用于获取总车辆质量的加速度和速度的XYZ分量,包括车轮的瞬时位置和车轮等非簧载质量的其他部分。由于未考虑道路坡度,因此SC中既未使用Vx也未使用Ax。Vxz_Fwd速度是几年前专门针对SC使用的。尽管Z分量包括动态行驶运动,但这些运动不在SC的频率响应范围内,并且不会降低性能。另一方面,由于与地面坡度或车辆负载相关的准静态螺距,Vz_SM的稳定分量可确保Vxz_Fwd速度与平行于道路的簧载质量CG的速度匹配。VS道路轴的方向应使X和Y轴在与车辆空气动力学参考点匹配的点处与路面平行。在加速控制模式下(OPT_SC = 5)运行时,SC中使用Ax_Rd加速。直到最近版本(版本2018.0),计算变量的内部时间仍使Vxz_Fwd比Vx_Rd成为SC中更好的选择。
基于目标速度获得加速度请求
对于前四个选项(OPT_SC = 1、2、3、4),SPEED_TARGET可配置函数用于确定目标速度。如果使用路径预览选项,则使用SPEED_TARGET函数来计算最大速度限制,该最大速度限制将基于预测的加速度而降低。否则,SPEED_TARGET函数将提供目标,并且控制器使用反馈来控制动力总成和制动。图23显示了用于示例双移线操纵的SC参数,在该操纵中,速度或多或少是恒定的。
图23.用于双移线示例的速度控制器参数
当OPT_SC = 1、2或3时,将使用SPEED_TARGET函数获得SPEED_TARGET_ID与参数SPEED_ID_SC匹配的数据集的目标速度(第772行)。
给定目标速度Vtarget,控制器使用以下公式计算所需的加速度:
公式中:
速度在内部以m / s表示,系数Kp, Ki和 Kp3定义为使所需加速度AxSCrq无量纲(g)。 这些系数分别出现在带有关键字SPEED_KP,SPEED_KI和SPEED_KP3的Echo文件中(图23)。
关于集成控制
当目标速度具有恒定或缓慢变化的值时,积分控制会将速度误差降至零。纵向速度的积分是纵向距离,因此,如果距离误差Vx_IErr累积,速度将相应地进行调整。请注意,积分控制还增加了动态的闭环控制系统,如果目标速度发生较大变化,可能会导致过冲和不稳定。为解决此问题,如果速度Vxz_Fwd改变符号,则控制器始终将积分Vx_IErr重置为零。此外,控制器具有两个用于处理其他情况以重置Vx_IErr的参数:OPT_AUTO_RESET_IC(图23中的第767行)和VX_IERR_DEAD_SC(第776行)。仅当SPEED_KI为非零时,这些参数才会显示在Echo文件中。当OPT_AUTO_RESET_IC = 1时,当Vx_Err改变符号且Vx_IErr的幅度大于“死区”参数VX_IERR_DEAD_SC时,控制器将自动将Vx_IErr重置为零。对于大多数示例,默认值(OPT_AUTO_RESET_IC= 1,VX_IERR_DEAD_SC = 1m)效果很好。它们没有链接到GUI控件,但是高级用户可以通过其他黄色区域来更改它们。
获得目标速度
当OPT_SC = 1、2或3时,目标速度由SPEED_TARGET可配置函数使用其SPEED_TARGET_ID值与SPEED_ID_SC匹配的数据集作为常数或时间,位移或两者的函数提供。当OPT_SC = 4时,通过预览车辆前方转向控制器的路径来获得目标速度。(仅当转向控制器处于激活状态时,此选项才可用:OPT_DM>0。)在此模式下使用更多参数(图24)。Echo文件此部分顶部的注释提到了与速度控制相关的可配置函数:与SPEED_TARGET一起,还有函数SPEED_AX_BRAKE,SPEED_AX_THROTTLE,SPEED_AY_LEFT和SPEED_AY_RIGHT。这些函数的数据集与其他可配置函数一起按字母顺序在Echo文件中列出。SC使用目标路径,基于以下考虑因素计算目标速度:1. 目标速度限制为使用SPEED_ID_SC参数标识的数据集使用SPEED_TARGET函数定义的速度限制。
图24.由INSTALL_SPEED_CONTROLLER命令创建的参数
2. 可以依次降低目标速度,以使横向加速度Ay保持在使用可配置函数SPEED_AY_LEFT和SPEED_AY_RIGHT分别为左转和右转指定的限制内。这些可以是位移函数和速度函数。3. 在接近降低的速度以考虑实际制动时,可能会降低目标速度,以将组合的纵向和横向加速度(分别为Ax和Ay)保持在指定范围内。减速极限是从可配置函数SPEED_AX_BRAKE(位移和速度的函数)获得的。4. 在节气门使用期间可能会降低目标速度,以将纵向和横向的组合加速度保持在指定的范围内。前向加速度限制是从可配置函数SPEED_AX_THROTTLE获得的,该功能是位移和速度的函数。5. 可以通过使用参数OPT_SC_3D启用路面坡度和垂直方向来调整可接受的加速度水平。 6. 基于参数OPT_SC_SKILL,可以通过三种方式之一确定横向和纵向加速度的可接受组合,可以将其赋值为0、1或2(图25)。
图25.用于组合横向和纵向加速度的三个级别
例如,图26显示了来自VS Visualizer的两个曲线图,用于ADAS场景中的车辆速度和加速度,该场景包括向右转弯带有绿色交通信号灯和美国的限速标志,其速度指定为mi/h单位。顶部的图显示了控制器的目标速度以及车速Vx(ISO / SAE前进速度)和Vxz_Fwd。底部图显示了所需的加速度Ax_SCrq和实际加速度Ax。在这种情况下,SC处于路径预瞄模式(OPT_SC = 4),最大目标速度根据速度限制标志进行调整。在10s时减速至11 mi/h是基于加速度限制和路径预瞄。通过使用转向控制器的目标路径的水平几何形状以及路面高程来分析道路几何形状。对于用于图24和图26的示例,预瞄从车辆位置(SPEED_PREVIEW_START = 0)开始,并且以1m(SPEED_PREVIEW_STEP)的间隔覆盖100m(SPEED_PREVIEW)的距离。正在使用三个点的中弦偏差评估驾驶员路径的曲率,而外部点之间的距离为4m(SPEED_CURV_LENGTH)。当考虑3D表面特性(OPT_SC_3D = 1)时,将使用相同的采样点来估计垂直曲率。
关于加速度控制
速度控制器具有加速控制模式(OPT_SC = 5),其中未使用用于生成Ax_SCrq的上述公式。而是可以通过VS Commands或通过导入(IMP_AX_SC)直接设置变量Ax_SCcmd。使用此选项时,没有目标速度,因此没有涉及指定目标速度或使用速度误差的参数。 图27显示了OPT_SC = 5时Echo文件的SC部分如何显示。早先看到的大多数参数(图24)都消失了,但显示了一个新参数:ACCEL_KP_SC(774行)。
在这种模式下,获得Ax_SCrq(AxSCrq)的控制器方程式很简单:
公式中 KAcc 是参数ACCEL_KP_SC 和AxRd 是与道路路面属性Ax_Rd平行的车辆的纵向加速度。
图26.显示ADAS场景的速度控制的图
图27.选择加速控制时的Echo文件
图28显示了一个示例,该示例具有三个加速度,其中纵向加速度作为SC的命令被导入。
根据需求加速度获得节气门开度和制动踏板深度
给定请求的加速度Ax_SCrq,SC生成制动和动力总成请求。如果安装了动力总成(OPT_PT> 0),则SC将使用油门请求动力。 如前所述(请参见图20),当OPT_PT = 0时,将使用简化的动力总成模型,其中仅涉及可用的动力参数PMAX_SC以及后轴(对于CarSim为R_REAR_DRIVE_SC)或每个轴(R_DRIVE_SC)提供的驱动比。((1),R_DRIVE_SC(2),…对于TruckSim)。 在这种情况下,将为每个轴计算的驱动扭矩并直接应用。
图28. OPT_SC = 5时的加速度变量图
如果安装了动力总成,则在OPT_SC_ENGINE_BRAKING = 1时使用发动机制动。当OPT_SC = 1、2、3或5时,制动系统是可选的,并通过OPT_BK_SC参数来确定。如果OPT_BK_SC = 0,则SC的行为类似于典型的巡航控制选项;踩刹车时,SC被禁用。如果OPT_BK_SC = 0,则允许SC制动。SC始终允许在路径预览模式下使用制动器(OPT_SC = 4)。几个SC参数用于确定制动控制(图29)。参数BK_PERF_SC是一个系统级系数,将车辆减速与主缸制动控制压力相关联。假设SC是一个闭环控制器,则该系数不需要是完美的值-只是一个近似值。如果将制动系统设置为使用踏板力作为主要输入,则需要第二个系数将踏板力与主缸压力相关联:FPD_PERF_SC。SC可用的最大控制压力由参数PBK_CON_MAX_SC指定。
图29.与制动相关的SC参数
在版本2018.1,发现涉及参数BK_PERF_SC的内部用法的错误。 在2018.0及更早版本中,系数乘以G(9.80665 m / s2)。假定该系数是一个近似值,结果表明,许多示例仿真都可以以任意一种方式执行。但是,其他要求系数更紧密地表示系统行为。 在这些情况下,使用旧数据集时的首选解决方案是将值乘以G以复制旧行为。参数OPT_SC_2018提供了另一个选项,它将在内部执行乘法。在执行版本间验证研究时,这可能会有所帮助。
使用目标速度的速度(闭环):GUI界面
图30显示了用于根据时间和/或位移来指定目标速度的界面。界面的顶部显示了SPEED_TARGET可配置函数的数据集。底部显示了用于车辆的闭环速度控制器的属性。
图30.速度目标和闭环速度控制器参数
这是一个双重用途的库,与前面描述的“闭环转向”库相同。 它用于定义由移动对象使用的SPEED_TARGET数据集,或用于涉及事件的高级仿真。 在这些情况下,不需要有关SC的信息。
第二个目的是设置大多数SC参数。
目标速度
该界面具有用于设置可配置函数的典型控件,该函数涉及两个独立变量。 在使用函数SPEED_TARGET的情况下,计算出的变量是目标速度,主要自变量是时间,次要自变量是位移。内置的闭环速度控制器使用SPEED_TARGET函数,还用于仿真交通车辆,行人等的移动物体。VS求解器最多支持200个SPEED_TARGET数据集。这些包括用户ID号,可以帮助管理多个数据集的使用。
①目标速度的函数类型下拉列表。与大多数可配置函数一样,它可以是常量,系数,由一组数字指定的非线性表以及插值和外推方法的选择,或者是VehicleSim浏览器参考手册和VehicleSim解算器手册中所述的符号方程式。如果将计算方法设置为除2D插值方法或符号方程式以外的任何方法,则将显示其他控件以定义对位移的灵敏度②.
②用于指定目标速度对位移灵敏度的控件。如果由顶部控件 ①指定的函数类型不是2D函数或方程式,则将显示附加控件,用于通过辅助函数指定位移对目标速度的影响。这些选项包括常数,系数和几种表格插值方法。可以将辅助函数的贡献(归因于位移)添加到主要函数的贡献(归因于时间)或相乘。
③用于设置用户ID的下拉控件。此可配置函数包括用户ID(关键字=SPEED_TARGET_ID)。ID可以自动设置,也可以指定为999或更高的ID。VehicleSim浏览器参考手册中介绍了有关为可配置函数设置和使用ID号的详细信息。
闭环速度控制器的设置
SC的主要参数是通过界面下部的控件设置的。
④Use the closed-loop speedcontroller and show parameters复选框. 如果未选中此框,则不会显示所有控件和更高的控件⑤(界面下部的所有内容)。如果要创建SPEED_TARGET数据集而不影响内置速度控制器,请取消选中此框。例如,SPEED_TARGET数据集可用于事件或用于控制移动对象的速度。
选中后,将命令INSTALL_SPEED_CONTROLLER写入Parsfile中,以确保已嵌入以下参数。
⑤比例增益系数Kp(关键字= SPEED_KP)。典型值约为0.5。将该值设置得较高会导致驱动扭矩的调整速度更快。尽管此增益控制控制响应的速率,但不会将速度误差强制为零。为了使车速与目标速度匹配,需要积分控制⑥。
⑥积分增益系数Ki(关键字= SPEED_KI)。当目标速度具有恒定或缓慢变化的值时,积分控制会将速度误差降至零。纵向速度的积分是纵向距离,因此,如果距离误差Vx_IErr累积,速度将相应地进行调整。当目标速度恒定时,典型的Ki值为0.5 -1。
⑦三次增益系数Kp3(关键字= SPEED_KP3)。 当目标速度和车辆速度之间存在较大差异时,非线性三次控制会产生积极响应。 当车速接近目标速度时,立方效应变为
微不足道。 对于恒定或缓慢变化的速度,可以将该系数的值设置为零。 对于更大的动态速度变化,典型值为1.0。
⑧在速度控制中考虑发动机制动的选项(关键字= OPT_SC_ENGINE_BRAKING)。 当仿真车辆包括完整的动力总成时,使用当前发动机转速(RPM)的发动机特性估算节气门。 选中此框时,还将检查引擎表中的当前速度和零油门,以便在低油门和制动之间提供更好的过渡.
⑨在速度控制中包括制动的选项(关键字= OPT_BK_SC)。 选中此框时,允许SC使用制动器使车辆减速。
如果未选中此框,则会发生两件事:(1)施加制动会禁用速度控制,从而模仿巡航控制的典型行为。 (如果需要,可以使用“ VS事件”再次打开速度控制。) (2)速度控制器使用与加速相同的减速控制(通过节流阀或直接将扭矩施加到驱动轮,这取决于车辆是否具有完整的或“最小”的动力总成)。
⑩如果在较早版本(2018.0或更早版本)中设置了制动性能参数⑪,则可以选择缩放该参数。在旧版本中,控制器存在缩放错误,在该错误中,无意中将参数乘以G(9.80665)。如果选中此框,则将应用旧的缩放比例。
⑪闭环控制器中使用的近似制动系统性能(关键字= BK_PERF_SC)。该值将减速度与来自主缸的制动压力相关联。控制器使用的反馈方法可以补偿此参数中的误差,因此通常大约需要一个估算值。(可以通过执行带开环制动控制的停止测试来确定。)仅在选中此框⑨时此字段才可见。
⑫制动踏板力至主缸压力增益(关键字= FPD_PERF_SC)。该值仅是一个合理的估计值,可以通过执行带开环制动控制的停止测试来确定。仅当选中此框⑨时,此区域才可见。仅在“制动系统”界面上选择“踏板力”时,才使用此参数。
⑬闭环控制器允许的最大主缸压力(关键字=PBK_CON_MAX_SC)。
⑭停止速度(关键字= VLOW_STOP)。 仿真持续进行,直到出现几种情况之一。 一种情况是绝对车速降至该阈值以下。
必须给最小速度一个小于初始车速或目标速度的值。 为防止由于低速而导致仿真停止,请将阈值设置为负数(例如–1)。VLOW_STOP是模型参数,显示在Echo文件顶部附近的区域中,标题为“车辆初始化,限制和重力”。 可以从涉及速度控制或制动的多个界面中设置此参数。
闭环速度VS位移GUI界面
该软件的较旧版本具有单独的选项,用于将目标速度指定为时间或位移的函数(但不能同时使用两者)。为了提供向后兼容性,包含了一个单独的库界面,该界面仅将目标速度定义为位移的函数。 它的外观几乎与图30所示的界面相同,但是在两个方面有所不同:
它不包括涉及时间和位移的2D插值方法。
它不支持一维表函数,因此对时间不敏感。
使用此界面时,效果与为函数类型①选择常量选项并将值设置为零,以及选择Add选项②以组合时间和位移的一维函数的效果相同。
使用路径预瞄速度闭环控制的GUI界面
速度控制器可以将目标速度计算为参考目标路径中曲率的函数,并结合驾驶员的能力,技能以及可能的3D路面特性。这是通过“Control: Speed (Closed Loop) Using Path Preview”界面(图31)完成的。使用此库中的数据集时,SC设置为在路径预瞄模式下运行(OPT_SC = 4)。 在这种情况下,控制器会通过预瞄车辆前方的目标路径来计算目标速度,如前面小节所述。
图31.使用路径预瞄进行速度控制
该界面底部的用户控件与其他界面上显示的控件相同,并在前面的小节中进行了描述(图30和图31中的项目(⑤ -⑫ ))。制动控制是路径预瞄模式的基础,不能禁用; 因此,此界面上不存在用于禁用制动器的复选框(图30中⑨)。使用路径预瞄选项进行操作时,还不包括在达到最小速度时停止运行的选项。 因此,不包括最小速度区域(图30⑬)。
速度上限限制
①控制器设置的最大目标速度是使用SPEED_TARGET可配置函数确定的,该函数可以从前面各节中描述的库界面中进行设置。 可以在此处使用常量创建数据集,也可以链接到随目标位移速度改变函数的数据集。 使用下拉控件在这些选项之间进行选择。
如果选择了常量,则使用黄色区域指定值,如图31所示。还需要一个ID来标识将使用哪个SPEED_TARGET数据集。 使用下拉控件有两个选项③。如果选择了函数,则可使用链接从两个库之一中选择一个数据集,以将目标速度设置为位移的函数(例如,图30)。闭环控制器增益(⑤ -⑫ )是从链接的SPEED_TARGET数据集中读取的,但将被从与“路径预瞄”界面中的“目标速度”相关联的parsfile中读取的增益值覆盖。
③用于设置用户ID的下拉控件。 此可配置函数包括用户ID(关键字= SPEED_TARGET_ID)。ID可以自动设置,也可以指定为999或更高的ID。VehicleSim浏览器参考手册中介绍了有关设置和使用ID号用于可配置功能的详细信息。
加速度限制:技术水平
用于确定目标速度的加速度限制基于技术水平和技术限制。
⑭可以组合横向和纵向加速度的三个技能级别的下拉列表,以便将它们与指定的加速度极限进行比较。 这些被指定为技能级别0、1和2:
0 Ax和Ay不合并。 调整目标速度以允许纵向或横向加速,但绝不能同时加速。1 Ax和Ay使用直线组合,可以将横向和纵向加速度进行某种组合。 但是,组合加速度没有像在纯纵向或纯横向加速度中那样利用足够的可用摩擦力。2 Ax和Ay使用摩擦椭圆进行组合,无论总加速度矢量的方向如何,均可始终使用可用摩擦。在预瞄路径时用于组合横向和纵向加速度的方法没有考虑到将要发生的车辆的详细动态。 它们仅考虑路径的几何形状和沿路径遵循的速度。
由于动态影响,车辆的实际加速度可能会超过指定的极限,特别是在设置了激进极限并仿真了较宽的速度范围时。
⑮复选框以说明路面3D几何形状。当横向和纵向加速度可以与技能级别1或2结合使用时,此框可用。选中时,控制器会考虑沿目标路径的路面3D属性:倾斜角,坡度角和曲率法线到表面。如果未选中,则仅考虑目标路径的水平曲率来计算目标速度。
几何的一些示例效果包括:•根据倾斜角度调整横向加速度极限。转入转弯时允许较高的速度,转出转弯时需要较低的速度。•根据垂直道路曲率调整纵向加速度极限。下坡时允许更多的油门加速度,而上坡时则允许更多的制动加速度。•根据垂直于路面的曲率调整加速度极限。当弹簧压缩增加垂直于路面的力时,允许较高的横向和纵向加速度。当减小垂直于表面的力时,必须使用较低的横向和纵向加速度限制。
加速度限制:侵略型驾驶员
SC的侵略性由四个加速度限制(油门,制动,左转和右转)定义。 四个限制中的每个都可以指定为常数或非线性可配置函数。提供了一个下拉列表,可以在这些选项之间进行选择(图32)。
图32.选择一个常量或指向可配置函数界面的链接
如果选择了常数,则会出现一个黄色区域(例如⑰)。 如果选择了该函数,则会出现一个指向Generic Table库的数据链接(例如⑯)。 稍后描述示例函数数据集(图34)。使用可配置函数时,必须指定与加速度限制关联的关键字(SPEED_AX_THROTTLE,SPEED_AX_BRAKE,SPEED_AY_LEFT或SPEED_AY_RIGHT)。右键单击下拉控件,以查看与该控件关联的关键字。例如,右键单击油门下拉控件以查看关键字为SPEED_AX_THROTTLE(图33)。四个可配置函数中的每个功能都有六个相关参数,可用于转换功能中涉及的三个变量:测站,速度和加速度极限具有增益和偏移量。 这些在“Transforming an Acceleration Limit Shaping Function”小节中进行了描述。
图33.右键单击以查看可配置函数的root关键字
⑯限制节气门施加期间允许的纵向加速度。该限制可以指定为常数(关键字= SPEED_AX_THROTTLE_CONSTANT),也可以指定为非线性可配置函数(根关键字= SPEED_AX_THROTTLE)。
⑰限制制动期间允许的纵向加速度。该限制可以指定为常数(关键字= SPEED_AX_BRAKE_CONSTANT),也可以指定为非线性可配置函数(根关键字= SPEED_AX_BRAKE)。
⑱限制左转弯时允许的横向加速度。该限制可以指定为常数(关键字= SPEED_AY_LEFT_CONSTANT)或非线性可配置函数(根关键字= SPEED_AY_LEFT)。
⑲限制在右转时允许的横向加速度。该限制可以指定为常数(关键字= SPEED_AY_RIGHT_CONSTANT),也可以指定为非线性可配置函数(根关键字= SPEED_AY_RIGHT)。
路径预瞄长度
目标路径的预瞄配置了四个长度参数。
⑳用于计算线段中点曲率的路径线段的长度(关键字= SPEED_CURV_LENGTH)。控制器在考虑参考路径的几何形状以及先前描述的横向偏移目标的情况下计算曲率(请参阅图15)。如果使用较短的长度,则控制器将感测高曲率的较短部分,并相应降低目标速度。如果使用较长的长度,则控制器将仅在持续转弯时降低速度。一条道路的典型值为50 m。
指定的段长度在内部四舍五入为预瞄间隔的整数倍㉓。
㉑路径预瞄开始(SPEED_PREVIEW_START)。预瞄的参考路径部分在车辆簧载质量坐标系原点(通常是前轴中心)的起点开始此距离。将起点设置在车辆前方会在一定程度上补偿车辆响应中的动态滞后。
指定的距离在内部四舍五入为预览间隔的整数倍㉓。
㉒路径预瞄的总长度(SPEED_PREVIEW)。这定义了参考路径的预瞄部分。它应该至少是从最大允许速度减速到指定极限加速度下最慢速度所需的距离。对于复杂的路径以及激进的加速度设置,较长的距离有时会带来更好的结果。
指定的距离在内部四舍五入为预瞄间隔的整数倍㉓.
㉓用于计算预瞄路径上的路径曲率和目标速度的时间间隔(SPEED_PREVIEW_STEP)。 其他三个长度在内部舍入为该值的整数倍。因此,它定义了其他长度的分辨率。典型值为1或2 m。
附加控制
㉔㉕㉖㉗㉘㉙㉚复选框以显示两个可选控件:黄色区域和杂项链接
其它项。使用它来添加VS命令,包括与SC相关的其他信息。
杂项链接。使用它来添加供SC使用的信息。
使用通用表界面
如果将一个或多个加速度极限(⑯-⑲)指定为速度的函数,则将链接到GenericTable库。该界面(图34)可用于表示VS求解器中使用的几乎所有可配置函数。 在图中,它用来表示SC中的油门加速极限。关键字用于识别函数。
①此注释字段标识其值由可配置函数计算的变量。该文本不会发送到VS Solver程序,而是会在界面上记录内容。
②必须设置函数的root关键字,数学模型才能将数据正确分配给可配置函数。通常,Echo文件是关键字的很好参考,因为根关键字写在为每次运行创建的Echo文件中。 对于“路径预瞄”中的速度控制器,也可以通过右键单击极限加速度的下拉控件来找到关键字(图33)③。
VS规划求解读取的解析文件中写入的关键字会根据所选的计算类型进行扩展.
③下拉控件,用于指定与主要变量关联的计算类型(常数,线性插值,2D表等)。 在此示例中,对位移没有敏感度;相反,其限制是车速的函数。 因此,选择常数选项并指定值1,以便可以将其乘以速度。
通过这些选择,写入发送到VS解算器的parsfile中的关键字为SPEED_AX_THROTTLE_CONSTAN。
图34 定义加速度限制是速度和位移的函数
④复选框,用于指示存在一个次级自变量(速度)。
⑤此注释字段标识可配置函数的辅助变量。该文本不会发送到VS Solver程序,而是会在界面上记录内容。
⑥第二个函数的Root关键字用于计算第二个独立变量的效果。
⑦下拉控件,指定是将两个函数相加还是相乘。
⑧下拉控件,用于指定与第二个变量关联的计算类型(常数,线性插值等); 在这种情况下,就是车速的差值函数。
通过图中所示的选择,发送到VS求解器的写入parsfile的文本行为SPEED_AX_THROTTLE_V_TABLE LINEAR.
⑨表格数据用于计算加速度限制.
变换加速度限制函数
用于定义加速度极限的四个可配置函数中的每个函数均包含六个参数,这些参数可用于转换与该函数相关的三个变量。 这类似于可用于开环控件的缩放比例,但是在这种情况下,扩展到另一个维度。
公式中:
1. f是使用用户界面上定义的方法的函数(例如,图34中指定了2D线性插值)。2. S和V是界面上显示并用于计算f的自变量(速度和位移);依次将S定义为位移和两个参数sstart和sscale的函数,将V定义为车速和两个参数vstart和vscale的函数;3. gain增益是应用于函数的无量纲乘数;4. offset 偏移量是应用于函数的偏移数值.表7显示了四个可配置函数的参数的命名约定,这些函数定义了SC的加速度极限,对应于公式18中引用的六个参数。在表中,类型可以是AX_THROTTLE,AX_BRAKE,AY_LEFT或AY_RIGHT.
表7.加速度限制可配置函数的关键字命名约定
关键字 | 类型例子= AX_THROTTLE | |
Function | SPEED_type | SPEED_AX_THROTTLE |
Gain | SPEED_ type_GAIN | SPEED_AX_THROTTLE_GAIN |
Offset | SPEED_ type_OFFSET | SPEED_AX_THROTTLE_OFFSET |
Sstart | SSTART_ type | SSTART_SPEED_AX_THROTTLE |
Sscale | SSCALE_ type | SSCALE_SPEED_AX_THROTTLE |
Vstart | VX_START_ type | VX_START_SPEED_AX_THROTTLE |
Vscale | VX_SCALE_ type | VX_SCALE_SPEED_AX_THROTTLE |
通常可以通过在“其它项”中设置缩放参数,将“通用表”界面(图34)中的数据视为成形函数并进行转换。Control: Speed (Closed Loop) UsingPath Preview screen(㉕图31)上的黄色字段区域。例如,设置VX_SCALE_SPEED_AX_THROTTLE = 1.2,将表中覆盖的速度范围乘以1.2,以将现有的加速度限制应用于具有更高性能引擎的车辆。
与开环制动和节气门命令的交互
使用SC不会禁用开环制动控制。如果指定了非零的开环制动命令,无论是通过使用内置可配置函数的链接数据集,VS命令,使用制动导入变量,还是通过其他方式,任何开环制动都将通过以下方式添加到命令中:闭环速度控制。油门也是如此。如果车辆指定了完整的动力总成(而不是内部的最小动力总成),则所有对开环节气门的贡献(内置可配置功能,VS命令,导入变量等)都将从SC添加到节气门命令中。这意味着可以将开环控制与闭环速度控制一起使用,以增强闭环控制逻辑的性能,以仿真例如干预系统以补充或覆盖人为驾驶员命令的控制系统。在VS事件之间在开环和闭环控制之间进行切换时,除非打算进行此类增强,否则任何开环控制都应设置为零。
变速箱换挡控制
设置驱动模式和挡位
在任何CarSim或TruckSim数学模型中,动力总成都涉及多达18个前进档,空档和倒档。换档过程取决于驱动模式(关键字= MODE_TRANS)。可以通过控制:换挡(开环)界面及时指定驱动模式(开环)。驱动模式的值具有以下含义:-1 倒挡0 空挡1 开环模式。在此模式下,前进档位置(1至18)随时间变化。换档位置与时间的关系由另一个链接定义2-18 闭环变速模式直至指定档位。例如,如果数字为4,则仅在齿轮1、2、3和4之间进行换档。当开环模式有效时(MODE_TRANS = 1),通过控制:换挡(开环)屏幕将换档位置(关键字= GEAR_TRANS)指定为时间的开环功能。当使用“Control: Shifting (Open Loop) 变速(开环)”界面时,驱动模式被强制为1.选择闭环变速模式时,CarSim / TruckSim使用升档和降档时间表.
使用外部模型输入控制变速箱 (Simulink, Driving Simulator, etc.)
在某些高级应用中,变速控制输入可以通过外部代码(例如Simulink,外部C,VS命令)或硬件(例如驾驶模拟器)来计算。可以分别通过输入变量IMP_MODE_TRANS和IMP_GEAR_TRANS修改或替换驱动模式和换档位置的内部变量。可以在“I/O Channels: Import”界面上指定导入的变量。变速器选择的档位通过变量GearStat输出。如果仿真汽车使用闭环变速,则可以通过导入变量IMP_MODE_TRANS在外部命令行驶模式。因此,为了仅使用外部命令,应将内部值设置为0(中性)。表8总结了用于闭环变速的外部输入和输出接口变量.
表8.用于闭环变速的外部导入/导出变量
变速箱位置 | 驱动模式
(IMP_MODE_TRANS) |
变速箱位置
IMP_GEAR_TRANS |
变速箱挡位输出
(GearStat) |
Reverse | -1 | 0 | -1 |
Neutral | 0 | 0 | 0 |
Auto. shift 1st
– highestgear |
最高前进挡 | 0 | 变速箱自动选择 |
另一方面,如果仿真汽车具有开环变速,则可以通过导入变量IMP_GEAR_TRANS从外部命令变速位置External shift schedule。 在这种情况下,可以通过在动力总成:变速箱(18档或CVT)界面Powertrain: Transmission(18 Gears or CVT)(关键字= OPT_SHIFT_INTERNAL 0)的下拉列表中选择外部换档计划来取消内部计算的换档位置。 表9总结了用于开环移位的外部导入/导出变量。
闭环换挡控制
可以将任何CarSim或TruckSim数学模型中的动力总成设置为使用液压扭矩转换器或机械离合器的表示形式。如果使用离合器,则使用控制信号来释放和接合离合器。
表9.用于开环变速的外部导入/导出变量
挡位 | 输入驱动模式
(IMP_MODE_TRANS) |
输入换挡位置
IMP_GEAR_TRANS |
挡位位置输出
(GearStat) |
Reverse | 0 | -1 | -1 |
Neutral | 0 | 0 | 0 |
Forward | 0 | gear (1, 2, … ) | gear (1, 2, … ) |
有两种指定离合器控制信号的模式.
开环离合器控制,由“控制:离合器(开环)Control:Clutch (Open Loop)”界面指定和/或从Simulink或其他外部代码导入。
只要变速箱换档,就可以采用标准顺序。序列是使用从两个界面之一设置的参数定义的:
a. Clutch: Clutch ShiftingParameters (Closed Loop),
b. Clutch: Clutch Shifting Timelines (ClosedLoop).
通过链接到控制界面来选择离合器控制模式,并将信息通过关键字OPT_CLUTCH_MODE传递到数学模型,对于开环,该值为0;对于标准内置序列,该值为1.因为离合器控制与换档紧密相关,所以通常将其链接到换档控制界面,该界面可以是闭环(控制:变速(闭环)Control: Shifting (ClosedLoop)或开环(控制:变速(开环)Control: Shifting (Open Loop))。
控制:离合器换挡时间轴(闭环)
“Control:ClutchShiftingTimelines(ClosedLoop)控制:离合器换挡时间轴(闭环)”界面(图35)使用时间轴概念来定义换挡中涉及的事件,当控制器接收到换挡命令时,时间轴开始。VS求解器中的参数将被计算并提供给数学模型。可以使用另一个界面(图36)直接设置参数。触发换档命令后,控制器将关闭油门并向离合器施加压力,从而将离合器控制装置提升至一体(完全分离)。当离合器分离时,变速比将改变。然后,将离合器压力中途释放(控制降至0.5,或一半接合)并保持指定的时间,然后将其余方式释放至零(完全接合)。
图35.带有闭环离合器换档时间线的界面
此界面上的图将“实时”更新,以显示所有指定的控制更改如何及时关联。每个曲线图都是在通过开环换档控制或基于闭环升档和降档时间表进行换档的命令开始的那一刻开始的.相同的顺序适用于升档和降档.
①此部分控制离合器的接合和分离。该图显示了如何在零(完全接合)和一个(完全脱离接合)之间调整控制信号。
②从发出换档命令到离合器完全分离的时间。换档命令发生时,离合器开始脱开。通常在换档之前离合器已完全分离。
③从换档命令开始直到离合器重新接合为止的时间。通常这是在换档之后。
④可以使离合器控制停留在半接合状态。根据传动系统上的负载,节气门设置和离合器扭矩(取决于控制信号),离合器可能会在此设置下打滑,从而产生更平滑的接合。如果用户希望离合器不处于半接合状态,请在此字段中输入零。与此界面上指定的所有其他时间不同,此值定义了停留时间的持续时间,而不是停留时间。它始终位于离合器重新接合的中间。
⑤发出换档命令后直至离合器再次完全接合的时间。
⑥本部分控制节气门的关闭和打开。该图显示了在换档前的设置和零油门之间如何调节油门。换档后,油门返回到换档之前的设置,并且油门控制通过开环或闭环设置返回到控制.
⑦从换档命令到节气门完全关闭的时间。在换档命令发生时,节气门开始关闭。通常在换档之前。
⑧从换档命令起直到油门再次打开的时间。通常这是在换档之后。
⑨从换档命令开始直到油门恢复到换档命令之前的时间。此后,节气门控制将返回到换档之前使用的任何控制(例如,开环表或闭环速度控制)。
⑩此部分控制实际比率更改的时间。当发生换档命令时,将进行比率更改,以使离合器脱开并且节气门关闭。表中的步骤仅指示比率更改的时间。它适用于升档和降档.
⑪从换档命令到比率变化开始的时间。
⑫低速自动分离离合器(关键字= VLOW_CLUTCH)。制动时,当平均车轮速度降至该速度以下时,离合器将分离。从低启动速度加速时,如果启动速度低于此值,离合器将首先脱离,并根据此界面上的其他设置进行接合。如果启动速度高于该速度,则在运行开始时离合器将接合.
控制器: 离合器换挡的参数(闭环)
“控制:离合器换档参数(闭环)”界面(图36)是上一小节中显示的替代界面。此图显示了定义移位顺序的模型参数.使用以下参数设置图中所示的波形。
①换档事件的延迟(关键字= T_GEAR_LAG)。可以通过Powertrain: Upshift Schedule 和 Powertrain:DownshiftSchedule界面中的升档和降档表以闭环方式触发换档。实际的换档事件被延迟此数值,以使节气门减小并离合器接合。
②节气门控制在换档事件中保持零(完全接合)的持续时间(关键字= T_TH_ZERO_HOLD)。
③ 在换档事件中将油门减至零并保持的时间(关键字=T_TH_ZERO_TOTAL)。
④将油门从零恢复到原始控制水平所花费的时间(不受换挡的影响)(关键字= T_TH_RETURN)。
⑤换档事件中离合器控制完全断开的持续时间(关键字= T_CL_PRESS_HOLD)。
⑥在离合器释放期间保持离合器半接合的时间(关键字= T_CL_HALF_HOLD)。
图36.带有闭环离合器变速参数的界面
⑦在换档事件中,将离合器完全分离并保持分离所需的时间(关键字= T_CL_PRESS_TOTAL)。
⑧在换档过程中使离合器接合所花费的时间,包括使离合器半接合时所花费的时间(关键字= T_CL_HALF_TOTAL)。
⑨低速自动分离离合器(关键字= VLOW_CLUTCH)。制动时,当平均车轮速度降至该速度以下时,离合器将分离。从低启动速度加速时,如果启动速度低于此值,离合器将首先脱开,并根据此屏幕上的其他设置进行接合。如果启动速度高于该速度,则在运行开始时离合器将接合.
转向控制的最优控制方法
理论
该算法旨在为连续线性系统提供最优控制:
其中x是n个状态变量的数组,u是控制输入,v是扰动,yout是相关的输出变量,A,B,C,D,E和H是常数系数的矩阵。 控制目标是确定u的值,该u值使预测输出yout(t)在某个预瞄时间T上与目标ytarg(t)匹配。在车辆转向控制的情况下,u为转向,而v与悬架运动学特性和弹性学特性相关。
在以上等式中,A是n*n矩阵。通常,u,v和y可以是涉及多个控制,干扰和/或输出变量的数组。但是,此推导仅考虑u,v和y为标量的一种情况。B和H是n x 1矩阵,C是1 x n矩阵。还有一个进一步的简化,即yout不明确地依赖u或v。因此,不使用D和E矩阵。对此分析所做的另一个简化假设是,控制u和干扰v在预览时间T上保持恒定。如果系统在时间t = 0时具有初始条件xo,恒定的控制输入u和恒定的扰动v,则时间响应为:
术语是一个称为状态转换矩阵的n x n矩阵。矩阵中的每个系数都是时间变量i在时间t处与数值0处的状态变量j线性相关的部分,通过数字积分计算得出。由于系统的初始条件为t = 0,因此状态转移矩阵()与初始条件(xo)的乘积是长度为n的数组,每个状态变量的一部分在时间t处。称为自由回复。公式21中的两个积分定义了在时间间隔内的恒定控制u和干扰v对每个状态变量的强制响应。联合公式20和21,得到输出变量 yout:
定义了一个控制响应标量g,将时间间隔t上的控制输入u与时间t的输出变量yout 相关。
定义了扰动响应标量h,以将时间间隔t上的扰动v与时间t的输出变量y相关联。
定义了一个具有n个元素的自由响应数组F,以简化以下符号。F将时间0的状态变量与时间t的结果输出变量y关联.
注意,g(t)和h(t)通过积分与F(t)相关:
使用新引入的术语重写的响应方程为:
为了基于预瞄时间T确定最佳控制,定义了二次性能指标J:
其中W(t)是任意加权函数。在此等式中,时间t相对于预览间隔。在控制器视图中,当前时间始终为零,并且J基于对接下来的T秒的预测。如果u最小化J-变量yout(t)相对于目标函数ytarget(t)的平方偏差,则它被认为是最优的。因为J是二次的,所以当导数∂J/∂u为零时,最小值最小。可以通过将公式27代入28并取J相对于u的偏导数来找到使J最小的u值:
因此u的公式如下:
实际上,可以用预览中m个间隔的有限求和来代替T上的积分:
其中公式31的时间相关性用索引i代替。此处的含义是,适用于F,g,h,W和ytarg的索引i是指时间t = i T / m时的值。
应用
该解决方案涉及m个间隔的求和(m当前编程为10)。对于给定的速度,间隔i和时间之间的关系是固定的(t = i T / m)。每次应用转向控制器时,都会提供xo (四个状态变量的当前值)和确定每个预览间隔的ytarg所需的信息。由于初始条件非零,阵列Fi中的自由响应系数定义了在间隔i结束时车辆的横向位置。尽管内部2D车辆模型具有四个状态变量,但轴系统的选择简化了计算。图11显示,在转向控制器的轴系中,x1(横坐标Y)和x2(偏航角y)的初始值相同为零。因此,在阵列Fi中仅需要两个系数:f1i代表初始横向速度(x 3),f2i代表初始横摆率(x 4)。对于x3 = 1的初始值,系数f1i表示间隔i结束时的yout值。使用数值积分为i = 1,...,m计算值。除x3之外的所有状态变量的初始值均设置为零,而x3则设置为1。然后从t = 0到t = T模拟2D模型,并将横向位置的值保存在求和中使用的m个位置。重复该过程以确定f2i的值,除了2D模型的初始条件是x4 = 1且所有其他变量均为0。Fi中的自由响应系数与公式26一起使用,以计算控制响应系数gi和干扰系数hi。在数值积分过程中,使用第五个状态变量(其导数只是yout)来计算yout的积分。公式32用于确定转向控制。从该值中减去由于驾驶员以外的因素引起的前轮转向的影响,即可得出驾驶员所需的转向角uc(参见等式12,第16页)。
线性二自由度(2D)车辆模型
具有前进速度(Vx)和四个状态变量的简化2D车辆模型用于预测车辆的运动。状态变量是:x1 =转向控制器轴系统中车辆重心的局部Y坐标,x2 =相对于转向控制器轴系统的车辆局部偏航角,x3 = Vy,即车辆轴心系统中质心速度的横向分量,x4 =横摆角速度。 通过将局部偏航的余弦替换为1,并将局部偏航的正弦替换为局部偏航,可以对模型进行线性化。然后,A,B和H矩阵为:
其中Cf和Cr是前后桥的轮胎转弯刚度系数,M是车辆总质量,a是从前桥到质量中心的距离,b是从后桥到质量中心的距离,Vx 是前进车辆速度,f(Vx)是后转向速度与前转向角的比值,它是车速的函数,Izz是车辆偏航时的极惯性矩。
如果车辆单元具有两个以上的轴并且前两个轴是串联悬架的一部分,则参数a是从质量中心到两个前轴的中点的距离。如果车辆的后轴不止一个,则参数b从质心到与所有后轴的平均距离。控制器使用的质量M是通过将静态轴载荷相加得出的。如果车辆拖挂拖车,则牵引负载将增加M。偏航惯性Izz计算为a•b•M,因此,如果领先车辆拖曳挂车,偏航惯性Izz也将具有较大的值。感兴趣的输出变量是前轴的横向位置。因此,当车辆向前行驶时,将C矩阵定义为线性行为:C =[1 a0 0] (34)
向后行驶时,后轴用作参考,C矩阵为:
C = [1 b0 0] (35)
速度敏感性
自由响应Fi,控制响应gi和扰动响应hi的系数都取决于等式33和34中所示的A和B矩阵中出现的前进速度Vx。用于数值积分以计算这些系数的时间步必须相对于2D车辆模型的动态性而言较小。确定该时间步长的主要因素是公式33中的系数a33的大小;对于较低的速度,时间步长设置为与该系数的大小成反比:[Cf + Cr] / [M Vx]转向控制器代码针对相距当前车速约1%的多个速度计算系数Fi,gi和hi的值,并使用线性插值法以当前车速估算其值。这提供了连续的转向控制,而无需在主车辆仿真的每个时间步上运行计算密集的数值积分。随着车速的下降,方程式在数值上变得僵硬,需要较小的时间步进行内部数值积分。同样,系统变得不那么动态,更运动。如前所述,模型包括参数VLOW_DM来设置用于重新计算系数的最小速度。对于低于此设置的速度,车辆被控制为好像以速度VLOW_DM行驶.
(欢迎申请加入智能驾驶交流学习群,加小编微信号zhijiashexiaoming)