本文件是项目的核心知识沉淀,供人和任何 AI 工具阅读使用。 全部结论均经实测验证 (2026-08-25, Motor-CAD 2026R1);每条坑都真实踩过。 入口文件: 仓库根 AGENTS.md (AI) / README.md (人)。
| 项 | 值 |
|---|---|
| Motor-CAD | 2026R1 (v261); 原机: E:\Program Files\ANSYS Inc\v261\motorcad\MotorCAD.exe; 复现机(2026-08-26): D:\Program Files\ANSYS Inc\v261\motorcad\MotorCAD.exe |
| 定位方式 | 环境变量 MOTORCAD_ACTIVEX → activex.bat → exe 路径 (PyMotorCAD 自动发现); activex.bat 在 GUI 内 Defaults→Automation→Update to Current Version 后生成于 %APPDATA%\Ansys\v261\motorcad\activex.bat; 未注册时脚本内用 set_motorcad_exe() 回退 (axial_force_final.py 已内置, MOTORCAD_EXE 可覆盖) |
| Python | 3.12 (系统), pip install ansys-motorcad-core; 或直接用 Motor-CAD 自带 Python (含 pymotorcad 0.8.4, 免安装): <安装根>\v261\motorcad\Python\Python\python.exe |
| 许可证 | FlexNet: ANSYSLMD_LICENSE_FILE=1055@localhost (机器级环境变量), lmgrd + ansyslmd vendor daemon 都必须在跑; 无许可时 Motor-CAD 启动后 ~30s 静默退出, pymotorcad 报 psutil.NoSuchProcess —— 见此报错先查 ANSYS License Management Center (http://localhost:1084) |
| 非登录 shell 陷阱 | Kimi/Cursor 等 AI 工具的 shell 可能不继承机器级环境变量 (MOTORCAD_ACTIVEX / ANSYSLMD_LICENSE_FILE 为空); 运行前 export MOTORCAD_ACTIVEX="%APPDATA%\Ansys\v261\motorcad\activex.bat" 和 export ANSYSLMD_LICENSE_FILE=1055@localhost |
| 单次电磁求解耗时 | 88~112 s (原机) / 151 s (2026-08-26 复现机) |
| PDF 排版 | Edge 无头: msedge.exe --headless=new --print-to-pdf=... (中文文件名会失败, 用 ASCII 名; 用 cmd /c 包住避免 PS 5.1 stderr 包装) |
| PDF 目检 | pip install pypdfium2 pillow, 渲染 PNG 后人工/AI 看图 |
| 注意 | python 脚本退出后 Motor-CAD 进程可能随之退出, 属正常 |
| 窗口不可见陷阱 | pymotorcad 用 MotorCAD.exe /PORT=n /SCRIPTING 启动, 该模式默认主窗口隐藏 (2026-08-26 双机 Win32 API 实测: 主窗口 IsWindowVisible=False, 任务栏图标是坐标 −32000 的代理窗口, 故"有图标但点不开")。脚本已在启动后调 mc.set_visible(True) 强制可见 (实测有效: 调后主窗口可见且在屏内); 对已在运行的隐形实例跑 python show_motorcad.py 召回 (attach 不新开实例、不打断求解)。若可见后仍找不到 = 真·挪到屏幕外: 点任务栏图标 → Win+↑ 最大化拉回 |
Motor-CAD 2026R1 对轴向磁通电机 (AFM) 的轴向力没有输出变量、没有 2D 结果图、chm 帮助全文无 "Axial Force" (110MB chm 反编译验证过)。唯一入口:
mc.get_magnetic_3d_graph_point(graph_name, section, node, timestep)
# graph_name ∈ {Fr|Ft}_{Rotor|Stator}_{OL|OC}_Lumped
x[-1]-x[0]==360 则丢末点)。AFM_SectionCentreRadius_Array[i]。ElectromagneticForcesCalc_Load=True, ElectromagneticForcesCalc_OC=Truemc.do_magnetic_calculation()。| 参数 | 语义 | 本模型值 |
|---|---|---|
Magnet_Length |
磁钢轴向厚度 | 3 mm |
Magnet_Thickness |
磁钢环径向深度 (=(D_out−D_in)/2), 不是厚度! | 13 mm |
Magnet_Arc_[ED] |
极弧 (电角度) | 121° (=24.2°mech, 67.2% 覆盖) |
Pole_Arc |
其它转子类型参数, 本模型不生效 | 150 (勿误读) |
CurrentDefinition |
1=RMS 口径 → 改电流设 RMSCurrent, 改 PeakCurrent 无效且不报错 |
1 |
Magnet_Temperature |
磁钢温度, 模型默认 100°C (热态) | 100 |
Magnet_Br_at_20 / Magnet_TBr_Coeff |
Br 及温度系数 | 1.31 T / −0.12 %/K |
AFM_SectionCentreRadius_Array |
径向切片中心半径 | 28.25 / 34.75 mm |
温度定律 F∝Br² 经实测精确成立 (100°C 实测 343N ↔ 由 20°C 折算 340N, <1%)。
get_magnetic_graph_point(名, 0) —
"Graph name does not exist" = 图不存在; "No points exist" = 存在但未求解。
注意: 某些图 (力图) 需先打开对应计算开关才注册。_Axial_Force_Rotor)、GUI 文案, PowerShell 正则可提取。<模型名>\MessageLogs\*.txt) 记录每次 pymotorcad
调用, 但重复错误行会被抑制, 缺行不代表没调用。get_magnetic_graph(整线 API) 在 v261 上不可靠,
用 get_magnetic_graph_point 逐点读。git add + 运行前先 commit。axial_force_final.py: 改 MOT_SRC; 从新 .mot 里 grep
AFM_SectionCentreRadius_Array 更新 SEC_RADII_MM; 节点数自动探测无需改。python -X utf8 axial_force_final.py (Motor-CAD 前台弹出,
~2 分钟; --quit 自动关闭)。axial_compare.py (扫气隙+有限差分)。docs/report_axialforce_V2.html 改数据数组 →
Edge 无头出 PDF → 文件名带新版本号, 旧版保留。模型 MARS-12S10P_SSSR_D76-C150_V5.0-0819.mot (12槽10极 SSSR, 气隙1mm,
磁钢 3mm/67.2%, 5000rpm, 21A RMS):
| 工况 | 转子净轴向力 (指向定子) | 数据文件 |
|---|---|---|
| 100°C, 1.0mm, 空载 | 342.9 N (纹波峰峰 3.5N) | axialforce_final_0825_212518.json |
| 100°C, 1.0mm, 负载 21A | 343.2 N (+0.1%) | 同上 |
| 20°C, 0.6/1.0/1.5mm 空载 | 513.1 / 416.5 / 326.7 N | compare_results_0825_215456.json |
| 磁负刚度 @1mm, 20°C | ~207 N/mm (中心差分) | 同上 |
对照《轴向磁拉力计算与轴承选型校核报告 V3.0-20260826》(解析法, 仓库根): 同温度基准下 FEA/解析 = 0.85~0.86 (三气隙稳定) —— 磁路法系统性偏高 ~16% (不计齿槽/边缘/侧漏), 结论"对得上"; 轴承结论链 (708AC 疲劳寿命不足 → 推荐 7004AC) 双方互证。唯一修正建议: 600N 设计载荷依据应为 "低温+气隙公差包络 (最恶劣 −20°C+0.6mm ≈563N)", 而非"电枢反应+20%" (FEA 实测仅 +0.07%)。详见 docs/COMPARISON_V3.md。
另一台机器 (Motor-CAD 装于 D: 盘, 无 MOTORCAD_ACTIVEX 初始注册, 需先修许可)
按 SOP 原样重跑 axial_force_final.py, 求解 150.9 s:
| 工况 | 转子净轴向力 | 与 08-25 定版比对 |
|---|---|---|
| 100°C, 1.0mm, 空载 | 342.9 N (纹波峰峰 3.53 N) | 完全一致 |
| 100°C, 1.0mm, 负载 21A | 343.2 N (纹波峰峰 3.87 N) | 完全一致 |
三判据全过: 作用-反作用偏差 1.70%/1.69% (<5%), 转矩交叉 0.505 vs 0.522 Nm (3.2%, <10%), 解析 485 N ≈ 1.41× FEA (同量级)。 数据: axialforce_final_0826_130316.json。结论: 方法与结果跨机可复现。
--quit 显式关闭)。5 轮探测的完整过程见 git 历史 (dc56046→22658e4) 与
docs/CONVERSATION_LOG.md。速览: 猜变量名(败) → 报错文案筛查法(建立) →
114 图名全不存在 → 图 ID 枚举锁定 51 条波形无一像力 → 开力开关后按径向机
命名惯例猜 3D 图 → Fr_Rotor_OL_Lumped 命中。教训: 未知输出先建立
"存在性探测"手段, 再穷举; 对照组 (已知图) 必不可少。