在智能车竞赛中,速度控制不能采用单纯的PID,而要采用能够在全加速、紧急制动和闭环控制等多种模式中平稳切换的“多模式”速度控制算法,才能根据不同的道路状况迅速准确地改变车速,实现稳定过弯。
系统硬件设计
按照竞赛要求,本文设计的智能车速度控制系统,以飞思卡尔MC9S12DG128 单片机为核心[1],与车速检测模块、直流电机驱动模块、电源模块等一起构成了智能车速度闭环控制系统。单片机根据赛道信息采用合理的控制算法实现对车速的控制,车速检测采用安装于车模后轴上的光电编码器,直流电机驱动采用了由四个MOS管构成的H桥电路如图1所示,电源模块给单片机、光电编码器和驱动电机等供电。
系统建模
一个针对实际对象的控制系统设计,首先要做的就是对执行器及系统进行建模,并标定系统的输入和输出。为了对车速控制系统设计合适的控制器,就要对速度系统进行定阶和归一化[2]。对此,分别设计了加速和减速模型测定实验。通过加装在车模后轮轴上的光电编码器测量电机转速。编码器齿轮与驱动轮的齿数比为33/76,编码器每输出一个脉冲对应智能车运动1.205mm。车模可以通过调节加给电机的PWM波的占空比进行调速。单片机上的PWM模块可以是8位或16位的,为了提高调速的精度,电机调速模块选用16位PWM,其占空比调节范围从0到65535,对应电机电枢电压从0%到100%的电池电压。
将车模放置在一段长直跑道上,采用开环方式给驱动电机加上不同的电压,记录车模在速度进入稳定后的速度值。然后将所测得的电枢电压与车速进行拟合的曲线如图2所示,由图1可将智能车加速模型近似为线性模型。
根据实验数据可以确定车速执行器系统的零点和增益。车速V与占空比PWM_Ratio的关系见公式1:
V = PWM_Ratio×402 + 22000 (1)
其中:PWM_Ratio的取值范围为0-65535
车模减速有三种方法:自由减速、能耗制动和反接制动。自由减速动力来自摩擦阻力,基本认为恒定。能耗制动是将能量消耗到电机内阻上,制动力随着车速的降低而降低,也可通过控制使加速度减小得更快。反接制动通过反加电压实现,制动力与所加的反向电压有关。
由于轮胎抓地力有限,制动力超过一定值后会发生轮胎打滑的情况。一旦发生打滑,会使刹车距离变长,过弯半径变大。如果能使刹车力始终控制在临界打滑点上,则可以获得最短的刹车距离。在这三种减速方法中,只有反接制动可以根据不同的车速给出不同的反接刹车力,让车速以最大斜率下降。因此,通过大量实验测定出不打滑的最高刹车电压,最高不打滑划占空比约为55000。因为不同赛道会有差异,在编程时留有了余量。以震荡作为识别车模在刹车时是否打滑的标志。可以分取几个典型的车速,让车模在直道上加到预设的速度,然后分别用一组反接电压进行反接制动,观察并记录最高不打滑的刹车电压。这样,每个典型车速都得到一个对应的最大刹车电压。将最大不打滑反接电压与车速对比后,发现最大不打滑反接电压与车速成比例关系。考虑直流电机的模型,外部电压加到电机电枢上时,电机转子开始转动,产生反电势,此电压与车速成正比例关系。当转子上产生的反电势等于外加电压后,电机速度达到稳态。因此,反接制动电压减去电机产生的反电势之后剩下的电压部分才是用于减速的。在车模要减速的时候,可以先通过当前车速计算出转子的反电势,然后在这个基础上再叠加一个反接制动电压,送到执行器上。
车模前进的阻力主要分为地面滑动摩擦力和风阻,车模在行驶过程中质量保持恒定不变。在车速较低的情况下,风阻也可认为是恒值。结合以上实验数据和推理可知,车速模型的主要部分为一阶惯性环节。
速度控制策略
经分析,赛道大致分为直道,90度和90度以上的弯道和S形弯道等类型,要想在不同道路上发挥出最大速度,关键问题是如何判断出道路的情况,以下是几种道路的判断条件和通过策略。
a. 直道的判断条件和通过策略
当小车在中间三个光电管的检测范围内检测到黑线,则认为小车行驶在直道上,满足直道的条件就使小车加速,直至加到某个较大的值时满足刹车的条件。如果连续几十个周期都检测到了黑线,说明小车行驶在长直道上,而转弯时需要刹车。
直道最高限速度是赛车从长直道入弯时不冲出弯道的最高速度,小车行驶时不能高于这个速度。当然,刹车越及时,越灵敏,则直道上速度就可以越大。实验得到约为55000(对应PWM的占空比)。
需要刹车的最小速度是让小车从长直道入弯,不用刹车时能够顺利通过弯道的最高速度。当车的瞬时速度高于这个速度入弯时,启动刹车,反之,不用刹车。实验测得长直道入弯最高速度不超过50000(对应PWM的占空比)。
b. 弯道判断条件和通过策略
当小车不满足直道的条件时,则行驶在弯道上。由于弯道的曲率半径和角度的不同分为90度和90度以上的弯道和S形弯道。当小车行驶在弯道时,只有某一边的传感器连续检测到黑线,再根据两边的传感器检测到黑线时间的长短来确定弯道角度的大小;如果小车行驶在S形弯道上,则传感器检测到的值会在水平偏差范围内连续变化。总之在弯道上,要以弯道最大速度行驶。
弯道最大速度是让小车在弯道上一直加速,直至冲出赛道的速度。当赛车在弯道上的速度小于弯道最大速度时,就要调整PWM信号的占空比,使小车逐渐加速。实验测得所有弯道最大速度不超过32000(对应PWM的占空比)。
c.交叉线识别
按比赛规则,还有交叉线,但由于是直角交叉,因此只需要在多个传感器都检测到黑线的情况下保持原来的行进方向和速度继续前进即可。
结语
全国智能车竞赛最终比的是速度,要想取得好成绩就要让小车在不同的道路上都能以极限速度行驶。通过大量的实验得出小车在不同形状道路上的极限速度参数,根据不同道路的判断条件选择合适的参数,再根据速度值来调节PWM,从而实现智能车的快速稳定巡线行驶。