2.1 车辆纵向动力学模型
注:车辆的纵向控制是指控制车辆行驶方向上的加减速,使得汽车可以按照期望的速度行驶,并保持安全的前后车距(即对汽车油门 / 刹车的控制);
2.1.1 车辆纵向受力模型
:轮胎纵向力(前后轮的驱动力,由车辆的引擎产生的将车向前推动的力)
:滚动阻力(车辆在道路上行驶时轮胎 / 路面形变从而产生一个接触面,在这个接触面上轮胎与地面之间的摩擦力就是滚动阻力)
:空气阻力
2.1.2 空气阻力计算公式
:空气密度(和大气压力 + 空气温度有关,知道这两项就可以通过查询汽车密度表获取当前的空气密度)
:汽车风阻系数(通过风洞测试得到,一般轿车的风阻系数在0.28左右,SUV会更高在0.32左右)
:车辆在运动方向上的投影面积(一般取车辆【宽x高】的79%~84%)
:实时车速(风阻是和速度的平方成正比,所以高速行车风阻会很大)
:风速(一般情况下风速和车速相比都很小,所以经常忽略其为0)
2.1.3 轮胎纵向力计算公式
:前后轮纵向刚度
- 假设路面摩擦力为一个常数,则轮胎纵向力
(tire force)为滑动率
(slip ratio)的一个函数(如上图);
- 在低滑动率的时候(-0.1~0.1),轮胎纵向力和轮胎滑动率成正比,而正比这部分的斜率我们通常称为纵向刚度;
:前后轮滑动率
:滑移率(在刹车的时候发生)
:滑转率(在加速的时候发生)
- 在加速 / 刹车的时候才有滑移率 / 滑转率,这个时候轮胎和地面之间是动摩擦;
- 在匀速行驶的时候,车辆轮胎和地面之间是静摩擦,之间没有相对位移;
滑动率的计算公式推导:
:滚动半径(本身轮胎半径为R,但是轮胎在和路面接触时存在形变,所以真实的滚动半径记为
)
:滚动角速度
:轮胎实际纵向速度
:车辆实际纵向速度
- 在干燥的路面上行驶时,我们的滑动率都是很小的,所以我们使用一个简化的线性轮胎模型来表示;
- 但是如果路面比较湿滑,换言之就是滑动率比较大的时候,就不能再使用这样的线性轮胎模型了,需要使用非线性轮胎模型来计算(常见的非线性模型有 Magic Formula);
2.1.4 滚动阻力计算公式
:滚动阻力(本质上是摩擦产生的阻力)
:轮胎法向载荷(也是导致轮胎形变的力,这个力在轮胎形变产生的接触面上分配是不均匀的,如上图的曲线)
:滚动阻力系数(取值范围为0.01~0.04,常用车的轮胎滚动阻力系数为0.015)
计算法向载荷
:
- 针对车辆建立纵向力矩平衡方程
a
a
注意:在以车为坐标系来分析车辆的力矩平衡时,车是不发生旋转的,力矩是平衡的
- 将所有力的作用点都平移到坐标系上,力的作用点到坐标原点的距离就是力臂;
- 没有在力矩平衡等式中出现的力,肯定是本身力的方向就和坐标轴重合,因此没有力臂,也就没有力矩;如轮胎滚动阻力
都是作用在轮胎和地面的接触面上的,因此力臂为0,即力矩为0;
为车辆重心的高度;
a
a
- 后轮接地处为坐标系参考点,建立力矩平衡等式
- 力矩平衡等式
a
a
- 前轮接地处为坐标系参考点,建立力矩平衡等式
- 力矩平衡等式
滚动阻力计算公式:
2.1.5 总结
- 纵向控制的输入:油门 / 刹车
- 纵向控制的输出:纵向速度 / 纵向加速度 / 跟车距离
a
a
a
a
a
a
2.2 经典控制理论
2.2.1 拉普拉斯变换
目的:将时域中的【线性常系数微分方程】变成频域中的【代数方程】,便于求解
- 线性:微分项都是一次的,不是高次的
- 常系数:微分项的系数中不含有变量
a
a
拉普拉斯变换的定义:
a
a
拉普拉斯变换对照表:
2.2.2 传递函数
注意:在计算传递函数的时候,默认的是整个自动控制系统的初始状态均为0,即整个自动化系统在未给定输入值的时候,整个系统是静止的,并未运作的;这样的好处是在求线性微分方程的拉普拉斯变换时,下面公式中的初始条件 都可以置为0;
a
a
二阶系统标准式:
:阻尼比 / 阻尼系数
:无阻尼自然振荡频率
a
a
欠阻尼 / 临界阻尼 / 过阻尼 系统的阶跃响应:
- 欠阻尼系统是有超调的,但是到达稳态值的速度很快;(有的系统他是不允许有超调的,例如自适应巡航系统ACC,他只能=采取临界阻尼 / 过阻尼的方式调节)
- 过阻尼系统是没有超调的,完全没有震荡,但是到达目标稳态值的速度很慢;
2.2.3 PID控制器
PID控制器介绍:
- P(Proportional):比例
- I(Integral):积分
- D(Derivative):微分
a
a
PID控制器的作用:
- P:
- 随着 p 的增大,稳态误差逐渐减小,但一定会存在稳态误差,只使用比例环节无法根除
- 随着 p 的增大,系统超调会逐渐增大,但是过大的比例值会导致系统变得不稳定
- 随着 p 的增大,系统达到稳定状态的时间变短,调节速度加快
- I:滞后调节
- i 的加入,可以消除稳态误差
- i 的加入,会给系统带来一定的滞后性,因为需要误差不断地累积,累积的多了才会有明显的调节作用;这就使得系统到达稳态的速度变慢
- i 的加入,可能会导致积分饱和现象,即积分环节得到的针对控制器的动作,大于控制器实际的动作空间(如命令阀门开度为120%,但其实阀门最大只能开到100%)
- D:超前调节
- d 的加入,可以使得系统的超调减小,抑制系统的震荡,帮助稳定系统
- d 的加入,可以使得系统具有预见性,针对偏差变化的趋势提前做出调节,产生超前的调节作用,可以改善系统的动态性能,使得系统到达稳态的时间变短
- d 的加入,会使系统对噪声干扰非常敏感,因此过强的微分调节会对系统的抗干扰不利
a
a
理想低通滤波器:
理想低通滤波器的作用是:将高于设定频率的波形成分将从原信号中滤除。这个设定的频率
被称为截止频率,其对应的截止角频率记为
,该系统幅频特性
和相频特性
应如下图所示:
针对微分部分,在的后面乘上一个低通滤波器,实现对噪声的滤波操作:
a
a
PID整定方法:
a
a
a
a
a
a
2.3 巡航控制(Cruise Control)
巡航控制(又称定速巡航控制),是车辆纵向控制的一个非常基础的控制器,目的是让车辆以恒定的速度行驶,因此整个控制系统的输入就是理想/目标车速,输出是车辆的油门/刹车指令;
2.3.1 巡航控制系统的设计
一般将巡航控制系统分为两层;
- 通过上层控制器将需要跟踪的目标速度
转化为需要跟踪的目标加速度
;
- 通过下层控制器得到追踪目标加速度
所需要的油门/刹车指令
;
:目标速度
:车辆的实际速度
:车辆的目标加速度
:油门 / 刹车开合度
2.3.2 上层控制器的设计
巡航控制系统:
下层控制器其实就是一个油门刹车标定表,使用方法是提供当前车辆的目标加速度,以及当前时刻下的车速
,通过查表得到需要输出的控制指令
(油门开度 / 刹车程度);因此下层控制器其实没有什么传递函数,就是个单纯的查表操作,所以我们可将下层控制器和被控对象可以视为一个整体,全都当作被控对象来处理;因此巡航控制系统可以设计为:
a
a
被控对象P(s):
虽然我们输出给被控对象的是目标加速度,但其实车辆跟踪这个加速度是有一个过程的,并不可能下一瞬间就到达这个目标加速度,因此我们可以使用一个一阶系统来模拟这个跟踪过程;
a
a
上层控制器C(s):
一般将上层控制器设计为一个PI控制器
a
a
总结:
2.3.2 下层控制器设计 -- 油门刹车标定表
参考视频:【基础】自动驾驶控制算法第十讲 油门刹车标定表的制作_哔哩哔哩_bilibili
参考文章:在Apollo中获取油门刹车标定表
a
a
油门标定表制作过程概述:
- 找一条平坦长直的路,令车辆的初始速度为0,指定车辆以恒定的油门开度(0 ~ 1之间的某个值,假设为0.3)直线行驶,直至车辆加速到该油门开度所能到达的最大速度(假设为100m/s,此时车辆引擎提供的动力和静摩擦力+风阻力之和大小一致方向相反,呈匀速直线运动),期间记录车辆的VT曲线和AT曲线,根据时间将这两条曲线合并为VA曲线,这就是油门开度为0.3的时候对应的VA曲线;
- 对每个油门开度(0~1之间,可以自己指定每隔多少实验一次,比如每隔0.1的开度)都执行一次标定,可以得到10条VA曲线,将这10条曲线全部绘制在一个三维坐标系中,然后拟合出一个三维曲面,这个三维曲面就是油门标定表的可视化;
- 油门标定表其实是一个二维表格,两个轴分别为V和A,表格中的值为F(V,A),F为我们通过十条曲线拟合出来的三维曲面,F(V,A)输出的值是油门开度;
- 刹车标定表的制作过程和油门标定表一致,车辆初始速度为车辆能够到达的最高速,然后保持一个刹车开度(0~1之间选)不变,直至车辆速度减为0,记录n条VA曲线,也拟合出一个函数F(V,A)来制作刹车标定表;
a
a
如何使用油门标定表获取油门开度:
我们在建立巡航控制系统的时候,输给下层控制器(油门刹车标定表)的目标值是加速度;
- 指定目标加速度
:【加速度控制】
- 通过比较当前车辆加速度
和车辆目标加速度
的大小,来确定车辆是应该刹车,还是踩油门;
- 确定策略后我们需要获取车辆当前速度
,然后通过已知信息
和
来查表得到油门开度
;
- 意义:在当前速度
下,如果想到达目标加速度
,那么根据标定表中的油门开度,就可以很快达到这个目标加速度;
- 通过比较当前车辆加速度
a
a
使用油门刹车标定表的缺点:
我们在制作油门刹车标定表的时候,都是按照车辆为空载的情况进行的,而制作出来的空载时的油门刹车标定表是不适用于有负载时的车辆的;因此只制作一张油门刹车标定表无法覆盖所有的情况;
2.3.3 下层控制器设计 -- 车辆模型
下层控制器的实现方式有两种:
- 使用制作好的油门刹车标定表,输入目标加速度
,查表获得所需的油门/刹车开度;
- 根据车辆纵向动力学模型,可以得到车辆引擎扭矩和车辆加速度之间的关系,输入目标加速度
,通过公式直接计算出车辆应该输出的扭矩;
a
a
通过车辆纵向动力学模型推导 “扭矩-加速度” 公式:
因为油门和刹车的开合度是和引擎的扭矩相关的,因此我们将目标加速度输入下层控制器后,如果可以直接获得所需的引擎扭矩,那就等同于获得了所需要的油门/刹车开合度;
车辆速度计算公式:
车辆加速度计算公式:
车辆纵向动力学模型(平直路面,没有坡度):
将车辆加速度计算公式代入车辆纵向动力学模型,得到车辆纵向力(由引擎提供的动力)与引擎转速之间的关系:
:车辆在行驶过程中轮胎实际的半径(实际半径为
,但是和地面接触后导致形变,轮胎行驶过程中的实际半径为
)
:变速比
:车轮转速
:引擎转速
根据 “车轮旋转动力学” + “传动力学” + “发动机旋转动力学” + “对空气阻力的估算” ,我们可以得到发动机扭矩
和车辆加速度
之间的关系:
a
a
使用公式计算引擎扭矩的缺点:
- 在实际应用中,如果不是和汽车厂商深度合作,那么是拿不到发动机的详细参数的;
使用公式计算引擎扭矩的优点:
- 油门刹车标定表需要考虑车辆不同负载的情况,负载不同所使用的油门刹车标定表也不同;但是使用公式直接计算就没有这个困扰,因为车辆重量是直接直接带入到公式中的计算量,也就是说通过公式得到的引擎扭矩就是我们这个负载情况下应该输出的扭矩;
a
a
a
a
a
a
2.4 自适应巡航控制(Adaptive Cruise Control)
巡航控制(定速巡航)只能令车辆保持一定的车速,而不能使其适应环境自动做出速度上的改变,比如前方有障碍车辆,那么定速巡航也会一直保持同一速度直至相撞;
自适应巡航可以根据环境的变化来调节车速,即他不仅会考虑车辆的速度,还会考虑与前车的跟车距离;主要由两种控制模式:
- 跟车模式:当两车距离太近,控制系统会自动调节油门/刹车主动降低车速,使两车之间的距离达到设定的安全跟车举例,然后一直保持这个安全距离跟车行驶;
- 定速巡航模式:当辆车相聚很远的时候,会控制车辆以设定的速度进行定速巡航;
2.4.1 ACC的原理
输入:
:本车的设定速度(即定速巡航速度)
:本车车速
:前方车辆车速
:车辆刹停之后,我们指定的本车与前车之间的距离
:当前车速和车况下,车辆的安全跟车距离
:两车之间的实际距离
:时间间隔(之所以不指定一个固定的安全距离,是因为在不同的车辆载荷和不同的车速情况下,刹车距离是不同的,无法指定一个固定的万能距离,因此我们使用一个固定的时间间隔来间接计算安全跟车距离,这样可以使得我们的跟车距离和车速存在对应关系)
输出:
:本车的油门/刹车开合度(先通过上层PI控制器通过输入量
或
得到预期加速度
,然后查表得到油门/刹车开合度)