用 Claude Code 驱动 ANSYS Maxwell:轴向磁通电机仿真的两个月

从 Baffalo 的 MATLAB 有限元库起步,转到 Maxwell 和 Motor-CAD,先把一台单环轴向磁通电机做到图纸点,再立项双环同心电机。399 条工作日志里最值钱的,是三次被自己的模型骗到的经历。

用 Claude Code 驱动 ANSYS Maxwell:轴向磁通电机仿真的两个月

今年 7 月初到 8 月中,我用了大约六个星期,让 Claude Code 替我操作 ANSYS Maxwell 和 Motor-CAD,把一台电摩用的轴向磁通永磁电机从"查资料"做到了"图纸点",又把第二台更野的双环同心电机立了项,算完了电磁基线和一轮损耗治理。两个项目的工作日志加起来超过六百条,单环的记在交接档案里,双环的 399 条在一个 Markdown 文件里。绝大多数解算是我不在电脑前的时候跑的。这篇写一下这套工作方式是怎么一步步搭起来的,以及三次被自己的模型骗到的经历,因为那三次比任何一个漂亮的数字都更值得记。

项目初期用 Codex 渲染的双环电机概念图
图 1:项目初期让 Codex 渲染的双环电机概念图。两片碳纤维转子盘夹一个定子环,外环(红、深蓝磁钢)和内环(橙、青)同心布置。概念示意,不是最终几何。
双环同心轴向磁通电机架构图
图 2:双环架构。左边是轴向剖面:两片碳纤维转子盘,中间是外环定子和内环定子,之间隔一条隔磁带;右边是转子侧的正视示意。这张图是 agent 在立项当天用 SVG 画的,后来进了 PPT。

先把工具链跑通:Baffalo 不是电机工具

7 月 3 日晚上我把仿真猫的 FE-Berserker/Baffalo 部署到了本机。那是一套 MATLAB 参数化有限元工具箱,我原本的想法是靠它做电机的结构侧,电磁侧再看。第二天让 agent 做了一轮 deep research,结论很快就清楚了:Baffalo 里根本没有电机模块,之前和 Gemini 聊出来的那个"轴向磁通 demo"是它编的;工具箱能做的电磁只有永磁轴承和磁力耦合,走的还是 FEMM 2D。真正能做 3D 轴向磁通电机的,是本机已经装好的 ANSYS Maxwell 加 PyAEDT。

于是路线就定了:RMxprt 做分钟级的批量扫描,Maxwell 2D 切片做小时级的对账,3D 只用来做最后的定案。第一天就吃了两个苦头。一是 Electronics Desktop 2025 R2 算到一半弹窗崩溃。二是 agent 自己从零画的几何过于简单,我后来在对话里直接说过,自己随便建的模型往往缺东西,和现实中的电机差距很大,于是定成规矩:建模一律从官方模板和成熟算例改起,禁止脚本手搓。7 月 8 日我把 2025 R2 整个卸掉换成 2026 R1,agent 用 RMxprt 重新起了模型。

接下来一个多星期是老套路:双转子还是单转子(选了双转子直驱轮毂,省掉一级减速箱)、极槽、每槽导体数、磁密门、材料牌号。agent 用 RMxprt 当代理模型扫了 813 个样本,挑出 id430 这一族,换成材料库里的真牌号重算,最后 7 月 13 日定在第二代的 id861:40 极 48 槽,额定 700 rpm 下 68.2 N·m,效率算在 96% 上下。这一段的所有文档打包成了一个交接包,三十多份档案,后来成了第二个项目的起点。

这里有一条我一直在用的规矩,是 7 月 12 日一次争执之后定的。agent 为了省事给材料手搓了一个"等效牌号",被我发现:反电势误差 2%,铁损误差 15%。从那以后,材料只允许用库里的真牌号;设计门和判据也只能标"提案待批准",拍板的人是我。

两个月、两台电机的时间线
图 3:两个项目的时间线。上方是单环,下方是双环。

第二台电机:双环同心

7 月 17 日我决定做一台更有意思的:还是单定子双转子的轴向磁通结构,但在一个盘面上放两个不同直径的同心电磁环。外环极数多、力臂长,负责起步和爬坡的大扭矩;内环极数少,负责高速巡航。两个环各接一台逆变器,相当于一个电子变速箱。按当时的检索,市面上找不到同构的商用产品,只有几家做轴向堆叠或磁齿轮的厂商算近邻。

之前和 Gemini 聊过三十多项技术,我只定了碳纤维转子盘、Halbach 阵列、分块定子这几样,其他的全部进技术库,按代际排队。agent 第一天就建了十几份档案:章程、拓扑基线、技术库、规格框架、仿真计划、专利调研,后来一共 17 份。我给文档定的规矩只有两条:研究过的技术无论采不采纳都进 PPT,并留下决策依据;所有裁决都要图形化、数据化。到 7 月底,PPT 已经 85 页、45 张图,图是 agent 写 SVG 再渲染出来的。

让 agent 真的去操作 Maxwell

一轮 3D 瞬态解算要几小时到十几个小时。我白天要重启机器,晚上常常不在,电源也不总是稳。所以这个项目真正的工程量,有一半在"让解算在我不在的时候可靠地跑"上。最后定型的办法是这样的。

无人值守的解算闭环
图 4:无人值守的解算闭环。Claude Code 写脚本,常驻的 AEDT 服务跑解算,结果写成锚文件回到工作日志;守护脚本只管活性、熔断和重燃;我只管定门和拍板。
  • Maxwell 以无界面的常驻服务跑着,脚本通过 gRPC 连上去,用的是 PyAEDT 1.2 的接口。界面只在我需要亲手点什么的时候才开。
  • 每个解算任务是一条接力链:准备工程、点火、看护、提取,四步各自幂等。每一步做完写一个 json 锚文件,链被打断后重跑,看到锚就跳过。
  • 一个守护脚本盯着服务:进程还在,或者结果文件十分钟内有更新,就算活着;超时就 kill 掉残留、重燃一次,再死就停下来等我。熔断必须带 kill,这一条是一次解算进程成了孤儿之后补的。
  • 每轮解完,提取脚本把报表导成 csv,agent 读完写一条日志:条件、数字、判决。到 8 月 13 日写到第 399 条。

有两个关于算力的结论花了不少时间才确认。一个是 CPU。我反复在对话里说"CPU 负载不高,可以并行",agent 试了把一个任务拆成两个一起跑,结果反而慢了 1.85 倍,最后定成一切解算 14 核单任务,靠串行队列把时间填满。另一个是 GPU。Maxwell 的磁瞬态确实支持 GPU,但有效门槛在两百万自由度以上,我们的模型只有六十几万个四面体,独显就是闲着的。这个结论是查了官方资料和论坛之后才死心的。

终端里的一次对账汇报
图 5:8 月 2 日的一条终端汇报。把 Motor-CAD 界面里的真值和脚本批量账逐项对了一遍,偏差 0.3%。这类对账是我敢相信批量数据的前提。

三次被自己的模型骗

第一次是维度。 7 月下旬做定子微槽的时候,2D 切片算出来齿尖微槽有可观的扭矩收益,漂亮得不像话。拿到 3D 一跑,结果反转,前后差了 18.9%。后来我们把这类事统称为维度伪影,定了一条铁律:2D 齿尖收益不允许跨维引用,2D 只做横向比较,绝对值一律以 3D 为准。

第二次是记账。 7 月 27 日到 30 日,agent 想把 Halbach 的极间填隙块加进 3D 瞬态工程,验证增益。连着几轮,扭矩读数都涨了一半以上,但反电势一动不动。恒流驱动下扭矩涨、反电势不涨,物理上说不通。最后 agent 做了一个对照:把填隙块的材料换成真空,几何、网格、运动全部不变。真空块不可能改变物理,可扭矩读数还是基线的 1.968 倍。结论是 Maxwell 在解算时把新加的体自动收编进了运动名单,扭矩被双重记账了。这条路线三天里反复了五六轮全败,7 月 30 日我拍板封存,Halbach 的增益改走 Motor-CAD 2026 R1 新出的轴向磁通模块去验证,那边原生支持 Halbach。

Motor-CAD 里的磁密图
图 6:Motor-CAD 原生模型的气隙附近磁密分布,两个极距。Halbach 环、3 mm 薄背铁、N55 磁钢、1 mm 气隙。

Motor-CAD 这条线反而走得顺:按需要从头建一个原生的单定子双转子模型,Halbach 的干净增益实测 +18.1%;3 mm 薄背铁的代价是 −16%,因为自屏蔽不完全,这成了一个要我拍板的设计项。一夜跑了 300 点 DOE,扭矩和反电势几乎是一条直线,门就卡在电压上。

300 点 DOE:扭矩对反电势
图 7:一夜跑完的 300 点 DOE。横轴是相反电势,纵轴是额定点扭矩,红色虚线是电压门。扭矩和反电势几乎线性,意味着这一代的瓶颈不在磁路,在电压。

第三次是对照组。 8 月 2 日做双环合体的 3D 静磁验证时,单环工程和合体工程的气隙磁密对不上,差了 18.6%。agent 先后怀疑过串扰、收敛、边界条件,甚至把单环工程"修"坏了一版。最后回读两个工程里磁化坐标系的轴向量,才发现问题在新写的合体脚本里:坐标系的 X 轴被写成了径向,而 Halbach 磁化需要的是切向。单环工程六天来一直是对的,坏的是那个被拿来当判官的对照组。改回去之后,合体和单环的内环结果只差 0.05%,双环之间的磁串扰基本为零,连通的背铁也不需要分段。这一课的教训很朴素:调试用的对照组自己必须先过验证门,跨脚本复制的几何函数必须 diff 原版。

Maxwell 3D 里的 Halbach 场图
图 8:Maxwell 3D 的扇区模型和磁密云图截图,Halbach 阵列的一个极对。这类截图每轮解算后都自动导出,用来目检几何有没有建错。

数字落定在哪里

8 月 2 日拍板把磁体厚度从 10 mm 加到 13 mm 之后,双环系统的 2D 口径账是额定点约 2100 N·m、峰值约 3270 N·m;3D 瞬态复核外环比 2D 高 9.7%、内环高 4.1%,系统 3D 扭矩 2275 N·m。

磁体厚度的决策图
图 9:磁厚选型的决策账。左边是 2D DOE 里磁厚对扭矩的趋势,边际收益递减;右边是 3D 复核,净增益 +4.17%。这种"一张图一个裁决"的图,项目里有 45 张。

8 月 5 日到 7 日是一串验证。退磁:峰值电流下最劣裕度 0.486 T,对 N55 常温膝点 0.70 T 过门。轴向磁拉力:单侧 36.5 kN,两侧对拉,转子偏移 0.1 mm 对应 −19 kN/mm 的负刚度,这个数直接给了结构和工装。电感:Ld、Lq 几乎相等,凸极比 1.02,控制走 id=0 就行。齿槽转矩:外环 63 N·m 峰峰值。最大的发现在铁损那一账。定子铁损 909 W 还好,磁体涡流 3125 W,是 2D 账的 8.5 倍,因为 2D 轴对称模型天然抓不住分数槽集中绕组的空间谐波和盘式电机的端部效应。效率从 2D 的 94.4% 掉到 3D 修正后的 93.2%。更要命的是转速到 1400 rpm 时磁体涡流达到 12 kW,而 N55 的磁温红线只有 60°C。涡流治理从效率优化变成了磁体能不能活下来的问题。

一周的涡流治理

8 月 9 日到 13 日,agent 按我"三个梯队都记下来,一项项验证"的要求排了 22 个解算,每一个方案都真跑 3D 瞬态。

  • 磁体径向切 2 段。理论上损耗按段数的平方降,应该是四分之一,实测只有 1.56 分之一。原因是磁体块周向本来就窄,涡流主环沿径向长边走,径向切只截到短边。这是拍板数字的一次重大修正。周向切缝的几条路线则撞上网格器的 band 映射失败,静默回退后扭矩崩掉近两成,判废。
  • 磁性槽楔。线性材料下抑制随 μr 单调上升,μr 到 20 时抑制 44.7%。可一换成带饱和拐点的真实铁粉复合材料 BH 曲线,抑制只剩 3.6%:0.2 mm 的盖板直面 1 T 的主磁通,早就饱和了。纸面上限归零。
  • 钢靴。用 Hiperco 薄片盖住槽口两缘。开口从 10.7 mm 收到 6.7、5.0、3.5 mm,抑制分别是 /1.43、/1.66、/1.80,扭矩反而 +0.71%、+0.47%、+0.08%。3.5 mm 是甜点,再收扭矩转负。
  • 组合。钢靴加径向 2 段:外环 2250 W 降到 747 W,内环 875 W 降到 276 W,系统 3125 W 降到 1023 W,扭矩代价 0.4%,齿槽转矩顺带 −51%,负载纹波 −58%,退磁裕度还各改善了 0.03 T。
磁体涡流治理四步
图 10:涡流治理四步的实测账。柱高是磁体涡流损耗,柱内是扭矩变化。
钢靴模型
图 11:Maxwell 里的钢靴模型。绿色是定子齿,蓝色薄条是盖在槽口两缘的 Hiperco 片,0.2 mm 厚。

8 月 13 日我让另一个会话做了一次独立审计,对照日志和磁盘上的结果复核电磁、机械和物理判断。审计提了一个我得记住的点:模型里的"钢靴"是嵌在气隙里的 0.2 mm 盖板,是数值实验,不是一个可以直接打样的齿靴形状。所以这个主案现在停在"等我拍板",而不是"定版"。

两个月之后

从 8 月 13 日起这个项目就停在第 399 条日志上,等我决定主案和下一代的几个设计项。回头看,这套方法真正省下的不是写脚本的时间,而是等解算的时间:人睡觉,机器算,早上看日志。代价是你得给 agent 立规矩,而且规矩几乎都是用一次事故换来的:材料只用真牌号,门归我拍板,每次调整当场验证,对照组先过门,2D 不替 3D 说话,熔断必须带 kill。

还有一个问题没动:双环的控制器。两个环之间怎么配合、外环高速时怎么不靠弱磁解列、怎么用内环抵消外环低速的齿槽感,这些在文档里只有调研,还没跑过一个仿真。那是下一篇的事。

// ABOUT THE AUTHOR · TANG
色彩科学(Color Science)专业出身,日常从事软件开发、AI Agent 与嵌入式硬件工程,同时负责科技领域的 VC 金融投资与技术尽职调查(Due Diligence)。习惯用实测数据、第一性原理与可复现的工程细节说话。
← 上一篇 修一只坏 U 盘那晚:FC3532 + N18,和我对"重读"的三次理解偏差 下一篇 → 比 Vibe Coding 键盘更进一步:把 Claude Code 塞进便携微型键盘与彩色电子纸