本发明涉及电动机控制调节技术领域,特别涉及一种步进电机加减速控制方法。
背景技术:
近年来,步进电机因其具有脉冲控制、定位精度高的优点而被广泛应用于微机控制的经济型数控系统之中。而步进电机的矩频特性是指电机的有效输出转矩与运行频率之间的函数关系,是步进电机的主要特性之一。用户根据步进电机的矩频特性来选择步进电机的类型,以保证选择的步进电机能可靠运行、不失步。
步进电机在实际应用中存在两个问题:一是步进电机的高频区的机械特性较软,不适用于大惯性负载系统;二是步进电机是按同步电机原理工作的,过载能力较低。由于步进电机存在以上两个问题,使得步进电机很容易发生过载现象,而一旦过载就将引起失步甚至堵转,使负载位置发生变化。而且步进电机做执行元件时,是以开环方式进行控制,即负载位置对控制电路没有反馈。而由于负载位置对控制电路没有反馈,步进电机就必须要正确响应每次励磁的变化,如果励磁频率选择不当,电机不能移动到新的位置,那么实际的负载位置与预计的负载位置就会产生误差。在实际应用中由于负载位置会经常发生变化,将导致实际负载的位置相对控制器所设定的位置出现永久性误差。
技术实现要素:
本发明的目的在于提供一种步进电机加减速控制方法,以解决步进电机实际负载的位置相对控制器所设定的负载位置出现误差的问题。
为实现以上目的,本发明采用的技术方案为:提供一种步进电机加减速控制方法,该方法包括:
基于被控步进电机的最高运行速度,根据预设的速度计算公式生成被控步进电机的速度表;
基于所述速度表,利用定时器产生相应脉冲以驱动被控电机进行加减速运动。
与现有技术相比,本发明存在以下技术效果:根据单片机的类型,确定该单片机的速度计算公式,并按照该速度计算公式得到该类型单片机的速度表,然后将速度表作为单片机寄存器的值。在步进电机速度的控制中,通过该速度表驱动定时器输出脉冲频率的增大幅度,从而改变定时器输出脉冲的频率以驱动步进电机进行加减速运动。按照这种方式可以对步进电机的运动达到比较精确的控制,以保证步进电机能可靠运行、不失步,从而使步进电机实际负载的位置与控制器所设定的负载位置一致,避免出现误差。
附图说明
图1是本发明一实施例中的步进电机加减速控制方法的流程图;
图2是本发明一实施例中步骤S2的细分步骤的流程图;
图3是本发明一实施例中的定时器输出脉冲的频率-时间关系图;
图4是本发明一实施例中的定时器中断服务的流程图;
图5是本发明一实施例中的步进电机加减速的速度升降曲线图。
具体实施方式
下面结合图1至图5,对本发明做进一步详细叙述。
如图1所示,本实施例公开了一种步进电机加减速控制方法,该方法包括如下步骤S1至S2:
S1、基于被控步进电机的最高运行速度,根据预设的速度计算公式生成被控步进电机的速度表;
需要说明的是,被控步进电机的最高运行速度是步进电机出厂时设定的值,本实施例中采用单片机控制步进电机的加减速过程,根据选用的单片机的类型确定被控步进电机加减速过程的速度表,并将速度表的内容作为寄存器的值,在控制被控步进电机的加速和减速通过查找寄存器的值进行。
对速度计算公式的选用举例说明如下:
如果选用的英飞凌单片机,则直接使用曲线计算器生成速度表,其中曲线计算器生成的速度值是按照如下公式计算的:
速度值=(定时器计数最大值-X)×T,
公式中:X为定时器的计数初值,这个计数初值是可以任意设定的,T是单片机芯片的机器周期,定时器计数最大值是根据定时器的位数确定的,比如,定时器是16的,那么定时器计数最大值为65535;如若定时器是8位的,那么定时器计数最大值为255。
如果选用的是飞思卡尔的S12G单片机,则由于该单片机的定时机制不同,该单片机TIM模块是8个通道共用一个机器周期T,因此按照如下公式计算被控步进电机的速度值:
速度值=X×T。
S2、基于所述速度表,利用定时器产生相应脉冲以驱动被控电机进行加减速运动。
具体地,如图2所示,上述实施例中的步骤S2包括如下细分步骤S21至S22:
S21、根据速度表确定定时器产生脉冲频率的变化幅度;
S22、以步进电机的起动频率开始,按照所述的脉冲频率的变化幅度改变定时器输出脉冲的频率以驱动被控电机进行加减速运动。
具体地,该处通过单片机改变定时器输出脉冲的时间间隔、输出脉冲的频率来控制被控步进电机的变速,其中脉冲频率的增大幅度是由速度表即寄存器中的值确定的。按照这种方式可以对步进电机的运动达到比较精确的控制,以保证步进电机能可靠运行、不失步,从而使步进电机实际负载的位置与控制器所设定的负载位置一致,避免出现误差。
具体地,上述实施例中的加减速过程包括加速、匀速和减速过程:
在加速过程中,以被控步进电机的起始频率开始,按照速度表确定脉冲频率的增大幅度来增大脉冲的频率以使被控步进电机进行加速运动;
当脉冲的频率增大到被控步进电机最大转速所需要的频率时,被控步进电机进入匀速过程;
在减速过程中,以被控步进电机最大转速所需要的频率开始,按照速度表确定脉冲频率的减小幅度来减小脉冲的频率以使被控步进电机进行减速运动。
这里需要说明的是,步进电机的减速度可以比加速度大。该处根据速度表中的速度值确定定时器输出的脉冲的频率的增大幅度,改变定时器输出的脉冲串的密度,在升速时,定时器输出的脉冲串逐渐加密,在减速时,定时器输出的脉冲串逐渐稀疏。
具体地,在上述的加减速运动过程中,根据定时器输出的当前脉冲的频率和速度表中被控步进电机当前的速度确定加速过程中每个速度档的运行步数;对每个速度档的运行步数执行递减操作,当运行步数减至零时,被控步进电机的当前速度档运行完毕进入下一速度档。这里所说的步进电机的加减速过程中的速度值不是连续变化的,而是按照分档阶段的变化,在加减速运动过程中,每次速度升一档,都要首先计算当前速度档台阶应走的步数,然后以递减的方式检查,在台阶步数减至零时,该档速度运行完毕,进入下一档速度。其中每个速度档台阶的运行步数是根据定时器输出脉冲的间隔时间、输出脉冲的频率以及被控步进电机当前的运行速度确定的,公式如下:
Ns=fsΔt,
式中:Ns为当前速度档台阶的运行步数,如图3所示,fs为被控步进电机当前的运行速度为s时定时器当前输出脉冲的频率,Δt为定时器当前输出脉冲的时间间隔。
具体地,上述实施例中的定时器从计数初值X开始计数,并在当前计数值达到计数最大值时进入中断以输出脉冲驱动被控步进电机变速。该处的计数初值X是可以任意设定的,定时器从计数初值开始计数,在计数值达到定时器的计数最大值时,定时器发生溢出中断,输出脉冲以驱动被控步进电机变速。
具体地,如图4所示,定时器的中断服务的流程为:
A1、在定时器进入中断后,判断定时器是否正在输出脉冲,如果是,则执行步骤A2,如果否,则执行步骤A3;
A2、输出脉冲以驱动被控步进电机变速;
A3、重新加载定时器的计数初值X并从计数初值X开始计数,在当前计数值达到计数最大值时进入中断以输出脉冲驱动被控步进电机变速。
具体地,如图5所示,上述的加速过程包括加加速阶段、匀加速阶段和减加速阶段。上述的减速过程包括加减速阶段、匀减速阶段和减加速阶段。因此,本实施例中的步进电机的升降速曲线分为7段:其中,Vo是被控步进电机的起点运行速度,a为匀加速起点,b为减加速起点,c为匀速起点,d为加减速起点,e为匀减速起点,f为减减速起点。每个阶段中的步进电机的速度变化都是按照前述的将每个阶段的速度值分档,然后计算该速度档台阶的应走步数,按递减方式进行检查,在步数减至零时,进入下一速度档。