计算机控制 课程设计 三相步进电机控制.docx_第1页
计算机控制 课程设计 三相步进电机控制.docx_第2页
计算机控制 课程设计 三相步进电机控制.docx_第3页
计算机控制 课程设计 三相步进电机控制.docx_第4页
计算机控制 课程设计 三相步进电机控制.docx_第5页
免费预览已结束,剩余17页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

武汉理工大学计算机控制技术课程设计说明书目 录1系统设计整体思路11.1方案选择11.1.1 总思路11.1.2驱动电路选择11.1.3显示模块设计11.1.4工作状态控制模块设计21.2整体框图22硬件设计32.1单片机32.1.1 51单片机介绍32.1.2思路32.1.3连线42.2电机及其驱动模块42.2.1ULN2003a介绍42.2.2思路52.2.3连线52.3工作状态控制模块52.3.1并联电容消抖法52.3.2连线62.4工作状态显示模块62.4.1思路62.4.2连线62.5步数显示模块72.5.1LED数码管介绍72.5.2 7448介绍72.5.3思路82.5.4连线83软件设计83.1电机驱动模块83.1.1步进电机工作方式83.1.2设计说明103.2步数显示模块103.2.1设计说明103.2.2步数显示模块流程图113.3工作状态显示与输入模块113.4整体设计流程图124仿真演示135小结14参考文献15附录116附录2171系统设计整体思路1.1方案选择1.1.1 总思路此三相步进电机控制可以用单片机、PLC、EDA实现。而单片机实现的步进电机控制系统具有成本低、使用灵活的特点。步进电机是数字控制电机,将脉冲信号转换成角位移,电机的转速、停止的位置取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,非超载状态下,根据上述线性关系,再加上步进电机只有周期性误差而无累积误差,因此步进电机适用于单片机控制。此系统选用51单片机既可。步进电机通过输入脉冲信号进行控制,即电机的总转动角度由输入脉冲总数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路是根据单片机产生的控制信号进行工作。因此,单片机通过向步进电机驱动电路发送控制信号就能实现对步进电机的控制。因此,此系统主要由单片机、电机及其驱动电路、步数显示模块、工作状态控制与显示模块组成。1.1.2驱动电路选择常规的步进电动机控制电路主要由脉冲分配器和驱动电路组成。比如用PMM8713与LM331驱动三相步进电机,不过线路连接复杂,且不同工作方式的控制困难。现在主要用微机控制取代脉冲分配器,而给步进电动机提供驱动电源的驱动电路是必不可省的,同时用微机实现对步进电动机的走步数、转向以及速度控制等。微机已选用51单片机,而驱动电路可以用功率三极管等电子器件搭建成,电路简单,但信号不够稳定,器件较大不便于电路的集成。而采用专门的驱动芯片便于电路的集成,且驱动简单,驱动信号稳定,不受外部的干扰。现选用ULN2003a作为驱动电路。1.1.3显示模块设计步数显示模块和工作状态显示模块,都是通过单片机输出信号控制发光二极管LED的亮灭。其中步数显示模块中LED构成数码管,要求显示4位十进制数,故用到4位数码管。要控制多位的显示电路,需要有字段控制和字位控制。控制方式分为静态显示方式和动态显示方式。静态显示方式,每一位的显示器都需要配一个8位输出口来输出该字位的七段码,需要片外扩展输出口。而动态显示方式将各数码管的对应字段的引脚都并联在一起,线路简单,减少接口,不需片外扩展。这里选用动态显示方式。而对数码管的字段控制,可以加入一个专门的7段显示译码器7448,可以实现输出数据直接显示,而不用对照表来译码。1.1.4工作状态控制模块设计在单片机系统中,与主机交换信息,有时并不需要复杂的键盘,只要几个简单的开关就可以了。如果系统装备的开关数量不多,可以直接装在接口上,这种连接的键盘称为独立式键盘。本次设计需有6个开关,故选用独立式键盘。独立式键盘一般用查询指令检查某接口上的开关是否按下。而且在开关闭合或断开时刻,由于触点接触不稳定,使检测点电压发生抖动,会造成被查询的开关状态无法准确读到,为此需加入一些去抖动措施。分为硬件去抖动和软件去抖动。软件去抖动,是在检测到有键按下时,执行一个10ms-20ms的延时程序,避开抖动信号,然后再检测该键是否完全闭合。为了避免程序的复杂,这里采用硬件去抖动方式。硬件去抖动一般是在开关和单片机接口间加一个RS触发器,或者加入有较长时间常数的积分电路来消除这种振荡。由于积分电路中元器件更加常见易得,此次设计选用加入积分电路方案。1.2整体框图 图1 系统整体框图2硬件设计2.1单片机2.1.1 51单片机介绍单片机引脚图及引脚功能如下:单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。电源: VCC - 芯片电源,接+5V; VSS - 接地端;时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根。1 ALE/PROG:地址锁存允许/片内EPROM编程脉冲。 图2 单片机引脚图 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 EA/Vpp:内外ROM选择/片内EPROM编程电源。I/O线:80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。2.1.2思路连接好单片机的电源和接地端,时钟用内部方式(需外接晶体振荡器),控制脚中要用到复位功能,接一个手动复位电路。其4个I/O口都要用到, P3接步进电机驱动电路及工作状态显示模块,P0和P2分别接步数显示中对数码管的字段控制及数码管片选,P1接工作状态控制电路。2.1.3连线图3 单片机部分连线图此设计中接的是12MHZ的晶振,故一个机器周期为1/12us。根据经验数据,与晶振一起的两个电容设为15PF。复位开关按普通开关的形式接入RST脚,且由于人手的反应时间比机器周期要大得多,故不用加入去抖动措施,合上再开通,即完成了一次复位。单片机的VCC和GROUD都隐藏了,已自动接好,VCC应设为+5V。2.2电机及其驱动模块2.2.1 ULN2003a介绍ULN2003 是高耐压、大电流、内部由七个硅NPN达林顿管组成的驱动芯片。其属于可控大功率器件,可以通过扩展电流来满足被控元件对电压、电流的要求。其可达到高电压输出50V,一般用来驱动继电器、步进电机。逻辑图如右图:COM端一般加12V的电压,分析逻辑图知, B端口如果输入高电平,经反相器即为低电平,则该路二极管不导通,C口输出为低电平。而B 口如果输入低电平,经反相器后为高电平,则该路二极管导通, C口输出为 图4 ULN2003a逻辑图高电平。可见,ULN2003a是一个7路反相器电路,即当输入端为高电平时输出端为低电平,当输入端为低电平时输出端为高电平。2.2.2思路这里需驱动一个三相步进电机,用一片ULN2003a既可,选用其中三路,对应接到单片机和步进电机上。用单片机内程序的设定来实现相位的控制,按一定顺序实现绕组的通断。2.2.3连线Proteus中没有三相步进电机,故用一个伺服电机代替。其接线图都是相同的。ULN2003的COM端和步进电机的VCC都接12V的电源。 图5 电机驱动模块连线图2.3工作状态控制模块2.3.1并联电容消抖法利用电容的放电延时,采用并联电容法,可以实现硬件消抖。在通常的开关接法中,在开关两端并联一个电容,即实现了并联电容硬件消抖。 图6 并联电容消抖法原理图 2.3.2连线图7 工作状态控制模块连线图这里K0、K1、K2分别为三相单三拍、三相双三拍、三相六拍三种通电方式选择键,K3为启动/停止控制,K4为方向控制,K5为转速控制。2.4工作状态显示模块2.4.1思路LED发光二级管可以直接接单片机。如果让LED的阳极接单片机IO口,阴极接地,则可以实现IO口输出高电平时,LED亮,低电平时,LED灭。但是也可以反向,让单片机输出通过一个反相器再接到LED阴极,LED阳极接VCC。这样可以提高电流,有利于二极管的导通,此时仍是IO口输出高电平时,LED亮,低电平时,LED灭。LED模块跟单片机P3口的三个脚连接,可以通过控制P3口的数据,实现LED的亮灭。2.4.2连线图8 工作状态显示模块连线图2.5步数显示模块2.5.1 LED数码管介绍LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。2.5.2 7448介绍7段显示译码器7448是输出高电平有效的译码器,其真值表如表1。其工作电压为5V。7448除了有实现7端显示译码器基本功能的输入(DCBA)和输出(YaYg)端外,7448还引入了灯测试输入 端和动态灭零输入端,以及既有输入功能又有输出功能的消隐输入/动态灭零输出端。在灯测试输入端和动态灭零输入端都接无效电 图9 显示译码器7448管脚图平时,输入DCBA经7448译码,输出高电平有效的7段字符显示器的驱动信号,显示相应字符。除DCBA = 0000外,RBI也可以接低电平,见表1中116行。现只用用其7段译码功能,其它管脚悬空既可。表1 7448译码关系表2.5.3思路运用7段显示译码器7884后,不用去计算与显示字符对应的输出,方便很多,P0口只用输出想显示的数据即可,但注意只能输出至一位数码管,多位数码管采用动态方式,需分别计算每位数码管上希望输出的值。2.5.4连线图10 步数显示模块连线图3软件设计3.1电机驱动模块3.1.1步进电机工作方式1) 三相单三拍工作方式在这种工作方式下,A、B、C三相轮流通电,电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做三相单三拍工作方式。这时步距角(度)为: 式中:m定子相数; z 转子齿数表2 单三拍的相位控制步序 控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1B相P1.0A相100000001A01H200000010B02H300000100C04H2) 三相双三拍工作方式这种工作方式每次都是有两相导通,两相绕组处在相同电压之下,以ABBCCAAB (或反之)方式通电,故称为双三拍工作方式。以这种方式通电,转子齿所处的位置相当于六拍控制方式中去掉单三拍后的三个位置。它的步距角计算公式与单三拍时的公式相同。表3 双三拍的相位控制步序 控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1B相P1.0A相100000011AB03H200000110BC06H300000101CA05H3) 三相六拍工作方式在这种工作方式下,绕组以AABBBCCCAA时序(或反时序)转换6次,磁场旋转一周,转子前进一个齿距,每次切换均使转子转动1. 5,故这种通电方式称为三相六柏工作方式。其步距角为: 表4 六拍的数学模型步序 控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1B相P1.0A相100000001A01H200000011AB03H300000010B02H400000110BC06H500000100C04H600000101CA05H3.1.2设计说明在此设计中,采用的是三相步进电机,对于步进电机模块的程序设计采用循环程序设计方法。首先判断工作模式,即电机拍数,将指针指向该方式的数组首端。工作方式数组不是简单地顺序给出控制模型,而是一个正相的模型,然后加一个0作为判断数,再一个反相的模型,同样加一个0作为判断数。这是为了方便正反转控制。即把正反转向的控制模型存放在内存单元中,然后再有判断地逐一从单元中取出对应的控制模块并输出。还要判断电机的转速,设定一个标志位后通过控制延时使转速变化。3.2步数显示模块3.2.1设计说明步数显示模块是整个程序里的一个字程序。其是用4位八段数码管来显示工作步数。先将要显示的数化为10进制数,每位分别储存,从P0口输出显示码,P2口输入位选码,短延时,让此位显示闪烁出来。然后修改数组地址,求下一位位选码继续显示,直至输出四位数。这个扫描过程重复50次,保证人眼能观察到步数显示。取出要显示的数据送一位位段码到P0口输出送位选码到P2.0-P2.3输出延时4位显示完修改数组地址求下一位选码开始返回将该数据化为10进制数,每位分别储存扫描50次完计数减13.2.2步数显示模块流程图 N Y N Y Y图11 步数显示模块流程图3.3工作状态显示与输入模块最开始判断是否启动,如没有启动则将P3口输出0X08,即使绿灯与单片机连接端口输出高,则绿灯亮。判断电机正转时,红灯亮;判断电机反转时,黄灯亮。同样,通过输出数值使对应管教为1即可。输入判断是通过用P1口输入值每位和对应管脚为1,其它为零的数值每位相与,则只有在此管脚输入为1时,位与的结果是1,否则为0。故用此法可以判断P1口某管脚的输入。3.4整体设计流程图单片机复位K3,启动?绿灯亮判断K0K2,将方式字地址指针存储到qb赋予正向控制地址增量K4,正转?记录红灯亮黄灯亮延时,且模型地址加1总步数加1调用步数显示子程序b赋予反向控制地址增量P3口输出控制模型开始K5判断转速,并设定标志dP1口状态是否改变YYNNYN图12 总流程图4仿真演示当选择电机工作在单三拍,正转,高速的模式下,K0置高电平,K1、K2、K4、K5置低电平,系统启动,K3置高电平,电机开始转动。LED四位显示屏显示工作步数,LED指示灯红灯亮显示电机正转的状态。仿真图如下:图13 仿真示例图5小结经过这个学期对计算机控制的深入学习,并且在老师的悉心指导和严格要求下,我终于完成了三相步进电机设计课程。从书本上的知识转移到自己实践的课程设计,每一步对我们来说无疑是巨大的尝试和挑战,也让我在不断地学习改进中获得了很大的提高。刚接到这个课题时,被很多陌生的或不甚了解的知识弄的无头绪。后来静下心来,一个一个问题地解决,终于对整个设计有了个大概的理解。不断地去图书馆查阅相关资料、上网去了解相关的内容,渐渐头脑中的概念清晰了起来。在具体设计的过程中,我遇到了更大的困难,海量资料中要不断去检索、比较、选择。不断地给自己提出新的问题,然后去论证、推翻,再接着提出新的问题。在这个循环往复的过程中,终于完成了整个设计。设计借鉴了很多前人的想法,看他人的思路对自己受益匪浅,考虑问题有了更多方向。最终完成仿真让我感到很有满足感。参考文献1谭浩强. C程序设计. 北京:清华大学出版社. 2005.2于海生.计算机控制技术.北京:机械工业出版社,2007.3潘新民.微型计算机控制技术.北京:电子工业出版社,2003.4魏立峰,王宝兴. 单片机原理与应用技术. 北京:北京大学出版社. 2006.5陈明荧. 8051单片机课程设计实训教材. 北京:清华大学出版社. 2004附录1整体电路图:附录2整体程序:#include #include void delay1(void); void delay2(void); void display(int); int bs=0;main() char a,b,c,d,e,f,j,*q done18=0x01,0x02,0x04,0x00,0x01,0x04,0x02,0x00, done28=0x03,0x06,0x05,0x00,0x03,0x05,0x06,0x00, done314=0x01,0x03,0x02,0x06,0x04,0x05,0x00,0x01,0x05,0x04,0x06,0x02,0x03,0x00;L: a=P1; while(!(a&0x08) /判断是否启动,若没启动则重新判断 P3=0x08; delay1(); a=P1; /.判断工作模式 if(a&0x01) /方式1模型 q=done1; else if(a&0x02) /方式2模型 q=done2; else if(a&0x04) /方式3模型 q=done3; /.判断电机转向 if(a&0x10) /判断电机是否要正转 P3=0x10; / /P1.4口为1,电机正转,红灯

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论