在一些控制简单或要求低成本的运动控制系统中,经常用步进电机做执行元件。步进电机在这种应用场合下最大的优势是:可以开环方式控制而无需反馈就能对位置和速度进行控制。但也正是因为负载位置对控制电路没有反馈,步进电机就必须正确响应每次励磁变化。如果励磁频率选择不当,电机不能够移到新的位置,那么实际的负载位置相对控制器所期待的位置出现永久误差,即发生失步现象或过冲现象。因此步进电机开环控制系统中,如何防止失步和过冲是开环控制系统能否正常运行的关键。 失步和过冲现象分别出现在步进电机启动和停止的时候。一般情况下,系统的极限启动频率比较低,而要求的运行速度往往比较高。如果系统以要求的运行速度直接启动,因为该速度已超过极限启动频率而不能正常启动,轻则可能发生丢步,重则根本不能启动,产生堵转。系统运行起来以后,如果达到终点时立即停止发送脉冲串,令其立即停止,则由于系统惯性作用,电机转子会转过平衡位置,如果负载的惯性很大,会使步进电机转子转到接近终点平衡位置的下一个平衡位置,并在该位置停下。 为了克服失步和过冲现象,应在步进电机启停时进行如图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的大小可由理论或实验确定,以升速最快而又不失步为原则。每个台阶的运行步数为为Ns=fsΔt=sΔN,反映了每个速度台阶运行步数与当前速度s之间的关系,程序执行过程中,每次速度升一档,都要计算这个台阶应走的步数,然后以递减方式检查,当减至零时,该档速度运行完毕,升入又一档速度。 电机在升速过程中,对升速总步数进行递减操作,当减至零时升速过程结束,转入匀速运转过程。减速过程的规律与升速过程相同,只是按相反的顺序进行。在步进电机的启停过程中,根据控制系统的具体特点,采用上述三种升降速控制方式之一,都可以避免电机失步或过冲,达到比较精确的控制。