大学毕业论文-—循迹小车智能预测控制方法研究.doc
《大学毕业论文-—循迹小车智能预测控制方法研究.doc》由会员分享,可在线阅读,更多相关《大学毕业论文-—循迹小车智能预测控制方法研究.doc(36页珍藏版)》请在咨信网上搜索。
题 目:循迹小车智能预测控制方法研究 姓 名: 学 号: 系 别: 物理与机电工程学院 专 业: 自动化 年级班级: 2010级1班 指导教师: 2014年5月18日 毕业论文(设计)作者声明 本人郑重声明:所呈交的毕业论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。 本人完全了解有关保障、使用毕业论文的规定,同意学校保留并向有关毕业论文管理机构送交论文的复印件和电子版。同意省级优秀毕业论文评选机构将本毕业论文通过影印、缩印、扫描等方式进行保存、摘编或汇编;同意本论文被编入有关数据库进行检索和查阅。 本毕业论文内容不涉及国家机密。 论文题目:循迹小车智能预测控制方法研究 作者单位:物理与机电工程学院 作者签名: 年 月 日 目 录 摘要 1 引言 2 1.绪论 2 2.方案设计与论证 2 2.1循迹模块 3 2.2控制模块 3 2.3时钟模块设计 5 2.4复位模块设计 6 2.5驱动模块 7 2.6反馈模块 7 2.7机械系统 8 2.8电源系统 8 3.硬件设计 9 3.1信号采集模块 9 3.2电源模块 10 3.3驱动模块 10 3.4总体设计 11 3.5预测控制算法 11 4.软件设计 11 4.1总体程序流程图 11 4.2总程序 13 4.3软件仿真 16 5.结论 17 参考文献 18 附录 18 附录1:循迹小车实物图 19 附录2:程序代码 20 致谢 31 循迹小车智能预测控制方法研究 摘 要:本设计主旨就现阶段已经实践的智能车基础上开发,原有的在运行中不太稳定,添加预测功能使其更加平稳快速。主要有四个模块,分别是控制模块、信息采集模块、驱动模块和反馈模块。信息采集模块用以对黑线路况检测。控制模块主要采用STC89C52单片机为控制芯片。电机驱动模块采用L298N专用电机驱动芯片,使整个系统有更好的稳定性。反馈模块主要由霍尔传感器与单片机和信息采集模块共同完成。信息采集模块将采集到的路况信息传入STC89S52单片机,当小车行驶速度有偏差或者在将要转弯时,霍尔传感器把即时速度反馈到单片机里,先由PID算法程序处理偏差,单片机根据处理结果再调整,传输信息,使舵机做出相应调整,更加平稳快速的转弯行驶,实现预测循迹功能。 关键词:PID;循迹智能小车;STC89C52单片机;L298N Research on the Control Method of Robot Intelligent Prediction Abstract: This design theme is already practice at the present stage of smart car based on the development, the original is not so stable in running, add the prediction function to make it more steady and rapid. There are mainly four modules, respectively is control module, information collection module, drive module and feedback module. Information acquisition module for the black line traffic detection. Control module mainly adopts STC89C52 microcontroller to control chip. Motor drive module adopts special motor L298N drive chip, make the whole system has better stability. Feedback module is mainly composed of hall sensor and single-chip computer and information acquisition module. Information acquisition module of traffic information collected into the STC89S52 microcontroller, when the small car speed deviation or in turn, the hall sensor in the instant speed feedback to the single chip microcomputer, first by the PID algorithm processing deviation, monolithic integrated circuit to adjust according to the results of the processing, transmission information, make the steering gear accordingly, more steady and rapid turning drive, realize forecast tracking function. 2 Key Words: PID; Algorithm Smart Car; STC89C52 Microcontroller; L298N 引言 目前,在企业生产技术不断提高、对自动化技术要求不断加深的环境下,智能车辆以及在智能车辆基础上开发出来的产品已成为自动化物流运输、柔性生产组织等系统的关键设备。世界上许多国家都在积极进行智能车辆的研究和开发设计。智能小车,是一个集环境感知、规划决策,自动行驶等功能于一体的综合系统,它集中地运用了计算机、传感、信息、通信、导航及白动控制等技术,是典型的高新技术综合体。国内外的许多大学及研究机构都在积极投入人力、财力研制开发针对特殊条件下的安全监测系统[1]。其中包括研究使用远程、无人的方法进行实现,如机器人、远程监等。无线传输的发展使得测量变得相对简单而且使得处理数据的速度变得很快甚至可以达到实时处理。 1. 绪论 21世纪循迹智能小车得到很快发展,在玩具智能车以及其相关应用领域都有了实质性的跨越。智能车大致具有避障、循迹、检测贴片、避崖、寻光入库等基础性能,这几届的电子设计竞赛智能循迹小车在声控系统方面有了进步。比较出名的飞思卡尔智能小车更是走在前列[2]。本设计具有预测功能,在原有出现偏差就调整的基础上,添加PID算法控制,在出现偏差时,先由PID算法处理偏差,再根据处理结果舵机进行相应的调整。用以避免小车在运行中出现误差和故障而不稳定,有一定的实用价值。通过这次设计,把自己所学习的理论知识与实践紧密结合在一起,从实践中加深对单片机的认识与理解,也从中找到理论的不足之处,具有一定意义。 2. 方案设计与论证 根据要求,方案确定在已经实践过的智能车基础上,加装光电检测器和霍尔传感器,达到对智能车的方位、运行速度、实时运动状态的测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。这种方案能实现对电动车的运动状态进行实时控制预测,灵活、可靠、稳定,可满足对系统的各项要求[3]。 2.1 循迹模块 小车循迹原理是小车在贴有黑胶带的地板上行驶,由于黑色和白色对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”——黑线。该模块采用比较普遍简单的红外探测器。 红外探测器,是将入射的红外辐射信号转变成电信号输出的器件。红外辐射是波长介于可见光与微波之间的电磁波,人眼察觉不到。要察觉这种辐射的存在并测量其强弱,必须把它转变成可以察觉和测量的其他物理量。一般说来,红外辐射照射物体所引起的任何效应,只要效果可以测量而且足够灵敏,均可用来度量红外辐射的强弱。现代红外探测器所利用的主要是红外热效应和光电效应。这些效应的输出大都是电量,或者可用适当的方法转变成电量。 在这里我采用TCRT5000型光对管[4]。(电路图如图1) 图1 红外对光管原理 2.2 控制模块 根据设计要求,,此设计属于多输入量的复杂程序控制问题。据此,拟定了两种方案,并进行了对比论证。如下:(一)采用PLC作为主控系统,PLC虽然性能稳定但是价格昂贵,为此,我们不采用该种方案,进而提出了第二种设想。(二)整体系统采用单片机来实现,对运行中的小车进行控制,依此达到特定的功能。对整体结构进行分析,最主要的还是小车的自动控制的实现,在这方面,单片机的优点就显现出来即快速、容易、易操作。如此,单片机可以发挥出其相应的很多优势,廉价、较强的控制能力以及寻址能力。所以,这是一种比较符合的方案[5]。 根据该设计需要具有多开关量输入的复杂程序控制系统,擅长对多开关量处理的标准单片机,因此不能用简单I/O接口和小体积的程序存储器单片机,D/A、A/D功能也没有必要选择。经过分析,我选定了STC89C52单片机(如图)作为本设计的主控装置,51系列单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余。 在综合考虑了传感器、两部电机的驱动等诸多因素后,我们决定采用一片单片机,充分利用STC89C52单片机的资源。 2.2.1 STC89C52简介 STC89C52单片机是利用CMOS工艺和高密度非易失性存储器制造而成,功能强、灵活性高、低电压、性能好、价格合理,封装如图,其内部结构如图2。 图2 STC89C52封装 STC89C52的主要特性 (1)8K字节程序存储空间 (2)512字节数据存储空间 (3)内带2K字节EEPROM存储空间 (4)可直接使用串口下载 (5)AT89S52单片机 (6)8K字节程序存储空间 (7)256字节数据存储空间 (8)自带2KB的EEPROM存储空间 STC89C52单片机属于51&52系列单片机,没有多大区别,只是内部多了一个EEPROM空间,可以串口下载程序,指令执行速度快一倍。结构框图如图3 时钟电路 中央处理器 CPU ROM RAM 定时/计算器 ROM 串行接口 中断系统 P P0 P1 P2 P3 TxD RxD INT0 INT1 图3 STC89C52结构框图 2.3 时钟模块设计 时钟信号作为单片机各种操作时间基准,通常有两种方式:内部振荡方式和外部振荡方式。由于内部振荡方式得到的信号比较稳定,所以选择内部振荡。 AT89C51单片机内部的振荡器由高增益反相放大器构成,输入端为XTAL1,输出端为XTAL2,在两端跨接石英晶体和电容C1、C2,就可以构成我们需要的稳定的自激振荡器了。振荡脉冲的频率范围为fOSC=0~24MHz,在本次设计中采用的是12MHz的晶振,所以振荡信号频率为12MHz,从XTAL2端输入到片内的时钟发生器上[6]。通常C1和C2取30pF左右,对频率起到稳定和微调作用。 2.4复位模块设计 复位操作使单片机系统各部件处于确定的初始状态,并从初始状态开始工作。常见的的有上电复位和按键复位,本系统采用上电复位。AT89C51单片机的复位信号从RST引脚输入,进入到片内的施密特触发器,复位信号高电平有效,有效时间持续24个振荡周期即两个机器周期。其工作原理是在加电瞬间电容通过充电来实现复位操作。电容常取C=30μF,电阻R=1000Ω。 蜂鸣器作为声音的输出设备,常见的有:有源蜂鸣器和无源蜂鸣器。有源蜂鸣器的内部有振荡电路,加电源后就可以发出声音,缺点是只能发出单一的音调。而电子琴需要发出不同的音调,无源蜂鸣器可以满足。本设计采用无源电磁式蜂鸣器。 无源蜂鸣器的理想信号是方波,交流信号在其内部产生磁通,交变的磁通通过与磁环恒定磁通的叠加,使钼片按照给定的方波信号频率振动并促使共振腔发声[6]。 音频驱动电路通常选用晶体管放大电路,本次设计中选用S8550晶体管,它是一种PNP型硅三极管。当S8550处在放大状态即发射结正偏,集电结反偏,三个电极IE(发射极电流)、IB(基极电流)、IC(集电极电流)在电流上满足: (1) 发射极电流受基极电流的控制,这种控制作用称为晶体管的电流放大作用[7]。 在电路中将PNP管的基级串上电阻后与单片机的P3.5口相连,发射极接蜂鸣器的负极,正极接电源,集电极接地,电路图如图9所示。P3.5口不断地输出频率不同的方波信号,交流信号经三极管放大后,通过蜂鸣器就可以发出不同的音调。其中三极管S8550参数如下: (1)集电极最大电流ICM=-1.5V。 (2)特征频率fT=100MHz。 (3)反向电压最高值VCEO=-2.5V。 (4)最大电流放大系数hFE=85~300[10]。 2.5 驱动模块 电机驱动模块拟用两种解决方案,分别如下: (1)采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。 (2)采用功率三极管作为功率放大器的输出控制直流电机。线性驱动应用是一种最为简单和最为直接的驱动应用方式,其电路简单、体积小巧,能满足一些特定的场合应用较多。采用由达林顿管组成的H型桥式电路(如图4)。采取由单片机控制达林管,让其在能够调节的占空比开关状态下运行。这种电路由于工作在管子的饱和截止模式下,拥有高效率的特性,H型桥式电路保证了简单的实现对转速和方向的控制功能, 图4 H桥式电路 实际使用的时候,用分立元件制作H桥是很麻烦的,好在现在市面上有很多封装好的H桥集成电路,接上电源、电机和控制信号就可以使用了,在额定的电压和电流内使用非常方便可靠。比如常用的L293D、L298N、TA7257P、SN754410等。现市面上有很多此种芯片,我选用了L298N[11]。 2.6 反馈模块 单片机程序中PID算法的应用和霍尔传感器测速的应用。PID控制已成为智能自动化控制的研究中最为活跃而又富有成果的领域[7]。从过去的传统与现代控制技术的应用发展历史来讲PID控制研究与应用已经得到十分迅速地发展。然而,在很多新兴的模糊控制技术方法不断涌现人们视野之后,人们更加清楚地认识到了模糊控制研究中所面临的众多理论问题己经成为模糊PID控制技术广泛研究应用的严重障碍。例如,PID控制技术还尚未在工业生产过程控制中得到如同日常家电产品一样的推广和应用,在这其中包含有如何解决“控制性能优于传统PID控制器的模糊控制器设计”问题。世界各先进国都曾先后做过对锅炉、炼钢炉、蒸汽机以及汽轮发电机组等PID控制的计算机研究和仿真,他们也进行了PID控制算法和经典的传递函数算法之间的计算机研究仿真比较。所有结果表明:PID控制比传统的经典控制要稳定,效果也更加良好。世界各国的优秀科技工作者采用电子计算技术和PID控制算法,对工业生产过程控制进行了大量的仿真研究和试验。并且成功的把仿真内容准确的应用于实际中去,研制出了非常多成功的PID控制应用开发系统[8]。本系统中,在小车出现偏差时由图像采集模块将信息传给单片机,不进行立即调整,由PID程序对偏差进行微分积分以及相应的比例算法进行处理,再根据处理结果对小车进行调整。霍尔传感器一般由霍尔元件和磁钢组成,当霍尔元件和磁钢相对运动时,就会产生脉冲信号,根据磁钢和脉冲数量就可以计算转速,进而求出车速。这样使小车具有前进和后退的检测功能,并用指示灯显示;记录小车的行驶时间,实时计算小车的行驶速度,根据路况,调整速度。出现偏差,及时反馈控制模块进行调整。 2.7 机械系统 本题目要求小车的机械系统稳定、快速、灵活、简单,因此采用前驱,后轮采用两个万向轮。小车上装有电池、电机、电子器件等,使得电机负担较重。为使小车能够顺利启动,且运动平稳,在直流电机和轮车轴之间加装了三级减速齿轮。 2.8 电源系统 采用4节普通1.5V干电池单电源供电,但6V的电压太小,不同时给单片机与与电机供电。电机在运行过程中产生的反向电动势可能会影响单片机的正常工作。所以决定独立供电,即单片机控制系统和光对管与电机分开供电。由于单片机为低功元件而可采用普通1.5v电池(共4节)供电,电机为大功耗器件因而单独采用(900mAh)供电。 3.硬件设计 硬件总体设计如图5: 反馈模块 按键与显示 驱动电机 转向舵机 图像采集模块 单片机STC89C52 图5 总体结构图 本系统是基于Freescsle公司的16位单片机的智能车控制系统,综合了传感器技术、自动控制技术。中央处理器采用STC89C52,控制所有的外围设备及传感器系统协调运行。 3.1 信号采集模块 为了防止因传感器太少引起的误动作,因而在车体前段安装了5个红外光对管(如图6),有效的减小了误动作的发生,减小了小车冲出跑道的几率。 图6 5路光对管 3.2 电源模块 本模块主要是对采集信号进行分析,同时控制电机起停、正反转。,该模块包括电源模块,串口电平转换模块,以及I/O口扩展模块。电源模块为系统提供稳定的电源,串口电平转换模块可以将电脑与单片机串口相连从而实现程序的下载以及串口打印debug调试功能。I/O扩展排针将单片机的管脚引出,可以实现灵活的扩展功能。 3.3 驱动模块 本模块主要是对单片机传送过来的高低电平信号进行处理,控制电机起停、正反转。原理图如图7: 图7 驱动模块原理图 3.4 总体设计 智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,后轮是万向轮,起支撑的作用。将循迹光对管分别装在车体下的左右。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。由于系统采用模块化结构,各个模块之间采用杜邦线连接。 3.5 预测控制算法 PID控制已成为智能自动化控制的研究中最为活跃而又富有成果的领域,从过去的传统与现代控制技术的应用发展历史来讲PID控制研究与应用已经得到十分迅速地发展。 该小车采用PID算法镶嵌到智能小车单片机程序中。用红外光来采集道路图像。 通过红外光的场信号与行信号传送给单片机的ETC模块,利用中断控制图像采集,并将采集的8位数据通过数据接口传给单片机[4]。 PID控制设计:模糊逻辑整定控制器的表达式为 (2) 其中,为校正速度量,其值随校正次数增加而减小。为了简单可以将它们均设成常数。 (3) 注意,这里求和式子不是全部的PID控制器积分项,正常的应该和采样周期T相乘,为简单起见,将变量中,上式同样对进行处理。这样可以推导出状态方程为: (4) 这时,式中的控制量可以改写成 (5) 4.软件设计 4.1 总体程序流程图 如图8: 开始 光电开关扫描 右转 前进 左边扫描 右边扫描 左转 前面障碍物或偏差 霍尔传感器测速或PID算法处理 调整后执行循迹子程序 到达终点 系统初始化 N N N Y Y Y 前边扫描 图8 程序流程图 4.2总程序 PID控制算法程序: #include<reg52.h> #include<intrins.h> typedefunsignedcharuint8; typedefunsignedintuint16; typedefunsignedlongintuint32; /**********函数声明************/ voidPIDOutput(); voidPIDOperation(); /*****************************/ typedefstructPIDValue { uint32Ek_Uint32[3];//差值保存,给定和反馈的差值 uint8EkFlag_Uint8[3];//符号,1则对应的为负数,0为对应的为正数 uint8KP_Uint8; uint8KI_Uint8; uint8KD_Uint8; uint16Uk_Uint16;//上一时刻的控制电压 uint16RK_Uint16;//设定值 uint16CK_Uint16;//实际值 }PIDValueStr; PIDValueStrPID; uint8out;//加热输出 uint8count;//输出时间单位计数器 /********************************* PID=Uk+KP*[E(k)-E(k-1)]+KI*E(k)+KD*[E(k)-2E(k-1)+E(k-2)];(增量型PID算式) 函数入口:RK(设定值),CK(实际值),KP,KI,KD 函数出口:U(K) //PID运算函数 ********************************/ voidPIDOperation(void) { uint32Temp[3];//中间临时变量 uint32PostSum;//正数和 uint32NegSum;//负数和 Temp[0]=0; Temp[1]=0; Temp[2]=0; PostSum=0; NegSum=0; if(PID.RK_Uint16>PID.RK_Uint16)//设定值大于实际值否? { if(PID.RK_Uint16-PID.RK_Uint16>10)//偏差大于10否? { PID.Uk_Uint16=100;}//偏差大于10为上限幅值输出(全速加热) else { Temp[0]=PID.RK_Uint16-PID.CK_Uint16;//偏差<=10,计算E(k) PID.EkFlag_Uint8[1]=0;//E(k)为正数 //数值移位 PID.Ek_Uint32[2]=PID.Ek_Uint32[1]; PID.Ek_Uint32[1]=PID.Ek_Uint32[0]; PID.Ek_Uint32[0]=Temp[0]; /****************************************/ if(PID.Ek_Uint32[0]>PID.Ek_Uint32[1])//E(k)>E(k-1)否? { Temp[0]=PID.Ek_Uint32[0]-PID.Ek_Uint32[1];//E(k)>E(k-1) PID.EkFlag_Uint8[0]=0;}//E(k)-E(k-1)为正数 else { Temp[0]=PID.Ek_Uint32[0]-PID.Ek_Uint32[1];//E(k)<E(k-1) PID.EkFlag_Uint8[0]=1;}//E(k)-E(k-1)为负数 /****************************************/ Temp[2]=PID.Ek_Uint32[1]*2;//2E(k-1) if((PID.Ek_Uint32[0]+PID.Ek_Uint32[2])>Temp[2])//E(k-2)+E(k)>2E(k-1)否? { Temp[2]=(PID.Ek_Uint32[0]+PID.Ek_Uint32[2])-Temp[2];//E(k-2)+E(k)>2E(k-1) PID.EkFlag_Uint8[2]=0;}//E(k-2)+E(k)-2E(k-1)为正数 else { Temp[2]=Temp[2]-(PID.Ek_Uint32[0]+PID.Ek_Uint32[2]);//E(k-2)+E(k)<2E(k-1) PID.EkFlag_Uint8[2]=1;}//E(k-2)+E(k)-2E(k-1)为负数 Temp[0]=(uint32)PID.KP_Uint8*Temp[0];//KP*[E(k)-E(k-1)] Temp[1]=(uint32)PID.KI_Uint8*PID.Ek_Uint32[0];//KI*E(k) Temp[2]=(uint32)PID.KD_Uint8*Temp[2];//KD*[E(k-2)+E(k)-2E(k-1)] /*以下部分代码是讲所有的正数项叠加,负数项叠加*/ /**********KP*[E(k)-E(k-1)]**********/ if(PID.EkFlag_Uint8[0]==0) PostSum+=Temp[0];//正数和 else NegSum+=Temp[0];//负数和 /*********KI*E(k)****************/ if(PID.EkFlag_Uint8[1]==0) PostSum+=Temp[1];//正数和 else ;//空操作,E(K)>0 /****KD*[E(k-2)+E(k)-2E(k-1)]****/ if(PID.EkFlag_Uint8[2]==0) PostSum+=Temp[2];//正数和 else NegSum+=Temp[2];//负数和 /***************U(K)***************/ PostSum+=(uint32)PID.Uk_Uint16; if(PostSum>NegSum)//是否控制量为正数 {Temp[0]=PostSum-NegSum; if(Temp[0]<100)//小于上限幅值则为计算值输出 PID.Uk_Uint16=(uint16)Temp[0]; PID.Uk_Uint16=(uint16)Temp[0]; else PID.Uk_Uint16=100;//否则为上限幅值输出 } else//控制量输出为负数P,则输出0(下限幅值输出) PID.Uk_Uint16=0; } } else {PID.Uk_Uint16=0;} } /********************************* 函数入口:U(K) 函数出口:out(加热输出) //PID运算植输出函数 4.3 软件仿真 4.3.1原理图 如图9: 图9 仿真原理图 5.结论 根据仿真图和实际所购买的元器件清单进行安装。通过改变循迹板滑动变阻器大小来调试红外对光管的灵敏度,通过改变延时程序来改变速度的大小。经调试实践,小车运行良好。 本毕业论文已经出现在市面上的智能车的基础上,采用PID算法以及模糊控制对智能小车进行预测控制,加装光电检测器,能够对智能车的运行状况、运行速度进行实时测量,同时把扫描出的信息送到单片机里进行分析处理,再由单片机里PID算法进行相应的比例、积分、微分处理,根据处理结果对小车进行智能控制,达到让小车在轨道上运行时出现偏差或者遇到转弯处提前做到预测控制,可以使智能小车平稳快速的沿着轨道转弯,避免冲出轨道、在原地打滑等不稳定因素。 针对循迹小车进行智能预测控制功能的设计与开发,本论文主要研究了以下几方面内容: (1)单片机最小系统研究; (2)智能预测控制程序设计; (3)循迹小车智能预测控制功能的设计与开发。 根据实践结果,加有预测功能的智能小车,在循迹避障等环节存在一定的优势。抛开了以前小车循迹遇到障碍时直接调整小车偏差,中间加一个PID算法,使其出现偏差时先由PID对其处理分析,再做调整,如此,小车在运行过程中更加平稳快速。 参考文献 [1] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:清华大学出社,2005. [2] 何利民.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:北京航空航天大学出版社,2003. [3] 诸静等.智能预测控制及其应用[M].上海:浙江大学出版社,2002. [4] 黄湘云,朱学峰.预测控制的研究现状及展望[J].石油化工自动化,2005,(2): 27-31. [5] 席裕庚,耿晓军,陈虹.预测控制性能研究的新进展[J].控制理论与应用,2000,17(4): 469-475. [6] 李军.51系列单片机高级实例开发指南[M].北京:北京航空航天大学出版社,2004. [7] 王琰,郭燕.基于C51单片机的智能循迹小车设计与实现[J].南京化工学院自动控制系,2013,8(14): 20-13. [8] 彭仁明.智能小车控制系统的设计[M].绵阳师范学院,2009,11. [9] 李伟龙.智能循迹小车设计[M].西北民族大学,2013,8(2): 29-15. [10] 刘金琨.先进PID控制MATLAB仿真[M].北京:电子工业出版社,2004. [11] 王伟.广义预测控制理论及其应用[M].科学出版社,1998. 附 录 附录1:循迹小车实物图 附录2:程序代码 #include<REGX52.H>//包含51单片机相关的头文件 sbitLeftLed=P2^0;//定义前方左侧指示灯端口 sbitRightLed=P0^7;//定义前方右侧指示灯端口 sbitFontLled=P1^0; sbitLeftIR=P3^5;//定义前方左侧红外探头端口 sbitRightIR=P3^6;//定义前方右侧红外探头端口 sbitFontIR=P3^7;//定义前方正前方红外探头端口 sbitM1A=P0^0;//定义左侧电机驱动A端 sbitM1B=P0^1;//定义左侧电机驱动B端 sbitM2A=P0^2;//定义右侧电机驱动A端 sbitM2B=P0^3;//定义右侧电机驱动B端 sbitB1=P0^4;//定义语音识识别传感器端口 sbitSB1=P0^6;//定义蜂鸣器端口 voidtingzhi() { M1A=0;//将M1电机A端初始化为0 M1B=0;//将M1电机B端初始化为0 M2A=0;//将M2电机A端初始化为0 M2B=0; } voidqianjin() { M1A=1; M1B=0; M2A=1; M2B=0; } voidhoutui() { M1A=0; M1B=1; M2A=0; M2B=1; } voidzuozhuan() { M1A=0; M1B=1; M2A=1; M2B=0; } voidyouzhuan() { M1A=1; M1B=0; M2A=0; M2B=1; } voiddelay_nus(unsignedinti)//延时:i>=12,i的最小延时单12us { i=i/10; while(--i); } voiddelay_nms(unsignedintn)//延时nms { n=n+1; while(--n) delay_nus(900);//延时1ms,同时进行补偿 } voidControlCar(unsignedcharConType)//定义电机控制子程序 { tingzhi(); switch(ConType)//判断用户设定电机形式 { case1://前进//判断用户是否选择形式1 { qianjin(); break; } case2://后退//判断用户是否选择形式2 { houtui();//M2电机反转 break; } case3://左转//判断用户是否选择形式3 { zuozhuan();//M2电机正转 break; } case4://右转//判断用户是否选择形式4 { youzhuan();//M1电机正转 //M2电机反转 break; } case8://停止//判断用户是否选择形式8 { tingzhi(); break;//退出当前选择 } } } voidmain()//主程序入口 { bitRunFlag=0;//定义小车运行标志位 //RunShow=0;//初始化显示状态 ControlCar(8);//初始化小车运行状态 while(1)//程序主循环 { Start: LeftLed=LeftIR;//前方左侧指示灯指示出前方左侧红外探头状态 RightLed=RightIR;//前方右侧指示灯指示出前方右侧红外探头状态 FontLled=FontIR; SB1=FontIR; if(FontIR==0)//三个红外检测到黑线,就前进 { ControlCar(2);//左侧没有信号时,开始向右转一定的角度 delay_nms(2000); ControlCar(3); delay_nms(1500); gotoNextRun; } if(FontIR==1) { ControlCar(1);//右侧没有信号时,开始向左转一定的角度 delay_nms(10); gotoNextRun; } gotoStart; NextRun: ControlCar(1); 红外遥控程序: #include<reg52.h>//包含51单片机相关的头文件 #defineuintunsignedint//重定义无符号整数类型 #defineucharunsignedchar//重定义无符号字符类型 ucharcodeLedShowData[]={0x03,0x9F,0x25,0x0D,0x99,//定义数码管显示数据 0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9 ucharcodeRecvData[]={0x19,0x46,0x15,0x44,0x43,0x40,0x0D,0x0E,0x00,0x0F}; ucharIRCOM[7]; staticunsignedintLedFlash;//定义闪动频率计数变量 unsignedcharRunFlag=0;//定义运行标志位 bitEnableLight=0;//定义指示灯使能位 /***********完成基本数据变量定义**************/ sbitS1State=P1^0;//定义S1状态标志位 sbitS2State=P1^1;//定义S2状态标志位 sbitB1State=P1^2;//定义B1状态标志位 sbitIRState- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学毕业 论文 小车 智能 预测 控制 方法 研究
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【可****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【可****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文