feat(V4B): 方案B实验 V4.05 — USE_SLOW_RELEASE=0 + 调深释放阈值表 ReleaseTable_B

对比路线(与V4.04方案A A/B): 释放走快滤波(无慢滤波状态, 消除悬停风险),
手感对齐改由调深释放表 {80,42,27,18}(原始{60,32,21,14}加深30%)承担。

⚠关键认知(仿真+单测双确认): 释放方向是CAPVD向Origin恢复,
dlt增大(调深)→释放线降低→释放更早(与'调深=更严格'直觉相反)。
仿真预测: 深信号(≥0.2%)原始表更接近PD132T; 浅信号(0.1%)加深表更接近。

单测: tests/test_planb_release.c 新增(滞回为正✓/加深表释放≤原始表✓/释放时刻合理✓)
     test_release_slow_filter.c(方案A)仍通过, 两方案可回归
文档: devlog V2.14 + technical-spec §4.3.3 方案B段
This commit is contained in:
wangfq
2026-09-01 13:48:22 +08:00
parent 97a7fb2dba
commit 60413be73f
6 changed files with 164 additions and 4 deletions
@@ -36,7 +36,14 @@
*===========================================================================*/
#define ALFA_CAP1 79 // IIR α = 79/256 ≈ 0.31 (@10ms → τ≈32ms)
#define RELEASE_ALFA 21 // 释放慢滤波 α = 21/256 ≈ 0.082 (@10ms → 精确τ≈117ms, V4.04: 对齐 PD132T α79@43.7ms 精确τ≈118ms; 原18→精确τ137ms偏慢)
#define USE_SLOW_RELEASE 1 // 方案A总开关: 1=释放走慢滤波(对齐PD132T) 0=原快滤波释放
#define USE_SLOW_RELEASE 0 // 方案A总开关: 1=释放走慢滤波(对齐PD132T) 0=原快滤波释放
#define USE_PLANB_TABLE 1 // 方案B: 快滤波释放 + 调深释放阈值表 (2026-09-01 实验, V4.05)
// 1=释放判定用 ReleaseTable_B(加深30%, 各档滞回仍为正)
// 0=释放判定用 SensTable_1(原始PD132T对齐表)
// ⚠仿真预测: 加深→释放线低→CAPVD恢复更早碰到→释放更早(与直觉相反)
// 深信号(≥0.2%)下原始表更接近PD132T; 浅信号(0.1%)下加深表更接近
// 现场实测对比后定稿, 后续二选一保留
#define RELEASE_TABLE_B { 80, 42, 27, 18} // 方案B 释放表 (V2.11 原始表 {60,32,21,14} 加深~30%)
#define MAX_SLOPE_RATE 5 // 斜率限幅: 单次最大变化 5% (物理限制, 拒绝 EMI 尖峰)
#define ENTRY_CONFIRM 3 // 进入确认: 连续 N 次低于阈值才判定有车
#define FREEZE_TIMEOUT 1000 // 基线冻结超时: ~10s @ 10ms/tick, 持续偏高且稳定后强制更新基线
@@ -74,6 +81,9 @@
*===========================================================================*/
extern const uint16_t SensTable[4];
extern const uint16_t SensTable_1[4];
#if USE_PLANB_TABLE
extern const uint16_t ReleaseTable_B[4]; // 方案B: 调深释放表 (V4.05 实验)
#endif
/*===========================================================================
* 全局状态变量 — 捕获 & 测量
+2 -2
View File
@@ -14,10 +14,10 @@
#define __CMCNG_H__
#define PRODUCT_MODEL "DLD154"
#define FIRMWARE_VER "4.04"
#define FIRMWARE_VER "4.05"
#define HARDWARE_VER "3.00"
#define FIRMWARE_VER_MAIN 4
#define FIRMWARE_VER_SUB 4
#define FIRMWARE_VER_SUB 5
#define HARDWARE_VER_MAIN 3
#define HARDWARE_VER_SUB 0