邓开连 周芳管 崔灿 曾凡楷 丁贺 靳思宇
摘 要: 该文设计一种基于KEA单片机的智能循迹小车。介绍智能小车系统结构设计:由安装在智能小车前端的电磁传感器获取路径信息,并将这些信息送入KEA单片机控制系统进行分析处理,通过PID控制算法对小车的双电机进行PWM控制,使得小车沿着电磁线前进,达到循迹的目的。智能小车的硬件设计包括电源稳压模块、传感器模块、电机模块、陀螺仪模块等。软件设计包括PID控制模块、电感采集模块、速度采集模块等。实际调试过程中,智能小车能自适应直线、弯道、坡道、圆环等各种复杂路况。试验结果表明,整个系统结构简单,鲁棒性高,实现了一个同时具备速度控制、数据采集、自动循迹和路径规划识别功能的智能车。
关键词: 智能循迹; KEA; 路径信息获取; 信息分析; PWM控制; 路径规划
Abstract: An intelligent tracking cart based on KEA microcontroller is designed. The structure design of the intelligent trolley system is introduced. The path information is obtained by the electromagnetic sensors installed on the front of the smart trolley. The obtained information is sent to the KEA microcontroller control system for analysis and processing. The PID control algorithm is used to perform PWM control for the two motors of the trolley, so that the trolley advances along the electromagnetic line to achieve the purpose of tracking. The hardware design of the smart trolley includes a power supply voltage stabilization module, a sensor module, a motor module, a gyroscope module, and so on. The software design includes PID control module, inductance acquisition module, speed acquisition module, etc. In the actual debugging process, the smart trolley can adapt to various complicated road conditions such as straight line, curve, ramp and circle roads. The testing results show that the entire system has a simple structure and high robustness, and has realized the functions of speed control, data acquisition, automatic tracking, path planning and path identification.
Keywords: intelligent tracking; KEA; path information acquisition; information analysis; PWM control; route planning
0 引 言
智能循跡小车是一个含路径规划、环境感知、自动行驶等功能的综合系统,涉及到电机及其控制、信息、导航、计算机、车辆工程等诸多领域[1?2]。本文以KEA为控制核心,通过电磁传感器识别路径,编码器检测当前的速度,微控制器读取传感器当前状态,从而控制相应的电路,进而控制小车前进的方向和速度。通过构建单片机最小系统模块、电源模块、传感器模块、电机驱动模块、人机交互模块、陀螺仪模块、PID[3?4]控制模块、采集模块等组成的智能小车系统,实现小车的智能循迹功能。
1 系统结构设计
1.1 结构设计
智能循迹小车主要包含电源模块、传感器模块、电机驱动模块、PID控制模块、陀螺仪模块、采集模块等,采取了模块化的设计思想。智能小车的工作过程为:由安装在智能小车前端的5个电磁传感器获取路径信息,并将这些信息送入单片机控制系统进行分析处理,通过PID控制算法[5]对小车的双电机进行PWM[6]控制,使得小车沿着电磁线[7]前进,达到循迹的目的。系统总体框架图如图1所示。
1.2 循迹原理
设计采取三轮前向驱动小车,即小车的前面是一个万向轮,起到支撑作用,后面为两个双电机控制的驱动轮,由单片机输出PWM信号分别控制两个电机,通过两轮差速实现小车的转向控制。循迹路线是由一条铺设在地上并通有220 V,50 Hz交流电的电磁线组成。循迹路线包括直线、弯道、十字交叉路口、大圆环、坡道等。
循迹的电磁传感器共5个,安装在小车前侧(距车身约30 cm,距地面约20 cm),其中中间3个传感器呈“一字型”排列,用于小车正常循迹,两端的2个传感器与地面呈45°放置,用于判断圆环,从而进行特殊处理。电磁传感器在使用前需要进行标定,标定方法如下:将小车平放在赛道直线上,通过调整电磁传感器的放大倍数,使得中间3个传感器达到最大值,两端的2个传感器示数基本相等,将小车完全偏离赛道,此时前瞻上的5个传感器的示数应达到最小值。在小车行驶过程中,通过对中间3个电磁传感器的示数进行归一化处理,并将得到的偏差值传入PID控制,从而控制小车的转向,使小车始终沿着轨迹行驶。两端的2个传感器是为了检测圆环这种特殊地形而设计的。在碰到圆环时,中间3个水平传感器的反应不灵敏,而两端的2个45°角的传感器由于与电磁线正好垂直,示数达到最大值,此时改用两端的传感器进行循迹,使小车能顺利通过圆环。另外,在小车的前面固定了一块垂直放置的MPU6050陀螺仪模块,用于检测坡道的存在,使小车上坡加速,下坡减速,从而让整个行驶过程更加流畅。
2 硬件电路设计
2.1 最小系统模块
以KEA为核心的单片机最小系统板是智能车的核心。KEA 具有以下特性:高达48 MHz ARM Cortex M0+内核单周期32位X32位乘法器,内置高达128 KB闪存,高达256 B E2PROM,高达16 KB RAM;外部振荡器(OSC),内部时钟源(ICS),带独立时钟源的看门狗(WDOG),可编程循环冗余校验模块(CRC),串行电路调试接口(SWD),SRAM位带别名区(BITBAND),位操作引擎(BME),拥有2个SPI模块,3个UART模块,2个I2C模块,1个CAN模块。KEA最小系统图如图2所示。
2.2 稳压模块
为满足需要,自动运输工具存在4种供电电压:
1) 自动运输工具使用镍镉充电电池,充满电时电压在7.8~8.2 V,是所有模块的供电电源,经过电压转换后供给各个模块使用。为防止感应电动势使芯片烧毁,使用74LVC245作为隔离芯片保护核心板。
2) 一些芯片使用直流5 V供电电压,采用LM2940?5.0稳压。
3) 一些芯片采用直流3.3 V供电电压,采用ASM1117?3.3进行稳压。
4) 电机驱动芯片需要使用直流12 V供电电压,采用MC34063稳压。MC34063稳压模块如图3所示。
2.3 传感器模块
电磁传感器能够对变化的磁场信号做出灵敏的检测,从而检测当前的道路状况,是电磁循迹小车最重要的模块之一。系统根据 LC谐振的原理[7?8],选择合适的电感和电容作为LC谐振电路,产生感应电流,再通过滤波、放大,然后将结果送入单片机A/D模块[9]进行相应的处理,以判断赛道当前信息。
2.4 电机驱动模块
采用了2个半桥驱动芯片IR2104组成一个全桥驱动器[10],驱动直流电机转动。控制方式: PWM1,PWM2为单片机输出的控制信号,通过设置PWM1,PWM2可以实现电机的正反转和制动。电机驱动模块如图4所示。
2.5 陀螺仪模块
为了检测行驶道路上可能出现的坡道,避免出现上坡时因为速度不够无法过坡和下坡时速度过快冲出道路,所以采用MPU6050[11]六轴传感器来读取智能车的倾角,从而判断坡道的位置,执行上坡加速、下坡减速的操作。
3 软件设计
3.1 PID控制模块
PID控制是工程实际中应用最为广泛的调节器控制方法。它以工作可靠、结构简单、调整方便、稳定性好,成为工业控制的主要技术之一[12?13]。PID控制原理框图如图5所示。
单位反馈e代表理想输入与实际输出的误差,这个误差信号被送到控制器,控制器算出误差信号的积分值和微分值,并将它们与原误差信号进行线性组合,得到输出量[un]。其表达式如下:
式中,[KP,KI,KD]分別称为比例系数、积分系数、微分系数。将输出量[un]送到感应器,产生新的误差信号并再次传入PID控制器,这个过程周而复始地进行。数字控制系统中,计算机只能处理离散的数字量,所以进入计算机的连续时间信号,必须经过采样和量化后,变成数字量,才能进入计算机的存储器和寄存器,所以对导数项用后向差分逼近,得到数字PID控制器的基本算式(位置算式)[14],表达式如下:
式中:单位反馈[en]代表理想输入与实际输出的误差;[T]是采样时间;[KP]为控制器的比例放大系数;[TI]为控制器的积分时间;[TD]为控制器的微分时间。在实际代码实现算法时,往往处理成如下形式:
式中:[error]为参考值与反馈值的差;[PreError]为上次保留的误差;[derrF]为本次误差与上次误差的差值;[un]为计算得到的调节值。根据以往资料和测试,将定位算法解算出的导线位置当作反馈值(Feedback),参考值(Ref)设为0,则有:
式中,[PreIntegral]表示误差的累计值。为了防止电机频繁调节,需要设置调节死区(-LOCA_DEADLINE,LOCA_DEADLINE)。如果[error]在死区内,则不进行调节,维持上一状态。同时为了防止电机输出过大,需要设置最大调节范围(-LOCA_MAX, LOCA_MAX),如果PID算出的输出超过了最大值,则赋给电机边界值LOCA_MAX。
3.2 滤波模块
由于电磁传感器在检测中存在干扰或噪声,所以要对得到的数据进行算法滤波来防止干扰。在这里选择“加权递推平均滤波法”[15]。这种算法的特点是给予新采样值的权系数越大,则灵敏度越高,但信号平滑度越差。选取合适的权重可以得到较好的滤波效果。加权递推平均滤波法的流程图如图6所示。
3.3 速度采集模块
测速模块信号端接单片机PT7。使用单片机的16位脉冲计数模块,完成该部分初始化后,每向单片机管脚PT7输入一个脉冲,计数模块寄存器PACNT会自增一次。程序中必须设置合适的采样间隔,单位时间内的脉动数,即可反映当前电机转速。这里使用PIT定时中断,设置为5 ms触发一次中断服务程序,执行子函数,读出寄存器PACNT然后清零,以备下次使用。
3.4 系统软件
系统软件主要采用C语言编写,主程序先进行初始化,配置好端口寄存器。然后进入循迹模式,通过电磁传感器接收到的信息进行路况判断,再将相应的信号经由PID算法处理后发给电机驱动模块调整小车运行状态,从而达到自动循迹的功能。软件设计流程图见图7。
3.5 系统主程序
系统主程序如下(含初始化函数):
4 结 语
本文设计的智能循迹小车,以KEA单片机为控制核心,通过电磁传感器识别路径,编码器检测当前的速度,微控制器读取传感器当前状态,从而控制相应的电路,进而控制小车前进的方向和速度。小车采用单元化模块设计,使得系统响应快、性能稳定。经过测试,结果表明,小车顺利地实现了预设功能,并能以较快的速度通过弯道、圆环、坡道的赛道,实现了一个同时具备速度控制、数据采集、自动循迹和路径规划识别功能的智能车。
参考文献
[1] 范展源,郑昕.基于智能小车的模糊控制和PID控制的结合[J].科技风,2019(34):23.
[2] 彭刚,陈轩,何顶新,等.国内智能车比赛现状综述[J].可编程控制器与工厂自动化,2012(11):31?35.
[3] 陈凤东,洪炳镕.基于特征地图的移动机器人全局定位与自主泊位方法[J].电子学报,2010,38(6):1256?1261.
[4] 黄凯龙.基于飞思卡尔单片机的智能车及其调试系统设计[D].长沙:湖南大学,2014.
[5] 陈华伟,熊慧.智能循迹小车硬件设计及路径识别算法[J].单片机与嵌入式系统应用,2010(12):26?28.
[6] 余炽业,宋跃,雷瑞庭.基于STC12C5A60S2的智能循迹小车[J].实验室研究与探索,2014,33(11):46?49.
[7] 申建伟.基于ARM的智能车控制系统研究[D].西安:西安工业大学,2014.
[8] 许众.基于飞思卡尔智能车的电磁导航控制技术研究[D].沈阳:沈阳理工大学,2014.
[9] FRANK K, BRUCE W, RAFIK G, et al. Semi?autonomous vehicles as a cognitive assistive device for older adults [J]. Geriatrics, 2019, 4(4): 1?14.
[10] 方正川.自主寻径及避障智能车的研究与实现[D].芜湖:安徽工程大学,2017.
[11] ZENG W J, JIANG Q F, XIE J S, et al. A fuzzy?PID composite controller for core power control of liquid molten salt reactor [J]. Annals of nuclear energy, 2020, 139: 1?6.
[12] 张梦巍.智能无人驾驶车辆路径跟踪及底层控制方法研究[D].沈阳:沈阳理工大学,2018.
[13] 张楚金.智能车的前方车辆检测和预警算法研究[D].长沙:湖南大学,2015.
[14] 刘涛,吕勇,刘立双.智能车路径识别与控制性能提高方法研究及实现[J].电子技术应用,2016,42(1):54?57.
[15] YI Z G, SCOFFIELD D, SMART J, et al. A highly efficient control framework for centralized residential charging coordination of large electric vehicle populations [J]. International journal of electrical power and energy systems, 2020, 117: 1?17.