基于单片机的智能车速度控制系统
2018-01-22陶佳
陶佳
摘要:本文重点介绍了基于光电自动寻线智能车的速度控制系统的设计,包含直流电机的驱动模块、速度检测模块、速度控制策略、速度控制周期等部分。采用两片MC33886芯片来驱动电机运行,用反射式红外对管检测电机速度,实现对电机的闭环控制,通过大量的试验,最终速度控制策略采用了增量式PID控制和BangBang控制相结合的方法,并创新性地使用两个中断相结合的方法使得速度控制周期为等时的,从而对智能车过弯速度达到良好的控制。
关键词:速度控制;增量式PID控制;BangBang控制;控制周期
DOI: 10.3969/j.issn.1005-5517.2017.8.010
引言
在智能车制作中,利用ATmega16单片机作为核心控制单元,以摄像头为路径识别传感器,分别设计控制系统,使得模型汽车能够自动准确地按照规定的椭圆路线行驶,速度控制是智能车控制系统最核心的部分之一,本文就如何设计智能车速度控制系统做了详细介绍。
智能车速度控制系统包含电机驱动模块,速度检测模块,速度控制策略,速度控制周期等,如图1所示:
1 电机驱动模块
系统所用电机是RS-380型号的直流电动机,其额定工作电压为7.2V,能输出0.9-40W的功率。使用两片MC33886芯片并联来驱动电机,其中MC33886为H桥式电源开关IC,该IC结合内部控制逻辑、电荷泵、栅极驱动器、MOSFET输出电路,可工作在5-40V电压范围内。通过PWM信号调节输出,进而调节电机转速,PWM的控制频率为1KHz,PWM23可用于正转控制,PWM45可用于反转控制,OUT1和OUT2接于直流电机上,用来实现在直道时快速加速,弯道实现反转刹车来快速减速。电路图如图2所示。
2 速度检测模块
2.1 速度检测硬件
直流电机的速度的检测方案是:用MATLAB自制黑白相间且均匀等分的编码盘,如图3(a)所示。将编码盘黏贴于圆盘上,当圆盘随着齿轮转动时,利用反射式红外对管ST188接收强弱交替变化的反射光,再通过I/O口将高低脉冲电平传给单片机的输入捕捉中断中进行计算。自制测速装配图和速度检测模块原理图分别如图3(b)和如图3(c)所示。
该方案具有成本低廉、制作容易、负荷小的优点,配合单片机的输入捕捉功能可以实现高精度的速度采集。
2.2 速度的计算
方案中的數字测速的计算方法是采用T法。T法是指在两个相邻的输入脉冲的间隔时间T内,用一个计数器对高频基准信号的脉冲数进行计数,由计数值来计算转速,原理图如图4所示。
计算公式推导:设计码盘格数为40,旋转一周能产生20个脉冲。高频基准信号是通过对系统时钟1 28分频获得,实际频率f0=24M/128=187.5KHz。在T法测速中,测速时间T是用计数器所得的基准信号脉冲个数M2来计算的,即T= M2/f0,对应后轮转速为:n=2/ZT=2fO/ZM2,经测量小车的后轮周长为17cm,所以小车速度的计算公式如式(1)所示:
3 速度控制策略
3.1 增量式PID控制,2l
本方案采用增量式PID来使智能车能够匀速稳定地行驶,增量式PID的速度检测信号M2高频基准信号T计算公式如式(2)所示:
3.2 BangBang控制
BangBang控制的思想是:定义速度误差en为给定速度减去反馈速度,当en大于设定值ek时,就强制输出一个最大值Um。,;反之,如果速度误差en小于设定值(-ek)时,就强制输出一个最小值Umax 在速度误差较大时,Bang_Bang调节比PID调节响应速度更快、更及时。计算公式如式3所示。式中en为给定速度减去反馈速度的差值。
3.3 增量式PID控制配合BangBang控制
为了实现,在赛道曲率变化不大时且智能车高速匀速稳定行驶,采用增量式PID控制。在从直道行驶入弯道时,智能车能够很快地反转刹车,降低速度,从而良好通过弯道:在弯道进入直道时,智能车能够很快地提高速度,以高速在直道上行驶。我们采用的速度控制策略是增量式PID控制配合Bang_Bang控制,当给定速度与反馈速度相差不大时,采用增量式PID控制,当给定速度与反馈速度相差较大时, 采用Bang_Bang控制,计算公式如式4所示:
4 速度控制周期
采用的控制周期方案是:
测速程序是通过单片机的输入捕捉中断来完成的,即车轮每转一周(0.17m),将产生20次中断,在这20次中断过程中,能运行20次的速度检测,如果按照平均车速1 .8m/s计算的话,那么每一次输入捕捉中断的时间为:0.17/(18×20)=4.7ms,也就是每隔4.7ms得到一个反馈速度。
速度控制程序是指单片机每隔一定时间(如lOms)根据给定的速度和反馈速度进行速度的闭环控制。反馈速度是通过上面的输入捕捉中断方式读取,给定速度通过查询方式获得。速度控制程序在定时中断程序中执行,而定时中断是通过模数递减计数器来实现的。
这样程序在运行中存在两个中断,并且输入捕捉中断优先级高于模数递减计数器的定时中断。输入捕捉的频率为定时中断的两倍,这样,每执行一次定时中断,反馈速度有两个值,由于两个值的时间间隔比较短,取前一次的值代表当前速度,并且测速程序执行所占有的时间极短,因此输入捕捉中断对速度控制程序的影响不大。
等时控制是指控制程序每隔一定时间执行一次,等距控制是指控制程序每隔一定的距离执行一次,由于控制周期不受车速控制,所以等时控制优于等距控制。方案一采用自制的用反射式红外对管测速,价格便宜,但控制周期是等时的:方案二采用旋转编码器测速,价格昂贵,但测速精度相对高,控制周期是等时的。我们的方案用反射式红外对管测速,价格便宜,控制周期是等时的。电机速度控制的流程图如图5所示。
5 仿真结果
图6为己制作完成的智能车实物照片,我们在自制的跑道上进行了实际测试,得出以下试验结果:获取了一组比较好的PID参数,Kp=50,K1=3,KD=4,在该参数下,智能车能够得到较快、较好且平稳的速度。当速度误差e。(给定速度减去反馈速度的差值)大于70cm/s时,电机驱动输出Un为90%的占空比;当速度误差e。(给定速度减去反馈速度的差值)小于-70cm/s时,电机驱动输出Un为10%的占空比。在PID和BangBang控制下速度变化范围较大,实现了快速加速,快速刹车。
6 结论
经过大量的实验调试,智能车在基于两片MC33886并联组成的驱动上,能够实现良好的电机正转和反转控制。通过使用反射式红外管能够比较稳定和精确地检测速度,计算速度。用于测速的输入捕捉中断和用于速度控制定时中断两个相结合能够很好地实现控制周期等时。使用的PID和BangBang的结合的控制策略,通过不断调试,选择合理的参数,实现了智能车根据路径识别来闭环调节速度,在赛道曲率变化不大时的匀速行驶,在赛道曲率突变时的速度急增急减的效果,并且智能够使智能车长时间的良好运行,印证了该方法的可靠和有效。
参考文献:
[1]卓晴,黄开胜,邵贝贝学做智能车——挑战“飞思卡尔”杯[M]北京:北京航空航天大学出版社,2007
[2]邵贝贝单片机嵌入式应用的在线开发方法[M]北京:清华大学出版社,2004
[3]王威HCS12微控制器原理及应用[M]北京北京航空航天大学出版社,2007
[4]马潮AVR单片机嵌入式系统原理与应用实践[M]北京:北京航空航天大学出版社2007endprint