南昌闪电之舞技术报告_第1页
南昌闪电之舞技术报告_第2页
南昌闪电之舞技术报告_第3页
南昌闪电之舞技术报告_第4页
南昌闪电之舞技术报告_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五届“飞思”杯大学生智能汽车竞赛技术学校:南昌大学队伍名称:闪电之舞参赛队员:、带队教师:、1关于技术和研究使用的说明本人完全了解第五届“飞思”杯大学生智能汽车邀请赛关保留、使用技术 委会和飞思案、技术委会和研究的规定,即:参赛作品著作权归参赛者本人,比赛组半导体公司可以在相关主页上收录并公开参赛作品的设计方以及参赛模型车的集中。、图像资料,并将相关内容编纂收录在组参赛队员签名:带队教师签名:期:日2第一章 引言1智能车制作概述1相关联文献综述11.3 技术安排1第二章 整体方案设计2系统整体方案的选定2整车设计思路2第三章 机械设计5主控电路板安装结构5传感器模块安装位置5前轮参数调整6测

2、速模块的安装7重心的调整7第四章 硬件设计9MC9S12XS128 主控模块9电源模块105V 稳压电源116V 稳压电源V 电压V 电压12传感器模块13电机驱动模块15舵机控制模块17速度检测模块18辅助调试模块20设计21程序整体设计21传感器检测21位置识别和舵机控制23速度控制算法和速度策略24安全策略24.64.7第五章5.7第六章6.16.2调试. 27开发工具27主要技术参数29技术参数说明29创新点和存在. 29致谢30参考文献30附录313第一章 引言1.1 智能车制作概述这份技

3、术中,闪电之舞队成员通过对整体方案、电路、算法、调试、车辆参数的介绍,详尽地阐述了的和创意,具体表现在传感器检测的创新,车模机械方面的改装以及算法方面的独特想法,而对单片机具体参数的调试也让付出了艰辛的劳动。这份凝聚着的心血和智慧,是共同努力后的成果。1.2 相关联文献综述在准备比赛的过程中,小组成员涉猎控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科。在实际设计制作过程中所阅读的文献包括:MC9S12XS128 单片机开发资料、机械调整与安装、控制技术、往届技术等相关资料及参考文献。1.3 技术安排全文共由 6 个章节组成,第一章为引言,第二至五章为主体部分,第六章为总结。引

4、言部分为总体概述,第二章引出了的总体方案,确定了整车设计思路。然后,第三章对机械性能的一些探索和改进。第四章介绍了车模各模块的硬件电路实现。第五章详细描述了系统设计中用到的各控制算法、位置识别算法和车体控制算法及在设计过程中软硬件开发调试工具。最后,第六章对小车的技术参数进行了相关说明,了小车的创新点与之处。1第二章整体方案设计2.1 系统整体方案的选定智能车路径识别模块是智能车系统中的关键模块之一,路径识别模块的好坏关系到整车的性能。因此确定路径识别模块是确定整体方案的关键。本届智能车比赛的路径识别方案有光电、头和电磁。光电传感器巡迹方案的优点是信号处理速度快,缺点是信息量有限和难以获得较大

5、的前瞻;头巡迹方案的优点是可以获得大前瞻和较大的信息量,缺点是信号处理比较复杂;电磁巡迹方案的优点大赛第一次加入此方案大家都在同一个起跑线上,缺点是前瞻太小,无资料可参考。经过组员的权衡,决定采用光电传感器作为的巡迹方案,相信通过选用大前瞻、稳定性高的光电传感器,光电传感器也可以达到很好的控制效果。2.2 整车设计思路竞赛规则规定,智能车系统采用飞思的16位微控制MC9S12XS128单片机作为控制单元用于智能车系统的控制。在选定智能车系统采用光电传感器方案后,的位置信号由车体前方的光电传感器,经S12 MCU的I/O口处理后,用于的运动控制决策,同时模块发出波,驱动直流电机对智能车进行加速和

6、控制,以及伺服电机对进行转向控制,使在赛道上能够行驶,并以最短的时间最快的速度跑完全程。为了对的速度进行精确的控制,在智能车后轴上安装光电编,车轮转速的脉冲信号,经MCU捕获后进行框图如图2.1所示。自动控制,完成智能车速度的闭环控制。系统总体方2调试模块电源模块传感器模块速度检测模块MC9S12XS128主控模块电机驱动模块舵机控制模块图2.1 系统总体根据以上系统方案设计,共包括七大模块:MC9S12XS128 主控模块、传感器模块、电源模块、电机驱动模块、舵机控制模块、速度检测模块和辅助调试模块。各模块的作用如下:MC9S12XS12 主控模块,作为整个智能车的“大脑”,将光电传感器、光

7、电编等传感器的信号,根据控制算法做出控制决策,驱动直流电机和伺服电机完成对智能车的控制。传感器模块,是智能车的“眼睛”,可以通过一定的前瞻性,提前感知前方的赛道信息,为智能车的“大脑”做出决策提供必要的依据和充足的反应时间。电源模块,为整个系统提供合适而又稳定的电源。电机驱动模块,驱动直流电机完成智能车的加控制。舵机控制模块,控制伺服电机的转向。速度检测模块,检测智能车转速,用于速度闭环控制。辅助调试模块,主要用于智能车系统的功能调试、状态等方面。3图2.2 整车效果图4第三章机械设计本届比赛的光电车和头的车没有采用以前使用的A型车模而是使用B型车模,B型车模采用四驱,机械结构比较复杂,这使得

8、机械机构的调整尤为关键 ,机械结构的好环对车的整体性能的有的影响。本模型车机械设计的部分主要包括主控电路板的安装、传感器的安装、前轮参数的调整、测速模块的安装、重心的调整。3.1 主控电路板安装结构由于本队设计的电路板集成度较高,体积小质量轻,因此安装方便,并使整个车的结构更紧凑,外观更美观简洁。主控板的形状设计为符合车体前端空间的形状,主控板放在车体的中部,利用车体底盘上本来的螺孔和条形孔,并另外钻孔,用四个尼龙将主控板固定在汽车底盘上。的安装原则是,既要保证电路板不不晃动,又要便于拆卸更换。图 3.1 主控板和传感器安装3.2 传感器模块安装位置由于激光检测能提供很大的前瞻,同时为了保证机

9、械上有更低的重心和更小的惯量,把 16 个激光管和 4 个接收管电路画在一块 PCB 板上。由于激光管的抖动对检测稳定性的影响很大,前瞻超过 45cm 后激光管的抖动很大地影5响了检测的稳定性,用薄薄的铝板将激光发射管和接收管固定在小车的正上方,在保证一定前瞻的基础上尽量降低重心。3.3 前轮参数调整调试中发现,在过弯时,转向舵机的负载会因为车轮转向角度增大而增大。为了尽可能降低转向舵机负载,对前轮的安装角度,即前轮定位进行了调整。前轮定位的作用是保障汽车直线行驶的稳定性,转向轻便和减少轮胎的磨损。前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等 4 个项目决定,反映了转向

10、轮、主销和前轴等三者在车架上的位置关系。1)主销内倾是指主销装轴略向内倾斜的角度,它的作用是使前轮自动回正。角度越大前轮自动回正的作用就越强烈,但转向时也越费力,轮胎磨损增大;反之,角度越小前轮自动回正的作用就越弱。2)主销后倾是指主销装轴,上端略向后倾斜的角度。它使车辆转弯时产生的离心力所形成的力矩方向与车轮偏转方向相反,迫使车轮偏转后自动恢复到原来的中间位置上。由此,主销后倾角越大,车速越高,前轮稳定性也愈好。3)主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时后倾的回正作用大,低速时内倾的回正作用大。4

11、)前轮外倾角对汽车的转弯性能有直接影响,它的作用是提高前轮的转向安全性和转向的轻便性。前轮外倾角俗称“外八字”,如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。所以事先将车轮校偏一个外八字角度,这个角度1左右。5)所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。前轮在滚动时,其惯性力会自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。其实前轮的调整并不是一次就能定性的,主销的倾角和前轮的倾角需要配6合控制策略。对于不同的车模,有的

12、可能适应理论上的调整方法,但是对于大多数车模来说,最后的调整结果和理论有很大的偏差,主销内倾和后倾可能会增大回正作用,但是实际调试过程中一般都是根据车模的特性来调整。3.4 测速模块的安装测速采用的是光电编。光电编的安装,安装的好坏影响齿轮咬合效果。首先最关键的是编自身要固定到不会晃动,哪怕轻微的晃动也有可能会引起齿轮咬合打齿的。其次要调整好两个咬合齿轮间的距离,齿轮与齿轮间距离不能太近或太远,否则会卡齿或滑齿。卡齿或者滑齿将严重影响速度测量的精度,这是不希望出现的。今年采用的 B 型车模使得光电编的安装比较,通过不断的尝试,采用了的安装方法,实际效果不错。图 3.2 光电编的安装3.5 重心

13、的调整小车的重心位置影响汽车在转弯时的安全性能和车的速度。物体做圆周运动时,都有离心倾向.汽车转弯半径一定时,速率越高,离心作用越明显.离心力的作用点就是重心位置,轮胎与地面的接触点就是支点. 重心的离地高度就是力臂.根据杠杆原理,如果受力大小相等,力臂越大,所受的力矩就越大.当离心力矩大于重力力矩时,汽车就会侧翻. 在离心力没有达到足以使汽车侧翻的情况下,它也会使汽车左右两侧的轮胎受力不相等.一侧轮胎受力增大,而另一侧轮胎受力减小,会严重影响汽车的稳定性,甚至造成失控。这就要求重心必须在一个理想的位置.如果重心位置靠前或者靠后,就会影响到轮胎的负荷,从而影响到轮胎的使用安全性. 另外,因为前

14、轮负责转向,重心太靠前,前轮负荷7过大,转向就费劲;重心太靠后,又会导致转向发飘,高速行驶时易造成事故。因此为了稳定安全快速,要使小车的重心处于一个合理的位置。这届比赛使用的 B型车模前后轮的减震弹簧比较松,使车的重心比较高而且比较松的减震弹簧会使车在行驶过程中车身容易晃动,不利于传感器的检测,因此必须将车的中性降低到合理位置并加固减震弹簧。通过调整减震机构使车的底盘离地的高度为 6mm,大大降低了重心,提高了稳定性。8第四章硬件设计4.1 MC9S12XS128 主控模块图4.1主板实物图智能车系统使用规定的 MC9S12XS128 作为控制,为使控制电路精简体积小选用的是引脚的封装,为了让

15、的精力投入到传感器的制作和程序编写上板,另外再设计了一块没有自己设计最小系统板而是采用龙丘的 S12 最小系统电路的主控板,主板上包括电源模块、激光选通发射模块、最小系统板和一些接口。如图 4.1 所示。根据实际设计需要分配控制器单元如表 4.1 所示,主要包括了传感器控制与检测部分、电机驱动部分、舵机控制、ECT 部分、BDM 调试接口以及其它常用电路的接口等。9表 4.1MC9S12XS128 单片机管脚分配表4.2 电源模块图 4.2 电源管理模块图电源模块为系统其他各个模块提供所需要的电源。设计中,除了需要考虑电压范围和电流容量等基本参数之外,还要在电源转换效率、降低噪声、防止干扰和电

16、路简单等方面进行优化。可靠的电源方案是整个硬件电路可靠稳定运10无线、液晶传感器单片机舵机电机3.3V 稳压5V 稳压-25V 稳压-16V 稳压电机驱动电路7.2VNi-Cd 电池组激光接收S0-S3激光发射A0-A3拨码开关A4-A7电机驱动P2(正转)P3(反转)B7(使能 )舵机控制P1光电编P7 (脉冲累加)无线M0-M7液晶B0-B5行的基础。按照智能车系统的设计要求,需对分配,设计规划出的电源模块提供的 7.2V 电池进行合理的电压。4.2.15V 稳压电源5V 电源模块用于为单片机系统、传感器模块等供电。常用的电源有串联型线性稳压电源(LM2940、7805 等)和开关型稳压电

17、源(LM2596、LM2575 等)两大类。前者具有纹波小、电路结构简单的优点,但是效率较低,功耗大;后者功耗小,效率高,但电路却比较复杂,电路的纹波大。对于单片机,需要提供稳定的 5V 电源,由于LM2940 的稳压的线性度非常好,所以选用 LM2940-5 单独对其进行供电;而其它模块则需要通过较大的电流,而LM2596-5,带载能力大,缺点是其纹波电压大,不适合做单片机电源,不过对其它模块供电还是能保证充电的电源。利用 LM2940-5 和 LM2596-5 对控制系统和执行部分开供电,可以有效地防止各器件之间发生干扰和电流,使得系统能够稳定地工作。图 4.3 LM2940 电路图图 4

18、.4 LM2596-5.0 电路图114.2.26V 稳压电源小车所用的舵机工作电压在4.8-6V之间,了解舵机的工作原理后发现,提高舵机工作电压,可使其响应速度加快,但是过高的电压会使舵机烧毁,特别是对今年使用的型车模的舵机要特别控制好舵机的电压,所以舵机的工作电压设计为5.8V。因此必须选用输出电压可调的的稳压来获得所需的电压。一开始使用的是LM1117-ADJ为的舵机供电,在后来的调试过程中发现LM1117-ADJ的压差太高了,当电池电压不够的大和小车加速过程中会使舵机供电影响转向。在查找稳压的技术资料后,采用利用LM2941-ADJ低压差稳压为舵机供电,由于压差足够小,既能满足供电要求

19、,又能解决由于电池电压下降引起的各种问题。图4.5 LM2941电路图V 电压主要为后轮电机驱动模块提供电源,这部分直接取自电池两端电压,经过BTS7960对电机进行驱动。V 电压主要用于对调试工具无线模块和液晶模块进行供电,3.3。选用的是LM1117-124.3 传感器模块在确定智能车总体方案时,选择光电传感器的方案。在选择光电传感器时最先用了以往用的比较多的红外传感器,但在调试的过程中发现红外稳定性比较差、能力比较差、前瞻等缺点于是放弃红外传感器的方案。在第四届比赛中出现了以激光传感器做为路径识别方案的智能车并取得了很好的成绩,激光传感器以其大前瞻、高稳定

20、性迅速获得了大家的青睐,于是激光传感器列入了的考虑范围。为了获得更大前瞻距离,为控制系统后续处理赢得的时间,在实践过程中,通过比较和试验,最终选择了前瞻大的激光传感器,前瞻距离可以达到普通光电传感器的数倍甚至几倍,完全满足竞赛的要求。激光管采用调制发射,可以大大减少其他光的干扰,提高了稳定性。4.3.1 接收部分使用的激光接收管为开光量输出的激光接收管,如图 4.6 所示:图 4.7 激光接收部分图 4.6 激光接收管这是激光传感器调制接收管,管子其实相当于一个IC,里面有锁相环电路,自动增益控制,配合透镜可以达到很大的前瞻距离。接收管参数:接收管接收光的波长在 500NM-980NM 之间,

21、接收光为频率在 160K-200K,占空比 20- 30%之间的调制波。只对这个频率和占空比的信号有很高的灵敏度,对于其他的灵敏度很低,增强能力。接收管连接电路图如图 4.7 所示。4.3.2 发射部分由接收管的特性光,因此激光发射知道,接收管只接收频率和占空比在一定范围的调制要进行载波发射。在赛区比赛的时候发现很多队采13用的使用调制管来产生所要的波,没有采取这样的方案,直接用单片机的口产生所需的波再用 MOS 管 IRF9630 来驱动激光发射管进行发射,实际效果很好。为了避免激光管之间的相互干扰,和两片 ULN2803 来分时点通激光管进行发射。使用了两片 3-8 译74HC238图 4

22、.8 发射电路图14整排激光传感器使用 16 个激光发射管,四个接收管。布局如图 4.9。图 4.9 传感器布局图采用四个发射对应一个接收的方式,节省了发射管的个数,简化了传感器的布局和重量。16 个发射管两两间距为 13mm,对于宽度为 25mm 的黑线这已经足够了。通过调整激光发射管的功率,发现的前瞻可以达到 70cm,但在调试过程中发现,当前瞻大于 35cm 以后,大前瞻的一些副作用便开始显现出来,首先受影响的便是起跑线、交叉线、坡道的检测。虽能将这些问题部分解决,但可靠性有待提高。经过不断地调节,并本着大前瞻和高精度的原则,我们将前瞻距离限定在 32cm 左右(定义探测位置与前轮中心的

23、距离为“前瞻”)。4.4 电机驱动模块电机驱动模块考虑了以下三种方案:1、使用MOS管自行搭建H桥作为电机驱动电路选用作为电机驱动的MOS管时,要考虑MOS管的导通电阻、最大电压、最大电流、管种类和结构、MOS管导通特性、MOS开关管损失。如图4.10所示,M1和M4导通是,电机顺时针转,M2和M3导通时,电机逆时针转。需要注意的是用于高端驱动的NMOS,驱动用PMOS。15图4.102、采用2片33886驱动由于MC33886的导通电阻比较大,产生了较大的压降,使了增强其驱动能力利用多块33886并联使用。容易发热,为该接法降低了MOS管的导通内阻,增大了驱动电流,可以起到增强驱动能力 、减

24、小发热的作用,但是起始频率受限,电机噪声大且发热严重。3、采用2片BTS7960采用2个半桥智能功率驱动BTS7960B组一个全桥驱动器,驱动直流电机转动。BTS7960B是应用于电机驱动的大电流半桥集成,它带有一个P沟道的高边MOSFET、一个N沟道的低边MOSFET和一个驱动IC。 P沟道高边开关省去了电荷泵的需求,因而减少了电磁干扰(EMI)。集成的驱动IC具有逻辑电平输入 、电流、斜率调节、死区时间产生和超温、过压、欠压、过流及短路保护功能。BTS7960B的通态电阻典型值为16 m,驱动电流可达43 A,调节SR引脚外接电阻的大小可以调节MOS管导通和关断时间,具有防电磁干扰功能。I

25、S引脚是电流检测输出引脚。INH引脚为使能引脚,IN引脚用于确定哪个MOSFET导通。当IN=1且INH=1时,高边MOSFET导通,输出;当IN=0且INH=1时,低边MOSFET导通,输出低电平。通过对下桥臂开关管进行频率为25 kHz的脉宽调制()信号控制BTS7960B的开关动作,实现对电机的正反向驱动、反接制动、能耗制动等控制状态。这块开头频率可以达到25 kHz,可以很好地解决前面提到的MC33886使电机噪声大和发热,同时驱动能力有了明显的提高,响应速度快。但是,电速时会使电源电压下降10%左右,控制器等其他电路16容易产生掉电,从而使整个电路系统瘫痪。图 4.11 电机驱动模块

26、图通过实际效果和综合比较,最终采用的是 BTS7960 作为驱动,采用两片 BTS7960全桥电路。MCU 通过 B7 口输入使能信号,通过P2、P3 口输入波调节电机的正转和反转功能。4.5 舵机控制模块采用提供的舵机及连接杆,将舵机固定在车体前方的空挡中,将连接杆分别固定到车的两个前轮的后侧,这样就通过舵机的转动,能够调节智能车的左转或者右转。但是在实际的安装过程中,方法有很多,有卧装也有竖装,有放在连杆前方也有放在后方。但不管方式如何多种多样,都需要自己去尝试来选择一种最适合自己车模的舵机安装方法。的舵机安装方法是将舵机竖装,放在车头的位置,这样的安装方法可以大大提高舵机的响应速度。17

27、图 4.12 舵机安装图4.6 速度检测模块为了提高速度控制的稳定性和精度,一般采用闭环控制,速度的闭环控制离不开速度的测量。测量速度的方法有很多种,目前国内外常用的测速方法有光电码盘测速法、霍尔元件测速法、离心式转速表测速法、测速发电机测速法、漏磁测速法、闪光测速法和振动测速法等。1光电码盘测速法这是通过测出转速信号的频率或周期来测量电机转速的一种无接触测速法。光电码盘安装在转子端轴上,随着电机的转动,光电码盘也跟着一起转动,如果有一个固定光源照射在码盘上,则可利用光敏元件来接受光,接收到光的次数就是码盘的编码数。2霍尔元件测速法利用霍尔开关元件测转速的。霍尔开关元件内含稳压电路、霍尔电势发

28、生器、放大器、触发器和输出电路。输出电平与 TTL 电平兼容,在电机转轴上装一个圆盘,圆盘上装若干对小磁钢,小磁钢越多,分辨率越高,霍尔开关固定在小磁钢附近,当电机转动时,每当一个小磁钢转过霍尔开关,霍尔开关便输出一个脉冲,计算出时间的脉冲数,即可确定旋转体的转速。183离心式测速法离心式转速表是利用物体旋转时产生的离心力来测量转速的。当离心式转速表的转轴随被测物体转动时,离心器上的重物在惯性离心力作用下离开轴心,并通过传动系统带动指针回转。当指针上的弹簧反作用力矩和惯性离心力矩相平衡时,指针停止在偏转后所指示的刻度值处,即为被测转速值。这就是离心式转速表的原理。测转速时,转速表的端头要电机转

29、轴的中心,转速表的轴要与电机的轴保持同心,否则易响准确读数。4测速发电机测转速利用直流发电机的电枢电动势 E 与发电机的转速成正比的这一关系测量转速。测转速时,测速发电机连接到被测电机的轴端,将被测电机的机械转速变换为电压信号输出,在输出端接一个刻度以转速为速。的电压表,即可读出转在智能车上用的比较多的是光电码盘测速法和霍尔元件测速法。综合各种考虑最后选用了型号为型号YZ25D-4S-1VB-200B 的光电编来测速。电气参数为:单A 相、电压输出型、适用 5V 电压、200 脉冲。不需要外加电路,信号输出端可以接入单片机的脉冲累加端(PT7 口)进的设计。速,简化了硬件电路图 4.13 光电

30、编安装图测速算法。脉冲测速最典型的方法有测频率(M 法)和测周期(T 法)。M 法是测量时间内的脉数换算成频率,因存在测量时间内首尾的半个脉冲问题,可能会有 2 个脉的误差。速度较低时,因测量时间内的脉冲数变少,误差所占的比例会变大,所以 M 法宜测量高速。如要降低测量的速度下限,可以提高编19线数或加大测量的时间,使用一次的脉冲数尽可能多。T 法是测量两个脉冲之间的时间换算成周期,从而得到频率。因存在半个时间,可能会有 1 个时间的误差。速度较高时,测得的周期较小,误差所占的比例变大,所以 T 法宜测量低速。如要增加速度测量的上限,可以减小编的脉冲数,或使用更小更精确的计时,使一次测量的时间

31、值尽可能大。采用的测速算法 M 法,利用单片机的 PIT 定时中断算的到当前的速度。4.7 辅助调试模块脉冲累加器中的值来计辅助调试模块包括无线模块、液晶模块和模块。无线模块,可以将智能车行驶过程中的数据实时传送到电脑,是一种实用高效的调试工具。使用的无线模块是 nRF905 无线模块。硬件实物如图4.13,发射和接收各需一块,发射装在小车上,接收通过串口与PC相互通信。液晶模块,可以将数据实时地显示出来,直观方便,针对性强。的是诺基亚5110。硬件实物如图4.14所示,装在小车上。使用图4.14 无线模块实物图图4.15 液晶模块实物图模块,为了在调试过程中小车能随时启动和停止,行编写程序设

32、置了模块。,自图4.16模块实物图20第五章设计5.1程序整体设计图5.1程序流程图5.2传感器检测使用的是单排激光,16个激光发射管呈“一”字形排列,接收管加装透镜之后可以大大提高接收管的接收范围,因此只采用了四个激光接收管,21执行电机与舵机根据参数选择不同的算法道路信息处理并得到相关参数道路信息系统初始化通过分时点通电路分时点通激光管进行发射通过PIT定时中断来检测该激光管式照到白线还是黑线。就这样通过定时中断和优化算法进行检测,得到要的所有信息。定时中断检测程序如下:想#pragma CODE_SEG NEAR_SEG NON_BED/定时器中断服务函数voiderrupt 66 PI

33、T0(void)PITCFLMT_PITE=0;PITTF_PTF0=1;if(PTIS&(1(OUT/4)Signal_Laser0OUT = 1;elseSignal_Laser0OUT = 0;if(T Proportion*error + sPD-Derivative*derror式中的error是中心线偏移量, derror是微分量。23在调试过程中不断调节KP和KD的参数使PD控制器达到理想的状态。开始我们使用的是固定P参数的PD控制,但在调试过程中发现这样会使小车走直道的时候左右晃动,不稳定,于是的效果。通过模拟使用了分段PD控制达到了理想5.4 速度控制算法和速度策略5.4.1

34、 速度控制算法模型车平稳地行驶是本次比赛的基本要求,但这并不意味着这是最简单的要求,因为速度控制的好坏直接影响整车的许多方面,比如直道的速度,转弯速度,性能等。为了提高对速度控制的稳定性和精确性,一般采用闭环控制。速度闭环控制的方法有很多,有控制、bang-bang 控制等。(比例-积分-微分)控制器作为最早实用化的控制器已有 50 多年历史,现在仍然是应用最广泛的工业控制器。控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。控制器由比例单元( P)、积分单元( I)和微分单元( D) 组成。其输入 e (t)与输出 u (t)的关系为u(t)=kp(e(t)+

35、1/TIe(t)dt+TD*de(t)/dt) 式中积分的上下限分别是 0 和 t因此它的传递函数为: G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s)其中kp为比例系数; TI为积分时间常数; TD为微分时间常数。bang-bang控制所谓Bang-Bang控制,实际上是一种时间最优控制,它的控制函数总是取在容许控制的边界上,或者取最大,或者取最小,仅仅在这两个边界值上进行切换,其作用相当于一个继电器,所以也是一种位式开关控制。这种控制方式在某些方面具有比常规控制较为优越的性能,尤其是对于给定值的提降及大幅度的扰动作用,效果更显著。在动态质量上不仅体现为过渡时间短这一特点

36、,而且在超调量等其他指标上也具有一定的改善。24最先选用了增量式的算法,在实际的调试过程中发现这种方法达不到理想的加速性能,于是采用了bang-bang控制,达到了控制和bang-bang控制结理想的加速性能但是也有,于是合起来,在偏差比较大的时候用bang-bang控制,在偏差比较小的时候用控制,用控制保证精度,用bang-bang控制保证力度,达到了理想的效果。/*速度计算*/Calc(*pp, char NextPo)char dError,Error;Error = pp-SetPo- NextPo;pp-SumError += Error;dError = pp-LastError

37、- pp-PrevError;pp-PrevError = pp-LastError;pp-LastError = Error;return (pp-Proportion * Error + pp-pp-Derivative * dError );egral * pp-SumError/100 +/*速度bang-bang控制*/void Bang_bang(byte Set_Speed,byte Pulse_NUM)if(Pulse_NUM = Set_Speed)DTY2 = 100;DTY3 = 0;else25DTY2 = 0;DTY3 = 100;5.4.2 速度策略为适应不同场合、

38、天气、湿度、KT板摩擦系数等的影响和选择不同的比赛策略,采用拨码开关设定不同的速度档位。要使小车能平稳快速地运行,应该使小车在不同的赛道以合适的速度跑,因此在什么样的位置给什么样的速度过弯,过慢的速度会影响比赛成绩。过快的速度会使小车不能安全的速度给定按照中心线偏移量来给定的,速度的输出与中心线偏移量成二次函数的关系,通过仿真,将每个偏差对应的速度制成表在程序里面直接查表,通过这样的方法取得了比较好的效果。5.5 安全策略赛道中有特殊路段,如交叉线、坡道、起跑线等。对这些路段加以识别并采取相应的安全策略是十分必要的。特殊路段特征明显,通过程序可以精确的识别,在识别后采取相应的安全策略,如、变参

39、、扩大扫描区域等。起跑线:起跑线的识别是非常重要的一个环节,起跑识别没做好就有可能使小车在中途停下来或者不停车影响比赛成绩。外加了两个激光管装在车尾来识别起跑线,调试结果表明这是一种非常有效的起跑线识别方法。使用两个激光管进行数线,这样做会使交叉也会被计数,因此比赛前用拨码开关设定交叉的个数,这样就可以准确的识别起跑线。交叉:们使用滤波算法将交叉的处理也非常关键,处理不好就会使小车走错方向。我交叉滤去,做到了眼中有交叉,心中无交叉,使小车能够安全顺利的通过交叉。滤波:在小车行驶过程中,难免会有一些外在的干扰,因此十分有必要加入滤波算法是小车能安全稳定的行驶。的滤波是相邻两次的位置值不能突变,利

40、用这种滤波达到了理想的效果。265.6 调试5.6.1 无线模块单片机通过SPI口,将数据由nRF905传输至主机,主机也可以通过串口调试工具将数据发送至单片机,实现了全双工通信,大大提高了调试效率。程序中通过调用void信息的发送和接收。errupt 24PORTJ_errupt(void)中断进行5.6.2 液晶模块调试时,需要了解每时每刻智能车“看到了”什么,为了更直观地了解这些信息,采用了液晶,将智能车检测过程中需要的各种信息实时显示出来。这一方案使调试变得更加直观和高效。程序中通过调用#include LCD5110.h实现。5.7 开发工具此次智能车大赛使用的开发为 CodeWar

41、rior5.0 开发。其使用界面如图 4.3 所示:图5.3CodeWarrior 程序编写界面CodeWarrior 的功能非常强大,可用于绝大部分单片机、系统的开27发。用户可在新建工程时将的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。如图 5.3 所示。图5.4 BDM调试界面利用CodeWarrior 5.0和BDM ,用户可以进行一系列的调试工作,如监视寄存器状态、修改PC 指针、设置断点等,这样能快速地帮助找到。或硬件在源程序编译、连接通过后,就可以进行程序所示。了,编译界面如图 5.428第六

42、章主要技术参数6.1 技术参数说明6.2 创新点和存在6.2.1创新点一个激光接收管对应四个激光发射管;激光发射分时点通。改变舵机安装位置并将舵机臂加长,降低车模重心,使用四驱;BTS7960 作为电机驱动;将速度列成表,方便程序查找。6.2.2没有使用算法;没有使用仿真。29项目参数路径检测方法(赛题组)光电组车模几何尺寸(长、宽、高)(毫米)320*230*210车模轴距/轮距(毫米)180/170车模平均电流(匀速行驶)(毫安)1500电路电容总量(微法)1900传感器种类及个数激光接收 6,光电编1新增加伺服电机个数0赛道信息检测空间精度(毫米)12赛道信息检测频率(次/秒)300主要

43、集成电路种类/数量XS128/1BTS7960/2车模重量(带有电池)(千克)1.5致谢在本次智能车大赛的准备期间,遇到了许多。从最开始的开发软件的使用到后来的传感器调试,从电路板设计到系统搭建,一个个问题的解决了帮助让这支队伍的成长。期间离不开老师、做得更好。的大力支持,是他们的这里,首先要感谢Freescale公司和给这样好的锻炼机会。同时,要感谢老师、水老师、老师、老师的悉心指导。感谢他们在小车整体设计思的指点,在软、硬件设计方面的指导。其次,要感谢学校和老师对竞赛的组织和大力支持。最后,要感谢和一起奋斗的freescale各队成员,自始至终,都在相互交流,相互探讨,相互学习。通过本次大

44、赛,学到了很多很多。参考文献1,2007.学做智能车“飞思”杯M.:航空航天大学23.单片机应用的开发方法M.:,2004.,李立国,界.2006,9:139-140. 智能车光电布局对路径识别的影响研究J. 电子产品世45等.HCS12 微控制器原理及应用.航空航天大学.2007.社.2007.1.等. 单片机的 C 语言应用程序设计.航空航天大学67沈长生.常用电子元器件使用一读通M.人民邮电.2004.等Pro高级应用M.人民邮电2002.30附录模型车控制主程序代码#include #include derivative.h #include nRF905.h#include LCD5

45、110.h/* common defines and macros */* derivative-specific definitions */#define LAST_ERROR_NUM 10#define Cal_Avr_NUM 10#define Pulse_Number 130#define BIAS 4#define Laser_Label_BIAS_Min 3#define Laser_Label_BIAS_Max 27#define Start_Line_BIAS 4#define Speed_NUM 8#define V_STH25#define V_BTH100#define

46、 Right 500#define Left 500 word Middle = 3410;char;char Last_= 0;31word NUM = 0; word Angle;Delta_Angle;byte Scan_Finish = 0; byte Start_Line_Signal2;bybyaser0_Black_Flag = 0;aser1_Black_Flag = 0;byte Start_Line_flag = 0; byte circle = 0;word Laser0_NUM = 0,Laser1_NUM = 0;byte Crossing_NUM = 0;byte

47、Speed_Table816=34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,34,41,41,41,40,40,39,38,37,34,34,34,34,34,34,34,34,45,45,44,43,42,40,39,39,38,38,37,36,35,35,34,34,50,50,49,48,47,46,46,45,44,43,42,40,38,36,35,34,55,54,53,52,51,50,48,46,45,43,42,40,38,36,35,34,60,59,58,56,55,53,50,48,46,44,43,42,41,38,35,

48、35,65,64,63,61,59,57,55,53,50,48,46,44,42,40,37,35,70,69,67,65,63,60,58,56,54,52,50,48,45,42,38,35,;#define Road_Record_NUM 34#define Aver_Record_NUM 5typedef structchar DataRoad_Record_NUM; rear;32Road_Record_SeQueue;Road_Record_SeQueue RRSQ; typedef structchar DataAver_Record_NUM; rear;Aver_SeQueu

49、e;void RRSQIn(Road_Record_SeQueue *Q,char x)Q-DataQ-rear = x;Q-rear = (Q-rear + 1)%Road_Record_NUM;void ASQI_SeQueue *Q,char x)Q-DataQ-rear = x;Q-rear = (Q-rear + 1)%Aver_Record_NUM;typedef structchar K;char Average; char Trend;Aver_SeQueue ASQ;Road_Signal; Road_Signal RS;typedef structchar DataSpee

50、d_NUM; rear;Speed_SeQueue;33Speed_SeQueueS_S;void Speed_SeQueueIn(Speed_SeQueue *Q,char x)Q-DataQ-rear = x;Q-rear = (Q-rear + 1)%Speed_NUM;long Speed; word V;byte Base_V;byte Bang_bang_Flag = 0;byte cnt;byte Road_Record_Finish = 0; byte Over_Flow_Num = 0;wordT = 0;byte Stop_Flag = 1;byte OUT = 0;byt

51、eT = 0;byte Signal_Laser016;byaser0_value16;char Label_Laser16 = -15,-13,-11,-9,-7,-5,-3,-1,1,3,5,7,9,11,13,15;typedef structchar Last_Laser_;char Last_Laser_Label;char Laser_;34byte Black_Number;byte Black_Change_Number; byte OUT_Flag;byteLaser;_Change_Flag;Laser Laser0;byte TxBuf32,RxBuf2; byte CN

52、T;byte Angle_Proportion16 =5,5,6,10,14,17,18,19,20,21,22,23,24,25,26,26;Angle_Deribative = 30;Speed_Proportiom = 150;Speed_egral = 2;Spedd_Derivative = 40; typedef structchar DataLAST_ERROR_NUM; rear;SeQueue_PD;void SeQueue_PDIn(SeQueue_PD *Q,char x)Q-DataQ-rear = x;Q-rear = (Q-rear + 1)%LAST_ERROR_

53、NUM;typedef struct PDchar Setpo;Proportion;35Derivative;SeQueue_PD LastError;PD;PD aPD;typedef structchar SetPo; / 设定目标 Desired ValueProportion; / 比例常数 Proportional Const egral; / 积分常数egral ConstDerivative; / 微分常数 Derivative Const char LastError; / Error-1char PrevError; / Error-2 SumError; / Sums o

54、f Errors;Speed;void setbusclock(void)CLKSEL=0X00; PLLCTL_PLLON=1; SYNR=0 xc0 | 0 x07; REFDV=0 x80 | 0 x01;TDIV=0 x00;_asm(nop);_asm(nop);while(!(CRG_LOCK=1);CLKSEL_PLLSEL =1;void Dly_ms(ii,jj;ms)36if (ms1) ms=1; for(ii=0;iims;ii+)for(jj=0;jj10682;jj+); void PIT_Init(void)PITCFLMT_PITE=0; PITCE_PCE0=

55、1; PITMTLD0=160-1; PITLD0=40-1;PITE_PE0=1;PITCFLMT_PITE=1;/*AD 初始化*/ void AD_Init(void)ATD0CTL1=0 x40; ATD0CTL2=0 x40;ATD0CTL3=0 x90;式下继续转ATD0CTL4=0 x01;/7:1-外部触发,65:10-12 位精度,4:放电,3210:ch/外部触发, 中断/右对齐无符号,每次转换 2 个序列, No FIFO, Freeze 模/765: 采 样 时 间 为 4个 AD时 钟 周期,ATDClock=BusClock*0.5/PRS+1ATD0CTL5=0

56、x30;ATD0DIEN=0 x00;/6:0 特殊通道,5:1 连续转换 ,4:1 多通道轮流采样/数字输入/*AD 采样函数*/ void ReadATD(word array2)while(!ATD0S0_SCF)ATD0S0_SCF=1;array0 = ATD0DR0;37array1 = ATD0DR1;void Pulse_Accumulate_Init(void)PACTL_PAMOD = 0;PACTL_PEDGE = 0;PACTL_CLK0 = 0;PACTL_CLK1 = 0;PACTL_PAOVI = 1;PACTL_PAI = 0;T = 0; PTPSR = 0

57、x00; PACTL_PAEN = 1;T = 65406;/* void初始化*/_Init(void)PRCLK = 0 x11; SCLA = 0 x08; SCLB = 0 x08;CTL_CON01 = 1;T01 = 0;T2 = 0;T3 = 0;T4 = 0;CAE_CAE1=0; CAE_CAE2=0;CAE_CAE3=0;38CAE_CAE4=0;POL_PPOL1=1; POL_PPOL2=1; POL_PPOL3=1;POL_PPOL4=1;CLK_PCLK1 = 1;CLK_PCLK2 = 1;CLK_PCLK3 = 1;CLK_PCLK4 = 0;PER01 = 4

58、0000;DTY01 = Middle; PER2 =100;DTY2 = 0;PER3 = 100;DTY3 = 0;PER4 = 160;DTY4 = 110;E_ E_ E_ E_E_E1 = 0;E2 = 0;E3 = 0;E4 = 0;E5 = 0;void Port_Init(void)DDRA_DDRA0 = 1;DDRA_DDRA1 = 1;39DDRA_DDRA2 = 1;DDRA_DDRA3 = 1;DDRA_DDRA4 = 0;DDRA_DDRA5 = 0;DDRA_DDRA6 = 0;DDRA_DDRA7 = 0;DDRE_DDRE2 = 0DDRE_DDRE3 = 0

59、;DDRE_DDRE5 = 0;DDRE_DDRE6 = 0;DDRB_DDRB5 = 1;PORTB_PB5 = 0;DDRS_DDRS0 = 0;DDRS_DDRS1 = 0;DDRS_DDRS2 = 0;DDRS_DDRS3 = 0;DDRT_DDRT0 = 0;DDRT_DDRT1 = 0;DDRT_DDRT2 = 0;DDRT_DDRT3 = 0;void Device_Init(void)setbusclock(); PIT_Init();_Init();40Port_Init(); AD_Init(); LCD_Init();Pulse_Accumulate_Init(); nr

60、f905_Init();econtrol_Init();void Send_Prm(void)CNT = 0;DataIn(Speed DataIn(Speed DataIn(Speed DataIn(Speed.Proportion);.egral);.Derivative);.SetPo);DataIn(aPD.Proportion);DataIn(aPD.Derivative);DataIn(DataIn();DTY2);nrf905_SendData();CNT = 0;void Display_Prm(void)LCD_P5x8Str(0,0,S_V:,4);LCD_P3Data(2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论