设计更高效的步进电机控制子系统

时间:2023-03-28

  现代步进电机驱动系统通常使用集成电源 IC 来驱动电机,并可能集成一些简单的控制,如电流控制。更的控制 IC 还集成了一个状态机来控制电机的步进序列。通常,步进时间和运动曲线由外部微控制器或 ASIC 中的专用逻辑控制。

   对于多电机控制,要么为每个电机复制专用逻辑,要么微控制器为每个被控制的电机加载额外的软件。

   新型 IC L6470 通过将数字控制与驱动器 IC 集成,简化了多电机控制的实施。在电压模式下工作,该 IC 能够以高达 1/128 微步进的速度管理用户定义的运动曲线,同时主微控制器上的负载。

   在此实现中,单个微控制器可以轻松管理多个电机,因为它只需向 IC 发出运动命令。用于步进电机的控制器 IC L6470 在单片 IC 上集成了功率级和数字控制。

   该设备可以通过 SPI 接口接收运动曲线命令,并使用编程的加速度和速度曲线自主执行完整的运动。它还可以自动加速电机并使其以编程速度运行。

  该器件的框图如下 图 1 所示。控制逻辑是一个可编程状态机,可以接收和存储加速率、减速率、启动速度、运行速度、相电流控制 (PWM) 参数和步进模式的参数。


   图 1:显示的是控制器 IC 的框图。

    控制器支持从整步到 1/128 微步的八种步进模式。对于任何选定的步进模式,内部位置计数器计算步数或微步数,以与步进模式相同的分辨率连续跟踪电机位置。

  以 1/128 微步为单位旋转每步 1.8 度的电机一整圈将使位置计数器增加(或减少)25,600 个计数(128 * 200 步)。所有运动参数和运动命令均通过 SPI 接口接收。

     命令,如向前移动若干步,由控制输出步进时间和步数的控制逻辑解释,以将电机从起始速度加速到运行速度并返回停止,同时移动总步数命令的步骤。

复杂的运动可以通过编程排队并发送一组运动命令来通过 SPI 发送到设备,从而显着减少微控制器的开销。

移动、位置指令

Digital Core 可以执行五个移动命令和四个停止命令,包括 下面表 1 中列出的命令。


表 1:Digital Core 可以执行五个移动命令和四个停止命令 。

在进行任何运动之前,运行参数、速度、速度、加速度、减速度和其他操作值是使用 SPI 接口上的 SetParam 命令设置的。为确保运动完整性,许多运动配置文件设置在运动期间被锁定,并且只能在电机停止时更新。

移动命令的典型移动配置文件如下 图 2 所示。当设备收到移动命令时,它会计算所需的配置文件并执行配置文件以从速度加速到速度并返回到距离起始位置 N 步的位置,所有这些都在数字硬件的控制下。


   图 2:显示的是典型的运动曲线。

   GoTo 命令告诉驱动器根据内部 22 位位置计数器将电机移动到特定位置。有两个 GoTo 命令,一个将沿指定方向移动,另一个将沿直接的路径移动,确定移动少步数到达所需位置的移动方向。

  对于以 1/128 微步每步进 1.8 度的电机操作,22 位位置计数器的分辨率相当于电机的大约 164 转。即使有显着的齿轮减速,可用的分辨率仍然在位置计数器的范围内。

   GoTo 命令的移动配置文件看起来与 Move 命令相同,但会自动计算步数以到达命令的位置。Run 和 GoUntil 命令用于以恒定速度运行电机,直到收到停止命令 (Run) 或发生外部事件 (GoUntil)。

    当收到停止命令时,设备会硬停止或减速停止,具体取决于命令。也可以命令设备硬停止或软停止,然后使输出处于三态。


  图 3:多个运行命令可以实现复杂的运动 。

    可以使用一系列运行命令执行复杂的运动,如上 图 3 所示。每次收到新的运行命令时,设备都会将电机加速或减速到新的命令速度,并继续以该速度运行,直到收到下一个运行命令或停止命令。当接收到反转运动方向的命令时,电机会减速到速度,然后加速到相反方向的速度。

    通常,步进电机驱动器设计为在电流模式下运行,电流控制器检测和控制绕组电流。这使设计人员能够在很宽的速度和电源电压波动范围内保持所需的扭矩。

   这对于整步和半步驱动器非常有效,并且实施起来非常简单。大多数设计人员都避免使用电压模式进行微步进驱动,因为随着速度的增加,峰值电流可能会因电源电压的变化和电机反电动势的增加而变化很大。然而,这两个因素都可以通过数字控制进行补偿。

为实现电压模式驱动,输出脉冲宽度由 PWM 计数器/定时器电路控制,该电路以数字方式设置输出占空比。L6470 通过向电机绕组施加电压来控制相电流。

相电流幅值不是直接控制的,而是取决于相电压幅值、负载转矩、电机电气特性和转速。有效输出电压与电机电源电压乘以系数 (KVAL) 成正比。KVAL 的范围是电源电压的 0% 到 100%。

在微步进中,此峰值然后乘以调制指数以生成具有选定步进数的正弦波。峰值电压值由以下等式给出:

VOUT = VS * KVAL

可以计算 KVAL 的值

从公式:

KVAL = (Ipk x R)/VS


Ipk = 所需的峰值电流

VS = 典型电源电压

R = 电机绕组电阻

该器件包括允许为加速、减速、恒速运行和保持位置设置不同 KVAL 设置的寄存器,以便在运动曲线的每个部分轻松允许不同的扭矩设置。


如果在整个速度范围内向电机提供相同的峰值电压,则电流会随着速度的增加而下降,因为电机的 BEMF 有效地降低了施加到线圈的电压。 下面图 4 左侧的波形显示了电机在没有 BEMF 补偿的情况下的运行情况。

 

图 4:所示为具有和不具有 BEMF 补偿的相电流 。

随着速度的增加,BEM 线性增加,并且由于线圈两端的电压实际上是施加的相电压减去 BEMF 电压,因此电流减小。

为了补偿 BEMF 的增加,该器件在 KVAL 中加入了一个额外因子来补偿 BEMF。本质上,这是添加到初始 KVAL 设置以抵消 BEMF 的补偿(下图 5)。

 

图 5:所示为 BEMF 补偿曲线。

由于 BEMF 与速度成正比,因此该补偿因子以斜率给出,以便可以根据斜率和当前速度计算实时补偿。该设备具有不同的补偿值。

个是应用于电机的标准值,从零速开始直到速度达到交叉速度参数 INT_SPEED 设置的阈值。在相交速度之上,可以通过两个额外的斜率项来调整斜率,一个在恒速操作和加速期间使用,另一个在减速期间使用。

正确设置 BEMF 补偿后,峰值电流将在整个运行速度范围内基本保持恒定,如图 4 所示。 下面的图 6 显示了电机加速时的实际电流波形。

 

  图 6:所示为具有 BEMF 补偿的相电流。

   电源、相电阻

    影响相电流的另外两个主要因素是电机电源电压和相电阻。由于该器件在电压模式下运行,控制输出占空比,任何一个的变化都会直接影响相电流。

  在未稳压的电源上运行时,电机驱动器电路的电源电压可能存在大量纹波。

    随着电源电压的变化,电机电流也会发生变化。如果电源电压上的纹波很大,则如果电机电流降得太低,则存在电机失速的风险。该器件包括对电源变化的补偿( 下图 7 )。

 

    图 7:该设备包括对电源变化的补偿。

    在该电路中,内部 ADC 测量电源电压,然后在数字内核中实施的补偿算法计算出适用于 PWM 占空比的适当补偿因子,以在电源电压变化时保持恒定的输出电压幅度。

   电机发热时相电阻的变化也会直接影响相电流。KTHERM 设置用于补偿由于电机内部加热引起的相电阻变化。

   驱动微控制器中的软件可以监控或估计电机温升并设置 KTHERM 值以补偿因温度升高而导致的电机电阻增加。例如,可以使用一个简单的算法来测量电机在移动之间停止期间的电阻,然后根据测得的电阻调整 KTHERM 的值。

   结论

   L6470 中实现的功能允许设计人员实现电压模式微步驱动,并补偿过去使用电流模式驱动已克服的典型系统变化。

总体而言,系统可以运行得更加平稳,并且没有电流模式驱动器常见的典型限制。使用基于数字的电压模式 PWM,可以轻松植入每步高达 128 微步的微步驱动器。

与电流模式实施相比,正弦波曲线更准确并允许更高的位置分辨率,并且电压模式操作大大降低了系统中的共振。

此外,该器件中实施的数字运动引擎极大地减少了系统微控制器的负载,并消除了对多电机应用有时需要的专用微控制器的需求。

上一篇:避免基于 1394 的外部存储系统中的设计错误
下一篇:在 20 米铜缆通信链路中使用高级均衡器和电缆组件

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料