河北理工大学 冀风队技术报告.docx

上传人:b****5 文档编号:8371002 上传时间:2023-01-30 格式:DOCX 页数:30 大小:280.94KB
下载 相关 举报
河北理工大学 冀风队技术报告.docx_第1页
第1页 / 共30页
河北理工大学 冀风队技术报告.docx_第2页
第2页 / 共30页
河北理工大学 冀风队技术报告.docx_第3页
第3页 / 共30页
河北理工大学 冀风队技术报告.docx_第4页
第4页 / 共30页
河北理工大学 冀风队技术报告.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

河北理工大学 冀风队技术报告.docx

《河北理工大学 冀风队技术报告.docx》由会员分享,可在线阅读,更多相关《河北理工大学 冀风队技术报告.docx(30页珍藏版)》请在冰豆网上搜索。

河北理工大学 冀风队技术报告.docx

河北理工大学冀风队技术报告

 

第二届全国大学生“飞思卡尔”杯

智能汽车竞赛

技术报告

 

学校:

河北理工大学

队伍名称:

冀风

参赛队员:

李玮

汪汉清

张明吉

带队教师:

张瑞成

 

 

关于技术报告和研究论文使用授权的说明

本人完全了解第二届全国大学生“飞思卡尔”杯智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:

参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:

带队教师签名:

日期:

 

第一章引言

针对第二届“飞思卡尔”杯全国大学生智能汽车邀请赛的要求,结合第一届大赛各队的特色参赛报告,我们提出了简单、稳定、快速、智能的方针作为模型车方案设计的指导原则。

在整个准备过程中,我们经历了学习相关文献、分析系统组成原理、制作硬件电路、选择控制策略、实际跑道调试等五个阶段,而且针对各种实际问题我们提出了多种解决方案,并经过大量的实验,从而得出了一些相对较好的策略和思想。

经过对被控对象的分析,我们把智能车控制系统分为两个主要的子控制系统:

转向控制系统和速度控制系统。

转向控制系统保证小车能够紧密的跟随黑线前进,速度控制系统能使智能车尽快稳定在所需要的不同速度上,即保证在直道入弯时能够迅速降速保证小车不会因为车速过高而冲出跑道,在由弯道入直道时能够经快使小车提高到所需的速度,从而提高小车的平均速度。

本文可分为三部分,第一部分简述了硬件制作过程的方案选择。

第二部分详细的阐述了智能车的控制思想及实现的方法。

如黑线检测方案、路形判断方案、速度调节方案等。

第三部分是总结,主要总结了制作的经过以及一些心得体会。

第二章硬件电路设计

2.1模型车的主要技术参数说明:

表2.1技术参数

项目

参数

车模几何尺寸(长、宽、高)(毫米)

390*200*100

车模平均电流(匀速行驶)(毫安)

1200

电路电容总量(微法)

2000

传感器种类及个数

光电传感器,16个

新增加伺服电机个数

0

赛道信息检测空间精度(毫米)

10

赛道信息检测频率(次/秒)

200

除MC9S12DG128之外其它主要芯片

LM2940-5,TIP42C

车模重量(带有电池)(千克)

3

2.2电源模块

电源做为智能车的“心脏”,是小车的重要组成部分。

小车使用的电源提供的电压为7.2V,据资料可以知道,电动机可以工作在7.2V,但单片机、传感器必须工作在5V电压下。

故必须利用稳压芯片进行稳压。

舵机可以工作在4.5V~7.2V,舵机工作的电压越大,它的反应速度越快。

但由电源同时直接供电给电动机和舵机时,它们之间会产生很大的干扰。

如果用稳压电路给舵机供电,就可以消除它们之间的干扰。

利用7806稳压芯片稳压,使舵机工作在6V电压下。

电压分配图如下:

图2.1智能车系统电压分配图

2.3路径检测模块

路径检测方式主要有两种:

光电传感器检测和CCD摄像头检测。

由于光电传感器具有扫描频率高、结构简单、质量轻、体积小、安装方便、算法简单等优点,所以采用光电传感器检测方式。

2.3.1传感器的硬件设计:

为了能够清晰准确的辨别黑线轨迹,利用红外光电传感器的特性,制作了路径识别模块。

电路特点:

电路原理简单,安装方便,检测速度快(道路检测周期一般是几十毫秒,远快于CCD检测,相比之下红外接受管对反射光的响应时间和单片机读取信号的时间是几十微秒,因此在一个检测周期的大部分时间内,红外发射管不需要工作,只要检测瞬间工作即可。

这样就可以大大降低耗电量。

),如图2.2所示,电路可以输出连续变化的信号。

图2.2光电传感器驱动电路

该电路的实验结果:

电路和各参数如图所示,第一级检测电路可得到电压是高电平10—15mV,低电平0—4mV,波形较好。

经过第二级放大,通过设置可调反馈电阻可以调节放大倍数。

由于光电传感器是通过判断接收到的光的强度来识别赛道的,不可避免的要受到外界环境干扰,在电路中产生噪声。

噪声主要来自环境光线干扰,主要是日光和赛道附近灯光。

抑制噪声的措施主要有:

①安装遮光板。

②增加红外发射功率,可以提高检测信号的信噪比。

③电路滤波:

环境干扰信号一般是缓慢变化的,可采用脉冲式红外发射与检测方式,或者选用带有38KHZ的调制/解调红外发射接受模块。

④软件滤波,使用单片机AD口采集红外检测信号,再通过软件滤除干扰信息。

2.3.2传感器排布

“一”字形排布是传感器最常用的排布形式,即各个传感器都在一条直线上,从而保证纵向的一致性,使其控制策略主要集中在横向上。

非“一”字形排布虽然增加了纵向的特性。

但由于纵向的排列不一致,就比“一”字形更增加了多传感器同时感应的可能性,从而将控制策略复杂化。

而“一”字形排布结构简单,对应的控制策略简单,容易实现,所以采用“一”字形排布形式

2.4测速模块

为了使智能车快速,稳定的跟随黑色轨迹,一个快速,准确的测速传感器系统是必不可少的。

常用的测速传感器包括红外光电传感器,霍尔传感器和测速发电机。

本设计采用了基于红外光电传感器的智能车测速系统。

选用红外光电传感器,响应时间是微秒量级,对于测量系统中的速度是完全足够的。

经过测量,车轮周长17cm,所以采用了17孔的测速码盘,就可以满足系统的要求,并且经实际测试可以达到上述目的。

电路原理图及测速码盘示意图如下:

图2.3测速传感器电路图图2.4测速码盘示意图

2.5电机驱动模块

电机驱动模块采用的是大赛组委会提供的MC33886芯片。

MC33886简介:

20个引角,其中D1,D2为使能端,IN1,IN2为输入端,OUT1,OUT2为输出端,将MC33886的输入端接到单片机PWM输出口,在其输出口可以得到与单片机PWM输出口相应的并可以驱动直流电动机的PWM信号

MC33886其实质就是一个H桥驱动电路,只不过它又加了一些保护电路,起到过流保护等作用。

MC33886内部具有过电流保护电路,刹车效果好,接口简单易用,能够提供较大的驱动电流,但对于小车骤然时所需的电流还是不够的,而且其发热量也比较大。

为了解决发热的问题,我们采用了两片33886芯片并联使用的方式,经过实验这种方式可以有效的驱动电机并且发热量很小,完全可以满足要求。

2.6转向模块

为了尽量缓解舵机滞后性所带来的影响,提高它的响应速度,我们采取了相应的措施:

1)尽量加大舵机的工作电压,提高其转动速度。

2)利用杆杠原理,通过对小车的拉杠的调整,增大前轮转角和舵机转角的传动比。

3)将小车的脉冲波形周期由20ms缩短到10ms,提高其响应速度。

第三章控制策略与软件实现

智能车控制算法是影响智能车运动性能的重要因素之一,在输入信号有限的条件下,运用一种有效的算法,对于提高智能车的运动性能,有着重要的作用。

系统方框图如下:

图3.1系统方框图

3.1黑线检测方法

使用集成红外传感器的缺点是它对路径的检测是离散的量,不能连续观注到黑线位置的变化。

当传感器的横向间隔距离比较稀疏时,模型车进行方向纠正的时候会在黑线两侧产生较大的波动。

所以传感器的间距不能过大,应当尽量的缩小。

但是,传感器的分布过密也有不足之处,如果过密会大大增加路径检测模块的质量,加大模型车的转动惯量,不利于过弯。

同时由于传感器的数量的限制,如果在个体之间布置过密,则整体的宽度也受到影响,检测范围缩窄,同样不利于模型车的稳定运行。

所以,传感器的间距应当根据实际的情况,在各种利弊之间进行合理的取舍,最终确定比较适中的间距。

经过反复的分析和实验测试,最终我们采用十二只光电传感器“一”字型等距排列,间距是15mm。

如图3.2所示:

图3.2前排光电排布示意图

为了能够有效的反应黑线相对于小车的位置,对前排光电进行坐标赋值,从左至右依次是-11,-9,-7,-5,-3,-1,1,3,5,7,9,11,当某一个或两个光电检测到黑线时(即返回信号为低电平时),通过软件编程,根据光电反馈回来的高低电平的信号,当某个光电返回的信号为低电平时其对应的坐标值才为有效值,而反馈回的信号为高电平的光电对应的坐标值无效,为零。

单片机根据收到的数据信息对十二个坐标值进行累加,然后除以具有有效坐标值的光电数,即为黑线相对于小车前排光电的位置坐标。

通过软件实现的细分的方法,可以把黑线相对于小车的位置值由12个提高到25个,在宽度不到170mm的范围内细分为25个有效坐标点,即为黑线与小车的相对位置每偏离5mm,此偏差即会被单片机识别,这个精度完全可以满足对小车的控制要求。

在制作前排光电和调试的过程中,我们常常遇到光电管坏了而不知道,想知道某个光电处于的状态时,信息却无从知晓。

为此,我们把每个光电串了个发光二极管(如图3.2),利用一定阻值的上拉电阻提高它的电压,使当光电检测到黑线时对应的二极管发光。

这样我们就可是方便的观察小车在运行的过程中每个光电的工作状态了。

在实际跑道调试的过程中,由于长时间在同一跑道测试小车,使跑道局部受损或者由于小车轮胎的摩擦造成跑道变黑,常常造成光电误判,即当某个光电检测到受损或者变黑的地方误判成是黑线,而且光电对光照特别敏感,再加上每个光电的特性也不完全相同,所以,对于十几个光电能否同时适应不同的环境,会不会出现误判现象对于小车能否稳定运行起到至关重要的作用,光电

之于智能车就相当于眼睛对于我们一样重要。

因此,为了解决这个难题,我们在硬件上已经采取了一定的措施,例如每个光电都加了可调电阻,通过改变光电检测返回的电平信号的大小,从而在一定程度上能够使光电在同一环境保持效果一致。

为了更有效的解决问题,我们采用软件滤波的方式,使在某一时刻同时最多只有3个光点是有效的,这样就大大减小了误判的几率,而且不用每次改变环境后都要重新调试光电,利用这种方案后可以说已经解决了误判的问题。

3.2路径形状判断

路径识别模块是智能车系统的关键模块之一,路径识别方案的好坏,直接关系到最终性能的优劣。

根据规定,跑道的形状主要是直道、普通弯道和连续弯道(S弯道),能否控制好转向和速度最重要的一个因素就是能否准确的判断路径的形状:

即在直道上以尽可能快的速度行驶,在遇到弯道时能够及时的降速和转弯。

a)判断入弯:

在这里采用记录黑线相对于小车中心的偏差的连续变化次数来实现对弯道的判断,当黑线连续向右或者向左偏离5次,即为了确保小车能尽量准为前方路径为弯道。

而且确及时的判断出弯道,还通过软件加了保险措施:

以某个边缘的光电为必须转弯的极限值。

即当黑线相对于小车的坐标出现大于等于7或小于等于-7时,小车一定运行在弯道上。

b)判断出弯入直道:

经过常时间的调试发现,由于小车的前瞻距离短及舵机相应滞后等因素的影响,小车在转弯的过程中,黑线相对于小车中心的偏离量较大,而当出弯入直道时,偏离量会减小到零,经过舵机的调节会迅速保持偏离量为零,这样小车就能够稳定的在直道上运行。

基于以上经验,采用中间三个坐标值(-1,0,1)为直道标志位,即当黑线相对于小车的坐标为以上三个值时,即为小车运行在直道上。

c)判断S弯道:

S弯道也是弯道的一种,基于以上对弯道的判断方法完全可以实现对S弯道的第一个弯道的判断,那么如何才能实现连续弯道的判断呢?

考虑到路形的可能情况,普通弯道的下一个路形不是直道就是连续弯道(即S弯),那么,在出弯的程序中加入一个过渡函数,即在一定时间内连续采集路况信息,如果出现偏离量增大或者减小(即没有维持零状态)的情况,那就说明下一路径形状为弯道,而刚才经过的弯道和现在的弯道将构成S弯道。

如果在过渡函数执行的过程中,偏离量一直为零或者以零为中心上下波动,那么说明当前的路径形状为直道。

3.3转向控制策略

经过反复的实验调试,应用PID算法的P控制就完全可以实现对舵机的转向控制。

转向控制的方框图如下:

图3.3转向控制的方框图

在这里由于在直道要求小车尽量不要产生波动,能够快速的运行,而弯道上则要尽量大的调节以利于转弯,所以,采用分段比例控制,根据偏移量和路形的不同而改变P控制的比例系数Kp。

如下图所示:

图3.4舵机转角与小车偏移量示意图

在调试的过程中,时常会出现舵机打死现象,往往会使小车停止不动。

为此,在转向控制的软件实现上,我们对舵机的控制信号实行了保护措施,即设定了舵机的最大和最小转向角,从而有效的解决了这个问题。

3.4速度检测

本设计利用一个圆周分成17分的测速码盘与一个投射式的红外光电传感器组成智能车的测速系统。

就相当于小车每前进1cm就会出现上升沿或者下降沿,然后使用HS12上的输入捕捉功能对输入脉冲进行二次捕捉后,可以计算出两次脉冲之间的时间t,从而可以比较精确的计算出小车的速度v。

3.5速度控制策略

PID控制算法具有原理简单,易于实现,鲁棒性强和实用面广等优点。

即使在过程计算机控制中,PID控制仍然是最广泛的控制算法,使用计算机实现PID控制就不简单是把PID控制规律数字化,而是进一步与与计算机的逻辑功能结合起来,使PID的控制更加灵活多样。

PID的作用:

(1)比例控制的优点是当误差一旦产生,控制器立即产生控制作用.使被控制量向误差减少方向变化。

其缺点是对于阶跃响应的终值为一个有限值时,系统的控制存在稳态误差,加大Kp可减少稳态误差。

但Kp过大时,会使动态性能变坏,即产生过多的振荡甚至会使整个闭环系统不稳定。

(2)积分控制的优点是能对误差进行积分,有利于消除稳态误差。

其缺点是积分具有滞后特性,积分控制作用太强了会使控制的动态性能变差,以至于使系统不稳定。

(3)微分控制的优点是能对误差进行微分,迅速地感应出误差的变化趋势。

增大微分控制作用可缩短系统响应时间,使超调量减少,增加系统的稳定性。

其缺点是它对干扰同样敏感,使系统抗干扰能力降低

对于速度的控制采用增量式PID控制,根据测速系统反馈回来的小车当前速度值和系统记录的上两个状态的速度值,从而实现对速度的调节。

调速系统框图如下:

图3.5速度控制方框图

增量式PID公式如下:

△u(n)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)]

其中△u(n)为第n次输出增量,则u(n+1)-u(n)=△u(n),Kp,Ki,Kd分别为P,I,D调节参数,e(n)代表位置偏差。

利用HS12单片机的外部捕捉中断和RTI实时中断,可以精确及时的计算出小车的速度并与目标车速进行比较而得出速度偏差,根据当前的速度偏差以及系统记录的上两个状态的速度偏差,利用PID算法即可及时的调节速度。

调速系统在此模型车的主要作用就是能够及时的加速减速使其达到理想的速度值,而由直道入弯道时能否快速的使速度降到弯道的速度是保证小车顺利转弯的关键所在。

为此,采取过三种减速方式:

一是利用H桥驱动电路实行反转点刹制动。

这种方式的优点是可以快速的使速度降低到目标值。

缺点是由于刹车反应过快,使速度较低到零,然后再重新加速到目标值,这样就浪费了时间。

而且这种反转刹车的方式会产生过大的冲击电流,有可能造成单片机的复位和死机。

二是利用H桥驱动电路的反转连续刹车,同时利用测速系统对车速进行监控,当达到目标车速时就停止刹车。

这种方式能够实现迅速刹车,同时能够解决上述方法的浪费时间的缺点。

但是由于降速时间太短,很有可能造成车反转运行在目标车速上。

三是利用调速系统进行PID调速来实现降速。

这种方式能够实现快速降速,但相对于上两种方式要慢一些。

但他却不会出现上述方式的错误现象。

综上,采用第三种方式来实现智能车的调速。

经过反复的实验,得出尽量增大PID调速系统的比例系数Kp,有利于快速调节速度,但Kp值也不能太大,太大就会造成系统的不稳定。

3.6记忆控制方案

由于光电前瞻量的限制使小车不能过早的得知路径的形状,以及舵机的机械延迟性使指令的发出与执行存在滞后,就限制了小车的行驶速度。

为了能够再提高小车的运行速度,采用了路径记忆的方法,即小车以稳定的速度跑完第一圈,同时能够可靠准确的记录下跑道的路径信息,这样,在跑第二圈时就能够提前知道前方的路径形状而实现提前对小车采取相应的控制。

在这里我们主要采用了记忆跑道中直道的长度;即通过记录测速码盘产生的脉冲数量来记录直道的长度。

在第二圈时就可以让小车在直道上全速运行,并根据记录的直道的长度数据来进行提前降速,以利于小车能够顺利转弯。

此方案在很大程度上提高了车的平均速度,但是当跑道中直道比较少时,这种方式的提速效果就不明显了。

基于记忆控制思想的软件流图如下:

图3.6软件流图

第四章总结及比赛心得

本方案的设计中没有对车模做任何的改动,而是按照车模附带的图纸进行的搭建。

本设计采用12个光电传感器组成路径检测系统,通过软件配合,可以准确的识别路径信息。

采用分段比例控制转向,可以使小车在各种路形上都能稳定的运行。

利用投射式光电传感器和码盘组成的测速系统可以精确的测量车速。

适当的PID参数使速度可以及时的得到调节。

从小车的实际运行情况来看,这套方案基本上是成功的。

在赛车调试的过程中,为了便于观察一些重要的数据,我们使用了串口调试软件,可以通过串口线准确的把要知道的数据传到电脑上。

还利用了液晶显示装置,可以把小车运行时某一时刻的速度值等数据显示在液晶屏上。

通过这些方式,对于调试小车起来很大作用。

比赛心得:

1)大部分参赛队伍采用的是摄像头检测路面信息,而且效果明显优于光电检测。

虽然摄像头检测需要涉及图像处理的问题,算法也会更复杂,但是摄像头是更好的路径检测装置。

2)有些参赛队伍对舵机的外部机械结构进行了改动,使舵机的反应速度大大加快,这是个相当好的方法,值得借鉴。

3)利用MC33886驱动电机,虽然可以实现基本功能,并且利用两片芯片并联可以有效解决散热问题,但由于芯片本身的限流保护作用,在一定程度上限制了驱动电流,使小车的加速变慢。

4)采用记忆策略时,应在第一圈完全的记忆跑道,如果只记忆知道部分,那么对于知道少的跑道,就大大的不利了。

5)在比赛前我们做的在制作硬件电路时,要选择质量号的器件,以防止在比赛前出现器件坏掉的危险。

参考文献

[1]卓晴,黄开胜,邵贝贝.学做智能车---挑战“飞思卡尔”杯[M].北京:

北京航空航天大学出版社,2007年3月

[2]邵贝贝.单片机嵌入式应用的在线开发方法[M].北京:

清华大学出版社,2004年

[3]朱玉玺,崔如春,邝小磊.计算机控制技术[M].北京:

电子工业出版社,2005年6月

[4]陶永华.新型PID控制及其应用[M].北京:

机械工业出版社,2002年10月

[5]蒋新松.智能车学导论[M].沈阳:

辽宁人民出版社,1994.420~426

[6]诸静.智能车与控制技术[M].杭州:

浙江大学出版社,1991.7~10,115~126,222~253

[7]KrausTW,MyronTJ.Self-TuningPIDControllerUsesPatternRecognationApproach.ControlEngineering[C],1984.6:

109-111

[8]陶永华.PID控制原理和自整定策略[C].工业仪表与自动化装置.1997(4):

60-64

附录:

源代码

#include/*commondefinesandmacros*/

#include/*derivativeinformation*/

#pragmaLINK_INFODERIVATIVE"mc9s12dg128b"

staticintsp_e;

staticintSpeed_dtct;

staticintSpeed_set;

staticintKp_s;

staticintKi;

staticintKd;

staticintinc_mduty;

staticintMduty;

staticintx[3];

staticinty;

staticintAD[12];

staticintconter[2];

staticintsign[3];

staticintflag;

staticintzkb1;

staticintSPEED[3];

staticintblack,black2,black3;

staticintKp;

staticintsudu1,sudu2,sudu3,sudu4,sudu5;

staticinttimer[30];

staticintpulse;

staticintend;

staticintdate;

staticintdate2;

staticintcircle;

voidDelayNS(intdly)//输入是1000时大概延时0.75s

{inti;

for(;dly>0;dly--)

for(i=0;i<1000;i++);

}

voidini_port(void)

{DDRA=0XEF;

PORTA=0XFF;

}

voidini_ad(void)

{ATD0CTL2=0xC0;//AD模块上电,快速清零,无等待模式,禁止外部触发,中断禁止

ATD0CTL3=0x20;//每个序列4次转换,NoFIFO,Freeze模式下继续转换

ATD0CTL4=0x83;//8位精度,2个时钟,ATDClock=[BusClock*0.5]/[PRS+1];PRS=5,

ATD1CTL2=0xC0;//AD模块上电,快速清零,无等待模式,禁止外部触发,中断禁止

ATD1CTL3=0x20;//每个序列4次转换,NoFIFO,Freeze模式下继续转换

ATD1CTL4=0x83;//8位精度,2个时钟,ATDClock=[BusClock*0.5]/[PRS+1];PRS=5,

ATD0DIEN=0x00;//禁止数字输入

ATD1DIEN=0x00;//禁止数字输入

}

voidAD_caiji_12(void)

{inti;

black2=0;

black3=0;

for(i=0;i<=7;i++)

{AD[i]=0;

ATD1CTL5=(i+128);

while(!

(ATD1STAT1&0x01));

AD[i]=ATD1DR0L;

}

for(i=0;i<=3;i++)

{AD[i+8]=0;

ATD0CTL5=(i+128);

while(!

(ATD0STAT1&0x01));

AD[i+8]=ATD0DR0L;

}

if(AD[0]>100){AD[0]=0;}

else{AD[0]=-11;black2=black2+1;}

if(AD[1]>100){AD[1]=0;}

else{AD[1]=-9;black2=black2+1;}

if(AD[2]>100){AD[2]=0;}

else{AD[2]=-7;black2=black2+1;}

if(AD[3]>100){AD[3]=0;}

else{AD[3]=-5;black2=black2+1;black3=black3+1;}

if(AD[4]>100){AD[4]=0;}

else{AD[4]=-3;black2=black2+1;black3=bl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1