摘要:步进电机具有控制简便、定位准确等特点。随着科学技术的发展,在许多领域将得到广泛的应用。鉴于传统的脉冲系统移植性不好,本文提出微机控制系统代替脉冲发生器和脉冲分配器,用软件的方法产生控制脉冲,通过软件编程可以任意设定步进电机的转速、旋转角度、转动次数和控制步进电机的运行状态。以简化控制电路,降低生产成本,提高系统的运行效率和灵活性。在此基础上提出了双三拍步进电机程序控制的硬件接口电路、程序流程图和汇编程序。 步进电机是自动控制系统中常用的执行部件。步进电机的输入信号为脉冲电流,它能将输入的脉冲信号转换为阶跃型的角位移或直线位移,因而步进电机可看作是一个串行的数/模转换器。由于步进电机能够直接接受数字信号,而不需数/模转换,所以使用微机控制步进电机显得非常方便。 步进电机有以下优点: - 通常不需要反馈就能对位置和速度进行控制;
- 位置误差不会积累;
- 与数组设备兼容,能够直接接收数字信号;
- 可以快速启停。
步进电机的品种规格很多,按照它们的结构和工作原理可以划分为磁阻式(也称反应式或变磁阻式)电机、混合式电机、永磁式电机和特种电机等四种主要型式。 步进电机不需位移传感器就可精确定位,所以在精确定位系统中应用广泛。目前打字机、计算机外部设备、数控机床、传真机等设备中都使用了步进电机。随着电子计算机技术的发展,步进电机必将发挥它的控制方便、控制准确的特点,在工业控制等领域取得更为广泛的应用。 1. 步进电机的工作原理 以磁阻式步进电机为例,介绍一下步进电机的工作原理,图1. 1是磁阻式步进电机工作原理的示意图。 图1. 1 磁阻式步进电机的工作原理 它的定子上有六个极,转子有四个极。定子磁极上绕有三组绕组,每组绕组由相互串联的两个线圈构成。一组绕组叫做一相。因此,图1. 1所示的电机为三相步进电机。直流电源通过开关I、Ⅱ和Ⅲ,驱动电流流过绕在定子上的绕组。 状态(1) ,开关I闭合,A相通电。由于A相绕组受到激磁,空气隙里出现如箭头所示的磁场。A相上的两个定子磁极和两个转子齿对准,转子处于平衡状态。若再闭合开关R激励B相,如状态(2)所示, B相的定子磁极以同样的方式产生磁场。在磁力线的张力作用下,产生逆时针方向的转矩。于是,转子沿逆时针方向转过一个固定的角度,到达状态(3) 。图中,转过的角度为15°。如果现在打开开关I,去掉A相的激磁,转子将再转15°,到达状态(4) 。因此,转子的角位置可以用这种开关方式进行控制。若开关以某种时序转换,则转子就能以步进运动的方式连续旋转;若进一步使时序转换的速度可调,则平均速度也能用这种开关方式进行控制。 实际上,驱动步进电机的开关是晶体管,开关信号由数字集成电路或微机产生。通过前面的介绍可以看到,步进电机是一种把开关激励的变化变换成精确的转子位置增量运动的执行机构 。 2. 步进电机程序控制的设计 2.1 步进电机的传动方式 2.1.1 三相单三拍工作方式 在这种工作方式下,A、B、C三相轮流通电,电流切换三次,磁场旋转一周,转子向前转过一个齿距角。因此这种通电方式叫做三相单三拍工作方式。这时步距角θb (度)为 θb = 360 /mz ( °) (2-1) 式中:m──定子相数; z ──转子齿数
2.1.2 三相六拍工作方式 在这种工作方式下,首先A相通电,转子齿与A相定子齿对齐。第二拍,A相继续通电,同时接通B相,A、B各自建立的磁场形成一个合成磁场,这时转子齿既不对准A相也不对准B相,而是对准A、B两极轴线的角等分线,使转子齿相对于A相定子齿转过1 /6齿距,即1. 5°。第三拍,A相切断,仅B相保持接通。这时,由B相建立的磁场与单三拍时B相通电的情况一样。依次类推,绕组以A—AB—B—BC—C—CA—A时序(或反时序)转换6次,磁场旋转一周,转子前进一个齿距,每次切换均使转子转动1. 5°,故这种通电方式称为三相六柏工作方式。其步距角θb 为: θb = 360 /2mz = 180 /mz ( °) (2-2)
2.1.3 双三拍工作方式 这种工作方式每次都是有两相导通,两相绕组处在相同电压之下,以AB─BC─CA─AB (或反之)方式通电,故称为双三拍工作方式。以这种方式通电,转子齿所处的位置相当于六拍控制方式中去掉单三拍后的三个位置。它的步距角计算公式与单三拍时的公式相同。 由上述分析可知,要使磁阻式步进电机具有工作能力,最起码的条件是定子极分度角不能被齿距角整除,且应满足下列方程: 极分度角/齿距角= R + k·1/m 进一步化简得齿数z: z = q (mR + k) (2-3) 式中:m──相数; q──每相的极数; k──≤ (m - 1)的正整数; R──正整数,为0、1、2、3……。 按选定的相数和不同的极数,由上式就可推算出转子齿数。 因为三相双三拍步进电机不易失步,控制精度比较高,所以本文对三相双三拍步进电机进行控制,定子有三对磁极,运行时两相同时通电,循环带动转子转动。
2.2 硬件接口电路 传统的步进电机控制系统采用硬件进行控制,用一个脉冲发生器产生频率变化的脉冲信号,再经一个脉冲分配器把方向控制信号和脉冲信号转换成有一定逻辑关系的环形脉冲;经驱动电路放大后就可以来驱动步进电机了。在这种控制中,步进电机的脉冲由硬件电路产生,如果系统发生变化或使用不同类型的步进电机,需重新设计硬件电路,系统的可移植性不好。 用微机控制系统代替脉冲发生器和脉冲分配器,就可以根据系统需要通过软件编程的方法任意设定步进电机的转速、旋转角度、转动次数和控制步进电机的运行状态。这样可简化控制电路,降低生产成本,提高系统的运行效率和灵活性。图2. 1为单片机控制步进电机接口原理图。 图2.1 单片机控制步进电机接口电路原理图
2.3 脉冲的形成 实现对步进电机的控制,微机应能输出有一定周期的控制脉冲。 步骤是:先输出一个高电平,延时一段时间后,再输入一个低电平,然后再延时。改变延时时间的长短,即可改变脉冲的周期,脉冲的周期由步进电机的工作频率确定。 用软件形成环形脉冲的程序流程图如图2.2所示。 图2.2 软件法形成脉冲序列的程序流程 程序如下: PULSE:MOV R3 , # NUM PUSH A PUSH PSW LOOP: SETB P1.0 ACALL DELAY1 CLR P1.0 ACALL DELAY2 DJNZ R3,LOOP POP PSW POP A RET
2. 4 旋转方向控制 步进电机的旋转方向和内部绕组的通电顺序及通电方式有密切关系。 对于三相双三拍工作方式: 正相旋转:AB→BC→CA→AB 反相旋转:AB→CA→BC→AB 三相双三拍控制模型如表2. 1所示。 2. 5 转速控制 控制步进电机的运行速度,实际上是控制系统发出时钟脉冲的频率或换相的周期,即在升速过程中,使脉冲的输出频率逐渐增加;在减速过程中,使脉冲的输出频率逐渐减少。脉冲信号的频率可以用软件延时和硬件中断两种方法来确定。 采用软件延时,一般是根据所需的时间常数来设计一个子程序,该程序包含一定的指令,设计者要对这些指令的执行时间进行严密的计算或者精确的测试,以便确定延时时间是否符合要求。每当延时子程序结束后,可以执行下面的操作,也可用输出指令输出一个信号作为定时输出。采用软件定时, CPU一直被占用,因此CPU利用率低。 可编程的硬件定时器直接对系统时钟脉冲或某一固定频率的时钟脉冲进行计数,计数值则由编程决定。当计数到预定的脉冲数时,产生中断信号,得到所需的延时时间或定时间隔。由于计数的初始值由编程决定,因而在不改动硬件的情况下,只通过程序变化即可满足不同的定时和计数要求,因此使用很方便。
2.6 控制程序设计 控制程序的设计方法是:通过标志位FLAG来判断电机的旋转方向,然后输出相应的控制脉冲序列;判断要求的脉冲信号是否输出完毕。 三相双三拍控制模型完成的步进电机控制程序设计如下: 三相双三拍控制程序流程图如图2. 3 和图2. 4所示。 正转控制模型03H、06H、05H存放在以RM为起始地址的内存单元中,反转控制模型03H、05H、06H存放在以LM为起始地址的内存单元中。 图2.3 主程序流程图 图2.4 定时器中断服务程序流程图 主程序如下: CON: MOV R3, # N MOV TMOD , # 10H MOV TL1 , # LOW MOV TH1 , # H IGH JNB FLAG ,LEFT MOV R0 , RM AJMP TIME - S LEFT: MOV R0 , LM TIME: SETB EA SETB ET1 SETB TR1 WA IT: SJMP WA IT 中断服务程序如下: INTTO: PUSH A PUSH PSW MOV A , @R0 MOV P1 ,A INC R0 MOV A , # 00H XRL A , @R0 JNZ NEXT MOV A , R0 CLR C SUBB A , # 03H MOV R0 , A NEXT: DJNZ R3 , RETU CLR ET1 CLR EA RETU: POP PSW POP A RETI 3. 总结与展望 步进电机是机电一体化产品中的关键组件之一,是一种性能良好的数字化执行元件。随着计算机应用技术、电子技术和自动控制技术在国民经济各个领域中的普及与深入,步进电机的需要量越来越大。有资料说明,世界上步进电机的年产量以10%以上的速度增长。国内对步进电机的需求同样也与日俱增。实际工作中,很多工程技术人员和技术工人都希望比较全面地了解步进电机及其控制技术。 本文对步进电机的控制方法进行了详细的论述,包括硬件接口的设计、软件方案的设计和汇编控制程序的编写。此种方法高效、方便、成本低廉,在实际应用中有着很高的利用价值。
参考文献: [ 1 ] 王鸿钰. 步进电机控制技术入门[M ]. 上海:同济大学出版社,1990. [ 2 ] 郑伟. 步进电机的计算机控制[ J ]. 韶关大学学报, 1994 (4) . [ 3 ] 李君凯. 步进电机控制系统[ J ]. 自动化与仪器仪表, 2003 (1) . [ 4 ] 宁爱华. 步进电机的微机控制方法与高速特性分析[ J ]. 西南民族大学学报(自然科学版) , 2003 (8) . [ 5 ] 黄文平. 浅谈步进电机的驱动[ J ]. 机床电器, 2004 (5) . [ 6 ] 王彦增. 步进电机速度控制的软件设计方法[ J ]. 机械与电子,1994 (2) . [ 7 ] 霍迎辉,陈宇翔. 步进电机的微机和单片机控制[ J ]. 电机电器技术, 2003 (3) . [ 8 ] 刘清. 一种控制步进电机转速的方法[ J ]. 微特电机, 2004 (1) . [ 9 ] 徐晓波. 应用8098单片机实现对步进电机的控制[ J ]. 电子与自动化, 2000 (4) . [ 10 ] 曹航. 用微机直接控制的步进驱动系统[ J ]. 低压电器,1998 (8). [ 11 ] 许永华,李刚,陈科,李逸东. 8098单片机对步进电机的升降速控制[ J ]. 机械与电子, 1995 (6). [ 12 ] 王玉琳. 一种新型步进电机驱动器[ J ]. 机电一体化,2004 (4). [ 13 ] 彭树生. 用PC机控制步进电机的两种方法[ J ]. 电子技术, 1995 (12). [ 14 ] 郑学坚. 微型计算机控制技术[ J ]. 清华大学出版社,1999 (3).
|