弱磁控制:扩展转速范围

系列:电机控制系列 - 第 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² / √3

1.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;
         }
     }
 }

三、总结

弱磁核心要点

  1. id < 0 减弱磁通
  2. 电压反馈法
  3. 需要限制 id 最小值

下一篇MTPA 控制

最后修改:2026 年 03 月 14 日
如果觉得我的文章对你有用,请随意赞赏