基于单片机控制的步进电机的毕业论文课程设计报告书

上传人:无*** 文档编号:98150408 上传时间:2022-05-28 格式:DOC 页数:87 大小:1.39MB
返回 下载 相关 举报
基于单片机控制的步进电机的毕业论文课程设计报告书_第1页
第1页 / 共87页
基于单片机控制的步进电机的毕业论文课程设计报告书_第2页
第2页 / 共87页
基于单片机控制的步进电机的毕业论文课程设计报告书_第3页
第3页 / 共87页
点击查看更多>>
资源描述
第一章 前言1.1步进电机简介步进电机最早是在1920年由英国人所开发。1950年后期晶体管的发明也逐渐应用在步进电机上,这对于数字化的控制变得更为容易。以后经过不断改良,使得今日步进电机已广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。在生产过程中要求自动化、省人力、效率高的机器中,我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合步进电机用得最多。步进电机作为执行元件,是机电一体化的关键产品之一, 广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。步进电机可以直接用数字信号驱动,使用非常方便。一般电动机都是连续转动的,而步进电动机则有定位和运转两种基本状态,当有脉冲输入时步进电动机一步一步地转动,每给它一个脉冲信号,它就转过一定的角度。步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率与电动机绕组通电的相序,便可获得所需的转角、转速与转动方向。在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。因此非常适合于单片机控制。步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以与光学仪器中得到广泛的应用。步进电动机已成为除直流电动机和交流电动机以外的第三类电动机。传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。第二章 步进电机工作原理与系统方案论证2.1步进电机工作原理211步进电机结构电机转子均匀分布着40个小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开0、1/3、2/3,(相邻两转子齿轴线间的距离为齿距以表示),即A与齿1相对齐,B与齿2向右错开1/3,C与齿3向右错开2/3,A与齿5相对齐,(A就是A,齿5就是齿1)下面是定子和转子的展开图: 图2.1212 步进电机的旋转:如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。 如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3,此时齿3与C偏移为1/3,齿4与A偏移(-1/3)=2/3。 如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3,此时齿4与A偏移为1/3对齐。 如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3,这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A通电,电机就每步(每脉冲)1/3,向右旋转。如按A,C,B,A通电,电机就反转。 由此可见:电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系,而方向由导电顺序决定。 图2.2不过,出于对力矩、平稳、噪音与减少角度等方面考虑。往往采用A-AB-B-BCC-CA-A这种导电状态,这样将原来每步1/3改变为1/6。甚至于通过二相电流不同的组合,使其1/3变为1/12,1/24,这就是电机细分驱动的基本理论依据。不难推出:电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移1/m,2/m(m-1)/m,1。并且导电按一定的相序电机就能正反转被控制这是步进电机旋转的物理条件。只要符合这一条件我们理论上可以制造任何相的步进电机,出于成本等多方面考虑,市场上一般以二、三、四、五相为多。 2.2 课程设计目的、要求与设计方案论证2.2.1 设计目的(1)设计并实现给定步进电机的控制;(2)进一步掌握步进电机的控制方法;(3)进一步掌握单片机硬件和软件的综合设计方法。2.2.2设计要现功能(1)电机工作方式为三相双三拍,初始转速100r/min ;(2)能够实现电机的启/停功能;(3)能够实现电机的正/反转功能;(4)能够实现电机的加/减速功能。2.2.3设计方案论证(1)控制方式的确定步进电机控制是一个比较精确的控制,步进电机开环控制系统具有成本低、简单、控制方便等优点,在采用单片机的步进电机开环系统中,控制系统的CP图2.3脉冲的频率或者换向周期实际上就是控制步进电机的运行速度。系统可用两种办法实现步进电机的速度控制。一种是延时,一种是定时。延时方法是在每次换向之后调用一个延时子程序,待延时结束后再次执行换向,这样周而复始就可发出一定频率的CP脉冲或换向周期。延时子程序的延时时间与换向程序所用的时间和,就是CP脉冲的周期,该方法简单,占用资源少,全部由软件实现,调用不同的子程序可以实现不同速度的运行。但占用CPU时间长,不能在运行时处理其他工作。因此只适合较简单的控制过程。定时方法是利用单片机系统中的定时器定时功能产生任意周期的定时信号,从而可方便的控制系统输出CP脉冲的周期。(2)驱动方式的确定步进电机的驱动一般有两种方法,一种是通过CPU直接来驱动,这种方法一般不宜采用,因为CPU的输出电流脉冲是特别小的它不能足以让步进电机的转动;别一种是通过CPU来间接驱动,就是把从CPU输出的信号进行放大,然后直接驱动或是再通过光电隔离间接来驱动步进电机,这种方法比较安全可靠。固本次设计应采用CPU间接驱动步进电机。用编码器的测速发电机作为转速测量工具,因为选择了闭环控制,就必须有反馈元件,反馈元件一般有两种,一种是采用同轴的测速发电机,把步进电机的转速反馈回来,然后通过显示器显示出来并对步进电机进行调节;别一种是通过光同轴的电编码器把步进电机的转速反馈回来对步进电机进行调节;两者相比,后者的设计比较简单,价格便宜,安全可靠,污染少。固一般采用后者,用光电骗码器作为反馈元件。(3)驱动电路的选择步进电机的驱动电路有多种,但最为常用的就是单电压驱动、双电压驱动、斩波驱动、细分控制驱动等。但因本次设计对步进电机的精度要求比较高转速的调节围比较广,固应选用驱动芯片8713来驱动,并通过软件来实现步进电机的调速。(4) 基本方案的确定因本次设计的要求,选用三相双三拍步进电机,单片机选用89C51作为控制器。选用8279来驱动显示和键盘。选用8713作为步进电机的驱动芯片并通过光电耦合来驱动步进电机。然后用与步进电机同轴的光电编码器作为反馈元件,并把反馈回的信号经CPU处理后再由显示器显示出来。第三章 系统硬件电路设计3.1 单片机的选择本次设计以CPU选用89C5l作为步进电机的控制芯片89C51的结构简单并可以在编程器上实现闪烁式的电擦写达几万次以上使用方便等优点,而且完全兼容MCS5l系列单片机的所有功能。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFAlsh ProgrAmmABle And ErAsABle ReAd Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案3.1.1单片机的引脚功能(1)VCC(40):电源+5V。(2)VSS(20):接地,也就是GND。(3)XTL1(19)和XTL2(18):振荡电路。单片机是一种时序电路,必须有脉冲信号才能工作,在它的部有一个时钟产生电路,有两种振荡方式,一种是部振荡方式,只要接上两个电容和一个晶振即可;另一种是外部振荡方式,采用外部振荡方式时,需在XTL2上加外部时钟信号。(4)PSEN(29):片外ROM选通信号,低电平有效。(5)ALE/PROG(30):地址锁存信号输出端/EPROM编程脉冲输入端。(6)RST/VPD(9):复位信号输入端/备用电源输入端。 (7)EA/VPP(31):/外部ROM选择端 (8)P0口(39-32):双向I/O口。(9)P1口(1-8):准双向通用I/0口。(10)P2口(21-28):准双向I/0口。3.1.2 主要特性: 与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:全静态工作:0Hz-24Hz三级程序存储器锁定、128*8位部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片振荡器和时钟电路 (1)振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片振荡器。石晶振荡和瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。(2)芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。3.2 步进电机的选择因本次设计的要求,步进电机应选用三相双三拍的步进电机,具体说明如下:三相双三拍控制模型:正转控制模型步序工作状态控制模型二进制十六进制1AB0000001103H2BC0000011006H3CA0000010105H反转控制模型步序工作状态控制模型二进制十六进制1AB0000001103H2CA0000010105H3BC0000011006H控制绕组的通电方式为AB-BC-CA-AB 或AB-CA-BC-AB,每拍同时有两相绕组通电,三拍为一个循环,当A 、B 两相控制绕组同时通电时,转子齿的位置应同时考虑到两对定子极的作用,只有A 相极和B 相极对转子齿所产生的磁拉力相平衡才是转子的平衡位置。双三拍运行时的步距角是30,但双三拍运行时每一拍总有一相绕组持续通电,例如由A、 B 两相通电变为B、 C 两相通电时,B 相保持持续通电状态,C 相磁拉力使转子逆时针方向转动,而B 相磁拉力却起有阻止转子继续向前转动的作用。3.3步进电机与微型机接口电路因为步进电机工作时的驱动电流比单片机端口所能提供的要大得多单片机要控制电机的运动就不能直接将端口与电机各相相连,必须使用一定的接口电路和驱动电路。接口电路一般为锁存器,也有使用可编程接口芯片,如8255。驱动器多选用大功率复合管。当然,考虑到实际使用中的干扰和电压安全,一般都要在单片机与驱动器之间使用必要的光电隔离器。图3.1在图3.1中,若P12口输出为0时,发光二极管不会发光此时光敏管处于截止状态,而达林顿管导通所以C相通电:反之,P12输出为1时,由电路分析可知C相不通电。如按前面所示的表取控制数,按顺序执行,就可以使步进电机安一定的方向步进。第四章 系统软件程序设计步进电机控制程序就是完成环形分配器的任务,从而控制步进电机转动,以达到控制转动角度和位移之目的。首先要进行旋转方向的判断,然后转到相应的控制程序。正反向控制程序分别按要求的控制顺序输出相应的控制模型,再加上脉宽延时程序即可。脉冲序列的个数可以用寄存器CL进行计数。控制模型可以以立即数的形式一一给出。控制标志单元FLAG为00H时,表示正转;为01H时,表示反转。其程序流程图如下图所示:图4.1 程序流程图程序编写:D0 EQU 0D2 EQU 2 ORG 0000HSTART: LJMP MAIN ORG 0003H LJMP INT0 ORG 0100HMAIN: MOV P2,#00H ;等待信号 MOV P0,#FFH MOV R2,#0 MOV R3,#0 MOV R4,#0 CLR IT0 SETB EA SETB EX0 LJMP MAININT0: JNB P2.0,ZHENG;正转 JNB P2.1,FAN ;反转 JNB P2.2,JIA ;加 JNB P2.3,JIAN ;减速速 JNB P2.4,TIN ;停 RETIZHENG: MOV R2,#1 ;正转 MOV DPTR,CHA MOV A,D0 MOVC A,A+DPTR MOV P0,A ACALL YAN0 CPL P0.0 CPL P0.2 ACALL YAN0 CPL P0.0 CPL P0.1 ACALL YAN0 LJMP ZHENGFAN: MOV R2,#0 ;反转 MOV DPTR,CHA MOV A,D2 MOVC A,A+DPTR MOV P0,A ACALL YAN0 CPL P0.0 CPL P0.1 ACALL YAN0 CPL P0.0 CPL P0.2 LJMP FANZHENG1:MOV DPTR,CHA ;加减速正转 MOV A,D0 MOVC A,A+DPTR MOV P0,A CJNE R3,#0,YIA1 CJNE R4,#0,YIA2 CPL P0.0 CPL P0.2 CJNE R3,#0,YIA1 CJNE R4,#0,YIA2 CPL P0.0 CPL P0.1 CJNE R3,#0,YIA1 CJNE R4,#0,YIA2 LJMP ZHENGFAN1: MOV DPTR,CHA ;加减速反转 MOV A,D2 MOVC A,A+DPTR MOV P0,A CJNE R3,#0,YIA1 CJNE R4,#0,YIA2 CPL P0.0 CPL P0.1 CJNE R3,#0,YIA1 CJNE R4,#0,YIA2 CPL P0.0 CPL P0.2 CJNE R3,#0,YIA1 CJNE R4,#0,YIA2 LJMP FAN1JIA: MOV R3,#1 ;加速 MOV R4,#0 CJNE R2,#0,ZHENG1 LCALL FAN JIAN: MOV R4,#1 ;减速 MOV R3,#0 CJNE R2,#0,ZHENG LCALL FANTIN: LCALL MAIN ;停 YAN0: MOV R0,#25LOOP00:MOV R1,#100LOOP01:DJNZ R1,LOOP01 DJNZ R0,LOOP00 RETYAN1: MOV R0,# 20 LOOP10:MOV R1,#100LOOP11:DJNZ R1,LOOP11 DJNZ R0,LOOP10 RETYAN2: MOV R0,#30 LOOP20:MOV R1,#100LOOP21:DJNZ R1,LOOP21 DJNZ R0,LOOP20 CHA: DB 03H,06H,05H END第五章 心得体会通过这次的计算机控制技术的课程设计,我对步进电动机有了深入的了解,平时我们接触的电动机主要是直流电动机和交流电动机,很少见到步进电动机,所以对于步进电动机比较陌生。通过老师指导,然后自己在课后翻阅书籍和上网,搜集到了不少有关步进电动机的知识。通过钻研这些知识,我总算对步进电机有了认识,但是这离课程设计需要掌握的知识相差甚远,为了缩短这种差距,我只能不断的向老师和同学请教,然后仔细的揣摩。在这次课程设计中,通过用单片机控制步进电机的正、反转,加、减速,我也对单片机的知识也进行了复习和巩固。那时候觉得学习单片机是那么的枯燥乏味,整天只是学习这个指令做什么,那个指令做什么,觉得学了一点用都没有。但是今天我才发现,学习单片机是那么的有用处,它可以控制步进电机的旋转、加减速、停止,也可以控制十字路口的交通灯,还可以控制机械手工作。俗话说的好,实践是检验真理的唯一标准,学习再多的理论也只能纸上谈兵,只有把理论应用到实践中,才能检验出理论的真伪。从这次的课程设计,我也发现自己在好多地方的不足,在以后的学习和工作中,我会努力去弥补这些不足,争取让自己不要被社会淘汰。第六章 参考文献1温希东,路勇. 计算机控制技术. 电子科技大学,2005 69802天汉.单片机原理与接口技术. 电子工业,2006961113承志.电机拖动与控制. 机械工业,2000 267277摘要:步进电动机是一种将脉冲信号变换成相应的角位移(或线位移)的电磁装置,是一种特殊的电动机。由于其精确性以与其良好的性能在实际当中得到了广泛的应用。本文介绍了以51系列单片机AT89S52为控制核心所设计的步进电机(型号42BYG016)控制系统,从系统的硬件电路以与软件的设计方面实现了对步进电机的控制。并且由传感器EE-EX672采集转速数据进而进行关于速度的闭环控制,经过实际应用电路证明,该仿真控制系统的随动性能好,抗干扰能力强,稳定性好。关键词:单片机、步进电机、光电开关、PID算法、闭环控制一、步进电机1.1 步进电机的工作原理步进电机是将电脉冲信号转变为角位移或线位移的执行机构。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。1.2 步进电机的特点本实验所用的步进电机为感应子式步进电机(型号为42BYG016)。感应子式步进电机与传统的反应式步进电机相比,结构上转子加有永磁体,以提供软磁材料的工作点,而定子激磁只需提供变化的磁场而不必提供磁材料工作点的耗能,因此该电机效率高,电流小,发热低。因永磁体的存在,该电机具有较强的反电势,其自身阻尼作用比较好,使其在运转过程中比较平稳、噪音低、低频振动小。感应子式步进电机某种程度上可以看作是低速同步电机。一个四相电机可以作四相运行,也可以作二相运行。(必须采用双极电压驱动),而反应式电机则不能如此。例如:四相八拍运行(A-AB-B-BC-C-CD-D-DA-A)完全可以采用二相八拍运行方式.不难发现其条件为C=,D=. 一个二相电机的部绕组与四相电机完全一致,小功率电机一般直接接为二相,而功率大一点的电机,为了方便使用,灵活改变电机的动态特点,往往将其外部接线为八根引线(四相),这样使用时,既可以作四相电机使用,可以作二相电机绕组串联或并联使用。(本实验采用两相四拍)1.3 步进电机的静态指标相数:产生不同对极N、S磁场的激磁线圈对数。常用m表示。拍数:完成一个磁场周期性变化所需脉冲数或导电状态用n表示,或指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB,四相八拍运行方式即 A-AB-B-BC-C-CD-D-DA-A.步距角:对应一个脉冲信号,电机转子转过的角位移用表示。=360度(转子齿数J*运行拍数),以常规二、四相,转子齿为50齿电机为例。四拍运行时步距角为=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为=360度/(50*8)=0.9度(俗称半步)。1.4 步进电机的动态指标1)步距角精度: 步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之,八拍运行时应在15%以。2)失步: 电机运转时运转的步数,不等于理论上的步数。称之为失步。3)失调角: 转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。4)最大空载起动频率: 电机在某种驱动形式、电压与额定电流下,在不加负载的情况下,能够直接起动的最大频率。 5)最大空载的运行频率: 电机在某种驱动形式,电压与额定电流下,电机不带负载的最高转速频率。6)运行矩频特性:电机在某种测试条件下测得运行中输出力矩与频率关系的曲线称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。1.5 步进电机的驱动控制系统控制系统的组成方框图如下:1)脉冲信号的产生脉冲信号由单片机AT89S52的I/O口产生,一般的脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。本实验采用的占空比为0.5。2)信号分配感应子式不仅以二、四相电机为主,二相电机工作方式有二相四拍和二相八拍两种, 具体分配如下:二相四拍为,步距角为1.8度;二相八拍为,步距角为0.9度。本设计采用步距角为1.8度。3)功率放大功率放大是驱动系统最为重要的部分。步进电机在一定转速下的转矩取决于它的动态平均电流而非静态电流(而样本上的电流均为静态电流)。平均电流越大电机力矩越大,要达到平均电流大这就需要驱动系统尽量克服电机的反电势。因而不同的场合采取不同的的驱动方式,到目前为止,驱动方式一般有以下几种:恒压、恒压串电阻、高低压驱动、恒流、细分数等。步进电机一经定型,其性能取决于电机的驱动电源。步进电机转速越高,力距越大则要求电机的电流越大,驱动电源的电压越高。电压对力矩影响如下:4)功率放大细分驱动器 在步进电机步距角不能满足使用的条件下,可采用细分驱动器来驱动步进电机,细分驱动器的原理是通过改变相邻(A,B)电流的大小,以改变合成磁场的夹角来控制步进电机运转的。二、驱动器由于单片机的I/O不具有直接驱动步进电机的能力,故在本系统中需要步进电机驱动器,我们选择驱动器为KD-221,该驱动器具有输入电压围广,控制信号输入方式多样等特点。其具体接法如下:2.1、电源接线:、E高:当驱动电压大于10V时,正极接此座,使用时最大不能大于40V,以防损坏模块。 、E低:当驱动电压小于10V时,正极接此座。、地:驱动电压E高、E低的的负极接此座。、A ,:接电机A相线圈的二根引线。、B, :接电机B相线圈的二根引线。 2.2、控制信号接线:、CP:接控制器发给步进电机的走步脉冲信号线。、CW:接控制器发给步进电机的走步方向信号线。、VP:接CP和CW信号的负极,即逻辑电路电源的负极。、本驱动器部设计接收信号为RTTL电平,即5V电平,如其它逻辑电平信号需要接限流电阻,否则可能损坏光耦元件。三、光电开关 本系统中所用传感器为EE-EX672关电开关,该传感器为开关型传感器,四个接线脚分别为“+,L,OUT,-”其输入电压围广为直流5-24V,L为控制指示端,当“L”与“+”相连时,传感器未检测到物体时LED灯发光,当“L”悬空时则相反,其特点为:1. 动作模式备有遮光时ON/入光时ON(可切换型)2. 应答频率为1KHZ的高速响应3. 入光显示灯明显,容易进行动作确认.4. 电源电压为DC-24V的广围5. 备有遮光时入光显示灯灯亮型其连接电路如下图所示:“L”与“+”相连时,传感器未检测到物体时LED灯发光。“L”悬空传感器检测到物体时LED灯发光。四、硬件设计电路图下图中为单片机的最小系统,其P0.0-P0.7口分别连接到LCD1602的D0-D7引脚,与P2.5,P2.6,P2.7相连的按键开关分别控制步进电机的正反转,加速,减速,P2.0,P2.1,P2.2分别接LCD1602的RS,RW,E引脚。下图中为电机驱动部分。驱动电压为+12V,用单片机的P1.0与电机驱动器的CW相连控制单片机的转向,P1.1与电机驱动器的CP相连,给驱动器输入脉冲。a,b,c,d分别接入步进电机。SX-672为检测转速的传感器外接+5V驱动电压,输出接入单片机的T1脚。五、软件设计5.1 控制算法比较:PID控制原理PID调节器由比例调节器(P),积分调节器(I)和微分调节器(D)构成,它通过对偏差值的比例积分和微分运算后,用计算所得的控制量来控制被控对象图1所示为PID控制系统框图。图1 PID控制系统框图5.1.1 比例调节(P) 比例调节是数字控制中最简单的一种调节方法。其特点是调节器的输出与控制偏差e成线性比例关系,控制规律为: (1)式中:-比例系数,-偏差e为零时调节器的输出值当输出值S与设定的期望值R间产生偏差时,比例调节器会自动调节控制变量y(如为控制阀门的开度)的大小。控制变量y的大小会朝着减小偏差e的方向变化比例系数的大小决定了比例调节器调节的快慢程度,大调节器调节的速度快,但过大会使控制系统出现超调或振荡现象。小调节器调节的速度慢,但过小又起不到调节作用。另外,虽然比例调节器控制规律简单,控制参数易于整定,但缺点是它只能在一种负载情况下实现无静差值的调节,当负载变化时,除非重新调整相应的),值的大小,否则控制系统将会产生无法消除的静差值。5.1.2 比例微分调节(PI)比例调节器的主要缺点是存在无法消除的静差值,影响了调节精度为了消除静差值,在比例调节器的基础上并人一个积分调节器构成比例积分调节器,其调节规律可用下列(2)式表示(2)式中:为积分常数,它的物理意义是当调节器积分调节作用与比例调节作用的输出相等时所需的调节时间称为积分常数。积分常数的大小决定了积分作用强弱程度,选择的越小,积分的调节作用越强,但系统振荡的衰减速度越慢。当过小时,甚至会造成系统的持续振荡,使调节器的输出波动不定,给生产过程带来严重的危害。相反地当选择的越大,积分的调节作用越弱,虽然过渡过程中不容易出现振荡现象,但消除偏差e的时间却很长。积分调节对偏差有累积作用,所以,只要有偏差e存在积分的调节作用就会不断地增强,直至消除比例调节器无法消除的静差值。5.1.3 比例积分微分调节(PID)加入积分调节后,虽可消除静差,使控制系统静态特性得以改善,但由于积分调节器输出值的大小是与偏差值e的持续时间成正比的,这样就会使系统消除静差的调节过程变慢,由此带来的是系统的动态性能变差尤其是当积分常数很大时,情况更为严重。另外,当系统受到冲激式偏差冲击时,由于偏差的变化率很大,而PI调节器的调节速度又很慢,这样势必会造成系统的振荡,给生产过程带来很大的危害改善的方法是在比例积分调节的基础上再加人微分调节,构成比例积分微分调节器(PID)。其调节规律可用(3)式表示。(3)式中:为微分常数,它的物理意义是当调节器微分调节作用与比例调节作用的输出相等时所需的调节时间称为微分常数5.2 PID控制算法单片机控制系统通过AD电路检测输出值s,并计算偏差e和控制变量y,再经DA转换后输出给执行机构,从而实现缩小或消除输出偏差的目的,使系统输出值s稳定在给定值区域。在计算机控制过程中,整个计算过程采用的是数值计算方法,当采样周期足够小时,这种数值近似计算相当谁确,使离散的被控过程与连续过程相当接近。图2为单片机闭环控制系统框图 J。PID算法是将描述连续过程的微分方程转化为差分方程,然后,根据差分方程编制计算程序来进行控制计算的。另外在PID控制中,由于PID算式选择的不同,最终所得到的控制效果是不同的。下面进行PID控制算法的研究。图5 单片机闭环控制系统框图5.2.1 位置式PID的控制算法如前所述PID调节的微分方程为:将此微分方程写成对应的差分方程形式(4)式中:-第n次采样周期所获得的偏差信号;-第n-1次采样周期所获得的偏差信号;T-采样周期;-调节器第rt次控制变量的输出;为了编写计算机程序的方便,现将算式(4)写成下列形式(5)式中:,因为采样周期T,积分常数和微分常数选定后皆为常数,因此与必为常。当调整参数改善控制性能时,也只须调整、和的大小即可。5.2.2 增量式PID的控制算法在位置式PID控制算法中,每次的输出与控制偏差e过去整个变化过程相关,这样由于偏差的累加作用很容易产生较大的累积偏差,使控制系统出现不良的超调现象。由算式(4)可得: (6)用(4)式减去(6)式,可得增量式PID的算式: (7)其中,为了编写程序方便,将(7)式改写成下列形式: (8)式中:,从增量式PID的算式中可知,只要知道了现时以前的三次采样周期的偏差信号,即可计算出本次采样周期的控制变量y的增量。 综合以上分析,我们采用增量式PID算法,本系统的软件控制算法主要采用了增量式PID控制算法。其控制算法的流程图为:5.3 步进电机控制流程图如下:六、数据处理和分析1、PWM的设定我们通过设定PWM来控制步进电机的转速。当T=6S时,我们通过试凑的方法了解到,当PWM=1/300时,所给步进电机刚好启动,当PWM=1/17时,步进电机速度达到最大。2、步进电机的测速我们通过用软件设定一个转速,然后与用光电开关采集回来的速度相比较,采用闭环的PID控制来达到步进电机稳定调速的目的。我们在程序中设定转速为72 rpm,通过与P3.2采集回来的数据相比较,当采集回来的数据小于72rpm时,我们通过改变PID的相应的参数(=1.2,=1.1 ,=0.9)来调节电机的转速,让步进电机的转速加起来,使之与72 rpm相吻合。同样,当采集回来的数据大于72rpm时,也改变PID的相应的参数来调节电机的转速,让步进电机的转速加起来,使之与72 rpm相吻合。七、实验心得与体会通过本次课程设计我们学习到了许多书本上没有的知识,通过自己查资料和互相讨论,对系统进行整体设计后基本达到了要求,实现步进电机速度闭环控制并通过对系统控制算法的比较,综合考虑,选用了闭环的PID控制,使我们对PID的控制有了更深刻的认识,使自己将理论与实际相结合起来同时对51系列的单片机的设计与编程有了更深的了解,学会了很多。同时衷心感老师的指导。附录1.显示与测速程序#include #include #define uchar unsigned char#define uint unsigned int float f=0;bit F_in=0,truer; sbit P10=P30 ;sbit P12=P32;/sbit P14=P14;sbit LCD_RS = P20; sbit LCD_RW = P21;sbit LCD_EN = P22;/sbit BEEP = P37; uchar code cdis1 = motorspeed: ; uchar code cdis2 = number: ;#define delayNOP(); _nop_();_nop_();_nop_();_nop_();uchar key_buf; /显示缓存uchar temp;uchar key,key_num=0; uchar LCD0_data,LCD1_data,LCD2_data,LCD3_data; /键顺序吗uchar data testdata = 0x00,0x00,0x00,0x00;uchar data in_data = 0x01,0x02;uchar shift ;uint i;uint q;uint j;/*/void initime() TMOD=0x51; /T1计数器,T0定时器,方式1 TL0=(65536-10000)%256; TH0=(65536-10000)/256; /定时10000us0.01s TL1=0; TH1=0; ET0=1; EA=1;void delay(uint ms) uchar t; while(ms-) for(t = 0; t 120; t+); void mydelay() for(i=0;i100;i+)for(j=0;j1000;j+);/*/* */* 延时 x*0.14ms */* */*/void delay0(uchar x) unsigned char i; while(x-) for (i = 0; i13; i+) bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result); void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; void lcd_pos(uchar pos) lcd_wcmd(pos | 0x80); /数据指针=80+地址变量void dectobit(int dec) LCD3_data=dec/1000+0x30; dec=dec % 1000; LCD2_data=dec/100; dec=dec % 100;LCD1_data=dec/10+0x30;dec=dec % 10+0x30;LCD0_data=dec; void display1()lcd_pos(0x0b);lcd_wdat(LCD3_data); lcd_pos(0x0c);lcd_wdat(LCD2_data); lcd_pos(0x0d);lcd_wdat(LCD1_data); lcd_pos(0x0e);lcd_wdat(LCD0_data); lcd_pos(0x4b);lcd_wdat(0x31); void lcd_init() delay(15); lcd_wcmd(0x38); /16*2显示,5*7点阵,8位数据 delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x0c); /显示开,关光标 delay(5); lcd_wcmd(0x06); /移动光标 delay(5); lcd_wcmd(0x01); /清除LCD的显示容 delay(5);/*/ Void main() uchar m; lcd_init(); initime(); TR0=1; TR1=1; /初始化LCD P10=1; P12=0; lcd_pos(0x00); /设置显示位置为第一行 for(m=0;m16;m+) lcd_wdat(cdis1m); lcd_pos(0x40); /设置显示位置为第二行 for(m=0;m16;m+) lcd_wdat(cdis2m); /TMOD=0x21; /将T1设置为8位自动重装工作方式。 / TH1=175; /对T1定时常数进行预置。 /TL1=175; / TR1=1; /启动T1。 while(1) dectobit(f);/ key_buf=key_buf+0x30; timer()interrupt 1 using 2 i=i+1; if(i=600) i=0; f=TH1*256+TL1; TL1=0; TH1=0; TL0=(65536-10000)%256; TH0=(65536-10000)/256;2.电机驱动程序#include #include #define uchar unsigned char#define uint unsigned int/#define k 2000sbit cp=P10;sbit cw=P11;sbit key2=P15;sbit key=P16;sbit key1=P17;uint i;uint K;void key_scan()/键盘扫描函数if(add=0) /加速flag=1;Delay(100);if(add=0)while(!add);k=k-5;if(k620)k=620;if(fx=0) /反向 flag=0;Delay(100);if(fx=0)while(!fx);cw=cw;/*/*/void PID()/PID算法x=20000/80; /频率y=x*3/60; /理想转速if(speedy) k+;void delay(unsigned int t ); void Delay(unsigned int z) unsigned int i,j; for(i=0;iz;i+) for(j=0;j125;j+);void main()key=1;key1=1;key2=1;TMOD=0x01;K=2500;TH0=(65536-K)/256; TL0=(65536-K)%256;EA=1;ET0=1;TR0=1; cp=1;cw=1;while(1)/TH0=0xf6;/TL0=0xfd;if(key=0) Delay(100);while(!key);K=K-50;if(key1=0) Delay(100);while(!key1);K=K+50;if(key2=0) Delay(100);while(!key2);cw=cw; void timer0() interrupt 1 i=i+1;if(i=400)/cw=cw;i=0;/EA=0; cp=cp;TH0=(65536-K)/256;TL0=(65536-K)%256;/TH0=0xf6;/ TL0=0xfd;目录基于单片机控制的步进电机调速系统的设计中文摘要3关键词3ABSTRACT:4KEY WORDS:4 前 言51.1步进电机的特点61.2步进电机的基本参数51.3步进电机的技术参数6 1.4 步进电机的分类101.5 步进电机详细调速原理:10第2章本次设计的基本要求112.1基本要求 11第3章 方案的论证 113.1 控制方式的确定113.2 驱动方式的确定133.3 驱动电路的选择133.4 基本方案的确定14第4章 硬件电路的设计144.1 单片机的选择 154.2 步进电机的选择 174.3 驱动电路的选择 234.4 显示电路与键盘的选择 254.5 反馈电路的选择28第5章 算法的设计:305.1 PID控制算法30第6章 软件的设计 35
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!