概述:本文主要学习车辆纵向控制的实践应用——巡航系统。
文章目录
前言
本文将继续结合自动驾驶纵向运动控制相关理论进行实际应用。
一、巡航控制(Cruise control)
巡航控制也叫定速控制,是车辆纵向控制中非常基础的控制器,它的控制目标就是车辆在一个目标车速或者理想车速的情况下进行行驶。
输入:目标速度(speed set point/target speed)
输出:油门和刹车的指令(Throttle/Brake)
一般我们把问题分成两层来对待,如图所示。
- upper Controller:把目标车速转换为目标的加速度;
- Lower Controller:如何追踪目标加速度的油门和刹车的指令。
1.1 Upper Level PI controller
目的:把我们的目标速度的控制量转换成我们的目标加速度。
转换:速度的微分就等于我们的加速度。
通常我们假设我们的输入速度转换后就是我们所期望的加速度,但是实际上由于底层控制器的功率以及带宽的限制等,所以我们会用一阶系统去模拟我们的系统响应过程。
因为实际车辆达到目标加速度会有一定的时间,所以一阶系统可以更好地模拟我们的实际运动模型,如图所示。
所以,我们的系统传递函数如下所示。
可以转换成:
系统传递函数环节如图所示。
上层的控制器主要用PI控制器进行控制。
其中比例控制器Kp是对我们速度的误差进行放大缩小,以及积分控制器是对速度的积分也就是对位置的误差进行放大与缩小。如图所示。
所以,在时域下,控制器的微分方程就可以写成:
所以,我们控制器PI的传递函数就可以写成:
所以结合控制器的传递函数以及系统传递函数,我们可以得到最终的闭环传递函数以及框图:
我们PI控制器就可以用我们PID参数调节方法进行调节。
1.2 Lower Level controller
目的:来追踪目标加速度的油门、刹车值。也就是说如何产生所需要加速度量的油门、刹车踏板的开合度的控制命令。
方法:一般来说解决这个问题有两种方法:
- 油门标定(Look up table):有一张车辆标定表来提供车辆速度、加速度、油门、刹车开合度关系的映射表。油门刹车的标定过程就是生成这个表的过程。
方法:
(1)一般来说,我们在标定时,会选择一条平坦而长直的路,并且保证两边没有高大建筑物的遮挡,保证我们定位系统的准确性.
(2)进行场景的划分:有带拖挂的、不带拖挂的、拖挂有负重的三种情况。
(3)车辆数据采集:确定车辆启动的最小油门值并且确定该油门能达到最大的速度,如最小油门值是12%,它能达到的速度是2m/s。这就是一个初始化的最小值;确定车辆的最大油门值是多少,如最大速度是20km/h,油门是30%。那么我们对最大油门值和最小油门值进行分档,如果标定速度比较快,我们可以用1%做递增,标定速度比较慢,我们可以用2%做递增,我们递增的数值越小,那么我们标定表的精度也会越大。刹车与上述过程相同。
然后,我们进行采集数据,处理数据绘制结果,我们就可以得到油门的标定图和刹车的标定图,如图所示。
这样,我们在这一模块想要得到目标加速度时的油门和刹车的开合度时,我们就可以通过查表得方式得到。 - 车辆模型(vehicle model)
我们可以知道,油门踏板和扭矩之间存在着密切的转换关系。驾驶员通过控制油门踏板的位置和深度来控制发动机的输出扭矩,从而影响车辆的加速性能和行驶性能。所以我们可以首先建立起目标加速度与引擎扭矩之间的关系。
(1)假设我们车辆的引擎处于一个稳定的状态也就是说不是在换挡的过程中。这样我们理想状态车轮的速度和我们轮胎的转速关系如下所示。
我们可以知道,车轮的转速和我们引擎的转速之间是有一个比例关系的,R。所以我们可以知道车辆的加速度和引擎之间的关系,如下所示。
由车辆纵向动力学模型可知:
我们将X的二阶导的关系带入可得:
这里我们可以通过我们的车辆车轮动力学、传动动力学、引擎旋转动力学模型等,我们就可以得出我们的加速度与引擎扭矩之间的关系:
我们可知,引擎扭矩除了和Je负载、ca空气阻力、引擎转速we、转速比R、滚动阻力R、坡度等等因素有关之外,还和我们的加速度以及速度有很大关系。所以,不难看出,这种方法也符合我们油门标定方法中参数的选择,也就是在不同负载下寻找速度、加速度与油门刹车之间的关系。实际应用中,这些参数是比较难获得的。但是我们在学习过程中需要结合车辆动力学模型深入了解油门标定的方法以及其应用。
二、自适应巡航空控制(Adaptive Cruise Control (ACC))
上节说到,定速巡航是根据驾驶员的要求,车辆不用踩油门和刹车就可以使得车辆按照一个固定的速度进行行驶。缺点:只能提供驾驶速度的巡航。
自适应巡航能够根据环境的变换来调节车速,主要加入了与前车的跟车距离,当自车与前车太远/近,车辆会主动控制油门/刹车进行加速/减速,来保证目标车和自车的安全距离,如果达到我们设定的安全距离,就会恢复巡航。
ACC自适应巡航就是根据自车和前车的相对距离和相对速度,对自车的距离和速度进行控制,也就是对前车的快慢及时作出响应,从而减少驾驶员刹车、油门的动作,如图所示。
输入:
- 驾驶员设定速度(Driver-set velocity)
- 自车速度(Velocity of the ego car)
- 相对距离(Relative distance to the lead car (preceding vehicle in the same lane))
- 相对速度(Relative velocity of the lead car)
- 时间间隔(Time gap)
输出:自车的加速度也就是油门和刹车的量。
2.1 ACC模式条件
ACC主要有两个模式来组成的。
- 速度模式(speed control):自车按照一定速度进行驾驶(定速巡航)
- 跟车模式(Spacing control):我们与前车保持一个安全距离。
ACC核心理论就是在上述两种模式之间进行不断的切换,其情况如下。
- 当自车与前车距离很近时,我们使用跟车模式,控制目标就是保持一个安全距离。
- 当自车与前车距离很远/前车速度很快/前面没有车辆时,我们使用定速控制,控制目标就是行驶在(追踪到)我们设定的速度下面。
2.2 时间间隔(Time gap)
ACC的其中一个输入是时间间隔,在跟车模式下为什么要用一个时间间隔而不是跟车车距呢?
ACC在跟车模式下需要满足的两个性质:
(1)单独车辆的稳定性(Individual vehicle stability):跟车的误差最终会收敛到0,最终达到目标的速度。
(2)车队、车列稳定性(String stability):车尾的跟车误差会不会随着车列的运动传递而增加。
车在不同的车速下面,它的刹车距离是不一样的,如果我们选择一个在低速工况下相对合理的跟车距离,那么很可能在高速工况下发生碰撞。如果选择一个安全的高速跟车距离,又会使在低速时与前车的距离太远,造成容易被人插车的情况。
我们如果选择固定的时间间隔,就可以使我们的跟车距离和车速保持一定的关系,这样就可以同时保证单独车辆和车列的稳定性。
2.3 ACC理论推导
这样我们就可以把我们的安全跟车距离表达为如下等式:
这里,Ddefault表示为车辆停下来时和前车的距离(静止跟车距离),也就是跟车的最小距离。Tgap表示为时间间隔,Vego表示为自身的车速。
所以,ACC的整个过程如下,首先会由感知传感器(摄像头、雷达等)检测的信息并基于目标车本身的速度、朝向、车道线等来确定是否是本车道的路径信息也就是说来判断本车道下,自车前方有没有车辆。
(1)当自车前方没有车辆或者前车车辆离目标车太远的情况下(定速巡航),如图所示。
由图可知,自车与前车的相对车距是大于等于安全车距的,我们可以使用通常的定速巡航系统(速度的PI控制器,通过保持设定的速度)时域表达式:
(2)当自车前方有车辆且比较近的情况下(跟车模式),如图所示。
由图可知,自车与前车的相对车距是小于安全车距的,这时我们可以使用跟车模式下的巡航系统(车距的PI控制器,通过与前方车保持合理车距进行控制)时域表达式:
总而言之,PI控制器有四种情况:
- 当前方没有车辆,ACC就处于普通的定速巡航系统驾驶,也就是定速控制。
- 当前方出现车辆,ACC车和目标车辆的车距小于ACC安全距离,此时ACC车就要自动进行减速,保证两车之间的安全距离,也就是跟车控制。
- 当前方出现车辆,ACC车和目标车辆的车距等于ACC安全距离,此时,ACC车就会基于目标车车速进行车速控制。
- 当前方目标车辆移出本车道,前方没有目标车辆,此时车辆还是继续定速控制。
这样,我们就可以基于PI控制器并基于不同工况进行变换来得到目标加速度 ,和巡航系统一样,我们就可以根据油门标定的方法可以把我们的目标加速度变成油门和刹车的指令。
总结
本文主要是对于自动驾驶规划控制中的纵向控制应用进行学习,主要介绍了巡航系统,自适应巡航系统的传递函数、理论推导和工况应用。这篇文章希望可以对想要学习自动驾驶规划控制方向的同学们有一定的帮助。
喜欢的朋友们动动小手点个关注,我会定期分享我的一些知识总结和心得体会,感谢大家!