您现在的位置是:首页 > 工控

双极步进马达加速和减速过程应用

2020-03-17 11:01:41

就 DC 马达而言,通过升高电压(如果使用脉宽调制,则增加占空比),可以控制马达传动轴达到某个指定速度的快慢。但是,如果是步进马达,则改变电压不会对马达速度产生任何影响。没错,改变电压大小可以改变绕组电流电荷的速率,从而改变步进马达的最大速度,但是,马达速度是由绕组电流开关或者整流的速率所决定。
 
我们可以做这样的假设吗:步进马达是一些不需要受控加速过程的机器?如果可以,那么我们就可以无所顾忌地让步进马达工作在任何目标速度下吗?事实是,相比其他马达拓扑结构,步进马达更加需要通过加速和减速过程来激励。以任意速度启动步进马达,可能会带来可怕的后果。
 
本文中,我们假设读者已熟悉如何利用市场上已有集成微步进驱动器,对步进马达进行控制。步进驱动器(例如:TI DRV8818等)的输出与方波(“步进输入”)频率成正比。每个“步进”脉冲均等于驱动器步进逻辑定义步进(即微步进)。因此,改变方波频率,也会相应改变步进马达的速率。
 
图 1 显示了某个马达制造厂商的传统步进速率/扭矩曲线图,其中起始频率fs为一个重要参数。我们必须知道,要想正常启动这种特殊的马达,必须使用一个小于 fs 的步进速率。使用大于 fs 的步进速率启动马达,可能会使马达停转,并失去同步性。一旦出现这种情况,马达转动控制将受到严重的影响。表面看起来,这是一个严重的问题,但实际却很容易解决。您需要做的只是让马达以某个低于fs的步进速率启动,然后提高速度,直到达到目标速度为止。遵循这一原则以后,步进马达便可以通过远超 fs 的步进速率来驱动—只要速度保持在所示扭矩/速度曲线以下。
 
图1双极恒流步进马达的扭矩/速度曲线

同样重要的是,不能简单地通过停止“步进”脉冲来让马达停止。相反,应把步进速率从目标速度降至某个能使马达停止下来且没有传动轴惯性的更低速率,因为传动轴惯性会引起多余、无用的步进。请记住,如果在定位应用中使用步进马达,则如果马达在应该停止时还继续转动,马达传动轴便会失去定位。由于闭环位置反馈很少用于驱动步进马达,因此确保仅执行指令性步进至关重要。
 
加速/减速过程
为了使步进马达从起始速度加速至某个期望目标速度,只需以周期性间隔改变当前速度。大多数工程师都使用微控制器来实现步进马达控制。最常见的实现方法是只使用两个定时器。第一个是每秒步进 (SPS) 定时器,用于产生一种精确的步进速率计时功能。另外一个是加速定时器,用于周期性地改变第一个定时器。由于速度受到周期性改变,在本质上得到与时间相关的角速度 (dv/dt)。这一过程被称作加速度,即速度随时间变化情况。图 2 显示了一个典型的基于微控制器的加速度分布图放大图,并描述了步进马达加速至目标速度的过程。
 
图2典型加速过程放大图

 
SPS 是我们希望获得的每秒步进数,即马达转动的步进速率。必须对 SPS 定时器编程,实现以该速率发出脉冲。根据定时器的振荡器频率,典型方程式为:

其中SPS_TImer_register 为一个 16 位数字,它告诉定时器产生后续“步进”脉冲的所需时长,而 TImer_oscillator 为一个常量,表示定时器的兆赫单位运行速度。
 
以函数形式将该方程式存储起来,因为经常会用到它。为了理解它的工作过程,我们假设定时器振荡器工作在 8 MHz 下,并且期望的马达步进速率为 200 SPS。根据该方程式,程序代码使 SPS_TImer_register 值等于 40000。那么,定时器每计时到 40000,便产生一次“步进”脉冲。这会产生每秒 200 脉冲的定时器型输出以及 200SPS 的传动轴旋转。
 
这种事件每次发生时,都会产生一次中断,并且定时器被清空。“步进”输入上升沿计时对于微步进驱动器精确度至关重要,但只要其在下一个“步进”上升沿之前,下降沿几乎随时会出现。
 
定义加速度曲线需要两个参数:(1)SPS 值变化频率;(2)SPS 值变化程度。加速度曲线与这两个参数成正比;也就是说,SPS 值变化越频繁,其值也越大,而加速度曲线也会越大起大落。加速度定时器同时控制这两个参数:定时器函数起作用的次数与 SPS 值每秒的变化次数相同,另外,定时器的中断服务程序 (ISR) 通过一个预先确定的因数定期增加当前SPS,从而确定新的速度。
 
使用每秒每秒步进 (SPSPS),或者当前 SPS 速率改变的每秒次数,来测定加速速率。如果通过增加 1 来改变 SPS 值,则每次加速速率改变都必须调用(触发)加速度定时器的 ISR。例如,加速速率为 1000 SPSPS 时,马达速度以 200SPS 开始,并周期性增加 1,直至其达到 1200SPS。那么,加速度定时器的 ISR 需要调用 1000 次。
 
另外一种方法是,加速度定时器调用频率减半,然后 SPS 周期性增加 2。相比前一个例子,加速度定时器的 ISR 仅调用了 500 次,但马达仍然以 200SPS 启动,并在 1 秒内达到 1200SPS。两者的差别是更实时的可用性,但代价是分辨率下降。换句话说,为了达到 999 SPSPS 的精确加速速率,必须使用第一种方法。
 
必须在两种方法之间进行权衡,因为您的选择决定了可以达到什么样的马达工作质量。例如,如果要求有很多粒度以达到所有可能的加速度过程,则需要尽可能地调用加速度定时器的 ISR。
 
但是,在前面的 SPS 定时器方程式中,存在除运算。根据所使用处理器内核的不同,这种除运算可能会极大限制 ISR 被有效调用并正确产生新 SPS 速率的次数。在使用 TI MSP430™ 且 CPU 运行在 16 MHz下的实现中,一次除运算耗时约 500 µs。结果,ISR 每秒被调用的最大次数为 2000 次。这种限制决定了增量因数的大小。加速速率大于 2000 时,必须使用大于 1 的增量。
 
在马达启动前不久,便进行一次加速速率计算。负责该计算的软件,确定加速度定时器的时间间隔和增量因数大小,然后对各变量进行相应的配置。同时使用这些变量,直到对 SPS 速率的修改足以达到目标速度为止。一旦达到目标速度,加速终止。
 
减速过程与加速过程基本一致,但增量因数为负而非正的情况除外。另外,必须规定一个马达能够安全停止的新目标速度。
 
图 3 显示了一个加速/减速过程,其中,加速和减速速率对称。也可以使用非对称速率。