4、电压前馈弱磁:模型推导与工程实现

电压前馈弱磁,说白了就是提前算好电机需要多少弱磁电流,而不是等电压饱和了再去补救。我在早期做弱磁时,用的全是反馈调节,结果每次突加负载,电流震荡得跟过山车似的。后来换成前馈+反馈的混合结构,系统才真正稳下来。

这一节,我们重点解决三个问题:

  • 前馈模型怎么来的?
  • 前馈电压怎么算?
  • 补偿怎么调才不抖?

4.1 电压前馈模型推导

先看电机稳态电压方程。在 dq 旋转坐标系下,永磁同步电机的电压方程是这样的:

Vd = Rs·Id - ω·Lq·Iq
Vq = Rs·Iq + ω·Ld·Id + ω·ψf

其中 ω 是电角速度,ψf 是永磁磁链。进入弱磁区后,转速高了,反电动势接近直流母线电压。这时候,我们需要让电压矢量幅值不超过逆变器能输出的最大值 Vmax。

电压幅值约束条件:

Vd² + Vq² ≤ Vmax²

Vmax 怎么取?我一般取 Vdc / √3,这是 SVPWM 线性调制区的极限。如果你用了过调制,可以放宽到 Vdc / √2,但谐波会大不少。

把电压方程代入约束条件,忽略电阻压降(高速时电阻压降占比很小),得到:

(-ω·Lq·Iq)² + (ω·Ld·Id + ω·ψf)² ≤ Vmax²

两边除以 ω²:

(Lq·Iq)² + (Ld·Id + ψf)² ≤ (Vmax / ω)²

这个式子就是电压极限椭圆。当转速升高,右边 (Vmax/ω)² 变小,椭圆收缩。Id 必须往负方向走,才能让左边不超过右边。这就是弱磁的本质。

核心结论:前馈弱磁的目标,就是根据当前转速和转矩,提前算出一个 Id_ref,让电压矢量刚好落在极限椭圆内,留一点余量但不浪费直流母线电压。

4.2 前馈电压计算

前馈计算分两步:先算电压利用率,再反推 Id 补偿量。

第一步:计算当前电压利用率

V_util = sqrt(Vd² + Vq²) / Vmax

V_util 大于 1 说明已经饱和了,必须弱磁。V_util 在 0.9~0.95 之间,是前馈介入的合理窗口。我个人习惯留 5% 的余量,避免电压波动导致瞬间饱和。

第二步:反推 Id 前馈量

从电压极限椭圆方程出发,解出 Id:

Id_ff = -ψf / Ld + sqrt((Vmax / ω)² - (Lq·Iq)²) / Ld

这个公式看着复杂,但物理意义很清楚:

  • 第一项 -ψf/Ld 是特征电流,也就是完全弱磁到零磁链需要的 Id。
  • 第二项是电压余量项,转速越高、Iq 越大,这一项越小,Id 越负。

注意:当 (Vmax/ω)² - (Lq·Iq)² 小于 0 时,开方无意义。这说明当前转速和转矩已经超出了电机的能力极限,必须降转矩或降转速。我在项目中遇到过这种情况,当时没做限幅处理,结果 Id 直接飞了。后来加了饱和判断,一旦根号内为负,就强制 Id 取特征电流值。

4.3 前馈补偿的实现

前馈补偿不能单独用,必须和反馈调节配合。我常用的结构是这样的:

Id_ref = Id_MTPA + Id_ff + Id_fb

其中:

  • Id_MTPA:基速区的最优转矩电流比
  • Id_ff:电压前馈计算出的弱磁电流
  • Id_fb:电压环 PI 输出的反馈补偿量

前馈负责粗调,反馈负责精调。前馈算得准,反馈的负担就轻,PI 输出基本在零附近晃悠。

代码实现片段(C2000 平台):

// 电压前馈弱磁计算
float Vmax = Vdc / 1.732f;          // SVPWM 线性区极限
float V_util = sqrt(Vd*Vd + Vq*Vq) / Vmax;

// 前馈 Id 计算
float temp = (Vmax / omega) * (Vmax / omega) - (Lq * Iq) * (Lq * Iq);
if (temp > 0.0f) {
    Id_ff = -psi_f / Ld + sqrt(temp) / Ld;
} else {
    Id_ff = -psi_f / Ld;            // 超出能力极限,取特征电流
}

// 最终 Id 给定
Id_ref = Id_MTPA + Id_ff + Id_fb;

调试技巧:前馈量 Id_ff 建议加一个低通滤波器,截止频率设在 20~50Hz。因为转速和 Iq 的采样噪声会直接传递到 Id_ff,不加滤波的话,电流环会跟着抖。我一般用一阶 IIR,系数取 0.1~0.3,具体看采样频率。

4.4 前馈补偿的调试方法

调试前馈弱磁,我总结了一套「三步走」的方法:

  1. 开环验证模型:先把反馈环断开,只给前馈 Id_ff,看电压利用率 V_util 是否稳定在 0.95 左右。如果 V_util 偏高或偏低,检查电机参数 Ld、Lq、ψf 是否准确。
  2. 闭环微调:接入反馈环,观察 Id_fb 的输出。如果 Id_fb 一直在正负几安培以内,说明前馈模型够准。如果 Id_fb 持续偏大,说明前馈量偏小,需要微调 Ld 或 ψf。
  3. 动态测试:突加负载、突减负载,看电压利用率是否超调。如果超调超过 5%,适当降低前馈的响应速度,或者增加反馈环的带宽。
调试步骤 观察指标 正常范围 异常处理
开环验证 V_util 0.90~0.95 检查电机参数
闭环微调 Id_fb 均值 ±5% Id_ff 微调 Ld/ψf
动态测试 V_util 超调 < 5% 降低前馈增益

我曾经在一个 200kW 的牵引电机项目上,前馈模型算出来 Id_ff 总是偏小,导致高速区电压利用率只有 0.85。查了两天,发现是 Ld 参数在深度弱磁区会饱和,实际值比标称值小了 15%。后来我改用查表法,把 Ld 随 Id 变化的曲线存进去,前馈精度一下就上来了。

4.5 知识体系总览

下面这张图把电压前馈弱磁的完整链路画出来了,从模型到计算再到补偿,一目了然。

电压前馈弱磁知识体系 输入:转速 ω、Iq、Vdc 电压极限椭圆模型:Vd²+Vq² ≤ Vmax² 前馈 Id 计算:Id_ff = -ψf/Ld + ... 前馈+反馈混合补偿 输出:Id_ref → 电流环 关键参数 • Vmax = Vdc / √3 • 特征电流 = -ψf / Ld • 电压利用率 V_util 调试要点 1. 开环验证模型:V_util 稳定在 0.90~0.95 2. 闭环微调:Id_fb 均值在 ±5% Id_ff 以内

4.6 避坑指南

最后,分享几个我踩过的坑:

  • 参数不准:Ld 和 ψf 在弱磁区会变化,尤其是深度弱磁时 Ld 可能下降 10%~20%。建议用查表或在线参数辨识来修正。
  • 前馈响应太快:前馈量直接进电流环,如果转速或 Iq 有噪声,Id_ff 会剧烈波动。加滤波是必须的。
  • Vmax 取值不当:如果用了过调制,Vmax 可以取 Vdc/√2,但前馈模型要同步更新,否则前馈量会偏小。
  • 忽略电阻压降:低速弱磁时电阻压降不能忽略,否则前馈模型误差会很大。我一般加一个 Rs 补偿项,只在低速区生效。