《ecat_integral_report.html》修订附录 2026-10-19

原报告 · 核对基线 commit eac3717 · 总评审:DCU_DesktopController_专家评审_2026-10-19.html
原报告:对接电机 2/3:积分差是谁造成的?
时间线:入库 27a8fc1(09-21)→ 归档 beeae8a
原结论概要:基于 lab/ecat_passive_latest.csv(0.25ms 周期)的离线分析:两台电机巡航速度一致,积分差主要出现在停车/换向沿;给出统一减速段、负载对称、v2+v3 纠偏、序列 hold 足够长等标定建议。

原文件保持不变;本附录逐条记录其结论在当前代码中的状态。

逐条结论跟踪

编号原结论 / 建议当前状态证据(文件:行号)备注
IN-1数据源 lab/ecat_passive_latest.csv已过时—CSV 不在仓库,报告不可复现(H-7)
IN-2结论:积分差大头在停车段存疑docs/reports/ecat_integral_report.html(附带脚本输出)附带 JSON 的 main_source_of_integral_error=起动段、who_lags_at_stop=N2,与正文『N3 停车更拖』相矛盾(H-8)
IN-3建议④ 序列 hold 不短于两台都停稳时间仍存在js/motor/seq.js:95holdMs 范围 0~600000,无『停稳确认』机制;且序列重启存在并发循环(M-4)
IN-4建议①~③ 统一减速段、对称负载、v2+v3 纠偏无法在本仓库核实—属固件控制器

相关新问题(详见总评审)

致命 [M-4] 序列停止后立即重启会出现两个并发执行循环

模块
电机控制/故障保护
位置
js/motor/seq.js:431-447, 449-455, 461-504
现象
stopSeq 只置 running=false、stopRequested=true,不等待旧循环退出,也无代次令牌;startSeq 又把 running=true、stopRequested=false。旧循环若正处于 await sleep(holdMs)(最长 600 s)醒来后看到 running 仍为 true 便继续执行。
风险
两个循环交错下发不同步骤,电机运动序列错乱。
修改建议
引入 runId/generation:startSeq 自增,循环每个 await 后校验 myId===seq.runId;或 stopSeq 返回 Promise,待旧循环退出后才允许重启;sleep 改为可中断(AbortSignal)。

一般 [H-8] ecat_integral_report 结论与其附带脚本输出自相矛盾

模块
仓库卫生/文档
位置
docs/reports/ecat_integral_report.html
现象
正文称积分差大头在『停车段』、N3 停车更拖;附带脚本 JSON 却为 main_source_of_integral_error=起动段(phase on 3.54 > stop 1.09),who_lags_at_stop=N2,plain 中又写『N3 停车更拖』。
风险
依据该报告调参可能方向错误。
修改建议
重跑脚本核对口径(均值 vs 绝对值均值)并修正结论。

建议 [H-7] 报告中的资源与脚本链接随归档失效

模块
仓库卫生/文档
位置
docs/reports/ECAT_RATE_TRADEOFF.md; docs/reports/ecat_integral_report.html; docs/reports/REPORT_ecat_skip_opt_20260917.md
现象
lab/*.png、lab/*.csv、ecat_calib.json、sweep/plot/build 脚本与 scripts/skip_*.py 在 beeae8a 删除,报告不可复现。
风险
无法复核结论。
修改建议
把关键数据与脚本归档到 docs/reports/assets/ 或标注出处 commit。

结论

共 4 条:已修复 0、部分修复 0、仍存在/存疑 2、已过时 1、无法在本仓库核实 1。