所有 BLDC 电机都在BLDCMotor
类中处理。这个类实现:
- BLDC FOC 算法
- 运动控制回路
- 监控
- 用户通讯接口
1. 创建 BLDC 电机的实例
要实例化 BLDC 电机,我们需要创建BLDCMotor
该类的实例并为其提供电机的极对数.
// BLDCMotor(int pp, (optional R))
// - pp - pole pair number
// - R - phase resistance value - optional
BLDCMotor motor = BLDCMotor(11 , 10.5);
极对数
如果您不确定您的pole_paris
号码是多少。该库提供了一个示例代码来估计您pole_paris
在示例中的数量find_pole_pairs_number.ino
。
相位电阻
如果您事先知道您电机的相电阻值R
,我们建议您将其提供给图书馆。然后库将在内部计算电压值,用户将只处理电流。但这是一个可选功能。
2. 连接传感器
一旦定义了电机并初始化了传感器,您需要通过执行以下命令来链接motor
和sensor
:
// link the sensor to the motor
motor.linkSensor(&sensor);
该库中linkSensor方法
能够实现连接电机到任何传感器。sensor
将被用于确定电机的FOC算法的电位置以及用于速度和位置的运动控制环。有关更多信息,请参阅位置传感器文档!
使用开环运动控制时不需要链接。
3. 链接驱动程序
一旦定义电机并初始化了驱动程序,您需要通过执行以下命令来链接motor
和driver
:
// link the driver to the motor
motor.linkDriver(&driver);
该BLDCMotor类
期望得到一个BLDCDriver
类的实例,在默认情况下类实现BLDCDriver3PWM
和BLDCDriver6PWM
。驱动程序处理与特定微控制器架构和驱动程序硬件相关的所有硬件特定操作。有关更多信息,请参阅bldc 驱动程序文档!
4. 连接电流感应
如果您有电流传感器,您可以将current_sense
链接到motor
使用:
// link the current sensor to the motor
motor.linkCurrentSense(¤t_sense);
仅当您具有此库支持的电流感应时,才需要此链接步骤。
5. 配置参数
如果您选择不设置某些配置参数,它们将采用defaults.h
文件中定义的值。
5.1 PWM 调制类型
BLDC 电机有四种类型的磁场定向控制调制类型:
- 正弦 PWM 调制
- 空间矢量PWM调制
- 块换向 -有益于电流控制应用
- 梯形120
- 梯形 150
您可以通过更改motor.foc_modulation
变量来设置它们:
// choose FOC modulation
// FOCModulationType::SinePWM; (default)
// FOCModulationType::SpaceVectorPWM;
// FOCModulationType::Trapezoid_120;
// FOCModulationType::Trapezoid_150;
motor.foc