车道保持辅助系统PID算法

2021年4月27日
评论
1,060

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

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
扫码关注公众号
关注公众号领精彩彩蛋!
SOA在汽车上的应用详解 汽车技术

SOA在汽车上的应用详解

1、什么是SOA SOA(面向服务的架构)可以理解为一种架构设计方法,它是将一个系统所具有的能力抽象成可调用的并具有标准接口的服务,从而可以通过调用服务或者调用多个服务的组合来满足系统的业务需求。 S...
万字长文解读DoIP ISO 13400-2标准 汽车技术

万字长文解读DoIP ISO 13400-2标准

注释:文中提到的图和表均与13400-2中对应。 ISO 13400-2定义了诊断仪和车辆ECU之间使用DoIP诊断协议(应用层)、IP协议(网络层)、TCP协议(传输层)以及UDP协议(传输层)进行...
一文搞懂AUTOSAR CanNm模块 汽车技术

一文搞懂AUTOSAR CanNm模块

前言 首先,问大家几个问题,你清楚: 为什么要引入网络管理呢?上电同时启动,下电同时关闭,它不香吗? 你知道车上的ECU节点可以分为哪几种类型吗? 汽车启动时,ECU之间怎么保持同步唤醒的呢? 下电时...
不断发展的AEB技术 汽车技术

不断发展的AEB技术

随着消费者对复杂的安全功能的需求不断增长,各国的NCAP对新车的评估方法也不断的发展,这些复杂安全功能以前只会出现在高端车上。自动紧急制动(AEB)就是一个典型的例子。AEB以前是豪华级车型的配置,但...

发表评论