Link

转矩控制环

选择电机类型:

无刷直流电机 步进电机

选择电压控制类型:

FOC 电流模式 直流电流模式 电压模式 - 估算电流 电压模式

简易FOC 为您提供了 3 种不同的转矩控制策略供选择:

简而言之,电压控制模式是电机转矩控制的最简单近似,它非常基础,可在任何电机 + 驱动器 + 微控制器组合上运行。直流电流模式是电机转矩近似的下一步,比电压模式精确得多,但需要电流检测和更强的微控制器。FOC 电流模式控制电机的真实转矩,它不是近似值,也需要电流传感器,并且比直流电流模式需要更多的处理能力。详见 转矩模式文档 中的深入解释。

通过将 controller 参数设置为以下值来启用此运动控制模式:

// torque control loop
motor.controller = MotionControlType::torque;

如果使用电压控制模式,并且用户未向电机提供相电阻参数,则转矩控制环的输入将是目标电压 Uq

无刷直流电机 步进电机

如果使用基于电流的转矩控制模式(直流电流或 FOC 电流)之一,则控制环中的输入将是目标电流 iq。如果用户向电机类提供相电阻值,在电压模式下也是如此。

转矩控制环用作所有其他运动控制环的基础。有关蓝色框内容的更多信息,请查看 转矩模式文档

配置参数

根据您希望使用的转矩控制类型,有不同的参数需要考虑。

  • 电压模式 - 最简单的一种
    • 无强制参数
    • (可选参数包括电机相电阻、电感和 KV 额定值)
  • 直流电流模式 - 1 个 PID 控制器 + 1 个低通滤波器(LPF)
  • FOC 电流模式 - 2 个 PID 控制器 + 2 个低通滤波器(LPF)

有关运动控制策略的源代码实现的更多信息,请查看 库源代码文档

比较

转矩控制类型优点缺点
电压模式✔️ 非常简单快速
✔️ 在任何 MCU 上性能都很好
✔️ 低速时非常平稳
✔️ 不需要电流检测
❌ 高速时不是最优的
❌ 无法控制真实电流消耗
❌ 转矩是近似值(低速时误差小)
直流电流模式✔️ 可以控制真实电流消耗
✔️ 适用于低性能 MCU
✔️ 电流限制
❌ 执行更复杂(速度较慢)
❌ 能达到的速度低于电压模式
❌ 转矩是近似值(低速时误差小)
❌ 需要电流检测
FOC 电流模式✔️ 真正的转矩控制(任何速度)
✔️ 可以控制真实电流消耗
✔️ 在较高速度下效率很高
✔️ 电流限制
❌ 执行最复杂(速度最慢)
❌ 不适用于低性能 MCU(可能变得不稳定)
❌ 需要电流检测

电压模式 - voltage

通过电压进行转矩控制是最基本的转矩控制类型,它为您提供了无刷直流电机/步进电机的抽象,以便您可以像控制直流电机一样控制它。它基于电流与电压成正比的原理(忽略电流动态),因此不需要任何电流检测硬件。有关此方法的更多信息,请访问我们的 深入探讨部分这种转矩控制方法可以在任何无刷直流电机/步进电机驱动板上工作,无论它是否有电流检测功能。

直流电流模式 - dc_current

直流电流控制模式使您能够像控制直流电机一样控制无刷直流电机/步进电机的电流。电流检测用于获取电机消耗的电流的整体大小及其方向,并且假设转矩与总电流成正比。这种方法的好处是,可以非常精确地控制设置给无刷直流电机/步进电机的真实电流,对于性能较差的微控制器(如 Atmega328 系列),执行起来更快、更稳定。

FOC 电流模式 - foc_current

FOC 电流控制是唯一真正的转矩控制方法。它控制电流矢量 qd 的两个分量。假设转矩与 q 电流分量成正比,并且电流的 d 分量被控制为保持等于 0。

项目示例

这是一个非常酷的项目示例,它使用了转矩控制,并描述了所需的完整硬件 + 软件设置。

示例项目 部分中找到更多项目。