北京科技大学天津学院光电组技术报告.docx
《北京科技大学天津学院光电组技术报告.docx》由会员分享,可在线阅读,更多相关《北京科技大学天津学院光电组技术报告.docx(24页珍藏版)》请在冰豆网上搜索。
北京科技大学天津学院光电组技术报告
第五届“飞思卡尔”杯全国大学生
智能汽车竞赛
技术报告
学校:
北京科技大学天津学院
队伍名称:
北京科技大学天津学院战鹰队
参赛队员:
杨柳
王宇喆
蔡少东
带队教师:
叶振楠
关于技术报告和研究论文使用授权的说明
本人完全了解第五届“飞思卡尔”杯全国大学生智能汽车邀请赛关于保留、使用技术报告和研究论文的规定,即:
参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
带队教师签名:
日期:
摘 要
随着智能交通系统(ITS)的研究在各国越来越被重视,智能汽车的控制技术也成为一项新兴技术,教育部决定举办基于高速发展的智能汽车技术为背景的“飞思卡尔”杯全国大学生智能汽车大赛。
本设计以第五届“飞思卡尔”杯全国大学生智能汽车大赛为背景,以组委会指定的仿真车模为平台,搭建了一个基于MC9S12XS128单片机的智能汽车控制系统。
该系统综合了传感器技术,自动控制技术,信号处理技术,单片机技术,使车模能够以最合适的速度自主循线,在碰到传感器盲点时能主动找正,实时判断车体是否处正常状态并及时修正。
该系统以飞思卡尔公司的MC9S12XS128作为核心处理器,采用调制后的光电传感器以分时工作的方式对赛道进行识别,极大的提高了模型车的抗干扰性与前瞻性。
采用PID算法稳定电机转速,使车具有更强的稳定性与瞬时提速性能。
在智能汽车的调试过程中,使用上位机利用无线通信技术对智能汽车的状态进行实时监视,有效提高了调试的效率。
本系统显示了高度的智能化、人性化,并且具备良好的安全性、稳定性,可以为无人驾驶汽车的后续研究提供经验。
关键字:
智能汽车,S12,传感器,PID,赛道记忆算法
Abstract
WiththestudyoftheIntelligentTransportationSystemintheStatesarebeingtakenseriously,Intelligentvehiclecontroltechnologyhasbecomeanemergingtechnology.Withthefastdevelopmentoftheintelligentvehicletechnology,TheMinistryofEducationholdsthe“FreescaleCup”NationalUniversitySmartcarCompetition.
ThisdesignbuildsanintelligentvehiclecontrolsystembasedontheMC9S12XS128microcontrollerbyusingtheMatizsimulatescarasplatform;Thesystemcombinessensortechnology,automaticcontroltechnology,signalprocessingtechnology,microprocessortechnology.Itcanmakecarautomaticdrivealongtherunway.Whenitmeetsblindspotittakesinitiativetolookfortheway.Italsocanmonitorcar’sperformanceandtimelymodifythedriveparameter.
ThemodelsystemadaptedMC9S12XS128clipbyFreescaleasthecentralprocessor.Thesystemidentifiesthegameroadbyamodulatedphotosensorthroughtime-sharingfunctioningmode,whichgreatlyimprovesthesystem’sabilityofanti-jammingandpre-judging.Furthermore,thesystemtakesadvantageofthePIDarithmetic,aswellasRoad-Memeoryarithmetic,thatenablesthemodelsystemtoacquirebetterstabilityandcapacityofinstantaneousacceleration,withthehelpofthebrakecontrollingtechniquesofmimeticABSandEPSsystem.Duringthedebuggingperiod,theauthoradaptedwirelesscommunicationtechniquestomonitorthestatusofmodelsystem,whichimprovedtheefficiencyofthedebugging.
Themodelsystemsyncretizesintelligenceandhumanity,andshowsoutstandingsecurityandstability.Thesystemprovidesvaluableexperiencesforfurtherresearchesincomingfuture.
KeyWord:
IntelligentVehicle,S12,Sensor,PID,Road-memeoryarithmetic
引言
智能运输系统作为未来交通发展趋势之一,为解决城市交通拥挤和堵塞问题提供了有效途径。
从八十年代以来,美国、日本、欧洲等发达国家和地区竞相投入巨额资金和大量人力,开始大规模的进行交通运输智能化的研究,取得了许多重要成果。
而作为智能汽车——路系统(IntelligentVehicle—HighwaySystems,简称IVHS)的重要一部份,智能汽车在世界各国的研究也随着计算机技术、网络技术、通讯技术的飞速发展而不断深入。
本文以第五届“飞思卡尔”杯全国大学生智能汽车竞赛为背景,对智能汽车控制系统进行了深入的讨论,以作者参与制作的智能模型车为例简要介绍了智能模型车的设计制作全过程,主要涉及到机械电子、传感器技术、驱动控制技术、自动控制、人工智能等多个领域的研究及技术融合。
本系统虽然只是一个模型,但具有充份的科学性,实用性和先进性,对真实智能汽车控制系统所遇到的问题,都有所研究。
本文分为五章,第一章,介绍了系统的总体方案;阐明系统硬件、软件和机械的总体设计思想。
第二章为硬件电路介绍,详细介绍了主控板、电机驱动和传感器部分的电路设计。
第三章和第四章分别对控制理论、算法和机械改进进行了介绍。
第五章主要阐述了智能汽车的仿真和调试。
第一章系统总体方案设计
汽车模型以激光作为采集道路信息的传感器,用激光在赛道上打出一排整齐的光点,以一定的周期采集处理路况信息,通过单片机控制,使汽车模型时刻严格按照黑线的方向行驶,完成比赛。
控制系统选择经典的PID算法。
通过对激光传感器采集到的道路信息控制转向舵机;通过编码器返回值和其它反馈信息对汽车模型进行速度控制。
1.1系统总体框图
智能汽车的系统框图及各模块关系如图1.1所示:
图1.1车模系统框图
智能汽车系统主要由外围电路,传感器模块,舵机模块,电源管理模块,电机模块,XS128主控模块以及辅助模块构成。
传感器模块和舵机模块负责路径检测以及转向工作;电源管理模块负责整个系统的供电;电机模块负责驱动智能汽车的加速减速;XS128主控模块负责赛道数据处理以及控制策略的实施。
此外,还增加了光电编码器等辅助模块,用来检测速度,为速度决策提供参考。
1.2机械结构及软件部分概述
机械结构在整个系统中是非常重要的部分。
机械部分的良好设计,对硬件的设计和软件的编写有很大的有效的支撑作用。
有时候,为了改善车模的性能,在软件设计上需要大量代码才能实现,而同样的问题,可能在机械上稍加修改就能解决。
转向舵机的转向是整个控制系统中延迟较大的一个环节。
为了减小此时间常数,通过改变舵机的安装位置,而非改变舵机本身结构的方法可以提高舵机的响应速度。
因此,将转向舵机安装在了模型汽车前半部分中心处。
在模型汽车的控制中主要用到S12芯片中的PWM模块,ECT模块、I/O模块以及SCI模块等。
PWM模块主要用来控制舵机的转角和电机的转速;ECT模块主要用在了测速、数据采集、中断捕捉并计算瞬时速度;I/O模块主要是用来为按键和激光传感器提供输入输出;SCI模块主要用在数据的串口传输。
程序流程框图:
图1.2程序设计框图
第二章硬件电路设计
完整的智能汽车控制系统的硬件电路主要包括以下几大模块:
(1)主控模块
这是整个硬件电路的核心模块,S12芯片就在这个部分中。
该模块还包括电源电路、系统时钟电路以及BDM和接口电路等。
在设计该模块时要注意单片机的时钟电路和与程序所对应的逻辑关系。
单片机各管脚的应用,关系到整个车模的控制。
(2)电机驱动模块
比赛衡量胜负的标准是速度,需要模型车要在不冲出赛道的前提下尽量快速的跑完全程。
合适的驱动电路对电机进行控制是必要的。
本系统选用H桥驱动电机。
(3)激光传感器模块
智能汽车通过传感器采集道路信息。
为了获得更远的前瞻,我们选用激光代替普通二极管。
本系统选用了双排十路激光作为发射部分,通过上下各三个接收管接收反射信号,进行路径识别。
2.1主控板的设计
图2.1主控模块电路原理图
由于车模的重心越低,越有利于车的稳定性,因此,主控板设计的形状和大小能直接安装在车模的底盘上是最好也是最经济实用的方法,经过多次的尝试,最终成型的电路板如图所示:
图2.2主控模块电路PCB图
2.1.1电源管理模块
图2.3电源管理模块设计框图
电源模块用来为单片机、传感器等除电机驱动模块以外的所有元器件供电,该部份主要由两个稳压芯片构成,分别为LM2940-5与LM2596-5。
LM2940的稳压的线性度非常好,但是带载能力偏弱。
LM2596-5是开关电源,具有转换效率高,带载能力大等特点,但缺点是其纹波电压大,噪声比较严重。
对于单片机,需要提供稳定的5V电源,否则易造成单片机工作不正常,不太适合选用LM2596供电,所以选用LM2940-5对其进行供电,而对于传感器等器件,对纹波电压并不敏感,但需要通过较大的功率,所以选用LM2596对其供电。
这样选择分开供电,有效防止各器件之间发生串扰,使得某些部份工作不稳定。
设计电源管理模块时需注意要考虑到电路之间的干扰,对电源的输出输入进行滤波处理。
图2.4电源管理模块电路图
2.1.2BDM模块和晶振模块
图2.5BDM模块和晶振模块电路原理图
BDM接口是S12单片机用来连接BDM调试器的。
BDM接头通常设计为6针的双排插头,其中4个引角分别为VDD,RESET,GND和BKGD(BACKGROUND),另外2个针脚为空。
BDM模块用以单片机与BDM调试工具的互连,PC机可以通过BDM模块向单片机下载程序,同时也可以方便单片机的在线调试,需要注意的是,必须在各线上加上滤波电容以滤除杂波。
时钟电路在单片机系统硬件设计中往往是一个关键的部分,因为晶振体的工作频率很高,设计不当很有可能使其工作时的产生的高频信号对其他电路造成干扰,尤其是对模拟部分如AD转换输入信号的干扰;或者由于晶振不工作,导致整个单片机系统无法运行。
MC9S12系列单片机的时钟输入接口在其46(EXTAL)和47(XTAL)引脚上(112pin引角封装),通常是接一个16M的晶振体。
外部振荡器的连接分为串联型和使用外部有源振荡器2种方式,后者稳定性比较高。
MC9S12系列单片机专门设计了外部振荡器的连接设置引角PE7,要求我们在使用串联型电路时将该引角置高,在使外部有源振荡器电路时将该引角置低。
2.1.3接口模块
图2.6接口模块
该模块作用主要是将单片机的各输出口做成各种接口形式,方便和外设相连,主要的接口有传感器接口,转向舵机接口,制动舵机接口,光电编码器接口,以及监控系统接口。
2.2电机驱动模块
对于电机驱动电路,有很多选择。
比如,我们初期使用的电机驱动芯片MC33886以及电调和MOS管H桥等。
MC33886使用方便,已经基本能够达到要求。
但是经过实践后我们发现MC33886内阻较大,电调的驱动能力虽然最好,但是成本最高。
综合各种因素,我们最终选择了MOS管H桥作为电机驱动电路。
电机驱动模块由桥构成,H桥具有工作电压范围大,导通电阻小,导通电流大的优点。
同时我们将PWM波控制信号通过与门接入控制端,这样通过这个信号我们可以将H桥的下半桥连接在一起,电机的两端接通,电机处于能耗制动状态。
能耗制动方式在减速性能方面和反转减速相差不大,但是对电机的损害较小,有利于电机的保护。
2.3传感器部份电路
激光传感器和红外传感器对信息的采集原理大致相同。
激光发射管的优点是信号更强,前瞻更远。
但是激光发射管不能一直处于激发状态,选择合适的激光管、接收管成为我们需要解决的问题。
经过大量尝试之后,我们最终确定了合适的激光。
为了能够更好的接收到激光返回的信号,我们在接收管外部增加了大透镜,这样大大的提高了接收管前瞻,为提高智能汽车的速度奠定了基础。
接收发射部份
图2.8传感器发射接收电路
传感器由两部份构成,一部份为发射部份,一部分为接收部份。
发射部份由一个振荡管(J1_1)发出180KHz频率的振荡波后,经三级管(Q1_1NPN)放大,激光管(D1_1)放射。
接收部份由一个相匹配180KHz的接收管(J1_2)接收返回的光强,经过电容(C1_1)滤波后直接接入单片机用以判别电压高低。
由于接收的波属于高频段的波,因此电容(C1_1)是必须的,否则的话电磁干扰会非常的严重,指示灯(D1_1)会常亮,实际过程中要不断试验电容(C1_1)的大小,选择合适的值以使接收管正常工作。
控制部份
图2.9控制部份74LS138电路
由于采用了数字传感器的防干扰算法,因此必须分时控制传感器的开断,实际中我们使用74LS138作为控制器,由主控模块的3根线来控制10路传感器的开断。
第三章总体理论分析及算法实现
程序主要用到S12芯片中的PWM模块、ECT模块和ATD模块等模块化设计。
PWM模块主要用来控制舵机的转角和电机的运转;ECT模块主要是用在了测速和数据采集,捕捉中断并计算瞬时速度;ATD模块主要是用来A/D转换和信号处理。
在编写软件之前,我们对通过激光传感器进行路径识别以及智能汽车系统所涉及到的算法进行了研究。
本章将从路径识别算法、舵机控制、电机速度控制等几个方面对软件设计进行详细的解释。
3.1理论分析
3.1.1路径识别算法分析及选定
智能模型车的路径搜索算法(LineSearchingAlgorithm)是智能汽车设计的关键部分,智能汽车设计的大部分工作都是围绕它来展开的。
经过分析,一般有三种不同的路径搜索方法。
图3.1基于多对传感器的连续算法
(1)利用多对(通常多于8对)数字型光电传感器,将整个赛分为多个区域,直接以传感器组反馈回来的一组二进制数组值,来判断黑线的位置。
这种查询方式的优势在于算法简单,易于实现。
在实际中,我们使用的也是这种算法。
通过实际使用我们发现舵机使用PID控制不利于舵机转向的稳定,开环控制相对于闭环在稳定性上更有优势,同时响应速度上也不存在较大的差别,因此最终我们决定根据传感器状态给舵机赋值的方式来控制小车的方向,实践也证明这种方式完全能满足我们的要求。
(2)使用多对(通常在6~10)对模拟型光电传感器,进行赛道的精确定位,该算法在下文中有专门论述,这里不再赘述,在实际中,我们的曾使用的模拟附加光电传感器的路径搜索方式。
该方式可以达到赛道精确定位的目的,但是由于每支光电发射管的特性不同,并且易受自然光与其它光电发射管的干扰,这种方法的特点是用了较少个数的传感器进行道路识别,而且充分利用MCU里的ADC(AnalogtoDigitalConverter)功能。
但由于硬件上的调试比较困难,因此,最终我们没有采用这种方法。
(3)主动寻线算法,从资料上看,韩国的主动寻线的车在车头安装了两个舵机,一个舵机专门用于寻线(寻线舵机),一个舵机专门进行前轮的转向(转向舵机),而在寻线舵机上安装了三个传感器。
他们的思路我们认为是这样的,左中右三个传感器分别被赋与了左加,停留,右加三个意义,我们暂且分别命名其为左加传感器,停留传感器,右加传感器。
寻线舵机在不停的进行左右摆动进行寻线,同时寻线舵机的转角可通过不停的AD转换得到,当中间的停留传感器感受到黑线时,单片机向转向舵机发出停留信号,此时转向舵机就会停止,当出现弯道时且拐角较大时,必定会触发到左加或右加传感器,此时,单片机就向寻线舵机发出向左转一定角度或向右转一定角度的命令,这个转角并不需要一次性转过很大,可能是比转小的角度,程序中写的应该是只要停留传感器没有碰到黑线,转向舵机都会在当前角度上转过一定的角度,直到再次碰到停留传感器。
这样就看起来就是舵机在牵着车在找线,也就是所谓的主动寻线。
3.1.2基于光电传感器排布理论分析
数字型光电传感器只有0与1两种状态,因此各个传感器的布局间隔将影响车对路径的识别精度以及对舵机的控制算法的优劣。
我们将传感器由一种状态起始到下一种状态起始所需移动的距离称为有效距离,有效距离越短,则传感器在该状态的停留时间短,可能造成该状态为瞬态,而越长,则可能造成某一状态过长,舵机控制算法成跳跃式响应,造成软件无法弥补的缺陷。
首先我们来研究只有任何时刻只有一个传感器在黑线上(即两两传感器之间的距离x=25mm)的情况。
如图3.2:
图3.2排布方式示意图1
由图可知,传感器由一个状态到下一个状态的所需移动距离为25mm。
当存在有时是一个传感器有时是二个传感器在线上的情况下(即12.5mm<两两传感器之间间距x<2.5mm)
此时,传感器状态如图3.3所示
图3.3排布方式示意图2
则有效距离d1=25-x有效距离d2=2x-25,由此可见,若要舵机平滑的过渡,使控制算法更简便有效,则要d1=d2,解得x=16.7,有效距离d1=d2=8.3mm。
同理,当存在有时是二个传感器有时是三个传感器的情况下(即8.3mm<两两传感器之间间x<12.5)
此时,传感器状态如图3.4所示
图3.4排布方式示意图3
则有效距离d1=25-2x有效距离d2=3x-25,令d1=d2,则x=10mm。
为了有效的利有所有10路传感器并且不超出车宽限制,我们最终确定10路光电传感器的排布方式。
在实际测试中我们发现:
“一”字形均布排列的激光传感器能很稳定的采集赛道的信号,检测精度满足要求。
因此采用“一”字形均布排列。
电路板制作和软件编写也更为简便。
3.2数字传感器接收防干扰算法
传感器的原理如图3.5所示
图3.5传感器原理示意图图3.6光强~电压光系
光源发出的光线经过被测物体反射后,由光敏元件接收,在光敏元件上将产生光电流,经过一个采样电阻采样后,即可以将返回光线的光强转化为相应的电压值,单片机通过判断电压值的高低来决定传感器是否处于黑线之上。
传感器的干扰主要分为两种,一是自然光的干扰,二是传感器之间的相互干扰,由于传感器的光电流只与返回光线的光强有关系,因此,当外界光线较强时,易于使传感器误判,这就产生了自然光的干扰。
而当两传感器的距离较近时,会产生一路传感器不仅接收自已发出的光,甚至也接收临路传感器的光,这样便产生了传感器之间的相互干扰。
3.2.1自然光干扰的消减
由于环境环境光的影响产生一个电压叠加再输出,使得传感器电路的输出电压不能维持在一个固定水平,通常,工业用的光检测开光都使用调制光来消除环境光的影响。
这种方法是通过一个带通滤波器区分出有用的信号并将环境光的干扰消除,这样就能有效检测发射管发出的信号,这种方法在接收管线范围内很有效,但前提是接收管不能被环境光饱合。
在实际我们所做的是利用 180KHz的调制发射管发射180KHz的光,在接收部份使用只接收该频率的光的接收管,这样能很明显的抑制光干扰。
这部份主要是从电路方面来消除,并且该节所要讨论的范围。
3.2.2传感器之间的干扰的消减
由于传感器不可能每个传感器都用不同频率的发射管来发射来进行不同频率的调制,因此不可能利用和搞自然光干扰的消减的方法来解决,经过我们多次的试验,发现最优的方法是使用传感器轮询的方式来抗干扰:
即传感器依次工作,每一路采完数据后再开起下一路工作,但是两个传感器之间的间隔时间不能太小,经过不停的实验,发现最短周期为100μs,当小于100μs时,传感器工作将不正常。
由于在实际过程中,我们使用的是10路传感器,而且发现传感器之间为7路传感器间距时,两两传感器的干扰已经变的很小了,因此我们让将14组传感器分为了7组进行工作,这样可以大大的减少传感器读取的时间,提高了时间的利用效率。
为了提高管脚的利用率,我们使用了3-8译码器74LS138作为控制传感器开断的控制器,仅由S12单片机的三个管脚来控制所有传感器的开关状态。
3.3舵机控制算法
舵机作为车的方向控制结构,其控制算法直接影响到车的整体质量,如果舵机的控制算法不好,会导致舵机转角不平滑,过弯时多次转弯,使车速在弯道时大大的减小,因此,使舵机平滑及时的过渡是舵机机控制算法的主要目地。
我们根据实际测试,最终选择了穷举法,这样可以根据每一个传感器状态选择合适的舵机转角,虽然简单,但是很实用。
我们知道,当给舵机一个固定的角度的话,那么可以车将会一个恒定的半径做圆周运动,因此,只需测出圆的周长,那么就可以算出车的转弯半径。
因此我们制作了一个计算智能汽车实时监控系统,该系统可以在车两次经过同一点时计录在这段时间内的码盘计数总值,通过该值的推算,就可算出圆的周长。
为了消除偶然误差的影响,我们采用了多次实验取平均值的方式来算出舵机PWM占空比对应的车转弯半径。
3.4电机PID速度控制算法
智能汽车系统速度控制是指用在一定的给定速度条件下,使电机转速达到给定的速度。
使用速度传感器检测小车当前速度,与给定速度做比较,形成闭环反馈控制。
为了证明闭环控制的必要性,我们分别测试了电机在赛道上开环与闭环控制的响应曲线。
3.4.1测试控制响应曲线及电机转速相关参数
在长直道上测试电机分别在开环与PID控制之下的响应曲线:
图3.7开环控制占空比80%电机速度曲线
图3.9中横轴为时间轴一格为1s,纵轴为单位采样时间内码盘数,开环控制占空比为80%,车速=比例因子*单位采样时间内码盘数,比例因子为0.064。
图3.8PID控制下电机响应曲线
图3.10是在增量式PID控制下,给定值1400,比例因子0.032,,横轴一格为1s。
从图3.9中可以得到,开环控制在5s后达到稳定速度,即响应时间约为5s。
在稳定之后,纹波较小。
从图3.10中可以得到,PID控制在参数未经过