docs: 四文档更新至 V2.6 — 单路 IIR + WINDOW_ORIGIN=500

- devlog: 新增 V2.6 架构简化章节 + 两阶段基线策略
- release-notes: V2.5→V2.6, 更新 M4 优化表(双路→单路 IIR)
- product-manual: V2.5→V2.6 + 版本历史
- technical-spec: §4.2 重写为单路 IIR ALFA_CAP1=79 @10ms,
  §4.3.2 去除 CAPVD_fast 引用, §4.4.3 两阶段基线表,
  §15 新增 V2.1 修订记录
This commit is contained in:
wangfq
2026-06-29 19:16:11 +08:00
parent 8f951b356f
commit 266ffc5909
4 changed files with 92 additions and 64 deletions

View File

@@ -1,6 +1,6 @@
# DLD154V4B 技术规格书
> 单路线圈车辆检测器 | 固件版本: V2.5 | 文档版本: V2.0
> 单路线圈车辆检测器 | 固件版本: V2.6 | 文档版本: V2.1
> 本文档面向工程开发、系统集成及故障深度分析
---
@@ -31,9 +31,9 @@
FreeRTOS Kernel (CMSIS-RTOS v2)
├── loop_task (主检测任务)
│ ├── vd1_task() — 每 ~10ms 执行 (M4 优化)
│ │ ├── 双路 IIR 滤波 (慢速 α=18/256, 快速 α=0.5)
│ │ ├── IIR 滤波 (ALFA_CAP1=79/256, τ≈32ms)
│ │ ├── 斜率限幅 (MAX_SLOPE_RATE=5%)
│ │ ├── 基线跟踪 (100 窗口滑动平均)
│ │ ├── 基线跟踪 (500 窗口滑动平均, 5s)
│ │ ├── 进入确认 (ENTRY_CONFIRM=3 次)
│ │ ├── 离开检测 (平坦性 / cnt_release)
│ │ ├── 时序状态机 (IN/OUT/PULSE/HOLD)
@@ -178,47 +178,41 @@ TMR3 ISR:
**改进效果**:响应速度提升 16 倍,精度保留全部采样信息。
### 4.2 IIR 滤波M4 优化:双路 IIR
### 4.2 IIR 滤波M4 优化:ALFA_CAP1=79 @10ms
V2.0 起采用路 IIR 架构,将基线跟踪与检测判定解耦
V2.6 起采用路 IIRALFA_CAP1=79 @10ms (τ≈32ms),比旧 50ms tick 的 τ≈162ms 快 5 倍
```c
#define ALFA_CAP1 18 // 慢速 IIR: α = 18/256 ≈ 0.07, τ≈135ms
#define ALFA_FAST 128 // 快速 IIR: α = 128/256 = 0.5, τ≈28ms
```
#define ALFA_CAP1 79 // IIR α = 79/256 ≈ 0.31 (@10ms → τ≈32ms)
| 滤波器 | α | τ @10ms | 输入 | 用途 |
|--------|---|---------|------|------|
| CAPVD (慢速) | 18/256 ≈ 0.07 | 135ms | Value经斜率限幅 | 基线跟踪 |
| CAPVD_fast (快速) | 128/256 = 0.5 | 28ms | CAPVD慢速滤波后 | 进入/离开检测判定 |
**为什么需要双路:**
- 基线跟踪需要**慢响应**,避免将车辆的频率偏移"学"进基线(τ=135ms等效 M1H 的 79/256 @50ms
- 检测判定需要**快响应**,快速捕捉车辆进入/离开(τ=28ms5× 快于旧设计)
- 快速 IIR 输入来自慢速 IIR 的输出,继承斜率限幅的瞬态抑制能力
**进入确认**:快速 IIR 连续 3 次低于阈值才判定有车,单次瞬态干扰被过滤。
```c
// 快速 IIR: α=0.5 → (old + new) / 2
loop1_CAPVD_fast = (loop1_CAPVD_fast + loop1_CAPVD) / 2;
// 进入确认
if (CAPVD_fast < Origin - dlt_ORG) {
if (++entry_cnt >= 3)
VD_FLAG = 1; // 确认有车
} else {
entry_cnt = 0; // 恢复到阈值以上则重置
}
// get_flt_value(): 通用一阶 IIR
CAPVD = (|Value - CAPVD| * ALFA_CAP1) >> 8 // 每 tick 移动 ~31%
```
| 参数 | 值 | 说明 |
|------|-----|------|
| α_slow | 18/256 ≈ 0.07 | 慢速 IIR 指数平滑系数 |
| α_fast | 128/256 = 0.5 | 快速 IIR 指数平滑系数 |
| 慢速 τ | ~135ms | 等效 50ms tick 的 79/256 |
| 快速 τ | ~28ms | 5× 快于旧设计 |
| ENTRY_CONFIRM | 3 | 连续确认次数 |
| α | 79/256 ≈ 0.31 | 指数平滑系数 |
| τ | ~32ms @10ms tick | 3 次更新达 63% |
| 噪声抑制 | 良好 | 单次野值影响 < 31% |
**进入确认**CAPVD 连续 ENTRY_CONFIRM=3 次低于阈值才判定有车。
```c
if (CAPVD < Origin - dlt_ORG) {
if (++entry_cnt >= 3)
VD_FLAG = 1; // 确认有车
} else {
entry_cnt = 0; // 恢复则重置
}
```
| 对比 | 8051/M1H 旧设计 | V2.6 |
|------|----------------|------|
| tick | 50ms | **10ms** |
| IIR α | 79/256 (@50ms, τ=162ms) | **79/256 (@10ms, τ=32ms)** |
| 确认方式 | 单次阈值 | **连续 3 次** |
| 瞬态抑制 | 无 | **斜率限幅 + 确认** |
| 进入响应 | ~550ms | **~530ms** |
### 4.3 检测判据
@@ -239,9 +233,8 @@ const uint16_t SensTable_1[4] = {108, 72, 18, 9}; // 离开阈值(滞回
#### 4.3.2 进入检测M4 优化:确认机制)
```c
// 使用快速 IIR (CAPVD_fast) 提高响应速度
// 连续 ENTRY_CONFIRM 次低于阈值才判定有车
if (CAPVD_fast < Origin - dlt_ORG) {
// CAPVD 连续 ENTRY_CONFIRM 次低于阈值才判定有车
if (CAPVD < Origin - dlt_ORG) {
entry_cnt++;
if (entry_cnt >= ENTRY_CONFIRM) { // 3 次连续确认
VD_FLAG = 1; FLAG_IN = 1;
@@ -252,13 +245,12 @@ if (CAPVD_fast < Origin - dlt_ORG) {
}
```
| 对比 | 8051/M1H 旧设计 | M4 优化 |
|------|----------------|---------|
| 判定依据 | CAPVD(慢速 IIR | **CAPVD_fast**(快速 IIR5× 响应) |
| 对比 | 8051/M1H 旧设计 | V2.6 M4 优化 |
|------|----------------|-------------|
| 判定依据 | CAPVD (α=79, τ=162ms) | **CAPVD (α=79, τ=32ms)** |
| 确认方式 | 单次阈值 | **连续 3 次确认** |
| 瞬态抑制 | 无 | **斜率限幅 + 确认双重保护** |
| 进入响应 | ~550ms (50ms tick + 500ms IN_DELAY) | **~530ms** (10ms tick + 3×10ms + 500ms) |
| 误触发风险 | 中 | **低** |
| 进入响应 | ~550ms | **~530ms** |
#### 4.3.3 离开检测(滞回)
@@ -356,22 +348,18 @@ if (!VD_FLAG) {
| 5% 斜率限幅 | 过滤 EMI/闪电尖峰,保护 IIRV2.0 |
| 冻结超时 + 稳定性检查 | 防止永久冻结死锁V2.3~2.5 |
#### 4.4.3 基线更新速率
#### 4.4.3 基线更新速率(两阶段)
`vd1_task` 每 ~10ms 执行一次。空闲时每次累加 CAPVD 到 `ORG_SUM`,满 100 次后取平均更新 Origin
| 阶段 | 窗口 | 周期 | 用途 |
|------|------|------|------|
| 稳定期 (`!g_loop_stable`) | 100 | **1s** | 绕过 IIR/限幅,快速收敛,开机即用 |
| 正常运行 | 500 (WINDOW_ORIGIN) | **5s** | 强噪声抑制,稳定跟踪 |
```
100 样本 × 10ms/tick = 1000ms = 1 秒
稳定期: CAPVD = Value (raw) → 100 样本 → Origin 快速建立
正常: CAPVD = IIR(Value, α=79) → 500 样本 → Origin 稳定跟踪
```
| 产品 | 窗口大小 | 更新周期 | 空闲时跟踪 | 有车时冻结 |
|------|---------|---------|-----------|-----------|
| **DLD154V4B** | 100 次 | **1000ms** | ✅ | ✅ |
| **M1H** | 100 次 | 5000ms | ✅ | ❌(有车也跟踪) |
| **TLD-110** | 16 次 | ~800ms | ✅ | ✅ |
> **注意**V2.0 将 tick 从 50ms 提升到 10ms基线更新从每 5 秒加速到每 1 秒 —— 对温漂的跟踪能力显著提升,同时保持 100 窗口的抗噪能力。
### 4.5 Origin 污染保护与冻结超时恢复V1.5 → V2.5
#### 4.5.1 问题演进
@@ -711,3 +699,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
|------|------|------|
| V1.0 | 2026-06-24 | 技术规格书初版V1.5 固件) |
| V2.0 | 2026-06-29 | 更新至 V2.5 固件:双路 IIR、斜率限幅、进入确认、冻结超时+稳定性 |
| V2.1 | 2026-06-29 | 更新至 V2.6:单路 IIR ALFA_CAP1=79, WINDOW_ORIGIN=500, 两阶段基线 |