车道保持辅助系统PID算法

2021年4月27日汽车技术评论14,2216阅读模式

目前自动驾驶领域常见控制算法有:

LQR:线性二次型最优控制算法

PID:比例-积分-微分控制算法

MPC:模型预测控制算法

在这三种算法中,最常见的就是PID控制算法了。其原理是,在过程控制中,按比例(Proportion)、积分(Integral)和微分(Derivative)对偏差进行控制,其原理图如下。

车道保持辅助系统PID算法

PID控制的一大好处就是,可以选择控制的种类,比如,仅控制比例项(P控制)、仅控制比例项和微分项(PD控制),三者同时控制(PID控制),这三种不同的控制组合,也是目前比较常见的选择,每种不同的控制都有什么物理意义呢?

车道保持辅助系统PID算法
我们可以结合车道保持系统的控制来进行剖析。
首先假设车辆已经偏离中心车道线(如下图),这个时候老司机肯定会丝滑地打一个方向盘,随着汽车逐渐靠近中心线,再慢慢调整方向盘,整个过程如丝般润滑;但如果是一个新手呢,那可能是就是左边猛打半圈,发现打多了,又往右猛打半圈,如此往复,最后就是沿着车道线如蛇形版前行,这种效果可能就不是我们喜欢的了,坐在车上肯定是没有体验感而言的。
车道保持辅助系统PID算法
车道保持辅助系统PID算法
如何控制这个转向过程的稳定性?这就是PID要控制的内容了。大概原理是车辆目前位置和目标位置会有一个偏差,PID控制需要消除掉这个偏差。
1、P控制-比例控制
根据不同的距离偏差输出不同的控制信号,其输入与输出成正比,只要距离偏差出现,就能及时产生与它成比例的控制信号,控制信号直接控制方向盘产生一个转角,使车辆转向。
车道保持辅助系统PID算法
因为车辆有一定的速度,当车辆到达中心线的时,因为惯性的原因有向前冲出一段距离,然后再根据距离偏差得出一个新的转向角往回走,同样又会因为惯性冲过了头,再纠正,再冲过头(是不是像极了新手开车的样子)。。。但每一次经过中心线,车辆的距离偏差就会越来越小,所以经过多次往复运动后,就能越来越靠近中心线。
车辆每次转向的角度大小是由Kp这个参数来控制的,Kp值是一个常数,需要提前设置。这个如果Kp值太小了,可能作用很小,Kp值较大,会使得车辆较快回到车道线附近。
车道保持辅助系统PID算法
那这个值就越大越好吗?当车辆距离车道中心较远,再调整Kp为较大值,使得车辆尽快回到中心线,那么很有可能会使车辆失控。
车道保持辅助系统PID算法
单纯地使用比例控制,车辆可能会不断地穿越车道中心线,来回调整,并不能按照中心线稳定的行驶(在控制领域,这种现象被称为超调)。
我们该如何矫正或者避免超调呢?
2、D控制-微分控制
在以上的比例控制中,我们其实只考虑了车辆偏离车道中心线的距离大小,似乎还不够。那么我们将这个距离变化的快慢(距离对时间的导数,也即速度)也考虑进来呢?
车道保持辅助系统PID算法
试想一下,如果我们要求新手以尽可能快的方式(增大Kp,相当于多打一些方向盘)靠近车道线,又要求新手减慢转向的速度(给转向加一个阻尼),是否能更稳定些呢?在上式中,Kp控制转向的大小,Kd控制转向的快慢,最终就能使车辆更快更稳的靠近车道中心线了。
所以,Kp越大,Kd越大,就能更快更稳定吗?
 
非也,既然这两个常数参数没有把它设为定值,而使得其可以调整,那么调整这个两个参数就是需要根据不同的情况进行调整的,一般来讲调整的规律如下。
车道保持辅助系统PID算法
3、I控制-积分控制
所以车辆有比例控制和微分控制就足够了吗?
如果是在理想的道路上前行,那么应该是够的,但是总归存在意外情况,比如车辆本来在中心线上走得好好的,然后突然颠簸了一下,使得汽车偏离了汽车中心线一点。
此时,P控制想要让汽车重新回到中心线(因为偏移距离较小,所以成比例的方向转角也较小),但是D控制又想阻碍这种转向(因为距离方向转角较小,距离偏差的速度也较小),两者综合作用下,就会要很久的时间,才能使得汽车回归中心线。这种偏移误差也称为“稳态误差”。
车道保持辅助系统PID算法
所以,为了应对路面上的意外情况,让汽车尽快回到中心线上,我们对汽车的偏移量进行积分(即求面积),并且控制这个积分值最小化,那么就能使得汽车尽快回归。即下式的积分项。
车道保持辅助系统PID算法
在上式的积分项中,Ki是个常数参数,用来控制积分项的比例权重。不同的Ki大小,会产生不同的控制效果,如下图所示。当Ki太大,稍微一点信号误差都会使汽车产生过激反应,Ki太小,则没啥效果,所以,合适的Ki值,也是非常重要的。
车道保持辅助系统PID算法
最后,再来总结下。
我们以车道保持系统为例,介绍了如何利用PID控制来使车辆更快、更稳定、更抗干扰地沿中心线运动。其中:
车道保持辅助系统PID算法
P控制(比例控制),其作用是根据车辆偏离距离的大小,控制偏差减少,控制的强弱取决于Kp的大小,Kp越大控制能力越强,但也容易产生震荡系统不够稳定。
D控制(微分控制),其作用是根据车辆偏离距离的速率,阻止偏差的变化,能有效的客服震荡,使系统趋于稳定。
I控制(积分控制),其作用是消除系统的稳态误差,同时也能控制偏差往较少的方向变化。

weinxin
扫码关注公众号
关注公众号领精彩彩蛋!

发表评论