11弱磁控制
电压极限、负 Id、恒功率区
本模块主旨
弱磁 = 用负 Id 削等效磁链,把 BEMF 压回母线电压能买单的范围。学完应能回答
- 能在 Id-Iq 平面上手画"电流圆 + 电压椭圆",并指出可行域 = 二者交集
- 能从 BEMF = ψf·ωe 撞 V_max = Udc/√3 推导出"基速 ω_base = V_max/ψf"
- 能区分恒转矩区(MTPA)、恒功率区(FW 弱磁)、深度弱磁区(MTPV)三段最优轨迹
- 理解为什么 IPM(Lq>Ld)比 SPM 弱磁能力强 —— 磁阻转矩 + 椭圆中心偏移
- 会用"电压闭环 PI + 前馈解析 + 离线查表"三种主流弱磁工程方案,并说出取舍
- 了解弱磁过深会触发退磁阈值(HEV 高温场景)和铁损突增(高频开关 + 高 −Id)
总览
弱磁 = 用一部分电流"买"电压余量,是高速运行不可绕开的电压预算管理。零基础速入
类比
弱磁就像汽车上**自动换挡**——低速齿轮(1 档)扭矩大但速度上限低;高速时换 4 档,扭矩变小但能跑更快。电机里"档位"不是机械的,是电气的:通过注入负 Id 削弱永磁磁链,让反电动势降下来,给逆变器输出腾出电压余量。核心概念
高速时 BEMF = Ke·ω 接近母线电压上限,电流环没电压可用,输出饱和。注入 −Id 削弱等效磁链 → BEMF 减小 → 电压余量恢复 → 还能再上速度(代价:转矩下降)。为什么要学
- 电动车电机、伺服主轴、压缩机想跑高速必弱磁,否则 BEMF 撞母线就转不上去。
- "为什么我电压拉满了电流也加了,速度就是上不去"——99% 是没做弱磁。
- 弱磁 ↔ 退磁是一线之隔,负 Id 过大伤永磁体,工程要严格设上限。
第一手操作
右侧把"目标转速"从 4200 rpm 推到 8000 rpm,看左下角红色警告"电压饱和"亮起。然后把 Id 拖到 -3A,看红色椭圆(电压极限)变大;继续 -5A,警告消失,进入安全工作区。学习目标
- 理解为什么高速需要弱磁
- 掌握电流极限圆 + 电压极限椭圆 + Id/Iq 工作点的几何关系
- 区分恒转矩区 / 恒功率区 / MTPA / MTPV
核心概念
- 电流极限圆:|I| = √(Id² + Iq²) ≤ I_max。电流硬限。
- 电压极限椭圆:√(Vd² + Vq²) ≤ Udc/√3。频率越高椭圆越扁(中心向 −Id 方向移)。
- 工作点必须在两条曲线**同时围成的区域**内。低速时电流圆小先撞,高速时电压椭圆收缩先撞。
- 弱磁就是把工作点沿 −Id 方向滑动,让它进入"较小的电压椭圆"内。
公式
PMSM 稳态电压方程(dq)
Vd = R·Id − ω·Lq·Iq\nVq = R·Iq + ω·(Ld·Id + ψf)
高速时 R·I 项 ≪ ω·L·I 项,电压基本由"反电动势 + 交叉耦合"决定。
电压幅值
|V| = √(Vd² + Vq²) ≤ V_max = Udc/√3
V_max 是 SVPWM 线性区上限。超出 → 过调制 → 电流环失控。
BEMF 抵消(弱磁条件)
−ω·Ld·Id ≈ ω·ψf
负 Id 让"等效磁链 ψf + Ld·Id"变小,反电动势降低,腾出电压。
MTPA / MTPV
MTPA: Iq² + (Lq−Ld)·Id·Iq − ψf·Id = 0\nMTPV: 沿电压椭圆边界优化 Iq
MTPA = 同电流下最大转矩;MTPV = 同电压下最大转矩。前者用于低速,后者用于深度弱磁。
工程意义
- 弱磁是电压预算管理。低速恒转矩、中速进入弱磁、高速恒功率。
- 负 Id 上限由两个约束确定:电流圆(|I| ≤ I_max)+ 退磁阈值(厂家给)。永磁体退磁不可逆。
- 弱磁切换要平滑——开环 PI 控制电压幅值(让它紧贴 V_max),自动调节 Id 大小。
STM32 移植指南
- 弱磁 PI 控制器:误差 = V_max − |V|,输出 Id 命令(取负)。
- 工作点检测:每个慢任务周期算一次 |V| 和 |I|,超限报警。
- V_max 留 5-10% 余量(用 0.95·Udc/√3)防止抖动撞限。
常见误区
- 只加目标速度不检查电压余量,电流环输出长期撞限。
- 负 Id 加得过大 → 电流圆撞限 + 退磁风险。
- 弱磁 PI 增益过大 → Id 命令震荡 → 转矩抖动。
- 没设最低速度阈值 → 低速也启用弱磁,无谓损耗。
调试方法
- 画 Id/Iq 工作点 + 电流圆 + 电压椭圆,看实际位置。
- 观察 |V_dq| 与 V_max 的比值——> 0.95 触发弱磁。
- 记录进入/退出弱磁前后的转矩、电流、母线电压,计算效率。
建议实验
- 不动 Id,把目标转速从 4200 推到 8000 → 看电压饱和警告。
- 加大 Iq → 转矩上升但电压更先饱和;加 −Id 反而能推到更高速。
- Udc 从 48V 降到 24V,看电压椭圆缩小一半,弱磁需求大幅提前。
STM32 C 代码骨架
/* ============================================
* field_weakening.c — 自动弱磁控制(电压幅值闭环)
* 输出 Id 命令给电流环
* ============================================ */
#include "pi.h"
typedef struct {
pi_t pi_fw; // 弱磁 PI(输入:电压余量误差,输出:Id 命令)
float v_max; // SVPWM 线性区上限 = 0.95 × Udc/√3
float id_min; // 最负 Id 上限(退磁安全 + 电流圆)
float i_max; // 电流圆 |I| ≤ I_max
float deadband; // |V|/V_max < 该值不弱磁
} fw_ctrl_t;
void fw_init(fw_ctrl_t *f, float udc, float i_max, float id_min) {
f->v_max = 0.95f * udc * 0.57735027f; // 1/√3
f->id_min = id_min;
f->i_max = i_max;
f->deadband = 0.93f; // 在 95% 之前不动作
/* 弱磁 PI:误差大时快速注入 Id(负方向) */
pi_init(&f->pi_fw, 0.5f, 100.0f, 1.0f/2000.0f,
id_min, /* out_min: 最大负 Id */
0.0f); /* out_max: 不主动注入正 Id */
}
/* 输入:当前 Vd / Vq,当前 Iq;输出:Id 参考 */
float fw_compute_id_ref(fw_ctrl_t *f, float vd, float vq, float iq_ref) {
float v_mag = sqrtf(vd*vd + vq*vq);
float v_ratio = v_mag / f->v_max;
/* 死区内不动作 */
if (v_ratio < f->deadband) {
pi_reset(&f->pi_fw);
return 0.0f;
}
/* 误差 = 1.0 - 当前比值(负值表示已超限,需要更负 Id) */
float err = 1.0f - v_ratio;
float id_ref = pi_step(&f->pi_fw, 0.0f, -err); /* 注:符号约定 */
/* 电流圆约束:|Id|² + Iq² ≤ I_max² */
float iq_sq = iq_ref * iq_ref;
float id_max_circle = -sqrtf(f->i_max * f->i_max - iq_sq);
if (id_ref < id_max_circle) id_ref = id_max_circle;
return id_ref;
}
/* 用法(在速度环之后、电流环之前):
* id_ref = fw_compute_id_ref(&fw, vd_last, vq_last, iq_ref);
* // 现在 id_ref + iq_ref 进入电流环
*
* === 调试要点 ===
* 1. v_max 必须留余量(90-95%),否则在边界震荡
* 2. id_min 由两条线决定:电流圆 + 退磁阈值(取严的那条)
* 3. PI 增益太大 → Id 命令震荡 → 转矩抖动;太小 → 弱磁响应慢
*/下一步
- 进入故障调试模块,把所有学过的诊断技能串起来。
随堂题
高速时电流环输出 |V| 撞限,电机不再加速。最直接的解决方案?
- 加大 Iq
- 注入负 Id 削弱磁链 (正确)
- 提高 PWM 频率
- 降低控制带宽
提示:负 Id 让等效磁链 ψf + Ld·Id 变小 → BEMF 降低 → 电压余量恢复 → 速度还能再上。
电流极限圆和电压极限椭圆,哪个对低速不构成约束?
- 电流圆
- 电压椭圆 (正确)
- 都构成
- 都不构成
提示:低速 ω 小,电压椭圆很大,包住整个电流圆。电流圆才是低速时的硬限。高速 ω 大,椭圆收缩到电流圆内部,先撞。
负 Id 加到极大可能造成的不可逆危害?
- 过流
- 过压
- 永磁体退磁(磁性永久损失) (正确)
- 过热
提示:深度负 Id 产生的反向磁场如果超过永磁体矫顽力,磁性永久减弱(退磁)。每个永磁电机都有退磁阈值(厂家给),工程上 Id 限制必须严格守这条线。
MTPA(最大转矩电流比)控制策略适用什么阶段?
- 低速恒转矩区 (正确)
- 高速弱磁区
- 深度弱磁区
- 所有区域
提示:MTPA = 同样电流幅值下产生最大转矩。在没撞电压限的恒转矩区效率最优。撞了电压限就要切换到弱磁(恒功率)区策略。
母线电压 Udc 从 48V 降到 24V,弱磁开始介入的转速大约怎么变?
- 不变
- 提高一倍
- 降低一半 (正确)
- 提高一倍开方
提示:V_max 与 Udc 成正比,电压椭圆半径缩一半。BEMF = Ke·ω 撞 V_max 时 ω 也减半,所以弱磁介入速度对半。