失步和过冲现象分别出现在步进电机启动和停止的时候。一般情况下,系统的极限启动频率比较低,而要求的运行速度往往比较高。如果系统以要求的运行速度直接启动,因为该速度已超过极限启动频率而不能正常启动,轻则可能发生丢步,重则根本不能启动,产生堵转。系统运行起来以后,如果达到终点时立即停止发送脉冲串,令其立即停止,则由于系统惯性作用,电机转子会转过平衡位置,如果负载的惯性很大,会使步进电机转子转到接近终点平衡位置的下一个平衡位置,并在该位置停下。
为了克服失步和过冲现象,应在步进电机启停时进行如图 1 所示的升降速控制。
从图 1 可以看出, L2 段为恒速运行, L1 段为升频, L3 段为降频,按照 “ 失步 ” 的定义, 如果在 L1 及 L3 段上升及下降的控制频率变化大于步进电机的响应频率变化,步进电机就会失步,失步会导致步进电机停转,经常会影响系统的正常工作,因此,在步进电机变速运行中,必须进行正确的升降速控制。
以下按不同的控制单元,介绍几种常用的步进电机升降速控制方法。
1 、 运动控制卡作上位控制单元——以 MPC01 系列运动卡为例
MPC01 系列运动控制卡可以作为 PC 机运动控制系统的核心控制单元。卡上的专用运动控制芯片可自动进行升降速计算。其运动控制函数库中也有专门进行梯形升降速运动参数设置的函数—— set_profile(int ch, double ls, double hs, double accel) 。其参数定义如下:
ch: 设定的轴号。
ls: 设定低速(起始速度)的值。 单位为 pps (脉冲 / 秒)
hs: 设定高速(恒速段)的值。单位为 pps (脉冲 / 秒)
accel :设定加速度大小。单位为 ppss (脉冲 / 秒 / 秒)
用户在调用运动指令函数时,只需指定总的脉冲数, 运动控制卡上的专用运动控制芯片便按照 set_profile 函数设置的运动参数自动进行升降速计算,而不会占用 PC 机的 CPU 资源。
2、用具有运动控制功能的 PLC 做上位控制单元——以松下 FP0 系列 PLC 为例
松下 FP0 系列 PLC 具有专用的运动控制指令,其 CPU 单元可自动进行图 1 所示的升降速计算。和 MPC01 系列运动控制卡相似,用户只需设置梯形速度的初速度 ls 、恒速 hs 、加速时间 t 和所需发的脉冲数 P 。运行此程序段,当 PLC 检测到输入端 X2 的一个上跳变时,便自动执行如图 1 所示的升降速脉冲输出功能。
3 、 用单片机做上位控制单元
采用微机对步进电机进行加减速控制,实际上就是改变输出脉冲的时间间隔,升速时使脉冲串逐渐加密,减速时使脉冲串逐渐稀疏。采用定时器中断方式控制电机变速时,实际上是不断改变定时器装载值的大小。
单片机在控制电机加减速的过程中,一般用离散方法逼近理想的升降速曲线。加减速的斜率在直线加速过程中,速度不是连续变化,而是按分档阶段变化,为与要求的升速斜率相逼近,必须确定每个台阶上的运行时间,见图 3 。时间Δ t 越小,升速越快,反之越慢。Δ t的大小可由理论或实验确定,以升速最快而又不失步为原则。每个台阶的运行步数为为 N s =f s Δ t=s Δ N ,反映了每个速度台阶运行步数与当前速度 s 之间的关系,程序执行过程中,每次速度升一档,都要计算这个台阶应走的步数,然后以递减方式检查,当减至零时,该档速度运行完毕,升入又一档速度。
电机在升速过程中,对升速总步数进行递减操作,当减至零时升速过程结束,转入匀速运转过程。减速过程的规律与升速过程相同,只是按相反的顺序进行。在步进电机的启停过程中,根据控制系统的具体特点,采用上述三种升降速控制方式之一,都可以避免电机失步或过冲,达到比较精确的控制。