收藏 分销(赏)

基于MC9S12DG128微控制器智能汽车设计.doc

上传人:丰**** 文档编号:3923285 上传时间:2024-07-23 格式:DOC 页数:19 大小:108.04KB
下载 相关 举报
基于MC9S12DG128微控制器智能汽车设计.doc_第1页
第1页 / 共19页
基于MC9S12DG128微控制器智能汽车设计.doc_第2页
第2页 / 共19页
基于MC9S12DG128微控制器智能汽车设计.doc_第3页
第3页 / 共19页
基于MC9S12DG128微控制器智能汽车设计.doc_第4页
第4页 / 共19页
基于MC9S12DG128微控制器智能汽车设计.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、第一届“飞思卡尔”杯全国大学生智能汽车邀请赛技 术 报 告学 校: 华北电力大学(保定)队伍名称: 睿智参赛队员: 刘廉隅 郭丽君 汪志佳带队教师:林永君关于技术报告和研究论文使用授权的说明本人完全了解第一届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中.参赛队员签名:带队教师签名:日 期:基于MC9S12DG128微控制器智能汽车设计林永君,刘廉隅,郭丽君,汪志佳(华北电力大学

2、 自动化系,保定 071003)文 摘本设计采用飞思卡尔16位微控制器MC9S12DG128作为小车模型的核心控制单元,路面黑线检测使用反射式红外光电传感器,车速检测使用断续式光电开关,通过接收管接收光的频率时时计算小车速度,利用PWM技术动态控制舵机转角以及电动机的转速。采用PID控制思想,用单片机C语言编程,智能化控制使小车沿黑线行走。通过仿真以及实验检测,PID控制思想可以对小车进行较好的控制,使其快速、平稳的沿黑线行驶。关键词:微控制器;传感器;智能控制;汽车模型;PIDIntelligent car design based on MC9S12DG128 micro controll

3、erLin yongjun Liu lianyu Guo lijun Wang zhijia(North China Electric University Automation Department ,Baoding071003)Abstract:This design uses freescale 16bit micro controller MC9S12DG128 to be the car models core control unit。 The detecting of the black line on the roads surface use reflective infra

4、red photoelectric sensors 。The detecting of vehicles speed uses offandon like photoelectric switch, and calculates the cars speed ever and again by receiving light frequency with the receiving cells , and uses the PWM technology dynamic controls actuators corner as well as the rotational speed of th

5、e motor. Uses the idea of the PID control, with C programming in the single chip microcomputer, the intellectualized control causes the car to run along the black line。 Through the simulation as well as the experiment examination, the PID control may carry on a better control to the car, and make it

6、 run along the black line fast and steadily。 Key word: Micro controller; Sensor; Intelligent control; Car model; PID 目录第一章引言1第二章智能汽车方案的选择与论证22。1 电动机驱动调速模块22。2 舵机驱动模块22。3 路面黑线探测模块22。4 车轮测速模块32。5 控制模块32。6 电源4小结4第三章系统的具体设计与实现63。1 系统的硬件设计63.1.1 电动机PWM驱动模块的电路设计与实现63.1。2路面黑线检测模块的电路设计与实现63。1.3 车速检测模块的设计与实现

7、73。1.4 舵机驱动模块的设计与实现73.1。5 电源的设计与实现83.2 系统的机械设计83。2。1车模结构的改进与调整83.2。2 路况检测传感器的设计制作与安装93.2。3 测速传感器的设计制作与安装93。2.4 系统电路板的固定103.3 系统的软件设计103.3。1路面黑线检测103。3。1.1 黑线检测原理:103。3.1.2 黑线检测算法113。3.2 车速检测123.3。3 控制过程133。3.3.1 舵机控制原理133.3。3。2 电机控制原理14第四章智能汽车控制流程16第五章结论17参考文献附录A 程序代码v 第一章 引言自从开始制作智能汽车以来,我们已经在系统规划论证

8、、方案选择实施以及实验验证等方面做了大量的工作,智能汽车制作基本完成。这个技术报告对智能汽车制作的方案选择、系统的软硬件设计、控制理论论证以及整体控制流程做了比较详细的说明.本设计的特色在于将光敏三极管检测到的电压转换成连续的模拟量,在传感器数量和布局受到限制的条件下对黑线位置进行精确定位;用简单的PID控制算法有效控制小车.第二章 智能汽车方案的选择与论证第二章 智能汽车方案的选择与论证图2-1系统可以划分为几个基本模块,如图2-1.对各模块的实现,分别有以下一些不同的设计方案。2。1 电动机驱动调速模块方案一:采用专用的PWM电机驱动芯片,通过PWM精确调节车速.本方案优点在于电路简单、调

9、速精确,但芯片功率较小、不易散热、稳定性没有保障。方案二:采用达林顿管组成的PWM驱动电路,通达控制达林顿管使之工作在占空比可调的开关状态,调整电机转速。由于管子工作在饱和状态,效率较高;并且管子本身功率较大,稳定性能也很好。基于上述理论分析,拟选择方案二.2。2 舵机驱动模块方案一:单片机PWM信号直接控制舵机。方案二:单片机PWM信号通过PWM驱动电路驱动舵机。 由于舵机自身内部带有驱动电路可采用PWM信号直接驱动舵机,但是为了防止单片机的过载、所以采用方案二。2.3路面黑线探测模块路面信息检测的任务就是在白色路面上检测出黑线相对于小车的位置,以确定小车的行使方向。这种检测主要是对黑白两色

10、区分,常用的方式有两种:一种是用摄像头采集路面信息并将图像送至单片机进行分析,一种是根据黑白对光反射系数的不同,对路面进行光的发射与接收,根据接收到光的强弱来定位黑线的位置。方案一:安装CCD摄像头方式。在小车车头顶部安置摄像头,对车前方大范围的路况进行连续拍摄,将图象送至单片机进行图象识别。这种方式可以提前将路况了解得十分完整,达到预先判断的效果,如果能够实现,一定是非常有效的检测方案。但是这个方案的难点在于,现在市场上CCD原件的分辨率大多为320*240,就算是只采集黑白两种颜色,每次采集的数据量大约为320240/8=9600字节,也就是9.6K字节,对于一个只有8KRAM的16位单片

11、机来说处理量过大,不能及时处理数据就意味着不能对小车方向做出及时有效的控制,因此这种方案无法达到比赛要求。方案二:红外光发光二级管与光敏三级管组成的发射接收器,将光敏三级管电流变化转变成电压变化信号,再将电压变化信号变成高低电平送至单片机。由于采用了红外光管代替可见光管有效防止了外界光源的干扰,输出信号为开关量有利于单片机对信号的处理;但是每对传感器只能输出两个信息量,在传感器数量和布局受到限制的条件下很难对黑线位置进行精确定位。方案三: 红外光发光二级管与光敏三级管组成的发射-接收器,将光敏三级管电流变化转变成电压变化信号,再将电压信号放大送至单片机A/D转换口。这种方式不但有方案三的优点,

12、而且传感器输出的是连续的模拟量,在一定的范围内可根据电压与黑线位置的关系曲线定位黑线的位置,所以通过这种方式可在传感器数量和布局受到限制的条件下对黑线位置进行精确定位。通过比较,方案三易实现且能够达到较高的检测精度,这更有利于采用PID控制策略对小车进行有效控制,因此采用方案三。2.4车轮测速模块方案一:采用霍尔集成片,此器件内部由三片金属组成,当磁铁正对金属板时,由于霍尔效果使金属板发生横向导通,因此可以在车轮上安装磁片,将霍尔集成片固定在车轮旁边,通过对脉冲的计数进行车速测量. 方案二:反射式光电开关.在车轮一侧贴上黑白相间的贴片,将由红外光发光二级管与光敏三级管组成的发射-接收器对准贴片

13、。在车轮转动时光可间断地反射到三级管上.通过对间隔周期的测量,计算出车速。 以上两种都是比较可行的测速方法,但是由于车模较小,方案一的磁片安装十分困难,也容易产生相互干扰,相反方案二适用于精度较高的场合,所以拟采用方案二。2。5控制模块方案一:采用模糊控制。模糊控制不需要建立精确的数学模型,但是需要根据经验建立合适的隶属函数。它是解决不确定系统的有效途径,并且具有较强的鲁棒性。方案二:采用神经网络.神经网络控制同样不需要建立精确数学模型,神经网络在控制系统中的应用主要有两个方面:一是采用神经网络作为被控系统的辨识器;另一是神经网络在控制系统直接充当控制器。这些都需要大量的试验来让神经网络在不同

14、环境下进行学习.方案三:采用PID进行控制.这种方法建立在被控对象精确数学模型基础上的。考虑到被控对象-小车的数学模型比较简单,可以用以下方程表示:舵机:电机:PID算法可以对此控制对象进行简单有效的控制。由于模糊控制、神经网络控制比较复杂,需要大量的试验,且不易编程实现。基于上述理论分析,拟选择方案三。2。6 电源电源可分为三个部分:电机电源、单片机以及光电传感器和LED电源、舵机电源.电机电源:为提高控制效率,采用直接将电池电压通过电机驱动模块加在电机上。单片机电源:为了保证提供稳定的5V电压,采用稳压器件LM2940将电池电压恒降至5V.舵机电源:由于舵机电源电压范围在4。8V至6V之间

15、,不能直接将电池电压加在舵机上。方案一:将电池电压用稳压器件稳定到舵机电源电压范围之内,但是由于舵机内部的动力机构是直流电机,此电机工作时处于频繁的启停状态,会对稳压器件产生很大冲击,容易将稳压器件击穿。方案二:通过二级管降压将电池电压降至舵机电源电压范围之内,这种方法电路简单、功耗小、性能稳定。 通过比较采用方案二。小结:经过一番比较论证,我们决定系统各个主要模块最终方案如下:电动机驱动与调速模块:采用达林顿管组成的PWM驱动电路.舵机驱动模块:单片机PWM信号通过PWM驱动电路驱动舵机.路面黑线检测模块:采用红外发射接收器,经信号放大、A/D转换、编程精确定位黑线位置。车速检测模块:采用光

16、电断续开关构成的光电感应系统.控制模块:采用PID控制.第三章 系统的具体设计与实现第三章 系统的具体设计与实现3。1系统的硬件设计3。1。1电动机PWM驱动模块的电路设计与实现电机PWM驱动电路如图31-1所示.本电路是一个基于PWM驱动单向转动电机的一个低功耗、低压降、高效率、高驱动能力的驱动电路。电路主要采用大功率达林顿管TIP42C作为驱动管,以保证电机启动瞬间的大电流要求。电路中用双管驱动是因为我们在实际运行中发现用单管驱动时赛车全速前进速度不够理想,经测试发现单管运行时压降达到2.4V;加了双管驱动后,压降仅为0。8V,小车全速前进速度比单管驱动时大大提高.电路中二级管的作用是起到

17、在输入信号由高到低时,通过二级管形成电机感应电势的回路,起到保护电机和驱动管的作用。电机加旁路电容是为了使电机运行更加平稳,减小电池电压的波动。图31-1电机PWM驱动电路3。1。2路面黑线检测模块的电路设计与实现为了检测到路面上黑线的具体位置,在车前端安装了一排光电传感器,由8个红外光发光二级管和7个光敏三级管排列组成。为了精确定位黑线位置将三级管的输出信号转换放大成电压的模拟量送至单片机A/D转换口转换成数字量后通过程序算法给出黑线的精确位置。发射、接收和信号处理的具体电路如图312.红外发光二级管限流电阻采用了510是为了提高发射光的强度,削弱外部光源的干扰,提高传感器的抗干扰能力。 图

18、3-12 黑线检测模块电路 由于环境条件的不同和跑道路面材料的不同会引起光电传感器输出信号大小的不同,为了保证输出信号范围恒定,在电压信号放大电路中、反馈电阻采用了电位器。3.1.3 车速检测模块的设计与实现在差速器齿轮的一侧贴上一张用电脑绘制打印出来的黑白相间的纸片,如图31-3所示,将配对好的光电开关固定在纸片的正前方,齿轮带动纸片转动时光电开关接收管便得到间断的红外光信号、从而输出间断的高低电平分信号,信号经整形送至单片,以实现车速的检测.图31-3将纸片贴在差速器齿轮上而没有贴在车轮上是由于两后轮的轴并不是一体的,两轴间是通过差速器连接的、在转弯时两车轮转速不同。图31-4光电开关及其

19、信号处理电路光电开关及其信号处理电路如图314.在纸片转动时光电传感器的输出电压变化在0。8V4.2V之间,为了提高稳定性电压比较器的比较电压取两个极限电压的平均值2.5V.由于常用运放的输出电压幅度都很难升到电源电压、也很难得很低,所以在运放输出端又加了只三级管增加输出电压的幅度以防止单片机对输入信号的误判.3。1.4 舵机驱动模块的设计与实现舵机驱动模块电路如图3-1-5所示,由于舵机自身内部带有驱动模块,而且驱动信号的输入阻抗相当大,所以采用了一个简单,低功耗的PWM信号驱动电路。图3-15舵机驱动电路3.1.5 电源的设计与实现电机电源:为提高控制效率,采用直接将电池电压通过电机驱动模

20、块加在电机上。图3-16单片机以及光电传感器电源电路单片机以及光电传感器电源:电源具体电路如图3-16所示,采用低压差线性稳压器件LM2940。该稳压器件输入输出压差低输出电流大(最大输出1A)输出电压稳定精度高。可为单片机提供一个稳定的5V电源。二级管的作用是防止稳压器件的反向击穿.舵机电源:电源电路图如图31-7所示:降压管采用硅二级管1N4007,电池在充满电后空载电压能达到8V而在满载时电压又降至7V左右,为了保证给舵机的电压保持在4。8V至6V之间,以每只硅管压降0。7V计算、加三只管刚好能满足要求。图317舵机电源电路3。2 系统的机械设计车模的机械部分分为:车模结构的改进与调整;

21、路况检测传感器的制作与安装;测速传感器的制作与安装;系统电路板的固定。3。2。1车模结构的改进与调整影响车模运动性能的机械结构主要有前轮的转向传动机构、后轮的转动传动机构,所以我们对与这几个机构有关的各部件进行了相应的调整。在实验中发现在舵机自锁的情况下前轮有很大的转向空程,经过仔细的调试发现舵机自身空程很小,主要原因来自于从舵机转轴到转向拉杆的传动机构上的转动空程,经过对这个传动机构的改进完全消除了这部分空程。改进后在舵机自锁的情况下前轮转向空程变得很小,大大提高了车模的转向精度。后轮转动传动机构的调整主要是对电机主轴齿轮与差速器齿轮配合的调整和对差速器预紧力的调整。在齿轮配合中若配合过紧则

22、转动阻力拒太大影响车速、若配合过松则容易发生滑齿,在调整中力求使两齿轮的齿合线相重合以达到最佳配合效果。对于差速器的预紧力如果过大会减弱差速器的差速效果,在转弯时两后轮速度差不够会增加车模前进阻力,如果预紧力过小则在车模加速时差速器容易发生打滑。调整预紧力时,在保证最大加速度时差速器不发生打滑前提下尽量减小。3。2.2 路况检测传感器的设计制作与安装图3-21传感器结构图传感器结构图如图32-1所示,由于路况信息的检测靠7路传感器输出的电压信号作为计算依据,所以各传感器的输也特性曲线必须相同,这就要求各管的间距和离地面的距离要相同。为了达到这一要求我们采用了传感器定们板,在定们板上开上15个直

23、径4。8mm、间距7。62mm的孔,将发射管和接收管按顺序插入孔中使各管露出板的距离相等然后再将定位板用螺丝固定在电路板上,调整两边螺丝使定们板与电路板平行,最后再将各管焊接在电路板上。在车模前端底盘上反向固定有三颗3*40的螺丝,传感器靠螺母固定在三颗螺丝上,调节固定螺母在一平面内以使电路板与底盘平行,同时调节几个螺母的上下位置改变传感器距离地面的距离使传感器信号输出范围最大。3。2。3 测速传感器的设计制作与安装图3-22测速传感器结构图测速传感器的结构图如图3-22所示,光电开关采用经配对的光电管焊接在电路板上,为了提向反射光强度两管中心线成30角。光电开关用铝合金支架固定在差速器齿轮正

24、前方。差速器齿轮上贴有黑白相间的纸片,如图3-13所示,纸片分为24个区域12个黑色区域,12个白色区域,也就是说车轮每转动一周传感器输出12个周期的脉冲。3。2.4 系统电路板的固定系统电路板靠螺丝直接固定在车模中后部的底盘上方,S12电路板直接插接在系统电路板上。经改造后,小车车身长30cm,宽16cm,高10cm,重量1。8kg.3.3系统的软件设计单片机MC9S12DG128是控制核心,实现对路面黑线的软件检测,小车方向控制,车速检测,电动机驱动。3。3.1路面黑线检测3。3.1.1 黑线检测原理:黑线检测共用8个红外发光管,7个红外接收管,将7个红外接收管编号为(3,2,-1,0,1

25、,2,3)即中间管为0号管。采用MC9S12DG128自带的A/D转换功能,通过设置相应寄存器,可以将7个接收管接收的光强信号由模拟量转换成相应的数字量。当接收管位于黑线正中时,输出电压最高约4。5伏,转换成数字量大约为720,远离黑线的接收管输出电压最低约为1。1伏,转换成数字量大约为330。图331单个接收管的感光曲线经实验得到单个接收管的感光曲线如图3-3-1所示。因为采用PID控制策略,所以黑线位置反馈信号越精确,越有利于PID控制,控制效果也会越好.其中当接收管距黑线较远时,曲线在最小值处,输出的数字量大约在230300之间变化,且变化很缓慢.当接收管渐渐靠近黑线时,输出数字量变化很

26、快,在300700之间变化,且曲线斜率几乎保持不变,因此可认为管子输出电压在300到700之间与移动的距离成线性关系,将其视为一段直线其斜率根据所测得数据计算可得,k=(700300)/14。当接收管靠近黑线中心4mm以内,输出在700720之间变化,曲线又趋平缓,且有波动。黑线检测流程如图33-2。图332黑线检测流程图程序初始化后,将接收管数据A/D转换、排序,判断是否有大于600的数,600是经验数值,如果没有大于600的数,说明小车没在黑线上,那么继续A/D转换数据、排序,直到有大于600的数;当有大于600的数时,说明小车头传感器在黑线上,我们可以根据测得各个接收管A/D转换后的数值

27、,通过下面的算法可以判断出黑线位置。图333 拟合后感光曲线图3.3.1.2 黑线检测算法经过matlab处理,可以将曲线线性区域拟合为一条直线(如图333中直线),与曲线基本重合.A/D转换程序每转换一次,我们都可以得到一组7个240720的数,找到7个管子中电压值最大的管子,并设最大值为max,记录其接收管序号。再取其左右两个值,其一应为次大值max_1,另一个为次次大值max_2。如图334所示.图334最大的数值所对应的接收管最靠近黑线中心,且黑线应该在输出为最大值的接收管和输出为次大值的接收管之间。因为两个接收管输出值max_1、,max_2均在300道700之间,所以次大值和次次大

28、值肯定都能落在斜率为k的这段直线上。我们把次大值和次次大值代入公式,即可得此接受管距离中心线的距离。用接收管编号乘上15便可得到此接收管距离0号接收管的距离,正号表示在0号管右边,负号表示在0号管左边。当输出为次小值的接收管在0号管右边时,小车中心偏离黑线的距离应该为此管距0号管距离加上它距黑线的距离。当它在0号管左边时,小车中心偏离黑线的距离应该为此管距0号管距离减去它距黑线的距离。按此法计算所得值为正说明黑线在小车左边,为负说明小车在黑线右边。即以小车中心位置,零号管的位置为坐标原点,当黑线在小车左边时输出为负值,在右边时为正值.由于只用次大值可能造成误差,我们这里对次次大值用同样的方法计

29、算小车偏离中线距离,然后两者相加取均值. 由于七个接收管性能相似,其最大值、最小值、线性区以及曲线走势极为相近,所以上面用中间接收管的算法也可以用于其它六个接收管。用Matlab将三个接收管特性比较,其曲线如图3-35:图335将一组实测数据(235、253、571、686、309、243、227),代入程序测得小车中心偏离黑线11。9mm,取整数后为12mm。实际黑线在小车左边12mm处。其误差范围在2mm.3.3.2车速检测(如图3-36)图336 车速检测当车轮转动时,安装在车轴上的圆形折光板上的圆孔依次通过断续式光电开关,每通过一个圆孔产生一个脉冲.因此只需记录固定时间内捕捉到的脉冲数

30、,然后除以时间,便能得到实际车速。其中,时间由定时器的时钟计算得到。3.3.3控制过程3。3。3。1 舵机控制原理采用PID控制,按照7个接收管建立一维坐标系,0号管为坐标原点,面向车前进方向,左边为负,右边为正,黑线位置为5050.为控制小车能在路中间行驶,转弯时不偏离跑道,将“0作为给定值,实时测得的黑线位置作为反馈值.当小车偏离跑道时,调整舵机转角,使反馈值跟踪给定值,让小车一直沿黑线行驶。(1) 被控对象:小车舵机,根据经验对系统建模型,将其简化为积分,比例,一阶惯性加迟延环节。由于传动机构非常灵敏,所以迟延时间,和惯性时间都很短,根据经验设参数,迟延时间常数0。1s ,惯性时间常数0

31、。2s 。综上所述,其传递函数为:(2) 调节器:采用比例控制.经整定其参数可设置为,比例系数 ,积分时间常数 s。舵机控制原理方框图如图337:图337舵机控制原理方框图用Matlab仿真,阶跃相应曲线如图33-8。图338 控制舵机阶跃相应曲线 由此图可以看出,小车舵机可以由比例环节P控制住.3.3.3.2 电机控制原理电机转速与小车速度成比例关系.因为小车在直线应当加速,在转弯处需要减速,小车舵机转角越大,应该减速越多。所以由舵机的12个转角度数(左右两侧个6个转角)给出电机6个档位(电机6个档位转速由实验与经验给定),根据舵机转角改变电机转速给定值,测量电机实际转速作为电机转速实际值,

32、令实际值跟踪给定值,控制小车速度。采用反馈闭环控制:(1) 被控对象:为小车电机,仍根据经验对系统建模型,将其简化为比例,一阶惯性加迟延环节.同舵机一样其传动机构非常灵敏,所以迟延时间,和惯性时间都很短,通过实验测得迟延时间常数0。1s,惯性时间常数0.2s。综上所述其传递函数为 。(2) 调节器:采用比例,积分.经整定其参数可设置为,比例系数 ,积分时间常数 s。控制原理方框图如图33-9:图3-3-9 电机控制原理方框图图3-3-10 电机阶跃相应曲线加阶跃相应,用Matlab仿真其控制效果如图33-10。由此曲线可以看出电机可以由PI控制得很好。由于小车舵机、电机模型是根据经验给出,而且

33、实际小车舵机、电机有一定的耦合关系,控制器kp、T等参数都需要根据实验来整定、完善.第三章 系统的具体设计与实现第四章智能汽车控制流程智能汽车的控制流程如图4-1图4-1 智能汽车控制流程图首先开始程序,初始化程序,将7个光敏接收管接收到的电压信号经过A/D转换为7个数字信号,对这7个数据进行由大到小排序,判断最大值是否有大于600(经验数值)的数,如果没有,那么通过PWM程序将电机转速置于0档,接收管继续采数;如果最大值大于600,则通过黑线位置判断程序计算黑线位置。将黑线位置给舵机PID控制模块后,继续判断是否有大于600的数,这样循环刷新黑线位置。然后,因为舵机PID给定值定为0,黑线位

34、置(5050)为实际值,当实际值不为0时,经PWM程序控制舵机转角,直到实际值变为0,此时第0号管位于黑线中心。最后,根据舵机转角给出电机转速的档位,作为电机PID控制的给定值,电机PWM程序控制电机转速,使电机转速实际值跟踪给定值.整个控制小车的程序在这样的循环往复的进行中,控制小车沿黑线前进。第五章结论经过理论论证、仿真研究与实验验证,本控制方案可以使小车很好的沿黑线行驶。小车行驶最大速度约为1。5m/s。但是由于采用连续的数值(而非开关量)对小车舵机控制,黑线位置的检测、计算受外界环境尤其是光线强度影响较大,黑线位置的求取算法、程序还需要进一步改善。小车的模型参数、控制参数都还需要大量的

35、实验,来继续完善对小车的控制,优化小车的速度.参考文献1刘会英,杨志强。 机械原理。 北京:机械工业出版社,20032韩利竹,王华. MATLAB电子仿真与应用2版。北京:国防工业出版社,2003。93于希宁,刘红军。 自动控制原理。 北京:中国电力出版社,20014姚佩阳,曹锦,常永昌,张科英,李锋。 自动控制原理。 北京:清华大学出版社,20055周斌,蒋荻南,黄开胜. 基于虚拟仪器技术的智能车仿真系统。2006, 02(S) :1321346邵贝贝. 单片机嵌入式应用的再现开发方法。 北京:清华大学出版社,2004。107马忠梅,籍顺心,张凯,马岩. 单片机的C语言应用程序设计3版。北京

36、:北京航空航天大学出版社, 2003。118徐叙瑢, 苏勉曾。 发光学与发光材料。 北京:化学工业出版社 20049苏大图。 光学测量. 北京:机械工业出版社 1988.610翟瑞彩,谢伟松数值分析M天津:天津大学出版社,200011Holland J HAdaptation in natural and artificial systems。An introductory analysis with applications to biology,controland artificial intelligence Arm Harbor University ofMichigan Press

37、,1975附录A 程序代码/mydefine.h/unsigned int timer_16ms;unsigned int timer_16ms_old;/全局变量存放unsigned int ad_data8; signed int in7;int num_max;int data_max;int wz;float n3,k,s1,s2,s,x1,x2;float min_1=300;float max_1=700;float KP;float KI;float JF_LMT=100;float DuoJ_PIDout;float DianJ_PIDout;/include / common

38、 defines and macros /include mc9s12dg128.h /* derivative information /include mydefine。hpragma LINK_INFO DERIVATIVE ”mc9s12dg128b”/寄存器初始化void csh_zcx(void) / TSCR1 = 0x90; TSCR2 = 0x83; TIE=ox01; / DDRB=0xff; PORTB=0xff; / ATD0CTL2 = 0xc0; ATD0CTL3 = 0x38; ATD0CTL4 = 0x05; ATD0CTL5 = 0xb0; ATD0DIEN

39、= 0x00; / PWMCNT4=0x00; PWMPOL=0x10; PWMDTY4=0x25; PWMPER4=0x80; PWMCNT6=0x00; PWMDTY6=0x25; PWMPER6=0x80; PWMPRCLK=0x00; PWMSCLA=0x02; PWMCLK=0x10; PWME=0x10;/ DDRT_DDRT7=0; PTT_PTT7=0; PACTL=0x50; TCTL4=0x01;/ timer_16ms = 0; / Asm cli interrupt void timerOv(void) DisableInterrupts; TCNT = 0x0000;

40、 timer_16ms +; timer_16ms = timer_16ms & 0x0007; cl_zcx(); EnableInterrupts; asm rti /比较AD转换数据大小int data_bj()int num=0;int i,j;for(j=0;j=6;j+)inj= ad_dataj; int data_max=in0;for(i=1;i=6;i+) if(data_maxini) data_max=ini; num_max=i; /计算黑线位置int hx_wz();n0=innum_max1; n1=innum_max;n2=innum_max+1;k=(max_

41、1-min_1)/14。0;if(n0n2)x1=(max_1n2)/k+6); s1=15*(num_max+13)+x1;x2=(max_1n0)/k+6;s2=15( num_max 13)+x2;s=(s1+s2)/2; else x1=(max_1-n0)/k+6; s1=15*( num_max -1-3)+x1; x2=((max_1n2)/k+6);s2=15*( num_max +13)+x2;s=(s1+s2)/2;return(s);/调节器pI程序float pi_zcx(float KP,float KI,float fx_pv)err_cur=fx_spfx_pv;

42、err_jf=err_jf+err_cur;if(err_jfJF_LMT)err_jf=100;elseif(err_jfJF_LMT)err_jf=100;out_cur=KP(err_cur)+KIerr_jf; return out_cur; /舵机void duoji_zcx(void) float err_cur,err_jf,out_cur,fx_sp,fx_pv;fx_sp=0; err_jf=0;fx_sp=0;fx_pv=s; /电机void dianji_zcx(void) float err_cur,err_jf,out_cur,fx_sp,fx_pv,time; er

43、r_jf=0;if(time-1。50。05)|(time1。50.05) fx_sp=2。5;else if(time-1.75-0。05|(time1.75)0。05) fx_sp=1.0;else fx_sp=0。5;fx_pv=speed_zcx(void);/小车速度float SD(void) if (timer_16ms = 0) mcs=PACN32; pl=mcs/128; PACN32=ox0000; /处理子程序void cl_zcx(void) ad_data0 = ATD0DR0; ad_data1 = ATD0DR1; ad_data2 = ATD0DR2; ad_data3 = ATD0DR3; ad_data4 = ATD0DR4; ad_data5 = ATD0DR5; ad_data6 = ATD0DR6; data_bj(); wz=hx_wz();SD();DuoJ_PIDout=duoji_zcx(); /舵机PWM PWMDTY4int(DuoJ_PIDout); DianJ_PIDout=dianji_zcx(); /电机PWM PWMDTY6=int(DianJ_PIDout);/主程序void main(void) csh_zcx(); for(;)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服