李晨,宓超
(1.上海海事大学 集装箱供应链技术教育部工程研究中心,上海 201306;2.同济大学 机械工程学院,上海 201804)
为加强大学生实践、创新能力和团队精神的培养,教育部高等学校自动化专业教学指导分委员会主办“飞思卡尔全国大学生智能车竞赛”.该竞赛要求在标准技术平台下完成软硬件系统的设计,制作一辆能在规定的赛道上自动识别路线的赛车,没有冲出赛道及其他违规现象并最快完成全程为获胜者.[1]论文结合上海海事大学参与此竞赛的实际经验,讨论智能车控制系统设计、硬件平台搭建以及软件系统的实现.
智能车必须采用竞赛委员会规定的技术平台,包括赛车模型、电机、舵机、电池以及由飞思卡尔公司提供的单片机;按道路传感器分为光电组和摄像头组两个组别进行比赛,摄像头组可使用光电传感器,光电组不能使用摄像头,赛车上的传感器数量不得多于16个.赛道表面为白色,形式包括直道、交叉道、回头弯、S 型等,弯道处赛道宽度为60 cm,直道处宽度为45 cm,中心有2.5 cm 宽黑色轨迹线.
选用飞思卡尔16 位单片机MC9S12XS128 作为核心控制单元,由传感器系统采集道路信息和速度信息,由电机驱动系统控制赛车速度,由舵机驱动系统控制运行方向,由人机交互系统完成系统设定和信息显示,系统的总体结构框图见图1.
图1 系统结构框图
单片机MC9S12XS128 拥有128 K 的Flash 程序空间,8 通道24 位中断定时器,8 通道16 位定时器,8 通道PWM 波输出和8 通道12 位精度的AD 转换器;同时集成CAN,SPI,SCI和UART 等通信接口;使用16 M 外部晶振,通过锁相环最高可倍频至96 M;最小系统包括外部晶振、复位电路及BDM 调试接口电路等.[2-3]
电机驱动是决定赛车速度的关键.小车使用RS380 型直流电机,7.2 V 供电,采用PWM 脉宽调制的方法进行电机调速.在电机驱动方案中有专用电机控制芯片、场效应管、达林顿管等供选择使用.[4]前期设计采用MC33886 控制芯片,集成有H桥,4 片MC33886 并联可以减小内阻,但匹配性差导致运行不稳定.[3]最终选用场效应管自搭驱动电路,见图2.采用半桥电路控制方式,MOSFET 采用IRF9540和IRF540,8 片并联的形式,减小内阻增加驱动能力,同时电机回路串入大功率电阻进行能耗制动.
图2 电机驱动电路
设计初期,为了降低调试难度,采用开环控制模式,赛车运行平稳但速度无法提高,所以赛车控制须建立速度检测环节,进行闭环控制.速度检测同样有多种方案,对射光耦或槽型光耦、霍尔元件、测速电机、高精度编码器等各具特点.综合分析后选择槽型光耦作为测速元件.将槽型光耦安装在传动轴上方,使穿过光耦间隙的齿轮旋转时触发脉冲,由单片机高速脉冲计数器采样,再根据车轮直径和转速等换算成近似速度值.
赛道检测用的传感器相当于赛车的眼睛,通过它自动检测赛道上的黑色轨迹线,可以通过光电传感器和摄像头实现.光电传感器扫描速度快、控制简单,但探测距离近;摄像头则具有探测范围广、精度高等优势,前瞻性好,利于速度控制,同时也存在易受干扰、处理信息量大等缺陷.[4]本设计综合两种方案的优势,采用摄像头作为主要检测元件,并由安装在赛车前方的光电传感器辅助检测近处道路,锁定黑线,识别起跑线.摄像头选用380 线CMOS,采用LM1881 作为视频同步分离芯片,提取场同步信号和行同步信号.
采取模块化设计思想先分别设计出各单元的底层驱动程序,再设计出各功能模块子程序.主要包括各模块初始化、摄像头数据提取、赛道数据分析、速度与方向控制、速度检测、键盘扫描、数据通信、功能显示与设定等功能模块.控制算法主要包括以下3个方面的内容:摄像头循线控制算法,光电管识别控制算法和PID 速度控制(即比例、积分、微分控制)算法,其中:循线控制算法用来控制舵机的转向,光电管控制算法主要用来解决起跑线识别,PID 控制算法主要用来控制智能车的快速加速、减速和速度的平稳.图3为主程序算法流程.
图3 主程序算法流程
采用基于反馈控制的PID 控制算法.它结构简单,易于调整参数,适应性强;对于控制模型不准确、参数变化大的控制对象,采用此方法可以得到满意的结果.[5]本设计中采用增量式PID 控制,控制方法如下
式中:Δu(n)为第n 次输出增量,则u(n+1)=u(n)+Δu(n);KP,KI和KD分别为比例、积分和微分的调节参数;e(n)代表位置偏差.
图4为PID 控制器原理图.在实际应用中,采样的反馈值y(t)即为单片机脉冲累加器中的脉冲数,预设门限值在参数整定时根据实际情况调节,输出u(n)并不能直接控制电机,需要将其转换为控制PWM 占空比,然后用增大或减小PWM 占空比的方法实现对电机的加减速控制.[6]换言之,在求偏差量时,实际是将每20 ms 电机转过的齿轮数和期望电机转过的齿轮数的差值乘以相应的系数,即KP,KI,KD的协调控制,计算出相应的PWM 占空比.
图4 PID 控制器原理图
由于在程序中使用中断程序采集图像,PID 采样周期的选择受限制于图像采集.每行的扫描周期为64 μs,有效扫描时间为52 μs,每隔6 行采集一行图像,如果在每行加入PID 调节,那么处理PID 子程序的时间必须控制在64 ×5=320 μs 内.另外,图像采集只是采集奇场中的行数,在偶场中没有采集,因此PID 子程序的执行不均匀,并没有达到预期效果,还可能会影响视频采集.经过分析,最终决定将PID的采样周期定为20 ms,即每进行一次场采集后进行一次PID 调节.经过最终检验,这样能够满足对速度控制的需要.
设计使用MC9S12XS128 单片机的大多数模块,充分利用单片机资源,小车运行稳定,比赛过程中未出现冲出赛道的情况.通过整个设计过程,大学生们的科研能力和动手能力得到锻炼,项目开发经验有所积累.该技术方案还可推广到智能机器人、自动导向车等方面,具有较广泛的应用价值.
[1]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:清华大学出版社,2004:16-22.
[2]吴斌华,黄卫华,程磊,等.基于路径识别的智能车系统设计[J].电子技术应用,2007(3):80-82.
[3]彭建学,马永军,汤天浩.一种微弱电流测量仪的设计[J].上海海事大学学报,2008,29(4):55-59.
[4]唐红雨,陈迅.高速图像数据采集与处理系统的硬件设计[J].电子技术,2006,33(12):56-60.
[5]施庆华,沈爱弟,褚建新.基于GPIB和局域网的分布式自动测试系统开发和实现[J].上海海事大学学报,2006,27(3):77-81.
[6]吴卫国,蒋平,陈辉堂,等.移动小车轨迹跟踪的力矩控制[J].控制与决策,1999,14(2):177-180.