版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八届全国大学生智能汽车邀请赛PAGE2PAGEIX第八届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告 学校:长春理工大学队伍名称:雷霆队参赛队员:韩邦强刘轩饶杨海带队教师:王頔冯涛第八届全国大学生智能汽车邀请赛关于技术报告和研究论文使用授权的说明 本人完全了解第八届“飞思卡尔”杯全国大学生智能汽车邀请赛有关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。参赛队员签名:带队教师签名:日期:目录TOC\o"1-3"\h\u引言 2第一章绪论 31.1智能车竞赛背景 31.2智能车比赛意义 31.3本文的主要内容及安排 4第二章设计原理 5第三章整体方案设计 63.1系统总体方案的选定 63.2设计构思 7第四章智能车硬件部分 104.1路径检测传感器设计 104.2速度检测传感器设计 114.2.1速度检测传感器选择与安装 114.3平衡传感器设计 144.4MCU控制模块 154.5驱动模块设计 174.6电源模块设计 18第五章智能车软件部分 205.1智能车控制系统总体方案 205.2整体程序流程图 205.3路径识别模块软件设计 215.4转向控制策略细述 225.5智能车电机控制算法 22第六章系统调试 256.1开发工具及系统调试 256.2在线调试 26第七章赛车主要技术参数 27第八章总结 28参考文献 29附录A部分源程序代码 30引言该智能寻迹小车以MK60N512MD100单片机最小系统为核心,辅以电源模块、传感器模块、电机控制模块、速度控制模块和运行调试模块。以往的光电小车通过光电对管传感器采集赛道信息,存在道路识别困难,提取的道路分辨率低,光电对管安装困难等诸多问题。现在使用的线阵CCD传感器,很好的解决了光电对管存在的问题。单片机通过线阵CCD采集赛道信息,经过图像处理后,通过转向控制策略与PID算法驱动电机速度,实现路径的检测与识别。同时通过调整小车的重心、使小车的稳定性与行进速度达到最优。系统属于以能量转换为主,由直流电机输入能量与电机,通过小车不同的运动输出能量,是典型的机电一体化系统。这份技术报告中,我们小组通过对整体方案、硬件电路、软件算法、机械结构、调试参数等方面进行介绍,详尽地阐述了我们的思想和创意,具体表现了我们在电路的创新设计,以及算法方面的独特想法。这份报告凝聚着我们的心血和智慧,是我们共同努力后的成果。关键词:智能汽车MK60N512MD100光电线阵CCD第一章绪论1.1智能车竞赛背景汽车作为现代的交通工具,为社会的发展和进步做出了很大的贡献。现阶段,汽车工业的发展水平和汽车的持有量已经成为衡量一个国家工业发达程度的标志。二十一世纪,汽车研究的主要方向是智能化汽车。专家们普遍认为,新一轮汽车产业竞争的焦点,将是基于信息技术、微电子技术、计算机技术、智能自动化技术、人工智能技术、网络技术、通信技术等的智能汽车的研究设计开发。大学生智能模型车竞赛是在飞思卡尔半导体公司资助下举办的以单片机为核心的大学生课外科技竞赛。大赛要求使用组委会统一提供的车模,采用飞思卡尔16位单片机MC9S12DG128作为核心控制单元,参赛队伍要制作一个能够自主识别路线的智能车,在专门设计的跑道上自动识别道路行驶,跑完整个赛道用时最短,而且技术报告评分较高的参赛队就是获胜者。2006年,我国举办了第一届智能车竞赛。首届比赛采用MC9S12DG128作为主控芯片,相比于MC9S12DP256有256K的程序存储空间,MC9S12DG128只有128K程序存储空间。赛车模型、舵机和驱动电机与韩国2005年汉阳大学比赛时几乎相同。首届智能车竞赛共有来自全国57所高校的112支参赛队参加。随着赛事的逐年开展,竞赛由原先前四届比赛分为摄像头组和光电组外,第五届比赛新增了电磁组,扩大创意组规模;赛道变窄,提高小车控制难度[1]。1.2智能车比赛意义全国智能车大赛也就是初步模拟了一个人驾驶汽车的思维和控制过程,智能车比赛就是要求参赛人员能够去进行这样的研究,专业知识涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科,以实现让车模能够自动寻迹并自动控制运动,最终实现小车智能化。该竞赛综合性很强,在提高参赛大学生的动手能力和创新能力的同时,也在一定程度上推动了智能汽车产业的发展与进步。1.3本文的主要内容及安排本文首先介绍了研究背景、比赛规则和设计构思。阐述了控制系统的资源配置、资源需求与分配和核心处理器的寄存器——MK60N512MD100单片机寄存器资源。相比于其它类型的单片机,32位的MK60N512MD100的功能更加强大,引脚较多,处理速度明显加快,能够很好地满足智能车控制系统的需要。本文的第一部分为引言。第二部分简要介绍光电平衡小车的设计原理。第三部分是介绍了整体方案的设计,简要介绍了针对特定路线的控制思想和策略。第四部分是智能车机械结构的调整,包括车体重心的调整、前轮定位的调整、齿轮传动机构的调整、后轮差速机构的调整。第五部分是智能车系统的硬件设计,包括路径检测传感器的选用、速度检测传感器的设计、MCU控制模块的设计、驱动模块的设计、电源模块的设计、显示模块的设计。第六部分分析了软件系统的设计,包括传感器采集、归一化和线性化拟合和整体路径识别策略分析及控制算法的介绍。第七部分是对系统调试的介绍。第八部分是总结。第二章设计原理本系统以K60为控制芯片,通过线阵CCDTSL1401采集赛道情况,将其转化为AD值,单片机采集CCD传感器AD数据,此数据为一幅图像的其中一行,通过多次采集就可得到完整的图像。由于赛道是黑白的,中间白色,两边两条黑线,对原数据进行一阶微分,得到赛道黑白的分界线,然后从左到有依次找到正最大值和负最大值,此最大值就为左边界和右边界,因此就很容易的得到赛道的中线。将中线作为参考,看赛车偏离中线位置的大小来控制电机,电机左右差速就可以达到控制方向的目的。然后平衡部分是通过采集加速度传感器和陀螺仪卡尔曼滤波得到的角度,找到车平衡时的零偏位置,检测小车偏离平衡位置的角度大小差量来控制电机向前走向后走,来达到平衡。控制速度的时候也是通过间接的控制角度倾角来达到控制的目的。第三章整体方案设计本章简要地介绍了智能车系统总体方案的选定和总体设计思路,在后面的章节中将整个系统分为机械结构、控制模块、控制算法三部分对智能车控制系统进行深入的介绍分析。3.1系统总体方案的选定智能小车的设计涉及了不同的领域,主要设计的领域有:机械电子、计算机以及光学。其中机械电子是智能小车的基础,光学是智能小车的关键,计算机是智能小车的核心。它们之间的关系如图2.1所示。图3.SEQ图2.\*ARABIC1智能小车不同领域关系结构图智能小车又可以分成四个结构,即感知系统、能源系统、控制系统、执行系统。图3.SEQ图2.\*ARABIC2智能小车结构图智能模型车的单片机通过传感器采集路面信息,通过算法控制电机运行,以达到寻迹的目的。系统属于以能量转换为主,输入能量和信息,输出不同形式能量的系统。其中由直流电机输入能量,输出的能量是小车的运动。3.2设计构思制作智能车,需要参赛队伍学习和应用嵌入式软件开发工具软件和在线开发手段,以飞思卡尔32位单片机MK60N512MD100作为核心控制单元,自行设计和制作可以自动识别路径的方案、电机的驱动电路、模型车的车速传感电路以及微控制器控制软件的编程等。系统结构简图见图2.2,图中箭头方向表示信号传递方向。陀螺仪加速传感器陀螺仪加速传感器光电编码器线阵CCD传感器陀螺仪直流电机PWM驱动线阵CCD传感器陀螺仪直流电机PWM驱动MK60N512MD100 电源管理模块电源管理模块可充放电源可充放电源图3.SEQ图2.\*ARABIC3系统结构简图3.2.1系统核心为单片机最小系统,是数据采集和输出控制的最重要的部分。单片机最小系统以MK60N512MD100单片机为核心,主要包括时钟、旁路电容、电源接口、烧录和调试接口、I/O接口等。通过丰富的I/O接口和内部强大的数据处理能力,实现信号采集和系统控制。3.2.2电源模块整个设计中,电源采用7.2V电压、2000mAh电池容量、Ni-cd镍镉蓄电池作为系统能源。电源模块是系统的能量来源,它分别向电机、传感器模块和单片机模块提供独立的电源,防止相互之间的电源干扰。3.2.3传感器模块包括平衡传感器、路径传感器、速度传感器。平衡传感器以加速传感器7361和陀螺仪ENC03组成,单片机通过对陀螺仪和加速传感器的值进行AD采集、融合,再把融合得到的角度反馈给电机,从而到达角度控制的目的。路径传感器采用线阵CCD,将CCD采集到的道路信息,通过图像处理算法提取出边界信息,通过相应的控制策略,控制小车的速度和方向,是小车能够沿着赛道的轨迹跑。速度检测传感器是电机闭环控制中的重要部分,在传感器选型上,充分考虑了传感器的精度、控制延时、体积和重量等方面。在满足系统要求的基础上,以简化结构为主要条件,选择合适的速度检测传感器,并设计了相应的硬件电路。3.2.4电机控制模块电机是模型车的动力源。直流电机驱动模块接收速度控制信号,驱动芯片采用由MOS管搭建的H桥作为驱动,利用速度控制策略,控制电机正反转,以控制智能车前进与后退。3.2.5速度测量模块速度测量模块包括无线串口模块、LED显示等,为模型车参数确定提供试验条件。速度检测模块通过光电编码器实时测量智能车车速,用于系统车速的闭环控制,以精确控制车速。3.2.6运行调试模块运行调试模块采用MDKKeil4软件集成运行环境作为开发工具对飞思卡尔的MK60N512MD100微控制器进行软件开发。并且通过MDK的在线调试工具,对传感器不同排布的特性进行详细的了解,并辅助制定控制策略。经过多次试跑可以得到小车运行参数,包括运行速率、传感器探测值、输出转向值、输出速度值等,然后将运行参数发送至电脑,在电脑上运用labview作图分析。第四章智能车硬件部分智能车系统主要分为以下几个部分:中央处理器单元、路经检测单元、速度检测单元、直流电机驱动单元、调试电路单元、电源单元等。4.1路径检测传感器设计路径检测传感器是针对于特种路线识别的传感器,工业上应用与自动导引小车(AutomaticGuidedVehicles)的定线寻迹。光电车要检测的赛道环境是由通过线阵CCD采集赛道的图像信息完成的。我们采用的线阵CCD是官方指定的TSL1401线阵CCD,关于线阵CCD的安装位置,我们做了一些实验:若CCD位置安装的比较高时,CCD的视野比较远,但是智能车的重心较高,智能车跑起来稳定性差,尤其在转弯处容易侧翻。若CCD安装位置较低时,虽然智能车稳定性明显提高了,但是CCD的视野太短,不利于后期智能车的提速。最终我们采取了折中的做饭,将CCD直接固定在智能车的顶端,智能车的稳定性明显提高,视野也满足我们目前的要求。图4.SEQ图4.\*ARABIC1CCD位置安装图图4.2整机的效果图4.2速度检测传感器设计在智能车竞速系统中,速度控制是至关重要的一个步骤,无论是直道加速还是弯道减速,都涉及到对电机速度的检测,而对电机转速的检测则有多种方法。4.2.1速度检测传感器选择与安装速度传感器常见的有以下三种方案:方案一:霍尔传感器。霍尔开关集成电路中的信号放大器将霍尔元件产生的幅值随磁场强度变化的霍尔电压经过信号变换器整形、放大后输出幅值相等、频率变化的方波信号。方案二:光电编码盘。在后轮齿轮传动上粘贴一个黑白相间的光码盘,通过固定在附近的反射式红外传感器读取光码盘转动的脉冲。方案三:测速发电机。输出电动势与转速成比例的微特电机。改变旋转方向时输出电动势的极性即相应改变。在被测机构与测速发电机同轴联接时,只要检测出输出电动势,就能获得被测机构的转速。通过比较以上三种,我们测速装置采用一个小型的光电编码器。电机转动时带动传动盘转动,测速装置就产生一系列脉冲,把这一系列的高低电平送到cd4520口,单片机的直接在规定时间内读取cd4520数据,可以计数出相应的速度值。编码器示波器输出波形如图5.4,安装方式如图4.5。图4.3编码器示波器输出波形图4.4编码器结构图4.2.2速度检测传感器电路设计测速传感器通过与主驱动电机的啮合得到当前电机的转速,然后通过内置的光电编码盘输出占空比可调的TTL电平。图4.5中的三端精密可调电阻用于控制输出信号中的占空比,在调出最满意的波形信号之后电路的输出端就能输出TTL电平,然后通过MCU的计数器直接计算累加的脉冲数量(单位时间内累计的脉冲数量与电机转速成正比)。图4.5速度检测传感器设计4.3平衡传感器设计4.3.1加速传感器4.3.2陀螺仪4.4MCU控制模块控制模块主体是单片机MK60N512MD100最小系统,主要包括时钟、旁路电容、电源接口、烧录和调试接口、I/O接口等。S12XS产品满足了用户对设计灵活性和平台兼容性的需求,并在一系列汽车平台上实现了硬件和软件可重用性。图4.6MK60N512MD100核心控制板实物图4.4.1MCU控制模块电路设计MCU最小系统包括其5V电源输入电路、时钟电路、复位电路、RS232电平转换电路、BDM调试电路等。MCU内部最高总线速度为40MHz本设计在最小系统的基础上,开发设计了外围电路,包括传感器采集电路、驱动电路、调试电路、电源电路、显示电路等。图4.73.3V电源无线模块图4.8BDM调试接口电路图4.9单片机最小系统板4.5驱动模块设计在往届比赛中,绝大多数队伍采用的方案是通过并联多片MC33886驱动芯片提高电机的驱动能力。但是由于设计电路的不合理性使得流过多片MC33886驱动芯片的电流不均匀,经常出现一片过流,而另外的没有满载的情况。我们采用由MOS管搭建而成的H桥电路来提高整体电路的驱动能力。通过单片机输出占空比可调的脉冲信号,控制MOSFET导通时间实现对电机转速的控制。这样电路的内阻很小,而且允许通过的电流很大,可以提供很强的驱动能力。图4.10电机驱动H桥电路图4.6电源模块设计充电电池7.2v2000m充电电池7.2v2000mAh电机驱动串联稳压器串联稳压器电机驱动串联稳压器串联稳压器单片机传感器后轮电机单片机传感器后轮电机图4.SEQ图4.\*ARABIC2电源分配图4.6.15V供电电源3.3V电压用来供给单片机、串口、传感器驱动等,因此采用LM2940的稳压芯片和ASM117-3.3芯片。图4.SEQ图4.\*ARABIC35V、3.3V数字、模拟供电电路第五章智能车软件部分高效稳定的软件程序是智能车平稳快速寻线的基础。本智能车采用工字电感线圈作为寻迹传感器,传感器数据处理就成为了整个软件系统的核心内容。在智能车的转向和速度控制方面,我们使用的是经典的PID控制算法,配合使用理论计算和实际参数补偿的方法,使在寻迹中智能车达到了稳定快速的效果。5.1智能车控制系统总体方案软件设计时控制系统的核心,在具有良好的硬件基础上,好的算法才能充分发挥作用,粗略思想则更进一步决定了比赛的成绩。算法上的灵活运用可以用来弥补硬件上的一些不足,所以硬件基础和策略算法是相辅相成的,最终目的是实现算法和硬件的相协调。智能车系统的控制算法及软件设计由以下几个部分组成:路径识别检测、速度检测、PWM电机控制算法、速度控制策略、转向控制策略等。道路检测由线阵CCD传感器完成。电机和测速部分使用了单片机的PWM模块、SPI模块和外部中断等。小车主程序框图如图5.2。主程序主程序PWM控制编码器脉冲采集CCD采集系统初始化 PWM控制编码器脉冲采集CCD采集系统初始化图5.SEQ图5.\*ARABIC1主程序框图控制策略的选择对智能小车的行驶性能也是至关重要的。速度固然越快越好,但也要使小车能够平稳完成比赛。譬如,直道入弯前速度需要减慢,以免冲出赛道;而从弯入直时则应让小车加速,在直道上能以较高速度完成。5.2整体程序流程图图5.SEQ图5.\*ARABIC2整体程序流程图5.3路径识别模块软件设计路径识别是智能小车的核心内容,是决定小车能否顺利完成比赛的关键部分。路径识别模块将智能车顶端的线阵CCD采集的图像进行二值化处理,但几乎所有的CCD模块都有一个缺陷,就是“余弦效应”,也就是128个像素中,中间的值偏大,两边的值偏小,即便照在一张白纸上也是这样,所以要把所采集回来的数据进行反余弦处理,然后再二值化。反余弦处理的步骤包括:把CCD对着一张白纸,然后把所采集的数据发给电脑,进行广义多项式曲线拟合,得到一个函数关系式,这个关系式的曲线特性只与CCD的硬件特性有关,那么之后每次采集一场数据就根据这个函数计算出模拟值,之后发现把CCD的数据处理后发出来就发现余弦效应小很多,近乎一条直线,这样就非常方便预值了。动态预值的步骤包括:采集跳变沿两端的值,取中值就行了。二值化处理后就需要提取两边的黑线。在把左右两边黑线的位置取均值,就是中线的位置了。5.4转向控制策略细述首先将CCD的图像二值化后,提取出两边的赛道后,模拟出中线,通过判断中线在赛道的偏移位置,控制智能车的转向。当中线在赛道中间是,判定前方为直线轨迹则控制电机转向正中,同时控制驱动电机加大速度;当中线在赛道右方时,判定前方为右弯轨迹,则控制电机差速向右偏转相应角度,同时根据车速检测单元检测的当前速度,控制电机使速度下降,以免小车冲出赛道;当中线位于赛道左方时做类似处理。以此根据做差后的数值可以判断车体与漆包线的位置关系,从而控制电机差速转向,修正车体位置。5.5智能车电机控制算法一般情况下小车的实际速度与期望速度之间会有一定的差异,而且该差异会随着路径曲率的变化而发生变换。为了使得小车能够以最快速度跟踪期望速度,调速过程中采用了PID控制。实际使用速度控制策略,构成闭环速度控制系统,利用PWM控制电机转速,使得小车能够在稳定运行的前提下尽可能提高响应速度,从而缩短调速过程。5.5.1PWM控制原理脉宽宽度调制(PWM)技术控制的原理就是通过直流斩波,利用大功率晶体管的开关特性来调制固定电压的直流电源。按照一个固定的频率来接通和断开,并根据需要改变的一个周期内的“接通”和“断开”时间的长短,通过改变直流电机电枢上的电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。5.5.2智能车速度控制策略速度控制及执行系统硬件部分由H桥电机驱动系统、电机、传动齿轮。系统的控制对象为模型汽车、系统执行器为电机、系统测量环节为速度检测。系统框图如下:图5.SEQ图5.\*ARABIC3闭环速度控制系统框图5.5.3PID控制算法比例积分微分控制是过程控制中应用最广泛的一种控制规律[5]。实际经验及理论分析充分证明这种控制规律用于多数被控对象能够获得较满意的控制成果。(1)比例(P)控制比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时,在比例控制器中系统输出存在稳态误差。控制器的输出信号Uo与输入信号ΔUi(即偏差)的大小成正比,即 (公式5.1)(2)积分(I)控制在积分控制器中,控制器的输出信号Uo与输入信号ΔUi对时间的积分成正比,即 (公式5.2)积分控制中,只要输入信号ΔUi存在,控制器的输出信号Uo就不断积累,系统的输出量逐渐趋向期望值,直至输入偏差信号ΔUi=0,系统进入稳态为止。无静差控制是积分控制的最大优点。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。因此,比例+积分的控制器,可以使系统在进入稳态后无稳态误差。(3)微分(D)控制微分控制器针对被调量的变化率进行调节,可以调节被调量的变化趋势,及时避免出现大的偏差。在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系,即: (公式5.3)这样,具有比例+微分的控制器,就能够提前抑制误差的控制作用等于零,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+积分微分控制器能改善系统在调节过程中的动态特性。 第六章系统调试6.1开发工具及系统调试系统的开发调试用到了MDKKeil4软件集成运行环境作为开发工具对飞思卡尔的MK60N512MD100微控制器进行软件开发,开发界面如图。图6.SEQ图6.\*ARABIC1MDKKeil4开发界面MDKKeil4的功能非常强大,可用于绝大部分单片机、嵌入式系统的开发。用户可在新建工程时将芯片的类库添加到集成环境开发环境中,工程文件一旦生成就是一个最小系统,用户无需再进行繁琐的初始化操作,就能直接在工程中添加所需的程序代码。利用BDM和MDKKeil4,用户可以进行一系列的调试工作,如监视寄存器状态、修改PC指针、设置断点等,这样能快速地帮助我们找到软件或硬件的问题。调试角度时还运用Labview对角度进行修正,更加直观。6.2在线调试通过MDKKeil4的在线调试工具,对传感器不同排布的特性进行详细的了解,并辅助制定控制策略。同时,通过按键调整模块进行策略的选择和调试的试验。在控制系统中,环境参数的确定很重要,故本设计采用环境变量采集策略,对于传感器采集的数据,在归一化时需要标准量进行转化,所以我们在比赛前对赛道进行一次参数矫正,手动调整模型车的位置,使其所有传感器采集环境变化量,作为归一化的标准。采集完之后调整拨码开关,进入比赛程序。这样就在最大程度上适应了环境的变化。第八届全国大学生智能汽车邀请赛第七章赛车主要技术参数改造后智能车的主要技术参数如表所示:项目参数路径检测方法(赛题组)光电组车模几何尺寸(长、宽、高)(毫米)400250280车模轮距(毫米)轮距135车模平均电流(匀速行驶)(毫安)700电路电容总量(微法)350.9传感器种类及个数线阵CCD加速传感器7361陀螺仪ENC03100码光电编码器2个赛道信息检测空间精度(毫米)20赛道信息检测频率(次/秒)200主要集成电路种类/数量MK60N512MD100最小系统板1块电源模块1块电机等驱动模块1块比较电路模块1块运算放大电路模块1块车模重量(带有电池)(千克)1.8第八章总结这份技术报告中,我们小组通过对整体方案、硬件电路、软件算法、机械结构、调试参数等方面进行介绍,详尽地阐述了我们的思想和创意,具体表现在电路的创新设计,以及算法方面的独特想法。这份报告凝聚着我们的心血和智慧,是我们共同努力后的成果。本文设计了基于光电检测技术的智能模型车。首先对设计方案进行分析,选择线阵CCD的处理方案。检测电路方面,我们选择了较为简单的运算放大电路。本文接着分别对模型车的设计构思和策略进行介绍。最后是测试方案和试验结果。模型车还有需要改进的地方,如算法上可以采用记忆算法,更进一步提高智能化,提高运行速度。在整个的设计和调试过程中,我们不断发现新问题,解决问题,争取做到最好,但很多地方还有待提高。在准备比赛的过程中,我们小组成员涉猎该竞赛涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科知识,这次磨练对我们的知识融合和实践动手能力的培养有极大的推动作用。在此要感谢清华大学将这项很有意义的科技竞赛引入中国;感谢清华大学给的平衡车方案;感谢飞思卡尔公司和主办方为我们提供了一个展示自我的舞台;我们的成果离不开学校的大力支持及指导老师悉心的教导;还要感谢的是和我们一起协作的队员们,协助、互促、共勉使我们能够走到今天。最后,向审阅此报告的各位专家教授表示深深的敬意。第八届全国大学生智能汽车邀请赛PAGE28参考文献[1]卓晴,黄开胜,邵贝贝.学做智能车:挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社,2007.3-5.[2]邵贝贝.单片机嵌入式应用的在线开发方法.清华大学出版社.2004[3]孙同景,陈桂友.Freescale9S12十六位单片机原理及嵌入式开发技术[M].北京:机械工业出版社,2008.8[4]徐士良.常用算法程序集:C语言描述.清华大学出版社.2004[5]张涛.李家启.基于参数自整定模糊PID控制器的设计与仿真.交通与计算机.2001年第19期[6]KwangSooChang.AUTOMATEDHIGHWAYSYSTEMEXPERIMENTSINTHEPATHPROGRAM.DepartmentofElectricalEngineeringandComputer,SciencesUniversityof[7]MK60N512MD100DeviceUserGuideV02.09.技术手册[8]温阳东,王祥好基于线阵CCD的智能小车路径识别系统.2009年09期附录A程序源代码Ⅰ附录A部分源程序代码/*Includes*/ #include"includes.h"/*Privatetypedef*//*Privatedefine*//*Privatemacro*//*Privatevariables*//*Publicvariables*//*Privatefunctionprototypes*/voidSystem_Init(void); /*系统初始化函数声明*/ externvoidDelay_us(unsignedinttime); voidIO_Port_Init(void);/*打开io口*//*Publicfunctionprototypes*//*Privatefunctions*//********************************************************************************FunctionName:main*Description:Mainprogram*Input:None*Output:None*Return:None*Attention :None*******************************************************************************/uint8_tflag;intmain(void){ staticspeed_count=0; /*系统初始化*/ System_Init(); IO_Port_Init(); Delay_ms(3000); printf("请发送数据:\r\n"); GPIO_ResetBit(PTA,17); Delay_ms(3000); GPIO_SetBit(PTA,17);/**/ FTM0_PWM_Open(0,5000);FTM0_PWM_Open(1,5000); FTM0_PWM_Open(2,5000); FTM0_PWM_Open(3,5000); USART_send_data(gyo_static); USART_send_data(dir_static); USART_SendOneData('\r'); USART_SendOneData('\n');PIT_Init(PIT0,50,1); while(1) { flag=1;//pit中断标志位 //USART_SendOneData(USART_ReceiveOneData()); //printf("waiting"); AD_calculate(); /**/ speed_count++; if(speed_count>=5) { SPEED_calculate(); speed_count=0; } else { SPEED_control(); Delay_us(6); } PWM_calculate(); /* if((speed_r<0)||(speed_l<0)) { GPIO_SetBit(PTC,5); } else { GPIO_ResetBit(PTC,5); } */ //GPIO_ReversalBit(PTA,17); //Delay_us(1); //USART_sdata(speed_v); //USART_send_data(speed_r); //USART_SendOneData('\r'); //USART_SendOneData('\n'); //printf("zhuanhuanok!"); while(flag);}} #include"includes.h"#defineACC_RATIO1//角度比例#defineGYO_RATIO0.00386//角速度比例#defineUPDATE_RATIO0.00156//修正比例大小#defineT1//积分周期dt=T*t(t为程序运行周期)#defineDIR_D8.0//16//0.1//1.2//1.8//1//6//4.1//4.8//2.9//3.0//#defineDIR_P40//52//40//89//90//31//34//控制比例方向60#defineDIR_PP27000//比例控制系数#defineDIR_I0//0.8//0.0013/**/float acc_value,gyo_value,acc_angle,gyo_speed,car_angle,car_angle_f; //平衡float left_value,right_value,dir_gyo_value;//方向采集值floatdir_sub,dir_add; //方向处理值floatdir_ratio;floatdir_value_p,dir_value_d,dir_value; //方向数据值floatgyo_static,dir_static;floatacc_temp,dir_gyo_temp,gyo_temp,left_temp,right_temp;voidAD_calculate(void){//chari;//junzhilongad_acc,ad_gyo,ad_left,ad_right,ad_gyo_dir;doublederta;//staticchardir_count; ad_acc=ADC_Get(ADC1,9);//PB11.65V为加速度计零点值,对应AD=ADC_SETad_gyo=ADC_Get(ADC1,14);//PB01.35V为加速度计零点值,对应AD=gyo_stastic ad_left=ADC_Get(ADC1,6);//PE2右qian ad_right=ADC_Get(ADC1,7);//PE3右houad_gyo_dir=ADC_Get(ADC1,8);//PB10陀螺仪转向 acc_value=low_tong(ad_acc,acc_temp,0.4); gyo_value=low_tong(ad_gyo,gyo_temp,1); dir_gyo_value=low_tong(ad_gyo_dir,dir_gyo_temp,0.5); left_value=low_tong(ad_left,left_temp,0.5); right_value=low_tong(ad_right,right_temp,0.5); acc_temp=acc_value; gyo_temp=gyo_value; dir_gyo_temp=dir_gyo_value; left_temp=left_value; right_temp=right_value;//角度计算acc_angle=ACC_RATIO*(acc_value-ACC_SET);//得到角度1920gyo_speed=-GYO_RATIO*(gyo_value-gyo_static);//得到角速度需根据方向判断正负derta=acc_angle-car_angle_f;//误差car_angle=car_angle_f+gyo_speed*T+UPDATE_RATIO*derta;//角速度积分car_angle_f=car_angle;//存前一个的值 /*****direction*****/left_value=left_value;//1400//16301395//定初值right_value=right_value;//1300//17401300dir_sub=left_value-right_value;//峰峰值dir_add=left_value+right_value;dir_ratio=dir_sub/dir_add;//p控制dir_value_p=DIR_PP*dir_ratio;//dir_value_p=DIR_P*dir_sub;dir_value_d=DIR_D*(dir_gyo_value-dir_static); dir_value=dir_value_p+dir_value_d;/* USART_SendOneData('1'); USART_SendOneData(':'); USART_send_data(car_angle); //USART_send_data(acc_value); USART_SendOneData('\t'); */ /**/ USART_send_data(car_angle); //USART_send_data(car_angle); USART_SendOneData('\r'); USART_SendOneData('\n'); } //#include"pwm_caculate.h" #include"includes.h"#definekp105//角度a的比例系数 FTM0_PWM_ChangeDuty(uint8_tchannel,uint32_tduty)#definekd56 //36 //角速度g的比例系数#defineDEATH_PRE249//246voidPWM_calculate(void){intpd_gain;//速度的运算longpwm; pd_gain=-0.1*(gyo_value-gyo_static)*kd;//除去噪声位pwm=kp*car_angle+pd_gain+speed_control;pwm=-pwm;//dir_value=0;/*限制转向pwm*/if(abs(pwm)>9590){if(pwm>0)pwm=9590;if(pwm<0)pwm=-9590;}/******保护设置******/if((car_angle>320)||(car_angle<-300)){FTM0_PWM_ChangeDuty(0,0);//占空比PC1FTM0_PWM_ChangeDuty(1,0); //PC2FTM0_PWM_ChangeDuty(2,0); //PC3FTM0_PWM_ChangeDuty(3,0); //PC4}else{/***正常程序****/if(pwm>0){/*****右轮******/if((DEATH_PRE+pwm+dir_value)<0){ //GPIO_SetBit(PTC,5);FTM0_PWM_ChangeDuty(0,0);//占空比FTM0_PWM_ChangeDuty(1,-(DEATH_PRE+pwm+dir_value));}else{ //GPIO_ResetBit(PTC,5);FTM0_PWM_ChangeDuty(0,DEATH_PRE+pwm+dir_value);//占空比FTM0_PWM_ChangeDuty(1,0);}/*****左轮******/if((DEATH_PRE+pwm-dir_value)<0){ //GPIO_SetBit(PTC,5);FTM0_PWM_ChangeDuty(2,0);FTM0_PWM_ChangeDuty(3,-(DEATH_PRE+pwm-dir_value));}else{ //GPIO_ResetBit(PTC,5);FTM0_PWM_ChangeDuty(2,DEATH_PRE+pwm-dir_value);FTM0_PWM_ChangeDuty(3,0);}}if(pwm<0){pwm=-pwm;/******右轮*****/if((DEATH_PRE+pwm-dir_value)<0){ //GPIO_SetBit(PTC,5);FTM0_PWM_ChangeDuty(0,-(DEATH_PRE+pwm-dir_value));//右轮后FTM0_PWM_ChangeDuty(1,0);//右轮+后}else{ //GPIO_ResetBit(PTC,5); FTM0_PWM_ChangeDuty(0,0);//FTM0_PWM_ChangeDuty(1,DEATH_PRE+pwm-dir_value);//右轮+前}/*****左轮******/if((DEATH_PRE+pwm+dir_value)<0){ //GPIO_SetBit(PTC,5); FTM0_PWM_ChangeDuty(2,-(DEATH_PRE+pwm+dir_value));FTM0_PWM_ChangeDuty(3,0);//左轮+后}else{ //GPIO_ResetBit(PTC,5);FTM0_PWM_ChangeDuty(2,0);FTM0_PWM_ChangeDuty(3,DEATH_PRE+pwm+dir_value);//左轮+前}}}} #include"includes.h"#defineSPEED_SET0//速度设定//20/(105*7.466)*0.17#defineSPEED_P80//72#defineSPEED_I0.149//0.0005//0.1#defineVEER_RATIO0.04floatspeed_control,speed_p,speed_i;floatspeed_derta_i,speed_derta_p;intspeed_l,speed_r;floatspeed
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 七年级生物下册 4.6.1 人体对外界环境的感知教学实录1 (新版)新人教版
- 辞职申请书集锦15篇
- 植树节演讲稿范文锦集8篇
- 全国人教版信息技术八年级下册第二单元第8课《创建操作按钮》教学实录
- 2024秋八年级英语上册 Unit 2 How often do you exercise Section A(1a-2d)教学实录 (新版)人教新目标版
- 我的心爱之物作文素材大全10篇
- 2024年度水电设施安装与调试合同屋3篇
- 本科毕业自我鉴定
- 二年级语文下册 课文5 17 要是你在野外迷了路教学实录 新人教版
- 江苏省兴化市高中地理 第二章 城市与城市化 2.2 不同等级城市的服务功能教学实录 新人教版必修2
- 医疗器械质量管理体系文件管理制度
- 解密市场营销(双语)智慧树知到期末考试答案2024年
- 高考真题 选择性必修3《逻辑与思维》-2024年高考政治一轮复习选择题+主观题(新教材新高考)(解析版)
- 监察法学智慧树知到期末考试答案2024年
- 百香果的栽培条件
- 2024版国开电大法学本科《商法》历年期末考试总题库
- 湖北省荆州市荆州八县市区2023-2024学年高一上学期1月期末联考物理试题(原卷版)
- 药店法律法规应用与合规培训
- 小程序商场方案
- 班组年终总结
- 小学科学人教鄂教版五年级下册全册教案2023春
评论
0/150
提交评论