当前位置:文档之家› 专题5 步进电机加减速运动控制

专题5 步进电机加减速运动控制

步进电机转速度,是根据输入的脉冲信号的变化来改变的。从理论上讲,给驱动器一个脉冲, 步进电机就旋转一个步距角(细分时为一个细分步距角)。实际上,如果脉冲信号变化太快, 步进电机由于内部的反向电动势的阻尼作用,转子与定子之间的磁反应将跟随不上电信号的变 化,将导致堵转和丢步。
所以步进电机在高速启动时,需要采用脉冲频率升速的方法,在停止时也要有降速过程,以保 证实现步进电机精密定位控制。加速和减速的原理是一样的。
1. bsp_STEPMOTOR.h文件 2. bsp_STEPMOTOR.c文件 3. main.c文件
步进电机因其无需反馈就能对位置(脉冲数)和速度(脉冲频率)进行控制而在工业自动化设 备中的应用极为广泛,对于速度变化较大的,尤其是加减速频繁的设备,常常发生力矩不足或 者失步的现象,而实际上许多案例中步进电机的选型并没有问题,其问题在于负载位置对控制 电路没有反馈,步进电机就必须正确响应每次励磁变化,如果励磁频率选择不当,电机不能够 移到新的位置,那么实际的负载位置相对控制器所期待的位置出现永久误差,即发生失步现象 或过冲现象,因此在速度变化较大的步进电机控制系统中,防止失步和过冲是开环控制系统能 否正常运行的关键。
通常,完成步进电机的加减速时间为300ms以上。如果使用过于短的加减速时间,对绝大多数 步进电机来说,就会难以实现步进电机的高速旋转。
定义
直线(梯形)
“S”型曲线
指按直线方式(从启动速度到目标速度 的加减速),以一定的比例进行加速/减 速
加速/减速开始时速度比较缓慢,然后逐渐加快。 在加速/减速接近结束时速度再次减慢下来,从 而使移动较为稳定。S 字加减速的类型有Sin 曲线、 2次曲线、循环曲线、3 次曲线
5. 算法实现 由以上的数学模型,控制步进电机运动,在给定步数的情况下,速度从零开始加速,到达 既定最大速度后开始匀速运动,运动到一定步数后开始减速,最后停下来到达给定的步数, 速度曲线类似一个梯形的变化的过程,这样可以让电机启动或者停止更加平滑避免抖动的 出现。 加减速运动模型 为实现加减速控制,需要4个参数来描述,见图。
失步和过冲现象分别出现在步进电机启动和停止的时候,一般情况下,系统的极限启动频率比 较低,而要求的运行速度往往比较高,如果系统以要求的运行速度直接启动,因为该速度已超 过极限启动频率而不能正常启动,轻则可能发生丢步,重则根本不能启动,产生堵转,系统运 行起来以后,如果达到终点时立即停止发送脉冲串,令其立即停止,则由于系统惯性作用,电 机转子会转过平衡位置,如果负载的惯性很大,会使步进电机转子转到接近终点平衡位置的下 一个平衡位置,并在该位置停下。
当状态为RUN时候,步进电机会持续保持最大速度speed旋转,直到必须开始减速然后把 状态改变为DECEL。它会一直保持DECEL状态并一直减速到期望的步数并且速度为0。然 后状态变为 STOP。
step_count为计算步数,在ACCEL状态从零开始,在DECEL状态完成时结束,记录的步数应 该与命令控制的步数相同。
定时器中断处理
定时器中断产生步脉冲并且只有在步进电机移动时进入。这个中断处理速度属性的四个不 同的状态,分别为stop—accel—run—decel—stop。如图所示。
速度的这种行为通过状态机在定时器中断中实现。如图所示。STOP 为停止状态,ACCEL为 加速状态,RUN为匀速状态(对应最大速度speed),DECEL为减速状态。
2. 直线加减速 为让步进电机尽量不出现丢步和过冲情况,在电机启动和停止过程使用加减速是非常有
必要的。在加减速阶段,加速度(ω ̇)、速度(ω)和位置(θ)对应关系如图所示:
������t是两个脉冲之间的时间间隔,所以它的大小将决定着步进电机转速,为让电机转速符合加减速曲 线,一个非常重要的步骤是计算合适时间间隔������t,在加减速阶段,������t可以认为是线性变化的,而在 平稳速度阶段������t也是平稳不变(不是0)的。使用定时器的计数频率来离散步进控制步进电机运动 和处理时间间隔。
曲线
加减速 段曲线
直线(梯形) 曲线类型 一次曲线
复杂曲线
“S”型曲线
加速度 不变
不同的运动点加速度值不同
实现程度 容易

运动效果
启动、停止、高速运动段会产生很大的 启动、停止、高速运动段会产生很小的
冲击和振动及噪音
冲击和振动及噪音
应用场合 简单的定长送料
精密的工件搬运,精密的工件建工
1. 步进电机基础方程
如果要步进电机以恒定的速度旋转,我们就需要以固定的频率发送脉冲,我们通过控制器的定 时器功能来实现脉冲的发送,如图所示,������0为脉冲发送的起始时刻,������1为发送第二个脉冲的时刻, ������2为发送第三个脉冲的时刻。������0与������1之间的时间间隔(时间延时)为 ������t= ������0������������,其中������0为定时器在 ������0与������1这段时间的定时器计数值,������������为定时器的计数周期。������1与������2之前的时间间隔为 ������������ = ������1������������,其 中������1为定时器在������1与������2这段时间的计数值,������������为定时器的计数周期。比如说我们在程序中配置定 时器预分频器为35,那定时器时钟频率为������������=72MHz/(35+1)=2MHz,那么周期������������值就是1/2M,c就 是以������������为基本单位的一个完整步进脉冲的定时器计数值。在前面专题内容中,我们是让配置定 时器通道为翻转输出,比如当定时器计数到num值时发生翻转,翻转2次得到一个完整脉冲,即 总计数值为2*num。
机在启动时,如果目标速度较高,必须有加速过程,
即延时时间要逐步减少,让电机的速度一步一步地提
高到目标速度为止。为了简化实验,下面的程序例子 都是以低速运行,没有加速过程。
对于实际使用的步进电机,为了减少每步的角度,一 般通过增加定子线圈和转子磁铁的数目而实现。图是 永 磁 式 步 进 电 机 的 等 效 结 构 图 , 整 步 从 90° 减 少 到 15°(180°/(4*3)) , 它 的 转 子 含 有 6 个 磁 铁 , 定 子 含 有A-H等8个线圈,其中A和C、E和G、B和D、F和H 分成4组,每组各自并联在一起,工作时转子可以等 效成一对南北极的磁铁,定子等效成4个线圈绕组, 分析方法相同。
step:步数,定义电机旋转步数; accel:加速度; decal:减速度; speed:最大速度,即匀速阶段速度。
加减速分析 在加速的过程中,有两种场景计算速度属性:
1)持续加速直到达到所需的速度 2)未达到所需的速度就要开始减速 这场景取决于描述速度属性四个变量,首先介绍第一种场景,见图。
accel_count用于控制加速或者减速。在ACCEL状态时,它从零开始每一步都会增加直到 ACCEL状态结束。在DECEL状态时,它设置为decel_val,并且为负数,每一步都会增加直 到它的值为0,运动结束,状态设置为STOP。
decel_start指示减速开始。当step_count与decel_start相等时,状态设置为 DECEL。
上面介绍的加减速算法都是参考《AVR446_Linear speed control of stepper motor.pdf》内容 实现,该文档根据它当时的电机驱动硬件,在代码中把速度speed、加速度accel以及减速 度decel做了放大100倍处理。而现在我们是使用我们自己的驱动电路和电机,这在程序控 制上有点区别,特别的,最基本的控制芯片都不同,所以,我们下面要介绍的代码是把速 度speed、加速度accel以及减速度decel做了放大10倍处理,所以注意分析程序。
当应用程序启动(复位重启)或者步进电机停止状态机处于STOP状态。当输入移动步数 建立计算完成,一个新状态被置位同时定时器的中断被使能。
当运行的步数超过 因为只移动一步是不需要加速的。当状态变为ACCEL,应用程序一直加速到步进电机达 到期望的最大速度,这时状态变为RUN,或者减速必须开始,状态变为DECEL。
步进电机只能够由数字信号控制运行的,当脉冲提供给驱动器时,在过于短的时间里,控制系 统发出的脉冲数太多,也就是脉冲频率过高,将导致步进电机堵转。要解决这个问题,一般采 用加减速的办法。就是说,在步进电机起步时,要给逐渐升高的脉冲频率,减速时的脉冲频率 需要逐渐减低。这就是我们常说的“加减速”方法。
在驱动过程中,为了让转子的机械速度能够跟上定子的通电速度,每驱动一步,都要延时一段 时间才能驱动下一步,例如在半步驱动中,首先给A线圈通电,接着延时一段时间,等转子转到 A线圈处,然后同时给A、B线圈通电,再延时一段时间,等转子转到A、B线圈的中央,如此类 推,改变延时的时间,即可改变速度。如果延时时间太短,转子还没有转到位,就开始驱动下 一步,那么转子就会出现失步、震荡的情况。步进电
下面就加速实例加以说明:
加速过程,是由基础频率(低于步进电机的直接起动最高频率)与跳变频率(逐渐加快的频率) 组成加速曲线(降速过程反之)。跳变频率是指步进电机在基础频率上逐渐提高的频率,此频 率不能太大,否则会产生堵转和丢步。
加减速曲线一般为直线(梯形)、指数或者“S”型曲线等。对于不同负载、不同转速,需要选 择合适的基础频率与跳变频率,才能够达到最佳控制效果。
相关主题