docs: devlog — V2.3 基线冻结超时自动恢复

This commit is contained in:
wangfq
2026-06-29 10:25:08 +08:00
parent 269fa7f4cc
commit 22ffdede70

View File

@@ -433,10 +433,58 @@ if (!g_loop_stable) {
---
## 2026-06-29 — 基线冻结超时自动恢复
### 问题
V1.5 引入的 Origin 污染保护机制在 CAPVD 异常偏高时**永久冻结**基线。如果线圈因环境变化温度漂移、器件老化、更换线圈稳定在新的频率值Origin 永远不会更新 → 绿灯常亮、永久误判有车。只有 MCU 复位才能恢复。
### 方案
在冻结路径上增加**超时自动恢复机制**
```c
#define FREEZE_TIMEOUT 3000 // ~30s @ 10ms/tick
if (dev >= dlt_ORG × 4) {
loop1_freeze_cnt++;
if (loop1_freeze_cnt >= FREEZE_TIMEOUT) {
// 超时: 持续偏高但稳定 → 环境变化,接受新基线
loop1_Origin = loop1_CAPVD; // 直接更新为新常态值
loop1_freeze_cnt = 0;
// 重置累计,后续正常滑动平均跟踪
} else {
// 未超时: 继续冻结(防车辆驶入时的 Xn 先增尖峰)
}
}
```
### 行为表格
| 场景 | CAPVD 行为 | 冻结计数 | 结果 |
|------|-----------|---------|------|
| 车辆驶入Xn 先增) | 偏高 2~3s 后下降 | < 3000 → 清零 | 正常冻结保护 ✓ |
| 温度漂移 | 缓慢爬升到新值并稳定 | > 3000 → 超时 | Origin 更新到新值 ✓ |
| 更换线圈 | 瞬间跳到新频率 | > 3000 → 超时 | Origin 更新到新值 ✓ |
| EMI 间歇干扰 | 偏高后恢复 | 恢复时清零 | 正常冻结保护 ✓ |
### 冻结计数重置时机
| 触发条件 | 操作 |
|---------|------|
| `dev < dlt_ORG × 4`CAPVD 回到正常范围) | `freeze_cnt = 0`,恢复跟踪 |
| 超时触发Origin 强制更新后) | `freeze_cnt = 0` |
| 车辆进入(`loop1_VD_FLAG = 1` | `freeze_cnt = 0` |
| `INIT_VD()`(上电/安全复位) | `freeze_cnt = 0` |
---
## 修订记录
| 版本 | 时间 | 说明 |
|------|------|------|
| V2.3 | 2026-06-29 | 基线冻结超时: 持续偏高30s后强制更新 Origin防止环境变化死锁 |
|------|------|------|
| V2.2 | 2026-06-26 | 稳定期绕过 IIR/斜率限幅,用 Value 直接收敛基线 |
| V2.1 | 2026-06-26 | CAPVD_fast 初始化修复(条件反转为 ==0 首次锁定) |
| V2.0 | 2026-06-26 | M4 优化: 双路 IIR + 斜率限幅 + 进入确认tick 10ms |