弱磁控制:扩展转速范围
系列:电机控制系列 - 第 13 篇 难度:⭐⭐⭐
前言
反电动势随转速升高 → 超过电压极限 → 无法控制
弱磁解决:id < 0 → 减弱磁通 → 降低反电动势
一、弱磁原理
1.1 电压极限圆
d 轴电压:vd² + vq² ≤ vdc² / √3
展开:
(Rs·id - ωe·Lq·iq)² + (Rs·iq + ωe·Ld·id + ωe·ψf)² ≤ vdc² / √3
简化(忽略电阻):
(ωe·Lq·iq)² + (ωe·Ld·id + ωe·ψf)² ≤ vdc² / √31.2 弱磁轨迹
id = 0 → MTPA
id < 0 → 弱磁区
弱磁电流:
id_fw = -(ψf / Ld) · (1 - vdc / (ωe · ψf))二、弱磁实现
/**
* @brief 弱磁控制
*/
void Flux_Weakening_Update(FOC_t *foc) {
// 1. 计算当前电压幅值
float v_mag = sqrtf(foc->vd * foc->vd + foc->vq * foc->vq);
float v_max = VDC / sqrtf(3.0f) * 0.9f; // 90% 利用率
// 2. 电压超限 → 进入弱磁
if (v_mag > v_max) {
// 弱磁电流增量
float v_error = v_mag - v_max;
float id_delta = -v_error / (foc->omega_e * foc->motor.Ld);
foc->id_ref += id_delta;
// 限幅
if (foc->id_ref < -foc->motor.id_max) {
foc->id_ref = -foc->motor.id_max;
}
}
}三、总结
弱磁核心要点:
- id < 0 减弱磁通
- 电压反馈法
- 需要限制 id 最小值
下一篇:MTPA 控制