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 内; 缓慢接近/停边界仍不跳。
This commit is contained in:
@@ -4,6 +4,28 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-09-11 — 修正 V4.36.42 引入的离开变慢(G3 最小保持计时器递减位置错误)(固件 V4.36.43)
|
||||
|
||||
用户反馈(烧 V4.36.42 后):**现在反应好慢,离开 3、4 秒了才释放**。
|
||||
|
||||
**日志定位**(46µH/113kHz):离开**全部**是 `Car_OFF(band_timeout)`(环带兜底),延迟 3.5~4.7s;`RLN` 正常(有车态 = `Origin−41` ⇒ G1 生效、100ms 自激已消失 ✓),但正常释放路径从未命中。
|
||||
|
||||
**根因(实现错误)**:G3 的倒计时 `g_rel_hold_tick--` 被放进了 **`if (!loop1_VD_FLAG)`(无车)分支**内 ⇒ **有车期间永不递减** ⇒ 首次 `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` / 普通)揪出。
|
||||
|
||||
**现场验证(待填)**:
|
||||
- [ ] 离开延迟恢复到 ~300ms 以内(不再常态出现 `Car_OFF(band_timeout)`)
|
||||
- [ ] 缓慢接近/停在边界仍不跳(G1 目标不受影响)
|
||||
- [ ] 日志片段粘贴区:
|
||||
```
|
||||
(待填:Car_OFF, … 行,确认不再是 band_timeout)
|
||||
```
|
||||
|
||||
语法:待 MRS 编译确认(本机无 AT32 工具链);单测 8/8 全绿;REV 4.36.43;spec V2.62 / devlog V2.80。
|
||||
|
||||
## 2026-09-11 — 低Q 临界悬停自激根治:进/出判定参考统一 + 释放带夹紧 + 最小保持(固件 V4.36.42)
|
||||
|
||||
用户反馈:拿金属板**缓慢接近**的时候,判据**乱跳**;随后用 **35µH**(128kHz)、**46µH**(112kHz)线圈复测,同样现象。
|
||||
@@ -2235,6 +2257,7 @@ if (dev >= dlt_ORG × 4) {
|
||||
|
||||
| 版本 | 时间 | 说明 |
|
||||
|------|------|------|
|
||||
| V2.80 | 2026-09-11 | V4.36.43 修正 V4.36.42 的 G3 放置错误: g_rel_hold_tick-- 原在"无车"分支内 ⇒ 有车期间不递减 ⇒ 正常释放被永久挡住只能 band_timeout(离开延迟 3.5~4.7s); 移到"有车"分支顶部 |
|
||||
| V2.79 | 2026-09-11 | V4.36.42 低Q 临界悬停自激根治: vac_ref() 门控改用状态无关进表 dlt(G1) + 低Q 释放带夹紧守卫(G2, 不动 180) + 有车 300ms 最小保持(G3); 22µH/35µH 现场自激(100ms 周期)修后 300/300→1/0; 新增"非低Q不跳"判别用例 |
|
||||
| V2.78 | 2026-09-11 | V4.36.41 环境重校准后触发高度变低根治: 新增 origin_set_atomic() 同步真空 EMA(3 处写入点; 维持 Origin−EMA ≤1×dlt 不变式) + EMA 余数累加消 ±127 counts 整数死区; 新增镜像单测 test_vac_ref_reanchor 5 场景全绿 |
|
||||
| V2.77 | 2026-09-08 | 注释同步: TaskLoop.c/h + tests 全部 疾闪 → 一长两短 (V4.36.38 现役描述, 历史版本行保留变更记录) |
|
||||
|
||||
@@ -192,6 +192,18 @@ EMA 更新窗 = 无车 + `dev ∈ ±4×dlt`(`1302-1326`)。把板拿到感
|
||||
|
||||
**G3 权衡(现场可选调)**:300ms 最小保持会让**真实车辆离开时的释放**最多晚 300ms(对存在型/流量计数无影响;若做速度估计或需要更快的释放沿,可把 `REL_MIN_HOLD_TICKS` 降到 10=100ms)。
|
||||
|
||||
## 13. 返工记录:V4.36.42 的 G3 放置错误(V4.36.43 修正)
|
||||
|
||||
现象:烧 V4.36.42 后**离开 3、4 秒才释放**;日志 4 次 `Car_OFF` **全是 `band_timeout`**(环带兜底),延迟 3.5~4.7s;`RLN` 正常(有车态 = `Origin−41`)⇒ G1 目标达成(100ms 自激消失),但正常释放从未命中。
|
||||
|
||||
根因:`g_rel_hold_tick--` 被放进 **`if (!loop1_VD_FLAG)`(无车)分支**(原 `:1308`)⇒ 有车期间永不递减 ⇒ 首次 `Car_In` 后常驻 30 ⇒ `g_rel_hold_tick == 0` 永假 ⇒ 正常释放被永久挡住。
|
||||
|
||||
修正:移到 **`} else {`(有车)分支顶部**(`:1531` 后、`#if USE_FLATNESS_EXIT` 之前,每 tick 必过且在释放判定之前)。
|
||||
|
||||
**教训(已同步进单测注释与 skill)**:
|
||||
1. 镜像单测只验证**算法语义**,**验证不了固件内执行路径/位置**(计数器在哪个分支递减、是否每 tick 必过)⇒ 这类错误必须靠**日志的原因字段**(`Car_OFF(band_timeout)` / `Car_OFF_FLAT` / 普通)暴露。
|
||||
2. 凡是"进入后 N 秒/N tick 生效"的守卫,实现后**先查递减调用点是否在每 tick 必经路径上**,再上板。
|
||||
|
||||
## 附:相关历史(devlog)
|
||||
|
||||
| 版本 | 内容 |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# DLD154V4B 产品手册
|
||||
|
||||
> 单路线圈车辆检测器 | 型号: DLD154V4B | 版本: V2.18
|
||||
> 单路线圈车辆检测器 | 型号: DLD154V4B | 版本: V2.19
|
||||
> 适用于停车场、收费站、交通卡口等场景的车辆到达/离开检测
|
||||
|
||||
---
|
||||
@@ -281,6 +281,7 @@ SW_5 = ON 时:车辆(金属)持续压线超过 **4 分钟**(LC_HOLD_TIME
|
||||
| V2.14 | 2026-09-08 | 电感分级降级(固件 V4.36.37 方案A):f>156k 拆分——156~171k 可用级(恒判车)、f>171k 短路级快闪200ms(宏=1 等同断开);真短路阈 20µH |
|
||||
| V2.15 | 2026-09-08 | 可用级黄灯改**一长两短**(固件 V4.36.38):900/300/100/300/100/700ms 循环,与一长一短(出窗)/快闪(断开)区分 |
|
||||
| V2.16 | 2026-09-08 | 短路级宏默认=1(固件 V4.36.39,用户拍板):L<20µH 出厂即等同断开;=0 可关恢复仅指示 |
|
||||
| V2.19 | 2026-09-11 | **修正 V4.36.42 的离开延迟**(固件 V4.36.43):上一版在"进入后最小保持"期内因计时位置错误挡住了正常离开判定,导致离开需等环带兜底(实测 3.5~4.7s);本版恢复正常(最小保持仍 300ms) |
|
||||
| V2.18 | 2026-09-11 | **边界悬停不再反复跳变**(固件 V4.36.42):金属板缓慢接近、或车辆停在环线边缘时,此前会出现"有车/无车"以约 100ms 周期连续反复(流量计数会重复计数);本版进入/离开判定改用同一参考,并增加进入后 300ms 最小保持(离开判别最多晚 300ms) |
|
||||
| V2.17 | 2026-09-11 | **环境重校准后灵敏度恢复**(固件 V4.36.41):黄灯常亮故障补偿结束后,进入判定参考与基准同步;此前会残留"旧真空参考" ⇒ 金属板进入触发高度偏低、需断电重启才恢复 |
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# DLD154V4B 技术规格书
|
||||
|
||||
> 单路线圈车辆检测器 | 固件版本: V4.36.42 | 文档版本: V2.61
|
||||
> 单路线圈车辆检测器 | 固件版本: V4.36.43 | 文档版本: V2.62
|
||||
> 本文档面向工程开发、系统集成及故障深度分析
|
||||
|
||||
---
|
||||
@@ -863,5 +863,6 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
|
||||
| V2.57 | 2026-09-08 | V4.36.39: COIL_UNDER_MIN_AS_OPEN 默认值 0→1 (用户拍板) —— L<20µH 短路级出厂即等同断开(判车停+继电器释放+绿灯灭) |
|
||||
| V2.58 | 2026-09-08 | V4.36.40 热切换修复: recover 恢复判定改 TMR3 实时 Xn(240000/Xn) —— 原 calc_freq_khz(冻结Origin,LPCNT) 永不回窗致换线圈死锁; 恢复后自然走重连+判稳重建 Origin |
|
||||
| V2.59 | 2026-09-08 | 注释同步: 代码/测试全部 疾闪 → 一长两短 (V2.55~58 历史版本行保留当时变更记录) |
|
||||
| V2.62 | 2026-09-11 | **V4.36.43 修正 V4.36.42 引入的离开变慢**:G3 最小保持计时器 `g_rel_hold_tick--` 误置于无车分支 ⇒ 有车期间不递减 ⇒ 释放判定恒被挡住,只能靠 band_timeout 兜底(现场实测离开延迟 3.5~4.7s)⇒ 移到有车分支顶部每 tick 递减 |
|
||||
| V2.61 | 2026-09-11 | **V4.36.42 低Q 临界悬停自激根治**:`vac_ref()` 门控原先用会随状态切换的 `loop1_dlt_ORG`(无车=进表 49 / 有车=释表 23)⇒ 进门瞬间参考由 Origin 阶跃到 EMA,与低Q ×1.8 释放带叠加成**反向滞回** ⇒ 深度 1.0~1.8×dlt 的静止凹脉冲自激(100ms 周期)。新增 `vac_gate_dlt()`(G1) 统一参考 + 低Q 释放带夹紧(G2) + 有车 300ms 最小保持(G3);22µH/35µH 现场实测 300/300 → 1/0 |
|
||||
| V2.60 | 2026-09-11 | **V4.36.41 环境重校准后触发高度变低根治**:进入判定用 `vac_ref()=min(Origin,真空EMA)`,环境重校准路径未同步该参考 ⇒ 新增 `origin_set_atomic()`(3 处 Origin 写入点;维持 Origin−EMA ≤1×dlt 不变式)+ EMA 余数累加消 ±127 counts 整数死区;新增镜像单测 test_vac_ref_reanchor(5 场景) |
|
||||
|
||||
Reference in New Issue
Block a user