
做内置式永磁同步电机IPMSM的仿真时最常被问到的问题之一就是“最大转矩对应的电流相位角到底怎么找”。这个角不单是仿真里的一个参数它直接决定了MTPA最大转矩电流比控制的核心数据也是你做ANSYS MAXWELL有限元仿真时最需要想明白的一个点。很多人把模型搭好、激励加好跑出来转矩却不对或者扫描了一大圈角度曲线平得找不到峰值十有八九就是对这个“电流相位”的理解还没捋顺。这篇文章我打算从IPMSM的转矩构成讲起把为什么要找这个角、怎么在MAXWELL里把电流角作为参数扫出来、扫出来之后怎么判断和校验以及我实际踩过的一些坑都理一遍。无论你是刚接触电机仿真的学生还是正在做电驱项目、需要给电控同事提供MTPA查表数据的工程师这篇文章应该都能给你一个可以直接复现的操作路径。我记得我第一次做这个项目的时候光是在电流角符号和转子初始位置角上就折腾了快两天所以这篇文章里我会把这些容易翻车的地方特别标注出来。1. 先把问题说清楚为什么要找“最大转矩的电流相位”1.1 IPMSM的转矩构成里藏着的那部分“磁阻转矩”很多刚接触内置式永磁同步电机的人第一反应是用表贴式永磁同步电机的思路来理解它认为转矩等于永磁磁链乘以交轴电流也就是 ( T_e 1.5p\psi_f i_q )。这个公式对表面式电机来说基本够用因为它的交直轴电感差异很小磁阻转矩几乎可以忽略。但到了IPMSM这里事情发生了变化。IPMSM的转子结构是永磁体埋进硅钢片内部这直接造成了一个关键现象交轴电感 ( L_q ) 大于直轴电感 ( L_d )。为什么因为永磁体自身的磁导率接近空气嵌在d轴磁路的路径上相当于在d轴磁路里“塞”了一段很长的气隙导致d轴磁阻变大、电感变小。而q轴磁路完全是硅钢片磁阻小电感相应就大。这种交直轴电感不对称所带来的“凸极性”就是磁阻转矩的来源。在真实的电磁转矩公式里第二项必须出现在你的视野里[ T_e 1.5p\left[\psi_f i_q (L_d - L_q)i_d i_q\right] ]前一项是永磁转矩跟我们直觉一致q轴电流越大转矩越大。后一项是磁阻转矩它的特点是跟 ( i_d ) 和 ( i_q ) 的乘积成正比。注意 ( L_d - L_q ) 是负值要让磁阻转矩为正就必须 ( i_d ) 也为负。什么意思呢就是说要给电机通一个负的直轴电流分量让电流矢量超前于q轴一定角度这时候磁阻转矩才会帮上忙和永磁转矩叠加出更大的总转矩。这里我常给新同事打一个比方永磁转矩是“顺风时的推力”而磁阻转矩是“你主动调整帆的角度让侧向风也能产生向前分量”。不调帆你吃不到侧风的力调得过头向前的分量又变小。所以一定存在一个最优角度让两种转矩合起来最大。1.2 电流相位角到底是什么角别和“转矩角”搞混在MAXWELL里做电流角扫描之前先要把“电流相位角”这个概念校准好。常见有两种定义方式不同资料、不同软件里用的符号可能不一样这是最容易引发混乱的地方。第一种定义是把电流矢量也放在d-q坐标系下看。令电流角 ( \beta ) 为电流矢量与q轴正方向之间的夹角那么[ i_d -I_s\sin\beta,\quad i_q I_s\cos\beta ]代入转矩公式后得到[ T_e 1.5p\left[\psi_f I_s \cos\beta \frac{1}{2}(L_d - L_q)I_s^2 \sin 2\beta\right] ]这个 ( \beta ) 就是我们通常说的“电流超前角”也是MTPA控制中最常说的那个角。转矩要取得最大值就是把 ( \beta ) 扫过去找峰值。第二种定义是直接把三相电流源里的初相角当作变量比如A相电流写成 ( i_a I_s\sin(2\pi ft \theta) )然后扫 ( \theta )。这时候 ( \theta ) 的物理意义跟你转子初始位置角的设置直接挂钩搞不好就会差一个固定角度。我在实际项目里的经验是不管采用哪种定义在建模之初就把公式写清楚尤其在MAXWELL的激励表达式里把电流角的符号关系跟转子d轴初始位置明确绑定后面才不会出现“全体偏移60度”这种诡异的结果。这也是很多仿真结果和实测对不上的原因之一。2. 仿真模型与参数准备要点2.1 几何模型、材料与求解器的选择直接影响扫描结果的可靠性在ANSYS MAXWELL里建立IPMSM模型通常有两条路线一是从RMxprt里直接生成一键有限元模型二是通过外部CAD导入定转子冲片几何。我个人的建议是在方案设计阶段用RMxprt快速出模型它是参数化的改尺寸方便一键生成MAXWELL 2D模型后几何不太容易出错但到了需要和实测对标、或者做详细的损耗和温度分析时最好还是用实际冲片CAD转过来因为RMxprt生成模型在局部倒角、桥位形状上偶尔和实际冲片有出入这些细节对铁耗和局部饱和影响不小。材料这块永磁体我建议用N35SH、N38SH这类常用的钕铁硼牌号剩磁 ( B_r ) 和矫顽力 ( H_c ) 直接代入20℃或实际工作温度下的值。温度对永磁体性能影响很大如果你要做的是长时间温升后的工况建议至少把永磁体工作在80℃、100℃、120℃这一档的参数备好。硅钢片要用真实的B-H曲线不要用默认线性材料否则定转子铁芯饱和效应算不出来磁阻转矩会被明显高估或者低估最后的电流角自然不准。求解器方面求转矩-电流角曲线我推荐用瞬态场Transient不要用静磁场Magnetostatic去偷懒做参数化。静磁场虽然算得快但它处理旋转和电流激励时要做大量等效处理在负载工况下精度和可信度都不如瞬态场。瞬态场里记得要设置好转子运动区域Motion Band并选择考虑机械瞬态或者恒定转速模式。如果只是想求一条转矩曲线设成恒定转速即可让转子以额定转速旋转等电磁转矩进入稳态之后取平均值这样出来的转矩值更接近真实运行状态。2.2 激励与转子初始位置角这两个设置决定了电流角的基准电流角扫描的核心操作是给三相绕组通入一组幅值不变、但相位角变化的电流。我习惯在MAXWELL里直接用外部激励External Excitation或者直接把绕组激励写成函数表达式。假设额定电流峰值是 ( I_{pk} )频率是 ( f )电网角频率 ( \omega 2\pi f )定义变量 ( theta ) 为需要扫描的电流相位角那么三相电流可以写成[ i_a I_{pk}\sin(\omega t \theta) ] [ i_b I_{pk}\sin(\omega t \theta - 120^\circ) ] [ i_c I_{pk}\sin(\omega t \theta 120^\circ) ]在MAXWELL里我们通常给A相绕组添加电流激励时直接就填这个表达式然后把 ( theta ) 设成参数化变量。注意给线圈添加激励时要确保绕组的进出方向一致也就是A相的正方向从A进、A-出如果方向反了转矩符号会是反的扫描结果毫无意义。再说转子初始位置角。这个东西特别容易被忽略但它的作用至关重要。MAXWELL的2D瞬态场中转子初始位置角决定了初始时刻d轴相对于A相绕组轴线的空间位置。电磁场仿真里电流相位角是相对于转子d轴位置而言的如果你转子初始位置角设得不对扫描出来的“电流角”名义值跟你脑子里想的那个电池角就不是一回事。我的建议非常直接先把转子d轴初始位置和A相绕组轴线对齐然后在这个基础上用 ( \theta ) 做电流角的偏移。这样 ( \theta0^\circ ) 就对应 ( i_d0 ) 的工况而最大转矩对应的 ( \theta ) 就是负几十度的位置。不同电机转子结构这个负的角度一般在20°到50°电角度之间具体取决于磁阻转矩占比。如果你的电流角习惯定义成“电流领先q轴的电角度”那这个 ( \theta ) 的绝对值就是那个角度。3. 主流程参数化扫描电流角找最大转矩3.1 不急着扫太细先用大步长摸清趋势很多新手一上来就把角度从0扫到90°步长取1°结果80多个工况每个都算完整瞬态过程好几天过去了都出不来结果。做参数化扫描一定要分两步走。第一步粗扫。把电流角从0°到90°或者根据你的符号习惯可以扩展到-90°到0°每隔5°设一个点。粗扫的目的是快速判断转矩最高点大概落在什么区域同时确认曲线形状是否符合预期。正常IPMSM的转矩-电流角曲线是一个单峰形状峰值角通常在30°到45°电角度附近如果曲线完全单调递增或者一直递减基本可以判断是符号、初始位置角或激励方向出了问题这时不值得继续精扫先排查基础问题。第二步精扫。确定了大致峰值区域后在峰值附近加减15°的范围内用1°甚至0.5°的步长加密扫描。这时候需要注意的是MAXWELL的参数化扫描每个点都是独立求解的所以不要一上来就全参数化并行跑到底先手动跑几个关键点验证一下模型状态再批量提交。关于扫描范围我见过不少项目直接0-90°扫一遍其实有点浪费。理论上MTPA的角度不会超过45°多少因为超过45°后磁阻转矩的 ( \sin2\beta ) 项开始下滑永磁转矩也是按 ( \cos\beta ) 下降总转矩必然往下走。对多数IPMSM来说最优角落在25°-40°电角度之间你把扫描范围缩窄到0-60°精度可以做得更好计算量还小。3.2 求解时间、步长与转矩平均值的处理确定扫描点之后求解设置要选对。我常用的做法是让电机至少转过两个电周期取后一个完整周期的转矩波形做平均。比如电网频率设为50Hz电周期20ms那整个仿真时长可以设为60-100ms前40ms作为启动过渡期后40ms的转矩波形用于取平均。时间步长建议每个电周期不少于100步也就是步长不大于0.2ms对50Hz而言。如果时间步长太粗转矩波形上的纹波细节会丢失虽然平均转矩影响不大但如果你还要顺便看看转矩波动和齿槽转矩粗步长就完全不够看了。为了兼顾速度我通常会先把步长设置成0.1ms转矩达到稳态后再用后处理里“平均值”功能取区间均值。网格剖分方面气隙处一定要加密。内置式电机气隙本来就小气隙处的网格如果太粗磁阻转矩计算会严重偏差。我习惯在气隙里至少布置三层网格并且定子齿尖、磁桥位置都要局部加密。磁桥是IPMSM漏磁最严重的区域这里剖分粗了漏磁系数算不准交直轴电感直接受影响转矩曲线的峰值位置也会偏。取转矩平均值时有个细节后处理里不要直接取整个时间段的平均前段的电磁暂态过程会拉低平均值。正确做法是先看转矩波形确认从什么时候开始进入稳态然后只截取稳态区间求平均。如果电机惯量设置得比较大转速建立会偏慢稳态区间靠后前段废数据更多这个取舍要灵活一点。3.3 绘制转矩-电流角曲线并拆解永磁转矩和磁阻转矩的贡献参数化扫描跑完之后MAXWELL会生成每个角度点对应的转矩结果。把每个角度点的平均转矩提取出来画成 ( T_e-\theta ) 曲线峰值对应的横坐标就是你要找的最佳电流相位角。但如果你只是拿个峰值其实浪费了这次扫描。我建议在同一个扫描里顺便把 ( i_d )、( i_q )、( L_d )、( L_q ) 也提取出来用转矩公式去反推永磁转矩和磁阻转矩的各自占比。做法是在某个电流角下通过MAXWELL后处理或者场计算器读取d、q轴磁链 ( \psi_d )、( \psi_q )然后[ \psi_f \psi_d - L_d i_d ] [ L_d \frac{\psi_d - \psi_f}{i_d}, \quad L_q \frac{\psi_q}{i_q} ]有了这些值就能把总转矩拆成两部分画出两条子曲线。这个操作的价值在于它能帮你判断这台电机的磁阻转矩到底贡献了多少比例。比如一台车用驱动电机磁阻转矩占比可能高达30%-40%最优角自然会比那些磁阻转矩占比小的电机更大如果你发现扫描出来的最优角才15°左右说明这台电机凸极性比较弱很值得回头看看转子结构设计是否合理、磁桥是否过宽导致漏磁严重。下面用一个简化的示例数据来说明这个判断过程数据仅为示意电流角 ( \theta ) (电角度)总转矩 (Nm)永磁转矩分量 (Nm)磁阻转矩分量 (Nm)0°88.588.5015°116.285.430.825°125.780.145.630°128.376.751.635°127.172.254.940°122.466.855.645°114.560.554.0在这个例子里峰值出现在30°附近。磁阻转矩在40°左右达到最大但总转矩峰值提前到了30°因为永磁转矩随角度增大下降更快。所以最优角是两个转矩分量“此消彼长”的平衡点不是磁阻转矩最大那个点也不是永磁转矩最大那个点。3.4 用MTPA公式和交叉验证确认扫描结果有限元扫描得到了最佳电流角不代表万事大吉。我习惯做一个交叉验证用扫描得到的 ( L_d )、( L_q )、( \psi_f ) 代入解析公式重新求一次理论最佳角。如果两者差距在2°-3°以内说明有限元模型和参数提取是自洽的如果差很多那就得怀疑是不是电感提取方式不对或者网格剖分有问题。解析法求MTPA角的思路是对转矩公式求导。令 ( T_e ) 对 ( \beta ) 的导数为零解出来就是最佳角满足的条件[ \frac{dT_e}{d\beta} -1.5p\psi_f I_s\sin\beta 1.5p(L_d - L_q)I_s^2\cos2\beta 0 ]实际项目中通常用数值解法就是把扫描得到的 ( \psi_f )、( L_d )、( L_q )、( I_s ) 带进去二分法求根。你会发现解析得到的最佳角和有限元扫描结果在趋势上非常一致但数值上总会有那两三度的差异。这种差异主要来自交叉饱和效应——真实负载工况下d轴和q轴的磁路会互相影响电感不再是常数而是随工作点变化的。有限元扫描本身就包含了交叉饱和效应因此它比固定电感参数的解析计算更可信这也是我们最终还是要以有限元扫描结果为准的原因。如果你后续还要做控制仿真比如在Simulink里搭MTPA查表控制那么这个扫描出来的角度还要在不同电流幅值下各扫一遍形成一张“电流幅值-最佳电流角”的二维表。因为最佳角不是固定不变的它会随电流增大逐渐往大角度方向移动。一个完整的MTPA表通常是电流从0开始、每隔10A一个点每个点都做一遍角度扫描。这个工作量不小但这也是工程上真正需要交付的东西。4. 常见问题与排查技巧实录4.1 转矩曲线全是负的或者峰值不在预期区域这个问题的原因排序第一是转子初始位置角不对第二是电流角符号方向反了第三是绕组激励方向接反。排查方法很简单先把电流角设成0°也就是纯q轴电流工况。这时的转矩应该等于 ( 1.5p\psi_f i_q )必然是正值且大小跟额定转矩接近。如果这里就是负的那基本可以断定是转子初始位置角或者绕组方向的问题跟扫描范围无关。调的时候可以在MAXWELL里把转子初始位置角逐步偏移比如每次试5°机械角度观察转矩曲线的变化趋势直到0°电流角工况下转矩正确为止。这一步看着基础但我身边真有同事漏掉了结果扫描出来的“最优角”偏了60°电角度曲线形状完全对不上。另外要提醒的是电角度和机械角度的换算关系是电角度 极对数 × 机械角度。内置式电机的极对数常见的是3、4也就是说机械上偏1°电角度可能就偏了3°、4°非常敏感。改转子初始位置角时一定先把极对数算清楚再动手。4.2 转矩-电流角曲线不光滑峰值附近出现锯齿多半是网格和求解时间步长配合的问题。峰值附近的转矩差异可能只有零点几牛米如果网格太粗或者转矩平均值取得不准曲线就会在峰值附近抖动肉眼很难判断到底哪个点是最大。解决思路有两个层面。第一把转矩波形截取区间放大来看确认是否真正进入稳态。有时候电机还在加速过程中转矩平均值被拉低导致每个扫描点的转矩值都偏小且波动大。第二对峰值区域做局部网格加密尤其是气隙和磁桥区域再把时间步长减小为原来的一半重新计算峰值附近的几个点。如果你发现重新计算后峰值位置挪动了3°以上说明之前的网格精度不足不能作为最终结果。还有一个非常实用的技巧曲线出来后做一次平滑处理再找峰但不能只依赖平滑后的结果。我会在峰值附近手动加算两个点比如峰值在30°那就补算29°和31°看趋势是否连续确认不是数值噪声导致的小凸起。4.3 仿真最佳角与样机实测差很多这个情况我遇到过不止一次。仿真出来最优角在32°实测却是27°差了快5°。这种偏差眼不见心不烦但一旦要对标就得逐项排查。第一嫌疑是永磁体实际磁性能跟材料卡不一致尤其是温度。磁体温度从20℃升到100℃剩磁可能下降8%-10% ( \psi_f ) 变小后最优角会往大角度还是小角度变从转矩公式看永磁转矩项比重下降磁阻转矩项比重上升最优角会往大角度移动。所以你仿真用的磁体温度必须和实测工况的温度对应上否则对不上很正常。第二个嫌疑是电感的交叉饱和效应。有限元里的 ( L_d )、( L_q ) 是考虑了饱和的但如果你仿真时网格太粗或者电流加载方式不对饱和程度可能和真实有出入。磁阻转矩的占比变化会直接拖动最佳角位置。第三个嫌疑是实测数据本身。台架实测时如果你的电流角定义是以反电动势过零点为基准而仿真里是以转子d轴位置为基准两边差了功角都不知道那你永远对不上。所以我建议在实测和仿真对比前先把角度基准统一好这是最容易被忽略的“隐形坑”。4.4 仿真数据要交给控制时遇到“转矩指令未配置最大轮廓速度 PDO”这类提示怎么理解现在很多项目做完电机本体仿真之后要把MTPA表交给电控同事去做驱动器的联调。这个过程中经常会遇到一些来自上位机、总线调试工具或者伺服调试软件的报错提示字面看着像电机问题其实跟电机本体没关系。比如“转矩指令未配置最大轮廓速度 PDO”这类提示我最初看到的时候也愣了一下以为是电机控制里的某项参数没设。后来仔细排查才发现它说的是在总线通信配置里当前运行在转矩控制模式下但PDO过程数据对象映射表里没有包含“最大轮廓速度”这个对象。很多驱动器在启用转矩控制时仍然需要有速度限制参数来兜底防止负载突变导致飞车。控制器如果没有把限速相关的对象映射进PDO上位机就会报出类似“未配置”的提示。这种情况下不是电机或仿真数据有问题而是需要在驱动器配置软件里检查PDO映射把速度限制相关的对象比如最大轮廓速度、最大速度、紧急停止速度等加到对应的发送或接收PDO中并按实际工况设一个合理的上限值然后再重新下装配置。如果项目里只做转矩开环调试不想经过速度规划那就在控制器的运行模式里明确选择“直接转矩控制”并激活相应的转矩限幅对象不要给控制器留下歧义区间这类提示自然不会出现。这里想强调一点从仿真到联调之间隔着一整套控制系统的配置问题。仿真阶段的MTPA角度表只是“药方”但“抓药”的过程还牵涉到电机控制器、总线配置、编码器对齐等一系列环节。遇到问题不要急着怀疑仿真数据先把报错信息的对象字典和协议文档翻出来逐字读一遍大多数这类提示都指向配置缺陷而不是物理模型错误。回到转矩和电流相位这件事上我再分享一个个人习惯每次做完一版电流角扫描我都会把原始数据、曲线截图、求解设置参数和关键结论打包存档尤其是电流角的定义方式一定要用文字写清楚不然三个月后回头再看真的会忘记当初这个角是从哪个基准算起的。工程上的大部分误差其实不是计算精度不够而是定义不一致造成的这个坑希望大家都能避开。