一、前言
在智能车竞赛中,有很多环节需要通过软件进行对车模运动进行精确控制。比如,车模与引导线之间的位置,就需要进行精确控制,放置车模走失。车模通过摄像头检测到黑色引导线在视野中的位置,距离设定的视野中心点之间,具有一定偏差。这个偏差可以通过车模两个前轮之间的速度差来进行修正,也可以通过修改后轮的左右旋转来进行修正。因此这里就会引入一个重要的控制思路,那就是反馈控制。也就是利用偏差来修正车模的运动参数进而减少偏差。今天给大家介绍的一个最经典的反馈控制方法,那就是 PID 反馈控制。通过理解它,便于大家理解给定的参考例程软件,并进一步优化。
二、反馈调节
以车模与引导线之间的偏差调节为例,说明PID反馈控制的概念。这里的车模,就是我们控制的对象系统。它有输入和输出信号。对于位置控制来说,两个前轮的速度差,就是车模位置的输入信号。 引导线在车模摄像头视野中心的偏差,就是系统的输出信号。为了确保车模始终沿着引导线前行,通常设定这个偏差为 0。利用比较图像中测量到的偏差与设定值之间的差别,通过某种算法来修正两个前轮的差速,进而使得偏差恢复到与设定值相同。也就是无偏差。PID 就是一种常见到的调节方法。
为了说明负反馈调节的概念,这里先举一个乒乓控制的策略。如果发现车模偏差大于0,表示靠左,则提高车模左轮的转速,降低右轮的转速,使得差速为大于0的一个常数,车模便会往右转向。当车模往右转向使得偏差小于0,表示偏向右方了。则将差速设定为小于 0 的 一个常数。此时车模便会往左旋转,进而减小偏差。这个乒乓控制策略比较简单,但是最大的一个问题,就是车模在行进的过程中会左右摇摆,严重影响行进的速度。那么,是否可以改变控制策略能够使得这个过程变得平滑,并且最终误差趋于 0 吗?这就需要引入经典的 PID控制。
三、PID控制
关于PID 控制的说明,在网络上有很多资料,大家可以通过网络自行学习, 这里给出他的一些基本概念。PID实际上是比例、积分、和微分的英文首字母的缩写词, 它表示,对系统的反馈误差信号,分别通过比例放大、 积分、以及微分运算之后,然后在通过一个加权系数将它们合并在一起,形成车模转向的控制量,进而去消除误差。
相比与乒乓控制,通过将误差乘以一个比例系数作为控制量,可以避免车模左右剧烈摇摆。将误差进行积分,可以有效消除残存的车模偏移。微分则可以有效抑制调节的过冲,它是牺牲一部分快速响应来获得稳定的效果。对于车模方向控制,由于方向本身就是对差速的积分,所以,通过左右轮进行差速控制的时候,常常只需使用比例和微分就可以了。不需要再引入积分,否则就有可能使得方向控制产生剧烈的过冲。
四、效果演示
为了更加直观的展示 PID 控制规律,这里通过 CSDN 上的一个博文中的动图来说明 PID 各个参数的作用。在这个直立的木板上,最左边的旋钮是一个设定位置的电位器,紧接着右边也是一个电位器,它的位置是由上面电机的输出轴带动。反应了电机的输出轴的角度。电机的旋转电压是通过对比设定电位器与检测电位器之间的电压差值经过 PID 调节来决定的。右边三个电位器分别可成设定 PID 的三个加权系数的大小。由于控制电机的电压决定了电机的转速,对应的位置是对转速的积分,这一点与智能车的两个前轮的差速,经过积分之后,转变成方向的偏差是一样的。现在只是进行 比例调节,可以看到电机的角度跟随设定旋钮的变化,效果是非常良好的。
▲ 图1.4.1 加入微分,可以消除震荡
接下来,增加了积分部分,此时,明显可以看到电机的输出角度跟随设定电位器的速度增加,但也出现了明显的震荡。这是因为误差的积分,再叠加上电机角度对转速的积分,使得反馈出现了过冲。如果此时,增加 微分系数,可以看到它降低了电机角度跟随设定电位器的速度,但是明显抑制了震荡现象,提高了控制的稳定性。这一点,对于车模方向控制也是非常重要的。
※ 总 结 ※
本文结合智能车方向控制,介绍了 PID 控制的基本概念,这个调节概念也可以应用于速度、位置等其它运动量的控制。利用动图演示了 PID 三个参数在具有积分特性的控制对象上所产生的效果。基于此,大家可以进一步优化智能车控制程序。