1. IPMSM弱磁控制的基本原理
IPMSM(内置式永磁同步电机)的弱磁控制是电机控制领域的一个重要课题。与表贴式永磁同步电机(SPMSM)不同,IPMSM由于磁路不对称性(Ld≠Lq),使得其控制策略更为复杂。在基速以下运行时,我们通常采用最大转矩电流比(MTPA)控制;而当转速超过基速时,就需要采用弱磁控制来扩展速度范围。
负id电流弱磁控制的本质是通过在d轴注入负向电流,产生与永磁体磁场方向相反的磁势,从而削弱气隙磁场。这种控制方式的核心在于:
- 磁链方程:ψd = Ld·id + ψf
- 转矩方程:Te = 1.5p[ψf·iq + (Ld-Lq)·id·iq]
当注入负id时,ψd减小,根据电压极限圆方程:
Vlim^2 = (ωe·Lq·iq)^2 + [ωe·(Ld·id + ψf)]^2
这使得我们可以在不超出电压限制的情况下,继续提高电机转速。这种控制方式特别适合电动汽车、主轴驱动等需要宽调速范围的应用场景。
注意:弱磁区的深度与电机参数密切相关,特别是Ld和ψf。在实际应用中需要准确获取这些参数。
2. MTPA与弱磁控制的切换逻辑
实现平稳的MTPA到弱磁控制的过渡是系统稳定运行的关键。我们需要建立一个可靠的切换判据:
-
电压利用率判据:当调制比(输出电压与直流母线电压之比)超过设定阈值(通常为0.95)时,开始弱磁控制
调制比计算公式:
m = √(vd^2 + vq^2) / (Vdc/√3) -
转速判据:当实际转速超过理论基速(ωbase = Vrated/ψf)时触发弱磁
-
电流角度判据:MTPA角度θm满足tanθm = iq/id,当需要θm > 45°时进入弱磁
在实际代码实现中,我们采用分层控制结构:
c复制// 控制流程伪代码
void FOC_Control() {
Get_Feedback(); // 获取反馈量
Speed_Control(); // 速度环控制
if(ModulationIndex > 0.95 || Speed > BaseSpeed) {
Flux_Weakening_Control(); // 弱磁控制
} else {
MTPA_Control(); // MTPA控制
}
Current_Control(); // 电流环控制
SVM_Generation(); // 空间矢量调制
}
3. 负id电流弱磁的代码实现细节
3.1 电流参考值生成
弱磁区的id_ref计算是关键。我们采用基于电压反馈的弱磁控制算法:
c复制#define Ld 0.0012f // d轴电感(H)
#define Lq 0.0025f // q轴电感(H)
#define PSI_F 0.12f // 永磁体磁链(Wb)
float FluxWeakening_IdRef_Calc(float Vdc, float w_e, float iq) {
float Vmax = Vdc / sqrt(3.0f); // 最大相电压幅值
float id_ref = 0;
// 电压极限方程求解
float a = w_e * w_e * Ld * Ld;
float b = 2.0f * w_e * w_e * Ld * PSI_F;
float c = w_e * w_e * (Lq * Lq * iq * iq + PSI_F * PSI_F) - Vmax * Vmax;
// 解二次方程求id_ref
float discriminant = b * b - 4.0f * a * c;
if(discriminant >=
