工程训练论文-基于智能控制算法的智能小车系统设设计.doc

上传人:来看看 文档编号:3266888 上传时间:2019-08-07 格式:DOC 页数:21 大小:686.52KB
返回 下载 相关 举报
工程训练论文-基于智能控制算法的智能小车系统设设计.doc_第1页
第1页 / 共21页
工程训练论文-基于智能控制算法的智能小车系统设设计.doc_第2页
第2页 / 共21页
工程训练论文-基于智能控制算法的智能小车系统设设计.doc_第3页
第3页 / 共21页
工程训练论文-基于智能控制算法的智能小车系统设设计.doc_第4页
第4页 / 共21页
工程训练论文-基于智能控制算法的智能小车系统设设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《工程训练论文-基于智能控制算法的智能小车系统设设计.doc》由会员分享,可在线阅读,更多相关《工程训练论文-基于智能控制算法的智能小车系统设设计.doc(21页珍藏版)》请在三一文库上搜索。

1、工程训练论文题目:移动小车运动控制系统班级:自动化0706姓名:学号:指导老师:日期:2010-9-10摘要本移动小车运动控制系统是以MC9S12DB128B微控制器为核心,通过红外对管检测模型车的运动位置和运动方向,光电编码器检测模型车的速度,PID控制算法调节驱动电机的转速和舵机的方向,完成对模型车运动速度和运动方向的闭环控制。实验结果表明,系统设计方案可行。第一章 概论本次工程训练的目的是运用所学微控制器、智能仪器和现代测控系统等方面的知识,设计出一台以单片机为核心的智能仪器,完成信息的采集、处理、输出及人机接口电路等部分的软、硬件设计。本选题为移动小车运动控制系统,设计以 “飞思卡尔”

2、的MC9S12DB128B微控制器为核心的智能汽车。MC9S12DB128B主要特性包括:l 16位HCS12CPUl 内部存储器: 128KB Flash; 8KB RAM; 2KB EEprom.l 外围设备: 2个增强型串口通信接口(SCI); 2个MSCAN模块; I2C总线接口; 2个8通道10位A/D; 8通道16位增强型捕捉定时器(ECT); 8通道8位或4位PWM。第二章 硬件设计智能汽车是一个比较复杂的系统,为了达到较好的性能要在多方面进行考虑。首先就是硬件设计方案,硬件是智能汽车控制系统的基础,硬件必须稳定可靠,抗干扰能力强,简单、合理而抗干扰能力较强的硬件电路对于电子系统

3、运行的稳定性、控制的精确度部有着直接的影响。其次就是软件设计其中包括控制算法的设计,要达到较高的速度控制算法的设计是重中之重,另外程序的稳定性也非常重要。再者就是机械方面的设计,随着智能汽车的速度越来越快,机械特性的重要性就显露出来了。一辆速度快性能好的智能汽车必定是在这三个方面有比较优秀的设计。由于本文作者主要研究智能控制算法在智能汽车上的应用,所以硬件设计方案和机械设计方案都采用比较常见设计方案,重点在探讨智能控制算法上面。2.1 智能汽车控制系统结构智能汽车车模是未来智能汽车的缩微模型,它能够在引导黑线的导引下自动前进。智能汽车循线方案很多采用CCD来实现,其优点是象素密集,前瞻距离远,

4、控制精度高,但是该方式信号采集和数据处理周期较长,且很容易受到外界光线的干扰而且成本较高。采用红外光电对管循线,虽然采集到的信号离散点数较少,但抗光线干扰能力强,响应时间短,成本低且能够实现满意的循线控制7。根据智能汽车竞赛要求,设计一辆以组委会提供车模为主体的可以自主寻线的模型车,根据比赛规则和要求,本智能汽车采用光电方案,用红外发射、接收模块作为路径检测传感器,飞卡尔公司16位微控制器MC9S12DB128B为系统控制核心,通过光电编码盘检测速度,由微控制器通过数据处理得出赛道信息并根据当前情况给出舵机转角和电机转速,使智能汽车能在赛道上快速平稳的行驶。系统由电源模块、控制模块、红外传感器

5、模块、测速模块、电机驱动模块、舵机模块、人机交互模块等组成。系统总体结构框图如图2.1。微控制器模块指示灯及拔码开关舵机电机路径检测速度检测PC机无线模块图2.1 智能汽车总体结构框图2.2 智能汽车硬件设计2.2.1 硬件设计总体方案硬件电路是智能汽车的基础,只有完成了稳定可靠科学的硬件电路,才能在这个基础上进行软件算法的设计,做出优秀的智能汽车。我们的智能汽车的硬件设计的原则是:尽量精减,采用简单可靠的电路,选用性能优秀而且性价比好的芯片,设计稳定可靠兼容性好的电路板。主控板实物图如图2.2所示。图2.2 主控板实物硬件电路主要由电源管理模块、控制模块、红外传感器模块、电机驱动模块、舵机驱

6、动、人机接口模块等组成。采用飞思卡尔的16位微控制器MC9S12DB128B作主控芯片,工作总线频率33MHZ。微控制器通过片内A/D获得红外传感器采集的赛道信息,经过处理后给出舵机转角和电机转速。通过人机接口可以方便的设置智能汽车运行的参数,并获得智能运行状况。电机驱动采用用MOSFET管搭成的内阻很小的H桥电路。下面将较详细的介绍各模块的电路设计。2.2.2 电源管理模块系统通过标准车模用7.2V 2000mAh Ni-CD蓄电池供电,实际充满电后电压则为8.28.5V。由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包含多个稳压电路,将充电电池电压转换成各个模

7、块所需要的电压。主要包括以下不同的电压:7.2V电压直接取自蓄电池两端电压,给主电机提供电源。3.3V电压给单片机内部AD提供参考电压。5V电压为单片机系统、信号检测电路以及其它电路提供电源,电压要求稳定、噪声小,电流容量小于1000mA。6V电压为舵机提供电源。除了7.2V电压可以直接由蓄电池获得,3.3V电压,5V电压和6V电压需要通过降压稳压电路获得。电源模块结构图如图2.3所示。电池7.2V-8.5V电机驱动6V 稳压5V 稳压3.3V 稳压电机舵机光电传感器发射感器A/D参考电压5V 稳压数字芯片图2.3 电源模块结构图电源作为整个系统的能量中心,它的稳定性是整个系统稳定的基础,由于

8、智能汽车采用7.2V 2000mAh Ni-CD蓄电池供电,实际充满电后电压则为8.28.5V,而系统中还需要5V、6V和3.3V等电压的电源,这些电压就要求我们通过电源管理芯片获得。我们常用的电源芯片如LM78XX系列,属于高压差线性稳压芯片,它们能获得较为精准的电压,纹波也较小,但其功率不大,而且稳压压差较高一般都要在2. 5V左右,由于压差高,电源转换效率也较低。最重要的是由于在实际运行过程中,由于智能汽车功率较大,电池供电电压往往只有7V左右,这时如果采用LM78XX系列的稳压芯片就不能达到要求了。为此我们决定选用价格稍贵的低压差线性稳压芯片LM2940-5.0作为5V电源芯片,它的最

9、低输入电压为6.0V,最大供电能力为800mA到1000mA,电压输出范围5.00.05V,电压噪声小于20mV。由于降压小,电源转换效率高其基本电路图如图2.3所示。5V 电源的供电对象分两部分:一为单片机及一些中小规模集成电路等,没有大的冲击电流电路;另一部分给红外传感器模块供电,这部分功率较大。但两部分各自采用独立的电源芯片,互不影响。图2.3 线性5v稳压电路系统中除了5V电源外还需要给A/D提供参考电压,由于一般专用的参考电压芯片价格较贵,而我们智能汽车系统中对A/D的要求不是特别高,我们就采用了,纹波较小的AMS1117-3.3V提供3.3V的电压作为单片机片内A/D的参考电压,在

10、实际运行中也发现效果比较好,其基本电路如图2.4所示。图2.4 A/D参考电源电路舵机作为智能汽车的转向执行机构,它的供电电压范围为4.6V到6V。但是经过测试发现,舵机在PWM波周期一定的情况下,电压越高转向速度越快。为了提高舵机的反应速度,我们采用6V供电,由于市场上6V的电源芯片比较少,而且性能不是很理想,我们采用可调的电源芯片TL1963来获得6V电源。TL1963为低压差稳压芯片,一般稳压压差仅需340mV,输出电流能达到1.5A。采用该芯片作为舵机电源芯片后,舵机的转向性能有了很大的改善,电路图如图2.5所示。图2.5 舵机供电电源电路2.2.3 路径检测传感器电路智能小车通常使用

11、编码器作为行进距离的传感装置,使用红外线、超声波、碰撞开关、可见光、激光或摄像头等作为导航定位的传感装置。在本文作者设计的智能汽车系统共采用15个红外接收管,分两排,前排采用8个,后排7个。因为我们在调试智能汽车时发现,采用两排的架设方式虽说在一定程度上降低了检测精度,但是可以使智能汽车很好的切内道,转向更加平滑。为了提高前瞻距离,前排每个接收管对应两个接收管,通过加大红外红外光强来提高探测距离。红外接收管输出连至单片机片内A/D,通过A/D转换将模拟量转换成对应的数字量给单片机处理,红外发射接收电路图如图2.6所示。由于红处接收管有着较好的线性度,我们决定采用曲线拟合的方法来确定黑线的位置,

12、所以前后排传感器均采用等间距的排布方式。由于后排同时用来识别起跑线等标志,传感器之间采用比较小的间距。图2.6红外发射接收电路红外传感器属光电传感器,分两部分,一部分为发射部分,一部分为接收。我们采用分离的红外发射接收管,前排红外传感器采用两个发射管对一个接收管,增大发射光强。发射部分由单片机控制用脉冲点亮,避免了由于长时间大流工作使发射管损坏、避免了相邻管之间的干扰、同时也降低了电能损耗。接收管接收到红外光后,会产生和光强相对应的电流,经过一个5K电阻后转换成电压,通过一个由10nF电容和47K电阻构成的RC滤波器后连接到单片机A/D输入口。由于单片机I/O口驱动能力有限,我们采用达林顿管驱

13、动发射管。前排传感器用来检测较远的黑线其发射管也采用较大功率的红外发射管,并用两个发射管,使其前瞻距离达到30CM以上。传感器排列采用等间距分布方式。2.2.4 电机驱动电路电机是整个智能汽车中能耗最大的地方,其最大电流能达到10A以上,为了提高智能汽车的加速和制动性能,一个性能优秀的驱动电路是必不可少。常用的电机驱动芯片MC33886使用简单方便、功能强大。但其不足在于最大电流只能达到5A,即使采用多片并联,其压降还是比较大,不利于智能汽车加速和制动性能的提升。我们采用由功率MOSFET管搭建H桥电路作为电机驱动,桥电路采用门电路控制,使得电机驱动使用更加方便、安全。由于门电路的控制,不会由

14、于程序控制错误的原因导致桥电路短路,而且由于门电路的延时,使得驱动不会因为MOSFET管关断延时导致短路,使MOSFET管发热严重。不同MOSFET管功率和内阻不一样,我们采用N沟道MOSFET管IRF3205和P沟道IRF4905构成桥电路,其电路图如图2.7所示。电机驱动电路的电源可以直接使用蓄电池两端电压。模型车在启动过程中往往会产生很大的冲击电流,会对其他电路造成电磁干扰,为了减小干扰,一方面我们在单片机和电机驱动中间采用光耦隔离,另一方面,我们在进行PCB设计时,将电机驱动单独分开设计,和主控板分开安装,并在电源两端加大电容。图2.7 H桥电路图 2.2.5 人机交互电路一个好的系统

15、,人机交互是必不可小,智能汽车在调试过程中要不断的修改参数,并且要随时观测智能汽车的运行状况。由于智能汽车本身系统比较复杂。对单片机速度要求比较高,所以人机交互所占的资源越少越好,在方便实用的前提下,应该尽量简单。本系统的人机交互模块非常简单,在实用的前提下尽量少占用系统资源,通过10路拔码开关给系统设置命令和参数,通过6路发光二极管指示系统工作状况,简单实用。在调试的情况下也可通过无线模块和PC机通信,通过上位机软件来控制智能汽车。我们采用最为简单的办法来实现人机交互,采用拔码开关进行参数设置,指示灯用来指示系统工作状态,电路图如图2.8所示。图2.8调试指示灯和拔码开关第三章 软件设计3.

16、1 智能汽车软件开发工具智能汽车在有了一个好的硬件平台后就需要一个软件系统是硬件发挥出它的作用。只有软硬件相互配合才能得到最好的性能。智能车的软件设计,很多功能都是基于硬件来实现的,当硬件方案有较大改动时,程序也要相应的修改,因此写程序时就要注意程序分层和模块化,各个功能模块写成子程序形式,使程序结构清楚,修改方便,思路也清晰。智能汽车软件设计除了有基本功能模块,它的精髓就是智能控制算法的设计。智能汽车的性能与采用的算法的好坏有很大的关系,因此本文作者主要研究就是智能汽车的控制算法的设计。我们的软件开发使用Freescale公司专门提供的全套开发工具Freescale Codewarrior

17、IDE以及硬件在线仿真调试工具BDM。Codewarrior 最初是由Metrowerks 公司提供的专门面向Freescale 所有MCU 与DSP 嵌入式应用开发的软件工具。其中包括集成开发环境IDE、处理器专家、全芯片仿真、可视化参数显示工具、项目工程管理、C 交叉编译器、汇编器、链接器以及调试器(Debugger)。其中在本设计方案中最为重要的部分就是集成开发环境IDE 以及调试器(Debugger)。如图3.1所示,图3.1Codewarrior集成开发环境BDM(Background Debugging Mode)是摩托罗拉公司支持的一种OCD的调试模式。通过BDM接口可以完成基本

18、的调试功能,例如:设置断点、读写内存、读写寄存器、下载程序、单步执行程序、运行程序、停止程序运行等。在宿主机方需要专门的驱动程序,并且在宿主机和目标机间需要用专门的接口电路。BDM for S12(TBDML)由清华大学 Freescale MCU/DSP 应用开发研究中心开发,该工具是支持Freescale MC9S12 系列16 位单片机的BDM 调试工具,采用USB 接口与PC 通信。Codewarrior调试器(Debugger)通过BDM连接到智能汽车控制板上,这样我们可以在线实时读读写微控制器中寄存器、变量的值等,使开发调试的工作变得简单。BDM for S12(TBDML)实物如

19、图3.3所示。图3.3 BDM for S12(TBDML)实物图3.2 软件总体设计要实现智能汽车自动的循迹行驶,并且对不同情况的赛道采用不同的行驶策略,这要求程序有较强的适应能力。传感器采集的数据变动比较大,传感器本身的特性也不稳定,而且不同传感器总存在着差别。为了能适应不同赛道,我们采取了对赛道信息进行采样然后进行数据归一化处理然后再通过控制算法确定控制策略。除了智能汽车正常运行所需的各模块还要加特殊情况识别和处理。程序设计的总体流程如图3.3所示。图3智能汽车要沿黑线行进,首先就要确定前方赛道的黑线的位置,一般可以将传感器采集的数据经过归一化处理后再经过“二值化”或者“曲线拟合计算”等

20、方式来确定黑线相对传感器的位置。“二值化”把每个检测点的信号简单划分为“黑”和“白开始系统初始化需要采样?读采样数据延时起跑读取传感器数据确定黑线特殊情况调用控制算法舵机与电机控制终点结束采样处理并保存数据相应处理是两种信号检测精度视传感器的数目来定,一般这种方法处理简单但精度不高。当黑线位于两个传感器之间时,“二值化”得到的结果只能是单一的,而通过“曲线拟合计算”则能比较精确的计算出黑线离传感器的相对位置,但这种方法要求传感器的线性度比较好而且传感器的性能较一致,数据处理也相对较复杂。我们对不同方法都做了尝试,认为“二值化”虽然精度不高,但是稳定性好而“曲线拟合计算”虽然能有较高的位置确定精

21、度,但是稳定性不如“二值化”好,对传感器性能要求比较高,而且不利于对特殊标识处理。而且智能汽车在实际运行过程中,对黑线识别的精度并不要求很高。所以采用了“二值化”的方式来确定黑线位置,实际结果证明,这种方法有较强的适应能力,抗干扰能力也比较好。3.2.2 数据归一化处理传感器采集的数据之所以要进行采样和归一化处理,主要原因有以下几点:(1)传感器本身的差异:相同型号的传感器其性能也不能做到非常接近,电路上采用的电阻电容也会有一定的误差。(2)传感器自身特性:同一个光电管随着使用时间变化,其特性也会有变化。(3)不同赛道情况带来的差异:不同赛道的光照和反光程度的不同、黑胶带对光线吸收程度的不同、

22、外界光线的影响等都会使得传感器采集的数据有一定的波动。通过采样得到每个传感器返回的数值的最大和最小值计算出归一化参数,智能汽车在行驶过程中得到的每个传感器的数据首先进行滤波处理,然后归一化数据,数据信号处理流程如图3.4所示。图3.4 信号数据处理框图其实所谓的归一化,其实质就是一次线性变化。我们在实际过程中把采样的最大最小值归一化到150100这个范围,这样就给特殊情况留有余量,也使特殊信号比较容易识别。同时由于采用整型数据,为了防止数据溢出,我们对原始数据采取了防止溢出的限幅处理。在实际行驶过程中,在坡道数据最大能达到300,最小能达到60,但不同传感器之间始终存在差值。3.2.3 位置确

23、定为了确定如何对传感器采集的数据进行处理,为此我们做了传感器线性度测试,我们对6个传感器的数据进行归一化至0250,得到实验数据如表3-1。表3-1 红外管线性度统计表根据表中数据画出其特性图如图3.5所示。图3.5 红外管线性度统计曲线图由图中可以直观的看到,在一定范围内(-5cm5cm),大多数传感器数据呈线性变化,和常见的“S”型曲线差异较大,这是由于发射管反射角和接收管接收角都比较大的缘故。看到这个曲线时我们认为精确识别黑线位置应该是件很容易的事情了,于是我们做了处理。但结果发现位置计算当黑线在部分传感器之间时,能非常精准,但是在另一些传感器之间时,则跳变很明显。仔细观察曲线我们发现,

24、由于不同传感器线性度差别,我们无法使用同一个公式精确计算黑线位置。另外在加了坡道和窄道后,位置的精确识别变得更加复杂,因为要处理的信息将不是“绝对的”,而是“相对的”。最后我们决定采用了“二值化”的方法,但并不直接将数据化为:“0”或“1”,而是根据多种情况考虑而得到位置值,流程图如图3.6所示。图3.6 “二值化”子程序流程图我们最终采用的方案前排为8组红外发射接收,后排为7组红外发射接收,所以位置确定的精度为前排17个分度,后排15个分度。前排管用以进行转向,后排管主要用来进行特殊标记识别。3.2.4 速度检测速度检测采用的光电编码盘,通过相应的处理后速度检测电路的输出是频率变化的矩形波。

25、要测量智能汽车的速度,一般的方法有三种,即测周法和测频法及测周和测频结合。测频方案是使用微控制器自带的增强型定时器溢出中断产生一个10ms的定时中断,在这个设定时间内,用微控制器的脉冲累加器对光电编码器产生的脉冲进行计数,定时溢出时记录脉冲数。因为电机的转速和光电编码器产生的波形的频率成正比,所以通过测量频率,就可以间接地得到电动机的转速,从而间接得到智能汽车的整体速度就可以对小车采取闭环控制。测周方案是使用单片机的实时中断,设定一个10us的中断,同时启用微控制器的输入捕捉功能,对测速传感器传回的脉冲信号的上升沿或者下降沿进行捕捉。使用实时中断对上升沿信号之间的时间间隔进行计数,以T=N*1

26、0(N为记得的实时中断数量)来计算电机转速。测周的响应周期由电机的转速决定,一般不超过10ms,所以响应速度大大提高。由于所选用的光电编码器每圈能输出500个脉冲,数量较多,综合考虑了车速以及控制精度这些因素之后,我们选择测频方案,完全满足检测速度的需要。3.3 特殊情况处理由于智能汽车比赛时不仅是沿赛道前进,还有许多比赛规则,如在比赛时要识别起跑线。而且在比赛中还存在着一些特殊赛道如窄道、坡道等。这些情况如果不能识别出来轻则影响比赛成绩,重则使智能汽车无法顺利完成比赛。所以这些特殊情况要尽可能的识别出来特殊处理。3.3.1 十字交叉道十字交叉道会出现数据同时比较小的情况,但是并不能保证单排传

27、感器平行于十字交叉线,但是综合连续几次数据,能够得到全黑,我们综合7次数据判断,如果是十字交叉线,在这7次中每个传感器都会出现至少1次“较黑”的情况。十字交叉道转向不作特殊处理。3.3.2 窄道识别窄道标记包括黑三角形和突起,其中黑三角形由于其面积比较大,因为返回数据量特别小,非常容易识别,突起的识别则需要特殊传感器,如触碰开关或者加速度传感器,我们尝试了效都不是很好,最后决定只对黑三角形做处理。我们并不精确识别时进窄道标记和出窄道标记,用计数的方式识别,奇数次识别到则是进窄道,偶数次识别到则是出窄道。进入窄道,转向不需要特殊处理,但是速度给定要略微下调。3.3.3 坡道识别进入坡道数据量会突

28、然增加,我们用这个特征判定坡道,通过实验观察,我们发现智能车经过坡道的整个过程数据量变化会如表3-2。表3-2 坡道数变化可知只要判断数值偏大情况跳变和数目即可知道坡道情况:(1)奇数次出现0-1跳变说明上坡道(在坡道上)(2)偶数次出现0-1跳变说明下坡道(在平道上)由于坡道处于直道,所以坡道的速度给定不需特殊处理,转向方面当坡道比较陡的时候,由于前排架设角度比较大,可能会出现前排无法获取有效数据的现象,这时候可以采用只用后排转向。3.3.4 起跑线识别由于我们单排的传感器数据比较少,采用“二值化”精确识别起跑线存在一定的困难。我们观察了车从不同位置经过起跑线时各个传感器的数据,如图3.7所

29、示。图3.7 起跑线数据图中横坐标是传感器编号,纵坐标是归一化以后的数据(为了观察方便这里归一化到100150)。观察曲线我们并没有发现从不同位置经过起跑线的非常有利用价值的简单规律。至此我们认为直接精确识别起跑线存在困难,这是由于硬件设计决定的。当然也可以用复杂的确定算法来识别,但是我们找到了另一种行之有效的办法。 我们发现如下规律:(1)起跑线介于正常赛道和十字交叉线情况之间(2)经过起跑线不会发生所有传感器都检测到“黑”的情况(3)经过“黑”的数目大于2,或者是两个不相邻的传感器检测到黑(4)另外弯道的时候也会出现3个传感器检测到黑至此我们采取了一种完全不同于以往精确识别的方式来检测起跑

30、线。首先我们确定起跑线判定依据:当前正常,上次检测到2个以上传感器为“黑”或者2个不相邻的传感器检测到“黑”。其次我们确定起跑线排除种类:1.窄道 2.坡道 3.弯道 4.十字交叉道 。如此,我们的智能汽车就能有效地识别出起跑线,正常停车。基于智能控制算法的智能小车系统设计及仿真研究 参考文献参考文献1 第五届“飞思卡尔”杯全国大学生智能汽车竞赛秘书处EB/OL. http:/ 吴晔,张阳,滕勤.基于HCS12的嵌入式系统设计.电子工业出版社,2010.3 任娜. 基于16位单片机MC9S12DGl28智能车系统的设计D:硕士研究生论文. 西安:长安大学,2008.4 卓晴,黄开胜,邵贝贝. 学做智能小车M. 北京:北京航空航天大学出版社,2007.5 彭建盛,首家辉,周东,葛姣龙. 智能汽车系统的电源设计J. 通往电濠技术,2008年2期:6365.6 王俭. 轮式智能小车行驶距离和速度的检测J. 传感器技术,2005年07期:6675.7 胡寿松. 自动控制原理M. 北京:科学出版社,2007.6.8 于海生等. 微型计算机控制技术M. 北京:清华大学出版社,1999.9 凌玉华等. 单片机原理与应用系统设计中南大学出版社,200610 李志民.单片机实验及课程设计指导书(综合部分),200511 杨欣荣智能仪器原理、设计与发展中南大学出版社,2003

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1