北京联合大学木牛流马队技术报告Word文档下载推荐.docx
- 文档编号:16663714
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:37
- 大小:963.79KB
北京联合大学木牛流马队技术报告Word文档下载推荐.docx
《北京联合大学木牛流马队技术报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《北京联合大学木牛流马队技术报告Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
我们使用集成运算放大器进行电磁信号放大,利用二极管倍压整流来将放大后的电磁信号转换为正比于交流电压信号峰峰值的直流信号,通过AD采样获得当前传感器在赛道上的位置信息。
速度控制上,我们使用模糊PID算法进行控制。
另外,为了提高调试的方便性,我们开发了赛道计时系统,利用SD卡存储信息,并且使用MATLAB、AnsoftHFSS进行辅助仿真。
单片机开发平台为CodeWarriorIDE5.9.0,利用其中的ProcessorExpert模式进行硬件初始化,在单片机运用方面取得了非常出色效果。
关键字:
飞思卡尔智能车,MC9S12XS128,电磁,模糊PID控制
ThisarticledescribestheFreescaleintelligentvehiclesystem.TheintelligentvehiclesystemtoFreescale'
shigh-performance16-bitmicrocontrollerMC9S12XS128thecorewirethroughtheinductivetestcircuittoguidetheelectromagneticwavesexcitedbycartravel,withtheencodertodetectthecarspeed.Weusetheintegratedoperationalamplifierofelectromagneticsignalamplification,usingdiodedoublerrectifiertobeamplifiedelectromagneticsignalisconvertedtoACvoltagesignalproportionaltothepeaktopeakoftheDCsignal,sampledbyADgetthecurrentsensorlocationinformationonthetrack.Speedcontrol,weusethefuzzyPIDcontrolalgorithm.Inaddition,toimprovetheeaseofdebugging,wehavedevelopedatracktimingsystem,useSDcardtostoreinformation,anduseMATLAB,AnsoftHFSSsimulationtoassist.
MCUDevelopmentPlatformfortheCodeWarriorIDE5.9.0,useoneoftheProcessorExpert
modehardwareinitialization,theMCUhasmadeverygooduseofeffects.
Keywords:
TheFreescalesmartcar,MC9S12XS128,electromagnetic,fuzzyPIDcontrol
第一章引言
1.1赛事介绍
全国大学生智能汽车竞赛由教育部高等自动化专业教学指导分委员会主办,以飞思卡尔半导体公司为协办方,旨在促进高等学校素质教育,培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神,为优秀人才的脱颖而出创造条件。
到目前为止,该竞赛已发展成全国30个省市自治区近300所高校广泛参与的全国性竞赛。
2008年起被教育部批准列入国家教学质量与教学改革工程资助项目中科技人文竞赛之一。
该竞赛由竞赛秘书处为各参赛队提供/购置规定范围内的标准硬软件技术平台,竞赛过程包括理论设计、实际制作、整车调试、现场比赛等环节,要求学生组成团队,协同工作,初步体会一个工程性的研究开发项目从设计到实现的全过程。
该竞赛融科学性、趣味性和观赏性为一体,是以迅猛发展、前景广阔的汽车电子为背景,涵盖自动控制、模式识别、传感技术、电子、电气、计算机、机械与汽车等多学科专业的创意性比赛。
该竞赛规则透明,评价标准客观,坚持公开、公平、公正的原则,保证竞赛向健康、普及,持续的方向发展。
全国大学生智能汽车竞赛原则上由全国有自动化专业的高等学校(包括港、澳地区的高校)参赛。
竞赛首先在各个分赛区进行报名、预赛,各分赛区的优胜队将参加全国总决赛。
每届比赛根据参赛队伍和队员情况,分别设立光电组、摄像头组、电磁组、创意组等多个赛题组别。
每个学校可以根据竞赛规则选报不同组别的参赛队伍。
全国大学生智能汽车竞赛组织运行模式贯彻“政府倡导、专家主办、学生主体、社会参与”的16字方针,充分调动各方面参与的积极性。
1.2车模和赛道简介
第六届智能车电磁组采用B车车模,1.3赛道
赛道基本参数(不包括拐弯点数目、位置以及整体布局)如下:
(以2010年第五届比赛规则为例)
1)赛道路面用专用白色基板制作,在预赛阶段时,跑道所占面积在5m×
7m左右,决赛阶段时跑道面积可以增大。
2)赛道宽度不小于50cm。
3)跑道表面为白色,中心有连续黑线作为引导线,黑线宽25mm。
铺设赛道地板颜色不作要求,它和赛道之间可以但不一定有颜色差别。
4)赛道中心黑色线下铺设有直径0.1-0.3mm漆包线,其中通有20KHz,100mA的交变电流。
频率范围20K±
2K,电流范围(50-150mA)。
[漆包线既可以购买全新的,也可以通过拆卸二手变压器线圈等获得,后者价格便宜,质量也可以满足要求。
]
5)跑道最小曲率半径不小于50cm。
6)跑道可以交叉,交叉角为90°
。
7)赛道直线部分可以有坡度在15°
之内的坡面道路,包括上坡与下坡道路。
8)赛道有一个长为1m的出发区,如下图所示,计时起始点两边分别有一个长度10cm黑色计时起始线,赛车前端通过起始线作为比赛计时开始或者结束时刻。
在黑色计时起始线中间安装有永久磁铁,每一边各三只。
磁铁参数:
直径7.5-15mm,高度1-3mm,表面磁场强度3000-5000Gs。
图1.2比赛赛道
1.3芯片和开发软件
车模控制电路须采用飞思卡尔半导体公司的8位、16位MCU作为唯一的微控制器。
对于电磁组16位MCU采用9S12XS128(封装不限),也可以选用16位DSC或8位MCU(8位MCU可以使用2片)。
核心控制模块可以采用组委会推荐的9S12XS128模块,也可以选用飞思卡尔公司微控制器自制控制电路板。
每台模型车的电路板中只允许使用一种型号微控制器。
8位微控制器最多可以使用2片,16位微控制器限制使用1片;
不得同时使用8位和16位微控制器。
飞思卡尔的S12XS系列汽车微控是为了满足设计灵活性和平台兼容性需求,专门针对一系列成本敏感的汽车车身电子应用而推出的。
MC9S12XS128具有40MHz的总线速度,128KB闪存,可配置8、10或12位模数转换器(ADC),可以实现3μs的转换时间,支持控制区域网(CAN)、本地互联网(LIN)和串行外设接口(SPI)协议,带有16-位计数器的、8-通道定时器。
图1.4龙丘科技的MC9S12XS128MAL最小系统板
CodeWarrior是飞思卡尔公司研发的专门面向飞思卡尔MCU与DSP嵌入式应用开发的商业软件工具,功能强大,是我们制作智能车首选的开发软件。
图1.5CodeWarrior开发软件界面
第二章机械设计
本模型车机械设计的部分主要包括,PCB板的固定与安装、前轮参数调整和舵机的升高
2.1PCB板的安装
对本模型车的信号采集电路,我们设计了一块PCB板。
电磁传感器安装在模型车的前方具体安装的方式从图上可以看出。
此外,我们还设计了另两块PCB板。
一块上面包含了电源管理模块电路,另一块包含直流电机驱动电路。
在组装过程中,我们利用原有的模型车后部原有的两个支架和两个承接螺钉将其固定在车模的中部。
其固定的位置离地的高度为2.5cm。
在其后方,放置着模型车的电池。
图2.1PCB板安
2.2前轮调整
调试中发现,在赛车过弯时,转向舵机的负载会因为车轮转向角度增大而增大。
为了尽可能降低转向舵机负载,对前轮的安装角度,即前轮定位进行了调整。
前轮定位的作用是保障汽车直线行驶的稳定性,转向轻便和减少轮胎的磨损。
前轮是转向轮,它的安装位置由主销内倾、主销后倾、前轮外倾和前轮前束等4个项目决定,反映了转向轮、主销和前轴等三者在车架上的位置关系。
1)主销内倾是指主销装在前轴略向内倾斜的角度,它的作用是使前轮自动回正。
角度越大前轮自动回正的作用就越强烈,但转向时也越费力,轮胎磨损增大;
反之,角度越小前轮自动回正的作用就越弱。
2)主销后倾是指主销装在前轴,上端略向后倾斜的角度。
它使车辆转弯时产生的离心力所形成的力矩方向与车轮偏转方向相反,迫使车轮偏转后自动恢复到原来的中间位置上。
由此,主销后倾角越大,车速越高,前轮稳定性也愈好。
3)主销内倾和主销后倾都有使汽车转向自动回正,保持直线行驶的功能。
不同之处是主销内倾的回正与车速无关,主销后倾的回正与车速有关,因此高速时后倾的回正作用大,低速时内倾的回正作用大。
4)前轮外倾角对汽车的转弯性能有直接影响,它的作用是提高前轮的转向安全性和转向操纵的轻便性。
前轮外倾角俗称“外八字”,如果车轮垂直地面一旦满载就易产生变形,可能引起车轮上部向内倾侧,导致车轮联接件损坏。
所以事先将车轮校偏一个外八字角度,这个角度约在1°
左右。
5)所谓前束是指两轮之间的后距离数值与前距离数值之差,也指前轮中心线与纵向中心线的夹角。
前轮前束的作用是保证汽车的行驶性能,减少轮胎的磨损。
前轮在滚动时,其惯性力会自然将轮胎向内偏斜,如果前束适当,轮胎滚动时的偏斜方向就会抵消,轮胎内外侧磨损的现象会减少。
经过与赛道的磨合,本队智能车前轮角度调整为前轮外倾角为-3°
,其他皆为0°
2.3舵机安装
为了提高舵机的响应速度,可以考虑延长舵机的摆臂。
在正常情况下,车轮从最左侧转到最右侧,舵机需要转动50。
而将摆臂伸长之后,车轮从最左侧转到最右侧,舵机只需要转动30。
从理论上讲,这样可以在舵机性能一定的情况下,提高车轮转向的响应速度。
本队摆臂长为4.5cm。
舵机升高之后,直线行驶状态下的车轮定位参数尤其是前束值会发生变化,这时需要稍微调整两根转向拉杆的长度,将前束值调整至合理的范围内。
摆臂加长后,舵机空程会明显,但是差别不大,通过程序微调舵机最大转角能够休整,所以可以忽略。
图2.3舵机安装实图
2.4齿轮传动机构调整
赛车后轮采用RS-380SH-4045电机驱动,由竞赛主办方提供。
电机轴与后轮轴之间的传动比为9:
38(电机轴齿轮齿数为18,后轮轴传动轮齿数为76)。
齿轮传动机构对赛车的驱动能力有很大的影响。
齿轮传动部分安装位置的不恰当,会大大增加电机驱动后轮的负载,从而影响到最终成绩。
调整的原则是:
两传动齿轮轴保持平行,齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力,白白浪费动力;
传动部分要轻松、顺畅,容易转动,不能有卡住或迟滞现象.判断齿轮传动是否调整好的一个依据是,听一下电机带动后轮空转时的声音。
声音刺耳响亮,说明齿轮间的配合间隙过大,传动中有撞齿现象;
声音闷而且有迟滞,则说明齿轮间的配合间隙过小,或者两齿轮轴不平行,电机负载加大。
调整好的齿轮传动噪音小,并且不会有碰撞类的杂音。
2.5后轮差速机构调整
差速机构的作用是在赛车转弯的时候,降低后轮与地面之间的滑动;
并且还可以保证在轮胎抱死的情况下不会损害到电机。
当车辆在正常的过弯行进中(假设:
无转向不足亦无转向过度),此时4个轮子的转速(轮速)皆不相同,依序为:
外侧前轮>外侧后轮>内侧前轮>内侧后轮。
此次所使用赛车配备的是后轮差速机构。
差速器的特性是:
阻力越大的一侧,驱动齿轮的转速越低;
而阻力越小的一侧,驱动齿轮的转速越高‧以此次使用的后轮差速器为例,在过弯时,因外侧前轮轮胎所遇的阻力较小,轮速便较高;
而内侧前轮轮胎所遇的阻力较大,轮速便较低。
差速器的调整中要注意滚珠轮盘间的间隙,过松过紧都会使差速器性能降低,转弯时阻力小的车轮会打滑,从而影响赛车的过弯性能。
好的差速机构,在电机不转的情况下,右轮向前转过的角度与左轮向后转过的角度之间误差很小,不会有迟滞或者过转动情况发生。
第三章硬件电路设计
3.1路线识别电路设计
一、传感器验证
3.1磁场检测传感器电路图
以上为传感器电路图
电感10mH,电容6.8nF,LC并联谐振
根据谐振原理,
ω=2∏*20k,可求得电容应为6.3nF左右,使用6.8nF替代
使用运放TL082进行两级放大。
在网上查找运放TL082资料如下
3.2TL082内框图
负5伏的电压可用LT1054提供,原理图如下
两级放大后接检波电路,检波电路原理图如下
这样完成交流信号到直流信号的转变,对检波电路进行信号发生器波形如下
20k方波波形,电流有效值100mA
二、位置解算
以水平放置电感为例
直道附近的磁场分布,可以近似为无限长的直导线上的磁场分布,容易算得距离长直导线距离为r的点的
磁感应强度:
如图所示,将磁场分解为水平方向和垂直方向Bx和By
,由此可见,电感高度越高,则
若导线位于两个电感之间
由上式可得
反应位置的偏差
,表示两个电感之间的距离
3.2 起始线检测模块设计
按照比赛规则要求,跑完一圈后赛车需要自动停止在起始线之后三米之内的赛道内。
如图3-2-1所示,起始线是导引线两边的长度10cm的黑色线,起始线中间安装有永久磁铁,每一边各三只。
直径7.5-15mm,高度1-3mm,表面磁场强度3000-5000Gs[1]。
图3-2-1 赛道起始线示意图
针对上述要求,利用干簧管设计起始线检测电路如图3-2-2。
干簧管是磁机械效应的磁场传感器,其内部是一个常开触点开关,在磁场强度超过其阈值时,开关闭合。
图中四个干簧管并联为“线或”关系,任何一个干簧管检测到磁铁,START_CHEQ端都会输出正脉冲,引发中断程序使赛车停车。
图3-2-2 起始线检测电路
3.3电源部分
智能车虽以车为主体,但其任何行动完全由其电路控制。
模型车通过自身系统,采集赛道信息,获取自身速度信息,加以处理,由芯片给出指令控制其前进转向等动作,各部分都需要由电路支持,电源管理尤为重要。
一旦电源出现问题,各部分电路的功能将受到很大的影响。
该设计中,s12用的是5V电源,速度传感器用的是5V电源,舵机的运行需要6V电源,驱动电机模块上用的全桥驱动芯片用的是12V电源。
考虑到竞赛规定的电源为镍镉蓄电池组,额定电压为7.2V,实际充满电后电压则为8.2-8.5V,出于功耗和稳定性的考虑,本系统采用了开关型电源,电源模块的主要部分如下所示:
图3.3.1电源模块结构
3.4电机驱动的设计及制作
电机驱动使用逻辑控制电路控制MOSFET管导通驱动电机。
通过单片机输出占空比可调的脉冲信号,控制MOSFET导通时间实现对电机转速的控制。
逻辑控制部分电路如图3-10所示,MOSFET电路如图3-11所示。
逻辑控制电路部分采用5V电压供电,将输入的PWM信号反向输出,这样可以控制上下MOSFET不会同时导通导致短路。
MOSFET电路采用电池7.2V电压供电,并且用多片MOSFET并联。
使用此方法可以减小MOSFET内阻,未并联前电阻大约为16毫欧,通过并联可以减小至一半,这样能够通过电流增加约一倍。
图3-4电机驱动逻辑控制电路原理图
图3-5电机驱动MOSFET电路原理图
3.5速度检测模块
测速采用光电编码器方案,并且通过一块金属支架安装在后轮齿轮处(如图3-9),与齿轮耦合。
通过测量齿轮速率,间接测量车体的运动速率。
光电编码器采用欧姆龙的E6A2-CS3C小型光电编码器,其旋转一周可以输出500个脉冲信号。
将此信号输入单片机的脉冲捕捉模块可以获得编码器输出脉冲数。
单位时间查看脉冲捕捉数值,并且清零即可获得车体运动速度。
例如:
车轮直径为53mm,可以计算得到车轮周长约为166.5mm,通过测试得到车轮选择一周光电编码器输出脉冲数为2138个,可以计算得到车行走1mm输出12.84个脉冲。
如果1ms查看一次脉冲捕捉寄存器数值为128.4,则可以计算得到在1ms时间里车体行走了10mm,则车速为10m/s。
图3-6光电编码器的安装
第四章智能车软件设计
4.1系统软件设计总体规划
4.1.1系统构架规划
本次的智能车控制系统涉及的控制模块比较多,因此采用的是模块化的设计方法,正是由于这样的模块化设计,对于开始的软件系统的构架的规划就比较重要,因为构架的不好可能到最后模块联调的时候根本无法多个模块一起工作,或者模块之间的关系变得很复杂,导致一旦出现错误,无法定位错误的源头。
针对智能车控制系统主要涉及的几大模块,在软件系统上根据程序模块化的设计思想,对智能车系统的程序做以下的模块划分:
:
单片机内部时钟驱动模块、中断模块、传感器检测模块、舵机电机驱动模块、TD340电机驱动模块、控制模块。
以上的划分主要是为了代码的相对独立性,当需要改模块时,只要将相应的源代码的c文件和函数声明变量定义的头文件h文件添加到工程,同时在总头文件中包含相应的功能模块的头文件即可,这样的设计可以很方便的添加和删除相应的功能模块。
当软件的系统构架完成之后,就得对这样一个骨架中再进一步细分各个模块的功能和使用以及组织情况。
目前的规划是在建立的整个工程中,先建立一个main.c文件和一个Includes.h文件,main.c文件用于全局的调用系统的各个功能函数完成相应功能,而include.h文件是用于包含各个需要的模块的头文件,便于主函数的调用,以及一些全局变量的定义。
然后针对每一个功能模块建立两个文件:
一个xx.h文件和一个xx.c文件,在xx.c文件中完成相应功能的函数代码,在xx.h文件中定义本文件的变量函数或者外部的变量函数,以及一些命令的宏定义说明。
详细的组织结构和功能说明见表4.1。
表4.1软件系统构架及代码功能模块划
模块名称
包含功能
代码文件名
主函数模块
Ø
合理调用各模块函数
main.c
includes.h
单片机内部时钟驱动模块
系统时钟设置
系统延时
PLL.c
PLL.h
传感器检测模块
传感器初始化
控制电磁感器检测赛道
读取测速编码器脉冲数
sensor.c
sensor.h
电机驱动模块
舵机电机的PWM控制模块初始化
SPEED_CONTROL.c
SPEED_CONTROL.h
人机接口模块
便于调试,数码管显示当时智能车状态
便于控制智能车的模式
HCI.c
HCI.h
控制模块
采集数据滤波
路况判断
PID控制电机舵机
main.h
4.1.2系统程序设计编程规约
在一项复杂些的工程建立之初,首先得做的就是建立一些规章约束,这样便于规范整个工程,并且编程规约应贯穿整个工程之始终,采用一些规约有助于提高劳动生产率,并使软件工程便于维护和更新。
本次开发采用的是C语言,C语言程序最初是由DennisRitchie在1971年为UNIX系统开发并实现的,C语言的最大优点就是与任何特定的系统或者硬件无关。
这样使得用户编写的程序可以不做任何修改就能在几乎所有的机器上运行。
用C语言编写程序的方式有很多种,好的书写风格必须满足一下几个方面:
可移植性好;
兼容性好;
干净整齐;
易看懂,易维护;
简明扼要。
本次的编程规约的目的在于,此项工程是团队合作的,整个团队采用统一的编程风格可以减少发生一些程序维护中令人头痛的事情,同时便于团队合作编程,同时有助于避免代码的重复编写。
(1)头文件
在本次代码量比较多的工程中,将代码根据不同模块分开后,写入多个文件中,这些文件一般分为C文件和H文件,对于H文件,一般将以下内容放入所在模块的H文件中:
预处理和宏定义;
结构、联合和枚举声明;
typedef声明;
外部函数声明;
全局变量声明。
(2)宏定义
头文件(.H)和C源文件(.C)常需要定义一些常数和宏定义,常数和宏定义规定采用大写,相应的词用下划线分开。
#defineSDA_DIRDDRP_DDRP7
#defineSCL_DIRDDRP_DDRP6
#defineADDR_DIRDDRP_DDRP4
(3)函数定义
函数的声明放在头文件中,同时对于只供本文件使用的函数用static进行声明,而对外的函数使用extern声明。
而对于函数的命名方式,采用英文缩写命名,同时多个单词的第一个字母大写或者使用下划线隔开,例如:
voidmodulo_init(void);
//PIT中断初始化函数
voidAD(void);
//AD转换函数
(4)变量定义
对于变量的定义规定如下:
变量一般采用全部小写,多个单词之间可加下划线,多个单词的命名可以将开头字母大写,同时变量的命名需要明白表示该变量的意思。
externunsignedcharpos;
//记录中心线位置
staticunsignedcharstart_p//定义起跑线标记
(4)缩进风格
缩进的大小是为了清除定义一个块的开始和结束,以便使程序更加容易看清楚流程脉络,我们约定采用缩进4个空格的缩进方式。
同时,在关键字if,for,while及do后面须加一个空格。
如果使用括号,则关键字else的前面和后面都要加空格。
4.2系统控制流程设计
4.2.1系统工作流程
在智能车系统的开发之前,首先需要知道,在此次开发的软件系统是一个实时控制系统,控制的关键是实时性,而对于这样的一个实时性要求比较高的系统一般开发的结构有两种:
第一,采用嵌入式实时操作系统;
第二,采用普通的嵌入式开发的前后台系统,也就是主循环加中断服务子程序的模式。
当采用前后台模式时,对于程序的流程就需要进一步规划,有些需要立即做出处理的动作就放入中断中执行。
然后在主循环中就不断
循环各个操作,依次完成各个功能。
开始。
系统上电复位,芯片内部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北京 联合 大学 木牛流马 技术 报告