谭小刚,张卓然,杜鹏浩
(湖北汽车工业学院 电气与信息工程学院,湖北 十堰442002)
智能汽车是安装有特殊设备的交通载体,为解决现代城市交通拥挤和堵塞问题提供了有效途径,目前研究的重点为避障、路径识别、自主行驶。本智能小车的设计背景是:KT板道路中间铺设了一条直径为0.5mm的铜质漆包线,漆包线中有频率范围为20±2kHz,电流范围为50~150mA的正弦波信号,设计一款小车能够正确识别道路中的铜导线并能巡线行驶。
根据小车的设计背景,制定如下设计思路:通过LC振荡电路感应铜导线中的正弦波信号,将所得信号放大,然后输入到单片机中的A/D口,通过对采样数据的分析比较,判断安装在车体左侧和右侧的传感器的采样电压值是否相等,以“左边小,右转;右边小,左转”的转向原则,通过单片机内部PWM模块发出的一路PWM波,对转向舵机进行转向控制,同时根据判断结果,以“采样值对称就加速,否则就减速”的速度控制原则,通过PWM模块发出的另外两路PWM波及由H桥构成的电机驱动电路驱动直流电机对小车进行加速和减速控制,另外小车后轮上安装光电编码器,采集离合器输出的脉冲信号,经单片机捕获后再结合PID算法对小车进行精确的调速控制,这样小车便可在道路上自主巡线行驶[1]。
根据以上设计思路,可将智能小车系统分为电源模块、核心系统模块、转向舵机模块、驱动电机模块、速度检测模块、路径检测模块,模块结构图如图1所示。
电源模块:系统主电源由7.2V/2000mA的蓄电池提供,MC9S12XS128单片机和路径检测模块需要的供电电压是5V,用一片普通的LM1084芯片降压并稳压即可满足要求,电机直接用7.2V电压驱动。关键是舵机需要供给一个稳定的5.5 V电压,经过筛选与实际测试,选用一片LM1084-ADJ芯片可实现该目的,设计原理图如图2所示。
核心系统板模块:采用MC9S12XS128单片机作为控制器。
转向舵机模块:采用北京科宇通博科技有限公司生产的S-D5数字舵机。
驱动电机模块:电机采用车模统一配置的540直流电机,由2片BTS7960组成的H桥来驱动,设计的电机驱动原理图如图3所示。
速度检测模块:采用OMRON公司的500线光电编码器,通过脉冲累加器计数来检测小车行驶速度。
路径检测模块:根据电磁感应原理,采用LC振荡电路感应通电铜导线中的正弦波信号,再经过LM833D放大,便可得到稳定的正弦波信号,设计电路原理图如图 4 所示[2]。
路径检测传感器电路只是路径检测的一种理论实现,要获得准确的正弦波信号,还必须研究电感的布局。
通过实践研究,发现有如下规律(为了叙述方便,建立如图5所示XYZ坐标系,且相应方向上的感应电压值为 VX,VY,VZ,)[3]:
1)电感轴心平行X方向时,电感距离直导线越近,VX越大,反之越小。
2)电感轴心平行Y方向时,电感传感器对弯道具有“前瞻性”,能较远地感应到弯道区,但在直道上,VY较小,且物理位置对称的传感器其VY不够对称。
3)电感轴心平行Z方向时,从导线上方到跑道边沿,VZ先增大后减小。
通过综合分析,采用布局方式中传感器参数线性度好,能较好反应电感空间位置与直导线距离的布局方案,即电感“一”字型排布,制作PCB见图6。
分析智能小车的运动过程,经反复测试与验证,最终制定了如图7所示的控制流程图 。
根据控制流程图可知,舵机模块和直流电机模块的控制是否得当直接影响整个智能小车系统的稳定性与快速性,下面分别介绍舵机模块PD控制策略和直流电机模块PID控制策略。
舵机的PD控制:转向舵机的控制由一个量来决定,那就是传感器PCB上物理位置对称的一对水平传感器的感应电压值经过滤波加权求平均值处理后所得的偏移量offset,offset的得出:
再根据offset计算舵机的转角PWMDAT:
式中:k1、k2是比例系数,从理论来讲应该是一样的,可实际过程中由于电路板上各处的电磁干扰有差异,所以需根据实际来进行微小调整。同时为了防止小车在直线上出现震荡的情况,采用了二次项配合一次项的PD控制公式。
直流电机的PID控制:直流电机的PID连续控制系统如图8所示[5]。图8中:Kp为比例系数;Ti为积分常数;Td为微分常数;Xo是信号偏差为零时的基准量;Go(s)是系统固有部分,则时域方程为
由PID控制系统知该系统的传递函数为
令 Kp(TiTds2+Tis+1)/(Tis)=0,则有
通过式(1)~(3)可知
综上述可知,该直流电机PID系统不仅在保证系统型别的前提下使系统有较好的稳态性能,同时由于负实数零点的存在,系统在动态性能方面也有更大的优越性。
实际也证明,为了达到较好的速度控制效果,对速度进行闭环控制是必须的。这里所说的速度控制策略是指设定速度的确定方法——设定速度主要由道路与直道的偏差来决定,道路越接近直道,设定速度越高,反之越低。
整个速度控制是由两部分组成的:首先通过PID公式根据偏移量得到需要的给定速度,然后通过给定速度与实际速度之差再来给定送给驱动芯片的PWM。
给定速度的计算直接采用PD控制:
prespeed=presetspeed-abs(PWMDTY01-PWM_MID)/
((PWM_MAX-PWM_MID)/(presetspeed-bendspeed));
而PWMDTY01的值与各传感器的偏移量有关系:
代码中,presetspeed为用拨码开关设的小车行驶中的最高度,也是直线的速度,PWM_MAXPWM_MID作为比例系数,根据不同的偏移量减去相应的速度,最后面的是微分部分。
实际给定的PWM通过给定速度以及当前测得的速度来给出:
代码中,speed为当前速度,ek为给定速度与当前速度之差,调速需要的就是将现在的速度尽快变成需要的速度。当ek=0时,给定速度和当前速度相同,那么就需要给一个固定的占空比用以维持当前的车速,因此将正反转的条件以ek是否不小于4来区别,这个数据最终通过多次试车观察效果得到,取决于测速精度、采样精度等。
该电磁智能小车系统经过实际验证,能达到以下目的:能在直道、弯道、坡道、十字道自主巡线行驶;能准确识别起跑线并停车(图9)。
此智能小车系统也存在不足之处,如用经典PID理论控制小车在自适应性方面有待进一步优化。
[1] 卓晴,黄开胜,邵贝贝.学做智能车[M].北京:北京航空航天大学出版社,2007.
[2] 康华光 .电子技术基础模拟部分[M].5版.北京:北京高等教育出版社,2005.
[3]李仕伯,马旭,卓晴.基于磁场检测的寻线小车传感器布局研究[J] .电子产品世界,2009(12):41-44.
[4]王宜怀,张书奎,王林,吴瑾.嵌入式技术基础与实践[M].北京:清华大学出版社,2011.
[5] 高国燊,余文烋,彭康拥,陈来好.自动控制原理 [M].广州:华南理工大学出版社,2009.