内置式永磁同步电机(IPMSM)因其高功率密度、高效率等优势,在电动汽车、工业驱动等领域得到广泛应用。最大转矩电流比(MTPA)控制作为IPMSM的核心控制策略之一,能够在给定转矩需求下最小化定子电流幅值,从而降低铜损、提高系统效率。
传统id=0控制虽然简单易实现,但忽略了IPMSM的磁阻转矩分量,导致相同转矩输出下电流幅值偏大。而MTPA控制通过合理分配d轴和q轴电流,充分利用磁阻转矩,实现更优的运行效率。牛顿迭代法因其收敛速度快、计算精度高的特点,成为求解MTPA控制中高次转矩方程的理想选择。
IPMSM在d-q旋转坐标系下的电压方程可表示为:
code复制ud = Rsid + Lddid/dt - ωrLqiq
uq = Rsiq + Lqdiq/dt + ωr(Ldid + ψf)
其中ψf为永磁体磁链,Ld和Lq分别为d轴和q轴电感,ωr为转子电角速度。
电磁转矩方程包含永磁转矩和磁阻转矩两部分:
code复制Te = 3/2*p[ψfiq + (Ld - Lq)idiq]
p为电机极对数。这个非线性方程是MTPA控制的核心。
MTPA控制的目标是在给定转矩Te*下,求解使电流幅值Is=√(id²+iq²)最小的电流分量id和iq。这可以转化为带约束的优化问题:
最小化:Is² = id² + iq²
约束条件:3/2p[ψfiq + (Ld - Lq)idiq] = Te
通过拉格朗日乘数法可推导出MTPA条件:
code复制iq/id = (Ld - Lq)iq/(ψf + (Ld - Lq)id)
这个隐式方程需要通过数值方法求解。
将转矩方程重写为残差函数形式:
code复制f(id) = Te* - 3/2*p[ψfiq + (Ld - Lq)idiq] = 0
其中iq可通过MTPA条件表示为id的函数。牛顿迭代法的更新公式为:
code复制id(k+1) = id(k) - f(id(k))/f'(id(k))
需要计算残差函数f(id)及其导数f'(id)。
提示:实际实现时需要添加迭代次数限制(如50次)防止发散
python复制def mtpa_newton(Te_ref, psi_f, Ld, Lq, p, max_iter=50, tol=1e-3):
id_k = 0.0 # 初始值
for _ in range(max_iter):
# 通过MTPA条件计算iq
iq_k = (psi_f + (Ld - Lq)*id_k) * id_k / (Ld - Lq)
# 计算残差
f = Te_ref - 1.5*p*(psi_f*iq_k + (Ld - Lq)*id_k*iq_k)
# 计算导数(需推导解析表达式)
df_did = ...
# 牛顿更新
id_k -= f / df_did
# 收敛检查
if abs(f) < tol:
break
return id_k, iq_k
在相同转矩输出下,MTPA控制相比id=0可减少电流幅值约15%-30%(具体取决于电机参数)。例如某IPMSM参数:
计算结果:
电流减小直接降低铜损(Pcu=3RsIs²)。上例中铜损减少约:
code复制(111.1² - 107.3²)/111.1² ≈ 7%
对于大功率应用,这种效率提升意义重大。
MTPA控制性能严重依赖电机参数准确性,特别是Ld、Lq和ψf。参数误差会导致:
解决方法:
牛顿迭代法在以下情况可能发散:
改进措施:
为满足实时控制要求(通常<100μs),可采取:
在dSPACE平台上对比阶跃转矩响应:
在相同负载转矩下测量输入功率:
| 转速(rpm) | id=0功率(W) | MTPA功率(W) | 节省 |
|---|---|---|---|
| 1000 | 2150 | 2030 | 5.6% |
| 2000 | 4280 | 3980 | 7.0% |
实际电机中Ld、Lq会随电流变化。改进方法:
当电压达到极限时,需要结合弱磁控制:
将MTPA融入MPCC框架:
在实际调试中发现,对于Ld/Lq比接近1的电机,MTPA效果会减弱。此时需要评估是否值得增加算法复杂度。另一个经验是,在低转矩区域(<20%额定),直接采用id=0控制可能更合适,因为此时MTPA的收益有限而计算开销占比增大。