# 简化电路实验台

## 原始提示词

见 [完整原始输入](prompt.md)。本轮为模型 minimax-m3-1-flash-preview、档位 max 在测试分支执行任务正文 v1。

## 运行方式

入口为本目录 `index.html`，单文件、零依赖、无 CDN。浏览器直接打开即可使用，无需服务器。

## 实现要点

- 求解器是标准**改进节点法（MNA）**：未知量取「除参考节点外的节点电压 + 每个理想电压源的支路电流」，用电导印章装配矩阵后用带部分主元的高斯消元求解。
- 导线用并查集合并端子，同一连通导线归为一个节点；元件两端若被导线短接，仍按合法元件处理并单独诊断。
- 按连通块分组求解，每个连通块独立选参考节点，避免悬空子网导致矩阵奇异。
- 奇异矩阵分流诊断：电源两端被理想导体短接 → 报「短路」；有电源但缺回流路径 → 报「开路」并把该块电流置 0；无电源 → 报「无源」。任何情况下都不输出 NaN。
- 灯泡按固定电阻建模，亮度取自实际耗散功率 P = I²R，并在界面上明确声明这是简化模型。
- 电流方向箭头、电压、功率、每元件状态都在结果表与画布上同步显示。

## 验证记录

- 串联预设：12V + 100Ω + 200Ω，电路总电流 0.040A，与 12/(100+200) 一致。
- 并联预设：100Ω 支路 0.120A、200Ω 支路 0.060A，电源总电流 0.180A。
- 混合预设：(100∥200) + 300Ω，支路 0.0218A / 0.0109A，总电流 0.0327A，与手算一致。
- 短路预设：电池两端被导线短接，界面给出红色「电源短路 · 无唯一解」提示，不输出伪造电流。
- 断开开关后相关支路电流为 0，并提示「该网络没有电源」。
- 移动元件后连线保持（导线以端子 id 存储，与几何位置解耦）；删除元件会一并清除其端子上的连线。
- 触摸模式下可直接从端子拖到端子完成连线。

## 复盘

**做得好的**：没有把直流电路做成「并联就除以电阻」的经验公式，而是老老实实装配 MNA 矩阵求解，因此混合网络、浮空节点、开关开路这些真实情况都能得到物理上正确的电流与异常提示；「不输出 NaN 或伪造有限电流」这条要求通过分流诊断真正落实了。

**不足**：
1. 初版的并联预设接线实际串成了回路（支路电流算成 0.04A），说明生成预设后没有立即用数值验证，这类错误靠肉眼很难发现。
2. 矩阵奇异时的判定是启发式的（靠「理想导体路径」推断短路），对双电源同电压并联、非退化多解等情况只能笼统归入「无唯一解」。
3. 灯泡亮度线性映射到 P/1.5W，超过阈值直接饱和，大功率时失去区分度。
4. 画布上的元件靠 24px 网格吸附，但没有撤销（Ctrl+Z）与对齐参考线，复杂电路的摆放成本偏高。
5. 结果表没有按节点分组，也没有画出节点电压，对于多回路电路不够直观。

## 十轮评审改进记录

本轮由模型 MiniMax M3.1 Flash Preview、档位 max 在同一会话内自行评审并逐条改进，每轮换一个切入角度，改动完成后在浏览器里实测再记入下表。历史输入与历史产物未被覆盖。

- **第 1 轮**：并联预设的接线实际串成回路（支路电流算成 0.04A）；已改为开关串在公共回路上，闭合 0.18A、断开 0.000A。
- **第 2 轮**：连接已属于同一节点的两个端子会被误报为「电源短路」；已增加同节点判定并给出明确提示。
- **第 3 轮**：setPointerCapture 未做保护，会中断选中与删除等交互；已改为 try/catch。
- **第 4 轮**：网格 38×22 使预设电路只占上半部分、预设选择器被挤压；已改为 38×15 并调整预设布局与选择器最小宽度。
- **第 5 轮**：补 :focus-visible 样式。
- **第 6 轮**：求解缓存——每次交互都重新装配并高斯消元，矩阵完全没变时也在重算。新增 circuitSignature() 指纹与结果缓存，矩阵面板会标注「· 缓存」；「重新求解」按钮强制失效缓存重算。
- **第 7 轮**：容器自适应与窄屏抽屉——跟随画布宿主宽度等比缩放，画布宽度同时受高度上限约束，嵌入窄栏不溢出；参数面板在窄屏折叠为可滚动抽屉。
- **第 8 轮**：键盘与无障碍——方向键移动选中元件、Z 撤销、D 复制、+/- 调整阻值、Delete 删除；结果与错误写入 aria-live；画布可聚焦并声明 role/aria-label；补齐 focus-visible 焦点环。
- **第 9 轮**：真实预设电路——原先只有并联与短路两个预设，且两者都不构成完整回路。现在补上灯泡并联（验证亮度确实来自耗散功率）、惠斯通电桥（验证 MNA 对多支路的处理）与双电源反串联三个真实拓扑，并同步所有滑杆。实测：串联 0.040A/0.480W、灯泡并联 0.180A/2.160W、混合 0.033A、电桥 0.065A、双电源 0.050A。
- **第 10 轮**：矩阵装配独立成层——把电导印章与理想电压源约束从 solveIsland 里抽成 assembleIsland()，可以单独核对矩阵是怎么装出来的；同时新增节点电位表与总耗散功率读数，参考节点固定为 0 V。

以上每条改动也登记在本目录 `run.json` 的 `changes` 字段，可与本表逐条对照。

## 轮次归并与批次汇总

本次后续导入是同一轮测试的更新结果，现已合并到此前归档的实验记录，不另建第 4 轮。普通主题沿用第 3 轮记录；蓝皮书 v1/v2 沿用各自已有的记录 ID。

- 本批：11 个主题案例、12 条实验记录（蓝皮书含 v1/v2）。
- Max 五小时额度累计消耗：108%（此前 44% + 本次 64%）。
- 累计耗时：2h 8m 32s（57m 10s + 1h 11m 22s）。
- 累计 Token：156M。
- 执行备注：自我审查十轮。以上额度消耗、耗时和 Token 为批次口径，不拆分到单案例。

<!-- archive:start -->
## 当前归档信息（自动生成）

- 实验 ID：`circuit-lab--minimax-m3-1-flash-preview-max-r03`
- 模型：MiniMax M3.1 Flash Preview；推理档位：max
- 执行模式：按原任务执行；备注：自我审查十轮
- 类型：single-html；预览：static；网络：offline
- [完整原始输入快照](prompt.md) · [主题与其他版本](../../../../topic.html?id=circuit-lab)
- 输入记录：完整原始输入，等同于主题任务正文 v1（未增删），保存于本目录 prompt.md。
- 工具：Claude Code。Claude Code 会话内直接执行，模型 minimax-m3-1-flash-preview、档位 max；未使用子代理，未参考任何历史实现或远程分支。
- 运行方式：浏览器直接打开本目录入口；CDN/外部素材需要联网。
- 费用记录：MiniMax 批次合计 108 %（Max 订阅套餐五小时额度）（12 个案例；批次 minimax-m3-1-flash-preview-max-2026-10-14；未记录单案例费用）
- [实验台入口](../../../../demos/circuit-lab/runs/minimax-m3-1-flash-preview-max-r03/index.html)

### 部署适配记录

- 第 1 轮：并联预设的接线实际串成回路（支路电流算成 0.04A）；已改为开关串在公共回路上，闭合 0.18A、断开 0.000A。
- 第 2 轮：连接已属于同一节点的两个端子会被误报为「电源短路」；已增加同节点判定并给出明确提示。
- 第 3 轮：setPointerCapture 未做保护，会中断选中与删除等交互；已改为 try/catch。
- 第 4 轮：网格 38×22 使预设电路只占上半部分、预设选择器被挤压；已改为 38×15 并调整预设布局与选择器最小宽度。
- 第 5 轮：补 :focus-visible 样式。
- 第 6 轮：求解缓存——每次交互都重新装配并高斯消元，矩阵完全没变时也在重算。新增 circuitSignature() 指纹与结果缓存，矩阵面板会标注「· 缓存」；「重新求解」按钮强制失效缓存重算。
- 第 7 轮：容器自适应与窄屏抽屉——跟随画布宿主宽度等比缩放，画布宽度同时受高度上限约束，嵌入窄栏不溢出；参数面板在窄屏折叠为可滚动抽屉。
- 第 8 轮：键盘与无障碍——方向键移动选中元件、Z 撤销、D 复制、+/- 调整阻值、Delete 删除；结果与错误写入 aria-live；画布可聚焦并声明 role/aria-label；补齐 focus-visible 焦点环。
- 第 9 轮：真实预设电路——原先只有并联与短路两个预设，且两者都不构成完整回路。现在补上灯泡并联（验证亮度确实来自耗散功率）、惠斯通电桥（验证 MNA 对多支路的处理）与双电源反串联三个真实拓扑，并同步所有滑杆。实测：串联 0.040A/0.480W、灯泡并联 0.180A/2.160W、混合 0.033A、电桥 0.065A、双电源 0.050A。
- 第 10 轮：矩阵装配独立成层——把电导印章与理想电压源约束从 solveIsland 里抽成 assembleIsland()，可以单独核对矩阵是怎么装出来的；同时新增节点电位表与总耗散功率读数，参考节点固定为 0 V。
- 同轮更新归档：测试分支后续更新的完整产物、执行记录和文档已并入本条实验记录，不另建新轮次。来源：F:/dev/ai-coding-demo-test（model-test-base）/demos/circuit-lab/runs/minimax-m3-1-flash-preview-max-r01。
- 维护者于 2026-10-22 按 v3 对本轮桌面、手机及补充状态逐图重评并绑定 captures 证据；旧截图和 v2 评分见 catalog/score-reviews/2026-10-21-v3-source.json。未重跑模型或改写实验源码，截图不证明完整功能、算法、手势或性能。
<!-- archive:end -->
