![无人车转向控制系统软件设计毕业设计论文_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/5e7d61c6-7e9f-499d-b0f8-199ea1274d30/5e7d61c6-7e9f-499d-b0f8-199ea1274d301.gif)
![无人车转向控制系统软件设计毕业设计论文_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/5e7d61c6-7e9f-499d-b0f8-199ea1274d30/5e7d61c6-7e9f-499d-b0f8-199ea1274d302.gif)
![无人车转向控制系统软件设计毕业设计论文_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/5e7d61c6-7e9f-499d-b0f8-199ea1274d30/5e7d61c6-7e9f-499d-b0f8-199ea1274d303.gif)
![无人车转向控制系统软件设计毕业设计论文_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/5e7d61c6-7e9f-499d-b0f8-199ea1274d30/5e7d61c6-7e9f-499d-b0f8-199ea1274d304.gif)
![无人车转向控制系统软件设计毕业设计论文_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/5e7d61c6-7e9f-499d-b0f8-199ea1274d30/5e7d61c6-7e9f-499d-b0f8-199ea1274d305.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业设计(论文) 题目:无人车转向控制系统软件设计 院 (系): 电子信息工程学院 专 业: 电气工程及其自动化 班 级: 学 生: 学 号: 指导教师: 西安工业大学毕业设计(论文)任务书院(系) 电子信息工程学院 专业 电气工程及其自动化 班 090415 姓名 学号 1.毕业设计(论文)题目: 无人车转向控制系统软件设计 2.题目背景和意义: 而智能无人车是现代自动化发展的一个重要代表,其需要实现自动导引功能和避障功能就必须要感知导引线和障碍物,实现自动识别路线,选择正确的行进路线,使用传感器感知路线并作出判断和相应的执行动作。基于视觉的道路识别系统是无人车安全行驶的前提和基础,在汽
2、车发展、交通、军事等领域有广泛的应用前景。3.设计(论文)的主要内容(理工科含技术指标):(1)分析比较当前国内外无人车的现状与优缺点,为本次无人车转向控制系统的设计提供依据。(2)设计无人车转向控制系统的软件方案,确定该系统应该完成的任务。(3)无人车转向控制系统中pid控制算法的研究。(4)为了提高系统整体的可靠性和安全性,研究当前无人车电子转向控制算法等的问题。(5)对无人车转向控制系统进行软件编程。4.设计的基本要求及进度安排(含起始时间、设计地点): 1.第二周第四周:进行文献检索,调研,可行性分析;了解无人车转向控制系统的相关知识;学习keil u vision4的使用,学习c语言
3、编程方法,为后续研究做好准备;2.第五周第七周:确定系统方案,确定所用器件的型号;3.第八周第十周:系统软件程序的编写;4.第十一周第十三周:完成软硬件调试,通过实验对系统进行优化;5.第十四周第十六周:总结,撰写论文;6.第十七周第十九周:准备答辩。5.毕业设计(论文)的工作量要求 实验(时数)*或实习(天数): 图纸(幅面和张数)*: 其他要求: 无人车转向控制系统软件设计摘 要随着科技的快速进步, 电子计算机等高新科技与汽车技术也得到快速的发展,智能车就是这两者相结合的产物。本文以mc9s12xs128单片机为核心微处理控制器(mcu),设计和开发了无人车转向控制系统。本文系统总体设计方
4、案如下,在整个控制系统中,单片机为核心部分,起主体控制作用;电源模块为单片机提供5v电源电压;速度检测模块通过光栅编码器来检测小车行进的速度;电磁感应模块有四个电感,其中包括三个横电感和一个竖电感。竖电感用来感应跑道中心的磁场从而确保不偏离跑道,两个横电感与十字电感用来确定小车转过的角度;电机模块为普通直流小电机,通过控制它实现小车的前进、后退以及不同的转速;舵机模块用来在弯道处使小车转过一定的角度,具体的角度可以通过编程实现;lcd模块用来显示当前转速,pwm输出值等。关键词:无人车;单片机;电机;舵机;转向控制 the software design of unmanned vehicle
5、 steering control abstract with the rapid development of science and technology,electronic computer and other high and new science and technology also get fast development, intelligent car is a combination of them.in this paper, an unmanned vehicle steering control is designed with mc9s12xs128 micro
6、computer.the system overall design as follows, as the core control portion, mc9s12xs128 microcomputer has the main control function. the power module supplies the 5v voltage. the speed detection module detects the speed of car through grating encoder. the electromagnetic induction module has four in
7、ductances,including two horizontal inductances,one vertical inductance and one cross inductance. the vertical inductance is used to detect the magnetic field of the runway center to prevent the car deviating the runway. the horizontal inductances and cross inductance are used to ensure the turning a
8、ngle of the car, the motor module is normal small dc motor,we can achieve moving forward, moving back and several diffirent speed. the steering engine is used to turn a certain angle at the corner, we can achieve the specific angle through programming. the lcd module is used to display the current s
9、peed and the output of pwm and so on.key words: unmanned vehicle; microcomputer;motor; steering engine; steering control目录中文摘要i英文摘要ii1 绪 论11.1课题背景及意义11.2系统描述11.3国内外研究情况22系统总体方案的设计32.1设计要求32.2无人车转向控制系统的设计思路32.3无人车转向控制系统硬件结构图42.4无人车转向控制系统的功能53无人车转向控制系统算法研究63.1电机控制算法设计63.2舵机控制算法设计94系统软件设计114.1 本系统的软件开发
10、环境与开发工具114.2 软件结构设计114.2.1 顺序程序设计124.2.2采用实时多任务操作系统124.3软件工作流程分析124.4无人车转向控制系统各个模块流程图144.4.1 主程序初始化流程图144.4.2 a/d采集模块流程图154.4.3中值平均滤波流程图154.4.4 pwm输出控制函数流程图175系统调试与分析225.1 系统仿真调试225.1.1 仿真内容225.1.2 调试、仿真环境225.1.3 调试步骤225.1.4 调试过程中遇到的问题及解决方法255.2无人车跑道调试265.2.1 调试内容265.2.2 调试过程中遇到的问题以及解决方法266 总结28参考文献
11、29致谢31毕业设计(论文)知识产权声明32毕业设计(论文)独创性声明33附 录a 程序34附 录b 外文翻译621 绪 论1.1 课题背景及意义1.题目背景:自第一台工业机器人诞生以来,机器人的发展已经遍及机械、电子、冶金、交通、宇航、国防等领域。近年来机器人的智能水平不断提高,并且迅速地改变着人们的生活方式。人们在不断探讨、改造、认识自然的过程中,制造能替代人工作的机器一直是人类的梦想。 而智能无人车是其中一个代表,其需要实现自动导引功能和避障功能就必须要感知导引线和障碍物,实现自动识别路线,选择正确的行进路线,使用传感器感知路线并作出判断和相应的执行动作。基于视觉的道路识别系统是无人车安
12、全行驶的前提和基础,在汽车发展、交通、军事等领域有广泛的应用前景。2.研究目的、及意义:20世纪后半叶一来,浓缩着人类文明的汽车工业得到了迅速发展。作为现代主要交通工具的汽车,以其特有的优越性为现代社会的发展和人类生活条件的改善做出了巨大贡献,其发展速度越来越快。智能无人车辆是人类的伟大发明之一,在短短的50年内发生了日新月异的变化。随着计算机和控制计技术的发展,智能移动平台在军事、民用和科学研究等诸多方面得到了广泛的应用,工作环境也从单纯的室内环境变成了各种复杂的环境,包括地面、水下、空中甚至太空外等。在军事上,无人车可以代替人类在危险场所(如战场、化工污染和核污染场所、北极等)按照设计者的
13、意图自动行驶至目的地,并代替人类完成侦查、排雷等军事任务。在民用方面,不仅可以作为自动或辅助驾驶系统以减少交通事故,还可以作为智能轮椅帮助残疾人士。在科学研究就方面,无人车还可以代替人在高危环境甚至外形从事探索和勘探工作。1.2系统描述本设计使用的车为电磁循迹车,该无人车转向控制系统由微控制处理器(mcu),电源模块,速度检测模块,电磁感应模块,lcd显示模块,电机模块与舵机模块构成123。在行进的过程中,电磁感应模块将检测到的跑道信息通过异口通讯传给mcu,同样,速度检测模块将编码器检测到的小车转速信息也传给mcu,mcu通过判断跑道信息与转速信息来给出一个控制信号45,分别通过控制舵机与直
14、流电机实现左转、右转、前进、后退以及不同的转速。为了更为直观的显示出当前的转速、pwm输出值等参数信息678,本设计使用了lcd显示模块,lcd的每一个字都有相对应的数字信息,存在一个库函数里面,通过编程可以调用需要的参数名称。1.3国内外研究情况智能车是电子计算机等最新科技成果与现代汽车工业相结合的产物。通常具有自动驾驶,自动变速和自动识别道路的功能。另外,车内的各种辅助设施也一应电脑化,常常给人以新奇感。2010年第十一届北京国际车展上,低碳环保理念让新能源车成为市场翘楚,但其实节能技术、混合动力技术和电动技术只是在外部能源限制、环境制约和政策制约下的一种被动调整,电子和信息技术的广泛应用
15、才是整个汽车产业下阶段发展的第一生产力。当信息技术足够成熟地驾驭汽车,何时松油门,哪个时间点踩刹车,智能行车电脑暗自计算着从起点到目的地的最佳路线(不仅考虑距离远近,还要兼顾道路行驶状况)。这些智能的应用都将在点滴间帮我们降低油耗,节能资源和时间成本。智能汽车虽已不是新鲜概念,但比尔盖茨曾讲过的话“如果汽车工业和信息技术发展的速度一样快,那么我们早就可以开着汽车上月亮了”却揭示出智能汽车发展的瓶颈。1.4本文主要研究内容本课题是研究一种基于mc9s12xs128单片机控制的无人车转向控制系统的软件设计、工作原理及主要功能。该无人车转向控制系统以mc9s12xs128单片机为核心,配合外围电路共
16、同完成速度检测、跑道情况检测、控制电机,舵机从而实现不同转速等功能910。系统应采用高性能的单片机,要求工作稳定、测量精度高、耐用性强、功耗低,保证检测模块的精确性及可靠性,而且最好体积小,成本低,有利于减少车体的重量,降低无人车的成本。 2系统总体方案的设计2.1设计要求(1)根据系统结构特点,提出总体设计方案;(2)设计本系统的软件流程图,(包括:主流程图、底层设计流程图、pwm输出流程图等),并对每个模块进行仿真、调试;(3)软件模块的调试、仿真;(4)结合系统硬件设计和应用软件设计总体联合调试。2.2无人车转向控制系统的设计思路该设计中的无人电磁循迹车能在无人干预的情况下在跑道上自己行
17、驶,当遇到拐弯的情况下能自动转过一个合适的角度,并且在行驶过程中控制在一定的速度,从而防止转弯时速度过高而冲出跑道。这个车的最基本组成部分应包括:电源模块、电磁感应模块、速度检测模块、电机模块、舵机模块、lcd显示模块、单片机控制电路等11。 电源模块通过电平转换芯片为单片机提供5v的电源,从而使单片机能够在合适的电压下工作。电磁感应模块通过四个电感来感应所在道路信息,通过模数转换电路将采集到的信息转换为单片机能够识别的信号。同样,速度检测模块通过光栅编码器检测小车当前正在行驶的速度,并将其转换为单片机能识别的数字信号。从而使单片机确定是直走还是转弯,并将控制信号输出给电机和舵机,当在直线行驶
18、时可以适当地加速行驶,而在转弯时低速行驶,这些通过pwm控制即可实现。另外可以通过控制h桥电路来实现电机的正反转,从而控制小车前进或者后退。单片机对速度检测得到的数字信号进行滤波处理,并对处理后的数据进行分析,是否大于或等于某个预设值,如果大于则启报警,反之则为正常状态。为方便检测与监控,使人们能直观地观察到小车的当前转速、pwm输出值、转过的角度等信息,可将这些值送到lcd显示屏中。方便实验调试时转换不同的速度,可以加入拨码开关。以上是根据无人电磁车应具备的功能提出的整体设计思路。 2.3无人车转向控制系统硬件结构图基于mc9s12xs128单片机的无人车转向控制系统结构图如图2.1所示。系
19、统设计的最基本要求是使小车在跑道上行驶时能够自动进行转弯、直走以及实现不同的转速。系统必须是易于实现、灵活、高效的。整个系统电路有以下几个部分: 电源模块、电磁感应模块、速度检测模块、电机模块、舵机模块、lcd显示模块、单片机控制电路。 图2.1控制系统结构框图此无人车转向控制系统工作在比较好的环境中,各种干扰以及损伤较小,所以我们将采用一般的单片机。另外,根据内存大小以及端口数量需要,我们决定采用mc9s12xs128单片机。 mc9s12xs128是16位单片机,由16位中央处理单元(cpu12x)、128kb程序flash(p-lash)、8kb ram、8kb数据flash(d-las
20、h)组成片内存储器。2.4无人车转向控制系统的功能(1)自动检测道路信息功能 在行驶的过程中,通过小车前面的四个电感来自动检测当前正在行驶的道路信息,即前方是否有弯道,并经过模数转换传递给单片机。(2)小车当前行驶速度检测功能 在小车前进时通过光栅编码器来检测小车当前的转速信息,通过模数转换器传递给单片机。(3)自动转弯功能当前方有弯道时,单片机控制舵机转过一个相应的角度再继续前进,避免小车偏离跑道。 (4)不同转速间的自动互换功能小车在道路情况不同时应处于不同的转速,例如,在转弯时速度应该减速,防止离心力过大而使小车飞出跑道,而当在直线行驶时可以适当地增大转速,这些转速的互换可以通过拨码开关
21、来实现。该单片机主要功能模块包括:内部存储器,内部pll锁相环模块 2个异步串口通讯 sci ,1个串行外设接口 spi ,mscan 模块 ,1个8通道输入/输出比较定时器模块 tim ,周期中断定时器模块 pit ,16通道a/d转换模块 adc ,1个8通道脉冲宽度调制模块 pwm ,输入/输出数字i/o口。3无人车转向控制系统算法研究无人车实际是由传感器检测跑道,舵机控制前轮转向和电机驱动后轮行驶的物理实体。电机控制和舵机转向控制的快速与精确度是衡量所设计的无人车系统优劣的标准。故而在硬件确定的情况下合适的选择电机与舵机的控制算法就变得尤为重要。3.1电机控制算法设计本次无人车系统设计
22、采用了前轮转向,后轮辅助转向的结构,由此设计必须完成对电机的合理控制,同时,为了实现无人车车启动、加减速、制动时快速平缓,要求电机的动态响应速度要快,且速度的升降度曲线要平滑以此避免出现速度的突升突降现象。为此归纳本设计电机控制系统主要要实现的动作如下:(1)停止。当无人车检测到停止标记(起始线)后,必须采取刹车制动,并迅速的停止下来;当检测到车体严重偏离导引线时,也要采取刹车制动并发出报警信号。(2)干扰信息。当检测到前方有干扰(如虚线、断线等)时,无论此时的偏离距离、偏离角度是否为零,都需要采取减速策略;如果干扰消失则重新开始加速。(3)弯道信息。当检测到前方的导引线为弯道时,无论此时车体
23、是否偏离导引线,都需要降低速度。(4)偏离距离信息。当车体偏离距离不断增大时,降低速度;偏移距离减小回归于零时则适当的加大速度。本设计采用单个直流电机来驱动无人车,参照上面叙述的电机主要动作,对于电机做出合理的控制。给定一个目标速度,调节电机控制器的参数使其速度的升降曲线尽量平滑并能够达到期望的速度要求,如果达不到期望的性能,则需要在原来的参数基础上,对电机进行微调,直至车体能够平稳运行。传统的电机调速一般使用pid控制算法。pid控制简单易懂,使用灵活,通过对其,参数进行合理的设定便可实现控制目的,是目前最为通用的一种控制器。数字pid控制算法分为两类,即位置式和增量式1213。对于以电机为
24、执行机构的系统来说,采用数字增量型控制器,会得到比较好的控制效果。由式 (3.1) 根据递推原理可得 (3.2) 由式(3.1)和(3.2)可知 式中 , pid控制也存在着不足之处,即在时变、非线性、耦合以及结构不确定的系统中,它的控制效果一般,因而限制了其应用的范围。由于电机的转速调节是一个非线性、快速随动系统,因此如果单纯的使用pid控制,在电机转速还未达到设定值的情况下,输出的控制量就已经减小;当系统出现了大的扰动或者转速设定值在大范围内变动时,转速的响应曲线也往往会出现比较大的超调量并伴随长时间的波动。为了避免这一问题,系统在电机控制过程中采用了变结构pid控制方法14。bang-b
25、ang控制,实际上是一种时间最优控制,即控制函数总是取在容许控制的边界上,或者取最大,或者取最小,仅仅在这两个边界值上进行切换,其作用相当于一个继电器,所以也是一种位式开关控制。其给定式如下: 式中,为控制器当前时刻的输出;为控制器的最大输出;为检测偏差量。从理论上讲,对于一个时间最优位置随动系统,应采用bang-bang控制。但是bang-bang控制的定位精度很难得到保证,因此在高精度的伺服系统中,需要采用bang-bang控制与线性控制相结合的方式,譬如在线性控制区间可内采用数字pid控制。其控制规律为:式中,是系统的偏差,、是相邻两次采样的值,是设定的临界值。当系统的偏差大于设定的临界
26、值时采用bang-bang控制,小于设定的临界值时采用pid控制。其设计结构如图3.1所示。图3.1 变结构pid控制框图本次无人车设计对电机控制在采用bang-bang控制和pid控制相结合的同时,又引入了pd控制15。设计设置两个速度检测偏差临界值,。当误差时采用bang-bang控制;时采用pd控制;时采用pid控制。与前面所述不同,设计中根据实际需要增加了一个区间。在此区间内,反馈信号的变化较大,若采用pid控制,系统的调节将会滞后,被控量难以快速恢复。因此可以去掉pid控制中的积分环节,以提高控制系统的动态响应性能1617。如图3.2所示为本系统所采用的变结构pid控制示意图,纵轴表
27、示误差值的范围18。图3.2 本系统中变结构pid控制示意图变结构pid控制算法的参数整定包括以下几项:比例系数kp,积分系数ki,微分系数kd,bang-bang控制器的输出值b,切换点s1(对应于临界点)和s2(对应于临界点)192021。电机控制算法仿真:针对建立的电机传递函数,采用经典pid控制进行在线仿真222324,所得的闭环阶跃响应曲线和正弦扰动跟踪曲线如图3.4和3.5所示。图3.3 阶跃响应拟合曲线图3.4 pid控制电机阶跃响应曲线3.2舵机控制算法设计无人车在行驶的过程中,对于转向的控制要十分的精确。本设计中使用的舵机为数字舵机,它本身就是一个闭环控制系统。而对应一个闭环
28、控制系统,由于信号的振荡等原因,输入信号和反馈信号不可能完全相等,这就涉及到控制死区和滞环的问题,系统无法辨别输入信号和反馈信号的差异范围就是控制死区范围2526。舵机的控制由于信号震荡、机械精度等原因造成控制系统在控制死区的范围外的小范围内老是做调整,为使舵机在小范围内不对震荡做调整,这就需要引入滞环的作用。滞环比控制死区大,一般控制死区范围为0.4%,滞环可设置为2%,输入信号和反馈信号的差值在滞环内电机不动作,输入信号和反馈信号的差值进入滞环,电机开始制动、停止。由于控制死区和滞环的存在,使得舵机在控制的过程中具有非线性,不确定性的特点。前面已经提到过,对于这种非线性,不确定性的被控对象
29、,单纯的使用pid算法并不能达到良好的控制效果。本设计通过大量的实验及算法的研究,最终采用了经典pid控制算法同模糊控制相结合的方法,取长补短,解决了pid参数不能在线调整,适应性差的问题27。模糊自适应pid控制是通过参数的模糊自调整来实现参数变换的。它是以误差e和误差的变化率ec作为控制系统的输入,系统在运行的过程中不断对e和ec进行检测。然后利用模糊规则进行模糊推理,通过查询模糊矩阵表实时的对pid的参数进行调整,使得、的值能够满足不同时刻e和ec对系统的要求。使用模糊自适应pid控制,可以使被控对象在具有良好静态性能的同时,也具有良好的动态性能2930。模糊自适应pid控制的结构原理如
30、图3.5所示,图中、分别表示、的调整变化量。图3.5 模糊自适应pid控制器结构常规pid控制器作为一种线性控制器,其离散的控制规律为3: (3.10)对于系统被控过程中不同的和,pid参数、的自整定原则如下3132:(1) 误差较大时,为了加快系统的响应速度,使系统具有快速的跟踪性能,应取较大的和较小的。同时,为了防止积分饱和,避免系统超调过大,应限制的大小或使其为零。(2) 误差和中等大小时,为了使系统具有较小的超调,应减小,适当的和,特别是 的取值对系统响应的影响较大(一般取值较小)。(3) 误差较小时,为使系统具有较好的稳态性能,应增大和。同时,为避免系统在平衡点附近出现振荡,应选取合
31、适的值。较大时,应减小;较小时,应增大。 4系统软件设计4.1 本系统的软件开发环境与开发工具本系统摒弃了传统的汇编语言而采用c语言进行程序设计。因为c语言的描述由函数组成,是一种结构化的程序设计语言,所以更容易实现模块化,而且具有可读性好,易于移植等优点,同时还有汇编语言一样的位操作功能的硬件详细控制指令。数据结构方面,可以使用结构体和数组,能够处理复杂的数据,可用于实时处理系统。本系统的软件编程使用的是freescale 公司的freescale codewarrior编程开发环境。freescale 公司的16位单片机主要分为hc12 、hcs12、hcs12x三个系列。hc12核心是1
32、6位高速cpu12核,总线速度8mhz;hcs12系列单片机以速度更快的cpu12内核为核心,简称s12系列,典型的s12总线速度可以达到25mhz。hcs12x系列单片机是freescale 公司于2005年推出的hcs12系列增强型产品,基于s12 cpu内核,可以达到25mhz的hcs12的2-5倍性能。总线频率最高可达40 mhz。s12x系列单片机目前又有几个子系列:mc9s12xa系列、mc9s12xb系列、mc9s12xd系列、mc9s12xe系列、mc9s12xf系列、mc9s12xh系列和mc9s12xs系列。mc9s12xs128就是s12x系列中的一个成员。 本论文中,软
33、件解决的主要问题是处理检测来的跑道情况及当前转速,然后对其进行数字滤波,并根据这些信息给出合适的转向以及转速控制信息,控制舵机和电机工作,并将当前转速、pwm输出值等参数通过lcd屏幕显示出来。另外,还要进行按键功能设置。4.2 软件结构设计合理的软件结构是设计一个性能优良的单片机应用软件的基础。常用软件结构设计方法有如下两种3233。4.2.1 顺序程序设计对一般简单的单片机应用系统,通常采用顺序设计方法。这种系统的软件由主程序和若干个中断服务程序所构成。主程序是一个顺序执行的无限循环的程序,不停地顺序查询各种软件标志,以完成对日常事务的处理。顺序程序设计方法容易理解和掌握,也能满足很多简单
34、的应用系统对软件的功能要求,因此是一种应用很广的方法。顺序程序设计的缺点是,软件的结构不够清晰,软件的修改和扩充比较麻烦,实时性能。4.2.2采用实时多任务操作系统由于对单片机系统的性能要求越来越高,尤其要对多个任务同时处理,对各个对象的信息进行实时快速处理,常规的顺序程序设计方法难以达到规定的技术指标,只有采用实时多任务操作系统才能从根本上提高系统的实时性,才能使软件内结构标准化、模块化。本论文所有的程序均是采用顺序程序设计方法。4.3软件工作流程分析本系统总体工作流程包括各个模块的初始化、道路与速度信息采集、数据处理、速度与角度输出值、电机速度控制与舵机转向控制以及其他操作。主程序流程图如
35、图4.1所示。 图4.1 主程序流程图mc9s12xs128单片机对传感器检测到的道路信息以及当前速度信息进行a/d转换、中值平均滤波,然后根据这些信息判断是否进行转弯,以及利用pwm调换不同转速。同时显示电机转速、pwm输出值等参数。pwm是英文“pulse width modulation”的缩写,“脉冲宽度调制”,简称脉宽调制。它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量分析、功率控制与变换等许多领域。一种模拟控制方式,根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作
36、条件变化时保持恒定。 pwm是一种对模拟信号电平进行数字编码的方法34。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。pwm信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(on),要么完全无(off)。电压或电流源是以一种通(on)或断(off)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即供电被断开的时候。只要带宽足够,任何模拟值都可以使用pwm进行编码35。4.4无人车转向控制系统各个模块流程图4.4.1 主程序初始化流程图底层初始化流程图如图 4.2所示。图4.2底层初始化流程图 4.4.2
37、a/d采集模块流程图当电磁感应模块在进行跑道检测及光栅编码器在测量当前电机转速时,都要先进行a/d转化,将采集到的模拟信号转化为单片机能够识别的数字信号后才能对其进行处理和控制。因此,a/d采集模块在无人车转向控制系统中是非常重要的,它的流程图如图3.3。 图4.3a/d转换流程图4.4.3中值平均滤波流程图在单片机对采集到的参数进行数据处理时要进行滤波,才能有效的防止不必要的干扰信号。在本设计中,我们采用中值平均滤波法。即在每个周期先用中位值滤波得到m个滤波值,再对m个值进行算术平均,得到可用的被测参数。也称为去脉冲干扰平均值滤波法。其流程图如图4.4. 图4.4 中值平均滤波流程图4.4.
38、4 pwm输出控制函数流程图本设计的最终目的在于控制单机与舵机,让其有一个合适的输出值,而这个控制工程则是由pwm控制实现的4,因此pwm输出控制方法是本设计中最重要的。如图3.5所示为pwm输出函数流程图。图4.5pwm输出控制函数流程图 4.4.5 增量式pid函数流程图本设计应用的算法为增量式pid控制算法,通过调整kp 、ki、kd这三个参数来实现相应的控制。如图4.6为增量式pid控制算法流程图。图4.6增量式pid算法流程图4.4.6舵机控制设计:舵机的内部集成有直流电机、减速齿轮组以及位置反馈电位计。减速齿轮组由直流电机驱动,其终端(输出端)带动一个线性的比例电位器作位置检测,该
39、电位器把转角坐标转换为一比例电压反馈给控制线路板,控制线路板将其与输入的控制脉冲信号比较,产生纠正脉冲,并驱动马达正向或反向地转动,使齿轮组的输出位置与期望值相符,令纠正脉冲趋于为0,从而达到转角精确定位的目的。其内部原理如图4.7所示。图4.7舵机内部工作原理图 对小车舵机转向控制进行调试的目的在于使小车对不同路线都能给出合适的转角,在直道行驶时应避免抖舵和振荡,在弯道行驶时应能够准确、顺畅地跟踪赛道信息。舵机控制可利用调节pwm输入信号的占空比来改变输出的角度。由于舵机响应存在机械滞后和电延迟,该系统整体可以看做为一个纯滞后环节和一个积分环节的串联。pwm控制信号引入控制电路板驱动直流电机
40、,减速齿轮组由直流电机传动,其输出端带动一个线性的比例电位器作位置检测,该电位器把齿轮组转角转换为一比例电压反馈给控制线路板,控制线路板将其与输入的pwm控制信号比较,产生纠正信号,并驱动直流电机正向或反向转动,使齿轮组的输出位置与期望值相符,纠正信号最终趋于0,从而达到使舵机精确定位(位置伺服)的目的。通过以上分析,我们对舵机的转向采取了pd(比例-微分)控制。比例控制能迅速反应误差,从而减小误差,但比例控制不能消除稳态误差,kp 的加大,会引起系统的不稳定;微分控制可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能。在最初调试的时
41、候,我们还使用了pid 控制。在加入了积分控制后,会使系统的超调量加大,甚至出现振荡,跑直道的效果特别差,所以将其去掉了。对kp 参数进行调整采用了的试凑的方法。通过多次实验,得到了比较满意的kp,kd 值。舵机在没有进行机械调整的时候,由于结构的限制,当前轮要转到最大时舵机需转到大40 度。在我们对舵机进行了一系列的机械结构改造后,舵机只需要转动15 度左右,前轮就可以转到最大时。这样就大大节约了舵机转向的时间,加快舵机的响应速度。为了提高控制精度,微控制器的pwm6,pwm7级联后变为16 位,完全可以满足舵机调节的精度要求。pwm7 口输出的信号输入到舵机的控制线,对舵机转角进行控制。在
42、具体控制中,模糊输出只是一个等级,然后乘以角度的系数,就可以得到角度的精确数值。然后就可以确定pwm的占空比,进而控制舵机。由于我们设置了几个不同的速度档位,而每个档位对应的kp,kd值都不相同。4.4.7电机控制设计:直流电机的转速控制采用pwm控制。由于单片机输出的脉宽无法直接驱动电机,因此需要通过驱动电路对电机进行控制。通过电机驱动模块,控制驱动电机两端电压可以使模型车加速运行,也可以对模型车进行制动运行。在进行方案的选择时,考虑到智能车驱动电机需要正转、反转,因此,设计中采用了h桥来驱动电机,得到了很好的控制效果。如图4.8所示。 图4.8 h桥控制电路mc9s12xs128有8个可编
43、程控制周期和占空比的pwm的通道,通过级联可用做16位4通道,以提高控制精度。mc9s12xs128的pwm1和pwm3管脚分别控制电机的正反转。工作原理简介:左边给高电位1,右边给低电位0时,原理图中左下的tip122和右上的tip127为通路,马达电流由右流到左,反转;左边给高电位0,右边给低电位1时,马达电流由左流到右,正转。运用光电偶合器的原因是为了简化电路,同时避免干扰。数字地与模拟地之间也要进行隔离。电机控制流程图如图4.9所示:图4.9电机控制流程图5系统调试与分析5.1 系统仿真调试5.1.1 仿真内容仿真调试的内容是要把程序修改正确,使编译能够通过,而且还要用freescal
44、e codewarrior仿真软件中的一些功能来查看程序所实现的功能是否能够和预期的功能相符合。程序部分的调试采用的是从下到上逐步集成的思想,先将各个小的模块验证成功,再将它们集成为一个大的模块进行验证,最后到整个系统的集成调试。需要反复调试,直到能够实现预期结果为止。本次设计是在仿真软件freescale codewarrior来进行编译和调试的。 5.1.2 调试、仿真环境程序开发是在codewarrior development studio for s12(x) v5.1下进行。该开发环境由metrowerks公司提供并专门面向飞思卡尔所有系列的微控制器嵌入式应用开发的软件工具。其中包
45、括ide集成开发环境、可视化参数显示工具、c交叉编译器、项目工程管理、汇编器、链接器等。本导引车模型采用mc9s12xs128处理器,所用程序语言为c语言。设计程序过程中,采用bdm在线调试器。5.1.3 调试步骤运行codewarrior development studio for s12(x) v5.1集成开发软件,在弹出的工程对话框中选择create new project,如图5.1示。图5.1新建工程界面继续选择hcs12x,在hcs12xs family中选择mc9s12xs128,点击“下一步”。如图5.2所示。图5.2开发环境配置第一步然后选择编程语言和右面的项目名proje
46、ct name输入条中,键入所要建立的新工程名称,在项目名location输入条中,选择新工程所存放的地址。在本导引车模型中使用c语言。如图5.3所示。图5.3开发环境配置第二步新工程按配置要求配置后,点击“完成”,弹出软件编程操作界面如图5.4。在此界面上便可编译所要求的工能程序。图5.4 codewarrior development studio for s12(x) v5.1编程界面sources文件夹中包含所有的源程序文件,可以在此栏下点击鼠标右键,在弹出的菜单选择项中选择add files,添加其他源程序文件。includes文件夹是程序中所有头文件。project setting
47、s文件夹中含有另外两个文件夹,分别是startup code和link files。其中startup code下是新建项目建立时自动生成的启动文件。而link files下的三个文件burner.bbl,project.prm,project.map其功能分别为:用于编译器下载的代码文件格式配置(bbl文件)、生成的目标代码在内存中的映射文件(map文件)、机器代码连接定位用的内存说明和配置文件(prm文件)libs文件夹所包含的是本工程开发用到的代码库。程序编辑完成后,使用bdm下载器将电脑与处理器相连,在菜单栏project选择debug即可将编译好的功能程序下载到处理器中调试,在线调试
48、界面如图5.5所示。图5.5在线调试界面5.1.4 调试过程中遇到的问题及解决方法在进入环境以后,遇到了很多问题,总结如下:(1)提示无c文件编译时候提示:f:.xx.cfile has been changed outside the editor, reload ?解决方法:重新生成项目,产生text2.c即可。(2)在进入freescale codewarrior的调试环境以后,发现程序有错解决方法:将光标定位于需要修改的程序上,用菜单,debuginline assambly即可出现对话框,enter new 后面的编辑框内直接输入需要修改的程序语句,输入完之后键入回车将自动指向下一条
49、语句,可以继续修改,如果不在需要修改,可以点击右上角的关闭按钮关闭窗口。(3)输入程序时,有中文标点,用freescale codewarrior编译时出现错误解决方法:程序里有带中文标点,用英文重输入一遍(4)汇编出现数字、字母混淆解决方法:字母“o” 和 数字 “0”。主要错在这里。注意细节!5.2无人车跑道调试5.2.1 调试内容在经过仿真调试及一系列系数修改之后,我们进行了无人车跑道实际调试,主要是通过在跑道上实际出现的问题实时地对智能车相关参数以及某些机械结构进行进行改进。我们的跑道有十字交叉、直线以及弯曲路面,在十字处蜂鸣器应该发出响声。直线处车速应该适当有所提高,拐弯处应该能灵活
50、地调整舵机角度。实时跑道调试如图4.6所示:图4.6实时跑道调试5.2.2 调试过程中遇到的问题以及解决方法在进行实时跑道调试时遇到很多问题,总结如下:(1) 刚开始时将kp值设的有点大,所以小车在跑道上颤抖的比较厉害,而且在拐弯处特别容易冲出赛道。解决方法:通过试凑的方法,经过多次修改kp值后这个现象得到完全改善。(2) 起初小车的防静电措施不到位,小车跑着跑着就失控了,电机疯转,直接冲出赛道。解决方法:因为静电把编码器的输出拉低了,也就是测得的速度远远低于真实速度,pid就会加大脉宽。后来把车子的灰尘清理了,另外把一些重要的引脚,比如ad的数据、编码器、起跑线和空气隔离,用黑胶带粘起来,效
51、果得到很大提高。 (3) 之前车前面杆子上的电感未固定好,车在行驶时把杆子撞坏了竖电感。 解决方法:这是因为竖电感固定的位置在横杆前面,之后将其放置在横杆后面就没有再出现过这种撞坏电感的现象。(4) 做好隔离了, 但一加速度控制就有影响信号取值,没有速度控制,就没有影响。解决方法:信号地,模拟地隔离。电机编码器外壳接地。6 总结本课题通过对无人车控制系统性能的研究分析,完成了系统软件的设计工作,对其控制算法进行了初步的研究并在硬件基础上完成了调试工作。经过后期的调试工作,检验了该系统的性能指标,符合设计的要求。在研究与设计的过程中,本人主要完成了以下几个方面的工作:1软件设计中采用面向智能体的
52、编程方法,使得系统的软件具有很好的结构性、层次性、可移植性,同时也简化了开发的难度,通过软件的后期优化,提高了系统运行的速度,降低了微控制器资源的占用率。2参考大量文献并通过实验,实现了模糊自适应pid控制器的设计,并应用自动导引车转向的控制当中;通过对变结构pid控制的算法研究,将其应用到了电机转速调节的控制中。这两种方法都遏制了常规pid控制的缺点,极大的提高了系统运行的稳定性和快速性。3扰动跟踪问题,如果要有较强的抗扰动能力,特别是持续扰动,应能够完成系统模式识别,得到系统的模型,在此模型下,完成期望值的运行。在调试过程,参数耦合比较紧密,调试参数时提高了某个运行参数的期望值,但又降低了
53、其它方面期望值。本课题有待改进的地方: 1模糊pid算法中模糊控制器的优化,控制规则和隶属函数都需要根据大量的实验进行改进,并提高其软件程序的执行效率。2系统功能的拓展,人机接口要更加人性化,提高操作的简便性。3. 软件系统的进化也是需要大量时间和各方面的知识来完成,目前软件系统还存在许多的缺陷,例如系统的自学习,知识库管理等。同时在完成系统的设计时,对于整个系统过程的把握没有达到很好,对于已完成的设计缺乏全方面的书面记载,不利于项目的延续。参考文献 1 郭峰,袁星军,余达太等.自动导引车系统关键技术的研究m.北京科技大学学报,1999(2):220.2 李以农,卢少波,杨柳.车辆转向与驱动综
54、合控制及横向速度观测器的设计j.汽车工程,2007(8):692-697.3 李仕伯,马旭,卓晴.基于磁场检测的寻线小车传感器布局研究j.电子产品世界,2009(12):41-44.4 马冰然.电磁场与电磁波m.广东:华南理工大学出版社,2007.5 彭军,传感器与检测技术.西安电子科技大学出版社,2003:263315.6 夏德矜,翁贻方.自动控制理论(第二版)m.北京:机械工业出版社,2003.7 于海生.微型计算机控制技术m.北京:清华大学出版社,1999.8 阮毅,陈伯时.电力拖动自动控制系统-运动控制系统,(第四版)北京:机械工业出版社, 2009.89 孙增沂等.智能控制理论与技术m.北京:清华大学出版社,1997.10 王睿星.自动导引车系统设计与研究d.南京理工大学硕士学位论文,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饲料级磷酸氢钙项目可行性实施报告
- 遮光剂产品项目运营指导方案
- 锂铁电池产品相关项目建议书
- 止损的重要性和注意事项
- 贵州省铜仁市思南县思南中学2024-2025学年高三3月联合检测试题(物理试题理)试题含解析
- 贵州省天柱民中、锦屏中学2024-2025学年高三3月高考一模物理试题含解析
- 贵州省黔西南兴义市2024届小学六年级第二学期小升初数学试卷含解析
- 贵州省黔西南布依族苗族自治州安龙县2024年数学五年级第二学期期末教学质量检测模拟试题含解析
- 一、沉降速度1、球形颗粒的自由沉降2、阻力系数3、影响沉
- 病毒清除工艺验证探讨及ICH Q5A R2解读
- 城市轨道交通车辆-城市轨道交通车辆的编组及运行
- 老年人预防艾滋病健康教育核心信息
- 小学防地质灾害知识讲座
- 普通高中学业水平合格性考试(会考)语文试题(附答案)
- 园林绿化种植排水排盐工程全套
- 奶茶店食品安全培训
- 家政服务公司项目融资计划书
- 110kVXX线路安装防鸟设施工程方案
- 计算机网络技术基础(第6版)全套教学课件
- 12、口腔科诊疗指南及技术操作规范
- 城镇燃气报警控制系统安装过程检查记录
评论
0/150
提交评论