docs: devlog — V2.3 基线冻结超时自动恢复
This commit is contained in:
@@ -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 |
|
||||
|
||||
Reference in New Issue
Block a user