基于磁导航路径识别的智能车设计

上传人:仙*** 文档编号:30608269 上传时间:2021-10-11 格式:DOC 页数:38 大小:905.01KB
收藏 版权申诉 举报 下载
基于磁导航路径识别的智能车设计_第1页
第1页 / 共38页
基于磁导航路径识别的智能车设计_第2页
第2页 / 共38页
基于磁导航路径识别的智能车设计_第3页
第3页 / 共38页
资源描述:

《基于磁导航路径识别的智能车设计》由会员分享,可在线阅读,更多相关《基于磁导航路径识别的智能车设计(38页珍藏版)》请在装配图网上搜索。

1、工学院本科生毕业设计(论文)基于磁导航路径识别的智能车设计软件设计The Design of Smart Car Based on Magnetic Navigation Path IdentificationSoftware Design总 计: 37 页表 格: 1 个插 图 : 16 幅南 阳 理 工 学 院 本 科 毕 业 设 计(论文)基于磁导航路径识别的智能车设计软件设计The Design of Smart Car Based on Magnetic Navigation Path IdentificationSoftware Design学 院(系): 电子系 专 业: 自动化

2、 学 生 姓 名: 学 号: 指 导 教 师(职称): 评 阅 教 师: 完 成 日 期: 理工学院nstitute of Technology基于磁导航路径识别的智能车设计软件设计基于磁导航路径识别的智能车设计软件设计自动化专业 摘 要 本设计以飞思卡尔16位单片机MC9S12XS128作为核心控制器,在智能车控制系统硬件设计的基础上,通过使用软件Freescale CodeWarrior对单片机编写控制程序,实现智能车的自动循迹。设计中利用电磁传感器采集道路磁场信息,通过信号采集、路径识别等算法,判断智能车的运行状态和路径形状;利用测速编码器进行速度检测,然后通过角度控制、速度控制等算法,

3、确定对电机和舵机的控制;最后结合硬件系统实现智能车速度和转向的自动控制,使智能车能够快速、稳定的跑完赛道。关键词 磁导航;路径识别;角度控制;速度控制 The Design of Smart Car Based on Magnetic Navigation Path IdentificationSoftware DesignAutomation Specialty Abstract: The design is based on the hardware design of intelligentvehiclecontrol system whose core controller is Fr

4、eescales16-bitmicrocontroller MC9S12XS128, and the intelligent vehicle achieves automatic tracking through executing control procedures by the use of Freescale CodeWarrior. The software design collects the magnetic information on the road by using electromagneticfieldsensors, judges the operational

5、status of intelligent vehicleand pathshape through thesignal acquisition and pathrecognitionalgorithm, detects speed through the use of speeddetectionencoder, then determinesthe control ofthe motor and steering gear through angle control and speed control algorithm, and finally achieves the automati

6、c controller of speed and steering of the intelligent vehicle by integrated with the hardware systems, so the intelligent vehicle can finish the track quickly and stability.Key words: Magnetic navigation; path identification; angle control; speed control目 录1 引言11.1 课题背景11.1.1 国外智能车研究概况11.1.2 国内智能车研究

7、概况21.1.3 应用前景21.2 本课题主要研究内容32 系统整体设计32.1 磁导航原理32.2 系统设计分析52.2.1 硬件设计分析52.2.2 软件设计分析73 软件设计83.1 传感器信号采集83.2 智能车偏移、转向和路径形状判断93.2.1 智能车偏移93.2.2 智能车转向103.2.3 路径形状103.3 角度控制算法103.3.1 十字路口113.3.2 其它路径123.4速度控制算法133.4.1 十字路口133.4.2 其它路径133.5智能车的启动与停止134编程与调试144.1 Freescale CodeWarrior V5.9软件及其应用144.2 编程思路1

8、74.2.1 主程序174.2.2 中断子程序174.3 系统调试184.3.1弯道184.3.2 十字路口194.3.3 其它19结束语20参考文献21附录22致谢31III1 引言1.1 课题背景十九世纪末,随着内燃机的诞生,人们发明了最现代化的交通工具汽车。经过一个多世纪的发展,汽车技术、性能有了很大的提高,人们充分享受到了汽车带来的巨大便利。但是,在享受汽车带来便利的同时,人们也发现汽车也给社会的发展带来了不少的损失,甚至危害到了人们的人身安全。由于公路客、货运输量的迅速增长,人们深受交通拥挤、堵塞严重、事故频繁和环境污染等公害的困挠。尤其是随着高速公路发展,汽车速度的提高,各类恶性交

9、通事故的发生呈不断上升趋势,给人们的生命财产造成了巨大的损失。这迫使人们采用高新技术以提高车辆的安全性、可靠性,以解决道路交通的公害问题。智能车辆的研究发展正是在这种背景下诞生的。1.1.1 国外智能车研究概况美国国家科学委员会曾预言:“20世纪的核心武器是坦克,21世纪的核心武器是无人作战系统,其中2000年以后遥控地面无人作战系统将连续装备部队,并走向战场。”为此,从80年代开始美国国防高级研究计划局(DARPA)专门立项,制定了地面无人作战平台的战略计划,目标是研制出满足战场需要的智能车辆,可以在崎岖的地形上沿规划的路线自主导航及躲避障碍,必要时重新规划其路线。从此,在全世界掀开了全面研

10、究智能车辆的序幕,如DARPA的“战略计算机”、计划中的自主地面车辆(ALV)计划(1983-1990)、能源部制订的为期10年的机器人和智能系统计划(RIPS)(1986-1995)、以及后来的空间机器人计划等等,另外,日本通产省组织的极限环境下作业的机器人计划、欧洲尤里卡中的移动机器人计划等。虽然智能车辆的研究起源于军事的要求,但是在其他领域的应用也有极大的价值,并且在研究上也取得了一定的成果。在太空探索方面,美国NASA研制的火星探测机器人索杰那于1997年成功登上火星,这是一个具有六个轮子的自主移动机器人。为了在火星上进行长距离探险,NASA又开始了新一代样机的研制,命名为Rocky7

11、,并在Lavic湖的岩溶流上和干枯的湖床上进行了成功的实验。在民用方面,智能车辆也有许多成功的例子。如日本的VERTIS智能汽车系统,该智能汽车主要有23个ITSZ子系统,主要用于实现车载通讯、信息加工处理、环境探测、辅助控制(自动驾驶)等四项功能。法国公路技术研究所技术顾问克洛德科贝表示,开展自动行驶控制系统研究是迈向公路交通无人驾驶的第一步,这一系统研制成功后,可以首先实现有人自动行驶。如在超车时,驾驶员只需根据计算机所提示的前方车辆行驶速度,输入有关最高限速等简单命令,计算机便会根据公路上的具体情况,自动调整速度和方向,并在绝对安全的情况下,实现超车。这将大大减少由驾驶员的判断和操作失误

12、导致的交通事故。1.1.2 国内智能车研究概况虽然我国对智能车辆的研究起步较晚,但是发展较快。1986年开始的高技术研究发展计划(863计划)制定了智能机器人主题的总体战略目标。1994年10月清华大学研制成我国第一台室外智能移动机器人THMR-III。之后,国防科技大学,北京理工大学,南京理工大学陆续开展了智能车辆的研究。我国清华大学计算机科学与技术系的人工智能与智能控制实验室已进行了多年的研究,并且取得了很大的成果。目前,他们研制的自主移动机器人实验车THMR-V已经能够在较复杂的环境自行行驶,他们在这个系统中采用激光雷达和摄像机来做视觉系统,并采用自己已有的先进的图像处理技术,进行信息识

13、别和处理,再进行智能控制实现汽车的运动。这就是我国目前最先进的智能自动驾驶汽车系统。为了更好的实现各项功能,他们正在进行进一步的研究和完善,使其在实际生活中得以应用。1.1.3 应用前景城市公共交通是与人民群众生产生活息息相关的重要基础设施。然而,目前世界上许多大城市都面临着由私人汽车过度使用而带来的诸多问题,例如道路堵塞、停车困难、能源消耗、噪声污染和环境污染等,这些问题严重降低了城市生活的质量。优先发展城市公共交通是提高交通资源利用效率,缓解交通拥堵的重要手段。大容量城市公共交通,如地铁、轻轨等,其最大优点是空间利用率和能源利用率较高。然而,由于缺乏足够的时间、空间、运力灵活性,在客流量不

14、足的情况下,系统效率将大大降低,运营成本过高,难以大力推广和应用。回顾汽车发展的百年历史,不难发现其控制方式从未发生过根本性改变,即由人观察道路并驾驶车辆,形成“路人车”的闭环交通系统。随着交通需求的增加,这种传统车辆控制方式的局限性日益明显,例如安全性低(交通事故)和效率低(交通堵塞)。最新调查表明,95的交通事故是由人为因素造成,交通堵塞也大都与驾驶员不严格遵守交通规则有关。如果要从根本上解决这一问题,就需要将“人”从交通控制系统中请出来,形成“车路”闭环交通系统,从而提高安全性和系统效率。这种新型车辆控制方法的核心,就是实现车辆的智能化。智能车有极为广泛的应用前景。结合传感器技术和自动驾

15、驶技术可以实现汽车的自适应巡航并把车开得又快又稳、安全可靠;汽车夜间行驶时,如果装上红外摄像头,就能实现夜晚汽车的安全辅助驾驶;也可以工作在仓库、码头、工厂或危险、有毒、有害的工作环境里,此外它还能担当起无人值守的巡逻监视、物料的运输、消防灭火等任务。在普通家庭轿车消费中,智能车的研发也是很有价值的,比如雾天能见度差,人工驾驶经常发生碰撞,如果用上这种设备,激光雷达会自动探测前方的障碍物,电脑会控制车辆自动停下来,撞车就不会发生1。1.2 本课题主要研究内容本论文所研究的智能车,是基于嵌入式单片机技术和传感器技术的自动寻迹智能车。其基本功能是通过检测电磁信号来判断路径形状如直道、弯道、十字路口

16、等,并进行相应的动作如拐弯、加速、减速等。本文对磁导航的原理进行了详细分析,简单的介绍了硬件部分,重点分析和设计了路径识别算法、角度控制算法、速度控制算法,编写了控制程序2。2 系统整体设计基于磁导航路径识别的智能车控制系统要求智能车能够通过感应道路中心导线流过的交变电流产生的磁场进行路径检测,识别智能车的运行状态和路径形状。智能车用电磁传感器来采集磁场信号并将之转化为电压信号,然后将电压信号传送给单片机,经过单片机分析、处理后,实现智能车位置的判别,并控制电机和舵机采取相应的动作,实现智能车的自动循迹行驶。本章详细介绍了智能车系统的整体结构及相应的设计分析。2.1 磁导航原理根据麦克斯韦电磁

17、场理论,交变电流会在周围产生交变的电磁场,导线周围的电场和磁场,按照一定规律分布,如图1所示。 图1 通电导线周围磁场分布图 通电导线周围感应磁场的分布是以导线为轴的一系列的同心圆。圆上的磁场强度大小相同,并随着距离导线的半径r 增加成反比下降。由毕奥-萨伐尔定律知,距离导线距离为r 处P 点的磁感应强度如公式1所示:B=0I4r (1)通电导线周围的磁场是一个矢量场,场的分布如图四所示。如果在通电直导线两边的周围竖直放置两个轴线相互垂直并位于与导线相垂直平面内的线圈,则可以感应磁场向量的两个垂直分量,进而可以获得磁场的强度和方向,如图2所示。图2 线圈感应磁场图导线中的电流按一定规律变化时,

18、导线周围的磁场也将发生变化,则线圈中将感应出一定的电动势。根据法拉第定律,线圈磁场传感器的内部感应电压E 与磁场B、电磁线圈的圈数N 、截面积A的关系如公式2所示:E=NA*0rdBdt=-ddt (2)感应电动势的方向可以用楞次定律来确定。由于本设计中导线中通过的电流频率较低,为20kHz,且线圈较小,令线圈中心到导线的距离为r ,认为小范围内磁场分布是均匀的。再根据图3 所示的导线周围磁场分布规律,则线圈中感应电动势如公式3所示:E=-ddt=KrdIdt=Kr (3)即线圈中感应电动势的大小正比于电流的变化率,反比于线圈中心到导线的距离,其中常量K 为与线圈摆放方法、线圈面积和一些物理常

19、量有关的一个量3。根据上述原理,在智能车上适当位置安装若干个线圈,通过检测固定于智能车上确定位置的若干个线圈产生的感应电动势,将这些模拟值放大、滤波后交给单片机以进行转化、处理、比较,就可以确定智能车相对于道路中心的偏移、正在进行的转向和路径形状,以决定采取何种控制策略来使智能车自动循迹行驶。2.2 系统设计分析本设计要求制作一个能够自主识别路径的智能车,在专门设计的跑道上自动识别路径行驶,并且最快跑完全程而没有冲出跑道。智能车要求跑的又快又稳,所以对于智能车的控制系统来说稳定性和快速性是控制系统设计的两个重要指标。智能车所需要的电磁信号由道路中心线处通以100mA交变电流的导线产生,智能车通

20、过设置在前端的6个线圈感应磁场来获取位置信息,通过安装在后轮上的测速编码器获取速度信息。位置信息和速度信息送入MCU进行处理和运算,然后由MCU输出信号控制舵机的偏转和电机的转速,以实现小车的转向和速度控制4。智能车控制系统的整体结构如图3所示。MC9S12XS128各传感器及其信号处理电路舵机控制转向电源管理模块电池电机驱动电路图3 智能车控制系统整体结构图2.2.1 硬件设计分析智能车控制系统从硬件上分为传感器模块、电机驱动模块、舵机驱动模块和单片机模块等。(1)传感器模块本智能车控制系统主要由传感器进行导航,因此传感器的灵敏度对智能车的稳定、快速行驶非常重要5。传感器电路如图4所示。图4

21、 传感器电路图电路中的L1和C1构成LC选频电路,选择L1=100mH,C1=6.8nf;电阻RV1、R4、R2构成分压电路,通过调节RV1的值来改变R2两端的电压,从而改变三极管C1815的基极和发射极之间的电压,以此来调节三极管的静态工作点;电容C3,C4用来滤波;C3之后的电路为倍压检波电路,将交流信号转换为直流信号;最后输出值约等于交流信号的峰值6。实物如图5所示(图中最左端的两个引脚接电感)。图5 传感器实物图(2)电机驱动模块电机驱动电路采用MC33886并联控制电路,使用时直接将两个MC33886叠加起来就可以了。(3)舵机模块实验发现,由于车模提供的舵机连杆的长度不一样,左右转

22、向都能很好的适应转弯的需要很难达到,故使用等长的铜柱来代替;且舵机竖直安装,这样力臂等长,对左右转向影响差别不大,很好的适应需要,使左转与右转同样顺利。(4)单片机模块单片机模块插在主控板上,各个端口如下面的电路图所示。这个主控板中舵机电源为5V,主控板中的除舵机和电机之外的电源电路采用7805芯片稳压芯片从电池转换而来。根据实际情况要求,所有电容容量总和不能超过2000uf,每个电容的耐压值不能超过25V。考虑到智能车的跟随性和灵敏性,主控板不能用感光板制作,因为感光板太重了,尽量选质量最轻的材料来做,并减少焊锡的使用量,总之就是想尽办法将小车的重量减下来。由于用于控制的PWM波的频率为8k

23、Hz,频率太高了,光电隔离反应不过来,所以在影响不大的情况先不建议在电机的PWM端口加光电隔离,但舵机的可以加7。主控板电路图如图6所示。图6 主控板2.2.2 软件设计分析软件整体结构如图7所示。单片机初始化信号采集信号处理舵机转向控制电机驱动轮速信号图7 软件结构图单片机的初始化:包括I/O口的初始化、时钟的初始化、PWM模块的初始化、ATD模块的初始化、中断的初始化。信号的采集:间隔固定时间,采集传感器输入的信号。信号的处理:将采集到的信号存储在单片机中,通过对信号的分析和计算,判断车体相对于道路中心线的偏移、车体正在进行的转向和路径形状,从而进一步的控制舵机的转角和驱动电机的转速。舵机

24、转角的控制和电机转速的控制:通过控制PWM波输出可以实现对舵机转角和轮速的控制。轮速传感信号:通过测速编码器将转速转化为电信号输入8。3 软件设计设计完硬件系统后,接下来设计软件,本设计软件系统主要有以下几部分:路径识别算法、角度控制算法、速度控制算法等。控制策略的选择对于智能车的行驶性能是非常重要的,控制智能车的最终目的就是要使智能车在平稳行驶的前提下,尽可能地以最快的速度和最短的路线行驶,因而可将软件控制大体上的划分为路径识别、速度控制和角度控制三大模块9。3.1 传感器信号采集传感器安装如图8所示,图中H0、H1、H2、H3为竖直线圈,L0、L1为水平线圈。图8 传感器安装图为保存采样的

25、模拟值,设置两个数组ADvalue610和AD6。采样时,连续采样10次,将H0、H1、H2、H3、L0、L1的值分别赋给ADvalue0i、ADvalue1i、ADvalue2i、ADvalue3i、ADvalue4i、 ADvalue5i;然后去掉两个最小值、两个最大值,取剩下六个值的平均值,再分别赋给AD0、AD1、AD2、AD3、AD4、AD5,作为H0、H1、H2、H3、L0、L1的值。采样的数值必须实时反应智能车的偏移、转向和路径形状,因此采样频率不能太低;采样频率过高,单片机计算负荷过大,也不合适。经过实验,确定每500s采样一次,可以快速并准确的反应上述指标10。3.2 智能车

26、偏移、转向和路径形状判断 智能车要实现自动循迹行驶,必须要通过对传感器信号的分析,确定智能车的偏移、转向和路径形状。通过判断智能车的左偏或者右偏,来决定智能车是右转还是左转;通过判断智能车的转向来决定角度控制是否加上微分;通过路径判断来确定采用何种角度控制策略。3.2.1 智能车偏移主要用竖直传感器H2、H3来判断智能车相对道路中心位置的偏移。若AD3AD2,说明竖直传感器H3比H2更靠近道路中心,也即车体左偏,智能车需要右转;若AD3150) AD2=AD0; if(AD2-AD0150) AD0=AD2;/ H0与H2互补盲区 if(AD1-AD3150) AD3=AD1;if(AD3-A

27、D1150) AD1=AD3;/ H1与H3互补盲区3.2.2 智能车转向判断智能车的转向需要先确定车体是左偏还是右偏,然后用远离道路中心的那一个水平传感器来判断智能车的转向。这里定义六个整形变量来辅助判断:水平传感器L0当前值analog0和前一次值b_analog0,水平传感器L1当前值analog1和前一次值b_analog1,L0变化analog0_ec,L1变化analog1_ec。其中,analog0_ec= analog0- b_analog0;analog1_ec= analog1- b_analog1。假如已经确定了智能车左偏,那么用远离道路中心的水平传感器L0的值来判断车体

28、的转向:如果analog0_ec0,即L0的值变大,说明L0在接近道路中心,即智能车正在右转。3.2.3 路径形状(1)十字路口:根据右手定则,十字路口由于磁场叠加,竖直传感器已经判断出的方向正好与实际的相反,而水平传感器却几乎不受影响,因此当水平传感器L0、L1的方向与竖直传感器H2、H3判断的方向相反,而且相反的有点大,说明智能车进入十字路口。也即(AD4-AD5=250)&(AD3-AD2200)(AD5-AD4=250)&(AD2-AD3200)有一个成立的话,认为进入路十字路口。(2)弯道:如果AD4和AD5中至少一个小于100,则认为进入弯道。3.3 角度控制算法 十字路口由于磁场

29、叠加,如果智能车保持之前的角度控制策略,容易不稳定。此处使智能车进入十字路口保持恒定转角控制一段时间后,恢复角度随动控制,并给角度控制加上微分控制。其它路径形状,采用角度比例控制,只需根据直弯道情况调整角度比例控制系数11。3.3.1 十字路口 进入十字路口,由于磁场叠加,竖直传感器不能正确的判断方向,因此不能采用普通路径的角度控制算法。进入十字路口后需要保持恒定转角一段时间,在这个时间内智能车角度控制由两个水平传感器的差值来决定。此处需要将两个水平传感器采集的对称位置的数值尽量调成一致,十字路口角度的方向由AD4与AD5的差值来判断,大小等于角度比例控制系数*(|AD4-AD5|);之后采用

30、角度比例微分控制,智能车离开十字路口后,恢复角度比例控制。经过调试,智能车通过十字路口需要80ms的时间,其中恒定转角控制时间30ms,角度比例微分控制时间50ms。程序中,首先定义两个变量cross和cross2,分别作为智能车进入十字路口标志位和进入十字路口保持标志位。如果判断智能车进入十字路口,令cross=1,cross2=1。30ms后,令十字路口保持标志位cross2=0,采用角度比例微分控制。50ms后,令cross=0,智能车离开十字路口。十字路口角度控制流程图如图9所示。图9 十字路口角度控制流程图程序段如下:if(cross=1) count1+; if(count1300

31、0) cross2=0; if(count1=8000) cross=0;count1=0;其中count1为计数控制字,用于计算保持时间和十字路口行驶时间。3.3.2 其它路径如果判断智能车进入弯道,并且在向减小偏移的方向转向,则需要将角度比例系数增大;如果判断智能车进入弯道并且在向增大偏移的方向转向,则需要将角度比例系数增大同时加入角度微分控制。此处以智能车左偏(AD3AD2)为例,说明其它路径的角度控制算法,流程图如图10所示。图10 其它路径角度控制流程图程序段如下:if(analog0_ec0&AD4l_or_c) jiaodu=(int)(long int)(kps0+kps_ad

32、d0)*(maxh0-AD0)/100-(kda0*analog0_ec)/100); /角度控制1else if(AD4l_or_c&AD5l_or_c) upspeed=sspeed; vi_ref=max_pulse;kp=kpl; else upspeed=cspeed;kp=kpc;conner_analog=(AD4=AD5)?AD5:AD4; vi_ref=(max_pulse-min_pulse)*100/l_or_c)*conner_analog)/100+min_pulse; e=vi_ref-pulse;ec=pulse-b_pulse;add=kp*e/100+kd*e

33、c/100;/速度PD控制s=s+add; if(supspeed) s=upspeed;if(s0) s=0;3.5智能车的启动与停止智能车启动之前,需要先按键取样H0、H1的值,确定一组基准值:在H0、H1距离导线7cm(小车放在道路正中心时中间两个竖直传感器H0、H1对称,与导线的水平距离都是7cm)左右各测量一个数据,然后在H0、H1距离道路边缘5cm(智能车外侧传感器H2、H3的边缘与道路边缘重合时,H0与道路左端、H1与道路右端的距离恰好为5cm)左右各测量一个数据,将测得数据的最大值和最小值作为纵坐标,相应的距离作为横坐标,直接用直线连接这两个点,将这条直线近似为传感器采集的模拟

34、信号随距离变化的曲线。还需要取样L0、L1的值,用于计算前面提到的十字路口处的角度比例控制系数。第一次按键,将车体放于道路中央,使在距离铜线7cm左右测量一个数据,此时采集竖直传感器H0、H1的模拟值作为maxh0、maxh1;第二次按键,使智能车最左端的传感器H2的边缘与道路左端的边缘重合,此时H0与道路左端的距离恰好为5cm,采集信号minh0,同时采集水平传感器L1的值;第三次按键,使智能车最右端的传感器H3的边缘与道路右端的边缘重合,此时H1与道路右端的距离恰好为5cm,采集信号minh1,同时采集水平传感器L0的值。第四次按键,延迟一段时间后,智能车启动12。智能车启动后,要间隔固定

35、时间检测起跑线,当检测起跑线次数达到两次时,使电机停止,禁止速度PID运算。智能车传感器之间距离如图11所示。图11 传感器设置距离图4编程与调试4.1 Freescale CodeWarrior V5.9软件及其应用CodeWarrior软件是Metrowerks公司开发的软件集成开发环境及IDE(intergrated develop inviroment),Freescale的单片机都可以在CodeWarior IDE软件下进行开发,codewarrier IDE为软件开发提供了一系列的工具,其中包括:项目管理器:为软件开发人员管理上层的文件;将项目进行分组管理,比如文件或目标系统;跟踪

36、状态信息,比如修改日期;决定编译顺序或每次编译应包括哪些文件;与插件一起提供版本控制功。编辑器:利用颜色来区分不同的关键字;允许用户利用颜色机制自定义关键字;自动检查括号范围;利用菜单在不同的文件或函数中导航。搜索器:搜索一个特定的字符串;用特定的字符串代替查找到的字符串;允许使用常规表达式;提供文件比较功能。源代码浏览器:标志符(变量名称,函数名称)数据库;利用数据库来对代码快速定位;对所有的标志符连接到用到它的代码中。编译系统:编译器将源代码编译成机器码;链接器将目标文件链接成可执行文件。调试器:利用标志符数据库进行源代码级调试;支持各种标志符数据库。开发人员可以在不同的操作系统下使用co

37、dewarrior IDE 来开发自己的软件。这些操作系统包括 Windows,Macintosh, Solaris,和Linux.IDE在不同作系统下的界面完全相同,支持C,C+和 Java多种语言IDE支持许多通用的桌面或嵌入式处理器,支持插件工具,开发环境界面统一14。在软件开发过程中,通常需要经过以下几个步骤:新建:创建新项目,源文件。编辑:按照一定的规则编辑源代码,注释。编译:将源代码编译成机器码,同时还会检查语法错误和进行编译优化。链接:将编译后的独立的模块链接成一个二进制可执行文件。调试:对软件进行测试并发现错误。CodeWarriorV5.9的创建新的工程窗口如图12所示。图1

38、2 CodeWarriorV5.9创建新的工程窗口CodeWarriorV5.9的工程的初始设置窗口如图13所示。图13 CodeWarriorV5.9工程的初始设置窗口CodeWarriorV5.9的编译窗口如图14所示。图14 CodeWarriorV5.9的编译窗口4.2 编程思路4.2.1 主程序在主程序中判断是否是十字路口,如果是,执行十字路口程序;如果不是,执行转角控制程序,主程序流程图如图15所示。图15 主程序流程图4.2.2 中断子程序中断子程序中,定义信号采集、十字路口检测、起跑线检测、脉冲函数采集等计数控制字,使智能车能够以固定间隔时间进行信号采集,以判断智能车的偏移、转

39、向和路径形状;定时检测是否到达十字路口,以决定采用何种速度和角度通过当前路段;定时检测是否通过起跑线两次,以决定智能车何时停止;定时检测编码器脉冲量,以计算智能车当前速度13。中断子程序流程图如图16所示。图16 中断子程序流程图4.3 系统调试 调试智能车过程中,遇到了一系列问题,通过研究问题,发现了一些编程中的错误及忽略掉的因素,在修改程序,反复调试后,解决了这些问题。4.3.1弯道(1)舵机右转错误将传感器采集的模拟值与距离的关系转换成直线关系,从而确定角度与模拟值的比例关系,使智能车的转角连续化。运行时发现舵机右转出现错误,总是出现本该右转的却出现左转的情况。经过分析,错误出在定义数据

40、类型不当,角度控制算法里有((kps0*(maxh0-AD0)这个算式,而kps0、maxh0、AD0和计算结果都定义为整型,计算结果超出了整型的范围,出现错误,所以将kps0和kps1数据类型改为long int型。 整型、无符号整型、长整型变量的字节数和范围如表1所示。表1 变量字节数及范围表int 2字节16位-3276832767unsigned int2字节16位065536long(或long int)4字节32位0131072(2)S弯灵活性调整调试时发现智能车在中等S弯道处拐弯不是很灵活,跟随性不好。考虑将采样时间减小,10ms采样一次。为此将模拟值采样函数放到中断中,以便获得

41、相同时间内的模拟值变化率。然后利用水平传感器的变化率乘以一个微分系数,一起控制角度。4.3.2 十字路口(1)智能车在十字路口行驶效果不佳。考虑到十字路口出现问题的原因是竖直传感器存在盲区,而竖直传感器的高度越低,盲区越小,因此考虑将竖直传感器的高度降为2cm。 (2)误判十字路口有时会出现将其它路径误判为十字路口的情况。由于传感器中的放大电路随电磁信号的变化并不是一直都处于放大状态,如果传感器中的滑动变阻器调节的不合适,电磁信号过大时就会出现饱和的情况,电磁信号过小时就会出现截止的情况。经过多次测试,多用电流(交流)为85到90毫安时竖直传感器的最大模拟值调节为480,水平传感器的最大模拟值

42、调节为450,解决了这个问题15。4.3.3 其它中等S弯与直道冲突:直道走好了,中等S弯就走不好,反之也是。而且中等S弯走好后速度得降下来。速度也不能太快。有可能:是机械上的问题;传感器检测太迟钝的问题;脉冲采集的时间太长,减小为5ms,加快速度的响应。最终发现不是以上的原因,而是舵机相应速度太慢了,开始考虑给舵机升压为6V。结束语本论文研究了智能车的控制方法,主要任务是设计智能车控制系统的软件控制算法。通过软件的设计,使智能车的功能齐全、性能良好、使用方便、高精度、高可靠性,具有智能的优点。总体上来说本论文已经满足了这次论文的设计要求,结合硬件设计能够实现对智能车的智能控制,在实践中时有较

43、好的精度和较高的准确度。(1)通过对智能车控制系统的设计和研究,巩固了这一在工程实践中有着广泛应用的控制理论。(2)初步掌握了MC9S12XS128单片机的开发技术。(3)完成了整个系统软件的构思、编写、调试,以及软硬件的联调,并通过软件编程的操作对软件的实际使用效果作了验证。(4)整个系统设计过程,是对本专业知识融会贯通的过程,同时也提高了对相关学科的掌握。如对智能控制系统现状和发展趋势有了一定的了解,对相关专业知识也有了一定的认识。 论文主要结论如下:(1)该系统可以快速、准确地控制智能车的转向变速。(2)控制系统设计针对探测要求,选择了相应的传感器,其中电磁传感器特色明显,便于使用。通过

44、对本课题的设计研制使我对智能车控制系统有了更加深入的理解,本文设计的系统具有检测精度高、可靠性实时性好的特点。对汽车制动性能的智能化控制有一定的实用参考价值,也感觉到了本系统中还有一些不足之处需要改进,比如可采用模糊控制的先进的控制方法。 由于本人知识的欠缺及时间有限,在系统调试时借鉴了前人的成果,设计的系统中还存一些在问题,在软硬件上都还有待改善以及进一步提高。参考文献1 陈懂. 智能小车运动控制系统的研究与实现D.南京:东南大学仪器科学与工程系,2005:32 吴怀宇.大学生智能汽车设计基础与实践M.北京:电子工业出版社,2008:33 电磁组竞赛车模路径检测设计参考方案M.全国大学生飞思

45、卡尔杯智能汽车竞赛秘书处,2010:44 王宜怀,刘晓升.嵌入式应用技术基础教程M.北京:清学出版社,2005:55 王宜怀.单片机原理及其嵌入式教程M.北京:北京希望出版社,2002:56 童诗白.模拟电子技术基础M.北京:高等教育出版社,2001:67 郑扣根,唐杰,何通能.嵌入式系统使用68HC12HCS12 的设计与应用M.北京:电子工业出版社,2006:78 孙同景.Freescale 9S12十六位单片机原理及嵌入式开发技术M.北京:机械工业出版社,2007:89 孙同景,陈桂友编.Freescale十六位单片机原理及嵌入式开发技术M.北京:机械工业出版社,2008:810 王明顺

46、,沈谋全.传感器与智能车路径识别J.沈阳:东北大学,2007.4:911 侯虹.采用模糊 PID控制律的舵机系统设计M.洛阳:中国空空导弹研究院,2009:1112 李仕伯,马旭,卓晴.基于磁场检测的寻线小车传感器布局研究M.北京:清华大学出版社,2004:1413 谭浩强.C程序设计M.北京:清华大学出版社,2001:1714 Englewood Cliffs. N. Narayana Rao.Elements of Engineering ElectromagneticM.New Jersey: Prentice-Hall, Inc, 2007:1515 Li Feiqiang, Wang

47、 Jun, Liu Zhaodu. On the Vehicle Stability Control for Electric Vehicle Based on Control AllocationJ. School of Mechanical and Vehicular Engineering, Beijing Institute of Technology,2008:19附录最终程序:#include #include Sys_IOC7_COUNT.h#include derivative.h#include lcd.h#define PITTIME 2#define motor(spee

48、d) (PWMDTY01=(speed)#define l_or_c 100 #define left_angle_max 230#define right_angle_max 220#define center_angle 1420 #define kps_add0 20 #define kps_add1 10long kps0=0;long kps1=0; long kps2=0; long kps3=0; unsigned char kda0=100; unsigned char kda1=100; int angle=0; int jiaodu=0;unsigned char kpc=

49、40; unsigned char kpl=35; unsigned char kd=20; unsigned char sspeed=135; unsigned char cspeed=120; int max_pulse=100; int min_pulse=50;int vi_ref=0;int s=0; int b_pulse=0;int pulse=0;unsigned int count=0,count1=0,count2=0,count3=0,count4=0,count5=0,count6=0, count7=0,count8=0,count9=0; int maxh0=0,m

50、axh1=0,minh0=0,minh1=0; int ADvalue610=0; int AD6=0; int b_analog0=0,analog0=0,b_analog1=0,analog1=0;int analog0_ec=0,analog1_ec=0;unsigned char cross=0; unsigned char cross2=0; int crossspeed=180; int L1,L0; unsigned char start=0; unsigned char stop=0;unsigned char allowstop=0;int ad0,ad1,ad2,ad3;v

51、oid setup() PUCR_PUPBE=1; DDRB=0X09; PORTB=0XFF; DDRA=0XFF; PORTA=0XFF; REFDV=1; SYNR=3; while(!(CRGFLG&0x08); CLKSEL=0x80; PWMCTL_CON01=1; PWME_PWME1= 0; PWMPRCLK=0x44; PWMSCLA=1; PWMCAE_CAE1=0; PWMPOL_PPOL1=1; PWMCLK_PCLK1 = 0; PWMPER01 =250; PWMDTY01=0; PWMCTL_CON23=1; PWME_PWME3= 0; PWMSCLB=1; P

52、WMCAE_CAE3=0; PWMPOL_PPOL3=1; PWMCLK_PCLK3 = 1; PWMPER23=20000; PWMDTY23=center_angle; PWME_PWME1 = 1; PWME_PWME3 = 1; ATD0CTL1=0x20; ATD0CTL2=0x40; ATD0CTL3=0x60; ATD0CTL4=0x03; ATD0CTL5=0x30; ATD0DIEN=0x00; PITCFLMT_PITE=0; PITCE_PCE0=1; PITMTLD0=160-1; PITLD0=PITTIME-1; PITINTE_PINTE0=1; PITCFLMT

53、_PITE=1; PACTL = (1PAEN); lcd_init(); void servo(int m) PWMDTY23=center_angle+m; void delay(int ms) int i,j; if (ms1) ms=1; for(i=0;ims;i+) for(j=0;j2670;j+); void AD_check() int i=0,j=0,a0=0,a1=0,b0=0,b1=0,max=0,min=1300,sum=0; for(i=0;i6;i+) max=0;min=1300; for(j=0;j=max) max=ADvalueij;a0=j; if(ADvalueij=min) min=ADvalueij;b0=j; max=0;min=1300; for(j=0;j=max) max=ADvalueij;a

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!