4.1控制算法方面
4.1.1传感器检测路面信息的处理
因为比赛要求智能车必须自主识别赛道路径,完全按照规定路线行走,因此如何确保智能车沿着黑线轨道稳定的行驶,并最大限度的提高车速将是我们在程序设计中的关键部分。我们将传感器安装距离地面2.5cm~3cm,相对地平面15°左右的倾角的同一高度上,13个光电传感器的输出信号通过4片LM339整形输出后给单片机的AD转换模块,即当传感器检测到黑线时输出为0,否则输出为1。
由于智能车通过13个一字形排列的传感器进行位置信号的采样,如果黑线在传感器的范围内,则至少一个传感器检测到黑线,所以水平偏差量的范围就是传感器数量的两倍减1,即[-12,12]。比如:传感器的值为0000000001000,则水平偏移量为+9,传感器的值为0110000000000,则水平偏移量为-10,以此类推。根据偏差量的不同对应着不同的舵机转角。按照如此分组可向MCU传送25组不同数字信号, 单片机通过判断高低电平的位置从而判断出黑线相对于车身的位置,并根据程序算法做出相应的反应。
4.1.2转向角度控制
在路径识别模块跟踪黑线的过程中,舵机的转向主要是依据路径识别模块获取的赛道参数信息,由单片机输出不同占空比的16bit、50Hz的PWM脉冲信号控制舵机的转动。舵机控制信号脉宽与转角在-45°~+45°内范围内呈线性变化规律。单片机通过PLL将总线频率倍频到24MHz,20ms时间需要计数60000次。经实验发现,舵机处于中间位置时,对应舵机控制信号PWMDTY45为4500,对应舵机旋转角度,一方面要考虑舵机的极限位置;另一方面考虑到车模转向的极限,通过测试最后得到大约40度左右的旋转极限角度。前轮向左右偏转到极限位置时,分别对应舵机控制信号PWMDTY45为4000和5000。
4.1.3采用PID算法控制舵机
PID控制器本身是一种基于对“过去”、“现在”和“未来”信息进行估计的简单控制算法。常规的PID控制器系统原理框图如图所示。
![]() |
|
图4.1 常规系统PID控制器系统原理框图 |

比例调节(P)的作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,会使系统的稳定性下降,甚至造成系统的不稳定。
积分调节(I)的作用:是系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,一旦停止,积分调节输出一个常值。积分作用的强弱取决于积分时间常数 , 越小,积分作用就越强, 越大,积分作用就越弱。加入积分环节可使系统的稳定性下降,动态响应变慢。
微分调节(D)的作用:微分作用反映系统偏差信号的变化率,具有预见性,能遇见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有产生之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此,过强的微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当系统没有变化时,微分作用为零。微分作用不能单独使用,需要与另外两种调节规律相结合,构成PD或PID控制器。
1)舵机控制中PID算法的实现
由于舵机的控制系统是一个时间离散控制系统,为了用单片机控制系统实现公式1,必须将其离散化,用数字形式的差分方程来代替连续系统的微分方程。此时,积分项和微分项可用求和及增量式表示:

根据PID控制器的原理得知,PID控制器的主要作用是平稳的消除系统产生的偏差。根据赛车的数学模型,就需要控制舵机来将黑线平滑的控制在赛车的中央。换言之,当黑线不在赛车中央的时候,赛车即产生了一个水平偏差,此时应用PID控制算法来消除这个水平偏差,从而达到让黑线保持在赛车中央的目的。积分作用是消除静差,但积分器可使动态响应变慢,这对于对实时性要求非常高的小车控制系统中不适合使用,因此本方案没有使用积分控制,将PID控制简化为PD控制。
PD调节虽然仍是有差调节,但在多次实验中可以看出,在实时性和稳定性方面,PD调节同样可以使舵机具有很好的转弯效果。
下面是PD控制器的结构,如下所示:
int Error=0; //水平偏差量
int dError=0; //水平偏差的微分
int Proportion=0; //P参数
int Derivative=0; //D参数
有了PD控制器对象,则输出为:
PID Out=Proportion×Error + Derivative×dError
至此,PD控制器的对象已经全部构造完毕,PID的输入为水平偏移量X0,输出为舵机转角。最后只需要在控制算法中将PD控制器对象的参数设置好,将当前赛车的水平偏移量计算出来并且当作PD控制器的输入,然后调用PD控制函数,得到的输出即为与舵机转角成比例的数值。



