电子科技大学黑色旋风技术报告.docx
《电子科技大学黑色旋风技术报告.docx》由会员分享,可在线阅读,更多相关《电子科技大学黑色旋风技术报告.docx(56页珍藏版)》请在冰点文库上搜索。
电子科技大学黑色旋风技术报告
第六届“飞思卡尔”杯全国大学生
智能汽车竞赛
技术报告
学校:
电子科技大学
队伍名称:
黑色旋风
参赛队员:
姜籍翔
代宇廷
程瑶
带队教师:
程玉华
关于技术报告和研究论文使用授权的说明
本人完全了解第五届全国大学生“飞思卡尔”杯智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:
参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
姜籍翔
代宇廷
程瑶
带队教师签名:
程玉华
日期:
2011年8月8号
第一章引言.......1
第二章方案设计
2.1整车设计思路.2
2.2传感器设计.2
2.2.1红外传感器..........2
2.1.2激光传感器...........3
2.3系统总体方案的设计...........................................................................................3
2.4小结......................................................................................................................4
第三章智能车机械改造设计
3.1车体机械建模.......................................................................................5
3.2车模重心的调整......6
3.3舵机支架的设计.......7
3.4光电编码器.......7
3.5模型车技术参数统计......9
3.6改装后车模..............9
第四章智能车的电路设计及实现10
4.1各模块的作用..............................10
4.2稳压芯片的选择........................................................................................10
4.3稳压芯片电路设计.10
4.4舵机供电设计...11
4.5电机驱动模块11
4.6AltiumDesigner6简介11
4.7本章小结11
第五章软件设计及控制策略与算法13
5.1总体程序设计13
5.2基于PID算法的实现..13
5.3开发、调试工具...15
5.3.1CodeWarrior15
5.3.2BDM开发工具16
5.4本章小结17
第六章报告总结19
第七章参考文献20
第八章程序21
第一章引言
全国大学生“飞思卡尔”杯智能汽车竞赛是在规定的模型汽车平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,通过增加道路传感器、电机驱动电路以及编写相应软件,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。
其设计内容涵盖了控制、模式识别、传感技术、汽车电子、电气、计算机、机械、能源等多个学科的知识,对学生的知识融合和实践动手能力的培养,具有良好的推动作用。
在这份报告中,我们主要通过对整体方案、机械、硬件、算法等方面的介绍,详细阐述我队在此次智能汽车竞赛中的思想和创新。
具体表现在电路的创新设计、算法以及辅助调试模块等方面的创新。
第二章方案设计
2.1整车设计思路
参赛选手须使用竞赛秘书处统一指定并负责采购竞赛车模,采用飞思卡尔16位微控制器MC9S12XS128作为核心控制单元,自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动、转向舵机控制等,完成智能车工程制作及调试.
系统的设计过程中,主要包括硬件部分,机械部分,软件部分等三个方面的设计与调试,三者相辅相成,不能偏废其一。
在硬件上想方设法提高智能车的前瞻,简化电路,提高电路可靠性。
在机械部分要减轻车模重量,降低整车重心。
在软件部分要在实用的前提下精简程序,尽量使得程序美观,可读性强。
2.2传感器设计
2.21红外传感器
采用反射式红外光电管,也是路径检测常用的方法。
这种方法利用了路面
不同的材料和颜色对光线的吸收和反射量不同,这样我们检测反射回来的光线
就可以得到当前位置的材料或者颜色。
这种方法的优缺点如下:
优点:
电路简单,信号处理速度快。
光电传感器寻迹方案的优点是电路简单、信号处理速度快。
光电传感器的排列方法、个数、彼此之间的间隔都与控制方法密切相关。
缺点:
感知前方赛道距离有限,受外界红外频段光线干扰,精度比较低。
光电管相对的感知距离较近并且只能提供非常少的前方车道的走势信息。
2.22激光传感器
激光的原理及特性
激光的英文名为LASER,是取自英文LightAmplificationbyStimulatedEmissionofRadiation的各单词的首字母组成的缩写词。
意思是“受激辐射的光放大”。
即激光的产生源自于受激辐射。
激光主要有四大特性:
高亮度、高方向性、高单色性和高相干性。
我们的智能车采用的便是激光传感器。
光电传感器检测路面信息的原理是由发射管发射一定波长的光线,经地面反射到接收管。
如图2-1,由于在黑色和白色上反射系数不同,在黑色上大部分光线被吸收,而白色上可以反射回大部分光线,所以接收到的反射光强是不一样,进而导致接收管的特性曲线发生变化程度不同,而从外部观测可以近似认为接收管两端输出电阻不同,进而经分压后的电压就不一样,就可以将黑白路面区分开来。
图2-1光电传感器原理
2.3系统总体方案的设计
在选定智能汽车系统采用上排光电传感器、下排红外传感器方案后,赛车的位置信号由车体前方的光电传感器和红外传感器来采集,经MCU的I/O口接收后,用于赛车的运动控制决策,同时内部发出PWM波,驱动直流电机对智能汽车进行加速和减速控制,以及伺服电机对赛车进行转向控制,使赛车在赛道上能够自主巡线行驶,并以最短的时间最快的速度跑完全程。
为了对赛车的速度进行精确的控制,在智能汽车电机输出轴上安装光电编码器,采集编码器转动时的脉冲信号,经MCU捕获后定时进行PID自动控制,完成智能汽车速的闭环控制。
2.4小结
本章重点分析了智能汽车系统总体方案的选择,并介绍了系统的总体设计、总体结构。
第三章智能车机械改造设计
智能小车的机械性能对于其行驶表现具有非常重要的影响,任何控制算法和软件程序都需要通过智能小车的机械结构来执行和实现。
为使模型车在比赛中发挥出最佳性能,使其直线行驶高速稳定,入弯转向灵活,结合现代汽车控制理论对智能车的运动特性进行分析,并据此对智能小车的机械结构进行相应的调整和参数优化。
3.1车体机械建模
智能汽车竞赛光电组专用车模
图3.1
根据以往比赛的一些经验,我们在规则允许范围内主要对模型车进行一下一些调整。
为保证智能车行驶稳定,转向轻便灵活,需要对其机械结构进行调整和改造,以使其更适合高速运行使用。
以下是需要改造的部分:
(1)车身高度
车身高度指的是当车子满载的时候,底盘离地面的高度。
由于跑道上存在坡道,需要适当增大底盘高度。
(2)前轮Toe角度
Toe角度(束角)是描述从车的正上方看,车轮的前端和车辆纵线的夹角。
车轮前端向内倾(内八字),称为Toe-in,车轮前端向外倾(外八字),称为Toe-out。
不同的Toe角度会改变车辆的转向反应和直道行驶的稳定性。
可以通过改变前万向节拉杆的长度来改变Toe角度。
(3)舵机连杆
车模的原装连杆不等长,我们将其换成等长连杆,前轮转向更加流畅,平衡性更好。
(4)舵机臂
长度不同的舵机臂效果不同,为此我们分别制作了2cm、2.2cm、2.4cm、2.6cm、2.8cm、3.0cm、3.2cm的舵机臂,经过多次试验,我们发现2.6cm的舵机臂效果最好,我们选用2.6cm舵机臂,舵机更加灵活。
(5)电机散热片
由于电机用一段时间后会出现发烫的情况,我们在电机外侧加上一片散热片,效果不错。
图3.2
3.2车模重心的调整
智能车的重心位置,主要影响赛车在转弯时的稳定性能。
智能车在转弯半径一定时,速率越高,离心作用越明显。
为了增强赛车弯道的稳定性,应尽量的使车体的重心降低,同时由于转弯时为前轮转弯,后轮跟从,所以应使车的重心相对的偏向后轮方向。
为保证直线赛道上能平稳行驶,赛车重心应在车体的重心应在左右的对称面上。
在离心力没有达到足以使智能车侧翻的情况下,它也会使汽车左右两侧的轮胎受力不相等,一侧轮胎受力增大,另一侧轮胎受力减小,会严重影响汽车的操纵稳定性,甚至造成失控。
因此,基于重心和重量的优化,我们在调试车的过程中,反复实验测试重心的最佳位置。
3.3舵机支架的设计
首先舵机响应时间在很大程度上决定了小车的灵活性和转弯的快速性,从而决定了小车在规定赛道条件下的速度。
为了加快前轮转向的响应速度和减小连接间隙对舵机精确度的影响,我们通过长时间的思考和努力,最终设计并确定了舵机的安装方式.
3.4光电编码器
我们采用增量式光电编码器实现对驱动电机转速的检测,通过齿轮传动的方式将测速电机上小齿轮与差速齿轮啮合,可以实时地获得准确的运行速度。
最开始我们考虑采用100线的小型编码器,该编码器的外径只有18mm,安装方便,重量也很小。
但是,经过队伍商量以后发现相信随着后期车速的不断地提高,对测速精度的要求也越来越高,再加上模型车本身震动对编码器的影响,100线的小编码器已不能满足需求。
所以我们又一次考虑和选择安装较大编码器的方式。
最终决定选用500线AB两相光电编码器,当采样时间在2.5MS的时候,可以返回100多个脉冲,这样使PID控制精度足够。
3.5模型车技术参数统计
项目
参数
路径检测方法(赛题组)
光电组
车模几何尺寸(长、宽、高)(毫米)
280*160*170
车模轴距/轮距(毫米)
200*160
车模平均电流(匀速行驶)(毫安)
1300
电路电容总量(微法)
1987
传感器种类及个数
7
新增加伺服电机个数
1
赛道信息检测空间精度(毫米)
20
赛道信息检测频率(次/秒)
1000
主要集成电路种类/数量
电源驱动发射接收管编码盘
车模重量(带有电池)(千克)
1.4
3.6改装后车模
图3.3
第四章智能车的电路设计及实现
赛车共包括六大模块:
MC9S12XS128主控模块、传感器模块、电源模块、电机驱动模块、速度检测模块和辅助调试模块。
4.1各模块的作用
MC9S12XS128主控模块:
智能车系统以MC9S12XS128MAA为控制核心,将采集光电传感器、光电编码器等传感器的信号,根据控制算法做出控制决策,驱动直流电机和伺服电机完成对智能汽车的控制并实现了单片机硬件的最优化设计和单片机资源的合理化使用。
传感器模块:
可以通过一定的前瞻性,提前感知前方的赛道信息,为智能汽车做出决策提供必要的依据和充足的反应时间。
电源管理模块:
为整个系统提供合适而又稳定的电源。
电机驱动模块:
驱动直流电机和伺服电机完成智能汽车的加减速控制和转向控制。
速度检测模块:
检测反馈智能汽车轮的转速,用于速度的闭环控制。
辅助调试模块:
主要用于智能汽车系统的功能调试、赛车状态监控。
4.2稳压芯片的选择
在稳压芯片中,主要有线性稳压芯片和开关稳压芯片。
开关电源效率高,但纹波大。
线性电源纹波小,损耗大。
电机和舵机的突然启停会产生尖峰脉冲使电池电压骤变,一般会把电源电压拉低1V多,会对系统电源造成干扰。
所以系统的电源必须有一定的抗干扰能力。
鉴于开关电源纹波比较大,而线性稳压电源纹波很小,我们选择了使用线性电源,其中我们选择LM2940线性稳压芯片。
LM2940-5.0,为单片线性稳压芯片,输出电压5.0V,最大输出电流1.25A,且具有很小的压差功能,模型车突然加减速时不会发生复位,可以满足系统的供电要求。
4.3稳压芯片电路设计
在电机启动、停止、加速、减速以及舵机的启动、停止时,都会对电源电压产生影响,使电源产生一定的波动。
为了解决这一问题,我们专门在LM2940电源输入引脚前串一功率电感,可有效降低电源波动对5V稳压芯片的干扰。
原理图如图4.1:
图4.1
4.4舵机供电设计
本次比赛提供的舵机是FUTABA3010,其供电电压为6V。
为此我们将电池与一个二极管串联后给舵机供电,舵机供电电路图如图4.2:
图4.2
4.5电机驱动模块
我们选用了驱动芯片BTS7970B,其为高强度电流的半桥电机驱动芯片。
我们利用两片BTS7970B构成一个完整的全桥驱动,可以很好实现电机的正转、反转、刹车制动。
电路原理图如图4.3:
图
4.3
4.6AltiumDesigner6简介
AltiumDesigner是业界首例将设计流程、集成化PCB设计、可编程器件(如FPGA)设计和基于处理器设计的嵌入式软件开发功能整合在一起的产品。
AltiumDesigner6.0极大地增强了对高密板设计的支持,可用于高速数字信号设计,提供大量新功能和改进,改善了对复杂多层板卡的管理和导航,可将器件放置在PCB板的正反两面,处理高密度封装技术,如高密度引脚数量的球型网格阵列(BGAs)。
AltiumDesigner6.0极大减少了带有大量管脚的器件封装在高密度板卡上设计的时间,简化了复杂板卡的设计导航功能。
4.7本章小结
硬件电路对整个系统的稳定性有着至关重要的作用。
而电源电路则是重中之重。
因此在电源电路设计过程中,选用多种稳压芯片来保证电源的稳定性。
单片机最小系统是智能车的核心,设计时充分考虑了抗干扰、防静电和运行的稳定性。
第五章软件设计及控制策略与算法
5.1总体程序设计
智能车系统的软件编写是基于MC9S12XS128单片机,主要用到S12芯片中的PWM模块,TIM模块、I/O模块以及SCI模块等模块化设计。
PWM模块主要用来控制舵机和电机的运转;TIM模块主要是用在了测速模块和数据采集,捕捉中断并计算瞬时速度;I/O模块主要是用来分配给开关和激光管扫描、信息采集;SCI模块主要用在无线串口调试模块。
5.2基于PID算法的实现
控制算法
控制算法是一个控制系统的核心,其设计的好坏直接关系到系统能否以一种较好的状态稳定运行。
赛车的控制算法既要有良好的鲁棒性,又要有很好的实时性。
本着简洁,高效的原则,本车采用了如下图所示的控制系统。
控制系统原理图
本系统采用单闭环控制策略,其中控制算法为PID算法,同时控制赛车的速度v和舵机角度θ。
本系统的最终控制目标为赛车的实际位置x,而其位置是由速度v和舵机角度θ共同决定的。
这两个输入具有一定的耦合性,相互影响,即速度越大,对舵机角度vθ控制的精确性与实时性要求越高。
但我们通过查阅以前的报告得知,对赛车运行状态影响最大的因素是舵机角度θ,其次是速度v。
因此,控制策略必须严格保证舵机控制的精确性与实时性。
考虑到赛车运动速度很快,故控制周期必须尽可能短,否则会因为时滞而产生过大的震荡,导致系统不稳定。
这就要求控制算法尽可能简单,效率尽可能高。
下面对我们选用的PID算法进行详细说明。
PID是一种线性控制器,采用输出量和参考输入的误差及其微分、积分的线性组合来产生控制信号。
PID控制具有控制结构简单,参数个数少而且容易确定,不必求出被控对象的精确性模型就可以整定参数的特点,在控制系统中应用极为广泛。
连续PID控制规律如下:
Kp---控制器的比例系数
Ti---控制器的积分时间,也称积分系数
Td---控制器的微分时间,也称微分系数
模拟PID控制系统原理图
1.比例部分
比例部分的数学式表示是:
Kp*e(t)在模拟PID控制系统中,比例环节的作用是对偏差瞬间做出反应。
偏差一旦产生,控制器立即产生控制作用,使控制量向偏差减少的方向变化。
控制作用的强弱取决于比例系数Kp,比例系数Kp越大,控制作用越强,则过度过程越快,控制过程的静态偏差也就越小;但是Kp越大,也月容易产生振荡,破坏系统的稳定性。
故而,比例系数Kp选择必须恰当,才能过渡时间少,静差小而又稳定
2.积分部分
从积分部分的数学表达式可以知道,只要存在偏差,则它的控制作用就不断的增加;只有在偏差e(t)=0时,它的积分才能使一个常数,控制作用才是一个不会增加的常数。
可见,积分部分可以消除系统的偏差。
积分环节的调节作用虽然会消除静态偏差,但也会降低系统的响应速度,增加系统的超调量。
积分常数Ti越大,积分的积累作用越弱,但系统在过渡时不会产生振荡;积分常数Ti越小则积分的累积作用越强,但系统在过渡时却有可能产生振荡。
所以必须根据具体要求来确定Ti。
3.微分部分
实际的控制系统除了希望消除静态误差外,还要求加快调节过程。
在偏差出现的瞬间,或在偏差变化的瞬间,不但要对偏差量做出立即响应(比例环节的作用),而且要根据偏差的变化趋势预先给出适当的纠正。
为了实现这一作用,可在PI控制器的基础上加入微分环节,形成PID控制器。
微分环节的作用使阻止偏差的变化。
它是根据偏差的变化趋势(变化速度)进行控制。
偏差变化的越快,微分控制器的输出就越大,并能在偏差值变大之前进行修正。
微分作用的引入,将有助于减小超调量,克服振荡,使系统趋于稳定。
微分部分的作用由微分时间常数Td决定。
Td越大时,则它抑制偏差变化e(t)的作用越强;Td越小时,则它反抗偏差变化的作用越弱。
微分部分显然对系统稳定有很大的作用。
适当地选择微分常数Td,可以使微分作用达到最优。
5.3开发、调试工具
5.3.1CodeWarrior
比赛的软件开发平台为Metroworks公司CodeWarrior开发软件。
其使用界面如图5.1所示:
图5.1CodeWarrior程序编写界面图
CodeWarrior的功能强大,可用于大部分单片机、嵌入式系统的开发。
用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。
如图6-2所示,利用CodeWarrior和配套的BDM。
用户可以进行一系列的调试工作,如监视寄存器状态、修改PC指针、设置断点等,这样能快速地帮助我们找到软件或硬件的问题。
图5.2Hiwave下载调试界面
在源程序编译、连接通过后,就可以进行程序下载了。
下载前,先将单片机上已经存在的程序擦除,然后点击Load,将bin文件夹下生成的后缀为.abs的文件打开,就可以完成下载。
PLASTID2:
一辆具有高级控制策略的智能车应该能在不同的赛道上都具有稳定的发挥,为了实现这一点,就必须在不同的赛道上做试验。
由于各方面条件的限制,我们不可能为赛车制作无数的赛道进行测试。
利用基于LabVIEW虚拟仪器技术的智能车仿真系统Plastid来作为车辆初期的车仿真工作,该软件可以方便地将仿真过程中的各种变量记录下来,特别是一些实际试验时无法测量的量(如赛车相对于赛道中心线的偏移量,前向角和加速度等),并保存在文件中,在回放模式下,用户可以调用这些文件,对其仿真结果进行后期分析和处理,继而改进自已的赛车设置及控制算法。
5.3.2BDM开发工具
后台调试模式(BackgroundDebugMode)是当代单片机普遍采用的调试方式之一,在BDM模式下主要可以实现一下3个方面的功能:
首先是应用程序的下载与在线更新。
在BDM模式下,可以对Flash做写入和擦除操作,故可以在产品出厂前即将应用程序下载的产品当中去,也可以在产品出厂后更应用程序。
BDM模式的另一功能是做单片机内部资源的配置与修复,程序的加密处理等。
一些MCU的内部寄存器只能在BDM模式下操作,特别是一些单片机内部词源配置的寄存器。
BDM的第三个功能室做应用程序的动态调试。
S12系列单片机的BDM调试模式有这种功能。
和多时现代单片机一向,S12单片机CPU内部使用了4级流水线结构,这种结构使得CPU的读取指令,解释指令,执行指令等操作看起来好像是并行的。
S12单片机是16位单片机,每次读操作可以读入2条指令,对于下一个度指令周期来说,就可能是一个空周期。
BDM模式下的S12单片机就可以利用“偷”到的控周期,在应用程序运行时动态的,实时地读取CPU内部寄存器的数据,达到动态调试的效果。
S12片内的BDM模块框图如图1-2所示,右边的BKGD引脚与BDM调试器相连,左边接入片内的CPU总线。
5.4本章小结
软件部分是整个控制系统的核心。
软件上主要有以下几个难点:
1)怎样判断采样的赛道信息的有效性;
2)怎样控制好两个舵机;
3)怎样使速度控制配合好舵机打角。
本章节讲解了解决了以上几个难点,工作过程如下:
初始化后,进行扫描,开始处理采样数据,并计算出当前黑线与车身的相对位置。
单片机根据当前位置决定随动舵机摆角的大小以保证紧跟黑线。
单片机再根据随动舵机PWM值与光点所得到的位置综合给出前轮舵机的PWM值。
经过复杂运算与处理得到速度期望值,并结合当前速度值对电机控制如加速、减速、电机反转和反向刹车制动等。
速度控制采用PID控制算法实现闭环控制。
第六章报告总结
文中介绍了如下内容,智能车机械结构的设计和制作方法,以及如何将智能车优化为适合竞速的模型;智能车各个模块的工作原理和设计电路,如电源模块、电机驱动模块、测速模块等;智能车速度的bang-bang控制及PID控制算法和角度的模糊控制算法;系统开发过程中所用到的开发工具、软件以及调试过程。
综合来看,智能车包括硬件和软件部分,是综合多学科知识的平台,对于我们专业课的学习和知识面的扩展有极大的帮助。
通过本次比赛,我们都学到了很多知识,对于汽车的机械结构、光电传感器、软件设计有了深入的了解,最关键的是掌握了一套较为完善的系统开发流程。
第七章参考文献
【1】MEASUREMENTS&CONTROL1995年12月作者:
TAMARABRATLAND,ROBERTBICKING和BHARATB.PANT
【2】新型PID控制及其应用2002年作者:
陶永华主编机械工业出版社
【3】控制系统仿真及MATLAB语言2009年作者:
吴忠强等电子工业出版社
【4】智能车专题培训张树波
【5】学做智能车2004年作者:
邵贝贝等北京航空航天大学出版社.
第八章程序
/*初始化锁相环*/
CLKSEL=0X00;//disengagePLLtosystem
PLLCTL_PLLON=1;//turnonPLL
SYNR=0XDB;
REFDV=0X08;
POSTDIV=0X00;//pllclock=2*osc*(1+SYNR)/(1+REFDV);
_asm(nop);//BUSCLOCK=pllclock=49.778M
_asm(nop);
while