Maxwell+OptiSlang多目标优化:永磁同步电机尺寸设计实战

Maxwell+OptiSlang多目标优化:永磁同步电机尺寸设计实战 做电机设计这行绕不开一个很实在的问题定子外径多大、磁钢厚度多少、气隙留几个毫米这些尺寸参数一改效率、转矩、成本、温升一起跟着变。以前我们习惯一个参数一个参数地扫比如把磁钢厚度从2.5mm扫到4mm看转矩怎么变、效率怎么变然后业务侧再来回拉锯。这种做法的效率很低而且往往只能找到局部方案——因为你不可能把所有尺寸组合都试一遍。后来我把 Ansys Maxwell 和 OptiSlang 接在一起做多目标尺寸优化相当于把手动试参变成了让算法帮我找帕累托前沿这篇文章就把整个方法和一个实际电机案例拆开讲希望给正在做永磁同步电机或类似旋转电机开发的朋友一些能直接复用的思路。这套方法的适用对象很明确手里已经有一个 Maxwell 的电机模型想通过调整结构尺寸来同时优化多个性能指标但又不确定哪些尺寸起主要作用、组合之后能拿到什么样的性能上限。内容会覆盖从参数化建模、目标定义、DOE 采样到 OptiSlang 里跑自适应元模型多目标优化MOGA再到结果的工程解读和验证全程用一台内置式永磁同步电机IPM的案例来说话。1. 为什么把 Maxwell 和 OptiSlang 拼在一起做尺寸优化1.1 只靠 Maxwell 手动扫描的局限在哪Maxwell 本身是个非常好的有限元求解器但它的设计优化能力偏单点验证。你可以把模型参数化然后做参数扫描一次扫一个变量或者几个变量把结果拉出来对比。这在变量少、目标单一的时候够用但电机尺寸优化通常有五个到八个变量目标至少是转矩、效率、转矩波动三个起。你算一下组合空间6 个变量、每个变量取 5 个水平全因子就是 15625 组就算一组算 2 分钟也要连续算 21 天。这还没算网格自适应和收敛时间波动。更麻烦的是工程上真正关心的是哪些尺寸贡献最大哪些尺寸之间互相影响。手动扫描给不出这种全局信息你只能看到单变量趋势。而单变量趋势有时还会误导人——比如调小气隙长度能显著提高转矩但减小到一定程度后齿槽转矩和噪声问题会恶化只看单变量曲线根本发现不了这个交互效应。1.2 OptiSlang 究竟补了什么能力OptiSlang 进入这个工作流解决的是三件事。第一用少量采样点建立响应面模型元模型。它不需要你把上万组有限元全部跑完而是先通过 DOE 设计矩阵跑几百组样本然后用近似模型把尺寸变量 → 性能指标的映射关系拟合出来。它的元模型库里有 Kriging、多项式响应面、神经网络等多种算法而且会自动做模型质量评估告诉你哪个响应面的拟合精度够用。第二在多目标优化时直接输出帕累托前沿。这一点特别关键。OptiSlang 的 MOGA 算法是基于元模型来寻优的寻到的候选解会再调用 Maxwell 做局部验证因此最终给你的不是唯一最优解而是一组互不支配的折中方案。你可以在这个前沿上根据重量、成本、工艺约束去选点。第三它内置了灵敏度分析Sensitivity Analysis和鲁棒性分析Robustness Analysis。灵敏度分析能告诉你每个尺寸对每个目标的贡献百分比鲁棒性分析能把加工公差的影响也考虑进去比较接近工程实际情况。1.3 版本搭配和基础环境准备我用的是 Ansys Electronics Desktop 2023 R2 里的 Maxwell配 OptiSlang 2023 R2。两者在 Workbench 平台里可以联动也有独立 Solo 模式的耦合方式。如果只是做尺寸优化推荐把 Maxwell 模型放到 Workbench 的 Design of Experiments 组件里再连接 OptiSlang 组件这样变量和响应的传递都是图形化操作不容易出错。计算资源方面建议至少 16 核的机器。DOE 阶段要跑几百个瞬态或稳态电磁场计算单核跑很难受。我在实际案例里用 32 核工作站一个 8 变量的 DOE 跑 300 个样本瞬态分析每个约 1.5 分钟大概花了 8 小时。如果用分布式求解再压一压时间还能更快。2. 从一台基准电机开始参数化建模与目标定义这个环节是整个优化成败的地基。你后面所有 DOE、元模型、帕累托前沿都依赖一开始的模型和参数设定是否正确。模型没参数化好后面全是白算目标定义得太激进或太含糊优化结果也没法落地。2.1 案例样机选型和关键尺寸变量我选了一台 8 极 48 槽的 IPM 电机额定功率 60kW峰值 120kW额定转速 4500rpm最高转速 10000rpm。这种电机的典型特征是有磁阻转矩可以利用尺寸变量对转矩和效率的影响呈非线性非常适合展示多目标优化的价值。定义以下 8 个尺寸变量变量名含义初始值取值范围DSO定子外径210mm190–230mmGAP气隙长度0.8mm0.5–1.2mmMTH磁钢厚度(每层)4.2mm3.0–5.5mmPA极弧系数0.780.65–0.90RIB转子隔磁桥宽度1.5mm0.9–2.5mmSHT定子槽深15mm12–18mmTSW齿宽8.5mm7–10mmLEN铁心叠长150mm130–170mm为什么选这 8 个变量因为它们直接决定电机的磁路和机械强度同时也涵盖了定子、转子、磁钢三个主要部分。齿宽和槽深影响饱和程度和铜耗磁钢厚度和极弧系数影响气隙磁密和永磁体用量隔磁桥宽度影响漏磁和转子强度叠长和定子外径决定了整体尺寸和转矩能力。变量数控制在 8 个既能让优化有足够自由度又不会让 DOE 样本量爆炸。2.2 Maxwell 里参数化建模的几个关键操作在 Maxwell 的 Design Properties 里把上述变量建好几何建模时直接引用变量名。这里有三个容易踩坑的细节需要多说一句。第一个是布尔运算保持稳定。转子铁心上的磁钢槽如果是通过两组几何对象相减得到的变量变化时可能会出现拓扑变化比如隔磁桥宽度过小时磁钢槽发生相交或退化导致网格剖分失败。我的做法是使用参数化三维模型时对隔磁桥宽度加一个辅助圆角过渡并且设置几何检验条件当变量组合导致体积低于某个阈值时直接判为无效样本。第二个是网格重剖分的效率问题。DOE 阶段每换一组参数就要重新剖分一次网格如果网格设置不合理单个样本的求解时间会被拉长。我通常把模型切成 1/8 或 1/4 模型用主从边界条件节省单元数同时把电机的网格剖分基本尺寸设置为 1.5mm磁钢区域单独加密到 0.5mm。这样每个瞬态样本能在合理时间内算完精度也不会差太多。第三个是输出量的定义方式。Maxwell 的优化目标不能直接写效率高一点你要把效率、转矩、转矩波动都定义成参数表达式。比如平均转矩T_avg avg(Torque)转矩波动T_rip (max(Torque) - min(Torque)) / T_avg效率Efficiency P_out / (P_out P_loss)损耗要自己在场计算器里输出铁耗、铜耗、磁钢涡流损耗然后相加。建议在参数化建模完成后先用基准尺寸跑一两个瞬态工况确认这些输出量都是正确的再进入优化流程。2.3 优化目标怎么定才算合理大多数情况下电机的尺寸优化目标有四个常用维度最大化平均转矩、最大化效率、最小化转矩波动、最小化体积或重量。但四个目标同时上帕累托前沿会变成一个高维曲面工程解读困难而且 MOGA 的收敛速度也会变慢。实际做的时候我通常把目标拆成主目标和约束项。这台 IPM 电机的案例里我定义优化目标如下目标一最大化额定点效率 ≥ 96%在此之上越高越好目标二最大化额定点平均转矩 ≥ 105Nm在此之上越高越好目标三最小化转矩波动 ≤ 8%在此之下越小越好约束条件永磁体退磁余量大于等于 1.2 倍工作点定子齿磁密不超过 1.8T体积不超过基准体积的 105%。这么定义的好处是既保留了多目标优化的折中能力又避免目标之间过度冲突导致算法在边界上反复横跳。效率和转矩是正相关的效率与转矩波动不一定冲突但转矩波动和极弧系数、磁桥宽度有很强的耦合如果和效率同时作为目标算法能找到的候选解更多也更容易暴露设计矛盾。3. 耦合流程逐步实操DOE、元模型、优化求解从 Maxwell 到 OptiSlang 的完整流程并不是一个按钮就完成的中间要处理数据对接、采样策略、近似建模、优化算法多个环节。我按实际操作顺序展开方便直接照着搭。3.1 数据对接Maxwell 变量和响应怎么传给 OptiSlang如果在 Workbench 里操作直接在 Maxwell 工程里把参数设置为输入参数Input Parameters把输出量设置为输出参数Output Parameters。Workbench 会自动把这些参数暴露给下游的 OptiSlang 组件。有一个常见的坑Maxwell 瞬态分析中输出量计算依赖时间步。比如转矩波动要取稳态周期内的值峰值转矩要取整个瞬态过程的最大值。OptiSlang 只认识你暴露给它的输出量所以要在 Maxwell 的 own 表达式里把时域结果先转成标量比如用avg_T、max_T、pp_T这类表达式再把它映射到输出参数。否则 OptiSlang 拿到的响应永远是整个时间序列根本没有办法做优化。如果不用 Workbench走 OptiSlang Solo 连接 Maxwell 的脚本模式也可以但要自己写 Python 驱动。我建议非特别特殊的需求都走 Workbench省很多时间。3.2 DOE 采样方式和样本量选择DOE 是元模型质量的基础。OptiSlang 的 DOE 方法里有全因子、部分因子、Sobol 序列、LHS拉丁超立方等。对 8 个变量、目标是建立高精度非线性响应面的场景我推荐 Sobol 序列或 LHS。Sobol 序列是低差异序列能把采样点均匀地撒在整个变量空间里特别适合用 Kriging 建响应面。样本量我的经验值是基础样本量 10 × 变量数也就是 80 个如果有交互效应明显的变量再增加 50% 到 120–150 个一般来说 8 变量取 200–300 个样本精度和成本之间比较合适。案例里我取了 300 个样本。原因在于这台电机的损耗特性、磁路饱和效应比较强输出量的非线性程度高样本少了元模型在某些角落会有较大误差。300 个样本跑下来元模型的交叉验证 R² 都在 0.92 以上效果比较理想。DOE 跑完后先在 OptiSlang 里看一眼元模型的诊断指标。如果某个响应的 R² 低于 0.9不要急着进入优化这个响应面的局部预测可能不可靠。解决办法有两种一是增加样本量重新拟合二是把该响应切换成更复杂的元模型类型。我常用的组合是 Kriging 为主个别响应如果拟合不好单独指定用 Polynomial 或 Neural Network 再拟合一次。3.3 MOGA 参数设置和自适应元模型策略OptiSlang 的优化算法核心是 MOGAMulti-Objective Genetic Algorithm以及它的自适应元模型版本。启动一个优化任务前需要明确三件事设计空间用的变量范围、各响应变量的优化方向、算法迭代的代数。我习惯用两层策略第一层先用自适应元模型 MOGAAdaptive Metamodel-based MOGA跑一个快速搜索设定初始种群 100代数 30。这个阶段主要用于发现帕累托前沿的大致形状和覆盖范围。第二层把第一层得到的候选解导入在局部区域用更细的种群比如初始种群 200代数 50继续搜索把前沿的局部密度提上来。OptiSlang 会自动在优化过程中对关键候选点调用真实 Maxwell 求解做验证和再拟合所以不会出现元模型预测很好但真实仿真完全对不上的极端情况。不过在第二层开始前我会检查 OptiSlang 自动验证点的误差。如果误差超过 3%–5%就说明元模型在该区域不够准需要回到上一环节补样本。3.4 多工况与多转速点的调度电机的性能不只是额定点还要看峰值工况和高速弱磁点。如果优化只用额定点很可能算出高速空载损耗大、或者退磁风险高的方案。所以我在案例里同时在三个工况点做评估额定工况 60kW / 4500rpm峰值工况 120kW / 3000rpm高速弱磁工况 30kW / 10000rpm。OptiSlang 里可以把 Maxwell 的多个仿真任务作为一个耦合计算来管理三个工况共享一组尺寸变量输出量则为各自工况下的效率、转矩、转矩波动。优化时把多个工况的结果加权合成一个目标或者把次要工况设成约束条件。我这个案例里是把高速弱磁工况的转矩波动和效率作为约束把额定点的效率和转矩作为主要优化目标这样既不会过度压缩设计空间又能保证最终方案在常用工况和极限工况下都可用。需要留意的是多工况会明显增加计算量。三个工况同时算每个样本点耗时从 1.5 分钟变成 4 分钟左右300 个样本就多出了大约 12 小时。算力充足的人可以一次跑完算力紧张的话可以拆成两步先做额定点 DOE 建立模型选出一批 Pareto 候选再对这些候选点做多工况校验。4. 结果解读与工程取舍优化跑完之后真正考验经验的地方才开始。看到 3D 散点图和帕累托前沿先不要急着兴奋——要会读图还要会用工程约束把最终方案定下来。4.1 看帕累托前沿而不是单点最优多目标优化的结果是一个帕累托解集并不是一个点。在这个解集里任何一个目标变好都会导致至少另一个目标变差。以这台 IPM 电机为例我在二维坐标系里看额定效率 − 平均转矩的帕累托前沿时发现效率从 96.2% 提升到 96.8%平均转矩会从 112Nm 掉到 101Nm。原因很直接提升效率往往要降低铜耗和铁耗意味着更粗的线、更薄的硅钢片或更大的槽面积这些都会挤压转矩输出或增加体积。如果再把转矩波动作为第三维情况更复杂。低转矩波动的方案往往来自于极弧系数偏大、磁桥偏宽的转子设计而这样的设计会牺牲一部分磁阻转矩。所以最后选方案不是选效率最高或转矩最大而是选一个综合权衡点。我在案例中选出的最终方案在帕累托前沿上位于中部偏前效率 96.5%、平均转矩 107Nm、转矩波动 6.8%。它在效率上不是最高的但转矩和波动都在可接受范围内同时体积增加了 3.2%在结构上可行。4.2 灵敏度分析给设计带来的启发OptiSlang 在求解结束后会自动生成各项响应对输入变量的灵敏度图。这比单变量扫描结果更可靠因为它考虑了变量之间的交互效应。这台电机案例中灵敏度排序非常有意思对平均转矩影响最大的是定子外径、铁心叠长和磁钢厚度三者贡献占比大约 65%对效率影响最大的是铁心叠长、定子外径、气隙长度对转矩波动影响最大的是极弧系数、隔磁桥宽度和磁钢厚度极弧系数单项贡献接近 38%。这个排序直接指导了后续细节设计转矩不足时要优先加铁心叠长或加大定子外径而不是盲目加磁钢转矩波动大时要先调极弧系数和隔磁桥宽度这些调整对其他目标的影响相对小。以前做手动调试最怕的是调一个参数影响三四个指标现在灵敏度图能帮你明确区分主次省了很多试探。4.3 选点后的 Maxwell 回代验证元模型再准终究是近似模型。所以从帕累托前沿选点后必须把对应变量带回 Maxwell 做一次真实仿真验证。我在案例中取了 10 个候选解做回代有 8 个实际结果与元模型预测的误差在 2% 以内另外 2 个在转矩波动项上误差到了 4.5%——原因是这两个方案的极弧系数靠近上限 0.9磁路局部饱和程度高元模型在该区域的拟合精度不足。处理方式是把这两个点的变量加入 DOE 样本库重新拟合一次元模型再做第二轮优化。OptiSlang 支持这种增量式更新不需要从头跑。第二轮补样本之后最终方案的预测误差就收敛到 2%以内了。4.4 鲁棒性加工公差会被放大还是抵消尺寸优化结束不等于设计完成你还要回答一个问题实际生产中尺寸公差是 ±0.05mm 甚至 ±0.1mm这些公差对性能指标的影响有多大OptiSlang 的鲁棒性分析功能能自动把公差带给随机变量然后做蒙特卡洛抽样计算出目标的分布区间。我在最终方案上做了 200 次蒙特卡洛抽样结果显示效率波动 ±0.18%平均转矩波动 ±2.1Nm转矩波动指标则明显更敏感分布在 6.2% 到 8.4% 之间。这个结果说明转矩波动目标留的余量不够。于是我把最终方案的转矩波动约束从优化目标中的 8%升级为鲁棒性评估 P95 ≤ 8%再去跑一轮鲁棒优化。多花了大约一晚上计算但拿到了一个更稳定的设计点。这里有一个很实际的经验不要只盯优化目标的标称值还要看公差下的分布否则批量阶段很容易出现小比例的性能不合格件。5. 实操踩过的坑和可复用的建议这套流程跑了不止一次踩过的坑挺多。有些问题不大但会浪费一整天时间有些则直接导致优化结果不可用。这部分挑几个有代表性的详细说说。5.1 网格自适应和几何无效样本的假优化第一次跑 DOE 时我在 300 个样本里发现有些点的结果离群得离谱比如平均转矩突然掉到 20Nm。查下去才发现是隔磁桥宽度变小后转子几何发生了自交Maxwell 用退化的网格硬算出了结果。这类样本如果混进元模型训练集会把整个响应面拉偏。解决思路有两个层面。第一在 Maxwell 建模阶段尤其是几何体对象的布尔操作要避免让隔磁桥宽度、磁钢槽倒角这些变量出现拓扑跳变。可以给几何尺寸加约束关系比如隔磁桥宽度 ≤ 磁钢槽宽度的一半或者用变量之间的内置约束写进 OptiSlang 的设计规则里。第二在 DOE 采样阶段先跑一个小批量样本比如 30 个人工检查几何是否全部有效然后再提交大样本。另外Maxwell 的有限元网格剖分失败会导致整个求解中断OptiSlang 会自动把这个样本标为failed。默认情况下它会跳过该样本但这样会在 DOE 空间里留下一个空缺。我建议在最大失败比例不超过 5% 的情况下补抽对应区域的样本填坑如果失败比例超过 10%就要回头检查几何建模约束而不是盲目加样本。5.2 磁钢厚度和退磁风险的隐性矛盾优化目标里如果只写了效率、转矩和转矩波动计算机会想尽办法把磁钢厚度往低里调因为磁钢薄了成本低、漏磁少在某些工况下效率和转矩甚至更好。但磁钢太薄会导致最严苛工况峰值电流加高温下退磁风险急剧上升。我在第一轮优化结果里就遇到过帕累托前沿上不少方案磁钢厚度在 3.2mm 以下额定点性能还相当不错但峰值工况下磁钢工作点已经低于退磁拐点了。后来我在目标定义里增加了一个 退磁余量 的约束响应具体计算方式是取峰值工况下磁钢最危险点通常靠近隔磁桥的角部的 H 值除以该温度下的退磁拐点 H 值要求这个值大于 1.2。加上这个约束后优化算法会自动避开过薄的磁钢设计方案。最终选出的方案磁钢厚度是 4.3mm比初始值略大但退磁余量有 1.28在合理范围内。这就是多目标优化的一个核心方法论目标不是拍脑袋定的而是要把所有不可妥协的工程底线都设置成约束条件。否则算法会利用你遗漏的漏洞去优化结果看起来漂亮实际却没法用。5.3 目标定义的权重和量纲陷阱OptiSlang 的 MOGA 支持给不同目标设置权重但权重不是随便填的。比如你把转矩波动的权重设成 10效率权重设成 1算法的表现可能跟你想象的不一样因为 MOGA 是基于支配关系的不是简单加权求和。如果目标之间量纲差异特别大比如效率是 0.96转矩波动是 0.07平均转矩是 107用加权和的方式很难得到有意义的折中。我建议不要直接对原始数值设置权重而是先把每个目标做归一化处理或者使用 OptiSlang 的 Target Values 方式来定义。比如效率目标设置为 97%转矩波动目标设置为 5%MOGA 会追求接近目标且不互相支配的解。这样做出来的帕累托前沿更直观后期也更容易解释给非数值仿真背景的人听。5.4 求解时间和策略的常见工程矛盾最后一个很现实的坑是时间预算。DOE 300 样本加了两层 MOGA整轮优化跑了大约 30 个小时。这个时间对项目节点来说是可以接受的但如果你用的是单个工况又误设了过细的网格时间可能翻倍。省时间的几个办法总结如下能用二维模型就优先用二维模型。很多轴向长度较长的电机二维瞬态电磁场精度足够支持尺寸优选的趋势判断DOE 阶段用二维最后再用三维做损耗分布校准。把瞬态分析的停止时间掐在稳态周期内别让每个样本都算到热平衡或机械瞬态稳定。电磁转矩、效率在半个电周期到两个电周期内就能稳定下来没必要算太长的物理时间。对 DOE 阶段的网格做中等偏粗设置判断趋势用最终选点后再用精细化网格重算一次保证绝对精度。这样出来的帕累托前沿形状基本可信且总耗时能压缩一半。写在最后这类优化流程的下一步还能怎么用尺寸多目标优化做完后同样的框架可以直接扩展到更多设计维度。比如把转子拓扑参数V型夹角、双层磁桥位置、绕组参数匝数、并联支路数也纳入变量也可以把结构强度、温升、成本这些多物理场响应加进来让 OptiSlang 同时调用 Maxwell 和 Mechanical、Fluent做真正的多学科优化。我在实际项目中比较常用的一条路径是先用这套流程做概念阶段的尺寸优选确认电机的大致包络和性能上限然后从帕累托前沿中取出 2–3 个代表性方案进入详细电磁设计阶段做绕组分布、斜极参数、冷却结构等精细化设计。这样既避免了在概念阶段耗费过多计算资源又能保证方向正确。最后再分享一个小技巧每次优化完把所有 DOE 数据、元模型文件、帕累托解集都打包存档注明电机型号、工况定义、变量范围和版本信息。后面设计同类电机时直接调出旧模型做微调不需要全流程重跑——这种积累才是这套方法真正值钱的地方。