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:
@@ -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 起采用单路 IIR,ALFA_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)
|
||||
- 检测判定需要**快响应**,快速捕捉车辆进入/离开(τ=28ms,5× 快于旧设计)
|
||||
- 快速 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**(快速 IIR,5× 响应) |
|
||||
| 对比 | 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/闪电尖峰,保护 IIR(V2.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, 两阶段基线 |
|
||||
|
||||
Reference in New Issue
Block a user