feat: M4 核心优化 V2.0 — 双路 IIR + 斜率限幅 + 进入确认

三项改进突破 8051 时代限制:
1. 10ms tick + 双路 IIR
   - CAPVD (慢速): α=18/256, τ=135ms — 基线跟踪,等效原 50ms 设计
   - CAPVD_fast (快速): α=0.5, τ=28ms — 检测判定,比原快 5×

2. 斜率限幅 (MAX_SLOPE_RATE=5%)
   - EMI/闪电瞬态尖峰被截断
   - 真实车辆缓慢频率漂移不受影响

3. 进入确认 (ENTRY_CONFIRM=3)
   - 连续 3 次 CAPVD_fast 低于阈值才判有车
   - 单次干扰无法通过 → 误触发率大幅降低

进入响应 ~530ms (比原 550ms 还快), 基线稳定性不变
This commit is contained in:
wangfq
2026-06-26 16:05:00 +08:00
parent 0abb7f2b21
commit 17e4b07860
3 changed files with 151 additions and 32 deletions

View File

@@ -27,9 +27,17 @@
#define PULSE_DELAY 10 // 脉冲宽度 500ms
/*===========================================================================
* 滤波参数 — 对齐 M1H
* 滤波参数 — M4 优化版
*
* 与 M1H (8051, 50ms tick) 的关键差异:
* - tick 提升到 10ms滤波系数同步调整保持等效时间常数
* - 新增斜率限幅 (MAX_SLOPE_RATE) 过滤瞬态尖峰
* - 进入确认 (ENTRY_CONFIRM) 替代单次阈值判定
*===========================================================================*/
#define ALFA_CAP1 79 // IIR 指数平滑 α = 79/256 ≈ 0.31
#define ALFA_CAP1 18 // IIR α = 18/256 ≈ 0.07 (@10ms → τ≈135ms, 等效 50ms 的 79/256)
#define ALFA_FAST 128 // 快速 IIR α = 128/256 = 0.5 (@10ms → τ≈28ms, 用于检测)
#define MAX_SLOPE_RATE 5 // 斜率限幅: 单次最大变化 5% (物理限制, 拒绝 EMI 尖峰)
#define ENTRY_CONFIRM 3 // 进入确认: 连续 N 次低于阈值才判定有车
/*===========================================================================
* 离开检测模式
@@ -91,6 +99,10 @@ extern uint8_t g_loop_stable; // 线圈数值已稳定 (0=稳定中,
/* 离开防抖计数器(连续 CAPVD 恢复到阈值以上才释放) */
extern uint8_t loop1_cnt_release; // 离开防抖计数
/* M4 优化: 快速 IIR + 进入确认 */
extern uint32_t loop1_CAPVD_fast; // 快速 IIR 值 (α=0.5, τ≈28ms, 用于检测)
extern uint8_t loop1_entry_cnt; // 进入确认计数
#if USE_FLATNESS_EXIT
extern uint8_t g_exit_state; // 离开检测: 0=追踪斜率, 1=等待平坦
extern uint16_t g_max_slope; // 第一上升坡面最大 |f'|