APP下载

基于多传感器协同的智能循迹小车控制系统设计

2013-10-17马世典孔令晶

制造业自动化 2013年22期
关键词:轮速循迹小车

马世典,孔令晶,韩 牟,吴 狄,唐 鑫

MA Shi-dian1,KONG Ling-jing2,HAN Mou2,WU Di1,TANG Xin1

(1. 江苏大学 汽车工程研究院,镇江 212013;2. 江苏大学 计算机与通信工程学院,镇江 212013)

0 引言

智能车是典型机电一体化综合智能系统,是智能机器人的汽车体现形式。智能车行驶中主要依靠轨迹传感器探测前方形式路线,进而制定相应的行驶策略和底盘控制策略。如当智能车高速过弯时,因为单一传感器分辨率较低及信息采集量不够,在复杂环境中难以取得车辆实时姿态定位或前方行进路线识别的理想效果,往往导致转弯不足或过转弯的问题,最终使得车辆偏离预定路线,甚至翻车[1]。

随着智能传感器和多传感器数据融合技术的进步,智能车特殊工况下姿态实时准确定位成为可能[2]。本文基于对智能循迹小车运行工况分析,提出一种基于多传感器协同的智能循迹小车模糊控制系统设计方案,介绍控制系统的硬件组成、软件设计和控制策略,并将所开发的控制系统装车进行验证试验,为智能循迹小车精确化循迹及车辆控制提供有益参考。

1 智能循迹小车控制系统的基本组成与工作原理

基于多传感器协同的智能循迹小车模糊控制系统由路面轨迹采集模块、控制模块(主控制器)、执行模块和反馈模块等组成,如图1所示。轨迹采集模块是系统的输入部分,主要通过光电传感器器采集路面轨迹信息并转化为供主控制器识别的电信号; 控制模块是系统的核心部分,采用8位单片机作为处理器,其任务是调理输入信号并对执行模块进行实时控制;执行模块包含智能车左右后轮的驱动电机和前轮转向伺服;反馈模块主要作用是通过光电编码传感器实时反馈左后后轮轮速和前轮转向角;系统采用智能车车载电源供电,驱动电机电压8V,控制模块电压为5V。

图1 基于多传感器协同的智能循迹小车模糊控制系统组成

智能循迹小车的行驶过程如图2所示,车辆进入运行轨道后通过三路循迹传感器探测路线轨迹,并实时确定车辆姿态。两路轮速传感器和转角传感器实时反馈当前航向和速度信息,控制模块融合当前车辆姿态和航向及速度信息,形成下一时刻车辆行驶路线的预测及驱动信号,最终闭环驱动左右后轮电机按照预定转速运转,实现快速准确地循迹运行。

图2 智能循迹小车的运行示意图

2 系统硬件设计

2.1 微处理器选择

图3是控制器的硬件组成结构。控制器硬件由XC866L-4FR和若干外围辅助模块及接口模块构成。XC866L-4FR集成片内振荡器和嵌入式电压调节器,因而可由 3.3V或 5.0V的单电源供电。此外,嵌入式闪存(Flash)器件为系统开发和批量生产提供了很大的灵活性,多闪存组(Flash Bank)结构支持在线应用编程(IAP),通过外部主机(如 PC)对嵌入式FLASH方便的编程或擦除。XC866还具有如下的非常优越的功能:用来产生脉宽调制信号、带有电机控制专用模式的捕获/比较单元(CCU6),可以满足对电机和转向伺服的驱动要求,并可通过配置为捕获模式来实时检测轮速信号[3]。

图3 控制器硬件组成结构

2.2 电机驱动电路设计

小型直流电机以其灵活的控制性能和良好的经济性能获得很多使用者的青睐。但是,在直流电机驱动时对相关电路产生的干扰也是不可忽视的问题,特别是电机停止启动瞬间的反向瞬间脉冲干扰,严重时会烧毁芯片或击穿元件造成整个系统的失效[4,5]。如图4所示,为确保电机输出力矩,本文采用2片BTM7700G芯片组合实现左右后轮电机的驱动。

图4 左右后轮电机驱动原理

2.3 反馈模块电路设计

试验样车的轮速信号为频率和幅值均随车速增大而增大的正弦交变信号,必须调理成同频率的方波信号,便于单片机处理。轮速信号调理电路如图5所示,该电路包括四部分:1)限幅滤波处理电路,由两个稳压二极管1N4728A(D2和D3、D4和D5)的阴极串联成限幅二极管电路,用于轮速反馈信号过大时保护后级电路;2)低通滤波电路,由电阻R9(R21)和电容C17(C19)组成RC低通滤波电路,此处取R9(R21)为100K欧电阻、C17(C19)为0.01微法电容,滤除正弦波轮速信号中的高频噪声;3)正弦波转化方波电路,由集成运放LF353N的前级组成同相比例放大电路,将轮速正弦波信号放大20倍,然后利用LF353N的后级构成正反馈电路,对放大后的轮速信号过零比较,实现正弦信号到同频率方波信号的转换;4)隔离电路,如图5所示利用4路光电隔离芯片TLP521-4的1通道和2通道实现两路轮速信号的隔离,利用3通道实现对转向伺服转角信号的隔离。最后TLP521-4隔离后的信号分别经电阻(R4、R5、R6)上拉后输出到微处理器XC866[6]。

2.4 电源模块设计

小车电池电压VBat 为+9V,需要通过外加稳压芯片的方式给电机驱动板提供+5V电源以及XC866所用的+3.3V电源。如图6所示,此处采用1B1205SD产生5V稳压后再经DC-DC芯片REG1117-3.3产生3.3V直流电压供MCU循迹传感器使用。

图5 反馈模块电路

图6 电源模块

小车驱动电机额定电流为0.5A,转向伺服额定电流为0.3A。此类感性负载对于控制信号毫安级电流将会造成较大幅度的波动,因此电源模块的电路设计必须充分考虑驱动部分对控制部分的干扰。本系统采用DC-DC芯片将信号电源和电机驱动电源隔离,从而达到抵抗干扰的作用。

2.5 轨迹采集模块电路设计

轨迹采集模块由3组红外传感器构成,每组包含7个传感单元,每个传感单元均可根据当前所感应的车道颜色情况输出二值化的检测结果,其中“1”代表该传感单元检测到黑色车道线,“0”代表该传感单元未检测到黑色车道线。如图7所示,通过3片74LS244芯片对MCU的P2口进行扩展,使得每一组轨迹传感器分时复用P2口传输当前车道线检测状态数据到MCU。其分时复用功能是通过P3口分别控制3片74LS244的1G和2G引脚输入电平高低来实现的。

3 多传感器协同策略及软件设计

如图2所示,当车辆行驶在赛道时根据三组循迹传感器的状态动态确定车辆当前运行姿态和路况信息,结合轮速和转角信息实现对车辆运行状态的精确控制[7,8]。每个传感器组均有7个传感器组成,将各传感器位置权值定义如图8所示。分别定义前、中、后循迹传感器组分别命名为SFx、SMx、SRx,各传感器命名及取值如表1所示。

图7 轨迹采集模块电路

图8 传感器位置权值示意图

表1 传感器取值列表

3.1 车辆相对车道线姿态识别方法

车辆相对车道线姿态识别主要依靠SM和SR两组传感器反馈信息和转向伺服转角传感器进行协同定位。智能小车瞬时运行情况抽象模型如图9所示。其中A、B、C分别为前、中、后传感器组中当前时刻处在车道中线上的传感器(即该传感器反馈值为1,且不在两侧车道线上),因而其权值q范围均为-3~+3之间。车辆相对车道线姿态识别方法如下:1)读取传感器组反馈值;2)判断当前车道中线触发传感器所处位置,并将相应权值分别付给A、B、C;3)计算B、C之差的绝对值m;4)将B、C与0对比,若B、C均大于0,则小车整体偏右,反之小车整体偏左,偏移量取B、C之和的一半,记为p;5)根据公式1计算车身行驶偏角a(单位为度,qB>qC时取正,反之取负),其中L1为车身长度;6)根据公式2确定转向伺服电机绝对转角b(单位为度);7)结合当前转向伺服实际转向角度c计算转向伺服驱动指令参数,并采用PID控制技术实现转向控制。

图9 小车运行状态抽象模型

3.2 车辆运行路况识别方法

小车运行路况主要有直道、弯道和换道三种,如图9所示通过OA、OC间夹角、小车行驶方向偏角以及当前转向伺服转角综合判定当前路况。具体方法如下:1)读取传感器组反馈值;2)重复3.1节计算行驶方向偏角过程,计算偏角;3)根据公式3计算OA和OC间夹角β;4)根据公式4估算当前车道中线曲率半径r,以识别当前路况是否为弯道以及弯道曲率半径。

其中c为当前转向伺服实际转向角度。

对于换道路况的识别只需满足传感器组A无车道线反馈,同时传感器组B合C均有车道线反馈这一组合条件,即可判定为换道路况。

3.3 软件设计

主程序实现对硬件的初始化和对控制系统软件各状态的循环检测及各子程序调用执行。本系统主要实现功能如下:1)初始化硬件;2)循环检测3组轨迹传感器反馈值;3)实时获取轮速传感器反馈信号并计算实时车速;4)按照3.2节所述协同策略判断当前运行工况,并调用相关子程序实现车辆实时精确控制。其流程如图10所示,系统上电后将自动进行初始化,具体工作包括:配置MCU I/O口及芯片工作模式、初始化转向伺服位置、矫正转角传感器初始值。初始化后循环等待行车使能信号,在接收到有效行车信号后系统首先读取当前轨迹传感器反馈值、轮速以及转向角,并综合判断当前运行工况和路况。然后,根据路况识别策略及响应协调控制策略实现车辆实时智能控制。

3.4 软件可靠性设计

在提高硬件可靠性设计的同时,软件可靠性保证以其设计灵活、节省硬件资源及可靠性好等优点越来越受到重视[9]。

3.4.1 传感器信号消抖处理

行驶中的小车在加速减速或颠簸的时候都会造成传感器的信号随之波动,因此就需要对传感器反馈的信号进行必要消抖处理。本文采用多次采集后去除最大和最小值然后取平均值的方法来确保采集信号的准确性。

3.4.2 软件抗干扰

3.4.2.1 指令冗余设计

MCU 取指过程是先取操作码,再取操作数。当PC(程序指针)受到干扰出现错误时,程序便脱离正常运行轨道,称之为“跑飞”;此时MCU往往将一些操作数当作指令码来执行,引起程序混乱。当程序弹飞到某一条单字节指令上时,便自动纳入正轨,但是当弹飞到某双字节或三字节指令上时,就有可能落到其操作数上,从而继续出错。因此,在设计软件时应多采用单字节指令,并在关键的地方人为的插入一些单字节指令或将单字节指令重复书写,这便是指令冗余。

图10 程序流程

本文是在双字节指令和三字节指令后插入两次以上NOP指令。这样即使跑飞的程序飞到操作数上,由于空操作指令NOP的存在,也可以避免了后面的指令被当作操作数执行,从而使程序纳入正轨。此外,对程序流向起重要作用的指令如返回、子程序调用、跳转、硬件置位清零等指令前插入两条NOP,可以将跑飞的程序纳入正轨,以确保这些重要指令的正确执行。但是使用指令冗余时也要注意:1)加入太多冗余指令将降低程序的运行效率;2)对于跑飞到程序区外的情况,将无法保证纳入正轨。

3.4.2.2 设置软件陷阱

如上所述,当跑飞的程序落到非程序区时冗余指令技术就失效了。对于此种情况本文采用设置软件陷阱的方法予以解决。本文设计的软件陷阱为两条NOP指令加上一条强制跳转指令,这样在软件陷阱捕捉到跑飞的程序后就会自动将之引导到错误处理子程序中了。

本文中软件陷阱设置的位置如下:1)本文使用的MCU包含14个中断,大部分在本文没有使用,在这些没有使用的中断向量区设置软件陷阱,以捕捉到错误的中断。2)未使用的大片ROM程序存储空间,本文中ROM容量为8K字节,由于代码量不大必须在没有使用的存储空间设置多个软件陷阱。3)表格区域,本文中在此设置了软件陷阱,当MCU在进行前照灯高度调节需要进行查表确认调节量;如果程序跑飞到该表格中,陷阱就可以捕捉并将之纳入正轨了。4)程序区,主要是针对程序中可能出现断裂点的地方设置陷阱,这些指令有跳转指令、返回指令等。

3.4.2.3 “看门狗”技术应用

当跑飞的程序在没有碰到冗余指令和软件陷阱之前就已经形成一个死循环的话,以上两种抗干扰方法就失效了。对此本文中启用了“看门狗”技术。

本文使用的MCU自带有WDT(看门狗定时器),考虑到本系统的实时性要求不高,设置看门狗刷新周期最大为159ms。在软件循环的过程中需要定期的刷新WDT的值,为可靠性考虑每次刷新WDT之前先重置WDTCON(看门狗定时器配置字)。

4 结束语

在对系统功能需求和潜在问题分析的基础上,从多传感器协同的角度出发,利用XC866L-4FR单片机的丰富资源和高速运算处理能力作为控制系统的核心,对智能小车控制系统硬件进行了设计改进。设计了轨迹传感器、轮速传感器以及转角传感协同方法、给出各路况下的控制策略,并进行了软件可靠性设计。通过实车试验小车直道行驶稳定性和过弯速度均有明显改善。

[1] 刘源,张文斌,刘雪扬,等.电磁导航智能车检测和控制系统的研究[J].传感器与微系统,2012,31(4):63-66.

[2] 李东伟,王明宇,万鹏飞,等.多传感器协同管理技术分析[J].飞航导弹,2011,7:77-79.

[3] 陈安辉,房森林,崔巍,等.基于XC866的无刷直流电动机无位置传感器控制系统研究[J].微电机,2008,7:25-28.

[4] Lai YS.Shyu F S.Chang Y S. Novel Sensorless PWM-controlled BLDCM Drives Without Using Position and Current Sensors,Filter and Center-tap Voltage[C]. in Proc.IEEE. IECON,2003: 2124-2149.

[5] 林潇,潘双夏,胡晓杭.一种无位置传感器BLDC零启动的纯硬件实现方法[J].浙江大学学报:工学版,2008,42(9):1591-1596.

[6] 程耀强,徐德民,万彦辉,等.基于数字滤波的激光陀螺数字信号处理算法[J].中国惯性技术学报,2013,21(1):112-130.

[7] 赵炯,王伟.基于传感器融合技术的电动汽车自动驾驶系统的开发[J].制造业自动化.2013.35(5):43-46.

[8] GAO Yun-yuan,LUO Zhi-zeng.Dynamic task allocation method based on immune system for cooperative robots[C]/ /Proc of the 7th.World Conference on Intelligent and Automation.2008:1015-1020.

[9] 曹银波,张志永,沈康,等.离子电流检测系统的抗干扰设计[J].同济大学学报(自然科学版).2012,40(9): 1369-1375.

猜你喜欢

轮速循迹小车
基于DFT算法的电力巡检无人机循迹检测系统设计
基于机器学习的间接式胎压监测算法研究
基于轮速计算的乘用车小备胎识别策略开发及应用
大车拉小车
汽车ABS试验轮速信号异常值的识别和处理
自制小车来比赛
浅谈基于机器视觉和姿态检测的循迹智能车
刘老师想开小车
两轮自平衡小车的设计与实现
智能差分循迹小车设计