接到一个电机优化项目,领导甩过来一句话:“把一字型和V字型都建个参数化模型,后面要反复调参数的。”如果你是做Ansys Maxwell电机仿真的工程师,听到这句应该能立刻感受到那种复杂心情——参数化建模本身不难,但要做到后续优化时不返工、改参数不变形、批量扫描结果能直接用,里面的细节是真的多。
我这次的项目,是把一台低压永磁同步电机的转子拓扑做对比:一字型(也叫I型、平插式)和V字型(内嵌V型)两种结构,做成可以在Ansys Maxwell里直接驱动变量的参数化模型,然后批量扫描磁钢尺寸、角度、磁桥厚度这些关键参数,为后续的转矩提升和效率优化打基础。这篇文章把整个建模思路、变量设计、实操步骤和踩坑记录都写出来,希望给同样在做参数化建模仿真的人一点参考。
1. 项目整体设计:为什么要把一字型和V字型做成参数化
1.1 参数化建模到底解决了电机设计中的什么痛点
很多刚接触电机仿真的朋友,最常用的建模方式是“画一步算一步”:今天算一下磁钢厚度4mm的情况,手动把几何改一改,重新剖分求解;明天又想看5mm的情况,再手动改一遍。单一方案还好,一旦同时要考虑磁钢厚度、V角、磁桥宽度、磁钢嵌入深度三四个变量的组合影响,手动改模型的方式基本就会让人崩溃——改一个尺寸,往往要连带改四五处关联特征,稍不留神几何就变成了“四不像”。
参数化建模的本质,是把这个过程变成“改一个数字,所有关联尺寸自动更新”。这和Excel里用公式把单元格关联起来是一个道理:你改了A1,B1、C1、D1全部跟着变,整个表格的数据体系保持一致性。放到Ansys Maxwell里,就是先在Design Properties里定义好变量,再让几何尺寸、材料方向、边界条件甚至是激励电流都引用这些变量。模型建好后,剩下的事就交给参数扫描和优化器,真正实现“搭好一次骨架,反复复用”。
这次我把一字型和V字型都做成参数化,还有一个很重要的原因:两种拓扑的变量体系虽然有差别,但很多尺寸(比如转子外径、磁钢厚度、气隙长度)是共用的。把两套模型建立在同一套变量规范下,后面对比扫描结果时才不会因为命名混乱、单位不统一而浪费大量时间去核对。
1.2 一字型与V字型拓扑的选型差异与技术特点
在做参数化设计之前,先把两种拓扑的特性理清楚。一字型转子,磁钢是矩形块,平嵌在转子铁心内部,磁钢宽度方向大致沿圆周切线方向。它的优点是结构简单、加工成本低、磁钢利用率高,缺点是凸极率较低,磁阻转矩能利用的空间有限,弱磁扩速能力偏弱,适合对调速范围要求不高的应用场景。
V字型转子则把两块磁钢摆成一个“V”形,汇聚在转子极中心一侧。这样做的核心收益是聚磁效应:磁钢的磁动势在气隙侧会叠加增强,气隙磁密更高,同时转子d轴和q轴的电感差值也更大,可以直接提升磁阻转矩占比。这也是目前很多车用驱动电机会优先考虑V字型的原因——单位体积的转矩密度更高,弱磁调速范围更宽。
但V字型并不是没有代价。V角的引入带来了更复杂的几何约束,磁桥区域的漏磁和应力问题需要专门处理,磁钢两端靠近转子外圆的地方需要设计足够宽度的磁桥来保证机械强度,而磁桥宽度又是一个直接影响漏磁的参数,设计上需要反复权衡。正因为V字型的性能对角度、磁桥厚度这些参数十分敏感,才更需要参数化模型来辅助寻优。这两种拓扑放在一起做参数化,本质上就是用同一套仿真环境去回答“在同一个体积和功耗限制下,哪种结构能有更优的性能极限”这个问题。
2. 建模前的核心准备:变量设计与几何绑定思路
2.1 变量体系设计:从尺寸到角度的完整参数化
很多初学者在建参数化模型时会走入一个误区:把变量定义了一堆,结果长度单位不统一,变量之间毫无联动,最后扫描时发现改一个参数后电机几何出现重叠或者负尺寸。我在这套模型中的做法是:先把变量体系按模块划分清楚。
第一类,全局几何尺寸。包括定子内径、转子外径、气隙长度、铁心长度、槽数等。这类变量通常从电机的初步电磁计算中获得,在优化阶段基本固定,但依然要放到模型里做成变量,而不是写死数字。因为后续如果有人想改气隙或者转子外径,写死的话又得重新处理一遍几何,非常麻烦。
第二类,磁钢尺寸。包括磁钢厚度Mag_Thk、磁钢宽度Mag_Wid、磁钢倒角R角等。磁钢厚度直接决定气隙磁通密度,磁钢宽度决定每极磁通面积,这两个是最核心的优化对象。
第三类,磁钢位置与拓扑尺寸。一字型用Mag_Pos表示磁钢中心到转子中心的径向距离,用来控制磁钢埋深;V字型则用一个V_Angle变量控制两块磁钢之间的夹角,同时还要定义磁钢顶端到转子外圆的距离或磁桥厚度Rib_Br。
第四类,配合间隙与工艺尺寸。例如磁钢槽比磁钢本体单边大0.2mm的装配间隙Slot_Clearance。这一类变量很容易被忽略,但它决定了模型在批量扫描时不会因为间隙为负而崩溃。
变量命名上我强烈建议使用“前缀_物理量”的格式,例如Mag_Thk、Mag_Wid、V_Angle、Rib_Br、Slot_Clearance,单位统一使用mm和deg。Ansys Maxwell中变量单位一旦混乱,几何尺寸就会差出十几个数量级,排查起来极其痛苦。
变量的联动物联动方面,我做了一个非常关键的设计:磁钢槽的宽度和高度不是独立变量,而是通过表达式计算出来的,例如:
- Slot_Wid = Mag_Wid + 2 * Slot_Clearance
- Slot_Thk = Mag_Thk + 2 * Slot_Clearance
这样做最大的好处是,扫描磁钢宽度时,槽型会跟着自动变化,永远不会有磁钢放不下槽里的情况。把这个思想贯穿到所有关联尺寸中,就是参数化模型“鲁棒性”的来源。
2.2 一字型和V字型参数化的几何实现逻辑差异
一字型的几何建模相对简单:一个矩形磁钢槽,加上内部的矩形磁钢,槽的中心位置用Mag_Pos控制。我在实际建模时,会先在转子圆内画一条辅助基准线,再根据基准线的位置和偏距生成槽轮廓,然后用布尔运算切割转子体。建模顺序很重要——建议先画磁钢槽,再在槽内单独画磁钢体,这样后续赋材料和设置充磁方向都更直观。
V字型的几何实现就麻烦一些。首先是V_Angle的定义方式,我建议明确为“两块磁钢之间的夹角”。通常这个角度的取值范围在100°到160°之间,如果定义成每块磁钢与径向线的夹角,取值就在10°到40°左右。哪种定义方式都可以,但一定要在项目里保持统一,并且要在参数范围上预留足够的余量。
V字型建模我的做法是:先在转子极中心线上确定一个参考圆心,以这个圆心为基点画出一条与中心线夹角为V_Angle/2的辅助线,再沿着辅助线方向拉伸生成磁钢槽,然后用镜像功能生成另一半,最后通过布尔切割得到完整的V型槽和磁钢体。用镜像而不是手动二次绘制,可以保证两边的对称性,结构完全一致,磁场分布才会对称,之后做参数扫描时V角变化也不会引入不对称误差。
还要特别提醒的是,磁钢槽与磁钢本身一定要分开建模,不要把磁钢和槽画成同一个Part再由布尔差集减去。因为一旦把磁钢尺寸和槽尺寸用表达式绑定,如果磁钢体被布尔运算消掉了,后续赋给磁钢的充磁方向定义也会丢失。为了保证变量扫描时模型能稳定重建,我是让磁钢体单独存在,磁钢槽通过Cutting功能从转子中减除,二者互不干扰但尺寸上通过表达式关联。
3. 实操全流程:从几何建模到参数扫描优化
3.1 在Maxwell中搭建一字型参数化转子模型
这里我把完整的实操步骤写出来,用的是Ansys Maxwell中比较常见的Maxwell 2D瞬态磁场求解流程。如果你用的是Maxwell 2021R1之后的版本,界面操作基本一致。
第一步,新建项目。点击Maxwell菜单,选择Maxwell 2D,然后指定求解类型为Magnetic Transient。瞬态求解是后续计算反电动势和转矩波形的基础,静态场虽然也能算转矩,但做不了谐波分析和齿槽转矩评估,所以我这里直接选瞬态。
第二步,定义变量。打开Design Properties(在Maxwell菜单下),依次添加变量。我常用的变量清单如下:
| 变量名 | 含义 | 典型初始值 |
|---|---|---|
| Rotor_OD | 转子外径 | 60 mm |
| Rotor_ID | 转子内径 | 20 mm |
| Mag_Thk | 磁钢厚度(充磁方向) | 4 mm |
| Mag_Wid | 磁钢宽度 | 18 mm |
| Mag_Pos | 磁钢中心距转子中心距离 | 35 mm |
| Slot_Clearance | 磁钢槽单边间隙 | 0.2 mm |
| Air_Gap | 气隙长度 | 0.5 mm |
| Stator_ID | 定子内径 = Rotor_OD + 2*Air_Gap | 61 mm |
在表格中大家可以看到,我把定子内径也用表达式关联起来了,而不是输入61这个数字。这样一旦气隙变化,定子内径自动更新,整个模型完全联动。
第三步,绘制转子磁钢槽和磁钢体。在转子圆上,用Rectangle工具画矩形,矩形中心坐标填入表达式,宽和高分别填入Slot_Wid和Slot_Thk。选中该矩形和转子圆,使用Subtract命令把槽从转子中减去。然后在相同位置画一个新矩形,长宽填入Mag_Wid和Mag_Thk,作为磁钢本体。注意:磁钢槽比磁钢本体略大,间隙变量用来保证扫描时不会出现几何干涉。
第四步,设置材料。磁钢选择N35SH等钕铁硼材料,或者直接在材料库里指定NdFe35及其矫顽力、剩磁等参数。转子铁心通常选DW470硅钢片,如果是高频场合要重新考虑频率损耗曲线。
第五步,设置运动区域和边界。在气隙中间画一个Bands圆环区域,把转子运动区域包进去,运动类型选择Rotational,速度或转速填写额定转速。对于一字型,磁钢充磁方向一般可以设置为全局X方向或Y方向,到这一步模型已经是可求解状态。但为了后续参数扫描,建议把激励也参数化:三相电流源幅值用变量Iamp表示,频率用用变量计算得出,电流角用变量Cur_Ang控制,这样后续就不需要每次修改激励。
3.2 把一字型模型扩展为V字型参数化结构
一字型模型验证可算之后,我会复制一个Design出来,把转子部分改成V字型,其余定子部分保持不变,这样后面两种拓扑的对比就在同一套边界条件和激励下进行,公平性有保证。
V字型建模时有几个关键步骤需要关注。先在正对定子槽的转子极中心线上画一条辅助中心线,再在中心线上取一点作为V角的顶点,用Line工具画一条与中心线呈V_Angle/2夹角的辅助斜线。以这条斜线为基准,根据Slot_Wid和Slot_Thk生成磁钢槽的轮廓线,然后延伸并形成封闭的多边形,使用Boolean切割转子。另一侧通过镜像操作生成,形成完整的V型槽。
磁钢本体同理,在槽内沿斜线方向生成矩形磁钢体,宽度和厚度分别用Mag_Wid和Mag_Thk控制,两端各留Slot_Clearance间隙。为了让V角变化时磁钢能够同步缩放且不会伸出槽外,我额外定义了磁钢内端到转子中心的径向距离Var_In_Dist,磁钢外端的位置由内端位置、磁钢宽度和V角共同决定,全部用表达式串起来。
转角方面特别容易出问题的是:镜像出来的磁钢,其充磁方向往往需要单独定义。理想情况下,V字型两侧磁钢的充磁方向应该是关于极中心线对称的,因此不能简单共用同一套全局坐标系的方向向量。我的做法是,在每一块磁钢的中心位置建立局部坐标系,然后定义一个单位矢量,垂直于磁钢宽边方向,作为该磁钢的充磁方向。Maxwell里可以在Assign Material时选择“Orient”中的Vector,然后输入相对于该局部坐标系的坐标值。为每一块磁钢建立单独的坐标系虽然麻烦一些,但可以保证扫描V角时磁场方向始终随几何正确变化。
3.3 参数扫描与优化流程:从单参数到多参数
模型建好并确认能正常跑一个仿真点之后,就可以进入参数扫描阶段。我通常会在Optimetrics菜单下选择Parametric,在里面添加要扫描的变量,并设置扫描范围和步长。以V字型为例,第一次扫描我一般会关注以下几个维度:
- V_Angle从100°到150°,步长5°
- Mag_Thk从3mm到6mm,步长0.5mm
- Rib_Br(磁桥厚度)从0.8mm到2mm,步长0.3mm
输出结果需要提前定义好。平均转矩可以直接用数值计算器的积分函数提取,例如对转矩波形取均值;转矩波动可用峰谷差除以平均值计算;齿槽转矩则需要在空载状态下计算;效率还需要提取铁损和铜损,铁损在Maxwell的Core Loss计算器里读取,铜损根据相电流有效值和相电阻计算。
完成单参数扫描后,下一步是多参数联合优化。这里我推荐的做法是:在Maxwell中先做DOE实验设计(例如Latin Hypercube采样),把样本点结果导出,然后用optiSLang或pyAnsys做响应面模型,再用遗传算法或梯度算法寻优。Maxwell自带的Optimetrics虽然也能做优化,但多变量多目标情况下收敛速度和鲁棒性不如专业的DOE工具,尤其当变量数超过5个时,内置优化器很容易陷入局部最优。
优化目标的制定也很重要。如果你直接拿“平均转矩最大化”作为唯一目标,扫描结果往往会倾向于使用最大磁钢,导致成本上升、机械强度下降。合理的做法是加入约束条件,比如:
- 转矩波动 ≤ 5%
- 磁钢总质量 ≤ 某个上限
- 反电动势THD ≤ 10%
- 齿槽转矩 ≤ 0.5 N·m
这样优化出来的方案才是可落地、平衡的。这里要特别强调,V角对转矩波动非常敏感,扫描步长不应超过3°到5°,否则很容易错过最优区域。我第一次做V字型扫描时用了10°步长,结果在110°到120°之间出现了一个峰值,但因为这个区间被漏掉了,导致整套优化方向完全跑偏,浪费了不少时间。
4. 常见问题与调试技巧
4.1 参数化失效与扫描异常的排查
使用参数化模型时最让人头疼的问题就是:变量明明改了,但几何模型纹丝不动。这个问题十有八九是因为几何尺寸根本没有真正绑定到变量上。在Maxwell中,如果你绘制矩形时直接输入了数字,而不是输入变量名,那么即使定义了变量,二者之间也没有关联关系。检查的方法是,在几何模型的属性栏里看坐标值是否显示为变量名或表达式。如果显示的是具体数值,就要重新改成形如“Mag_Wid / 2”这样的表达式。
另一个比较隐蔽的问题是,Optimetrics扫描设置正确,但扫描结果没有任何数据。这种通常是因为定义输出参数时,表达式引用了不存在的求解量,例如计算的转矩表达式名称拼写有误,或波形数据还没有收敛到稳定周期。我建议在扫描之前,先手动运行一遍瞬态仿真,等波形稳定了再确认输出量的表达式能正确计算,之后再启动批量扫描。
还有一次我遇到的情况,扫描过程中几何出现了负尺寸或重叠。排查发现,是V角扫描到120°以下时,两块磁钢在转子中心附近发生了干涉。解决办法是在扫描设置中增加几何约束条件,例如约束两块磁钢内端之间的最小距离,或者在变量表达式中增加一个限制条件,比如让磁钢宽度与角度共同决定的内端点坐标不能超过中心点。这也是为什么我在2.1中反复强调,参数之间要用表达式联动,而不是各写各的数值。
4.2 磁钢充磁方向与网格剖分问题
磁钢充磁方向搞错是参数化模型扫描结果错误的主要原因之一,尤其在V字型上。表现症状是反电动势波形不对称,或转矩平均值远低于预期。一字型通常比较简单,只需给每极磁钢指定同一个全局方向即可;V字型则必须为左右两块磁钢分别设置充磁方向。如果你发现V字型的反电动势波形出现半波异常,可以先检查磁钢设置中材料方向的“Coordinate System”是否为各自的局部坐标系,方向向量是否沿磁钢短边方向。
网格剖分是另一个影响扫描结果稳定性的关键因素。V字型的磁桥区域很薄,磁力线在这里变化剧烈,如果网格太粗,计算出来的漏磁和转矩都会出现明显的误差,导致扫描曲线不平滑。建议在磁桥区域和磁钢边角处设置Local Mesh Operations,给定一个最大剖分尺寸,例如磁桥宽度的一半以内。气隙区域的网格同样重要,至少要有两层剖分,这样才能准确计算转矩。
同时提醒一下,在批量扫描时不需要每次都全局重新剖分,可以在Mesh Operations里设置条件网格,让网格只在变量变化时更新,能节省不少计算时间。实测下来,对于转子外径60mm到100mm的电机模型,合理设置网格和自适应求解,单个工况的仿真时间可以从二十分钟降到五分钟左右,批量扫描效率提升非常明显。
4.3 优化中的收敛与约束处理技巧
多参数优化过程中最常遇到的两个问题,一个是优化不收敛,另一个是收敛到一个工程上无法接受的方案。针对不收敛,我的排查顺序是:先缩小变量范围,单独扫描每一个变量确认其与目标函数的关系是单调的还是存在峰值,如果某个变量对结果几乎无影响,就直接把它固定在初值上,减少优化维度。这一步非常重要,一台永磁电机可能有十几个可能影响的参数,但实际上真正起主导作用的往往只有四五个,把关键变量筛出来再优化,效率和稳定性都会大幅提升。
针对优化结果不可用的问题,核心手段是设置好约束条件。比如你扫描出磁钢厚度6mm的方案,转矩确实最大,但你计算一下材料成本,发现磁钢用量增加了50%,回报率却只有5%,工程上几乎不会采纳。优化问题本质上不是一个纯技术问题,而是一个多目标折衷问题,所以提前在目标函数中增加代价项,或者加上磁钢用量上限、电流密度上限等硬约束,可以避免优化器把方案推向一个“技术上正确但工程上不可用”的极端值。
另外一个实际经验是,在做V字型多目标优化时,V角和磁桥厚度是一对强耦合变量。V角增大,磁桥区域附近的空间形状会改变,磁桥厚度能承受的离心应力会受影响。所以如果你想同时优化V角和磁桥厚度,建议把应力约束(可以用简单的离心力估算公式或仿真结果拟合)也加进去,否则优化算法会把磁桥厚度一路减小,结果在高速工况下转子的机械可靠性完全达不到要求。这个坑我在初次优化时踩过,后来把磁桥厚度下限约束提高到1mm,才保证了后续台架测试不出现问题。
4.4 参数化模型复用与多工况批量计算的扩展经验
最后说一个比较容易被忽略但对长期做电机设计非常有用的点:参数化模型建好之后,不仅能做参数优化,还能直接复用到不同工况的批量计算中。比如你要评估相同转子在不同电流密度下的转矩-转速特性曲线,只需在扫描参数中加入电流密度或电流角变量,把激励和转速都参数化,就可以一次性得到完整的MAP图数据。我就是在这套一字型和V字型模型基础上,直接扩展了不同电压等级和不同转速下的效率MAP扫描,节省了大量的重复建模时间。
在这个复用过程中,有一点需要特别注意:当激励电流较大时,磁路可能进入深度饱和,这个时候Maxwell的瞬态仿真时间步长如果设置不合理,很容易出现转矩波形振荡。一般我会把时间步长设置为电周期的1/500,并保证求解的总时间覆盖超过3个电周期,这样既保证了结果精度,也兼顾了批量计算的耗时。
如果你后续想把参数化模型和系统级仿真结合起来,还可以通过Export功能将Maxwell的结果导出到Twin Builder中建立降阶模型,用降阶模型进行系统级的逆变器、控制策略联调。降阶模型的输入是参数化变量的当前值,相当于把你的参数化模型封装成一个小颗粒度的器件库,做系统级优化时不用重新跑有限元仿真,速度能快出几个量级。这个方法我自己实际用下来非常得心应手,强烈推荐给做电机控制与本体联合设计的朋友。
对我个人而言,这次一字型和V字型参数化模型做下来,最大的收获并不是模型本身的线条和参数多漂亮,而是把“参数驱动”的思想贯通到了从电磁设计到优化的全流程中。模型搭好之后,每一次方案调整都变得很轻量,改一个变量,重新仿真,再看结果对比表,这种流畅感是之前手动改图的日子里完全体会不到的。如果你现在还没把自己的电机模型参数化,我建议从最简单的磁钢厚度变量开始改造,一步一步把更多参数纳入变量体系,坚持做完几个项目之后,你会发现自己的建模效率和方案分析质量都会有一个非常明显的提升。