☰
永磁同步电机MTPA与弱磁控制配合实战:从原理到标定调试
2026/10/22 11:22:39 网站建设 项目流程

做永磁同步电机(PMSM)驱动控制这些年,我经常被问到一个问题:MTPA和弱磁控制到底怎么配合?说实话,这两个词确实经常被绑在一起,但很多人并没有真正理解它们各自解决什么问题。MTPA(最大转矩电流比)解决的是低速区怎么用最小的电流榨出最大转矩,弱磁控制解决的是高速区电压不够了怎么继续升速。一个是“电流往哪分”的问题,一个是“电压不够怎么办”的问题。只有把两条线和它们的前后承接关系都理顺,才能在从起步到极速的全速度范围内把PMSM的潜力榨干。

这篇文章我打算从原理讲到台架标定,再把调试中容易踩的坑也说一遍。内容比较长,适合刚接触电机控制、准备做MTPA+弱磁项目的工程师,也适合已经写完代码但正在被各种“幽灵现象”折磨的人。我会尽量说人话,公式只保留必要的,重点放在“为什么这么设计”和“实际干活时要注意什么”。

1. 先理清楚:MTPA和弱磁控制到底在解决什么问题

1.1 PMSM转矩从哪来:永磁转矩与磁阻转矩

先说转矩来源。永磁同步电机的电磁转矩在dq旋转坐标系下可以写成:

Te = 1.5p[ψf·iq + (Ld - Lq)·id·iq]

这里p是极对数,ψf是永磁体磁链,Ld和Lq分别是直轴和交轴电感,id、iq是直轴和交轴电流。

大多数介绍这个公式的文档都会立刻跳到“因此需要负id”的结论,但我觉得有必要把这个公式拆开看一遍。第一项ψf·iq是永磁转矩,由永磁体磁场和定子电流的q轴分量相互作用产生;第二项(Ld - Lq)·id·iq是磁阻转矩,本质上是转子d轴和q轴磁阻不同造成的转矩分量。

关键点在于:只有当Ld和Lq存在明显差异时,磁阻转矩才值得利用。表贴式电机(SPMSM)因为永磁体装在转子表面,磁路接近对称,Ld约等于Lq,磁阻转矩几乎为零。而内置式电机(IPMSM)的永磁体埋在转子内部,d轴磁路中有永磁体的等效气隙很大、磁阻也大,q轴磁路相对连续、磁阻小,所以Ld明显小于Lq,磁阻转矩就非常可观。

这直接决定了控制策略的选择。表贴式电机老老实实做id=0控制就够了,因为喂负id不仅带不来磁阻转矩,还会削弱磁链、增加损耗。内置式电机则一定要用负id去“榨”磁阻转矩,这就是MTPA存在的意义。

1.2 低速看电流,高速看电压:两条约束曲线

抛开公式,PMSM的运行范围实际上受两个硬约束限制,所有控制策略本质上都是在两条曲线的交集中找最优工作点。

第一条约束是电流极限,即定子电流幅值不能超过逆变器和电机允许的最大值:

id² + iq² ≤ Imax²

在id-iq平面上,这是一个以原点为圆心的圆,就是常说电流极限圆。低速大扭矩工况,几乎都贴在电流极限圆上跑。

第二条约束是电压极限。稳态忽略定子电阻压降后,定子电压幅值可以近似为:

u ≈ ω√[(Lq·iq)² + (ψf + Ld·id)²]

这个电压不能超过逆变器能输出的最大相电压Umax。在id-iq平面上,给定额定转速ω,这个方程是一个以(-ψf/Ld, 0)为中心、随转速升高而缩小的椭圆,就是电压极限椭圆。

低速时电压极限椭圆非常大,几乎不构成约束,所以决定工作点的是电流极限和“怎样让电流更值钱”的最优性问题,这就是MTPA的地盘。转速一高,电压极限椭圆缩得比电流极限圆还小,工作点就必须贴着椭圆边界走,否则电压就超了,这就是弱磁的地盘。

1.3 从id=0到MTPA再到弱磁:一条完整的运行轨迹

如果以转速为横轴、转矩为纵轴,画出一条完整的电机外特性曲线,你会发现PMSM的运行轨迹天然就分成了三段:

  • 恒转矩区(低速):电压裕量充足,通常按MTPA轨迹运行,以获得单位电流最大转矩,同时兼顾效率;
  • 弱磁一区(中高速):电压达到极限后,通过增加负id来削弱气隙磁链,维持电压平衡,转矩随转速升高近似按1/ω下降;
  • 弱磁二区/深度弱磁(更高转速):电压和电流极限同时贴着,工作点沿电流极限圆与电压极限椭圆的交点继续向负id方向移动。

很多人对“MTPA和弱磁是两种独立的算法”有误解,实际工程中它们是一个完整的电流指令生成器,只是根据工作点位置切换不同的计算分支。后面我会详细讲这个切换是怎么设计的。

2. MTPA的数学推导与工程实现路线

2.1 转矩方程求极值:MTPA轨迹从哪来

MTPA的核心思想很简单:在电流幅值Is固定的前提下,求转矩最大值。这个问题用拉格朗日乘子法解就行,但我们做工程不用那么绕,直接看电流角更直观。

定义电流角β为电流矢量与q轴的夹角,则:

id = -Is·sinβ, iq = Is·cosβ

代入转矩方程:

Te = 1.5p[ψf·Is·cosβ - 0.5(Lq - Ld)·Is²·sin2β]

对β求偏导并令其为零:

∂Te/∂β = 1.5p[-ψf·Is·sinβ - (Lq-Ld)·Is²·cos2β] = 0

整理后就能得到MTPA条件下的电流角表达式:

sinβ = [ -ψf + √(ψf² + 8(Lq-Ld)²Is²) ] / [4(Lq-Ld)·Is]

对应的id、iq则为:

id = -Is·sinβ iq = Is·cosβ

看着有点头疼,但实际用起来其实很简单:给定一个转矩指令,先估算一个电流幅值Is,代入公式求出β,再算出id和iq即可。也可以用相反方向:给定id查表求iq。

2.2 公式法:参数实时计算

公式法的优点是不用标定大表,代码改起来方便,而且理论上在全工况范围内连续。问题在于它依赖Ld、Lq、ψf这三个参数的准确性,而这仨恰恰都会变。Ld和Lq会随电流幅值变化(磁饱和),ψf会随温度变化(永磁体高温退磁和低温恢复)。

如果你在一台参数相对稳定的小功率电机上做项目,公式法完全可以跑得好好的。但如果是车用级别的大功率IPMSM,满载时Lq可能掉20%以上,这时候公式法算出来的id基本是偏的。

我见过有项目在初始版本用公式法做MTPA,台架测试时发现扭矩控制偏差最大能到8%左右。后面改成查表法并重新标定,扭矩偏差才压到2%以内。所以,参数容易饱和的大功率电机,查表法往往更靠谱。

2.3 查表法:标定工作量压在这里

查表法的大致流程是:在不同转速和不同转矩指令下,离线扫描电流角,找到使电流幅值最小的那个角度,把最优id和iq存成二维表。运行时根据转速和扭矩指令直接查表输出id、iq指令。

具体操作一般是这样的:

  • 电机用转速闭环模式稳定在某个转速点;
  • 给一个固定的转矩指令,维持母线电压不变;
  • 将电流角从0°逐步扫到90°左右(步长可以先粗后细,比如先5°,锁定区间后换成1°);
  • 记录每个角度对应的电流幅值,找出电流最小值对应的角度;
  • 将这个最优角度下的id、iq记录为一个数据点;
  • 重复上述过程,覆盖所有目标转速和扭矩网格点。

标定时还有两个细节容易被忽略。一是每个工况点要等温度稳定后再记录,否则不同温度下磁链不同,标出来的表会自相矛盾。二是要记录实际输出的转矩值,二次处理时可以把表转成“转矩指令 -> id、iq指令”的格式,方便控制程序直接调用。

2.4 表贴还是内置:决定你用哪种策略

很多人刚接触MTPA,会下意识认为所有PMSM都必须做MTPA。实际上表贴式电机Ld≈Lq,磁阻转矩项约等于零,MTPA轨迹退化成id=0,所以大部分表贴式电机直接id=0控即可。

只有内置式电机(IPMSM)才值得做完整的MTPA。通常IPMSM的凸极率(Lq-Ld)越大,磁阻转矩占比越高,MTPA带来的收益越明显。对一台凸极率在2到3之间的内置式电机,采用MTPA对比id=0,相同电流下转矩大约能提升15%到30%,效率提升也很可观。

所以在项目方案阶段,第一件事其实是确定转子结构,然后再决定是否上MTPA。别一上来就把MTPA当成标配,容易白花标定费。

3. 弱磁控制:电压极限下的升速能力

3.1 电压极限椭圆与电流极限圆这两个硬边界

弱磁的本质是:转速升高后,反电动势接近甚至超过逆变器电压极限,此时必须通过负id削弱转子磁场在定子绕组中的耦合,从而维持电压方程平衡。

在id-iq平面上看,电压极限椭圆方程为:

(Lq·iq)² + (ψf + Ld·id)² = (Umax/ω)²

这个椭圆中心在(-ψf/Ld, 0),随着ω升高,椭圆不断缩小。电流极限圆则固定不动。所以可以直观地理解为:转速越高,椭圆越小,工作点被压得越往左(负id更大、iq更小)。

有一个概念必须讲清楚:弱磁并不是真的“没有了磁场”,而是通过增加直轴去磁电流来抵消一部分永磁体的磁链,使得等效反电动势在电压极限内。代价是同样的电流幅值下,转矩输出下降。

3.2 电压外环PI:弱磁电流怎么修正

工程上最常用的弱磁实现方式是电压误差PI调节法。基本原理很直觉:

  • 实时计算当前工作点的电压幅值u;
  • 把它和Umax比较,得到电压误差;
  • 误差经PI调节器输出一个负的id修正量(或者直接修正id指令);
  • 当电压裕量充足时,PI输出被钳在零,弱磁不介入;电压一旦顶到极限,PI自动输出负id,把工作点往左推。

公式表达大致是:

id_fw = Kp*(u - Umax) + Ki∫(u - Umax)dt

然后id指令 = MTPA的id指令 + id_fw(取负方向钳位)。

这个方案的好处是“不关心电机参数”,电压是直接测的或根据参考电压计算的,反馈天然修正了温度和饱和带来的影响。缺陷在于它和电流环之间存在一个外环响应带宽的匹配问题,调不好很容易出现电压反复超调、电流振荡的情况。

实际使用时,我建议给电压PI的输出加一个限幅和变化率限制,让弱磁电流不会猛增猛减。同时在判断电压裕量时,对Umax留3%~5%的余量,否则母线电压稍微波动一下,电流就会跟着抖。

3.3 深度弱磁(MTPV)要考虑吗

当转速继续升高,工作点会沿着电流极限圆和电压极限椭圆的交点向负id方向滑动。这个交点对应的iq是电流极限圆上的最大允许值,但在这个区域,如果只贴电压椭圆和电流圆的交点,转矩并不是最优的。

理论上,深度弱磁区还有一个“最大转矩电压比”(MTPV,也叫MPTV)轨迹,即:在电压极限椭圆上找使转矩最大的点。它的作用是在电流极限圆和电压极限椭圆重合区域之外,继续以最优效率升速。

不过实际工程中,很多应用根本不会进入MTPV区域,因为此时转速已经高得离谱、转矩已经小得不值钱了。是否要加入MTPV,取决于你的应用场景——风扇、泵类负载一般不关心,但高速主轴或某些特殊驱动应用就需要认真考虑。如果你准备做全速度范围最优控制,建议把MTPV作为弱磁二区的可选分支,做进去并不复杂,只是标定工作量和调试难度会上升一档。

4. 从仿真到台架:整套控制落地的关键步骤

4.1 参数辨识:Ld、Lq、ψf的离线获取

仿真阶段你可以随便用一组标称参数跑,但台架调试前,最好对实际电机做一次离线参数辨识。这一步省不得,因为很多人会在参数全错的情况下直接整定电流环,结果自然是“仿真跑得挺好,实物一上就拉胯”。

常用的离线辨识手段:

  • 静止辨识:转子固定,向d轴或q轴注入高频小信号,通过阻抗计算得到Ld和Lq;
  • 空载反电动势法:电机空载拖动(或者用另一台电机反向拖动),测三相线电压,通过幅值和频率反推ψf;
  • 转矩标定法:在已知电流组合下测转矩,拟合出Ld、Lq、ψf在对应工况的数值。

注意,离线辨识得到的参数只能代表特定工况点。强饱和工况下Lq会明显变小,温度升高时ψf会下降,所以有条件的话再做在线磁链观测器或者温度补偿,实在不行就用标定的查表数据反向修正。

4.2 标定流程:从电流角扫描到数据成表

MTPA标定的具体操作流程,我在2.3节已经讲了一部分。这里补充完整链路:

第一步,整理工况矩阵。横轴是转速(从最低到最高覆盖),纵轴是转矩指令(从0到峰值)。原则上每个网格点都要扫,但为了节省时间,可以先粗扫出趋势,再在关键点加密。

第二步,每个网格点做电流角扫描。注意此时母线电压要保持在额定值,并且转速要稳定。扫描方式可以手动也可以自动扫,建议写成半自动化的标定脚本,不然几百个点人工点下来会疯。

第三步,数据后处理。把“最优电流角”的结果换算成id、iq和实际转矩,做成两个二维表:

  • 表A:转矩指令Te_ref + 转速n -> id
  • 表B:转矩指令Te_ref + 转速n -> iq

第四步,交叉验证。随机抽几个不在网格上的工况点,用查表数据跑一下,检查转矩实际输出和指令偏差。偏差超过2%,说明网格太疏或者标定数据有误,需要加密。

4.3 台架联调时容易漏掉的细节

标定做完只是开始,联调阶段才是真正检验控制算法的地方。

第一个容易漏掉的是调制方式与Umax的关系。控制器输出最大相电压不是直接等于母线电压,SVPWM线性区的最大相电压幅值是Udc/√3。如果做弱磁控制却把Umax设成Udc/2或接近Udc,电压极限圆算得不对,弱磁介入点和实际失步点会差出一大截。我见过不止一次,弱磁提前介入导致高速转矩明显下降的情况,最后查下来就是Umax设错了。

第二个容易漏掉的是电流环动态在整个工作范围内的表现。MTPA和弱磁切换时,id指令会有一个突变,电流环如果带宽不够或者PI参数适应不过来,就会出现瞬态电流偏差,进而造成转矩波动。所以有条件的话,应该在不同电流幅值下做电流环PI参数的分区整定,至少把id较大(深度弱磁)和iq较大(低速大转矩)两个工况分开标。

第三个容易漏掉的是保护阈值。弱磁区电流矢量不再跟着转矩方向走,过流保护的阈值设定需要考虑id分量。如果阈值按峰值相电流设置,深度弱磁时可能会出现“差一点就触发、实际并没有过流”的误报警。建议把保护逻辑设计成区分峰值电流和时间窗口的方式,既能应对瞬时过载,又不至于误动作。

5. 调试中踩过的坑与对应排查思路

5.1 查表插值引起的转矩台阶

有一次做台架测试,转矩指令匀速上升,但实际转矩输出出现了明显的“台阶”,转速越高台阶越明显。一开始怀疑是转矩传感器问题,后来用高精度功率分析仪复核,确认控制算法本身就有问题。

排查思路是这样的:先怀疑电流指令生成器,把id和iq指令值抓出来对比转矩曲线,发现iq指令在某个扭矩点附近有突变。再查源头,发现是查表用的网格太疏,双线性插值在T-N平面边缘区域出现跳变。当场把转速维和转矩维的网格各加密了一倍,同时改用斜率受限的插值方式,问题立即消失。

这个案例说明,标定表格的网格密度不是只看平均值,要看最恶劣区域的导数变化。尤其转矩-转速特性的拐点附近,必须加密。

5.2 弱磁电压PI与电流环的耦合振荡

另一个经典问题:进入弱磁区以后,id指令开始出现小幅振荡,声音明显变粗,电流波形毛刺很多。原因是电压误差PI外环和电流内环形成了级联振荡。电压PI的带宽如果取得过高(超过电流环带宽的1/10),就会出现相位裕量不足,最终表现为外环振荡。

解决思路没有捷径,就是降外环带宽。我把电压PI的带宽压到电流环的1/20以下,同时加上输出变化率限制。初调时的参数为Kp=0.01、Ki=0.001(具体标幺值要看控制器平台),跑出来效果已经比较稳。如果想要更硬朗的动态响应,就采用“前馈+反馈”结构:用电压方程估算一个基础弱磁电流,PI只负责修正偏差。这样既能保持动态,又不至于振荡。

5.3 温升引发的磁链漂移和过流误保护

还有一次是耐久测试跑到接近温升极限,突然报过流故障。复盘数据发现,并不是电流真的超了,而是电机温度升高后永磁体磁链下降,同样的id、iq下输出转矩减小,电压方程也变了,弱磁电流的电压闭环为了维持电压平衡输出了更大的id,导致相电流幅值上升,触发了按峰值电流设定的保护阈值。

这个问题的根子在于:磁链ψf是温度的函数,而控制算法里用的是常温标定值。解决方法是加磁链温度修正,或者在软件里做在线磁链观测。前者简单,根据NTC温度查表修正ψf即可;后者更通用,但对算法实现要求高一些。如果只是在做产品原型,建议先做温度修正,把大部分问题解决掉。

5.4 一个排查思路的参考模板

最后分享一个我自己惯用的排查顺序,遇到“MTPA+弱磁”相关异常时可以照着走一遍:

第一步,看电流指令是否合理。先把id、iq指令从控制链路前端抓出来,和期望工作轨迹对比。指令不对,说明问题在查表、公式或弱磁调节器。

第二步,看电流环跟踪是否完好。指令对但实际电流偏差大,说明电流环PI、解耦或者反馈采样有毛病。这一步会把问题分成“指令生成”和“指令跟踪”两半。

第三步,看电压环和调制环节。弱磁区问题,尤其振荡和不升速,要回头检查Umax设置、调制方式、母线电压采样等细节。

第四步,看温度和保护阈值的交叉影响。排除硬件问题后,把温度修正和保护阈值设置也纳入怀疑对象。

这样一套排查下来,大多数问题半小时内就能定位。MTPA和弱磁控制的坑说多不多,说少也不少,但底层逻辑就这几个:电流分配要符合最优,电压平衡要被闭环约束,参数变化要被校正。把这三点抓在手里,遇到问题时就不会像无头苍蝇一样乱撞了。

调试经验说白了,都是在“理论和实物之间的差距”里磨出来的。公式上的最优和工程上的可实现,从来不是一回事。我见过太多人在仿真里调出了漂亮的波形,一上台架就各种意想不到的古怪问题。这就更需要我们平时多积累这些“看得见摸得着”的实战细节,而不是只盯着一堆公式和曲线。希望这篇文章能帮你少走一些弯路,把MTPA和弱磁控制真正从一个概念变成能稳定运行的系统。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询