时为
(扬州职业大学,江苏扬州225009)
步进电机是一种专门用于位置和速度精确控制的特种电机。步进电机的最大特点是其“数字性”,对于单片机发过来的每一个脉冲信号,步进电机在其驱动器的推动下运转一个固定角度(简称一步)。如接收到一串脉冲步进电机将连续运转一段相应距离,也可通过微电脑或单片机发送控制脉冲频率,直接对电机转速进行控制。因此,步进电机近年来在各行各业的控制设备中获得了越来越广泛的应用。
由于步进电机是一个弹性体系统,所以,有一个固有谐振频率。当步进速率等于电机固有频率时,电机可能会产生听得见的噪音变化,同时振动增加,在严重情况下,电机在振荡点附近可能会失步。使用细分驱动技术可以解决这一问题。
在工业控制领域,目前常用的控制电动机的芯片是PIC系列的单片机。本文选择PIC18F452高性能单片机芯片编写两相步进电机双极细分驱动程序,使用Protues仿真,测量其输出的细分驱动波形并观测步进电机的运行情况。
目前比较常用的双极步进电机驱动芯片是L298,驱动电路如图1所示。整步驱动波形从A、B、C、D四个端口送入,每4步为一次循环,其波形如图2所示。
从图2可以发现AB、CD为互补的逻辑波形,而A与C之间相互错开一步距离。因此,对于L298芯片,其驱动输入只需要A和C两路即可[1]。
图1 L298双极整步驱动电路
图2 L298双极整步驱动波形
将上述A和C两路矩形波,使用正弦波来代替时,步进电机的噪声与振动会立即消除,这样的方法称为细分驱动。
单片机产生的输出是没有连续的正弦波形的,使用的方法是SPWM。SPWM的实质是将一个正弦波的大小变化,用与之对应的幅度相同,宽度不同的脉冲来表示,这样就可以将正弦波转换成计算机的程序,通过程序运算处理,来产生所需要的正弦波形,见图3。
PIC18F452的dsPIC芯片,是一款由Micro-Chip公司生产的高速8位单片机芯片,可以输出两路独立的PWM波形,程序空间容量高达32KB,符合细分驱动的基本要求。[2]
图3 L298双极细分驱动波形
在实际应用中,步进电机的细分数一般设为4、8、16、32几种等级,细分数过大,会使得步进电机运转过于缓慢,同时由于细分角过小,也会造成失步。
以下为相关的C18程序,细分数为16,使用的编程语言是MPLAB C18,使用的编译软件是MPLAB 8.43。主要驱动程序如下[3]:
SPWM编程的关键在于确定每一个SPWM的占空比。在程序中,将C路输入的一个完整的正弦波的SPWM的各个PWM占空比事先计算好,放于计算机的ROM之中,其所计算的点数就是步进电机细分驱动的细分数。
以C路的SPWM开始,使用查表方法,从0开始输出细分驱动波形,而A路的SPWM输出则根据细分数,滞后90°开始,使用查表方法得出A路细分驱动波形。
应用细分驱动技术,步进电机的运行方式变为每一个脉冲转轴转过一个细分角度。设步进电机的细分数为N,整步驱动时,每步转轴转过的角度为θ,细分角为α,则有α=θ/N。
在电机转速控制方式中,设驱动脉冲的频率为f,则在细分驱动方式下,电机的转速为整步驱动的1/N,即为
首先,根据细分驱动原理,在MPLAB软件中使用MPLAB C18编写PIC18F452的双极细分驱动程序。在Proteus软件中设计好两相步进电机得L298驱动电路。
在pic18F452中装入上述用MPLAB软件生成的Hex文件,启动Proteus的仿真功能,可见细分输出波形以及步进电机的运行情况,见图4。
仿真结果证明,使用细分驱动方法,步进电机运行连续、平稳,没有整步驱动时的跳跃抖动现象,这也是细分驱动能够消除步进电机振动的原因。
在掌握步进电机细分驱动技术的基础上,成功地将该技术引入到Proteus的步进电机的仿真领域,这也说明了Proteus仿真软件的强大的功能。限于篇幅,有关正反方向控制,细分数选择,单步控制等问题就不在此讨论。
[1]王晓明.电动机的单片机控制[M].北京:北京航空航天大学出版社,2003.
[2]武锋.PIC系列单片机开发应用实战[M].北京:北京航空航天大学出版社,2009.
[3]张皆喜.PIC系列单片机C语言编程语应用实例[M].北京:电子工业出版社,2007.