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

@@ -473,13 +473,49 @@ if (dev >= dlt_ORG × 4) {
--- ---
## 2026-06-29 — 架构简化:单路 IIR ALFA_CAP1=79 + WINDOW_ORIGIN=500
### 背景
双路 IIR慢速 α=18/256 + 快速 α=0.5)在 ALFA_CAP1=18 时斜率限幅参考 CAPVD 拖累了快速通路,
多次修补后发现:**ALFA_CAP1=79 @10ms 本身就 τ≈32ms已经足够快**,无需双路复杂度。
### 改动
| 项目 | 改前 | 改后 |
|------|------|------|
| ALFA_CAP1 | 18 (@10ms, τ=135ms) | **79 (@10ms, τ=32ms)** |
| IIR 路数 | 双路(慢+快) | **单路** |
| WINDOW_ORIGIN | 100 (1s) | **500 (5s)** |
| 稳定期窗口 | 500 | **100** |
| `update_moving_average` window | uint8_t | **uint16_t** |
| 快速 IIR 输入 | CAPVD慢速输出滞后 | 已删除 |
| 斜率限幅 | 快/慢双参考CAPVD + CAPVD_fast | **单参考 CAPVD** |
### 保留的 V2 保护机制
- 斜率限幅 (MAX_SLOPE_RATE=5%)
- 进入确认 (ENTRY_CONFIRM=3)
- 基线冻结超时 (10s + ±2% 稳定性检查)
- 稳定期绕过 IIR/限幅 (V2.2)
### 两阶段基线策略
```
稳定期: 100 样本 × 10ms = 1s → 快速收敛,开机即用
正常: 500 样本 × 10ms = 5s → 强噪声抑制,稳定跟踪
```
---
## 修订记录 ## 修订记录
| 版本 | 时间 | 说明 | | 版本 | 时间 | 说明 |
|------|------|------| |------|------|------|
| V2.6 | 2026-06-29 | 架构简化: 单路 IIR ALFA_CAP1=79, WINDOW_ORIGIN=500, 稳定期100 |
| V2.5 | 2026-06-29 | 冻结超时 30s→10s加快环境变化响应 | | V2.5 | 2026-06-29 | 冻结超时 30s→10s加快环境变化响应 |
| V2.4 | 2026-06-29 | 冻结超时增加稳定性检查: CAPVD 需连续稳定在 ±2% 窗口内 | | V2.4 | 2026-06-29 | 冻结超时增加稳定性检查: ±2% 窗口内连续稳定 |
| V2.3 | 2026-06-29 | 基线冻结超时: 持续偏高后强制更新 Origin防止环境变化死锁 | | V2.3 | 2026-06-29 | 基线冻结超时: 持续偏高后强制更新 Origin防止死锁 |
|------|------|------| |------|------|------|
| V2.2 | 2026-06-26 | 稳定期绕过 IIR/斜率限幅,用 Value 直接收敛基线 | | V2.2 | 2026-06-26 | 稳定期绕过 IIR/斜率限幅,用 Value 直接收敛基线 |
| V2.1 | 2026-06-26 | CAPVD_fast 初始化修复(条件反转为 ==0 首次锁定) | | V2.1 | 2026-06-26 | CAPVD_fast 初始化修复(条件反转为 ==0 首次锁定) |

View File

@@ -1,6 +1,6 @@
# DLD154V4B 产品手册 # DLD154V4B 产品手册
> 单路线圈车辆检测器 | 型号: DLD154V4B | 版本: V2.5 > 单路线圈车辆检测器 | 型号: DLD154V4B | 版本: V2.6
> 适用于停车场、收费站、交通卡口等场景的车辆到达/离开检测 > 适用于停车场、收费站、交通卡口等场景的车辆到达/离开检测
--- ---
@@ -241,6 +241,7 @@ DLD154V4B 是一款基于 ARM Cortex-M4 微控制器的**单通道环形线圈
| V2.0 | 2026-06-26 | M4 核心优化:双路 IIR + 斜率限幅 + 进入确认 | | V2.0 | 2026-06-26 | M4 核心优化:双路 IIR + 斜率限幅 + 进入确认 |
| V2.2 | 2026-06-26 | 稳定期绕过 IIR/斜率限幅,基线收敛更准确 | | V2.2 | 2026-06-26 | 稳定期绕过 IIR/斜率限幅,基线收敛更准确 |
| V2.3~2.5 | 2026-06-29 | 基线冻结超时自动恢复10s含稳定性检查 | | V2.3~2.5 | 2026-06-29 | 基线冻结超时自动恢复10s含稳定性检查 |
| V2.6 | 2026-06-29 | 架构简化: 单路 IIR ALFA_CAP1=79, WINDOW_ORIGIN=500 |
--- ---

View File

@@ -1,7 +1,7 @@
# DLD154V4B 产品发布说明 # DLD154V4B 产品发布说明
> 固件版本 **V2.5** | 发布日期 2026-06-29 > 固件版本 **V2.6** | 发布日期 2026-06-29
> 单路线圈车辆检测器 · ARM Cortex-M4 · M4 核心优化 + 自适应基线 > 单路线圈车辆检测器 · ARM Cortex-M4 · 单路 IIR + 智能基线
--- ---
@@ -67,12 +67,13 @@ DLD154V4B 是一款面向道闸控制、车位检测、ETC 收费站等场景的
利用 Cortex-M4 @120MHz 的算力优势,相比 8051 时代设计做了系统性改进: 利用 Cortex-M4 @120MHz 的算力优势,相比 8051 时代设计做了系统性改进:
| 改进项 | 8051 旧设计 | M4 优化 | 效果 | | 改进项 | 8051 旧设计 | M4 优化 (V2.6) | 效果 |
|--------|-----------|---------|------| |--------|-----------|---------|------|
| **tick 周期** | 50ms | **10ms** | 响应密度 5× | | **tick 周期** | 50ms | **10ms** | 响应密度 5× |
| **双路 IIR** | 单路 α=79/256 | 慢速 τ=135ms (基线) + 快速 τ=28ms (检测) | 基线跟踪/检测解耦 | | **IIR 滤波** | 单路 α=79/256 @50ms (τ=162ms) | **单路 α=79/256 @10ms (τ=32ms)** | 5× 加速,保持原系数 |
| **斜率限幅** | 无 | 单次变化 >5% 截断 | 过滤 EMI/闪电尖峰 | | **斜率限幅** | 无 | 单次变化 >5% 截断 | 过滤 EMI/闪电尖峰 |
| **进入确认** | 单次阈值 | 连续 3 次 + 快速 IIR | 进入响应 ~530ms误触发大幅降低 | | **进入确认** | 单次阈值 | 连续 3 次确认 | 瞬态干扰免疫 |
| **基线窗口** | 100 样本 (5s) | **500 样本 (5s)**,稳定期 100 (1s) | 噪声抑制 2.2×,开机快速就绪 |
| **基线冻结超时** | 无(永久冻结) | 稳定 10s 后自动更新 | 环境变化免复位 | | **基线冻结超时** | 无(永久冻结) | 稳定 10s 后自动更新 | 环境变化免复位 |
| **冻结稳定性检查** | — | ±2% 窗口验证 | 防止波动值被判为新常态 | | **冻结稳定性检查** | — | ±2% 窗口验证 | 防止波动值被判为新常态 |
@@ -134,7 +135,8 @@ DLD154V4B 是一款面向道闸控制、车位检测、ETC 收费站等场景的
| V2.2 | 06-26 | 稳定期绕过 IIR/斜率限幅,直接用 Value 收敛基线 | | V2.2 | 06-26 | 稳定期绕过 IIR/斜率限幅,直接用 Value 收敛基线 |
| V2.3 | 06-29 | 基线冻结超时自动恢复(持续偏离后强制更新 Origin | | V2.3 | 06-29 | 基线冻结超时自动恢复(持续偏离后强制更新 Origin |
| V2.4 | 06-29 | 冻结超时增加稳定性检查CAPVD 需连续稳定在 ±2% 窗口内) | | V2.4 | 06-29 | 冻结超时增加稳定性检查CAPVD 需连续稳定在 ±2% 窗口内) |
| **V2.5** | **06-29** | **冻结超时 30s→10s**,加快环境变化响应 | | V2.5 | 06-29 | 冻结超时 30s→10s |
| **V2.6** | **06-29** | **架构简化: 单路 IIR 79@10ms, WINDOW_ORIGIN=500, 稳定期100** |
--- ---

View File

@@ -1,6 +1,6 @@
# DLD154V4B 技术规格书 # DLD154V4B 技术规格书
> 单路线圈车辆检测器 | 固件版本: V2.5 | 文档版本: V2.0 > 单路线圈车辆检测器 | 固件版本: V2.6 | 文档版本: V2.1
> 本文档面向工程开发、系统集成及故障深度分析 > 本文档面向工程开发、系统集成及故障深度分析
--- ---
@@ -31,9 +31,9 @@
FreeRTOS Kernel (CMSIS-RTOS v2) FreeRTOS Kernel (CMSIS-RTOS v2)
├── loop_task (主检测任务) ├── loop_task (主检测任务)
│ ├── vd1_task() — 每 ~10ms 执行 (M4 优化) │ ├── vd1_task() — 每 ~10ms 执行 (M4 优化)
│ │ ├── 双路 IIR 滤波 (慢速 α=18/256, 快速 α=0.5) │ │ ├── IIR 滤波 (ALFA_CAP1=79/256, τ≈32ms)
│ │ ├── 斜率限幅 (MAX_SLOPE_RATE=5%) │ │ ├── 斜率限幅 (MAX_SLOPE_RATE=5%)
│ │ ├── 基线跟踪 (100 窗口滑动平均) │ │ ├── 基线跟踪 (500 窗口滑动平均, 5s)
│ │ ├── 进入确认 (ENTRY_CONFIRM=3 次) │ │ ├── 进入确认 (ENTRY_CONFIRM=3 次)
│ │ ├── 离开检测 (平坦性 / cnt_release) │ │ ├── 离开检测 (平坦性 / cnt_release)
│ │ ├── 时序状态机 (IN/OUT/PULSE/HOLD) │ │ ├── 时序状态机 (IN/OUT/PULSE/HOLD)
@@ -178,47 +178,41 @@ TMR3 ISR:
**改进效果**:响应速度提升 16 倍,精度保留全部采样信息。 **改进效果**:响应速度提升 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 ```c
#define ALFA_CAP1 18 // 慢速 IIR: α = 18/256 ≈ 0.07, τ≈135ms #define ALFA_CAP1 79 // IIR α = 79/256 ≈ 0.31 (@10ms → τ≈32ms)
#define ALFA_FAST 128 // 快速 IIR: α = 128/256 = 0.5, τ≈28ms
```
| 滤波器 | α | τ @10ms | 输入 | 用途 | // get_flt_value(): 通用一阶 IIR
|--------|---|---------|------|------| CAPVD = (|Value - CAPVD| * ALFA_CAP1) >> 8 // 每 tick 移动 ~31%
| 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; // 恢复到阈值以上则重置
}
``` ```
| 参数 | 值 | 说明 | | 参数 | 值 | 说明 |
|------|-----|------| |------|-----|------|
| α_slow | 18/256 ≈ 0.07 | 慢速 IIR 指数平滑系数 | | α | 79/256 ≈ 0.31 | 指数平滑系数 |
| α_fast | 128/256 = 0.5 | 快速 IIR 指数平滑系数 | | τ | ~32ms @10ms tick | 3 次更新达 63% |
| 慢速 τ | ~135ms | 等效 50ms tick 的 79/256 | | 噪声抑制 | 良好 | 单次野值影响 < 31% |
| 快速 τ | ~28ms | 5× 快于旧设计 |
| ENTRY_CONFIRM | 3 | 连续确认次数 | **进入确认**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 检测判据 ### 4.3 检测判据
@@ -239,9 +233,8 @@ const uint16_t SensTable_1[4] = {108, 72, 18, 9}; // 离开阈值(滞回
#### 4.3.2 进入检测M4 优化:确认机制) #### 4.3.2 进入检测M4 优化:确认机制)
```c ```c
// 使用快速 IIR (CAPVD_fast) 提高响应速度 // CAPVD 连续 ENTRY_CONFIRM 次低于阈值才判定有车
// 连续 ENTRY_CONFIRM 次低于阈值才判定有车 if (CAPVD < Origin - dlt_ORG) {
if (CAPVD_fast < Origin - dlt_ORG) {
entry_cnt++; entry_cnt++;
if (entry_cnt >= ENTRY_CONFIRM) { // 3 次连续确认 if (entry_cnt >= ENTRY_CONFIRM) { // 3 次连续确认
VD_FLAG = 1; FLAG_IN = 1; VD_FLAG = 1; FLAG_IN = 1;
@@ -252,13 +245,12 @@ if (CAPVD_fast < Origin - dlt_ORG) {
} }
``` ```
| 对比 | 8051/M1H 旧设计 | M4 优化 | | 对比 | 8051/M1H 旧设计 | V2.6 M4 优化 |
|------|----------------|---------| |------|----------------|-------------|
| 判定依据 | CAPVD(慢速 IIR | **CAPVD_fast**(快速 IIR5× 响应) | | 判定依据 | CAPVD (α=79, τ=162ms) | **CAPVD (α=79, τ=32ms)** |
| 确认方式 | 单次阈值 | **连续 3 次确认** | | 确认方式 | 单次阈值 | **连续 3 次确认** |
| 瞬态抑制 | 无 | **斜率限幅 + 确认双重保护** | | 瞬态抑制 | 无 | **斜率限幅 + 确认双重保护** |
| 进入响应 | ~550ms (50ms tick + 500ms IN_DELAY) | **~530ms** (10ms tick + 3×10ms + 500ms) | | 进入响应 | ~550ms | **~530ms** |
| 误触发风险 | 中 | **低** |
#### 4.3.3 离开检测(滞回) #### 4.3.3 离开检测(滞回)
@@ -356,22 +348,18 @@ if (!VD_FLAG) {
| 5% 斜率限幅 | 过滤 EMI/闪电尖峰,保护 IIRV2.0 | | 5% 斜率限幅 | 过滤 EMI/闪电尖峰,保护 IIRV2.0 |
| 冻结超时 + 稳定性检查 | 防止永久冻结死锁V2.3~2.5 | | 冻结超时 + 稳定性检查 | 防止永久冻结死锁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 Origin 污染保护与冻结超时恢复V1.5 → V2.5
#### 4.5.1 问题演进 #### 4.5.1 问题演进
@@ -711,3 +699,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
|------|------|------| |------|------|------|
| V1.0 | 2026-06-24 | 技术规格书初版V1.5 固件) | | V1.0 | 2026-06-24 | 技术规格书初版V1.5 固件) |
| V2.0 | 2026-06-29 | 更新至 V2.5 固件:双路 IIR、斜率限幅、进入确认、冻结超时+稳定性 | | V2.0 | 2026-06-29 | 更新至 V2.5 固件:双路 IIR、斜率限幅、进入确认、冻结超时+稳定性 |
| V2.1 | 2026-06-29 | 更新至 V2.6:单路 IIR ALFA_CAP1=79, WINDOW_ORIGIN=500, 两阶段基线 |