《三相步进电机控制系统的设计-课程设计论文--本科毕设论文.doc》由会员分享,可在线阅读,更多相关《三相步进电机控制系统的设计-课程设计论文--本科毕设论文.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、武汉理工大学计算机控制技术课程设计说明书课程设计任务书指导教师: 工作单位: 自动化学院 题 目: 三相步进电机控制系统的设计初始条件:设计三相步进电机控制系统,要求系统具有如下功能:用K0-K2做为通电方式选择键,K0为三相单三拍,K1为三相双三拍,K2为三相六拍;K3为启动/停止控制、K4方向控制、K5加速、K6减速;用4位LED显示工作步数。用3个发光二极管显示状态:正转时黄灯亮,反转时绿灯亮,不转时红灯亮。要求完成的主要任务: 1 硬件设计:系统总原理图2 软件设计:系统总体流程图、步进电机单三拍,双三拍,三相六拍各模块流程图、显示模块流程图等3 编写程序:能够完成上述任务并用仿真软件
2、演示4 完成符合要求的设计说明书时间安排:2015年5月20日2015年6月1日指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘要 这次设计是基于单片机来设计三相步进电机系统。80c51单片机作为主控芯片,利用ULN2003A集成电路,采用单极性驱动方式,加入74HC573使步进电机完成步进电机三相单三拍,三相双三拍,三相六拍;启动/停止控制、方向控制;速度控制(加速和减速两档);用4位LED数码管显示工作步数。用3个发光二极管显示状态:正转时黄灯亮,反转时绿灯亮,不转时红灯亮。 电路构造较为简单,设计思路清晰,利用KEIL进行软件编写与仿真,利用Proteus进行电路的设计
3、与仿真,仿真结果符合任务提出的要求。 关键字:步进电机、单片机、单极性驱动,控制目录1 设计任务及要求51.1设计任务51.2任务分析62 方案比较及选择62.1 电机驱动选择方案62.2 LED显示选择方案62. 3 按键状态的读取63 系统实现的原理73.1 步进电机控制工作原理73.1.1 步进电机的启停控制73.1.2步进电机的工作原理73.1.3步进电机的转向控制73.1.4步进电机的启停控制83.1.5步进电机的速度控制83.2 系统设计思路83.3 系统的整体框图94 系统的硬件设计104.1 总体设计114.2 步进电机控制电路124.2.1启/停控制、正/反转控制、工作模式控
4、制电路分析134.2.2步进电机控制电路114.3显示电路124.3.1发光二极管显示电路124.3.2八段数码管显示电路125系统软件设计135.1 总体设计135.1.2 系统总体流程图155.2 关键模块设计175.2.1. 三相步进电机模块设计175.2.2显示模块设计185.5.2步进电机调速模块流程图196 系统仿真207 小结及体会22参考文献23附录24三相步进电机控制系统的设计1 设计任务及要求 1.1设计任务 设计一个三相步进电机控制系统,要求系统具有如下功能:用K0-K2做为通电方式选择键,K0为三相单三拍,K1为三相双三拍,K2为三相六拍;K3为启动/停止控制、K4方向
5、控制;K5加速控制,K6减速控制;用4位LED数码管显示工作步数。用3个发光二极管显示状态:正转时黄灯亮,反转时绿灯亮,不转时红灯亮。 硬件设计:系统总原理图。软件设计:系统总体流程图、步进电机单三拍,双三拍,三相六拍各模块流程图、显示模块流程图等。编写程序,能够完成上述任务。1.2任务分析 设计要求设计一个三相步进电机控制系统,分析可以得出它的几个基本功能:1.三相步进电机控制系统能够以三相单三拍,三相双三拍,三相六拍的方式运行,因此要输出相应的控制字进行控制;2.三相步进电机控制系统能实现正反转和调速控制,能够改变电机运行的方向和速率;3.三相步进电机控制系统有显示功能,可以采用共阳极的L
6、ED数码管对步数进行显示。282 方案选择2.1 电机驱动选择方案方案:使用专门的电机驱动芯片ULN2004A来驱动电机运行。其优点是便于电路的集成,且驱动简单,驱动信号稳定,不受外部干扰。2.2 LED显示选择方案方案:通过软件把所要的数据转化为七段显示的数据,通过单片机接口接上具有放大功能的芯片输出到LED显示,这样比较直观。2. 3 按键状态的读取 方案:不使用中断,直接把开关分别接在单片机的接口上,通过查询端口信号来动作。其优点是程序得到简化,可读性加强各个部分的选择都综合了成本及实现的难易度,使实现并不是很难而且具有节省材料作用。3 系统实现的原理3.1 步进电机控制工作原理3.1.
7、1 步进电机的启停控制步进电机由于其电气特性,运转时会有步进感 ,即振动感。为了使电机转动平滑 ,减小振动 ,可在步进电机控制脉冲的上升沿和下降沿采用细分的梯形波 ,可以减小步进电机的步进角 ,提高电机运行的平稳性。在步进电机停转时 ,为了防止因惯性而使电机轴产生顺滑 ,则需采用合适的锁定波形 ,产生锁定磁力矩 ,锁定步进电机的转轴 ,使步进电机的转轴不能自由转动。3.1.2步进电机的工作原理图1 步进电机三相接线图如图1所示,U1、V1、W1接电源,分别有三个开关控制,U2、V2、W2分别接地。如果给处于错齿状态的相通电,则转子在电磁力的作用下,将向磁导率最大(即最小磁阻位置)位置转动,即向
8、趋于对齿的状态转动。3.1.3步进电机的转向控制如果给定工作方式正序换相通电 ,步进电机正转。若步进电机的励磁方式为三相六拍 ,即 A-AB-B-BC-C-CA。如果按反序通电换相 ,即则电机就反转。其他方式情况类似。3.1.5步进电机的速度控制步进电动机运转的速度是由输入到A、B、C三相绕组的频率所决定的。给的脉冲的频率越高,电动机运转的速度越快,否则,速度就越慢。因而通过延时程序可以控制输出脉冲的频率,就可以实现对步进电机速度的控制。3.2 系统设计思路 此次我所设计的是一个步进电机控制系统,主要由单片机80C51,3相步进电机,7段数码管,74HC573及一些其他相关元件设计而成。有红黄
9、绿三个指示灯,通过单刀双掷开关来控制系统的启/停工作,当开关处于不同状态有不同指示灯亮起。当系统开始运转时,用单刀双掷开关来控制方向,并使相应的指示灯亮起,同样由单刀双掷开关来选择工作模式。运转时,用4位7段数码管来输出步数,同时可以通过数码管看出电机的运转速度。最后根据思路所设计出来的硬件图设计相适应的软件。3.3 系统的整体框图下图为系统总体设计方框图,单片机AT89C51,ULN2003A驱动芯片,三相步进电机,74HC573,7段LED数码管等一些电路模块组成。80c51单片机整体控制LED显示模块开关选择电机工作模式LED显示灯显示电机工作状态三相步进电机模块图2 系统的整体框图4
10、系统的硬件设计4.1 总体设计设计一个单片机三相步进电机控制系统要求系统具有如下功能:(1) 用K0-K2做为通电方式选择键,K0为单三拍,K1为双三拍,K2为三相六拍;(2) K3、K4分别为启动和方向控制;(3) K5和K6控制加速和减速。(4) 正转时黄色指示灯亮,反转时绿色指示灯亮,不转时红色指示灯亮;(5) 用4位LED显示工作步数。根据设计要求用PROTEUS所做的硬件连线图如下图1:图1 总体硬件连线4.2 步进电机控制电路4.2.1启/停控制、正/反转控制、工作模式控制电路分析原理图如下:图2 按键控制图(1)K3为启/停控制开关,控制整个系统的开启和关闭。(2)K4为正/反转
11、控制开关,控制步进电机的转向。(3)K0-K3为工作模式控制开关,KO接电时,为步进电机单三拍工作模式;K1接电时,为步进电机双三拍工作模式;K2接电时,步进电机工作模式为三相六拍,K5加速,K6减速。4.2.2步进电机控制电路将80c51的P1.0-P1.3作为步进电机的输出控制口。原理图如下:图4 步进电机的输出控制口4.3显示电路4.3.1发光二极管显示电路用3个不同颜色的发光二极管来作为指示灯显示,将P3.3接红灯,P3.7和开关K3经过与门与非门接绿灯,P3.7接黄灯,正转时黄色指示灯亮,反转时绿色指示灯亮,不转时红色指示灯亮。原理图如下: 图5 指示灯接线图4.3.2八段数码管显示
12、电路由80c51的P0口取出显示码,74HC573放大P0口的信号,从80c51的P2.0-P2.3输出位选码,设计中我们主要用到4位显示步数既可。原理图如下: 图6 led接线图5系统软件设计5.1 总体设计5.1.1步进电机的工作方式(1)三相单三拍工作方式 在这种工作方式下,A、B、C三相轮流通电,电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做三相单三拍工作方式。这时步距角b (度)为 b = 360 /mz (公式1)式中:m定子相数; z 转子齿数单三拍的数学模型: 步序 控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1B相
13、P1.0A相100000001A01H 200000010B02H300000100C04H表1(2)三相六拍工作方式 在这种工作方式下,绕组以AABBBCCCAA时序(或反时序)转换6次,磁场旋转一周,转子前进一个齿距,每次切换均使转子转动1. 5,故这种通电方式称为三相六柏工作方式。其步距角b 为:b = 360 /2mz = 180 /mz (公式2)六拍的数学模型:步序 控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1B相P1.0A相100000001A01H 200000011AB03H300000010B02H400000110BC06H50000
14、0100C04H600000101CA05H 表2 (3)双三拍工作方式 这种工作方式每次都是有两相导通,两相绕组处在相同电压之下,以ABBCCAAB (或反之)方式通电,故称为双三拍工作方式。以这种方式通电,转子齿所处的位置相当于六拍控制方式中去掉单三拍后的三个位置。它的步距角计算公式与单三拍时的公式相同。极分度角/齿距角= R + k1/m进一步化简得齿数z:z = q (mR + k) (公式3)式中:m相数; q每相的极数; k (m - 1)的正整数;R正整数,为0、1、2、3。双三拍的数学模型:步序 控制位工作状态控制模型P1.7P1.6P1.5P1.4P1.3P1.2C相P1.1
15、B相P1.0A相100000011AB03H 200000110BC06H300000101CA05H表35.1.2 系统总体流程图 设计说明:复位单片机,然后从P3口读出开关状态,判断电机是否启动,没启动红灯亮重新确认启动。启动后再次读取P3口数据,判断工作方式并将对应的用来存储步进电机工作方式字的数组首地址值给q。由P3.4口的单刀双掷开关来控制步进电机的正反转,正转则黄灯亮,反转则绿灯亮。在电机每走一步后,步数记数加1,然后通过LED显示把工作步数显示出来。同时LED也会显示工作的速度。再从P3口把状态信息读出来,与之前的P3口的状态信息进行比较。如果状态信息没有改变,电机继续运行。如果
16、状态信息改变了,就需要重新返回程序的开端,对电机的运行状态进行判断,让电机重新以新的状态运行。由此,开关的状态在电机每走一步都会查询一遍,做到实时地反映。开始P3口、步数清零数码管输出0红色显示灯亮以已选择的序列输出控制字K1/K2/K2选择工作方式控制字序列短延时长延时步数自增一启/停按键K3按下?正/反转按键K4按下?选择正转控制字序列黄灯亮选择反转控制字序列绿灯亮启/停按键K3按下?数码管输出步进步数调速键K5和K6按下?图5.1 系统总体流程图YYYYNNNN图7 总体流程图5.2 关键模块设计5.2.1. 三相步进电机模块设计设计说明:在此设计中,采用的是三相步进电机,对于步进电机模
17、块的程序设计采用循环程序设计方法。先把正反转向的控制模型存放在内存单元中,然后再逐一从单元中取出控制模块并输出。首先启动,选择步进电机的拍数,输入步数,然后读入正反转的控制模型驱动步进电机转动。 三相步进电机的流程框图: 图8 三相步进电机的流程框图5.2.2显示模块设计设计说明:显示模块是用4位八段数码管来显示工作步数。先将显示码存入数组中,指向最左边一位,然后取出要显示的数据,指向换码表首地址,取出显示码,从P0口输出显示码,P2口输入位选码,显示出4位工作步数,最后修改数组地址,求下一位位选码继续显示。动态显示子程序取出要显示的数据求待显示数据的显示码送位段码到P0口输出送位显码到P2.
18、0-P2.3输出延时4位显示完了吗 返回修改数组地址求下一位选码图9 显示模块的程序框图5.5.2步进电机调速模块流程图分模块入口P1.4=1?(K4按下?)RRR=5(循环次数为5)调用单位延时程序k自增一返回j=RRR?(达到要求次数)RRR=50(循环次数为50)图10 步进电机调速模块流程图Yk=0NYN如图5.8为步进电机调速模块流程图,当P1.4=1时,即K4按下,系统选择单位延时程序的循环次数为5,此时步进电机快速运转,当P1.4=0时,即K4无效,系统选择单位延时程序的循环时间为50次,此时步进电机慢速运转。6 系统仿真当选择电机工作在单三拍,正转的模式下,K0、K4置高电平,
19、K1、K2置低电平,系统启动,K3置高电平,K5置高电平,K6低电平,电机开始转动。LED四位显示屏显示工作步数,LED指示灯黄灯亮显示电机正转的状态。而且电机处于加速状态,仿真图如下: 图11 系统仿真图1单三拍反转加速如系统仿真图2图12 系统仿真图2三相六拍停止如系统仿真图3所示图13 系统仿真图3三相双三拍减速如系统仿真图4所示 图14 系统仿真图4上面就是各种状态和运行方式的显示图,经过对各种状态的测试仿真后,可以确定本次电路与软件的设计是符合要求的,设计成功。 7 小结及体会经过了这段时间的设计,我终于完成了计算机控制技术这门课的课程设计。通过本次设计,我感到书本上学的知识是远远不
20、够的,要动手做东西才能发现自己的不足。在设计电路图的过程中我意识到了仔细对于一个设计者是相当重要的,因为一根线小小的差错就让我排除了很长时间,所以在开始连线或者布局的时候一定要想好而且要仔细的操作。这次设计极大的提高了我的动手能力以及综合分析问题的能力。让我对这门课有了更深的了解。让我对自己的本专业也有了更深的体会。让我能够软硬结合,更好的学好今后的课程。此外,这次课设让我对proteus和keil软件的使用更加的熟练,在以后的学习中也会用到这两个软件,这样我在以后的学习中能更快的掌握知识,熟练掌握这两个软件之后对于我学习使用新的软件也哟有很大的帮助。总之,这次课设是受益匪浅的。 相信以后的我
21、对于学习还是工作,都能够拿出做课设时候的努力,做好每一件事情。参考文献1 李发海 王岩编著.电机与拖动基础. 北京:清华大学出版社.20122 于海生编著.计算机控制技术.北京:机械工业出版社.20053 张靖武,周灵彬编著.单片机系统的PROTEUS设计与仿真. 北京:电子工业出版社.2007. 4顶明亮、唐前辉编著.51单片机应用设计与仿真:基于keil与proteus.北京:北京航空航天大学出版社.20095 彭虎、周佩琳编著.微机原理与接口技术.北京:电子工业出版社.2007.6 张义和、王敏男等编著.例说51单片机.北京:人民邮电出版社.2008附录程序控制单片机的P0-P3口,其中
22、P0和P2口控制LED上的步数与速度显示,P1控制电机的运转,P3控制运行方式和启停。总程序如下:#include #include void delay1(void); void delay2(void); void display(int); /控制显示 int bushu=0; /总步数 int cishu; /次数(控制速度)main() char a,b,c,d,j,*q, done18=0x01,0x02,0x04,0x00,0x01,0x04,0x02,0x00, done28=0x03,0x06,0x05,0x00,0x03,0x05,0x06,0x00, done314=0x
23、01,0x03,0x02,0x06,0x04,0x05,0x00,0x01,0x05,0x04,0x06,0x02,0x03,0x00; P3=0x20; /使P3.5口置1,此时绿灯亮,表示停止转动 delay1(); L: a=P3; while(!(a&0x08) /判断电机是否启动,若没启动则重新启动 P3=0x20; a=P3; delay1(); a=P3; /判断工作模式 if(a&0x01) /单三拍 q=done1; if(a&0x02) /双三拍 q=done2; if(a&0x04) /三相六拍 q=done3; if(a&0x20)cishu=5; if(a&0x40)
24、 cishu=50; else cishu=10; /控制运行速度,加速与减速if(a&0x10) /判断电机是否要正转 P3=0x80; /使P3.4口为1,电机正转,黄灯亮 b=0; else P3=0x00; /使P3.4口为1,电机反转,绿灯亮 if(a&0x04)b=7; else b=4; d=b; while(1) c=*(q+b); /判断电机步数是否走完 if(c=0)b=d; /步数走完,电机重新再走 else P1=c; /从P1输出电机控制信号 b+; bushu+; /总步数加1 display(bushu); /显示步数 j=a; a=P3; if(a!=j) /判
25、断P3口状态信号是否改变 if(!(a&0x08)bs=0; /若为停止信号,总步数清零 goto L; /状态信号改变,返回到开始,重新对电机控制 void delay1() int i,j; for(i=0;i200;i+) for(j=0;j300;j+); void display(int n)unsignedchar tab10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67; unsigned char i,k,t,num4; num0=n%10; /将总步数的各位分别存在num数组中 num1=(n/10)%10; num2=(
26、n/100)%10; num3=(n/1000)%10; for(t=0;tcishu;t+) /扫描快慢指定次数 k=0x08; /位选码指向最左一位,第四位 for(i=0;i1; /求下一个位选码 delay2(); void delay2() int i,j; for(i=0;i12;i+) for(j=0;j65;j+); 本科生课程设计成绩评定表姓 名性 别男专业、班级自动化 课程设计题目:三相步进电机控制系统的设计课程设计答辩或质疑记录:成绩评定依据:评 定 项 目评分成绩1考勤、态度(15分)2. 查阅资料能力(10分)3. 系统设计:包括系统实现原理、框图、方案的说明(20分)4硬件电路、程序编写、调试结果(20分)5设计说明书质量及规范化、参考文献充分(不少于5篇)(15分)6答辩(20分) 总分:最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日