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 条目内 [ ] 占位)
This commit is contained in:
wangfq
2026-09-11 16:59:26 +08:00
parent 5fd58e035a
commit 0f8a0d6fbd
10 changed files with 411 additions and 10 deletions
@@ -66,6 +66,7 @@
#define ENTRY_CONFIRM_MID 4 // 中Q(80~100k)
#define ENTRY_CONFIRM_LO 5 // 低Q(f>100k): 抖动大, 多样本防假进入
#define REL_ORIGIN_FREEZE_TICKS 100 // V4.36.26/32: 释放后 Origin 全冻结 1000ms — 残余缓离窗口不入均值窗
#define REL_MIN_HOLD_TICKS 30 // V4.36.42(G3): 有车后最小保持 300ms 禁释放 (掐断进/出 100ms 级自激; 不延迟检出)
#define ORIGIN_LOWLEARN_TICKS 200 // V4.36.32: 冻结后降权低速补偿期 2000ms: 残余低值样本权重降 ×1/MULT
// 仿 PD132T 慢采样等效(10ms 快采样让 5s 窗装得快, 残余易拉低 Origin; 慢学更稳)
#define ORIGIN_LOWLEARN_MULT 5 // V4.36.32: 降权期均值窗放大 500→2500 样本(25s 窗), 学习速率 1/5