ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

电机多目标优化:Maxwell与OptiSlang联合仿真实践

电机多目标优化:Maxwell与OptiSlang联合仿真实践 做电机设计的人都有过这种经历电磁方案改了又改Maxwell模型在角落里转圈圈一盘参数好不容易算完结果转矩纹波倒是低了效率又掉下去了最后只能在Excel里手动来回试一个项目拖上两三个星期。别问我怎么知道的我也曾在这种循环里泡了很久。我后来真正把这个问题解决掉靠的是把 Ansys Maxwell 和 OptiSlang 串起来做多目标优化仿真。说白了就是让仿真软件负责把电磁场算准让优化软件负责自动试参数、建代理模型、找权衡最优解。这个组合在工程圈里不是什么新东西但很多人要么停留在“听说过”要么卡在不知道怎么把变量、目标、约束组织成一个能收敛、能落地、能复现的优化流程上。这篇文章就把我实际跑通的思路、参数设置、避坑方法都摊开讲适合正在做电机本体设计、准备把性能指标往前推一档的工程师参考。1. 为什么是 Maxwell 加 OptiSlang而不是继续手动试算1.1 传统单点试算的根本矛盾Maxwell 本身是电磁场有限元仿真工具它能算的精度非常高转矩、损耗、电感、反电动势、磁密分布这些关键指标都能看得很细。但它的本质是“给定一个方案算出一个结果”问的是“这个设计表现怎么样”。而我们在实际做电机设计时真实的问题往往不是“这个方案行不行”而是“在这么多几何尺寸和材料参数里如何找到一组组合让转矩够大、纹波够小、损耗够低、温升还能通过”。这俩问题之间差着一整条逻辑链。传统做法是人肉试算先根据经验给一组初始尺寸算一遍看哪个指标差了手动调一个参数再算一遍再调……这种方式的痛点不只是慢。更麻烦的是电机的各个指标之间是强耦合的加大气隙能降低齿槽转矩但可能让转矩密度下滑磁钢厚度增加能提升反电动势但成本上去、漏磁也可能变大。你用手动方式去调往往刚把 A 指标救回来B 指标又崩了很难做到全局判断。1.2 OptiSlang 在流程里到底扮演什么角色OptiSlang 是 Ansys 体系里的优化与稳健性分析工具。它的核心能力不是自己算电磁场而是把 Maxwell 这种仿真求解器当成“黑盒子”一样反复调用然后替你做三件非常重要的事情设计实验、代理模型建模、多目标优化搜索。这就相当于你把“喂参数、跑仿真、看结果、判断下一步怎么改”这摊事交给了一套自动化流程。OptiSlang 会先在设计空间里用少量样本点摸清大概规律再基于这些样本训练出代理模型最后在代理模型上跑种群类优化算法找出权衡解集。对于工程师来说最大的价值不是省掉试算的苦力活而是它能把“改变尺寸–性能变化”之间的因果关系比较系统地暴露出来到底哪个几何参数对齿槽转矩影响最大哪个参数对效率几乎没有贡献变量之间有没有交互作用这些事情靠手感是没法量化的。1.3 适用范围与流程边界这套 MaxwelOptiSlang 的组合我做下来感觉在永磁同步电机、无刷直流电机、感应电机、开关磁阻电机这类电磁设计上都适用尤其是需要同时权衡多指标的永磁电机收益最明显。如果是单目标问题比如只优化一个齿槽转矩其实也可以用但有点“杀鸡用牛刀”直接参数扫描加后处理就够了。多目标优化才是这个组合的主战场。另外要提醒一下Maxwell 和 OptiSlang 只管“电磁性能”这一层。温升、结构强度、噪声振动这些虽然是高级优化里绕不开的约束但通常需要配合 Mechanical、Fluent 等工具做联合仿真。我的建议是第一次搭建流程时不要贪多先把电磁层面的效率和转矩质量做好等流程稳定了再往里叠加热和结构模块。2. 建模前的思路与关键参数化准备2.1 在 Maxwell 里把模型降到最合适的维度很多人一上来就建全模型 3D结果网格一多求解时间直接爆炸一个工况点半小时起步优化流程根本跑不动。我做优化之前最先做的事是“降维”。在能够忽略轴向端部效应、绕组分布接近理想的情况下2D 模型已经能非常准确地反映电磁转矩和损耗趋势效率高出一个数量级。对于分数槽集中绕组电机端部效应不可忽略就需要考虑 3D 模型了。即便如此还可以利用电机结构的对称性整数槽电机通常可以用一个极距或一个磁极周期作为求解域配合主从边界条件把计算量再砍一大截。2.2 哪些参数适合作为优化变量这是个特别值得花心思设计的问题。优化变量选得好流程事半功倍选不好计算量翻倍不说还容易让代理模型失真。我常用的原则是优先选择对性能指标影响大、工程上可调整、且范围明确的几何参数。以一台内置式永磁同步电机为例比较合理的变量组大概是变量说明参考范围磁钢厚度直接影响气隙磁密和反电动势原始值 ±20%磁钢宽度影响磁路饱和和漏磁原始值 ±15%气隙长度显著影响齿槽转矩和转矩密度0.3–0.8 mm 之间按工艺约束选极弧系数影响波形正弦度和纹波原始值 ±10%槽口宽度对齿槽转矩影响很大原始值 ±20%有几个参数我会刻意排除出优化变量一是绕组匝数因为它更多取决于反电动势和母线电压的匹配关系更适合单独核算二是材料牌号类参数因为优化的粒度通常是几何尺寸而不是材料选型三是安装公差类尺寸这类参数更适合放进稳健性分析里考虑而不是主优化流程。变量范围也不是拍脑袋定的。太窄则优化没有意义性能提升空间有限太宽则容易跑出一些几何上“能建出来但工艺上做不出来”的方案比如磁钢太薄到没法加工或者槽口宽度小到嵌线都困难。我的习惯是把机械加工约束、材料供应商的公差带、以及现有样机的实测数据放在一起先给每个变量一个“工艺可行域”再在这个可行域里去设优化范围。2.3 网格设置和时间步长选不对优化必然翻车Maxwell 仿真慢的问题很多时候不是软件不行而是设置不合理。瞬态场里网格和步长直接决定求解精度和时长而这两者之间要平衡。我踩过最典型的坑是转子旋转域和定子静止域分界处的网格密度不一致导致转矩波形在边界处出现非物理的抖动。后来我在分界区域做了局部加密并统一了表面三角剖分的最小尺寸波形立刻干净很多。另一个坑是时间步长设得太粗转矩纹波的特征频率都没采到后处理出来的纹波系数失真优化方向直接被带偏。对于优化流程我建议 Maxwell 端做到“够用就好”网格密度以转矩曲线平滑、相邻两次自适应加密后转矩均值变化小于 0.5% 为接受标准时间步长按电机极对数与转速换算出的电频率保证每个电周期至少 200 个采样点。不要在一开始追求极限精度否则优化循环里每个样本点都会成为时间黑洞。2.4 输出指标怎么定义才会不打架输出指标的选择和定义直接决定优化方向。我一般会把指标分成“目标”“约束”“观察项”三类。目标是要优化的性能比如转矩纹波、铁耗约束是必须满足的边界比如平均转矩不低于某个下限、气隙磁密不高于某值观察项是暂时不参与优化、但需要留档查看的量比如某些点的磁密云图或者局部饱和程度。需要注意的是Maxwell 的默认输出是瞬态曲线不是单一数值。我们在 OptiSlang 里做目标函数时要利用后处理脚本把瞬态数据转成标量指标转矩取周期平均和峰峰差损耗取稳态后的周期平均反电动势可以算 THD。这个“从曲线到标量”的过程虽然不复杂但要提前做好否则优化跑到一半发现目标函数取值异常回头查原因会非常麻烦。3. 实操过程从 DOE 到代理模型的完整套路3.1 整体流程分几步走我把整个优化流程拆成了五段参数化建模、DOE 采样、仿真批处理运行、代理模型拟合与检验、多目标优化搜索。流程开始前先在 OptiSlang 里把 Maxwell 模型关联好通过参数映射把变量传给 Maxwell 官方脚本接口等每个样本点的仿真算完后再把结果指标读回优化流程。第一阶段不要急着优化。先用 DOE 采样跑一批样本目的是了解设计空间中各点的响应值。样本量取决于变量数变量在 5 个以内我通常取 30 到 50 个样本变量到 8 个以上样本数就得加到 80 到 120。这里有个经验代理模型的精度上限是样本量和分布决定的不是算法决定的所以样本量省不得。3.2 DOE 方法选择不是所有抽样都叫实验设计DOE 方法里最常用的几个选项是随机抽样、拉丁超立方、以及自适应抽样。我建议不要一上来就随机抽样它能覆盖到的空间太不均匀容易出现一堆点挤在一起、另一些区域一片空白的情况。拉丁超立方是一种分层抽样的升级版能把设计空间划分成网格在每个网格里只取一个点保证点的分布比较均匀非常适合给代理模型提供信息。自适应抽样是我个人更推荐的做法。它的逻辑是先跑一部分样本对响应面变化剧烈的区域加密加点对那些平坦区域减少点数这样同等样本量下代理模型的精度会比均匀抽样明显高。工程里我们往往不知道哪里响应变化剧烈自适应抽样相当于让算法帮我们“勘探”了一遍设计空间省时间也省计算资源。3.3 代理模型Kriging 与响应面的取舍代理模型的本质是用一个数学函数去近似原本需要有限元仿真才能算出的映射关系。有了代理模型优化算法就可以在毫秒级完成成千上万次评估不然每次评估都要调一次 Maxwell整个优化流程会慢到没法用。我试过两类常用的代理模型一是响应面模型另一个是 Kriging。响应面模型、尤其是二阶多项式响应面优点是简单、稳健、训练快在处理近似线性的问题上效果很好但当响应存在强非线性或局部突变时拟合误差会比较大。Kriging 模型则通过半方差函数描述空间相关性对非线性响应、尤其是转矩纹波这种波动剧烈的指标拟合能力明显更强。我的选择原则是先同时训练多种代理模型比较交叉验证的误差指标再选最优的那个作为优化用模型。交叉验证时主要看 R² 和均方根误差R² 在 0.95 以上就算可接受低于 0.9 就需要增加样本点或者换模型类型。经常有人在优化结束后发现最优解回代到 Maxwell 里算出来与代理模型预测差异很大八成就是代理模型精度验证这步没做扎实。3.4 一个完整案例的参数和结果记录我以一款用于工业伺服的内置式永磁同步电机为背景把实际搭建过的优化框架列出来供大家参考优化目标 1额定工况下转矩纹波最小化优化目标 2额定工况下铁耗与永磁体涡流损耗之和最小化约束条件平均输出转矩 ≥ 6.8 N·m设计变量磁钢厚度、磁钢宽度、极弧系数、气隙长度、槽口宽度共 5 个DOE 样本拉丁超立方初始 40 个自适应加 20 个合计 60 个每个样本点做两个工况一个额定转矩工况一个峰值转矩工况全程大约跑了一夜。代理模型精度的交叉验证结果转矩纹波的 R² 为 0.96损耗的 R² 为 0.98基本满足工程使用。最后优化得到的一组均衡解转矩纹波比原始方案下降了约 34%损耗降低了约 11%平均转矩仍然满足约束。值得注意的是这组解对应的磁钢厚度比原始方案略薄极弧系数略有增加这种变量之间的平衡关系靠手动调参很难自然地摸到。4. 多目标优化算法与 Pareto 权衡如何从一组解里选“唯一解”4.1 为什么不能把所有目标加权成一个数我在早期跑优化时总想着把两个目标简单加权成一个综合指标这样变成单目标优化用一个函数就能收敛。但实操下来发现这是个大坑加权系数的设置非常主观凭什么纹波权重是 0.6、损耗权重是 0.4这个权重直接决定最终最优解的走向而且不同量纲目标直接相加本质上是让算法去平衡两个完全不可比的量结果经常是某个目标脱颖而出另一个目标被牺牲掉。多目标优化的正确打开方式是求 Pareto 前沿解集。它的意思是找到一组解在这个集合里任何一个解都不能在不牺牲至少一个目标的前提下让另一个目标变得更好。换句话说Pareto 前沿上的每个点都代表一种“效率与纹波之间的权衡方式”是工程意义上的公平竞争解。4.2 工程上如何从 Pareto 前沿里挑出最终方案Pareto 前沿是一整条曲线但最终落到图纸上的只能有一个方案。我的选择方法分为三步第一步排除物理上不合理的点。有些 Pareto 点虽然性能指标很漂亮但磁钢厚度过薄冲片加工有难度或者气隙过小装配公差根本保证不了。这类点直接剔除。第二步引入“末级筛选”。以温升为例把损耗换算成功率密度和散热条件估算绕组温升是否在绝缘等级允许范围内。如果最优点损耗低但磁密高、铁耗集中在局部区域局部过热的风险仍然要大打折扣。把这类工程判断叠加上去之后Pareto 前沿上剩下的候选点往往已经缩小到三五个。第三步做一次实物样机的可制造性评审确认冲片模具的可行性、磁钢装配顺序、绕线槽满率等细节最终敲定方案。这一步做下来得到的方案不仅是仿真最优的也是工程上可实现的两者兼得。4.3 优化算法的参数怎么设置多目标优化的核心算法我用的比较多的是 NSGA-II 这类带精英保留策略的非支配排序遗传算法。它的原理可以这样理解一代代地保留“性能好的、且互相不支配”的解同时保持种群多样性防止算法过早收敛到某个局部区域。在 OptiSlang 里设置这类算法时我一般把种群规模设在 50 到 100迭代代数设在 100 到 200 之间。代数太少搜索不充分代数太多时间成本高且后期收敛增益不大。对于大多数电机设计问题这样的参数组合已经足够。另外一个容易被忽略的参数是“约束处理方式”。优化时如果约束条件是硬性的算法会把约束违反视为比目标值更优先的判据这样搜索效率会低但能得到明确满足约束的解。如果约束接近极限、对结果的影响不敏感可以放宽为软约束让算法在边际解附近多探索一部分空间。我的建议是关键约束比如安全性和标准强制的量用硬约束次要约束用软约束这样能兼顾稳定性和探索能力。5. 常见问题与排查技巧实录5.1 Maxwell 仿真很慢怎么定位瓶颈经常有人问我“Maxwell 仿真很慢是不是软件有问题”绝大多数情况不是是模型和设置的问题。我排查时会按下面的顺序来先看是不是 3D 模型加全模型。如果是优先改为 2D 对称模型很多时候能提速 5 到 10 倍。再看网格数量如果网格剖分出来超过几十万甚至上百万单元而又没有加密的必要那重点检查气隙和磁桥这些局部位置的网格设置不要对全局加密局部加密就好。然后看时间步长和仿真时长如果为了等转矩稳定多仿真了很多机械周期实际只需要一两个周期截掉多余部分能省大量时间。最后看电脑硬件配置内存不足时求解器会频繁使用交换文件整个计算会变得很慢。这个往往是最后一个排查的点但很多人一开始就怀疑硬件不行反而忽略了模型本身的低效。5.2 优化过程中跑出来很多无效样本优化流程跑着跑着可能出现一批样本点求解失败或结果异常。原因通常是参数组合进入了几何退化区域比如磁钢宽度太大与磁钢厚度组合后在转子桥部形成了极小角度网格剖分时出现奇异性直接导致求解不收敛。我处理这类问题有两个对策第一在 OptiSlang 的参数映射里加上几何有效性判断那些会让模型产生退化几何的样本点直接在进入求解器前拦截掉不要浪费一次仿真第二在变量范围设置时预留一定安全距离不要把上限或下限卡在几何约束的临界点上留出 5% 到 10% 的余量能规避绝大多数几何奇点问题。5.3 仿真结果和实测偏差较大时的排查方向仿真和实测有偏差是常态但偏差大到离谱时就要排查原因了。我常遇到的情况有三种。第一是材料参数问题B-H 曲线只给了磁化曲线的一部分或者硅钢片损耗系数用的是默认值导致铁耗算出来和实测差一个数量级。解决办法是从供应商拿到完整的 B-P 损耗曲线在 Maxwell 材料库里按实测数据重新拟合。第二是边界条件设置问题主从边界或周期边界方向反了或者求解域只建了一半但对称轴选错都会让计算结果异常放大或缩小。第三是后处理取数位置不对转矩波形取的是包含启动过程的整个瞬态而不是稳态后的周期平均值里混入了非周期分量纹波指标自然不准。这类问题只要对曲线做“稳态截取”处理就能解决。5.4 给新接触这套流程的人三条实在建议如果让我给第一次搭这类流程的同行说几句实在话我会说三件事。第一不要试图一上来就把所有指标都放进优化目标。第一次跑通流程时只保留两个目标加一两个硬约束先把链路跑通确认代理模型精度和优化结果合理之后再逐步增加目标和约束。链路都没通就去追求大而全时间都烧在排错上了。第二样本点结算前一定要看一眼指标分布范围。打开 DOE 的结果统计确认这些指标的变化幅度是不是符合工程直觉。如果所有样本点的损耗几乎没有变化那说明该变量或该工况下损耗受变量影响很小后续这个目标对优化的贡献就有限需要考虑换目标或换工况。第三保留好优化过程中的每一步数据。Maxwell 的每一步求解结果、代理模型的训练数据、交叉验证结果、Pareto 解的集合全都要按批次保存。等样机测试数据回来之后把实测结果和仿真结果放在一起对比可以帮助你校准下一轮优化的模型参数。这个数据积累过程的价值会随着项目越做越多成倍放大。6. 一些补充心得跑了几轮优化之后有件事我体会特别深多目标优化的意义不在于“找到绝对最优解”而在于帮我们把原本隐藏在直觉和经验背后的设计空间打开给你看。你会发现原来转矩纹波最低的方案并不是效率最高的方案原来磁钢厚度减少一点对转矩密度的影响并没有想象中那么恐怖原来槽口宽度和气隙长度之间存在明显的交互效应。这些认知一旦建立以后再做改型和平台化设计时你一开始就能把变量范围收敛到比较有希望的区域少走很多弯路。另外一个比较实用的扩展方向是稳健性分析。优化出的方案是“理论最优”的但实际生产里磁钢性能有批次偏差、气隙有装配公差、材料温度特性会漂移这些因素叠加起来可能让性能大幅偏离仿真值。用 OptiSlang 的稳健性分析功能可以在最优解附近做一个容差带扫描评估方案对制造偏差的敏感度然后稍微牺牲一点理想性能、换取更大的稳健性空间。对于量产产品来说这种“退一步”往往比追求纸面最优更贴近工程现实。这套流程本身不难难的是把每一个环节都做得足够扎实变量选得合理、DOE 采得充分、代理模型验得严谨、Pareto 选点过得工程关。把这几点做到位Maxwell 和 OptiSlang 的组合就能真正成为电机设计里一个从算例走向决策的环节而不是“跑个优化玩玩”的演示工具。
返回列表