【CarSim】CarSim的内嵌ESC控制

编辑:CrazyRabbit
日期:2022年3月22日

本文介绍CarSim内置的ESC控制库

1. 简介

CarSim有一个简单的内置ESC控制器,该控制器通过生成校正偏航力矩来应用单独的制动器以避免车辆失控。
世界各国政府都制定了法规,要求车辆配备 ESC,或要求它们满足设计为没有 ESC 的车辆无法达到的性能标准。例如,美国政府标准 FMVSS 126 和等效的欧盟 ECE 法规 13H 都使用称为“Sine with Dwell”的测试过程来确认被测车辆具有正常工作的 ESC 系统。

2. 安装控制器

默认情况下,ESC控制器没有安装在CarSim中。为了安装控制器,在**Control:Electronic Stability (ESC)**库中。任何从这个库生成的Dataset都将应用VS 命令“INSTALL_ESC”来安装该控制器和相关的参数、变量。下图显示了Echo文件中当ESC控制器由参数OPT_ESC_ON(默认是1,表示激活)激活。【CarSim】CarSim的内嵌ESC控制_第1张图片
上图中还有两个参数“STEER_RATIO_ESC”和“WB_ESC”,这是两个计算出来的参数,用来提供更多的信息。其他的参数用来调整ESC的行为,后续章节将介绍。

请注意,CarSim中的Brake System Screens包括一个下拉菜单和内部 ABS 系统的黄色数据字段。为了使内置 ESC 工作:

  • 内部ABS激活
  • 选择两通道控制。单通道 ABS 将轴的两个车轮一起调制,并破坏 ESC 的偏航率控制。

3. 控制参数

ESC控制器界面如下:【CarSim】CarSim的内嵌ESC控制_第2张图片
系统控制:

  1. Lowest speed:启用 ESC 的最低速度(关键字 VLOW_ESC)。如果变速箱处于倒车档,或者前进速度小于限制 VLOW_ESC,则 ESC 将自动禁用。
  2. Maximum brake pressure:ESC 使用的最大制动压力(关键字 PBK_MAX_ESC)。当有翻车风险时,该压力将用于所有车轮。当应用制动器以保持方向控制时,压力将永远不会高于此限制。
  3. Minimum brake pressure:ESC 被视为“激活”的最小制动压力(关键字 PBK_ACTIVE_ESC)。如果 ESC 请求的任何制动压力大于此限制,则系统被视为“激活”并且发动机油门自动设置为零。“活动”状态由输出变量 ESC_Active 提供,可用于在 VS Visualizer 中显示 HUD 警报。

防侧翻保护:

  1. **Maximum allowed lateral acc:**ESC 制动减速前允许的最大横向加速度(关键字 AY_LIMIT_ESC)。如果横向加速度超过此限制并且油门被禁用,则应用制动;对于重型卡车,将其设置为略低于翻车阈值。对于乘用车,可以将其设置为高以禁用横向加速度检查。
  2. **Maximum allowed roll angle:**ESC 制动减速前允许的最大侧倾角(关键字 ROLL_LIMIT_ESC)。如果侧倾角超过此限制并且有一些转向(6),则启用制动;对于重型卡车,将其设置为略低于翻车阈值。对于乘用车,可以将其设置为高以禁用侧倾角检查。
  3. **Minimum predicted lateral acc:**根据车辆侧倾角达到侧倾极限(关键字 AY_ROLL_LIMIT_ESC),在即将发生侧倾的情况下应用完全制动所需的最小预测横向加速度。用于重型卡车侧翻保护。除非当前方向盘角度的预测 Ay 高于此限制,否则 ESC 不会干预翻车保护。

保持直行控制

  1. Understeer gradient:ESC 用于预测横摆角速度侧向加速度的转向不足梯度(关键字 ** USG_ESC**)。ESC用于预测横摆角速度(按给定方向盘角度和速度)的转向不足梯度。
    通常,存在多种定义转向不足梯度的方法,这些方法为车辆提供了显着不同的值。该参数的值应与 ESC 使用的方程一致。ESC使用转向、速度、轴距和横摆角速度的当前值计算该值,并提供了一个输出变量 USG_Live
    ESC 还提供预测角速度 (AVz_ESC_Pre) 和横向加速度 (Ay_ESC_Pre) 的输出变量,可将其与车辆横摆角速度 AVz 和横向加速度 Ay_Rd(相对于路面)进行比较。

这个USG_ESC是个前期给的输入参考值,实际CarSim也会实时计算车辆的不足转向度,用来和给定的值对比,根据对比情况来做控制。

  1. Gain:控制器应用增益来设置制动压力以改善方向控制(关键字 KP_AVZ_ESC)。这是 ESC的制动压力与每单位横摆角速度误差的比。有关详细信息,请参见 ESC 方程。
  2. Yaw-rate deadband:横摆角速度死区(关键字 AVZ_DEAD_ESC)。控制器方程允许在应用干预之前预测的横摆角速度和实际的横摆角速度(死区)之间存在一些差异。
  3. **Brake pressure ratio:**制动压力比,后/前(关键字 R_PROP_ESC)。使用指定的增益(8)计算轴 1 的制动压力。其他车轴的压力是通过将前压力乘以该比率来计算的。

杂项

  1. 杂项链接,在示例中用于动画数据集以在 ESC 处于“活动”模式时显示 ESC 警报。在此示例中,输出变量 ESC_Active 使 ESC 警报可见。
  2. 指向 ESC 相关绘图的绘图设置数据集的链接

4. 输出参数

输出参数如下:
【CarSim】CarSim的内嵌ESC控制_第3张图片

5. 控制逻辑

ESC 使用命令 INSTALL_ESC 安装。如果未安装,则不包含在模拟中。

5.1 ESC启用(Enabled)

以下条件下ESC功能启用(Enabled,处于可被激活状态)

  • OPT_ESC_ON非零
  • 变速箱正转(非倒车)
  • 前进车速大于参数 VLOW_ESC 指定的阈值

控制器的启用/禁用状态可从输出变量 ESC_Enabled 获得。
激活后,ESC可以向所有制动器发送指令。

ESC 提供四个压力请求。PbkESC_L1 和 PbkESC_R1 是两个前轮的制动输出压力。如制动系统帮助文档中所述,这个输送压力是在任意比例之后,并且在内置 ABS 控制器之前(原文:As described in the Brake System Help document, the delivery pressure is after any proportioning, and before the built-in ABS controller)。

如果任何压力请求大于参数** ESC_PBK_ACTIVE** 指定的阈值,则认为 ESC 处于“活动状态”,输出变量 ESC_Active 设置为 1;否则为零。当 ESC_Active 不为零时,动力总成模型会覆盖发动机油门,将其设置为零。在某些示例中,ESC_Active 用于控制 VS Visualizer 中警报的可见性。

5.2 ESC逻辑

ESC启用后,出于两种原因干预:① 防侧翻 ② 失去控制
在这两种情况下,ESC 都使用当前的转向角和车速来通过简单的计算来预测车辆将转向多少。

5.2.1 横摆角速度和侧向加速度预测

ESC 使用当前方向盘角度前进速度来估计预期的横摆角速度。
前轮转角平均值与方向盘之间的有效转向比 STEER_RATIO_ESC 在初始化期间使用适用于转向类型(齿条和小齿轮或循环球)的可配置函数的导数进行计算。此计算属性列在带有 ESC 参数的 Echo 文件中。CarSim模拟的每个时间步长,ESC 计算前轮 SteerESC 的平均值为:
SteerESC = Steer_SW / STEER_RATIO_ESC ①
Steer_SW是方向盘转角,SteerESC是输出参数。
ESC 还在初始化期间通过对主导单元的所有后悬架的 LX_AXLE 参数进行平均并减去轴 1 的 LX_AXLE 来计算轴距 WB_ESC。这个计算的属性也是在 Echo 文件中列出。【CarSim】CarSim的内嵌ESC控制_第4张图片
控制器预测与转向线性(Lin代表线性)相关的横摆角速度AVz_ESC_Lin(输出变量):
AVz_ESC_Lin = SteerESCV /(WB_ESC + USG_ESCV2 ) ②
其中V是前进速度,USG_ESC 是一个 ESC 参数(前期给定值),它是车辆转向不足梯度的估计值。

转向不足参数 USG_ESC 对等式2的有效性至关重要。如前面对参数的描述所述,输出变量 USG_Live 由 ESC 提供,以帮助确定 USG_ESC 的有用值。实时(live)转向不足 USG_Live 由相同的等式计算,并使用前车AVz 的横摆角速度进行操作:
USG_Live = SteerESC/AVz/V - WB_ESC/V2 ③

使用 USG_Live 来确定 USG_ESC 有用值的一个很好的测试是缓慢增加的转向测试(在恒定速度下),就像对乘用车的 FMVSS-126/ECE-R13H 等 ESC 合规性测试所做的那样。

计算引导单元 (Mu_ESC)上所有轮胎的平均摩擦系数,并用于确定最大横摆角速度 (AVz_ESC_Max) 作为轮胎侧向力处于摩擦极限时的极限情况。在这种情况下,总侧向力为 µ•W,其中 W = mg,侧向加速度为 Ay:
m·Ay = Fy = µ·mg ④
Ay = µ·g ④
假设 Ay = (yaw rate)•V,最大横摆角速度估计为:
AVz_ESC_Max = Mu_ESCG/V ⑤
横摆角速度预测(输出变量 AVz_ESC_Pre)具有线性预测的符号,其幅度是等式 2 和 5 中计算的横摆角速度中较小的一个:
AVz_ESC_Pre = sign(min(|AVz_ESC_Lin|, AVz_ESC_Max), AVz_ESC_Lin) ⑥
输出变量 Ay_ESC_Pre 是预测的横向加速度,由横摆角速度简单地乘以速度计算得出:
Ay_ESC_Pre = AVz_ESC_Pre
V ⑦

5.2.2 侧翻风险

对于重型卡车,ESC 的主要作用是防止可能导致侧翻的横向加速度。三个参数定义了用于确定是否应激活 ESC 以减慢车辆的阈值:AY_LIMIT_ESCAY_ROLL_LIMIT_ESCROLL_LIMIT_ESC

如果当前平行于路面的横向加速度 (Ay_Rd) 的大小大于参数 AY_LIMIT_ESC,则来自 ESC 的所有四个制动压力请求都设置为参数 PBK_MAX_ESC。

如果当前车辆相对于路面的侧倾角 (Roll_Rd) 大于参数 ROLL_LIMIT_ESC,并且预测横向加速度 Ay_ESC_Pre 的大小大于参数 AY_ROLL_LIMIT_ESC,则来自 ESC 的所有四个制动压力请求都设置为参数 PBK_MAX_ESC。

在任何一种情况下(大横向加速度或大滚动加上一些预测的横向加速度),然后输出变量 ESC_Active 设置为 1,油门设置为零。

5.2.3 失控风险

将预测的横摆角速度AVz_ESC_Pre 与实际的横摆角速度AVz 进行比较以计算横摆角速度误差,即输出变量 AVz_ESC_Err
AVz_ESC_Err = AVz - AVz_ESC_Pre ⑧
当误差幅度大于横摆角速度死区参数** AVZ_DEAD_ESC **时,计算干预制动输出压力:
PdelAVz = AVZ_KP_ESC * max(|AVz_ESC_Err| - AVZ_DEAD_ESC, 0) ⑨

输送压力 PdelAVz 用于设置四个 ESC 压力之一,选择取决于横摆角速度误差是否表示横摆角速度太大(过度转向)或不足(转向不足),以及预期的方向转向(右或左)。在过度转向的情况下,干预制动作用于前部;对于转向不足,它应用于后部。

例如,如果预期转向向左(正转向和预测横摆角速度)并且误差为正(实际横摆角速度大于预测横摆角速度),则车辆向左过度转向并且干预压力施加到右前轮 (PbkESC_R1)。在所有情况下,压力都受参数 PBK_MAX_ESC 限制。

这四个工况是:

  • 右转,过度转向:PbkESC_L1 = min(PdelAVz , PBK_MAX_ESC)
  • 左转,过度转向:PbkESC_R1 = min(PdelAVz , PBK_MAX_ESC)
  • 左转,不足转向:PbkESC_L2 = min(PdelAVz*R_PROP_ESC , PBK_MAX_ESC)
  • 右转,不足转向:PbkESC_R2 = min(PdelAVz*R_PROP_ESC , PBK_MAX_ESC)

如果输送压力大于参数 PBK_ACTIVE_ESC,则输出变量 ESC_Active 设置为 1,油门设置为零。

你可能感兴趣的:(CarSim,CarSim)