4.1.2 经典 PID 算法在本智能车上的应用
(1)速度的控制
我们对速度的控制采用了增量式PID算法,我们在速度控制中采取的基本策
略是弯道降速,直道提速,经过反复实验,将图象经过算法处理后得到的黑线位
置和对应的速度PID参照速度处理成二次曲线的关系。在实际测试中,发现小车
直道和弯道相互过度时加减速比较灵敏,与舵机转向控制配合较好。
图 4.2 黑线位置和给定速度的二次函数曲线
具体在程序中的代码如下:
sPID.vi_Ref = g_HighestSpeed - (59 - g_Control) * (59 - g_Control) * (g
_HighestSpeed- g_LowestSpeed)/ 3481;(g_HighestSpeed为最高速,g_LowestSpee
d为最低速)
但是,存在的局限一方面是车在弯道进直道后的加速和直道入弯道的速度控
制并达不到最好的控制效果,弯道入直道减速不够快速,直道入弯道加速得时机
也不够及时。我们做了进一步的改进,根据入弯时黑线位置的特点动态改变二次
曲线中最高点(直道的最高速度)和最低点(弯道的最低速度)的大小,使得控
制效果更合理。
另一方面是没有考虑到实际比赛中长直道急速冲刺的情况,赛前在程序中人
为设定直线速度不够灵活合理,所以在程序中根据赛道状态动态提高直线速度g_
HighestSpeed,使得我们可以在长直道的赛场充分发挥车的潜能。
(2)舵机的控制