motulator中的MTPV原理和MTPA、MTPV模式切换分析 – 炸管小王子

1. 问题背景

当永磁同步电机(PMSM)的转速升高时,反电势随之增大,定子电压逐渐逼近逆变器所能提供的最大电压。此时,系统难以继续运行在最大转矩电流比(MTPA)曲线上,必须进入弱磁(Field Weakening)区域。

然而,弱磁运行点并不一定恰好落在电压极限圆上,而是在圆内的某个位置。为了在高速弱磁区获得最佳的电压利用率,需要引入最大转矩电压比(MTPV)控制。这就带来了两个关键问题:

  • 弱磁运行点究竟在哪里?
  • 控制器如何从 MTPA 平滑切换到弱磁,再过渡到 MTPV?

本文基于 motulator 开源库中的同步电机参考生成器源码,系统分析 MTPV 的数学原理、实现细节以及 MTPA → 弱磁 → MTPV 的切换逻辑。

2. MTPV 在 motulator 中的实现

2.1 数学条件:dτ / dψ_s = 0

MTPV 的核心思想是:在磁链幅值 |ψ_s| 受电压限制的条件下,寻找能产生最大电磁转矩的电流工作点。其数学条件可表述为:

∂τ_M / ∂δ |_{|ψ_s|=const} = 0

其中 δ 是磁链矢量在 dq 坐标系中的角度。换言之,对于每一个固定的磁链圆,MTPV 给出了转矩最大的那个点。

2.2 辅助电流 ψ_b(i_a)的定义与推导

motulator 采用 Varatharajan 等人提出的辅助电流(auxiliary current)概念,将 MTPV 条件写成与 MTPA 对偶的正交形式:

Re(i_a · ψ_s*) = 0

辅助电流 i_a 的定义式(来自 _parameters.py 中的 aux_current())为:

i_a = (G_qq·ψ_d + j·G_dd·ψ_q) - j·G_dq·ψ_s* - i_s

其中 G = L_s^{-1} 是增量电感矩阵的逆。对于线性不饱和电机(L_dq = 0),该式可简化为:

i_a = ψ_f/L_q + i_d·(L_d/L_q - 1) + j·i_q·(L_q/L_d - 1)

将其代入正交条件 Re(i_a · ψ_s*) = 0,即可得到 IPMSM 的经典 MTPV 双曲线方程。

2.3 compute_mtpv_locus() 的 Brentq 求根过程

_sm_control_loci.py 中,ControlLoci.compute_mtpv_locus() 通过以下步骤预计算 MTPV 轨迹:

  1. 在 [0, ψ_s_max] 范围内均匀取 16 个磁链幅值点;
  2. 对每个磁链幅值,调用 compute_mtpv_flux_angle()
  3. 该函数以磁链角度 δ 为变量,构造残差函数:mtp_cond(δ) = Re(i_a(δ) · ψ_s*(δ))
  4. 在区间 [π/2, π] 内使用 Brentq 算法求根(IPMSM 的 MTPV 根位于第二象限);
  5. 若区间两端点函数值同号,则说明不存在 MTPV(如表贴式电机 L_d = L_q)。

求根完成后,motulator 构造 LUT 插值器 i_s_dq_vs_psi_s_abs,供控制器在线查表使用。

2.4 _get_mtpv_flux_and_torque() 的 LUT 查表

在运行时,ReferenceGenerator._get_mtpv_flux_and_torque(psi_s_abs_ref) 直接以当前磁链参考值为索引,通过 LUT 插值查得 MTPV 电流 i_s,再反算出对应的磁链 ψ_s 和转矩 τ_M:

i_s = self.i_s_mtpv(psi_s_abs_ref)
psi_s = complex(self.par.psi_s_dq(i_s))
tau_M = 1.5 * self.par.n_p * (i_s * psi_s.conjugate()).imag

3. MTPA → 弱磁 → MTPV 切换逻辑

所有参考生成的核心集中在 compute_flux_and_torque_refs() 方法中。该方法通过五个连续的“渐进式约束”步骤,将原始转矩参考 τ_M_ref 逐步修正为最终可行的 (ψ_s_ref, τ_M_ref):

步骤 操作 物理意义 切换判据
1 ψ_s = abs(ψ_s_MTPA(τ_M_ref)) 按 MTPA 曲线计算目标磁链 默认优先 MTPA
2 clip(ψ_s, ψ_s_min, ψ_s_max) 磁链硬限幅 ψ_s 超出预设范围时触发
3 ψ_s = min(ψ_s, u_s_max / |ω|) 电压极限弱磁 当转速升高导致电压极限收缩时触发
4 τ_M = min(τ_CL, |τ_M_ref|) · sign 电流极限转矩截断 所需转矩超出电流极限圆与电压极限圆交集时触发
5 τ_M = min(k_mtpv·τ_MTPV, |τ_M_ref|) · sign MTPV 极限 工作点越过 MTPV 轨迹时触发

这种 clip + min 的组合实现了渐进式约束,而非硬切换:当转速从低到高变化时,电压极限圆自然收缩,MTPA 磁链被逐步“压”到电压极限以下,最终可能进一步被 MTPV 约束截断转矩。

4. 仿真验证 — i_d-i_q 平面轨迹分析

为了验证上述理论分析,我们在 motulator 中运行了 3600 rpm 风机负载仿真,并在 i_d-i_q 平面上绘制了实际电流轨迹与理论曲线的对比。

MTPV i_d-i_q trajectory analysis

图中包含以下信息:

  • 红色实线:仿真实际运行轨迹 i_d(t) vs i_q(t),起点为绿色圆点,终点为红色圆点
  • 青色虚线:MTPA 理论曲线;
  • 洋红色虚线:MTPV 理论曲线;
  • 黑色实线:电流极限圆(i_s_max = 2.0 pu);
  • 彩色虚线椭圆:不同转速下的电压极限椭圆(V_dc = 180V / 150V);
  • magma 等高线:磁链幅值 |ψ_s| 的等值线。

从图中可以观察到:

  1. 电机从静止启动时,电流从原点 (0, 0) 出发,沿 MTPA 方向加速;
  2. 随着转速升高,电压极限椭圆收缩,工作点逐渐偏离 MTPA 曲线,向弱磁区(i_d < 0)移动;
  3. 在 3600 rpm 稳态运行时,实际轨迹位于电压极限椭圆内部,靠近 MTPV 曲线但受电流极限圆约束;
  4. V_dc = 150V 时电压极限椭圆明显收缩,弱磁程度更深,验证了母线电压对运行边界的影响。

5. 结论

本文系统分析了 motulator 中 MTPV 的实现原理与 MTPA → 弱磁 → MTPV 的切换机制,主要结论如下:

  • MTPV 数学条件通过辅助电流 i_a 与磁链 ψ_s 的正交关系 Re(i_a · ψ_s*) = 0 统一表达,适用于饱和与不饱和电机;
  • Brentq 求根用于离线预计算 MTPV 轨迹 LUT,保证了数值稳健性和收敛速度;
  • 五步渐进式约束链(MTPA → clip → 电压极限 → 电流极限 → MTPV)实现了各工作模式之间的平滑过渡,避免了硬切换带来的转矩冲击;
  • 仿真轨迹验证了理论分析:实际运行点从 MTPA 出发,经弱磁区逐渐收敛到电压极限与 MTPV 的交界附近。

motulator 通过 clipmin 等简单运算实现了复杂的模式切换逻辑,其设计思路对永磁同步电机驱动的工程实现具有重要参考价值。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注