wangxuewangxue98/dsh-motor-ai-l0 ↗★ 0
dsh-motor-ai-l0
Motor-AI DSH 插件 · 电机设计专家 L0 快速预筛层(纯 JS 经验公式,零求解器依赖) 适合电机设计人员进行快速预筛,基于纯 JS 经验公式,无需依赖外部求解器。
インストール
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:wangxuewangxue98/dsh-motor-ai-l0ドキュメント
README 全文を読む ↗查看配置层
dsh --profile web --dump-config
**层级门控**:把 `level` 设为 `l1` 或 `l2` 会立即抛错并阻止插件加载 —— 这是有意为之的
快速失败,避免「配置打开了、代码没实现」的静默降级。
---
## 七、版本与发布
语义化版本三重一致性由 `scripts/release.mjs`(W5 交付)强制:
- PATCH:公式系数微调、bug 修复
- MINOR:新增公式 / 新增代理模型 / 新增校验规则
- MAJOR:输出格式变更、工具参数结构变更、DSH 兼容性提升
---
## 八、路线图
| 阶段 | 内容 | 状态 |
|---|---|---|
| W1 | 插件骨架 + 层级门控 + 离线自检 | ✅ 完成(12/12) |
| W2 | P1 常量真源同步 + 公式引擎 + P3 高速扩表 + Param 锁 | ✅ 完成 |
| W3 | motor_param_matrix + motor_l0_estimate | ✅ 完成(37/37) |
| W4 | motor_design_validate + 公式 vs 模拟回归质量门 | ✅ 完成(49/49,质量门判定 DEBT) |
| W5 | 代理模型 + SKILL.md + release.mjs 门禁 | ⬜ 待开始 |
| W6 | npm / DSHHub 发布 + 口令分发 + L1 转化钩子 | ⬜ 待开始 |
---
## 九、已知偏差与 W4 待校准清单(实算数据)
L0 物理通道目前是 **v0.1 未标定版**。刻意不为了「数字好看」而乱调系数 ——
下列偏差全部登记待 W4 用 RMxprt 批量结果回归后再收紧。
### 实算对照(`node scripts/verify.mjs` 之外的独立探针)
| 案例 | 工况 | L0 物理通道 | 参照 | 偏差 |
|---|---|---|---|---|
| A | Y160M-4:15kW / 1460rpm / 4极 / OD260 / L155 / 风冷 | η 86.63%,温升 88.6K | IE1 88.5% / IE3 91.5%;B级允许温升 80K | η 偏低 1.9~4.9pt,温升偏高约 9K |
| B | 现场工况:200kW / 22000rpm / 2极 / 液冷 / SmCo | η 96%(受 cap 封顶,推算值约 97.5%),温升 107.2K | 同类高速 PMSM 典型 96.5~97.5% | 数值合理,但 cap=96 造成低估 |
### 偏差根因(已定位)
1. **铁损**:Steinmetz 用单一等效磁密(默认 1.2T),未区分齿部/轭部;`kh/ke` 系数未标定
2. **铜损**:槽面积由几何推算,缺少「匝数 × 电流」的电路约束;槽满率 0.45 与电密 5.5 A/mm² 均为经验值
3. **机械损**:`MECH_LOSS_K = 5` 未标定,仅保证量级正确
4. **温升**:散热面积按**光滑**机座外表面积计,未计散热筋;`COOLING_COEFFICIENT` 为单点标定(标定算例见 motor-constants.mjs)
5. **效率封顶**:`efficiencyCap=96` 是为与 `_run_simulated` 同口径的权宜值,对高效高速机会低估
### W4 必须完成的三件事
- [ ] 用 RMxprt 批量结果做 native vs L1 回归,拟合 `kh/ke`、`MECH_LOSS_K`、`COOLING_COEFFICIENT`
- [ ] 回归目标:标定域内 `|Δη| ≤ 2pt`、`|Δ温升| ≤ 10K`
- [ ] 校准完成后重新评估 `efficiencyCap` 是否需要放宽(当前 96 对高速高效机偏保守)
> 诊断列 `l1_efficiency_proxy` / `l1_temp_proxy` 就是为这件事准备的:
> 案例 B 中它给出 80%,与 L0 的 96% 相差 16pt —— 这不是 bug,
> 而是把「Python 仿真经验式在高速区失真」这件事显性暴露了出来。
---
## 十、回归质量门(W4 交付)
```bash
node scripts/regression.mjs # 跑门(比对基线)
node scripts/regression.mjs --update-baseline # 重新生成基线快照
node scripts/regression.mjs --strict # DEBT 也按失败计
node scripts/regression.mjs --json # 机器可读输出
两道门 + 一个诊断
| 门 | 判据 | 阻断 |
|---|---|---|
| A 物理边界门 | 效率落进该功率档 IE1~IE4 能效带、温升不越绝缘设计限值 | 由 benchmarks/gate.sanity_blocking 控制,当前 false |
| B 回归门 | 与 baseline.json 逐指标比较,允许 0.5pt / 2K / 5% 劣化 | 是(首次运行无基线时放行) |
| 诊断 divergence | L0 物理通道 vs L1 仿真 proxy 的 Δη / ΔT | 否(仅记录,见下) |
为什么 divergence 不阻断:_run_simulated(motor_tools.py:750-756)是在
180mm / 8 极 / 3000rpm 附近标定的线性式,套到 200kW/22000rpm 会推出 80% 效率
——比 IE1 地板还低,是仿真模型自身失真。强行把 L0 对齐到它等于把 L0 一起带偏。
故只有落在 260mm / 4SIM_VALID_DOMAIN(1208 极 / 5004000rpm)内的案例才计入 2pt 预算,
域外标记 out_of_domain、可见但不计分。
首轮实算结论(2026-09-21)
判定:DEBT(sanity 6/6 越界,但按配置不阻断;无回归)。
| 案例 | L0 η | 参考带 | Δη | L0 ΔT | 考核/设计限值 | 仿真 proxy | 域内? |
|---|---|---|---|---|---|---|---|
| y160m4 15kW/4极 | 86.65% | 87~94% | −0.35pt | 88.4K | 80/105K ⚠ | 83.4% | 是(超预算 3.25pt) |
| y200l4 30kW/4极 | 86.65% | 89~95% | −2.35pt | 113.8K | 80/105K ✗ | 86.08% | 否 |
| hs200kw 200kW/22000rpm | 96%(cap) | 95~98% | 0 | 113.3K | 105/105K ✗ | 80% | 否 |
| mine75kw 75kW/660V | 89.59% | 91~96% | −1.41pt | 131K | 80/105K ✗ | 89% | 否 |
| small55kw 5.5kW/2极 | 81.04% | 84~91% | −2.96pt | 108.8K | 80/105K ✗ | 80% | 否 |
| fan110kw 110kW/2极 | 90.13% | 92~97% | −1.87pt | 87.1K | 105/105K ✓ | 85.32% | 否 |
欠账集中在两点:效率系统性偏低 1.4~3pt(损耗三项未标定)、温升系统性偏高(散热筋未计 + 损耗高估)。 根因与第九节登记的 5 项一致,属待标定项,不是实现缺陷。
翻转判据:6 个案例全部落进参考带且温升不越考核限值后, 必须把
benchmarks/l0-benchmarks.json的gate.sanity_blocking改为true, 否则门形同虚设。
W4 实施中修掉的 4 个真问题
- 磁密公式漏 2/π(我的 bug) —— 每极磁通应为
Φ = (2/π)·B_peak·极面积, 初版直接用B_peak × 极面积,磁密被高估 π/2≈1.57 倍,表现为「齿磁密 1.63T vs 现场目标 1.02T」的假性冲突。 修正后Bt = 2·B_gap·Dsi/(Qs·bt·k),半齿距齿宽下Bt = 4·B_gap/(π·k) ≈ 1.30·B_gap, 取 B_gap=0.8T 得 1.04T,与现场 1.02T 吻合到 2%。 - V12 温升默认判 failed 会批死整批 —— 实测矩阵 40/40 全 failed,预筛层失去意义。
未标定模型不该承担硬剔除职责,改为默认 warning,
escalate: ['V12']可显式升级。 - 槽宽深比下界 0.30 过紧 —— 26/40 行误报。定子梨形槽宽深比常见 0.2~0.8,下界改为 0.20。
- 高速气隙档缺失 ——
AIR_GAP_MAX=1.5mm会把现场 2.0mm 气隙判非法。 新增highSpeedRpm=8000/AIR_GAP_MAX_HIGH_SPEED=4.0,并让经验气隙比对在高速档让位。
W4 暴露出的 3 项 Python 真源问题(需回主线确认)
| # | 现象 | 定位 | 建议 |
|---|---|---|---|
| 1 | 全部案例轭磁密 1.83 | physics_kernel.py:601-602 yoke = 0.4·half 对 4 极机偏薄约 2× | 校核 yoke 系数,或按极数分档 |
| 2 | 参数矩阵外径系统性偏大(15kW 推到 ID≈197mm,实机约 170mm) | physics_kernel.py:536-538 empiricalBaseSize | 用型谱数据回归 d/l 系数 |
| 3 | baseTurns = 0.3·V + 0.02·(450−OD),380V 推得 114 匝/线圈,实机约 15~30 | physics_kernel.py:608 | 该式量级需复核(L0 未依赖 turns,暂不影响估算) |