# Central Mag Arc 扫描脚本

脚本通过 Motor-CAD 的 Windows COM 接口，扫描当前模型的
`Central Mag Arc [ED]`（自动化名 `MagnetCentralArc_HalbachRing`），并输出
Torque Ripple 列表与简单分析。

## 使用前

1. 在 Motor-CAD 中打开目标 `.mot`（脚本连接现有实例，不新开实例）。
2. 使用安装了 `ansys-motorcad-core` 的 Windows 原生 Python。
3. 关闭或暂停其它会控制同一 Motor-CAD 实例的脚本。

若同时开了多个 Motor-CAD，先按进程 ID 找监听端口，再显式传给脚本：

```powershell
Get-CimInstance Win32_Process -Filter "Name='MotorCAD.exe'" | Format-List ProcessId,CommandLine
netstat -ano | Select-String '<目标进程ID>$'
python .\scan_central_mag_arc.py --port 65479
```

选择该进程的 IPv4 `LISTENING` 端口；端口号每次启动可能变化，示例值不能长期复用。
若现有窗口含未保存工作，使用独立实例最安全：

```powershell
python .\scan_central_mag_arc.py --new-instance
```

## 命令

```powershell
python .\scan_central_mag_arc.py
```

默认：80 到 120 EDeg，步长 1，`TorquePointsPerCycle=120`，气隙网格
`mesh/layers=960`。120 点与原始 840 网格不对齐，会触发 Motor-CAD 交互弹窗；960 是
Motor-CAD 提示的兼容值，同时比参考项目最终复算用的 1680 更快。

自定义范围和步长：

```powershell
python .\scan_central_mag_arc.py --start 90 --stop 110 --step 2
```

最终候选高精度复算：

```powershell
python .\scan_central_mag_arc.py --start 96 --stop 104 --step 1 --torque-points 180 --airgap-mesh 1440 --no-resume
```

若要求连求解采样设置也完全保持模型原值（原模型为 30 点，但会混叠 18 次谐波）：

```powershell
python .\scan_central_mag_arc.py --torque-points 0 --airgap-mesh 0 --no-resume
```

结果写入 `results/central_mag_arc_scan.csv`，每个点完成后立即落盘；中断后重跑会跳过
已有成功点。`results/central_mag_arc_analysis.md` 是自动生成的结果表和简要分析。

每个点开始前脚本都会重新加载原始 `.mot`，然后只修改 Central Mag Arc；结束后再次加载
原模型，因此不会把最后一个扫描值留在当前模型中。默认的 120 点仅改变本次求解的数值采样，
不改变其它几何、材料、绕组或工况参数。
