|
@@ -0,0 +1,124 @@
|
|
|
|
|
+# 测试记录与结果总结
|
|
|
|
|
+
|
|
|
|
|
+> 本文档记录 PCB 轴向磁通电机自动化仿真系统的所有测试记录,包括 Motor-CAD 仿真测试、API 测试、集成测试等。
|
|
|
|
|
+> 每次测试必须记录在此文档中(工作留痕)。
|
|
|
|
|
+> 最后更新:2026-08-28
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 测试记录索引
|
|
|
|
|
+
|
|
|
|
|
+| 编号 | 日期 | 测试类型 | 结果 | 关键发现 |
|
|
|
|
|
+|---|---|---|---|---|
|
|
|
|
|
+| TEST-001 | 2026-08-28 | Motor-CAD 连接与变量探测 | ⚠️ 部分成功 | 发现 export_results API 兼容性问题、弹窗问题 |
|
|
|
|
|
+| TEST-002 | 2026-08-28 | Motor-CAD 全流程验证(修复后) | ✅ 全部成功 | 验证连接/计算/导出/解析全流程,弹窗问题解决 |
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## TEST-001:Motor-CAD 连接与变量探测测试
|
|
|
|
|
+
|
|
|
|
|
+**日期**:2026-08-28 04:49 - 05:08
|
|
|
|
|
+**测试环境**:Windows 10,Python 3.x,pymotorcad 0.8.8,Motor-CAD v261
|
|
|
|
|
+**测试目的**:验证 RobustMotorCADSolver 的连接、变量探测、参数写入、磁场计算、结果导出功能
|
|
|
|
|
+**测试脚本**:`scripts/test_robust_solver.py`
|
|
|
|
|
+**输出目录**:`output/test_connect_20260828_044951/`
|
|
|
|
|
+
|
|
|
|
|
+### 测试步骤与结果
|
|
|
|
|
+
|
|
|
|
|
+| 步骤 | 内容 | 结果 | 详情 |
|
|
|
|
|
+|---|---|---|---|
|
|
|
|
|
+| 1 | Motor-CAD 连接 | ✅ 成功 | `open_new_instance=True` + `set_visible(True)`,健康检查通过 |
|
|
|
|
|
+| 2 | 五层自检 | ✅ 完成 | 连接/许可/模型/脚本层 PASS,权限层 FAIL(非管理员,预期) |
|
|
|
|
|
+| 3 | 变量探测 | ⚠️ 11/14 | 3 个变量名不存在(`Stator_Number_Of_Slots`、`Rotor_Number_Of_Poles`、`Peak_Phase_Current`),**触发 GUI 弹窗需人工点确定** |
|
|
|
|
|
+| 4 | 参数写入+回读 | ✅ 成功 | TorquePointsPerCycle 30→60,回读 60.0,恢复 30 |
|
|
|
|
|
+| 5 | 磁场计算 | ✅ 成功 | 耗时 174.4 秒 |
|
|
|
|
|
+| 6 | 结果导出 | ❌ 失败 | `export_results() missing 1 required positional argument: 'file_path'` |
|
|
|
|
|
+| 7 | 断开连接 | ✅ 成功 | |
|
|
|
|
|
+
|
|
|
|
|
+### 探测到的模型参数(MARS-12S10P_SSSR_D76-C150_V5.0-0819.mot)
|
|
|
|
|
+
|
|
|
|
|
+| 参数 | 值 | 单位 |
|
|
|
|
|
+|---|---|---|
|
|
|
|
|
+| Motor_Type | 0 | - |
|
|
|
|
|
+| Airgap | 1 | mm |
|
|
|
|
|
+| Magnet_Arc_[ED] | 121 | EDeg |
|
|
|
|
|
+| MagnetCentralArc_HalbachRing | 120 | EDeg |
|
|
|
|
|
+| Slot_Opening | 8.5 | mm |
|
|
|
|
|
+| Slot_Width | 8.5 | mm |
|
|
|
|
|
+| Copper_Width | 3.64 | mm |
|
|
|
|
|
+| TorquePointsPerCycle | 30 | points/cycle |
|
|
|
|
|
+| AirgapMeshPoints_mesh | 600 | points |
|
|
|
|
|
+| AirgapMeshPoints_layers | 600 | points |
|
|
|
|
|
+| Shaft_Speed | 5000 | rpm |
|
|
|
|
|
+
|
|
|
|
|
+### 发现的问题
|
|
|
|
|
+
|
|
|
|
|
+1. **弹窗问题**:`get_variable` 对不存在的变量名会抛出异常 **并弹出 GUI 错误对话框**,阻塞无人值守批处理
|
|
|
|
|
+ - 修复:连接后立即设置 `MessageDisplayState=2` 禁用弹窗
|
|
|
|
|
+2. **导出 API 兼容性**:pymotorcad 0.8.8 的 `export_results` 签名是 `(solution_type, file_path)`,之前只传了 `file_path`
|
|
|
|
|
+ - 修复:改为 `export_results("EMagnetic", file_path)`
|
|
|
|
|
+
|
|
|
|
|
+### 修复提交
|
|
|
|
|
+
|
|
|
|
|
+- `f3b492a` — 修复 export_results API 兼容性
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## TEST-002:Motor-CAD 全流程验证(修复后)
|
|
|
|
|
+
|
|
|
|
|
+**日期**:2026-08-28 05:08 - 05:15
|
|
|
|
|
+**测试环境**:Windows 10,Python 3.x,pymotorcad 0.8.8,Motor-CAD v261
|
|
|
|
|
+**测试目的**:验证 TEST-001 发现的两个问题修复后,全流程是否正常
|
|
|
|
|
+**测试脚本**:`scripts/test_robust_solver.py`(已添加弹窗抑制)
|
|
|
|
|
+**输出目录**:`output/test_connect_20260828_050834/`
|
|
|
|
|
+
|
|
|
|
|
+### 测试步骤与结果
|
|
|
|
|
+
|
|
|
|
|
+| 步骤 | 内容 | 结果 | 详情 |
|
|
|
|
|
+|---|---|---|---|
|
|
|
|
|
+| 1 | Motor-CAD 连接 | ✅ 成功 | `open_new_instance=True` + `set_visible(True)` |
|
|
|
|
|
+| 2 | 弹窗抑制 | ✅ 成功 | `MessageDisplayState=2`,变量探测阶段**无弹窗** |
|
|
|
|
|
+| 3 | 五层自检 | ✅ 完成 | 连接/许可/模型/脚本层 PASS,权限层 FAIL(非管理员,预期) |
|
|
|
|
|
+| 4 | 变量探测 | ✅ 11/14 | 3 个变量名不存在但**无弹窗**(已被抑制) |
|
|
|
|
|
+| 5 | 参数写入+回读 | ✅ 成功 | TorquePointsPerCycle 30→60,回读 60.0,恢复 30 |
|
|
|
|
|
+| 6 | 磁场计算 | ✅ 成功 | 耗时 **138.1 秒**(比 TEST-001 的 174.4 秒快) |
|
|
|
|
|
+| 7 | 结果导出 | ✅ 成功 | 10788 字节,`export_results("EMagnetic", path)` |
|
|
|
|
|
+| 8 | 结果解析 | ✅ 成功 | 解析到 7 个指标 |
|
|
|
|
|
+| 9 | 断开连接 | ✅ 成功 | 弹窗状态恢复,基线重载 |
|
|
|
|
|
+
|
|
|
|
|
+### 实际仿真结果
|
|
|
|
|
+
|
|
|
|
|
+| 指标 | 值 | 单位 |
|
|
|
|
|
+|---|---|---|
|
|
|
|
|
+| 系统效率 efficiency_pct | **86.06** | % |
|
|
|
|
|
+| 总损耗 total_losses_w | 41.945 | W |
|
|
|
|
|
+| 输入功率 input_power_w | 300.9 | W |
|
|
|
|
|
+| 磁钢损耗 magnet_loss_w | 0.5641 | W |
|
|
|
|
|
+| 定子铁耗 iron_loss_w | 3.002 | W |
|
|
|
|
|
+| 线间反电动势有效值 back_emf_v | 7.898 | V |
|
|
|
|
|
+| 轴转速 shaft_speed_rpm | 5000 | rpm |
|
|
|
|
|
+
|
|
|
|
|
+### 注意事项
|
|
|
|
|
+
|
|
|
|
|
+- 本次未解析到 `tavg_nm`(平均转矩)和 `ripple_pct`(转矩脉动),原因是字段名匹配不完整
|
|
|
|
|
+- 已在 `6a8bc80` 提交中扩展 `METRIC_DEFINITIONS` 从 12 个指标到 20 个,添加了中文字段名变体
|
|
|
|
|
+- 下次测试应能解析到更多指标
|
|
|
|
|
+
|
|
|
|
|
+### 修复提交
|
|
|
|
|
+
|
|
|
|
|
+- `6a8bc80` — 扩展指标别名 + 测试脚本弹窗抑制
|
|
|
|
|
+
|
|
|
|
|
+### 测试结论
|
|
|
|
|
+
|
|
|
|
|
+**RobustMotorCADSolver 已验证可正常连接 Motor-CAD、执行磁场计算、导出并解析结果,弹窗问题已解决,可支持无人值守批量仿真。**
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 待办测试项
|
|
|
|
|
+
|
|
|
|
|
+- [ ] TEST-003:多参数扫描测试(3 个磁钢弧角值),验证 `run_single_point()` 完整流程和逐点落盘
|
|
|
|
|
+- [ ] TEST-004:扩展指标解析验证(确认 tavg_nm、ripple_pct 等能正确解析)
|
|
|
|
|
+- [ ] TEST-005:批量调度器测试(BatchScheduler 多任务排队)
|
|
|
|
|
+- [ ] TEST-006:Web 端 API 集成测试(任务创建/下发/进度/结果回传)
|
|
|
|
|
+- [ ] TEST-007:断点续跑测试(中断后恢复)
|
|
|
|
|
+- [ ] TEST-008:长时间稳定性测试(50+ 仿真点)
|