docs: 开发日志 — 平坦性离开判定

This commit is contained in:
wangfq
2026-06-23 16:37:53 +08:00
parent aff6aa9a2b
commit b6ef3c4c4f

View File

@@ -170,10 +170,64 @@ Origin 首次确立后,线圈振荡需要时间稳定。新增 `g_loop_stable`
---
## 2026-06-23 — 移植平坦性离开判定CN200910309382
### 来源
专利 CN200910309382中山大学张辉/黄永强/陈古典)提出**平坦性三条件判定法**
解决大车通行时频率曲线的负波峰和近零波谷导致单一阈值法多次误触发的问题。
### 算法
```
车辆到达 → 单一阈值法 f(i) - f_b > Δ1 (沿用 SensTable)
车辆离开 → 平坦性三条件 同时满足:
① |f - f_b| < Δ1 频率回归基频 (SensTable_1)
② |f'| < Δ2 一阶导数近零
③ |f''| < Δ3 二阶导数近零
```
**Phase 1** (g_exit_state=0): 车辆进入线圈后,追踪第一上升坡面,
记录最大 |f'| 和 |f''|。当斜率连续 3 次降到 `SLOPE_FLAT_THRESH` 以下,
计算动态阈值:
```
Δ2 = max_slope / K1 (K1=8)
Δ3 = max_slope_rate / K2 (K2=8)
```
**Phase 2** (g_exit_state=1): 每帧检查三条件。连续 3 次全部满足 → 车辆离开。
### 与传统方法对比
| 方法 | 离开判据 | 大车防误检 |
|------|---------|-----------|
| M1H/TLD-110 | 单一滞回阈值 | ❌ 多峰可能多次触发 |
| 原 cnt_release | 连续 3 次超阈值 | ⚠️ 固定阈值,大车波谷可能误判 |
| **平坦性判定** | |f-f_b|+一阶+二阶 三条件 | ✅ 动态阈值,跟随坡面特征 |
### 参数说明
| 常量 | 值 | 含义 |
|------|-----|------|
| K1, K2 | 8 | 动态阈值除数(专利推荐值) |
| SLOPE_FLAT_THRESH | 100 | 斜率趋零判断阈值 |
| MIN_DELTA2 | 5 | Δ2 下限(防除数过小) |
| MIN_DELTA3 | 2 | Δ3 下限 |
| FLAT_CONFIRM_CNT | 3 | 平坦连续确认次数 |
### 整数化适配
专利原实现使用 floatHz 频率值DLD154V4B 用 uint32 定点Origin≈131K
导数计算同样用 int32 整数差分,阈值 /K1、/K2 做整数除法,精度足够。
---
## 修订记录
| 版本 | 时间 | 说明 |
|------|------|------|
| V1.4 | 2026-06-23 | 移植 CN200910309382 平坦性离开判定 |
| V1.3 | 2026-06-23 | 指示灯行为、稳定期、重连状态保持 |
| V1.2 | 2026-06-23 | <<6/>>6 精度浪费分析与改进 |
| V1.1 | 2026-06-23 | 精简重构,对齐 M1H/TLD-110 |