基于PID控制的车辆LKA算法

注:由于精力有限,算法的推演直接在纸上进行的,图画的不太好,字也不好看,看官老爷们又看不懂或者看不明白的可以私我,大家相互讨论交流,一起进步。

1 算法设计

基于PID控制原理,这里基于侧向路径位置偏差来控制车辆,用e来表示。首先建立如下图基于PID控制的车辆LKA算法
基于PID控制的车辆LKA算法
基于PID控制的车辆LKA算法
基于PID控制的车辆LKA算法
基于PID控制的车辆LKA算法
所以,PID的控制量有了,就是yp-yQ。

2 在carsim和simulink中搭建模型

由于最后可以采用在matlab中通过plot函数来查看仿真效果,这里carsim模型主要是定义输入输出,Carsim设置如下:
基于PID控制的车辆LKA算法
默认的C级车模型,车速设置为30km/h。
基于PID控制的车辆LKA算法
carsim输入(其实也可以忽略)
基于PID控制的车辆LKA算法
carsim输出,也就是simulink输入,分别为车辆当前坐标,横摆角速度,航向角,速度,质心侧偏角。

下面是simulink搭建:
基于PID控制的车辆LKA算法
分别看一下求yp和yQ的模块。

yQ:(抽象派注释,哈哈)
基于PID控制的车辆LKA算法
其中的fuction模块是将本次的预瞄点与上次的预瞄点做比较,保证每次取的预瞄点都在上一次后面。
yp:
基于PID控制的车辆LKA算法

3 仿真结果

利用plot查看仿真效果,基于PID控制的车辆LKA算法
基于PID控制的车辆LKA算法
蓝色表示参考路径,红色表车辆跟踪路径,效果还行,可以继续通过pid调参,取得更好的跟踪效果,实际中应该会采取更多的控制量来进行控制。