




已阅读5页,还剩88页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一届“飞思卡尔”杯全国大学生智能汽车邀请赛技术报告附件B基于模糊控制与PID控制相结合的赛车控制算法研究学校西安交通大学队伍名称交大之星参赛队员睢涛赵龙陈刚带队教师刘小勇关于技术报告和研究论文使用授权的说明本人完全了解第一届“飞思卡尔”杯全国大学生智能汽车邀请赛关于保留、使用技术报告和研究论文的规定,即参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名带队教师签名日期目录第1章引言1第2章设计思路以及方案论证321概述3211系统设计方法3212主要设计思路422硬件设计方案论证5221单片机模块5222电源模块方案5223速度传感器模块方案5224电机驱动模块方案6225方向传感器模块方案723控制算法方案概述7231总体方案7232方向控制算法选择8233速度控制算法选择924本章小结10第3章系统电路设计1231单片机模块1232电源管理模块1233转向控制模块1434车速传感模块15341霍尔元件的工作原理15342霍尔元件相关电路设计1635路径识别模块1736电机驱动模块1937总结20第4章智能车机械设计2141传感器模块位置调节结构2142舵机控制转向结构2143主控电路板安装结构2244测速模块安装2345最终车体效果23第5章系统软件设计2451软件功能概述2452系统初始化24521单片机初始化24522定时器初始化26523AD模块初始化27524PWM模块初始化2853获取AD值程序2954位置计算程序29541位置计算思路概述30542传感器位置分布对位置计算的影响30543位置计算3155方向控制程序32551PID控制算法理论33552方向PID控制实现3556速度控制程序36561模糊控制理论37562本系统涉及到的模糊控制设计4057软件系统的文件组织及流程图41第6章开发工具介绍及赛车调试4361开发工具介绍43611电路板开发工具43612软件开发工具44613在线调试工具4562调试46621硬件调试46622系数调整47第7章模型车的主要技术参数5171改造后的车模总体重量,长宽尺寸5172电路功耗,所有电容总容量5173传感器个数以及种类5174除了车模原有的驱动电机、舵机之外无伺服电机5175赛道信息检测精度、频率51第8章结论53参考文献I附录A源程序IIIMAINC文件IIISYSH文件IVSYSC文件VSUBRH文件IXSUBRC文件XISRH文件XVIIIISRC文件XIX附录B研究论文XXI第1章引言智能车竞赛的目的是设计和制作一个完整的车模控制系统,或称之为车辆自动驾驶系统。其设计内容包括算法设计、机械设计、软硬件设计;制作内容包括机械制作、电路制作以及软件编程。当然,最后的调试以及控制参数的整定工作也是决定项目成败的关键所在1。思路及技术方案是一个工程项目的灵魂。因此,我们在设计和制作交大之星伊始就对思路与方案的选择非常仔细与谨慎。作为一个快速的随动控制系统。结合智能车设计的实际情况以及我们对于自动控制系统的设计经验。我们提出了,简单、稳定、快速、智能的八字方针作为模型车方案设计的指导原则。经过对被控对像的分析。我们可以把智能车控制系统分为两个大的子控制系统。分别为方向控制系统与速度控制系统。方向控制的作用就好比是驾驶员和他所控制的方向盘;速度控制系统的作用就好比是驾驶员和他脚下的油门与刹车。方向控制系统能使智能车沿着导引黑线行驶而不至偏移。速度控制能使智能车在直道上加速行驶而在入弯时刹车减速以尽量提高行驶速度和避免因入弯速度过快而造成的冲出赛道。明显,速度控制器的设计质量是决定比赛成绩的关键所在。经过再进一步的分析。我们而经将速度控制系统分为两个子控制器。第一个控制器我们将其称为电机转速控制器。它和测速模块一起组成一个典型的直流电机速度控制闭环回路。而其输入值也就是给定值,由一个被称为“行驶速度优化判决器”的模糊控制器给出。“行驶速度优化判决器”的作用是由模型车当前的状态(速度、转弯程度等)经过模糊判决而得出当前状态下最大行驶速度的估计值。这个估计值也就是电机速度控制器的输入值,经过该控制器的控制,最终车模将行驶在“优化判决器”所计算出的速度上。显然,经过分析。决定比赛成绩的关键点就是“行驶速度优化判决器”的设计。对于它,我们采用的是模糊控制算法,以上所述就是本设计的关键技术思路。本文第二章主要介绍智能车的设计思路和方案论证,第三章介绍系统的电路设计,第四章介绍智能车的相关机械设计,第五章介绍系统软件的设计,第六章介绍完成智能车设计所需开发调试工具及调试过程,然后第七章给出智能车的相关参数,最后对此次设计做出总结。在设计与制作过程中,我们参考了诸多文献,主要包括控制理论方面的文献与S12系列嵌入式微控制器软硬件设计方面的文献。其中,控制理论的文献主要是自动化仪表与过程控制方面的文献3,与模糊控制方面的文献7;对于S12微控制器的软硬件设计,我们最主要的参考文献是文献4与文献6。此外,我们还参考了几篇论文,其中最有帮助的是文献9。当然,“飞思卡尔”的官方技术手册与资料也是我们设计中重要的信息来源。第一届“飞思卡尔”杯全国大学生智能车邀请赛将于2006年8月于北京清华大学举办。届时将有来自全国各地的高校及其代表队参与竞赛。作为代表西安交通大学参赛的两支代表队之一的“交大之星”队。经过数月的团队合作与不懈努力也终于拿出了自己的作品“交大之星”号智能车。本文将详述“交大之星”的方方面面。为使本文能准确反映“交大之星”设计、制作的详细技术信息,本文将分章节介绍模型车设计制作主要思路以及实现的技术方案概要、机械设计、电路设计、开发工具和制与调试,最后再将模型车的主要技术参数给予说明。第2章设计思路以及方案论证21概述211系统设计方法智能车控制系统的设计综合了多个步骤以及模块,是一个完整的工程任务,因此需要对系统的设计制定合理、有效的设计流程。整个设计过程2可以总结为图21的框图。图21总设计流程图创意阶段主要发挥创造性,队员之间相互启发,讨论出可能的方案,并考虑每种方案的可行性。对每个部分的设计定出23个解决方案。可行性的分析要从多个方面,如技术、性价比、时间周期、规则的约束条件、人力资源等方面进行分析。初步设计阶段是将前一阶段中关于赛车的创意与方案具体化,以草图、分系统原理图、初步设计计算以及各关键部分局部详图等形式表达出来,初步核对各设计能否满足要求。这个时候要给出书面的设计任务书。详细设计阶段的任务就是依据设计任务书全面、具体地完成赛车的整个设计,要做到分工明确、步骤规范。设计过程中要留下所有的设计资料,为后面的制作、调试提供可查依据。调试过程分为模块调试和系统调试。在确保各个模块均能正常工作后进行整个系统的联合调试。软件应该保证行车安全的情况下逐渐提速。软件的测试也应让小车先在直道、弯道等特殊路段下行驶正常,然后在实地进行联合调试。思路及技术方案是一个工程项目的灵魂,它是项目成败的关键。智能车是一个快速的随动控制系统。结合智能车设计的实际情况以及对于自动控制系统的设计经验,我们提出了简单、稳定、快速、智能作为模型车方案设计的指导原则。212主要设计思路智能车系统是一个各部分协调运作的控制系统。系统要完成从传感器接收、微控制器判断计算,到执行机构执行的整个过程。系统设计要求单片机把路径的迅速判断、相应的转向伺服电机控制以及直流驱动电机的控制精密地结合在一起。传感器数据采集的失误,转向伺服电机控制的失当,都会导致模型车严重抖动甚至偏离赛道;低效的直流电机驱动控制,会造成小车直线路段速度上不去,弯曲路段入弯速度过快等问题。因此智能车各个部分之间的协调工作是其正常行驶的基础3。图22系统功能图结构上,智能车应该包括电源模块、传感器模块、微控制器模块、驱动电机模块、转向舵机模块等。其中,传感器模块包括速度传感器和方向传感器。系统完成的功能如图22所示。本章中将分别介绍基于上述思想而设计的硬件设计方案和控制算法设计方案。22硬件设计方案论证221单片机模块组委会提供了两块最小系统板,分别是基于112PIN封装的9S12DG128B和基于80PIN封装的9S12DG128B,我们组选择了80PIN的那块EVKC板4。EVKC板通过核心子板上的欧式插槽将I/O接口引出,用以替代原有的MC9S12EVKX模块。并且MC9S12EVKC模块具有板面面积小,重量轻,板面标识丰富等特点,有59个通用I/O端口可供使用,在I/O端口资源足够的情况下,此模块能为车模系统提供尽可能优越的性能5。方案选择控制核心采用基于80PINS12的EVKC板。222电源模块方案电源用于给系统各部分供电。由于电池的输出电压会有扰动,而且电机的功率改变会导致电源电压输出产生突变,因此需要给各电源进行稳压。单片机和逻辑电路需要5V电压,转向舵机模块需要6V电压,驱动电机的电压决定电机转速,因此要重点考虑各供电模块之间的影响。稳压器件可以使用三端稳压器,但电机的电压和转速之间成正向的关系。为了提高电机转速,可以使用DC/DC升压电路,但这不符合比赛规则。集成三端稳压器与模拟器件构成的稳压器相比具有稳定、简单、便宜等优点。方案选择电源稳压部分使用集成三端稳压器。223速度传感器模块方案速度传感器感知赛车的行驶速度,有如下几种方案采用霍尔元件霍尔原件的工作原理是利用电磁感应定理磁场的变化引起电压的变化,用磁块作为磁场源,磁块和霍尔器件的相对位置和方向决定霍尔原件的输出电压。利用这一原理,将磁块粘在轮胎或轮轴上,每转过一定角度霍尔元件就会有一个脉冲产生,通过测量脉冲周期就可以间接得到速度。这种方法的优点是实现方便,稳定性强,抗干扰能力强,缺点是分辨率较小,只能达到厘米数量级8。采用光学编码盘光学编码盘由光源、码盘、接收器组成,码盘周围有小孔,光源透过小孔投射在接收管上,当码盘转动时,接收管就会收到脉冲信号,通过测量脉冲周期就可以得到码盘转动速度。市场上有现成的光学编码盘出售,但体积和重量普遍较大,不符合轻量化设计的原则。自制品稳定性较差3。采用加速度传感器通过加速度器件测量赛车的横向和轴向加速度,通过对加速度进行积分得到速度。这种方法的优点是可以不依靠动力部就可以测量速度,但精度不高,而且计算过程对系统的空间和时间资源消耗很大。考虑如上方案,基于智能车设计应该具有简单、稳定的特点,使用霍尔元件的方案比较合理。尽管这种方案具有精度不高的缺点,但通过计算,它的分辨率是可以接受的。方案选择使用霍尔元件进行测速。224电机驱动模块方案电机驱动电路的作用是使电机在能够及时受到控制器控制的情况下获得足够的功率。采用全控型的开关功率元件进行脉宽调制控制(PWM)方式已经成为绝对主流。它的原理是直流电机的转动状态取决于加在电枢上的电压,电压的极性影响电机的转向,电压的大小影响电机的转速,通过微控制器输出不同占空比的方波来近似不同幅度的电压,以达到控制速度的目的。现在效率高且被广泛使用的方法是使用H桥电路。电机的驱动电路可以有两种方案使用独立元件搭成H桥电路,这样可以根据需要提供大的功率,但需要对元件特性有非常深的了解,而且因要避免短路的情况出现而使编程变复杂。使用集成的电压驱动芯片,如MOTOROLA公司的MC33886芯片、L298N等,这样的方案可以大大简化设计,并且集成电路具有、稳定、可靠、编程简单的特点,因此成为首选方案。方案选择电机驱动模块使用专用驱动芯片MC33886225方向传感器模块方案路径识别模块是智能车系统的关键模块之一,路径识别方案的好坏,直接关系到最终性能的优劣。通常使用的方案有光电寻迹方案所谓光电寻迹就是指路径识别电路由一系列发光二极管、接收二极管组成,由于赛道中存在轨迹指示黑线,落在黑线区域内的光电二极管接收到的反射光线强度与白色的赛道不同,由此判断行车方向。光电传感器寻迹方案的优点是电路简单、信号处理速度快。光电传感器的排列方法、个数、彼此之间的间隔都与控制方法密切相关。具体使用时可以直接将发射管接电源输出,也可以对发射光进行调制以减少干扰。由于被检测物体为黑线,具有分明的轮廓,而且红外管的工作频率为940NM,在普通光源的光谱范围以外,很难受到附近光源的干扰,因此普通用法已经具有足够的抗干扰性。CCD寻迹方案这种方案是使用CCD摄像头拍摄赛车前方的路径,根据图像处理的方式判断路径情况8。CCD摄像头寻迹方案的优点是可以更远更早地感知赛道的变化,但是信号处理比较复杂,如何对摄像头记录的图像进行分割和识别,如何加快处理速度是摄像头方案的难点之一。而且CCD方案使车体重量较大,在尽量减小小车惯性的原则下这种方法的缺点也是不言而喻的。PSD激光寻迹这种方法是利用激光的高亮度、高汇聚性来探测远距离的路径状况。但激光器件的功率过大而且斜方向反射效果并不理想,因此这种方案很少采用。综合考虑以上方案,经过比较我们采用普通光电寻迹方案。方案选择采用光电传感器进行寻迹。23控制算法方案概述231总体方案经过对被控对像的分析。我们可以把智能车控制系统分为两个大的子控制系统。分别为方向控制系统与速度控制系统。方向控制系统能使智能车沿着导引黑线行驶而不至偏移。速度控制能使智能车在直道上加速行驶而在入弯时刹车减速以尽量提高行驶速度和避免因入弯速度过快而造成的冲出赛道。在智能车算法设计中可供选择的算法有经典PID算法,模糊控制算法和神经网络算法,前馈控制算法。几种控制算法的比较1PID算法PID算法的优点是算法理论成熟,不要求有精确的被控对象数学模型。所以采用PID算法可以极大地减少建模工作,而将工作重点转移到PID控制参数的整定上来。并且有非常成熟的参数整定方法可用。PID控制算法的性能稳定可靠,开发风险小。2智能控制算法飞思卡尔HCS12微处理器内置模糊控制指令5。使用它可以极大地加快模糊判决速度,减轻CPU的负荷。但是如果采用模糊控制,最后的整定与调试工作将相对PID控制来说变得比较困难。3神经网络算法神经网络算法模拟了人的大脑的判断过程,最主要的优点是容易实现自学习。但是神经网络方法的运算量大,要求的存储单元多。本设计是用微控制器实现的快速运动中的系统。由于S12运算能力以及系统快速性要求等方面的限制5,决定了神经网络算法并不是适合本系统的算法。4前馈控制方法由于前馈控制是一种开环控制,在前馈会路中,它不能完全校正对应的干扰对被调参数的影响。解决的方法之一是利用数字计算机建立精确的系统模型;另一种更为有效的方法是前馈控制和反馈控制相结合,构成前馈反馈控制系统,这样的系统既具有前馈控制动作及时的特点,又保持了反馈控制的许多优点。232方向控制算法选择方向控制采用典型的闭环控制方法,框图如图23所示。对于方向控制,并不要求特别高的控制性能,只要求快速性好,稳定性高。所以将PID算法作为首选算法3。方案选择方向控制采用离散型PID控制算法。车模位置导引线位置传感器E舵机运行方向控制算法图23方向控制框图233速度控制算法选择在车模不打滑的情况下,仅使用方向控制就可以实现车模跟踪黑色导引线的设计目标。但是经过试验,车模的动力非常强劲,如果不进行有效的速度控制,就不可能实现车模的稳定控制。竞赛的评价指标是以车模的行驶速度为主的,所以为提高竞赛成绩就要求尽量提高车模行驶速度。而为了提高车模运行稳定性,就要求车模在行驶过程中不能出现打滑的现象,减小车速却是一个直接的解决打滑问题的方法。所以,车模行驶速度和行驶稳定性之间存在一对矛盾。而解决这一对矛盾的方法就是设计合理的速度控制方案。因此速度控制算法的选择是智能车方案设计中的关键所在7。速度控制可分为两部分的控制电机转速控制部分和行驶速度优化判决器。二者的关系如图24所示。图24速度控制各模块之间的关系行驶速度优化判决器的作用是以智能车的当前行驶状态(速度、方向等)为依据,通过一系列的计算与优化,得出在当前的行驶状态下能使车模不打滑的最高行驶速度(估计值)。并将这个速度作为电机转速控制器的输入值(设定值)。电机转速控制器、电机驱动、电机、测速模块构成了一个完整的闭环速度行驶速度优化判决器电机转速控制器电机驱动电路测速电路赛车行驶状态电机转速设定值电机反馈控制系统。这个速度控制系统的设定值是由优化判决器所给出的最大不打滑速度,输出值是电机的转速。因为电机与车轮间是齿轮传动,所以输出值也就代表了车轮转速。整个速度控制系统的作用是使智能车行驶在优化判决器所确定的最高稳定行驶速度上。图24中涉及两个主要的控制算法电机转速控制器所使用的控制算法和行驶速度优化判决器所使用的控制算法。1电机速度控制器所使用的控制算法。电机是一个常用的被控对像,基于电机转速控制的控制方法已相当成熟。对于智能车所使用的直流电机使用PID控制就能达到非常好的控制效果。毕竟电机速度控制器仅是智能车控制系统中的一个小的子系统,没有必要采用过于复杂的控制方法。所以,在本设计中,采用PID算法来实现电机速度控制器3。在实际实现时采用更加简单和易于整定的P算法也是一种可能的方案。方案选择电机速度控制器采用PID算法2行驶速度优化判决器所使用的控制算法。行驶速度优化判决器是本设计中最关键的部件。智能车设计的最终目标是车模具有很快的行驶速度和很高的行驶稳定性。从直观上来说,当车模在直线上行驶时,行驶速度应尽量提高,以减少行驶时间,提高竞赛成绩。车模从直线行驶进入到弯道行驶的过程通常被称为“入弯”。显而易见,入弯时的速度不能过快。如果入弯速度过快就会造成赛车冲出赛道。最终导致车模脱离导引线而失控。当入弯过程结束后又要适当提高速度,因为在弯道行驶中的速度应该适中,既不能像在直道行驶中这么快,又不能像入弯时那么慢。优化判决器的算法显然不可能采用上文中多次使用的PID算法。上述行驶速度优化判决器的特点决定了它要具备一定的“智能”。优化判决器就好像是一辆汽车的驾驶员,它控制着行驶速度使车辆能高速行驶且不致翻车。它的性能好坏是影响车模行驶性能关键所在。方案选择行驶速度优化判决器采用模糊控制算法。24本章小结经过上述讨论,结合实际设计中所采用的型号,总结出智能车系统各部分功能的硬件实现方案,如表21所示;在控制中的算法选择方案,如表22所示。在算法实现时,由于赛车控制系统的特殊性,我们对经典的控制算法还进行了一些改进。表21智能车系统各硬件模块实现方案功能模块方案选择采用型号单片机模块MC9S12DG128B开发板EVKC板电源模块三端稳压器LM2940、LM1117速度传感器模块霍尔传感器CS3020电机驱动模块H桥驱动集成电路MC33886DH方向传感器模块光电传感器TCRT5000表22智能车控制算法选择方案功能模块算法采用方案方向控制PID算法电机转速控制PID算法速度控制行使速度优化判决模糊控制算法第3章系统电路设计31单片机模块单片机模块使用组委会提供的MC9S12EVKC模块1。如图31所示图31EVKC实物图32电源管理模块电源是一个系统正常工作的基础,因此电源的设计至关重要。接受供电的部分包括传感器模块、微控制器模块、驱动电机模块、转向舵机模块。其中传感器模块和微控制器模块需要5V的直流电压供电6,驱动电机需要72V的直流供电,转向舵机可以使用48V或6V直流供电,考虑到舵机的反应速度和电压有关,为了使舵机的反应延迟最小,采用了6V供电的方案。电机在启动或突然变速时会对电源产生冲击造成电压的突然下降,因此各电机的供电要单独从电源处稳压。组委会提供的电源是72V、2AH的镍镉电池。电源模块的框图见图32。由于电源的供电电压72V与目标电压间的压差过小,因此不能使用常用的78XX系列芯片,而要使用低压差的稳压芯片。LM1117作为6V电压的稳压芯片8,LM1117芯片是一款压差输出800MA电流时压差只有12V的三端稳压器,输出规格有25V、30V、50V等规格。需要的电压是60V,可以使用一个电压变换电路使本来输出5V的稳压器件输出可调,这样就可以输出60V的电压8,电路图9见图33。图32电源模块框图VIN3ADJ1VOUT2U1LM117T6V72VC210UFC12100UFC110UFR1POT2图336V稳压电路132VVGNDINOUTU4LM294012J1INPUTC31UFC1322UFVCC72VS1ALL图345V稳压电路我们用LM2940作为5V电压的稳压芯片,LM2940是一款压差只有05V的三端稳压器,输出电流可以达到1A,完全可以满足赛车控制的需要。电路图见图34。33转向控制模块转向控制模块使用组委会提供的HS925型舵机1,可直接由单片机输出口控制,使用的电源为6V电源。舵机由伺服电机构成,其转动角度取决于控制端的输入脉冲。可转动范围为90到90。控制端应该为一周期在50HZ200HZ的方波,当方波的高电平时间为15MS时舵机指向0,当方波的高电平时间为1MS时舵机指向90,当方波的高电平时间为2MS时舵机指向90。由于受车身结构限制,实际的转动角度只能在4242之间。舵机被放置在车体的最前方,控制前轮的转向2。舵机的基本参数型号HS925尺寸394378278重量56G工作速度011SEC/60(48V)08SEC/60(60V)工作角度45度/400US舵机控制方法舵机三线连接方法黑线连地线,红线连电源线,蓝线连控制信号线。如图35所示。图35舵机的连线方法舵机的控制方法9如表31所示。表31舵机转角与控制信号的关系输入正脉冲宽度(周期为20MS)伺服马达输出臂位置05MSA10MS15MS20MS25MS试验发现理论的转弯方向和实际的有误差,因此对转向进行了软件上的调整。我们使用了3路PWM信号,PWM4和PWM5控制驱动电机,所以将PWM6,PWM7合成16位PWM控制信号控制舵机,信号由PWM7引脚引出。34车速传感模块341霍尔元件的工作原理1)霍尔器件是一种磁传感器。用它们可以检测磁场及其变化,可在各种与磁场有关的场合中使用。霍尔器件以霍尔效应为其工作基础。霍尔器件具有许多优点,它们的结构牢固,体积小,重量轻,寿命长,安装方便,功耗小,频率高(可达1MHZ),耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀。霍尔线性器件的精度高、线性度好;霍尔开关器件无触点、无磨损、输出波形清晰、无抖动、无回跳、位置重复精度高(可达M级)。取用了各种补偿和保护措施的霍尔器件的工作温度范围宽,可达55150。2)霍尔效应如图26所示,在一块通电的半导体薄片上,加上和片子表面垂直的磁场B,在薄片的横向两侧会出现一个电压,如图36中的VH,这种现象就是霍尔效应,是由科学家爱德文霍尔在1879年发现的。VH称为霍尔电压。图36霍尔效应和霍尔元件这种现象的产生,是因为通电半导体片中的载流子在磁场产生的洛仑兹力的作用下,分别向片子横向两侧偏转和积聚,因而形成一个电场,称作霍尔电场。霍尔电场产生的电场力和洛仑兹力相反,它阻碍载流子继续堆积,直到霍尔电场力和洛仑兹力相等。这时,片子两侧建立起一个稳定的电压,这就是霍尔电压。利用霍尔器件可以制作高灵敏度无抖动的接近开关,这也是我们速度传感器的基本原理。342霍尔元件相关电路设计车速传感器使用CS3020型的霍尔元件。霍尔元件使用非常方便,只需要一个上拉电阻将输出接到电源就可以正常工作。电路见图37。与小车的连接见图38。123CS3020R10KVCCPT4图37霍尔器件电路图在主动齿轮上粘两块磁铁,这样当轮胎转动一圈时主动轮会转动四圈。每转动一圈霍尔元件都会输出两个周期的方波,而小车会前进约4CM。通过测量方波的周期T,就可以计算小车的速度为V2CM/T。图38车速传感器连接图35路径识别模块路径识别模块使用多个红外光电收发方案,我们使用的是TCRT5000型集成红外收发管,它将发射管和接收管集成在一起,且具有聚焦作用,使干扰的作用减到最小2。TCRT5000的发射管和接受管之间有一定的夹角,从而使其对5CM的距离有非常高的灵敏度8。其外观及连接图8见图39。图39TCRT5000连接图TCRT5000的电路原理图见图310。图中R3的作用是限流,改变其大小可以间接改变接收管的灵敏度,这在后面调试时是很有必要的。R31KR210KU0VCCAN00图310TCRT5000电路原理图红外管和单片机的接口电路可以使用电压比较器,将接收管输出的电压与一个门限电平相比较,比门限电平高就认为黑线在该红外管处,比门限电平低则认为黑线不在该红外管处。也可以将输出直接连在单片机的输入管脚,输入管脚有默认的电平门限,由此判断黑线是否在红外管下方,这种方法会使稳定性有所下降。这两种方法都有共同的缺点判断位置离散化。在两个发光管之间不能判断黑线位置,从而造成这一位置有可能有不同的输出,影响控制效果。注意到MC9S12微控制器内部具有8路AD转换器,利用这点可以使路径判别连续化。竞赛要求的黑线宽度为25CM,经过测试发现当黑线在发光管不同位置时会使输出连续变化。因此使用AD转换器就可以判断当前的黑线位置。红外管布局见图311。图中T为传感器,中间黑色的是黑线,T3和T4均能感受到黑线,根据AD转换器得到的红外管的输出经过一定的算法就可以判断黑线的位置。图311位置传感器工作原理图在后续制作中有对传感器模块作了改进,中间的8路依然是连续值处理,在两侧又分别加了3路传感器,按二值进行处理,使用比较器将模拟量转化成数字量,比较器使用LM339集成低压差四比较器,电路原理图如图312所示。改进后的传感器模块如图313所示。542312LM339VCCR110KR210KAN09PA5图312比较器电路原理图图313改进后的传感器模块36电机驱动模块电机驱动模块使用MOTOLOLA公司的MC33886芯片2,该芯片说明书中的典型接法使电机可以正转,也可以反转。最开始的方案中考虑小车行驶过程用不到倒车功能,因此将两路输出合并成一路以加大驱动能力。电路图见图314。当/D2为低电平时不管输入为何种电平,电机将空转。当/D2为高电平时如果输入为高电平则电机将运行,如果为低电平则电机将制动。通过两路PWM信号的不同占空比就可以控制电机以不同速度行驶,或者制动。试验发现自由滑行状态和阻尼滑行状态的区别不是很大,因此在改进方案中取消了自由滑行状态,使用倒车作为减速手段,并取得了不错的效果。具体实现时将使能端直接使能,两路PWM分别控制IN1和IN2信号。C433NFC1447UFAGND1/FS2IN13V4V5OUT16OUT17PGND9PGND10PGND11PGND12/D213OUT214OUT215V16CCP17D118IN219S10AMC3388672V12J14MOTORPWM5PWM4图314MC33886电路原理图37总结智能车各个电路模块被制作成三块电路板光电传感器子板包括光电传感器、调节电位器和上拉电阻。速度传感器子板包括上拉电阻和霍尔元件控制主板(如图315所示)包括比较器电路、稳压电路、电机驱动电路,单片机模块通过欧式插槽和主控制板相连,其余子板通过排线和主控板相连。图315控制主板实物图第4章智能车机械设计智能车的机械设计主要体现在四个方面传感器模块位置调节机构,舵机控制转向机构,主控电路板安装机构,测速模块安装机构。41传感器模块位置调节结构为了调试的方便,我们设计的传感器模块和车主体的连接结构应该具有调节传感器模块高度和远近的功能。因此我们利用轻质铝材、螺钉和铜柱制作了可以完成如此功能的结构。我们在铝制金属条上打上一排距离均匀对称的小孔,这样就可以通过将传感器模块固定在不同的一对小孔上而实现调节其远近的目的。如图41所示。不断的测试后发现探测器伸出车体的距离越远,探测效果越好。具体的原因会再后面给出9。图41传感器模块调节结构顶视图在将传感器模块和铝条连接时使用了较长的螺丝,因此利用这两个螺丝钉和螺帽的配合,实现传感器模块上下调节的功能。试验发现,5MM左右的高度能达到比较好的探测效果。42舵机控制转向结构采用组委会提供的舵机及连接杆,将舵机固定在车体前方的空挡中,将连接杆分别固定到车的两个前轮的后侧,这样就通过舵机的转动,能够调节智能车的左转或者右转。如图42所示。图42舵机安装图43主控电路板安装结构因为本队采用的控制模块是体积比较小,重量轻的EVKC板,因此为了使整个车的结构更紧凑,外观更美观,主控板的形状设计为符合车体前端空间的形状。主控板放在车体的中部,利用车体底盘上本来的一个螺孔和两个条形孔,并另外钻一3MM孔,用四个铜柱将主控板固定在汽车底盘上。如图43所示。图43主控电路板安装结构图44测速模块安装速度传感器子板用502胶粘在电机上方的框架上,确保霍尔器件的正面正对磁铁。电机主轴每转一圈,被驱动轮转四分之一圈,前进长度为4CM,霍尔传感器就能向控制系统发送两次次脉冲,通过计数器和微控制器的增强型输入捕捉功能可以计算出此时智能车的速度。如图44所示。图44速度传感器模块实际安装图45最终车体效果最后的车体效果如图45所示。图45最终车体效果图第5章系统软件设计51软件功能概述控制系统中的软件应该完成系统初始化,控制过程的实现等功能,是一个控制系统的核心部分,软件设计的好坏直接影响到系统的性能。单片机系统需要接收路径识别电路的信号、车速传感器的信号,采用某种路径搜索算法进行寻线判断,进而控制转向伺服电机和直流驱动电机的工作。这些功能的实现都是通过软件实现的,单片机的软件功能框图9见图51。软件的实现是在CODEWARRIOR集成环境中实现的,因此一些用法取决于CODEWARRIOR所使用的编译器4。图51软件功能框图52系统初始化521单片机初始化单片机是一片超大规模集成电路,要让单片机工作,要供给电源、时钟,要有能和人沟通的接口。这些是构成单片机最小系统的基本辅助硬件4。让系统能工作,软件上要对系统进行初始化,系统初始化的过程就是建立单片机运行环境的过程,具体完成三件事初始化堆栈指针初始化堆栈是告诉CPU,单片机系统的堆栈空间从哪里开始,没有有效的堆栈指针,调用子程序的指令就无法正常工作6。这部分工作事实上不用我们完成,在CODEWARRIOR生成的系统工程中包含有一个STARTC文件,该文件完成了系统最基本的初始化,其中就包括堆栈初始化。堆栈的大小是在后面将介绍到的PRM文件中定义的。初始化时钟由于为了减少干扰,片外晶振的频率趋向于尽可能低,因此有必要对片外晶振进行超频得到系统时钟。同时FLASH的读写、串口通信都依靠时钟的设置。堆栈的初始化只能通过一句汇编指令实现,因此为了在C语言中初始化堆栈,应该使用如下宏定义5DEFINEINITIAL_STACK_POINTER_ASMLDS3FD7而时钟的初始化要通过对几个寄存器的读写来实现。具体实现框图见图52。其中REFDV,SYNR与外部晶振频率(OSCCLK)、锁相环时钟频率(PLLCLK)关系为4公式1SYNR1PLCK2OLEFDV图52中的判断作用是使锁相环稳定后选择锁相环时钟为系统时钟5。图52时钟初始化框图实际使用的外部晶振为16MHZ,因此选择SYNR为2,REFDV为1,就可以使时钟频率达到24MHZ,接近上限频率25MHZ。具体程序见附录源程序CLK_INIT子程序。中断初始化S12内部为了实现中断,在存贮器的高端放置有中断向量,具体的说是在FF8CFFFF的地址段内,共有58个中断向量。当中断发生时,相应的中断向量中的地址就被装入程序计数器,并把当时的寄存器状态压入堆栈。当中断返回时又将堆栈内容送给各寄存器,使主程序继续运行。CODEWARRIOR中的工程文件中有个专门用来定位各代码段位置的文件,后缀为PRM,文件中定义了代码段的位置、数据段的位置、中断程序的位置、中断向量的位置等。因此如果要使用中断向量,首先要在PRM文件中定义需要中断向量的位置。具体做法是在PRM文件的最后,添加类似如5VECTORADDRESS0XFFE6TIME4_ISR这样的声明语句。这个语句的作用是声明在存储器0XFFE6处存放的是TIME4_ISR函数的入口地址,也就是完成了中断向量的填写工作。这时应当在主函数中给该函数进行声明,声明的函数名必须和PRM文件中的函数名一致,和普通函数的声明有所不同,中断函数的声明需要对中断代码段进行定义。有两种方法函数前面加INTERRPUT关键字,这是隐式的定义。或者使用预编译关键字PRAGMA具体做法是用如下语句PRAGMACODE_SEGDEFAULT这种是显式的定义。两种做法的作用都是使函数语句定位在直接寻址的存储器段,使得中断调用时可以直接寻址到该程序入口。在函数定义时进行同样的声明后就可以进行函数定义了。在使用两个或两个以上中断时,需要在每个中断函数声明时在函数名之前加上该中断的编号,这个编号为系统头文件中定义的中断名称的序号。具体程序参见附录源程序的ISRH文件和ISRC文件。522定时器初始化程序中的中断我们只使用了定时器的输入捕捉中断功能和计数器溢出中断功能,因此这里先对S12的定时器功能做个简单介绍。S12的定时器功能非常强大,该定时器的核心是一个16位的可编程计数器,计数的频率可以通过分频来调整,可以用来测量输入的脉冲宽度或者产生脉冲波形。定时器具有如下特性5用于4通道输入捕捉的16位缓冲寄存器4个8位脉冲累加器或两个16位脉冲累加器带有4位预分频的16位模数递减计数器4个可选择的延迟计数器用以增强抗干扰能力对速度的测量应当对应对输入波形周期的测量,因此应该使用定时器的输入捕捉功能。输入捕捉功能是MOTOLOLA单片机定时器的一个基本功能。在输入捕捉模式下,相应的输入通道通过捕捉该管脚上电平变化发出锁存信号,将该时刻计数器的值锁存到捕捉锁存寄存器中,通过连续的测量,记录下每次锁存寄存器的值,就可以计算出脉冲的宽度或者周期。定时器的初始化只需要设置几个寄存器就可以,各寄存器的作用不再赘述,请参见附件中的源程序ECT_INIT子程序。定时器的预分频系数选择128,这时,由于总线时钟为24MHZ分频后为187500HZ,计数溢出的时间为65536/187500HZ035S,因此只要电机轴转过半圈的时间小于这个时间就可以在不使用定时器溢出中断的情况下测量转速。转换为速度为28CM/S,实际中这个速度是不能接受的,小车的速度必定大于这个速度。因此前面所述的测速方案完全可以使用。改进方案中采用了定时中断,这样在速度为07CM/S的速度下也不会溢出。因此程序共采用两个中断。523AD模块初始化MC9S12芯片有80PIN和112PIN两种封装10,在80PIN的封装中只引出了16路AD转换器中的8路,而这对于我们的使用已经足够。S12芯片的AD模块具有如下特点5可选的8位或10位分辨率左/右对齐和有/无符号数的结果数据外部触发器控制灵活的1到8转换序列长度控制多AD通道AD模块的初始化同样是设置几个寄存器。通过分析,需要使用连续转换、快速清零的转换模式。详细设置请参见附录源程序AD_INIT子程序。程序中详细介绍了各寄存器的功能和所使用的功能。524PWM模块初始化PWM(PULSEWIDTHMODULATE)即脉宽调制,脉宽调制是一种可以用程序来控制波形占空比、周期、相位的方法。它在电机驱动、D/A变换等场合具有广泛应用。MC9S12芯片的PWM模块具有如下特点58个可编程控制周期和占空比的PWM通道专用的PWM计数器软件选择脉冲极性周期和占控比的值双缓冲高电平边沿或中心对称方式8个8位通道,或是4个16位通道4个时钟源紧急关闭PWM信号要完成电机和舵机的控制。电机要求的极限频率为10KHZ,占空比要求从0100变化,舵机要求的频率为50HZ,占空比要求从510,为了使所有的控制在一个字节内可以完成,要仔细考虑分频系数的选择。对于电机控制,可以选择分频系数为2800,这样电机控制信号的频率就约是8571HZ,小于极限频率。PWM模块的初始化过程可以表示图54所示的流程图10。PWM信号禁止PWM信号对齐方式,极性的设定PWM信号使能PWM端口输出使能PWM计数器初始计数值设定PWM信号周期,占空比设定PWM信号时钟频率设定图54PWM初始化流程图对于舵机控制,可以选择分频系数为162,这样PWM计数器记213时的时间约为162213/24000000HZ144MS。通过调试舵机发现此时的舵机方向为正前方。且255对应的方向为极左,171对应的方向为极右。此时可以计算出20MS的周期对应的周期寄存器的值大概是2000,这个值超过了一个BYTE的存储容量,因此需要将两路PWM合并成一路。考虑到开发板的第六引脚未引出,因此将六七路PWM模块合并为一路就可以满足要求。具体程序参见附录源程序PWM_INIT子程序。53获取AD值程序由于初始化时将AD模块初始化为8通道序列转换,而且是快速清零模式,这样的模式工作流程是当序列转换完成时将把序列转换完成标志位置位(也就是ATD0STAT0寄存器的SCF位),当该序列的AD结果寄存器的值被读出则相应的标志位会自动清零,并开始新的转换,因此获取AD结果的过程可以简单的表示为标志位判断读值,这样执行一次就把8路结果寄存器中的值读到片内RAM内了。程序中将8路AD结果存放在一个一维数组中。具体程序参见附件源程序GETADVALUES子程序4。54位置计算程序541位置计算思路概述位置计算程序的主要功能是判断当前的引导线与小车的相对位置。传感器的连接方法使得当黑线在传感器正下方时传感器输出很低的电平,传感器下方是白色时传感器输出接近电源电压。通过前面的介绍可以知道使用模拟量确定黑线位置时,如果黑线在两个传感器之间,会使两个传感器的输出均不是电源电压,这时可以求出这两个传感器的输出值的差,把这个参数作为判断黑线更接近哪个传感器的标准,进行判断。当只有一个传感器输出低于电源电压时可以断定这时的黑线在这个传感器正下方。通过测试发现可以使每两个传感器之间有5个档位,这样就可以把横向距离的测量精度提高到5MM的数量级,这时作为舵机输出已经可以接近连续了,因此是可以满足需要的。具体算法参见附录源程序CALCUPOS子程序。542传感器位置分布对位置计算的影响光电传感器的排列方法、个数、彼此之间的间隔都与控制方法密切相关,在不受到外部因素影响的前提下,能够感知前方的距离越远,行驶效率越高。由于本系统采用的光电传感器是垂直于地面的,因此光电传感器电路板应该尽可能伸出去,距离车本体越远越好,可以提高行驶效率。图55是电寻迹方案。第一次制作时,我们的模型车采用了8对光电传感器。在光电寻迹方案中,为了得到质量较高的接收信号,一般还附加了由电阻、电容组成的RC高通滤波器。这样就能够一定程度上避免由外部光线因素引起的路线识别不正确问题图55电寻迹方案的传感器分布图第二次制作时,因为通过第一次的实地调试运行,发现8个传感器所能感应的宽度依然不能达到最理想的情况,因此第二次,我们使用了14路光电传感器。中间8路使用模拟量控制,目的是使赛车在偏出黑线很小位置时能够很平稳的运行。外侧每侧三路使用数字量控制,目的是扩充赛车的探测宽度。实物图如图56所示。图56第二次制作电寻迹方案的传感器分布图543位置计算在本系统中,无论是控制速度还是舵机的方向,智能车所处的位置都是最重要的一个参数。AD值的处理方式有两种每个传感器的感应范围如图57中的三角形区域,黑线的宽度为相邻传感器之间距离的二倍图57相邻传感器有一半范围的重叠优点使位置变量的连续程度更高。缺点整体感应范围较短,8路传感器的宽度只有10CM。传感器的感应范围如图58所示,黑线的宽度为相邻传感器之间的距离01234567图58相邻传感器没有重叠优点使感应宽度扩充了一倍。缺点位置的确定性下降,接近二值判断。考虑以上两种方法的优缺点,扩充8路传感器到14路,有效提高分辨率的前提下也使位置感应宽度得到扩展。连续值计算黑线位置的算法思想当黑线在传感器正下方时,AD值最小为MIN,当传感器正下方是白线时,AD值最大为MAX。将每一个光电管感应的范围分成N档。则如果ADI/COMMONDEFINESANDMACROS/INCLUDE/DERIVATIVEINFORMATION/PRAGMALINK_INFODERIVATIVE“MC9S12DG128B“INCLUDE“SYSH“INCLUDE“SUBRH“INCLUDE“ISRH“PRAGMACODE_SEGDEFAULTVOIDMAINVOIDENABLEINTERRUPTSSYS_INITFORGETADVALUESCALCUPOSCTRLRUDDERCTRLSPEEDSYSH文件IFNDEF_SYS_DEFINE_SYS_1DEFINEREFDV_VALUE1DEFINESYNR_VALUE2DEFINERUDDERDEFAULT213/直行时舵机值DEFINESTOPDEFAULT200/STOP默认值DEFINESPEEDDEFAULT200/SPEED默认值PRAGMACODE_SEGDEFAULTVOIDSYS_INITVOID/系统初始化VOIDCLK_INITVOID/时钟初始化VOIDECT_INITVOID/定时器初始化VOIDPWM_INITVOID/PWM模块初始化VOIDAD_INITVOID/A/D模块初始化ENDIF/_SYS_SYSC文件INCLUDE/COMMONDEFINESANDMACROS/INCLUDE/DERIVATIVEINFORMATION/INCLUDE“SYSH“/VARIABLESDEFINE/UNSIGNEDCHARAD9/AD结果值UNSIGNEDCHARRUDDER,SPEED,STOP,I,BUF/RUDDER为送舵机控制量值,SPEED为送速度控制量值,/STOP为送刹车控制量值,/I为循环变量,BUF为PB的缓冲值,COUNT为计时器溢出次数。CHARLASTPOSITION,POSITION,POSITIONBUF,POLA/LASTPOSITION为上个循环的位置值,/POSITION为位置值,POSITIONBUF为位置的暂存值,POLA为位置的极性UNSIGNEDINTTIME,COUNT,LASTTIME,THISTIME/TIME为小轮一圈的时间1表示00013653S一圈4CM/TIMESET为TIME的设定值,TIMEBUF为TIME的暂存值/SUBROUTINEDEFINE/PRAGMACODE_SEGDEFAULTVOIDSYS_INITRUDDERRUDDERDEFAULTSPEEDSPEEDDEFAULTSTOPSTOPDEFAULTPOLA1POSITION0POSITIONBUF0COUNT0LASTTIME0THISTIME0DDRA0X0DDRB0X0CLK_INITECT_INITPWM_INITAD_INITVOIDCLK_INITCLKSEL_PLLSEL0X0REFDVREFDV_VALUE/选择分频以及倍频系数SYNRSYNR_VALUEWHILECRGFLG_LOCK/等待锁定CL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 酱油食醋的个性化定制服务考核试卷
- 锂电池安全性与质量管理考核试卷
- 小儿溃疡性口腔炎护理
- 施工现场常用应急救援知识
- 冠心病病人的急救与护理
- 科室安全管理的实效策略
- 大类资产配置报告2025年6月份总第86期:平衡稳健配置资产防御外部风险冲击
- 2025年广播媒体融合传播中的媒体融合与绿色可持续发展报告
- 2025年废旧轮胎资源化利用项目市场拓展与技术创新路径研究报告
- 2025年天然植物精油护肤品牌市场占有率预测报告
- 2024衡水桃城区中小学教师招聘考试试题及答案
- 2025年版村规民约
- 文旅知识培训课件
- 2025年行政执法人员行政执法资格证考试必考题库及答案(共340题)
- 资源编排视角下立讯精密连续并购的价值创造研究
- 2023西宁中考物理试题(附参考答案)
- 北师大版历史七年级下册第2课《唐太宗与贞观之治》听课评课记录
- 2025年中考化学二轮复习热点题型训练:化学思维方法(原卷版)
- 电大《11872国际经济法》期末终考题库及答案
- 贵州贵安发展集团有限公司笔试
- DG∕TJ 08-53-2016 行道树栽植技术规程
评论
0/150
提交评论