REPRODUCE.md 3.2 KB

复现指南 — MARS SSSR 轴向磁拉力仿真

交给同事跑之前请通读一遍;整个流程一条命令,约 2 分钟,原始 .mot 不会被修改。

1. 环境要求

要求 验证方法
系统 Windows
Motor-CAD 2026R1 (v261),安装器会设 MOTORCAD_ACTIVEX 环境变量 echo %MOTORCAD_ACTIVEX% 应指向 activex.bat
Python ≥ 3.10 python --version
PyMotorCAD pip install ansys-motorcad-core python -c "import ansys.motorcad.core"

2. 获取项目

复制整个 motionpushpull 目录(含 .git,git 历史里有全部踩坑记录)。 关键文件:

  • MARS-12S10P_SSSR_D76-C150_V5.0-0819.mot — 原始模型(只读使用)
  • axial_force_final.py唯一需要运行的脚本
  • axial_probe*.py / axial_force_run.py — 探测数据口的历史过程,无需运行
  • RESULTS.md — 上次运行的结果与方法要点
  • docs/CONVERSATION_LOG.md — 完整过程记录

3. 运行

python -X utf8 axial_force_final.py
  • Motor-CAD 会前台弹出(保持前台是本项目约定),求解约 88 s;
  • 结束后 Motor-CAD 保持打开供人工检查;要自动关闭加 --quit
  • 按项目纪律:改动脚本后、运行前先 git commit

4. 读结果

控制台末尾两行 [结论],例如:

[结论] 负载(RMS 21A) 转子净轴向力: 均值 343.2 N, 纹波峰峰 3.87 N
[结论] 空载 转子净轴向力: 均值 342.9 N, 纹波峰峰 3.53 N

文件输出(output_motorcad/,git 不入库):

  • axialforce_final_<时间戳>.json — 全部波形 + 校核数据
  • axial_force_<时间戳>.csv — 净轴向力时间序列(31 步/电周期)
  • MARS_SSSR_axialF_<时间戳>.mot — 求解工作副本

5. 结果判定(三项都过才采信)

  1. 作用–反作用checks.action_reaction_*imbalance_pct < 5%;
  2. 转矩交叉sum_Ft_x_r_Nm_t0torque_graph_mean_Nm 偏差 < 10%;
  3. 解析量级analytic.F_est_N 与 FEA 值同量级(解析式系统性偏大约 1.4×属正常)。

6. 已知坑(都踩过,勿重复)

  • 电流是 RMS 口径CurrentDefinition=1):改电流设 RMSCurrent, 改 PeakCurrent 无效且不报错。
  • 轴向力没有输出变量/2D 图/文档,唯一入口是 3D 集中节点力图 Fr_{Rotor|Stator}_{OL|OC}_Lumped(AFM 2.5D 展开模型中 Fr=轴向力); 脚本已封装,无需手动处理。
  • 求解前必须打开 ElectromagneticForcesCalc_Load/OC(脚本已做)。
  • 节点首尾(0°/360°)重复,求和须去重(脚本已做)。
  • Motor-CAD 残留锁文件问题:Motor-CAD 无此问题(那是 AEDT 的坑); python 退出后 Motor-CAD 进程可能随之退出,属正常。

7. 换其它模型

  • 改脚本顶部 MOT_SRC 指向新 .mot;
  • 若径向切片数量/半径不同:在 .mot 里搜 AFM_SectionCentreRadius_Array, 更新脚本的 SEC_RADII_MM(转矩交叉校核用);
  • 节点数会自动探测(转子=极数、定子=槽数),无需改;
  • 首次跑新模型建议核对:转子/定子合力是否反号、转矩交叉是否对得上。