5.1 前轮转向控制
5.1.1 数字PID前轮转角控制
在采集图像完整清晰、赛道信息正确的情况下,我们采用简单直观的PID控制规律对小车进行闭环控制。
单片机上实现的PID控制为离散时间的控制,以位置式数字PID为例,其算式为:
式(5)
其中U为控制输出,,,dpiKKK分别为P、I和D系数,e( i )第i次控制周期的偏差。
i
我们选取采集图像中第10行的偏差作为小车的当前偏差,考虑到模型车在高速运行的时候,舵机的延时环节可以等效成一个积分环节,该环节对道路中的蛇形线和路径检测中的干扰进行了平均,保证了模型车的稳定性,所以我们在控制规律上可以省略积分环节,采用PD控制策略。
如果采用恒定的P参数对小车进行控制,在很容易出现直道上小车来回震荡、弯道转向不足的现象。所以我们对P参数进行非线性处理,即非线性PD控制。

图5.1 非线性P调节
如图5-1所示,P_out为比例项输出,偏差在-2~2时为比例区间,输出为0;当偏差绝对值在2~8时,输出一个较小的数值,对赛车产生的位移进行微调;当偏差绝对值大于8时,比例系数增大,P_out输出较大值,使舵机快速动作,以纠正大偏差。这样即实现了系统在直道上时缓慢调节,遇到弯道时迅速动作。
5.1.2 坏帧情况处理
采用摄像头方案的小车,其前瞻距离较大,但对于靠近小车侧的路面信息检测较为困难。在遇到急转弯时,摄像头经常会遇到看不到黑线的情况,称为“坏帧”。如何在摄像头无法拍摄到赛道的情况下正确有效地控制好赛车,是小车控制策略中一个比较重要的部分。
经过反复实验和研究,我们定义坏帧时的控制策略为减速、舵机转角逐渐加大,若连续10次控制周期均为坏帧时将舵机打到底,速度设为最慢。
同时,由于赛车前部安装了光电管,在坏帧时我们利用光电管可以检测到赛车当前在黑线的左侧还是右侧,从而判断赛车当前是转向过度还是转向不足,以进行微调。
该策略的算法描述如下:
if(BadFrame){
BadFrameCnt++;
if(BadFrameCnt>10||Speed>100){
servo=servo*2;
}
else{
if(servo>0){
servo+=50;
}
else{
servo-=50;
}
}
if(servo>SERVO_R){
servo=SERVO_R;
}
else if(servo<SERVO_L){
servo=SERVO_L;
}
}
else{
BadFrameCnt=0;
}
通过这种控制策略,赛车能够迅速流畅地通过各种弯道,实际效果良好。
5.2 速度的闭环控制
5.2.1 闭环速度控制
赛车在赛道上随不同赛道情况负载随时变化,如果单纯地给定固定的PWM占空比进行开环控制,系统响应时间长,如果使用开环控制调速效果较差。
由于硬件上安装了车速传感器,通过单片机脉冲累加模块我们可以计算出赛车当前的车速,然后采用PID闭环控制,可以及时快速地调节车速达到预定值。
从Bang-Bang控制理论出发,为达到最快的速度响应,我们对速度闭环控制可以采取如下控制策略,当速度低于设定值时,电机以最高速度运转,当速度超过设定值时,电机停转,即:
式(7)
通过实际测试我们发现,由于控制周期不可能足够短,并且电机延迟较大,该方式实际效果不佳,赛车速度时快时慢,极不稳定。我们对控制模型进行改进,在大误差下使用Bang-Bang控制,在速度接近设定值时,切换为PID控制。
式(8)
使用Bang-Bang控制结合PID,赛车速度能被准确地控制在设定速度上,时间响应快。
5.2.2 刹车功能的实现
理想的赛车速度控制应当是直道上赛车以极限速度全速 运行,在入弯的瞬间将速度降至通过该弯道安全车速,出弯后立即以极限速度运行。
为了尽量提高直道上的车速并保持入弯后车速足够安全,赛车必须能在最短的时间内刹车。
在现有的硬件上实现刹车有三种方法:
(1)使用机械结构刹车。在赛车左右后轮分别安装一个伺服电机,控制刹车片抱死后轮,以达到刹车的功能,和实际车辆的刹车原理相似。使用该方法需要增加两个伺服电机,如果左右刹车量不一致,赛车就会发生偏移,所以需要对左右轮车速进行分别测量,并结合赛车转向情况综合计算,系统较为复杂,实现困难。
(2)暂停驱动电路输出。本方式为常用的刹车功能,具体操作可以断开驱动电路或给电机0占空比实现,实际效果是使赛车向前滑行,依靠轮胎与地面的摩擦力减速。但由于刹车距离较长,高速运行的赛车需要相当长的一段滑行才能达到转弯的安全车速,所以效果并不理想。
(3)电机反转。该方式综合利用电机电磁制动和赛车后轮差速器结构进行刹车。高速运行的赛车刹车时,对电机施加一个反向电流,在电机内部磁场发生反向,使转子受到很大的磁力矩作用,迅速减速并反转。由于本模型车后轮装有差速器,允许左右后轮和传动齿轮分别以不同速度转动,当电机与赛车后轮转向相反时,他们之间摩擦力能使赛车很快减速。实际使用倒转功能进行刹车效果非常明显,但频繁对电机和驱动电路施加反向电流,两者的发热相当明显。
综合以上三种刹车方式,制定了快速减速的方案:在速度差较大时电机反转,速度差较小时赛车滑行,效果良好。
在现有的速度控制策略基础上加入刹车功能,我们将智能车速度控制策略设定为:

5.3 小结
我们根据PID控制规律对赛车前轮转角进行控制,纠正其与赛道中心的横向位移和夹角,加入非线性比例控制,使赛车稳定地通过不同的弯道,尤其对蛇形弯道进行了优化,提高了赛车的成绩。
对赛车速度的控制上我们采用了Bang-Bang控制结合PID的控制策略,并结合电机滑行和反转功能实现了快速刹车。在保证赛车平稳运行的前提下进一步地提高了速度。


