Commit Graph
100 Commits
Author SHA1 Message Date
wangfq d5e6a3d55b feat(V4B): V4.36.44 — 铁板负偏差误释放防护(P1) + 有车最小保持定档 100ms
现场 154log260911d(22µH 铁板): 进入后 CAPVD 被磁导率抬到 dev +201/+198,
两次在 dev=+33/+96(≈2×进表dlt, 落在既有 ±4×dlt 正常跟踪窗内) 误判"离开" ⇒ 继电器掉。
修复: 有车期间 dev > +1×进表dlt ⇒ 冻结离开判定(含 band_timeout); 持续 5s ⇒ 重锚基线后放行(防锁死)。
同时 REL_MIN_HOLD_TICKS 30→10(100ms, 现场验证后正式化)。
单测场景8: 误释放 @1.04s → 冻结后 @6.04s, 正常撤板不受影响; 全套 8/8 全绿。

- P1: g_neg_rel_hold_cnt + REL_NEG_VAR_HOLD_TICKS=500; 门控普通释放与 band_timeout;
      Car_In/Car_Off 双向清零; 新增 EVT|neg_rel_hold / EVT|neg_rel_reanchor
- 边界: 真断开仍走 RELAY_HOLD_MS=1000; dev>=+4×dlt 强负 variation 仍归 V4.24 两段式环境逻辑
- 文档: devlog V2.81(+条目) / spec 头 V2.63 / manual 表 V2.20 / cmcng.h 4.36.43→4.36.44 REV 44
- 归档: docs/patches/v4.36.44-P1-negvar-hold-and-minhold-100ms.diff
2026-09-11 17:53:15 +08:00
wangfq 6c82bf61b8 fix(V4B): V4.36.43 — 修正 V4.36.42 引入的离开变慢 (G3 计时器递减位置错误)
用户反馈: 烧 V4.36.42 后离开 3、4 秒才释放。

定位(46µH/113kHz 日志): 4 次离开全是 Car_OFF(band_timeout), 延迟 3.5~4.7s; RLN 正常
(有车态 = Origin−41, 说明 G1 生效、100ms 自激已消失) ⇒ 问题出在"正常释放路径被挡住"。

根因: G3 的 g_rel_hold_tick-- 误放 if(!loop1_VD_FLAG) 无车分支(原 :1308) ⇒ 有车期间永不递减
⇒ 首次 Car_In 后常驻 30 ⇒ g_rel_hold_tick==0 永假 ⇒ 正常释放被永久挡住, 只能等 2.5s 环带兜底
+ 平滑值抬升 ⇒ 3.5~4.7s。

修复: 倒计时移到 } else { 有车分支顶部 (TaskLoop.c:1531 后、#if USE_FLATNESS_EXIT 之前,
每 tick 必过且在释放判定之前); 误放旧行改注释留痕。REL_MIN_HOLD_TICKS 仍 30(300ms)。

单测: 8/8 全绿(场景 7 语义不变); 新增"镜像能力边界"警告 —— 镜像只验证算法语义, 验证不了固件内
执行路径/放置位置, 此类问题必须靠日志 Car_OFF 原因字段(band_timeout/FLAT/普通)暴露。
文档: devlog V2.80(+条目) / spec 头 V2.62 / manual 表 V2.19 / cmcng.h 4.36.42→4.36.43 REV 43
/ 分析稿 §13 返工记录。
待现场: 离开延迟回到 ~300ms 内; 缓慢接近/停边界仍不跳。
2026-09-11 17:06:05 +08:00
wangfq 0f8a0d6fbd fix(V4B): V4.36.42 — 低Q 临界悬停自激根治 (进/出参考统一 + 释放带夹紧 + 最小保持)
用户反馈: 金属板缓慢接近时判据乱跳; 35µH(128kHz)/46µH(112kHz) 线圈同样现象(46µH 在设计窗内且无告警)。

根因(三段链条, 现场日志与代码逐值吻合):
 ① 无车态 dlt_ORG=进表 49 ⇒ vac_ref() 门控 1×49; Origin−EMA=32~34 ≯49 ⇒ 参考=Origin ⇒ 进入线=Origin−49
 ② 进车瞬间 dlt_ORG 切成释表 23 ⇒ 同一 gap > 1×23 ⇒ vac_ref() 改用 EMA(低 32~34 counts)
 ③ 释放线 = EMA−1.8×23 ⇒ 比进入线还浅 ⇒ 深度 50~58 的静止凹脉冲"进门即满足释放"
   ⇒ 进入确认 5 + 释放确认 5 = 10 样本 = 100ms 周期自激(日志实测 ~30 组/3s)

实现:
 - G1 新增 vac_gate_dlt()(状态无关进表 dlt)供 vac_ref() 门控 (TaskLoop.c:297/307) ⇒ 进/出同一参考
 - G2 低Q 释放带夹紧 _band ≤ vac_gate_dlt()-1 (TaskLoop.c:339) ⇒ 只作未来兜底; 180(=41@SENS3, V4.36.28 现场值)一字未动
 - G3 REL_MIN_HOLD_TICKS=30 有车后 300ms 禁释放 (TaskLoop.h:69 + TaskLoop.c 调用点) ⇒ 只挡释放不延迟检出

单测: 新增场景 7 现场参数逐位复现 —— 22µH 悬停 300/300 → 1/0; 35µH 300/300 → 1/0; 撤板 1/1; V4.36.28 回摆仍释放; 非低Q 同深度不自激; 全套 8/8 全绿
文档: devlog V2.79(+条目) / spec 文档头 V2.61 / manual 表 V2.18 / cmcng.h 4.36.41→4.36.42 REV 42
待现场: 上板复测 + 锁死侧三线圈实验 (devlog 条目内 [ ] 占位)
2026-09-11 16:59:26 +08:00
wangfq 5fd58e035a fix(V4B): V4.36.41 — 环境重校准后触发高度变低根治 (基准/派生参考同步 + EMA 余数累加)
用户反馈: 黄灯常亮故障补偿后, 金属板进入触发的高度比断电上电后低很多, 补偿结束也恢复不了正常灵敏度。

根因(两处, 均可复核): V4B 进入判定用 vac_ref()=min(Origin, 真空EMA) 而非 Origin (TaskLoop.c:1432)
 ① env_resync_apply() 只原子换 loop1_Origin, 没同步 g_vacuum_ema。补偿前提是 dev>+4×dlt 连续 7s,
    学到的 B≈当前 CAPVD ⇒ Δ≥4×dlt 必然 ⇒ Origin−EMA=Δ>1×dlt ⇒ vac_ref 必然切旧 EMA ⇒ 进入线整整低 Δ
 ② g_vacuum_ema += _ema_d/128 为整数除法, |d|<128 时步进恒 0 ⇒ EMA 粘在真空下方 ≤127 counts
    (2.59×dlt > 1×dlt 门槛) ⇒ 进入线常驻偏低 ≈0.100% Δf/f 且不自愈; 断电上电 EMA=Origin(偏差 0) 故持久正常

修复:
 - 新增 origin_set_atomic() (TaskLoop.c:308): "一步换 Origin"时 |ΔOrigin| > ORIGIN_JUMP_REANCH_DLT(=1)×dlt
   则同步重锚 g_vacuum_ema; 与 VAC_REF_DELTA_DLT 同口径 ⇒ 维持 |Origin−EMA| ≤ 1×dlt 不变式; 小步不动 EMA
 - 3 处 Origin 写入点改经它: env_resync_apply(:968) / 重连判稳完成(:1207) / 冻结超时更新(:1372)
 - EMA 更新改余数累加器 g_vac_frac(:1344) 消 ±127 counts 死区; g_vac_frac 在 INIT(:583)/判稳(:1266) 清零

单测(新增 tests/test_vac_ref_reanchor.c, 5 场景; gcc -O0 -Wall -Wextra 0 warning; 全套 8/8 全绿):
 补偿后进入线 130457(低 130 counts = 2.65×dlt = 0.100% Δf/f) → 130587(低 0); EMA 追赶偏差 127→0 counts

文档: devlog V2.78(+条目) / spec 文档头 V2.60 / manual 版本表 V2.17 / cmcng.h 4.36.40→4.36.41 (REV 41)
归档: docs/env-resync-trigger-line-analysis.md + docs/patches/v4.36.41-{A-B,D}*.diff

待现场(编译烧录后回填 devlog 条目): 4 项 [ ] + 2 处日志待填 (EVT|env_resync / DBG Origin·VEM·RLN)
2026-09-11 14:08:25 +08:00
wangfq 1de4b4c8f3 docs(V4B): 注释同步 — 全部 疾闪 → 一长两短 (用户指出残留)
TaskLoop.c/h 现役注释 5 处 + tests 4 处 (180/983/997/1004/84 + 6/103/104/127)
代码本体 V4.36.38 已是一长两短 6 相, 注释滞后同步
devlog V2.77 / spec V2.59 (历史版本行保留当时变更记录)
语法0 error, 4测试全绿
2026-09-09 11:35:35 +08:00
wangfq 41a4577fa7 fix(V4B): V4.36.40 — 短路级热切换线圈死锁修复
用户实测: <20µH 短路级强制断开后, 不断电换正常线圈不恢复(拨码不重启), 只能断电.
根因: 强制期 ISR 847 每5ms压 LOOP_OK=0 → vd1_task 停摆 → Origin/LPCNT 冻结在旧短路线圈值;
      recover 用 calc_freq_khz(冻结Origin,LPCNT) 判回窗永远>171k → 死锁.
修复: recover 恢复判定改 TMR3 捕获 ISR 实时 Xn (f=240000/Xn, 每振荡周期新鲜);
      换线圈后 f 回窗连续5s → 实时置档 → ISR 847 停压 LOOP_OK 自然回位 →
      主循环 0→1 沿检测自动发起 reconnect confirmed → 无车判稳门控 → Origin 判稳重建.
spec V2.58 / devlog V2.76
语法0 error, 4测试全绿
2026-09-09 11:16:10 +08:00
wangfq b4aa7402a5 feat(V4B): V4.36.39 — COIL_UNDER_MIN_AS_OPEN 默认 0→1 (用户拍板)
L<20µH(f>171k) 短路级出厂即等同线圈断开完全态:
判车暂停 + 继电器保持释放 + 绿灯不亮 + 黄灯快闪(断开同款)
恢复: coil_monitor_recover 无条件监测 f 回窗≤171k 连续5s 实时置档
=0 可编译期关(仅快闪提示仍判车)
spec V2.57 / manual V2.16 / devlog V2.75
语法0 error, 4测试全绿
2026-09-09 10:45:09 +08:00
wangfq cc0581163b feat(V4B): V4.36.38 — fault2 可用级黄灯改一长两短 (用户定)
156~171k(L 20~24µH) 指示: 疾闪100ms → 一长两短 6相
900ms亮/300ms灭/100ms亮/300ms灭/100ms亮/700ms灭 循环
与一长一短(出窗 fault1)/快闪(断开·短路级 fault3) 三层区分
spec V2.56 / manual V2.15 / devlog V2.74
语法0 error, 4测试全绿
2026-09-09 10:03:49 +08:00
wangfq 2be9e3c208 feat(V4B): V4.36.37 — 电感分级降级 (方案A 用户拍板)
低于下限拆两级, COIL_UNDER_MIN_AS_OPEN 作用域 156k→171k:
- fault=2: 156~171k (L 20~24µH) 可用级 → 黄灯疾闪 100ms(与断开200ms区分), 判定恒照常
- fault=3: f>171k (L<20µH) 短路级 → 断开级快闪 200ms; 宏=1 等同断开(判车停+RLY释放+绿灯灭)
- coil_monitor_recover: 回窗≤171k(非156k) + 恢复实时置档(原清0有5s黄灯空档)
- tests 镜像四分: 157/171→2, 172→3; 文案同步
- spec V2.55 / manual V2.14 / devlog V2.73
语法0 error, 4测试全绿
2026-09-09 09:30:12 +08:00
wangfq 7ab0010055 docs(V4B): spec V2.54 — 黄灯行为表补 V4.36.25 三分语义+低于下限宏解耦
6.3 表: fault==2(L<24µH f>156k) 与断开同快闪(行2); fault==1 一长一短(18k/125~156k);
新增 COIL_UNDER_MIN_AS_OPEN 指示/功能解耦说明 (=0 仍判车/=1 等同断开)
10.1 故障表同步: 18k 偏大/125~156k 偏小一长一短; f>156k 低于下限快闪+宏+防抖5s
2026-09-09 09:10:32 +08:00
wangfq d8411ef351 feat(V4B): V4.36.36 — 就绪巩固期 Q 分级 (高5s/中7s/低10s)
低Q 上电判稳完(绿灯灭)即压板 → 绿灯常亮 (系统未收敛完)
判稳完成(1204)后按 Q 档置巩固期, 绿灯继续慢闪至期满灭:
- READY_HOLD_HI=1000(5s)/MID=1400(7s)/LO=2000(10s) @5ms tick (poll_green_led 递减)
- 巩固期系统正常收敛(Origin/EMA/滤波) → 绿灯灭=可操作
- Q 档与 update_q_confirm_need 同口径 (f>100k 低/80~100k 中/≤80k 高)
- Loop stable 打印带 ready:Ns
语法0 error, 4测试全绿; spec V2.53 / devlog V2.71
2026-09-08 15:29:23 +08:00
wangfq 5cde26265f fix(V4B): V4.36.35 — EMA cast 根治: 有符号先除 (爆炸源)
35uH V4.36.34 全绿 (13+ cycle, band_timeout 2次实战) — VEM 恒 130715 暴露玄机
根因 (C 语义实锤): g += (uint32_t)_ema_d/128; _ema_d=-10 → (uint32)(-10)=4294967286
  → /128 = +33554431/样本 → EMA 爆炸 (20260907a 10:23:03 VEM 垃圾起始=CAPVD 首破 EMA)
  V4.36.34 自愈每样本兜住(炸+重置净零)掩盖; V4.36.33 无自愈 → RLN 垃圾+假触发卡死
修: g += (uint32_t)(_ema_d / 128) 有符号先除; 自愈保留最后防线
ADR 条件修复: _t_ms 恒 2000 原永不触发 → 独立计数 5×2s=10s
语法0 error, 4测试全绿; spec V2.52 / devlog V2.70
2026-09-08 14:14:00 +08:00
wangfq 76177fd086 fix(V4B): V4.36.34 — EMA 钳位自愈 + SUM/ADR 诊断 (35uH VEM 垃圾)
35uH 日志: VEM 垃圾 536M→846M→2224M 递增 (10:23:03 起)
连锁: vac_ref=垃圾 → RLN=-2070862722 → RSM 永不够 → 卡死
      触发判定 vac_ref-dlt 巨大 → CAPVD=真空值假 Car_In
分析: EMA 公式限幅不可能跳5亿; 写点全正常 → 越界写, 写源未定
防御: EMA 每步限 ±3×dlt; 与 Origin 偏差>25% 自愈回 Origin
诊断: DBG 加 SUM(ORG_SUM 对照); 每 10s ADR 打 4 变量地址
语法0 error, 4测试全绿; spec V2.51 / devlog V2.69
2026-09-08 10:32:43 +08:00
wangfq da2fc83afb fix(V4B): V4.36.33 — vac_ref 重锚阈值: 修 EMA 边缘污染触发高度漂移
V4.36.32 板测新问题(所有线圈): 板间隔几秒再压触发高度降一半, 多试几轮恢复
机制: EMA(α128 τ1.28s) 更新窗=±4×dlt(196) 太宽 — 板悬感应边缘(dev−20~−40)
  当真空快学 → vac_ref=min(Origin,EMA)=EMA 低 → 触发线漂移; Origin 5s 满窗慢所以以前无感
修: vac_ref = (Origin−EMA > 1×dlt) ? EMA : Origin
- J1 锚错 130(2.65dlt) 仍重锚; 边缘拉低 20~40(<1dlt) 忽略
- 未重锚最大偏差 48 → 真空 Origin−48 vs 释放线 −41 差 7 → 环带兜底覆盖不卡
语法0 error, 4测试全绿; spec V2.50 / devlog V2.68
2026-09-08 10:17:43 +08:00
wangfq 78267f3d49 docs(V4B): spec V2.49 — 4.4.2 频率列勘误(×2) + 方向澄清 + 4.3.1 双表注
用户提问'车压 L降f升, 为何标题 L升f降' → 澄清: 本表只管 CAPVD>Origin(L 升方向:
铁磁靠近/涡流金属移走/Origin偏低); 车压 L降方向冻结不在此表; 车走正常回程不进表
- 表格'折算频率下降'列数值 bug: 应为 −dXn/Xn = −2.06/−0.43/−0.23/−0.15%
  (原 −1.02/… 少乘 2, a3d0b9f 落地误用 dXn/2)
- 换算依据补 df/f = −dXn/Xn
- 4.3.1 注 USE_PLANB_TABLE 双表分支(300 系列 vs 337 系列)
2026-09-08 09:47:59 +08:00
wangfq 5daf508150 feat(V4B): V4.36.32 — 释放后分级补偿: 仿 PD132T 慢采样等效
用户对比 PD132T: 采样慢→Origin 学习慢→无释放漂移问题
机理确认: update_moving_average 满窗替换(500样本/5s), 10ms 快采样窗装得快
  → 释放后板缓离残余(低 CAPVD)≥5s 会整窗拉低 Origin
- 全冻结 1s: REL_ORIGIN_FREEZE_TICKS 50→100 (残余样本完全不进窗)
- 降权低速补偿 2s: ORIGIN_LOWLEARN_TICKS=200 + MULT=5 (窗500→2500=25s, 速率1/5 ≈132T等效)
- 递减: 冻结结束才递减降权; Car_OFF 两处预置; 均值窗 window 分阶段; INIT 清零
EMA/B3 vac_ref 零影响; 全宏可调
语法0 error, 4测试全绿; spec V2.48 / devlog V2.67
2026-09-08 08:19:57 +08:00
wangfq 17575e8747 feat(V4B): V4.36.31 — B3 真空 EMA 重锚: 判定参考与锚错 Origin 解耦
用户拍板: B3 为主, A2(学入步长)可选加严存档
- g_vacuum_ema: 无车 dev 窗内 EMA(α128 τ≈1.28s, 与均值窗同守卫); 判稳建立; INIT 清零
- vac_ref()=min(Origin, EMA): Origin 被 env 学高(搁置态 130636 vs 真空 130506)
  → 释放线/进入线不再偏高; 撤板真空即释放
- 替换: 进入判定/低Q释放线/环带兜底线/DBG RLN; 高Q中Q 零影响; env 学习用 Origin 本尊
- DBG 加 VEM 字段
语法0 error, 4测试全绿; spec V2.47 / devlog V2.66
2026-09-07 18:47:03 +08:00
wangfq 74512bcf54 feat(V4B): V4.36.30 — 环带超时兜底: 时间回滞替代空间回滞
用户反馈 V4.36.29: 抬一点就释放(容差压塌回滞到4) / 反复试探=连续过车?
- 撤 REL_LO_TOL=4: 回滞恢复 8 counts (Origin-49 触发/Origin-41 释放)
- 新增 REL_BAND_TIMEOUT_TICKS=250(2.5s): 低Q 触发后 CAPVD 平滑>进入线
  (已离开触发深度) 持续 2.5s → 强制释放
- 根治'板停空间回滞带内永久卡死'(试探场景); 真实车深压不触发(安全);
  J1 撤板 75s→2.5s; 抬 4 counts 不再立刻释放
- '越来越难释放'机制: 拿起板 Origin 被 env 学高, 试探快于收敛则净升 (远期 env 过冲抑制)
- 低L 灵敏度自适应(进入带回放大)列为下一档评估
语法0 error, 4测试全绿; spec V2.46 / devlog V2.65
2026-09-07 16:32:24 +08:00
wangfq 3ea876b7d9 feat(V4B): V4.36.29 — 低Q 释放容差 REL_LO_TOL=4 (破差1count死锁)
J1 日志(23µH, V4.36.28) 75s 延迟释放完整机理:
- Origin 过冲(拿起板 env 学高→130636/130693), 均值窗 15s 收敛中残留 34 counts
- 过冲残留被 VD=1 冻结(130540 vs 真真空 130506) → 释放线 130499 偏高
- 撤板后真空 CAPVD 130506 距线仅 7 counts, RSM 平滑 130498 差 1 count 不过线 → 卡 75s
- 释放后 Origin 7s 自动收敛回 130506 (均值窗正常)
修复: rel_release_hit 低Q 分支 _line 减 REL_LO_TOL=4 (等效线 Origin-45)
- J1 卡死: RSM>线 立即释放; 板停触发深处不误释放; 正常撤板余量不变
- 回滞 49-45=4 counts (σ1-2 → 2~4σ 安全)
语法0 error, 4测试全绿; spec V2.45 / devlog V2.64
2026-09-07 16:01:28 +08:00
wangfq 40bb1b467f feat(V4B): V4.36.28 — 低Q 锁死根因: 静态带回缺口 → REL_BAND_LO_MULT 180
23µH/33µH 双日志 + V4.36.27 诊断字段定位 (QLO/RSM/RLN/RCN):
- 排除: Origin 漂移(129094 恒定)/g_q_lo(=1)/平滑滞后(RSM 跟随)/σ25(实测 σ1-2)
- 根因: 23µH 板停临界稳态回摆 Origin-36, 释放线 Origin-34(MULT150) 高 2 counts
  → RCN 永不累计锁死; 33µH 回摆 Origin-25 富余 9 正常
- 修正: MULT 150→180 (带回 35→41): 23µH 线 Origin-41 余 4 counts 释放;
  回滞 49-41=8 counts=4~8σ 安全; MULT200(回滞3)否决
语法0 error, 4测试全绿; spec V2.44 / devlog V2.63
2026-09-07 15:04:16 +08:00
wangfq 1ce5a36f80 diag(V4B): V4.36.27 诊断版 — DBG 增加释放路径现场字段
日志 DLD154V4-20260907a 分析 (22µH/低Q/163kHz, cycle3 卡死 146s):
- Origin=130556 全程恒定 → Origin 漂移假说排除(本样本)
- 卡死态 CAPVD 130519~130530 稳态, 模拟: 低Q 平滑线130522 应在样本4释放;
  快值线130533 永不满足 → 现场像低Q 释放路径未生效, 但静态代码链全通(g_q_lo 每样本=1)
- DBG 每 2s 一行不阻塞 → 本次日志=禁打印等效数据 (打印不再屏蔽复现)
- 加 QLO/RSM/RLN/RCN 四字段(每2s) 取证卡死现场实际 g_q_lo/平滑值/释放线/确认计数
语法0 error, 4测试全绿
2026-09-07 14:26:54 +08:00
wangfq 33c268409d feat(V4B): V4.36.26 — 低Q 发散治理剂量加大: τ85ms + 释放后 Origin 冻结 500ms
用户拍板方案 A (V4.36.19 仍偶发, 有改善 → 剂量中等+治本一起上)
- REL_ALFA 46→30: 低Q 释放平滑 τ≈50→85ms (削抖动带宽更狠)
- 带回保持 REL_BAND_LO_MULT=150(35): 触发-释放回滞 14 counts 不压缩 (防抖落)
- 治本 REL_ORIGIN_FREEZE_TICKS=50: 释放确认后 Origin 均值窗冻结 500ms,
  切断「释放残余→Origin 学入→释放线漂移→cycle 间发散」正反馈
- 冻结只挡均值窗; INIT_VD 清零
语法0 error, 4测试全绿; spec V2.43 / devlog V2.62
2026-09-07 11:18:15 +08:00
wangfq e0b86e9f6e feat(V4B): V4.36.25 — 电感量三分语义: 合理窗 18~125k + 出窗一长一短 + 低于下限快闪
用户设计拍板: 纠正 V4.36.22/23 把合理窗上限随下限推到 153/156 的偏差
- COIL_F_OK_MAX_KHZ 156→125 (恢复合理窗 18~125kHz=V4.36.9 口径, >125k=38µH 偏小)
- 新增 COIL_L_MIN_F_KHZ=156 (=COIL_L_MIN_UH 24µH, 43nF f@24µH=156.7k)
- coil_monitor want 三分: f<18k→1; f>156k→2(快闪断开级); 125k<f≤156k→1(一长一短)
  打印 too_large/too_small/below_l_min
- coil_monitor_recover 判据 18~156 (解除强制; 125~156 转原路径一长一短)
- test: 126→1 / 156→1 / 157→2; 全绿
语法0 error; spec V2.42 / manual / devlog V2.61
2026-09-07 10:01:12 +08:00
wangfq 5a3ab667bc feat(V4B): V4.36.24 — L<下限双模式宏 COIL_UNDER_MIN_AS_OPEN
用户需求: L<24µH 后 0=仅黄灯快闪(现状, 判定/继电器/绿灯照常);
1=视为线圈断开完全状态: 黄灯快闪+继电器保持释放+绿灯不亮
- ISR RF 分支置 LOOP_OK=1 后强制压 0 → 主循环断开路径(vd1_task 停/黄灯快闪/disconnect)
- RLY 刷新(RF段)与保持(hold段)短路 → 继电器保持释放, 绿灯镜像灭;
  短路放条件而非事后压 OFF(防 5ms ON/OFF 继电器抖动打火)
- coil_monitor 随 vd1_task 停摆 → 新增 coil_monitor_recover() 无条件每 10ms
  恢复监测 (f 回窗 18~156kHz 连续 5s 清 fault → LOOP_OK 恢复 → 重连确认+判稳门控)
- 默认 0 (与 V4.36.23 一致无回归); 切 1 现场验证完全断开语义
语法0 error, 4测试全绿; spec V2.41 / manual 故障表 / devlog V2.60
2026-09-07 09:33:00 +08:00
wangfq 7b68daa472 feat(V4B): V4.36.23 — 最低电感量下限 25µH→24µH
用户拍板 COIL_L_MIN_UH=24 (43nF 口径)
- 频率窗上限 153→156kHz (f@24µH=156.7k; 156=L24.21µH 正常/157=L23.90µH 偏小)
- L<24µH(f>156k) → 断开级快闪 (判定/指示/防抖 5s 逻辑不变)
- test 边界 156/157; 4 测试全绿
语法0 error; spec V2.40 / manual / devlog V2.59
2026-09-07 09:17:19 +08:00
wangfq d69f15e5f7 feat(V4B): V4.36.22 — 最低电感量下限 20µH→25µH
用户拍板 COIL_L_MIN_UH=25 (43nF 口径)
- 频率窗上限 171→153kHz (f@25µH=153.5k; 153=L25.16µH 正常/154=L24.84µH 偏小)
- L<25µH(f>153k) → 断开级快闪 (判定/指示/防抖 5s 逻辑不变)
- 提示: 现场 21/23µH 测试线圈(f≈164k>153k)将再入断开快闪区, 需换 ≥30µH
- test 边界 153/154; 4 测试全绿
语法0 error; spec V2.39 / manual / devlog V2.58
2026-09-07 09:14:45 +08:00
wangfq 809c52e40b feat(V4B): V4.36.21 — 电感量下限判定防抖 1s→5s
用户: 电感量下限判定重要, 确保不误检, 判定时间可加长
- COIL_FAULT_HOLD_TICKS 100→500 (1s→5s, TaskLoop.h 宏)
- 越界置位/恢复清除均 5s 连续确认 (防起振/瞬态 f 冲高 171k 误报断开级快闪)
- 判定线不变 (18~171kHz / L≥20µH); coil_monitor 防抖宏化
- test 全用例同步 5s 语义 (499 不置位/500 置位); 全绿
语法0 error; spec V2.38 / devlog V2.57
2026-09-07 09:12:00 +08:00
wangfq 16eed844a6 feat(V4B): V4.36.20 — 最低工作电感量 COIL_L_MIN_UH=20µH, 低于按线圈断开指示
用户需求: 设定最低电感量工作值(默认 20µH, 43nF 低频档口径, 宏定义);
线圈电感量低于该值 → 黄灯快闪以线圈断开状态指示
- TaskLoop.h: 新增 COIL_L_MIN_UH 20; 频率窗上限 125→171kHz (=L 20.06µH,
  43nF: L=2.533e7/(f²×43)) — 20~38µH 小线圈转为可正常工作(含现场 21/23µH)
- poll_yellow_led 模式1: g_coil_fault==2 归入断开级快闪(!LOOP_OK/reconn_stab 同级)
- 一长一短(模式5)仅保留 coil_fault==1 (L 偏大 f<18kHz)
- coil_monitor 防抖 1s 不变; 继电器/判定逻辑不动(仅指示级)
- test: 171 正常/172(L<20µH) 偏小, L 偏大 17; 全绿
语法0 error, 4测试全绿; spec V2.37 / devlog V2.56
2026-09-07 09:08:37 +08:00
wangfq a3d0b9ff75 docs(V4B): 故障补偿触发幅度量化说明 (spec 4.4.2 补分档表)
用户需求: 文档给出进入故障补偿/黄灯常亮的具体触发数字
代码核实: 触发 = dev=CAPVD-Origin > +4×dlt 纯比例制(无绝对counts)
- 连续 2s(ENV_WARN_WAIT=200) → 黄灯常亮预判锁存
- 连续 7s(ENV_RESYNC_WAIT=700) → 学习替换 Origin → 空闲 2s 灭
- 仅处理 CAPVD 高于 Origin = 等效电感上升方向; L 下降=车辆语义冻结
换算 (L∝Xn², dL/L≈2×dXn/Xn): SENS=3 触发 ≈ +0.15% Xn ≈ 电感+0.31%
  SENS=0 ≈ +2.06% Xn ≈ 电感+4.11% (分档量化表)
现场实例: Origin=129868/dlt=49 → 触发 CAPVD>130064(+196 counts)
spec V2.36 / manual 故障段 / devlog V2.55
2026-09-04 19:00:04 +08:00
wangfq 9a8fc98c42 docs(V4B): 日期勘误 — devlog/spec/manual 9/3→9/4
V4.36.1~19 + 勘误条目均为 2026-09-04 提交, 文档误标 9/3;
V4.36 及更早(9/3 提交)保留不动. devlog 标题+表行 V2.17+,
spec V2.17+ / manual 日期全部对齐真实提交日
2026-09-04 18:51:11 +08:00
wangfq ef5959d6fe feat(V4B): V4.36.19 — 低Q 释放抗抖 (平滑判释放+带回加宽)
问题: 43nF/高灵敏/低Q(≤50µH) 金属板边界试探 → 触发稳定但释放点外移
发散至锁死(绿灯长亮); 开 DEBUG 打印复现不了(阻塞降采样平均抖动) = 关键旁证
根因: 释放带回 dlt_rel=23 ≈ 低Q σ(±15~25), 快值判释放(5样本)被抖断
修复(Q 分档, 高/中Q 零影响):
- rel_release_hit(): 低Q 用 g_rel_smooth(τ50ms REL_ALFA=46) 判释放
- 低Q 释放带回 ×1.5 (REL_BAND_LO_MULT=150: 23→~35)
- g_rel_smooth: IIR 后跟随/CAPVD=0 与重连归零/Car_In snap
语法0 error, 4测试全绿; spec V2.35 / devlog V2.54
2026-09-04 18:42:22 +08:00
wangfq e1b5542296 feat(V4B): V4.36.18 — 频率窗下界 20→18kHz
COIL_F_OK_MIN_KHZ 18: 合理窗 18~125kHz (@43nF ≈ L47µH~1.15mH) 放行更大电感
test 边界 17偏大/18正常 全绿; 镜像同步
顺带修正 spec 参数表历史滞后: MAX 115→125, COIL_CAL_C_NF 68→43
语法0 error; spec V2.34 / manual / devlog V2.53
2026-09-04 17:35:41 +08:00
wangfq c4c7a484b7 docs(V4B): 安全复位观感勘误 — 绿灯镜像继电器后复位指示变化
用户板测确认: SW5=ON 压车 >4min 安全复位正常触发(Origin 重学压板值,
离开黄灯长亮为证据); '没进入复位'是观感差异: V4.36.4 绿灯=RLY2 镜像,
复位期间 RLY 刷新挂起不关断 → 绿灯保持亮(旧版绿灯灭=复位可见)
过一辆车(Car_In 清 LC_Reset)恢复刷新. 机制无回归.
manual 4.5 重写对齐实际行为; spec 加 LC_Reset 勘误注+SW5 极性说明; devlog V2.52
2026-09-04 17:24:45 +08:00
wangfq edd4e7b6c4 fix(V4B): V4.36.17 — 修复上电无线圈黄灯不闪
V4.36.16 去掉 !power_up 后裸奔: 断开分支置位条件含 power_up,
上电 phase(power_up=0) 故意不置 disconnect_active → 无线圈黄灯哑
改: 黄灯模式1 = !loop1_LOOP_OK || g_reconn_stab
- 上电无线圈 LOOP_OK=0 快闪恢复(需求1); 有线圈/判稳中不闪(需求2 保持)
- 运行中断开黄灯反应 150ms→5ms(ISR 实时读载波)
语法0 error, 4测试全绿; spec V2.33 / devlog V2.51
2026-09-04 16:37:04 +08:00
wangfq 13876be54c feat(V4B): V4.36.16 — 上电自检与重连灯语义分离
用户三条需求:
1. 上电无线圈: 绿灯黄灯都闪, 接线圈后黄灯时长<=绿灯, 自检完同灭
2. 上电有线圈: 绿灯闪自检, 黄灯不闪
3. 运行中重连: 黄灯接管(不变)

问题(V4.36.15 副作用): 上电首次 LOOP_OK 上升沿误触发判稳门控,
低Q 蠕变把黄灯拖到 2s+ 超过绿灯判稳 1.3s; 上电有线圈黄灯也闪(!power_up)
改动: 黄灯模式1 去 !power_up(无线圈由 disconnect_active 覆盖);
判稳门控触发加 g_loop_stable(仅运行中重连; 上电/安全复位不判稳)
语法0 error, 4测试全绿; spec V2.32 / manual 灯表 / devlog V2.50
2026-09-04 16:28:17 +08:00
wangfq fc070a9145 feat(V4B): V4.36.15 — 重连判稳门控 (值稳定才放行)
现场 21µH 无车拔插: blank 1500/3000ms 结束瞬间仍假 Car_In (非必现)
根因: 低Q 起振蠕变 ~2.2s 时长不固定(插头/线圈态相关), 固定窗治标
机制(用户思路): 无车重连(VD_FLAG==0) → 判稳门控:
  200ms 步进漂移≤dlt/2 连续 600ms + |dev|≤dlt 回带确认 → 完成
  Origin 对齐当前空场 + CAPVD_slow/dlt 同步 → 放行 (消新旧基线差)
  不稳: 进入判定挂起 + 黄灯快闪保持(用户要求); 强车 8×dlt 例外
  即时放行; 5s 兜底强制放行. 有车重连(VD=1 保持路径)不判稳
语法0 error, 4测试全绿; spec V2.31 / manual / devlog V2.49
2026-09-04 16:03:35 +08:00
wangfq 75b1ee8acb fix(V4B): V4.36.14 — 重连确认窗漏网路径修复 (主循环拍级上升沿)
现场 21µH: 三段重连仅无窗段跳 (无 reconnect/blank 打印直接 Car_In)
根因: 上升沿用 ISR LOOP_OK0(5ms), 断开时主循环 150ms 慢 tick,
插头抖动可致 LOOP_OK0 卡 1 → 恢复漏触发确认窗 → CAPVD 不重置直接判定
→ 插回瞬态假有车. 干净断开重连走窗则被抑制(验证 2/3 段无跳)
改动: loop_task while 顶部 g_prev_ok 主循环拍级(10ms)上升沿检测,
任何 0→1 恢复强制进确认窗+blank; 抖动免疫保留; LOOP_OK0 仅供安全复位
语法0 error, 4测试全绿; spec V2.30 / devlog V2.48
2026-09-04 14:00:32 +08:00
wangfq 66f4aaffc6 feat(V4B): V4.36.13 — 一长一短 灭 100→300ms
dur[4] {180,20,20,140} → {180,60,20,140} = 900/300/100/700ms (周期2.0s)
语法0 error, 4测试全绿; spec V2.29 / manual / devlog V2.47
2026-09-04 11:55:13 +08:00
wangfq 1c22001bde feat(V4B): V4.36.12 — 黄灯一长一短 长亮 300→900ms
dur[4] {60,20,20,140} → {180,20,20,140} = 900/100/100/700ms (周期1.8s)
语法0 error, 4测试全绿; spec V2.28 / manual / devlog V2.46
2026-09-04 11:52:43 +08:00
wangfq dda192c6ca feat(V4B): V4.36.11 — 低Q 重连抑制窗 400→1500ms
Q 分档抑制终值: 高200/中300/低1500ms
语法0 error, 4测试全绿; spec V2.27 / devlog V2.45
2026-09-04 11:41:56 +08:00
wangfq b52c4c5ce4 fix(V4B): V4.36.10 — 绿灯镜像勘误 RLY1→RLY2 默认继电器
用户确认产品两继电器: RLY2(PA5)=默认(恒随车辆存在),
RLY1(PA6)=拨码3可选脉冲/存在继电器; 绿灯应指示默认继电器
poll_green_led 镜像对象 RLY1→RLY2 (odt 同源)
语法0 error, 4测试全绿; spec V2.26 / manual / devlog V2.44
2026-09-04 11:09:03 +08:00
wangfq c7adcc6397 feat(V4B): V4.36.9 — 频率窗上限 115→125kHz
COIL_F_OK_MAX_KHZ 125 (43nF板口径 ≈38µH 起)
test_coil_range 边界 125/126 全绿; 语法0 error
spec V2.25 / manual 故障表 / devlog V2.43
2026-09-04 10:54:12 +08:00
wangfq 6a0a39f8ee feat(V4B): V4.36.8 — 进入/释放确认按 Q 档分档 (A+B)
Q 分档心智沿用至判定: 低Q(高频小L)抖动大 → 确认样本加长防误判
进入确认: 高3/中4/低5 样本 (原固定3)
释放确认: 高3/中4/低5 样本 (原固定3)
update_q_confirm_need() 每样本按空场 f 更新; dlt 已比例化无需分档
语法0 error, 4测试全绿; spec V2.24 / devlog V2.42
2026-09-04 10:45:24 +08:00
wangfq 1b038474d6 feat(V4B): V4.36.7 — 参数调整
RELAY_HOLD_MS 500→1000 (有车断开继电器保持 1s)
Q 抑制窗: 高Q 100→200 / 中Q 200→300 / 低Q 400 不变
分档终值: 200/300/400ms
语法0 error, 4测试全绿; spec V2.23 / devlog V2.41
2026-09-04 10:24:30 +08:00
wangfq 48cf3475be feat(V4B): V4.36.6 — 高Q 抑制窗 0→100ms 短兜底
Q 分档终值: 高Q(f≤80k) 100ms / 中Q(80~100k) 200ms / 低Q(f>100k) 400ms
语法0 error, 4测试全绿; spec V2.22 / devlog V2.40
2026-09-04 10:14:42 +08:00
wangfq ca6b40cd2d feat(V4B): V4.36.5 — 重连起振抑制按 Q 分档
现象: 30/46/47/50µH 无车拔插重连继电器跳一下 (136/210µH 无)
根因: 低L→高f→低Q→起振慢幅度弱→前几窗 Xn 偏差→假有车
(100ms 确认窗只保载波存在, 不保幅度稳定)
改动: 首样本直锁时按空场频率 f 分档设抑制窗
  f>100k 低Q 400ms / 80~100k 中Q 200ms / ≤80k 高Q 0ms
  抑制期仅挂起进入确认累计(entry_cnt), 真车不丢, 其余逻辑照常
语法0 error, 4测试全绿; spec V2.21 / devlog V2.39
2026-09-04 10:06:51 +08:00
wangfq 55ac432c69 feat(V4B): V4.36.4 — 绿灯=RLY1 继电器实际输出状态指示
现场误判根因: 断开时 poll_green_led 强制绿灯灭, 而 V4.36.3 保持
逻辑下继电器仍吸合 → 灯/继电器脱节 → 误判继电器释放
改动: 稳定后绿灯镜像 RLY1_GPIO->odt (吸合亮/释放灭), 删断开
强制灭分支 → 有车断开保持期绿灯亮(与继电器一致); 自检期慢闪不变
语法0 error, 4测试全绿; spec V2.20 / manual 灯表 / devlog V2.38
2026-09-04 09:43:42 +08:00
wangfq 1efa9ad775 feat(V4B): V4.36.3 — 有车断开继电器保持 RELAY_HOLD_MS=500ms
断开前 VD_FLAG=1(有车) → RLY 保持不释放: 500ms 内重连+有车→无缝续持,
重连+无车→vd1_task 判离释放, 超时仍断→强制释放(hold_done 防抖);
无车断开立即释放不变. ISR 5ms 计时, 宏可调(RELAY_HOLD_MS)
审查修复: done 后不加 !hold_done 会 100Hz 继电器抖动
语法0 error, 4测试全绿; spec V2.19 / manual 断开行 / devlog V2.37
2026-09-04 09:17:15 +08:00
wangfq 18db4bf762 feat(V4B): V4.36.2 — 线圈重连确认窗 100ms (防抖动重复计数/首样本毛刺)
RF 上升沿仅进候选; 载波连续恢复 RECONNECT_CONFIRM_TICKS=10 (100ms)
才确认重连重置; 确认窗内 disconnect_active 保持 → 黄灯快闪/计数不重复,
不跑 vd1_task; 任何掉线取消候选 → 抖动免疫
断开判定不加防抖(释放速度安全刚需)
语法0 error, 4测试全绿; spec V2.18 / devlog V2.36
2026-09-04 08:50:25 +08:00
wangfq 798801d881 feat(V4B): 版本体系加修订号 → 4.36.1 (FIRMWARE_VER_REV)
规则(用户拍板): MAIN/SUB 产品定, 小改动只增 REV
cmcng.h: FIRMWARE_VER "4.36.1" + REV=1; main.c 启动打印 fw 行
语法 0 error; spec V2.17 / devlog V2.35
2026-09-04 07:53:42 +08:00
wangfq b2190a3ad9 docs(V4B): 黄灯行为表等全面同步 V4.30~36 参数 (spec V2.16 / manual V2.13)
spec: 黄灯模式5 一长一短 300/100/100/700ms + f>115k; 模式4 常亮 2s/7s/2s;
COIL_F_OK_MAX_KHZ 参数行 120→115; 故障表 L偏小 >115k; 10.2 窗说明 20~115k
manual: 环境校准表 5s/10s → 2s/7s; 恢复节奏 ~21s → ~15s (2s/7s/13s/2s);
锁存解除 ~5s → ~2s; 铁块学入 60s+ → 7s+; 一长一短 200/800 → 300/700ms
2026-09-03 17:35:28 +08:00
wangfq 8c35cc0522 feat(V4B): V4.36 — 频率窗上限 108→115kHz (43nF板≈44µH, 放行~48µH小线圈)
test_coil_range 边界 115/116 全绿; 语法 0 error
文档: devlog V2.34 / spec V2.15 / manual V2.12
2026-09-03 17:15:47 +08:00
wangfq f6e2a82935 feat(V4B): V4.35 — 频率窗上限复核 92→108kHz (43nF板口径≈50µH)
V4.33 的 92k 是 0Ω 实验板(68nF)语境; 产品回到三极管板(43nF)后 92k≈70µH 过严,
40~70µH 正常线圈会误报 → 上限 108k = L≈50µH (保留最小合理线圈)
test_coil_range 边界 108/109 全绿; 语法 0 error
文档: devlog V2.33 / spec V2.14 / manual V2.11
2026-09-03 17:13:00 +08:00
wangfq be91c584ee feat(V4B): V4.34 — 产品基准回到三极管库存板: COIL_CAL_C_NF 68→43
决策: 不改电路沿用库存板(R19在/R27空), 低频档 C_eff≈43nF(2台×5颗);
0Ω板实验(68.4)仅机理验证不作产品基准
⚠ 窗口口径提醒: 92kHz 上限在 43nF 板对应 L≈70µH(0Ω板为30µH),
48µH 线圈 0Ω板88k窗内→三极管板~111k窗外, 待现场复核
注释/文档全同步; 语法0 error, 4测试全绿
2026-09-03 17:11:05 +08:00
wangfq 1c065b280e feat(V4B): V4.33 — 线圈频率窗上限 120→92kHz (COIL_F_OK_MAX_KHZ)
f>92kHz → L偏小告警(一长一短, 原 120kHz); 顺带修正 manual 黄灯表旧时序
(200/100/100/800→300/100/100/700, V4.32 遗留) 与频率窗描述
test_coil_range 边界 92/93 全绿; 语法 0 error
文档: devlog V2.31 / spec V2.12 / manual V2.10
2026-09-03 16:36:17 +08:00
wangfq 2632d51cbf feat(V4B): V4.32 — 黄灯一长一短时序 200/100/100/800 → 300/100/100/700ms
poll_yellow_led 模式5 dur[4] {40,20,20,160}→{60,20,20,140} (5ms/tick);
总周期 1.2s 不变, 长亮更醒目。语法0 error, 4测试不受影响(纯poll层常量)
文档: devlog V2.30 / spec V2.11 / design doc §6 注记
2026-09-03 16:29:09 +08:00
wangfq 7983bfd72d feat(V4B): V4.31 — 故障补偿时序再调: 预判2s + 补偿7s (总恢复 ~15s)
V4.30 基础上现场手感再收紧: ENV_WARN_WAIT 300→200(2s);
ENV_RESYNC_WAIT 800→700(7s); 恢复确认 200(2s) 不变
时序: 2s 黄灯预判锁存 → 7s 进入学习 → 6s 学完原子替换 → 2s 确认灭
test_env_resync.c 同步 → 5 场景 ALL PASS (warn@200, applied@1300, 灭@1500)
文档: devlog V2.29 / spec V2.10 / design doc v0.8
2026-09-03 16:16:37 +08:00
wangfq 4200d96250 feat(V4B): V4.30 — 故障补偿时序: 预判3s + 补偿8s + 恢复2s (总恢复 ~16s)
拍板: 预判 ENV_WARN_WAIT 500→300(3s); 补偿 ENV_RESYNC_WAIT 1000→800(8s);
恢复确认 ENV_RECOVER_WAIT 500→200(2s, 新基线替换后空闲稳定即灭灯)
时序: 3s 黄灯预判锁存 → 8s 进入学习 → 6s(3×200tick)学完原子替换 → 2s 确认灭
test_env_resync.c 重写: 镜像与固件逐分支一致(学习中压线=搁置不退出/学习仅高位段
计数/abort后循环重触发) → 5 场景 ALL PASS (warn@300, applied@1400, 灭@1600)
文档: devlog V2.28 / spec V2.9 / design doc v0.7
2026-09-03 16:08:21 +08:00
wangfq 71feb3e06d docs(V4B): 硬件变更描述勘误 — 准确改法 R19拆 + R27补焊0Ω(旁路三极管直控电容)
早期过程描述'三极管 5.1K→0Ω'更正为: R19 取下 + R27 补焊 0Ω(原空贴),
拨码开关不再经过三极管电路、经 0Ω 直控第二颗 33nF; 与 vd-analysis
models/DLD154V4B 归档的 Ver4.01 原理图一致
2026-09-03 14:58:49 +08:00
wangfq ab028647f2 docs(V4B): 归档原理图 Ver4.01 + 硬件变更记录(拨码三极管 5.1K→0Ω, C_eff 43→68)
- docs/hardware/DLD-154_Ver4.01_20251021_Logic.pdf (用户提供归档)
- hardware-change-notes.md: 记录 2026-09-03 硬件修复(5.1K→0Ω)与固件 V4.29
  COIL_CAL_C_NF=68 的对应关系; 遗留: 图框REV 3.01→4.01 待对齐、33nF档复测
2026-09-03 14:50:04 +08:00
wangfq ac3fda09e2 feat(V4B): V4.29 — C_eff 标定定稿 68 (0Ω板低频档) + 硬件疑点闭环
硬件修复(用户): 拨码三极管 5.1K→0Ω → 第二颗33nF真正并联
0Ω板低频档实测: 52k/136µH→C_eff=68.9; 127k/23µH→68.3; 88k/48µH→68.1 (均值68.4≈名义66)
→ V4.28 的 43nF 为 5.1K 旧板带病特性(三极管未饱和导通, 并联只等效+8.6nF), 作废
改动: COIL_CAL_C_NF 43→68; 33nF档标定34(旧板)待0Ω板复测
验证: 68 回代残差 ≤1.5% (52k→138vs136; 127k→23vs23; 88k→48vs48)
文档: devlog V2.27 / spec V2.8 / design doc v0.6
2026-09-03 14:13:08 +08:00
wangfq 5c8a425da1 docs(V4B): 双档标定记录 — 33nF档 C_eff=34.4(宏参考34); 两档有效C比仅1.25(名义2.0)疑低频档并联未全效, 待查
高频档(33nF名义)3组实测: f=73k/179k/125k → C_eff=35.0/34.4/33.8 (均值34.4)
低频档(66nF名义)5组: C_eff=41.3~45.5 (均值43)
→ TaskLoop.h 增加 COIL_CAL_C_NF_33 参考宏; 拨33nF档使用时把 COIL_CAL_C_NF 改34
无行为变化(默认仍43=低频档标定)
2026-09-03 13:48:32 +08:00
wangfq c3a5a6f6ff feat(V4B): V4.28 — L估算引入标定等效谐振电容 COIL_CAL_C_NF=43
问题: V4.27 频率对齐后 L 仍有系统性 ~1.5 倍偏差(实际/打印 1.46~1.64)
根因: 公式用名义档位电容 66nF, 但 5 组 LCR 实测反推振荡回路等效
      C_eff=41.3~45.5nF (均值 42.97) — 频率真实+LCR真实下偏差收敛到 C 一参
改动: coil_l_uH 改用 COIL_CAL_C_NF 43 (宏可标定); COIL_DEF_C_NF 保留名义口径
验证: 43nF 回代 5 组残差 ±6% 内 (64k→144vs136 +5.7%, 113k→46vs48 -3.9% ...)
标定指引: LCR 测 L → C=2.533e7/(f²×L) 多颗平均改宏
文档: devlog V2.26 / spec V2.7 / design doc v0.5
2026-09-03 12:11:02 +08:00
wangfq 6b7d624ff0 fix(V4B): V4.27 — 频率测量 4 倍偏差修正 (示波器 30.23k vs 打印 7k)
根因(两处2倍叠加):
1. calc_freq_khz 常数 60000 按 60MHz 假设; 实际 TMR3 计数时钟=sclk=120MHz (HEXT×10, AHB/APB1÷1)
2. 输入捕获 DIV_2 (每2边沿捕获, Xn 翻倍), g_input_div 从未参与换算
→ Xn=2×120M/f_real, f_print=f_real/4 (30.23/4=7.56✓ 36.82/4=9.21✓)

改动: calc 60000→240000 (注释推导); coil_l_uH 改随 f_kHz (25330000/(f²×C66));
      DBG/EVT 用同一 _fk; 版本 V4.27; spec §4.1.2 文字更正 + devlog/design v0.4 标注影响

影响: 旧日志 f/L 需×4 (16.3kHz 假象实为 65.2kHz≈90µH 正常线圈); V4.26 告警窗随真实 f 自洽
2026-09-03 11:49:43 +08:00
wangfq dd14e083fa feat(V4B): V4.26 调试打印 — DBG 周期行加 L 粗估(coil_l_uH, Xn精确) + coil_fault EVT 同步
DBG|t=2000ms f=16kHz L=1445uH Xn=3681 LPCNT=35 ...
- L_uH = Xn^2/(142×C), 默认低频档 C=66nF; 拨码 33nF 档结果×2
- 例: Xn=3681(f=16.3k)→1445uH; Xn=685(87.6k)→50uH; Xn=485(123.9k)→36uH? 边界自测
2026-09-03 11:31:03 +08:00
wangfq 92f675e2d3 feat(V4B): V4.26 — 线圈电感量告警(一长一短) + 故障补偿 60s→10s (4点拍板)
1. 默认低频档频率合理窗 20~120kHz, 出界即告警(不做档位判定/灰带):
   TaskLoop.c 新增 coil_monitor() — 稳定+无车空闲由无车主路径调用,
   Origin 反推空场 f, f<20kHz→L偏大/f>120kHz→L偏小, 1s 防抖置位/清除
2. 告警形式: 黄灯"一长一短" 200ms亮/100ms灭/100ms亮/800ms灭 循环 (模式5)
3. 黄灯优先级: 断开快闪 > 故障补偿(学习)常亮 > 电感量一长一短 > N短闪 > 灭
4. 故障补偿等待 ENV_RESYNC_WAIT 6000→1000 (60s→10s): 总补偿 ~66s→~21s

验证: tests/test_coil_range.c 5场景(边界19/20/120/121+防抖) ALL PASS;
      test_env_resync.c 适配10s(applied_at=1600tick) 5场景 ALL PASS; 语法 0 error
文档: devlog V2.24/spec V2.5/manual V2.9/design doc v0.3(标记已实现)
修复: 源文件行尾多CR污染(\\r\\r\\r\\r\\n)统一规范化回标准CRLF
2026-09-03 10:50:26 +08:00
wangfq 433b7f472d docs(V4B): 线圈告警设计稿 v0.2 — 合理范围改 50~1000µH(两档任意合法), 三区窗口重算(绿27.7~87.6/红<19.6>123.9) 2026-09-03 09:25:01 +08:00
wangfq c7bc95543b docs(V4B): 线圈电感量估算与不合理范围告警 设计讨论稿(未实现, 三区制) 2026-09-02 22:41:06 +08:00
wangfq 47cb1d944e fix(V4B): V4.25 黄灯预判改锁存语义 — 触发后回摆保持常亮, 环境空闲稳定5s才灭
原(V4.25首个提交): 黄灯条件 wait_cnt>=5s, 回摆(wait清零)即灭 — 用户反馈应锁存:
一旦5s黄灯常亮, 高位回摆/目标靠近也保持常亮; 只有"新的没有变化的环境"
超过5s 确认恢复, 黄灯才灭。

改动:
- 新增 g_env_warn 预判锁存标志(只增不清): dev>+4dlt 高位累计满
  ENV_WARN_WAIT=500tick(~5s) → g_env_warn=1, 黄灯常亮
- 新增 g_env_recover_cnt 恢复确认: 环境回窗口内且 dev 未进进入线(>-dlt)
  连续 ENV_RECOVER_WAIT=500tick(~5s) → 解除锁存, 黄灯灭
  - 目标进确认区(dev<-dlt)/深压(dev<-4dlt) → 恢复计时清零
  - 高位重现 → 恢复计时清零, 黄灯保持
- abort/apply 均不清 g_env_warn (替换后也需恢复确认5s才灭)
- 黄灯模式4条件 = g_env_resync || g_env_warn
tests 5 场景: 回摆保持常亮→稳定5s灭→高位重现再锁存; 学习打断/放弃后锁存保持
docs: devlog V2.23 + spec V2.4 + 手册 V2.8 同步锁存语义
2026-09-02 19:03:49 +08:00
wangfq 7fd120fdf3 feat(V4B): V4.25 — 环境异常黄灯预判: 高位持续5s即常亮(将进入重学)
背景: V4.24 黄灯只在60s进入学习后才亮, 前60s操作员无可视反馈
改动: poll_yellow_led 模式4条件放宽 = g_env_resync || g_env_wait_cnt>=ENV_WARN_WAIT
  - ENV_WARN_WAIT=500tick(~5s) 放 TaskLoop.h 文件级(poll_yellow_led 可见)
  - dev>+4dlt 高位连续5s未回摆 → 黄灯预判常亮; 累计60s才真正学习(黄灯保持)
  - 预判≠学习: 回摆/目标靠近(wait清零) → 黄灯即灭, 不触发学习
tests/test_env_resync.c 扩展: 预判点亮时刻=500tick / 瞬态4000tick预判亮但不学
  / 打断回摆后预判灭; 5场景ALL PASS + 语法0 error
docs: devlog V2.23 + spec V2.4(ENV_WARN_WAIT行) + 产品手册 V2.8 同步
2026-09-02 18:40:39 +08:00
wangfq 672f143e99 feat(V4B): V4.24 — 环境重校准:永久环境变化自动恢复基线(金属板A拿走场景)
现场(2026-09-02实测): 线圈旁金属板A上电把Origin学低(128096),A拿走CAPVD弹回
真空场(128856) dev=+761(0.59%),被36321a1双向保护"dev>0永不更新"永久冻结
→ B触发需809cnt(正常54cnt) 灵敏度假性降低且不恢复(V4.20分钟级可自愈)

修复: dev>+4dlt高位两段式受控重校准
  ① 60s(ENV_RESYNC_WAIT)高位连续未回摆 → 判定永久环境变化(瞬态铁块类不污染)
  ② 学习基线B: 连续空闲窗200tick均值 + settle判稳(连续2窗漂移≤0.1%)
  ③ 空闲原子替换Origin, 清freeze/ORG/entry残留, slow snap, 黄灯恢复
- 学习期打断(回窗/dev<0/断线重连)→重算; 30s预算超时放弃保留旧Origin
- 黄灯模式4: 环境学习中常亮(优先级: 断开快闪>学习常亮>N短闪>灭)
- tests/test_env_resync.c 5场景ALL PASS(恢复66s/瞬态不学/打断重算/放弃/不震荡)
- docs: devlog V2.22 + spec V2.3 + 产品手册 V2.7 同步
2026-09-02 18:10:28 +08:00
wangfq cd0fd90770 feat(V4B): V4.23 — 红灯呼吸对齐vd960Loop(≈2.6s) + 上电自检基准判稳
现场测试 DLD154V4 反馈两问题修复:

1. 红灯呼吸太快 → 借鉴 vd960Loop 效果 (main.c poll_red_pwm)
   - 参数按 665/6800 缩放取整: 大步 100→39(≈5.9%), 近顶 20→10(≈1.5%),
     分界 585(88%), 峰值保持 660×3 步
   - 周期 ≈1.6s → ≈2.6s (仿真 42 步×60ms=2520ms)

2. 绿灯上电自检闪到"稳定基准值"才停 (TaskLoop.c 稳定期判稳)
   - 根因: 固定 128 样本即判稳, 与基准是否稳定无关; static 计数不清零,
     二次稳定期(安全复位)1 样本瞬间判稳
   - 修复: 全局 g_stable_cnt/g_settle_cnt, 每窗(100样本≈1s)Origin 均值
     漂移 ≤0.1% → settle++, 连续 2 窗 + 最少 128 样本判稳; 硬兜底 500
     样本(5s); 计数判稳退出/INIT_VD 清零

验证: tests/test_power_on_stable.c (200/300/500/200 样本 PASS),
      tests/test_red_breath.c (周期 2520ms/峰值保持/写值≤ARR PASS),
      gcc -fsyntax-only 两文件 0 error (借 vd960Loop AT32F421 库头)
文档: devlog 置顶 + 修订表回填 V2.12~V2.20 + V2.21; product-manual §5.1/
      核心特性; technical-spec V2.2 (§5.2 参数表/§7 判稳语义/§15 修订记录)

待现场验证: 呼吸观感、绿灯自检时长 (无车 2~3s / 首窗尖峰 3s / 5s 兜底)
2026-09-02 16:26:03 +08:00
wangfq 47898fd16e docs(V4B): devlog日期修正 — 9/2条目(V4.22/负variation/Debug打印)改2026-09-02
git真实时间戳核对: V4.04~V4.20发布于09-01(97a7fb2..5b0a4c2)
9/2提交: 278d470 Debug打印重组 / 36321a1 负variation修复 / 5799bd5 V4.22
2026-09-02 13:44:57 +08:00
wangfq 5799bd535d chore(V4B): V4.22 — DEBUG改编译器-DDEBUG控制, 删除cmcng.h DEBUG_ENABLE块
- cmcng.h: 删除 DEBUG_ENABLE 宏块, DEBUG 由编译器预处理器设置
- 版本: FIRMWARE_VER 4.20→4.22, SUB 20→22
- 编译调试版: Keil C/C++ 预定义符号加 DEBUG; 发布版不带即关闭打印
2026-09-02 11:57:01 +08:00
wangfq 8cbd69a111 fix(V4B): debug打印t=0ms bug + freeze_ref残留清零 (V4.20)
日志复现: DBG行t恒为0(先归零后打印) — 改为先取时间再归零
         FRZ=0/129058 ref残留(正常跟踪未清) — 对称窗口分支补 freeze_ref=0
无功能影响, 仅打印正确性/美观
2026-09-02 11:25:47 +08:00
wangfq 36321a171f fix(V4B): 负variation铁块锁死修复 — 基线跟踪双向对称保护 (V4.20)
现场: 特殊铁块(磁导率主导)靠近 → variation负 → Origin被污染 → 离开时假进入 → 锁死不释放
根因: 基线跟踪单边保护(只挡dev>+4×dlt), 负偏差(CAPVD>Origin)照常更新Origin
      FREEZE_TIMEOUT=10s后直接跳污染值更彻底
修复:
1. 偏差窗口对称 [-4×dlt, +4×dlt] — 负偏差也冻结基线
2. 负偏差只冻结、永不超时更新Origin(铁块停留多久不污染)
3. 正偏差保留FREEZE_TIMEOUT兜底(车辆长时间信号不丢)
4. 新增 EVT|neg_var_freeze 事件打印
单测: tests/test_neg_variation.c 6项全过(决策/超时/场景仿真)
文档: devlog V2.19
2026-09-02 10:26:41 +08:00
wangfq 278d470b60 feat(V4B): Debug串口打印重组 — 频率/采样/基准全量输出 (V4.20)
现场有影响算法的异常待分析, 扩充调试输出:
1. 周期状态行(2s, DBG|前缀): f频率kHz/Xn/LPCNT/Value/CAPVD/slow/Origin/dlt/SENS/VD/FRZ/LIM/LOOP/STBL
   - calc_freq_khz(): f=60000×LPCNT/CAPVD (60MHz捕获时钟, 无车≈99kHz/深车124kHz验证✓)
   - g_slope_limit_cnt: 斜率限幅截断计数(EMI线索, 周期清零)
2. 事件行(EVT|前缀): enter_try(进入线首中)/leave_try(离开线首中)/loop_disconnect/loop_reconnect
   - 原有 Car_In/Car_OFF/Loop stable/Baseline timeout 保留
3. cmcng.h 新增 DEBUG_ENABLE 开关(1=开现场分析 0=关发布)

文档: devlog V2.18
2026-09-02 09:49:24 +08:00
wangfq 5b0a4c26d7 chore(V4B): 发布定稿版本号 V4.20 (方案B调校内容, 版本号按产品线跳号)
- cmcng.h: FIRMWARE_VER 4.07→4.20, SUB 7→20
- devlog V2.17: V4.20 发布条目 + 历史版本对照
- 代码内容与 V4.07 一致(方案B: 进入{337,71,38,25}/释放{51,27,18,12})
2026-09-01 18:05:48 +08:00
wangfq 3d8f412f33 feat(V4B): V4.07 SENS=0 触发回调 357→337 — 最终表 {337,71,38,25}/{51,27,18,12}
现场反馈: 等比值偏低档触发过深, SENS=0 回调至 337(300~357 折中)
- 进入表: {357,71,38,25} → {337,71,38,25}
- 释放表: {51,27,18,12} 不变
单测: test_planb_release.c 断言更新(V4.07), 全部通过
文档: devlog V2.16 + technical-spec §4.3.3
2026-09-01 15:31:05 +08:00
wangfq 778664067e feat(V4B): 方案B现场调校定稿 V4.06 — 进入加深+释放调浅双表, 全档等比
现场实测: SENS=3 进入21→25 + 释放14→12 接近PD132T最高灵敏手感(用户调校)
- 关键认知: 释放方向是CAPVD向Origin恢复, 释放线调浅(dlt小)→更晚释放
  (V4.05加深方向失败已记录, 现场实测确认调小有效)
- 全档等比: 进入×25/21 {300,60,32,21}→{357,71,38,25}
          释放×12/14 {60,32,21,14}→{51,27,18,12}
- 滞回 66%→47%, 触发更严+释放更晚, 行为等效PD132T(表值不再一致)
- 废弃 ReleaseTable_B 独立表(方向错误, 并入 SensTable_1 调校)

单测: test_planb_release.c 更新(滞回正/表值/调浅释放≥原始4档×4速/释放时刻) ✓
      test_release_slow_filter.c(方案A)仍通过
文档: devlog V2.15 + technical-spec §4.3.3 V4.06段
⚠ SENS=0 进入300→357变化大, 现场低档漏检可单独回调
2026-09-01 14:38:52 +08:00
wangfq 9f132c1e16 docs: 方案B现场实测记录 — 加深表/原始表均早于PD132T, 实验判死回方案A
实测: USE_PLANB_TABLE=1(加深)释放更早, =0(原始)也早于PD132T — 仿真方向预测完全验证
结论: 方案B不可行(阈值表=固定偏移, 无法复现慢滤波的速度相关滞后)
路线: 回方案A, 下一步测 v4.04-planA (α21+snap 完整修正版)
2026-09-01 14:07:43 +08:00
wangfq 60413be73f feat(V4B): 方案B实验 V4.05 — USE_SLOW_RELEASE=0 + 调深释放阈值表 ReleaseTable_B
对比路线(与V4.04方案A A/B): 释放走快滤波(无慢滤波状态, 消除悬停风险),
手感对齐改由调深释放表 {80,42,27,18}(原始{60,32,21,14}加深30%)承担。

⚠关键认知(仿真+单测双确认): 释放方向是CAPVD向Origin恢复,
dlt增大(调深)→释放线降低→释放更早(与'调深=更严格'直觉相反)。
仿真预测: 深信号(≥0.2%)原始表更接近PD132T; 浅信号(0.1%)加深表更接近。

单测: tests/test_planb_release.c 新增(滞回为正✓/加深表释放≤原始表✓/释放时刻合理✓)
     test_release_slow_filter.c(方案A)仍通过, 两方案可回归
文档: devlog V2.14 + technical-spec §4.3.3 方案B段
2026-09-01 13:48:22 +08:00
wangfq 97a7fb2dba fix(V4B): 方案A现场复核修正 V4.04 — RELEASE_ALFA 18→21(精确τ117ms对齐PD132T) + 进入snap消除HR0/2假释放
现场金属板复测两现象:
1. 慢速抬板释放高度 V4B 仍比 PD132T 高一点(跟手速有关) — 根因: τ对齐用了近似口径
   (α18 精确τ≈137ms vs PD132T α79@43.7ms 精确τ≈118ms, α=79时 T×256/α 高估19.6%)
   + V4B 3次确认30ms。修正: RELEASE_ALFA 18→21 (精确τ≈117ms)。
2. 定在HR0/2(释放高度一半)保持~1s V4B释放、PD132T不释放 — 根因: 双滤波进入瞬态假释放
   (快滤波30ms确认进入, 慢滤波还悬在基线附近, 残余信号0.032%~0.044%时释放条件瞬时为真)。
   修正: 进入确认瞬间 snap loop1_CAPVD_slow = loop1_CAPVD (进入线恒深于离开线, 释放条件结构性为假)。

验证: gcc单测 τ fast=30ms/slow=120ms, 释放时机差 200ms ✓
仿真: 3s抬升高度差 +9mm→+3mm; 0.10%板HR0/2假释放消除 ✓
文档: devlog V2.13 + technical-spec §4.3.3
2026-09-01 09:46:55 +08:00
wangfq 9391e1b808 feat(V4B): 释放手感对齐 PD132T — 释放慢滤波(方案A, 固件 V4.03)
现场金属板测试: 灵敏度表已对齐, 但释放高度 V4B 比 PD132T 低
(刚离开触发位置即释放 vs 需离更远)。根因: IIR 滤波时间常数差异
(V4B 10ms+α79→τ32ms vs PD132T 43.7ms+α79/64→τ142~175ms),
释放阈值浅(进入20%)放大差异。

修复(USE_SLOW_RELEASE 开关, 默认 1):
- 新增独立慢滤波 loop1_CAPVD_slow(α=18/256 @10ms→τ≈142ms),
  吃原始 Value 不经斜率限幅, 复刻 PD132T 恢复速度
- 离开判定改用慢滤波值, 进入路径不变
- RELEASE_ALFA=18 可调(PD132T SET_FLT=ON 时用 15≈τ170ms)
- 同步: INIT_VD/稳定期/线圈重连
- 版本 V4.03(顺带修正 cmcng.h 字符串"4.00"与数字 4/2 不一致)

验证: gcc 单测 tests/test_release_slow_filter.c
τ fast=30ms/slow=140ms; 释放时机差 260ms ✓
文档: technical-spec §4.3.3 + devlog V2.12
待板级: 真机金属板测试 + MRS 编译
2026-08-31 16:52:45 +08:00
wangfq f0f2c29a04 V2.11: 灵敏度表全档与PD132T完全一致{300,60,32,21}/{60,32,21,14}(用户本机已调) + 全文档同步 2026-08-28 17:39:07 +08:00
wangfq e3fe373fe5 V2.11: 离开表改回分档{60,32,21,14}——现场确认SENUP标贴OFF=SET_ASB=1(出厂默认) + 文档同步 2026-08-28 11:55:30 +08:00
wangfq c43d5297cb V2.11: 拨码低有效(标贴ON=电平0)修正——恒14对应SENUP标贴ON, 出厂默认全OFF=分档态 2026-08-28 11:51:13 +08:00
wangfq 0651c3f67b V2.11: technical-spec §4.3.3 补充恒14离开阈值设计依据(对齐PD132T默认) 2026-08-28 11:44:37 +08:00
wangfq 1f308e4a44 V2.11 devlog: 增强滤波FLT不纳入对齐(现场少用, 2026-08-28决策) 2026-08-28 11:41:33 +08:00
wangfq 7b2de21ef4 V2.11: 离开表恒14对齐PD132T默认(ASB=OFF), 进入+离开双向对齐 + 文档同步 2026-08-28 11:40:49 +08:00
wangfq b3bbb29300 feat(DLD154V4B): V2.11 灵敏度 0/1 档对齐 PD132T(216/108→300/60)
PD132T 客户现场替换平滑交付:
- SensTable {216,108,36,20} → {300,60,36,20}
  0/1 档严格对齐 PD132T (Δf/f 0.33%/0.16%→0.46%/0.09%)
  2/3 档保持 V4B 优化值 (与 PD132T 32/21 几乎一致)
- 离开表不动 (3 次确认+滞回已更稳)
- 文档同步: technical-spec/product-manual/release-notes/devlog (V2.11)
- 完整交付分析: vd-analysis/docs/pd132t-to-v4b-delivery-alignment.md
2026-08-28 10:38:02 +08:00
wangfq 794e097587 fix(DLD154V4B): 修复 WDT_DIV 分频枚举传值 bug — 实际分频 4 导致 410ms 超时不断复位
现场实测 LIMIT=100 (500ms 喂狗) 不断复位重启, 改 50 正常。
根因: wdt_divider_set() 参数是枚举值 (WDT_CLK_DIV_16=0x02),
宏误传 16 (0b10000) -> 3bit 寄存器截断为 0 = WDT_CLK_DIV_4
-> 实际分频 4, 超时 4x4096/40k = 410ms < 500ms 喂狗周期。
修复: WDT_DIV=2 (枚举值) + (wdt_division_type) 显式转换。
隔离测试 mock 升级为 3bit 截断+反推分频, 复现 bug 并断言修复。
vd960Loop 原实现用 WDT_CLK_DIV_64 枚举写法, 无此问题。
2026-08-28 09:08:42 +08:00
wangfq 8f43f8f1c9 feat(DLD154V4B): V2.10 新增 IWDT 硬件看门狗(超时≈1.64s,双保险喂狗)
- 对齐 DLD154Pro V3.03 方案: TMR15 ISR 5ms 递增 g_wdg_counter,
  主循环 poll_wdg() 每 500ms 喂狗, 超时 16×4096/40k ≈ 1.64s
- 双保险: ISR 死→计数不涨→永不喂狗; 主循环死→poll_wdg 不执行→复位
- main() 使能后立即喂一次, 给 FreeRTOS 启动留足时间
- 隔离测试 5 项断言全过 (init 配置/10s 喂狗 20 次/ISR 死不喂/边界 99-100 tick)
- 文档同步: technical-spec(架构图+§13.1 机制) / release-notes(V2.10)
  / product-manual(特性+版本) / roadmap / devlog
2026-08-28 08:56:33 +08:00
wangfq 859842aba0 feat(DLD154V4B): V2.9 平坦性离开判定默认关闭(现场实测不理想)+ 全量文档同步
- TaskLoop.h: USE_FLATNESS_EXIT 1→0,离开判定切回简单滞回 3 次防抖
  (与 DLD154Pro 一致);平坦性代码保留 #if 内可一行开启
- technical-spec: 模式1标默认(V2.9起)/模式2标禁用;修正模式1伪代码
  方向错误(CAPVD<Origin+dlt → (Origin-dlt)<CAPVD);延迟/误检率表同步
- product-manual/release-notes: 离开判定口径改'滞回+连续确认(平坦性可选)',
  最高档灵敏度 0.015%→0.031%(V2.8 残留);版本历史补 V2.7/V2.8 缺行
- roadmap: V2.6→V2.9 行更新 + 突破表离开判定
- devlog: 置顶 2026-08-28 条目(背景/决定/同步清单)
2026-08-28 08:45:34 +08:00
wangfq cb1c9c3f82 docs(DLD154V4B): 补充 SENS=3 调档现场原因 — 广告杆落杆误触发
现场现象: 广告杆/道闸落杆时最高灵敏度档(10/9)易误触发, 落杆机械动作+电机
电磁扰动越过 0.015% Δf/f 阈值。V2.8 调至 20/14(0.031% + 滞回70%)后
落杆扰动不再越线, 正常车辆信号(ΔL/L 1~5%)不受影响。
2026-08-27 16:26:24 +08:00
wangfq 50dbb07dde feat(DLD154V4B): 灵敏度最高档调整 SENS=3 10→20 + 文档同步
- src/TaskLoop.c: SensTable[3] 10→20 (Δf/f 0.015%→0.031%,
  ΔL/L 0.031%→0.061%), SensTable_1[3] 9→14 (滞回 90%→70%) —
  最高档原阈值贴近噪声底易误触发, 提高并加大滞回
- src/main.c: 注释掉重复定义 g_input_div=1 (TaskLoop.c:23 已有, 清理 ODR)
- docs/technical-spec.md §4.3.1 灵敏度表+表格+口径说明
- docs/reference_analysis.md §5.6 灵敏度表
- docs/devlog.md 置顶 2026-08-27 条目 + 修订记录 V2.8
2026-08-27 16:22:58 +08:00
wangfq d5fc1ea1f7 docs: 环路车辆检测器验收标准 V1.0 2026-06-30 14:25:42 +08:00
wangfq 7c276e5049 docs: DLD154V4B 发展路线图 V1.0 — M1H→V4B 演进回顾 + V3.0 目标 2026-06-30 11:50:04 +08:00
wangfq 266ffc5909 docs: 四文档更新至 V2.6 — 单路 IIR + WINDOW_ORIGIN=500
- devlog: 新增 V2.6 架构简化章节 + 两阶段基线策略
- release-notes: V2.5→V2.6, 更新 M4 优化表(双路→单路 IIR)
- product-manual: V2.5→V2.6 + 版本历史
- technical-spec: §4.2 重写为单路 IIR ALFA_CAP1=79 @10ms,
  §4.3.2 去除 CAPVD_fast 引用, §4.4.3 两阶段基线表,
  §15 新增 V2.1 修订记录
2026-06-29 19:16:11 +08:00
wangfq 8f951b356f tune: 稳定期基线窗口 500→100, 开机 Origin 收敛加速
稳定期用 100 样本 × 10ms = 1s 快速收敛, 开机即用。
稳定后切换为 WINDOW_ORIGIN=500 (5s) 提供更强的噪声抑制。
2026-06-29 18:45:29 +08:00