Link

力矩控制环

FOC 电流模式 DC 电流模式 电压模式 - 假定电流 电压模式

SimpleFOClibrary提供3种不同的力矩控制策略:

总而言之,电压控制模式是最简单的电机力矩控制近似模拟,它十分基础,可以在任何电机+驱动器+mcu组合上运行。直流电流模式是更进一步的电机力矩近似模拟,它比电压模式更精确,但需要电流检测和性能更强的单片机。FOC电流模式是真正的电机力矩控制,不是一个近似模拟。它需要的电流检测要比直流电流模式有更强大的处理能力。更深入的解释说明,请查阅力矩模式文档

这个运动控制模式需要设定 controller 参数,如下:

// 力矩控制环
motor.controller = MotionControlType::torque;

如果采用电压控制模式,当用户不向电机提供相阻值时,则力矩控制环的输入为目标电压Uq:

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

力矩控制环是所有其他运动控制环的基础。有关蓝框中的相关内容,请查阅 力矩模式文档.

配置参数

基于力矩控制模式,你会使用到以下这些你需要考虑的参数:

更多关于运动控制策略的源代码实现,请查阅 library 源代码文件

比较

力矩控制类型优点缺点
电压✔️简单和快速
✔️ 任何 MCU上都有良好的性能
✔️ 低速行驶时非常平稳
✔️ 无需电流检测
❌ 在高速下不是最佳的
❌ 不能控制真正的电流
❌ 力矩为近似估值(低速时误差小)
直流电流✔️ 能控制真正电流
✔️ 适用于低性能 MCU
✔️可实现电流限制
❌ 执行更复杂(更慢)
❌可以实现比电压模式更低的速度
❌ 力矩为近似估值(低速时误差小)
❌需要电流检测
FOC电流✔️真正的力矩控制(任意速度)
✔️ 能控制真正电流
✔️在更高的速度下更高效
✔️可实现电流限制
❌ 执行最复杂(最慢)
❌ 不适合低性能的MCU(可能变得不稳定)。
❌需要电流检测

电压模式 - voltage

基于电压的力矩控制是最基本的力矩控制模式,它为你提供了一个抽象的无刷直流电机,以便你可以控制它作为直流电机。

它基于简单的欧姆定律(忽略了电流动态特性),因此不需要任何电流检测相关的硬件。假若想了解有关此方法的更多信息,请访问我们的digging deeper section. 这种力矩控制方法无论其是否具有电流感应,都能够在任何无刷直流电机驱动板上工作。

直流电流模式 - dc_current

基于直流电流的力矩控制能够像控制直流电机那样控制无刷电机。电流检测用于获取通过电机的电流大小及方向,我们假设力矩和总电流是成正比的。这种模式好处在于可以非常精确地控制无刷电机的实际电流,一些性能较低的处理器(如ATMega328系列)也能有较快较稳定的效果。

FOC电流模式- foc_current

基于直流电流的力矩控制是唯一真正的力矩控制方法。它控制电流 q和 d的两个分量。我们假设力矩与 q 电流分量成比例,并控制电流的 d 分量保持等于0。

项目例程

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

更多项目,请查阅 例程项目 部分。