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
This commit is contained in:
wangfq
2026-09-03 16:08:21 +08:00
parent 71feb3e06d
commit 4200d96250
7 changed files with 288 additions and 232 deletions
+1
View File
@@ -13,6 +13,7 @@
| v0.4 | 2026-09-03 | **测频 4 倍偏差修正(V4.27**calc_freq_khz 60000→240000TMR3 实际 120MHz 计数 + 通道捕获 DIV_2)。本文 §3 中"Xn=3681→f=16.3kHz→L≈1.4mH 超限案例"为**测频 bug 假象**——修正后实为 f≈65.2kHz、L≈90µH 的正常线圈;该"红区案例"作废,需按真实频率重新采集现场数据 |
| v0.5 | 2026-09-03 | **L 估算标定(V4.28**:五组 LCR 实测反推振荡回路等效谐振电容 C_eff=41.3~45.5nF(均值 43),与名义 66nF 明显不符 → 固件改标定值 COIL_CAL_C_NF=43L_uH=2.533e7/(f²×C_eff));COIL_DEF_C_NF 保留为名义口径。残差 ±6% 内,待多线圈/标定电感进一步收口 |
| v0.6 | 2026-09-03 | **硬件修复后定稿(V4.29**:拨码三极管 5.1K→0Ω → 低频档并联全导通,C_eff=68.1~68.9(均值 68.4)≈名义 66。v0.5 的 43 为 5.1K 旧板带病特性(开关未饱和),**作废**COIL_CAL_C_NF 43→68,残差 ≤1.5%。33nF 档标定 34(旧板数据)待 0Ω 板复测 |
| v0.7 | 2026-09-03 | **故障补偿时序(V4.30**:预判 3sENV_WARN_WAIT 300)→ 补偿 8sENV_RESYNC_WAIT 800)→ 学习 3×2s → 替换后空闲 2s 恢复确认(ENV_RECOVER_WAIT 200)黄灯灭;总恢复 ~16s |
## 1. 背景
+35
View File
@@ -4,6 +4,40 @@
---
## 2026-09-03 — 故障补偿时序调整:预判3s + 补偿8s + 恢复2s(固件 V4.30
> **固件版本:V4.30**cmcng.hFIRMWARE_VER="4.30" + MAIN=4/SUB=30)。devlog 修订 V2.28。
### 拍板规格(2026-09-03
故障补偿节奏整体提速、现场手感更紧凑:
1. **预判 3 秒**ENV_WARN_WAIT 500→300):高位持续 3s 黄灯预判锁存常亮(原 5s)
2. **故障补偿 8 秒**ENV_RESYNC_WAIT 1000→800):累计 8s 高位进入基线学习(原 10s)
3. **新环境稳定 +2 秒**ENV_RECOVER_WAIT 500→200):学习完成原子替换 Origin 后,空闲连续 2s 恢复确认 → 黄灯灭(原 5s)
总恢复:~21s → **~16s**3s 预判 → 8s 触发 → 6s 学习(3×200tick) → 2s 确认灭)
### 改动
- ENV_WARN_WAIT 500→300~5s→~3s / ENV_RESYNC_WAIT 1000→800~10s→~8s / ENV_RECOVER_WAIT 500→200~5s→~2s
- tests/test_env_resync.c 重写(镜像与固件逐分支一致:学习中压线=搁置不退出、学习仅高位段计数、abort 后循环重触发语义)
- 版本 V4.29→V4.30spec V2.9 / devlog V2.28
### 验证(5 场景 ALL PASS
| 场景 | 期望 | 实测 |
|------|------|------|
| 永久变化 | warn@300 / applied@~1400 / 替换后 200tick 灭 | warn_at=300 ✓ applied_at=1400 ✓ 灭 ✓ |
| 瞬态 7s(<8s) | 锁存不学, 空闲 2s 灭, 二次 7s 再锁存 | ✓ |
| 学习期压线 | resync 保持=搁置, 走后再学完替换 | ✓ (applied_at=1401) |
| 不稳学习 | 预算 30s 放弃, 不污染, 黄灯保持 | abort=1 ✓ Origin 不变 ✓ warn=1 ✓ |
| 替换后稳态 | 无重复学习, 恢复确认后灭 | ✓ |
### 待现场验证
- A 拿走:~3s 黄灯亮 → ~14s 基线切 B(黄灯仍亮)→ 空场稳定 ~16s 黄灯灭
- ⚠ 补偿触发提前到 8s:持续 8~10s 的强磁干扰会触发学习(原 10s 边界)——现场观察确认可接受
## 2026-09-03 — C_eff 标定定稿 68(0Ω 板低频档)+ 硬件疑点闭环(固件 V4.29)
> **固件版本:V4.29**cmcng.hFIRMWARE_VER="4.29" + MAIN=4/SUB=29)。devlog 修订 V2.27。
@@ -1229,6 +1263,7 @@ if (dev >= dlt_ORG × 4) {
| 版本 | 时间 | 说明 |
|------|------|------|
| V2.28 | 2026-09-03 | V4.30 故障补偿时序: 预判3s(300)/补偿8s(800)/恢复2s(200), 总 ~16s |
| V2.27 | 2026-09-03 | V4.29 硬件修复(拨码三极管5.1K→0Ω)后 C_eff=68.1~68.9nF≈名义66, COIL_CAL_C_NF 43→68 (旧43为5.1K带病特性作废) |
| V2.26 | 2026-09-03 | V4.28 电感量估算引入标定 COIL_CAL_C_NF=43(名义 66nF vs 实测 C_eff≈435 组反推 41.3~45.5nF);残差 ±6% |
| V2.25 | 2026-09-03 | V4.27 频率测量 4 倍偏差修正(calc 60000→240000120MHz×DIV_2);coil_l_uH 随 f 修正;旧 f/L 日志需 ×4 |
+6 -5
View File
@@ -1,6 +1,6 @@
# DLD154V4B 技术规格书
> 单路线圈车辆检测器 | 固件版本: V4.29 | 文档版本: V2.8
> 单路线圈车辆检测器 | 固件版本: V4.30 | 文档版本: V2.9
> 本文档面向工程开发、系统集成及故障深度分析
---
@@ -365,7 +365,7 @@ if (!VD_FLAG) {
| 4× 冻结阈值 | 防止异常 CAPVD 上升污染基线(V1.5 |
| 5% 斜率限幅 | 过滤 EMI/闪电尖峰,保护 IIRV2.0 |
| 冻结超时 + 稳定性检查 | 防止永久冻结死锁(V2.3~2.5 |
| 环境重校准(V4.24/26 | dev>+4×dlt 高位连续 10sENV_RESYNC_WAITV4.26 60s 提速)→ 判定永久环境变化 → 学习基线 B(空闲窗均值+判稳,黄灯常亮)→ 原子替换 Origin;铁块类瞬态 10s 内仍只冻结不污染 |
| 环境重校准(V4.24/26/30 | dev>+4×dlt 高位连续 8sENV_RESYNC_WAITV4.26 60s→10sV4.30→8s)→ 判定永久环境变化 → 学习基线 B(空闲窗均值+判稳,黄灯常亮)→ 原子替换 Origin;铁块类瞬态 8s 内仍只冻结不污染 |
#### 4.4.3 基线更新速率(两阶段)
@@ -450,9 +450,9 @@ if (dev < dlt_ORG * 4) {
| STABLE_SETTLE_WINDOWS | 2 | ~2 s | 连续窗口漂移达标数 |
| STABLE_MAX_SAMPLES | 500 tick | **~5 s** | 自检硬兜底上限(超时强制判稳) |
| FREEZE_TIMEOUT | 1000 | **~10 s** | 基线冻结超时(连续稳定后更新 Origin) |
| ENV_WARN_WAIT | 500 tick | **~5 s** | 环境预判锁存(V4.25):dev>+4×dlt 高位连续 5s → 黄灯常亮预判(锁存) |
| ENV_RECOVER_WAIT | 500 tick | ~5 s | 恢复确认(V4.25):环境回正常空闲连续 5s 才解除预判锁存、黄灯灭(回摆/目标靠近保持常亮) |
| ENV_RESYNC_WAIT | 1000 tick | **~10 s** | 环境重校准等待:dev>+4×dlt 高位连续 10s 判定永久环境变化(V4.26 拍板:60s→10s |
| ENV_WARN_WAIT | 300 tick | **~3 s** | 环境预判锁存(V4.30):dev>+4×dlt 高位连续 3s → 黄灯常亮预判(锁存) |
| ENV_RECOVER_WAIT | 200 tick | ~2 s | 恢复确认(V4.30):新基线替换后 环境空闲连续 2s 才解除预判锁存、黄灯灭(回摆/目标靠近保持常亮) |
| ENV_RESYNC_WAIT | 800 tick | **~8 s** | 环境重校准等待:dev>+4×dlt 高位连续 8s 判定永久环境变化(V4.30 拍板:60s→10s→8s |
| ENV_LEARN_WINDOW | 200 tick | ~2 s | 环境学习窗口(基线 B 均值窗,学习期黄灯常亮) |
| ENV_LEARN_MAX_TICKS | 3000 tick | **~30 s** | 学习预算:窗口不稳超时放弃,保留旧 Origin(防死锁) |
| COIL_F_OK_MIN_KHZ | 20 kHz | — | 线圈频率合理窗下界(V4.26):默认低频档口径,f<20kHz → L偏大告警 |
@@ -774,3 +774,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
| V2.6 | 2026-09-03 | 更新至 V4.27:频率测量 4 倍偏差修正(calc_freq_khz 60000→240000TMR3 实际 120MHz 计数 + 通道 DIV_2 边沿分频,原按 60MHz 假设漏乘 2×2);§4.1.2 流程文字更正 |
| V2.7 | 2026-09-03 | 更新至 V4.28L 估算引入标定等效谐振电容 COIL_CAL_C_NF=43(名义 66nF 与实测 C_eff≈43 不符;5 组实测 41.3~45.5nF |
| V2.8 | 2026-09-03 | 更新至 V4.29:硬件修复(拨码三极管 5.1K→0Ω)使低频档并联全导通,C_eff 43→68.4≈名义66COIL_CAL_C_NF 43→68 |
| V2.9 | 2026-09-03 | 更新至 V4.30:故障补偿时序 预判 5s→3s(300)/补偿 10s→8s(800)/恢复确认 5s→2s(200),总恢复 ~16s |