南昌大学机电科学与工程研究所 李 灵 朱洪涛 廖文国
多步进电机的变细分加减速控制研究
南昌大学机电科学与工程研究所 李 灵 朱洪涛 廖文国
近些年来,由于步进电机具有精度高、惯性小、工作可靠,并且能实现高精度快速开环控制的特点,因而被广泛应用在舞台灯的运动控制系统中。要求步进电机能够高速、精确的运行,即在保证步进电机在不失步和不过冲的情况下,以最快的速度平稳地运行到指定位置,这就对步进电机的升降速控制以及多步进电机的协同控制提出了很高的要求。
为了克服失步和过冲现象,应在步进电机启停时进行加减速控制。步进电机常用的是升降频控制方法。微控制器中一般都是采用定时器中断方式来控制步进电机的加减速,实际上就是不断改变定时器中装载值的大小。一般用离散方法逼近理想的升降速曲线,根据不同阶段的频率计算出定时器中装载值的大小和相应走过的步数,放在一个表格中,系统运行时,采用查表的方法读出所需要的值实现对频率的调整。用单片机实现步进电机的加/减速控制,实际上就是控制发脉冲的频率,升速时,使脉冲频率增高,减速时相反。这种控制方法在步进电机数量有限、步进电机速度不高、对系统响应速度和灵敏度不高的场合行之有效。在舞台灯中,以某款灯具为例,两相混合式步进电机数量为20个,电机型号各不相同,电机速度为6RPM~200RPM,电机有连续旋转、到达指定位置、在指定位置以某一偏移角度左右摆动三种运动状态。控制器接收DMX512协议的指令,把指令翻译成每个电机的目标状态,进而根据指令要求协同控制各个电机的运行。DMX512协议的波特率为250KBPS,系统响应速度和灵敏度较高。由此可见,如果采用升降频方法就得为每个电机建立一个频率-步长表,定时器初值的计算与装载也颇为不便,这将耗费大量的MCU资源,电机的速度达不到要求。据此笔者研究了一种全新的变细分控制算法。
升降频加减速的本质是固定细分阶数,改变阶梯波脉冲频率;而变细分加减速则是固定阶梯波脉冲频率,改变细分阶数。
要实现变细分,就必须根据不同的细分阶数生成不同的阶梯波。建立阶梯波数值表,有两种方法,一种是针对每种细分方式建立相应的表格,其特点是细分种类多样,但表格所占空间较大,而且只能实现有限的细分阶数;另外一种,建立一种固定细分阶数的阶梯波数值表。在具体控制中,通过设定循环增量基数,使不同的电机速度要求对应不同的细分步数,实现了连续变细分加减速,这也是本控制系统采用的方法。
固定频率时不同速度对应的细分阶数计算公式如下:
式中,Sub1为所需细分数,F为脉冲频率,S为步进电机转动速度(单位:rpm)。
本系统中固定细分表的细分阶数为256,因此循环增量的计算公式如下:
式中:Mx_Step为循环增量。
如此一来,在固定频率下,电机速度与循环增量成正比,通过改变循环增量值的大小可以很方便地改变电机的速度,从而实现电机加减速控制。
系统框图如图1所示。
下面以颜色盘的控制过程为例来体现电机的实现功能。颜色盘通道指令与电机状态对应关系如表1所示。由表可知,当指令表示电机转到固定位置时,电机运行期间的最高速度为100r/ min;当指令表示电机连续转动时,电机加速到该速度后保持该速度匀速运行。假设步进电机刷新频率为5KHz,则由此可计算出电机运行期间的最高循环增量值。
电机加减速控制基本思路如下:
1.在微控制器ROM中建立一个固定的公共正余弦256细分表格。
2.设变量S_Value,Max_Step,Mx_BigStep,Mx_State分表表示电机的启动步长,循环增量,电机转动1.8°标志位和当前电机在细分表中的位置。
3.根据电机速度要求设定定时器中断初值为某一固定值。
表 1 颜色盘通道指令与电机状态
4.定时器中断刷新电机DA值,根据当前电机所在细分表中的位置加上循环增量得到新的电机所在查细分表位置,查表得到正余弦值,刷新电机的DA。
5.主程序根据DMX512指令要求,计算各个电机的目标状态和电机最高速度,进而计算循环增量值,判断电机1.8°标志位,加减速阶段电机每转过1.8°改变一次循环增量值的大小。
以颜色盘指令值υ=215,电机连续正转,最高速度为152.3r/ min为例,循环增量 Max_Step=26。电机起步 S_Value=1,Mx_State=0。颜色盘加速控制简约流程图如图2所示。
电机转到固定位置或者反转,摆动的加减速类似,在程序中也很容易实现。多电机控制只需将每个电机顺序执行便可。
这种步进电机加减速控制方法稳定可靠,比较简单,容易实现,能充分利用控制器资源,尤其适合在单一控制器控制多步进电机的场合中,并已成功应用在1500W的摇头灯中。