fix(V4B): 方案A现场复核修正 V4.04 — RELEASE_ALFA 18→21(精确τ117ms对齐PD132T) + 进入snap消除HR0/2假释放

现场金属板复测两现象:
1. 慢速抬板释放高度 V4B 仍比 PD132T 高一点(跟手速有关) — 根因: τ对齐用了近似口径
   (α18 精确τ≈137ms vs PD132T α79@43.7ms 精确τ≈118ms, α=79时 T×256/α 高估19.6%)
   + V4B 3次确认30ms。修正: RELEASE_ALFA 18→21 (精确τ≈117ms)。
2. 定在HR0/2(释放高度一半)保持~1s V4B释放、PD132T不释放 — 根因: 双滤波进入瞬态假释放
   (快滤波30ms确认进入, 慢滤波还悬在基线附近, 残余信号0.032%~0.044%时释放条件瞬时为真)。
   修正: 进入确认瞬间 snap loop1_CAPVD_slow = loop1_CAPVD (进入线恒深于离开线, 释放条件结构性为假)。

验证: gcc单测 τ fast=30ms/slow=120ms, 释放时机差 200ms ✓
仿真: 3s抬升高度差 +9mm→+3mm; 0.10%板HR0/2假释放消除 ✓
文档: devlog V2.13 + technical-spec §4.3.3
This commit is contained in:
wangfq
2026-09-01 09:46:55 +08:00
parent 9391e1b808
commit 97a7fb2dba
6 changed files with 53 additions and 8 deletions
+4 -4
View File
@@ -1,9 +1,9 @@
/*
* test_release_slow_filter.c — 方案A 释放慢滤波单测
*
* 验证: V4B 主滤波(ALFA=79 @10ms, τ≈32ms) vs 释放慢滤波(ALFA=18 @10ms, τ≈142ms)
* 验证: V4B 主滤波(ALFA=79 @10ms, τ≈22ms) vs 释放慢滤波(ALFA=21 @10ms, 精确τ≈117ms)
* 在"金属板离开"(信号缓慢恢复)场景下,慢滤波释放时机应显著晚于快滤波,
* 从而对齐 PD132T 释放手感。
* 从而对齐 PD132T 释放手感 (PD132T α79@43.7ms 精确τ≈118ms, V4.04 对齐)
*
* 编译: gcc -o /tmp/test_release_slow test_release_slow_filter.c && /tmp/test_release_slow
*/
@@ -13,7 +13,7 @@
#include <math.h>
#define ALFA_FAST 79
#define ALFA_SLOW 18
#define ALFA_SLOW 21
#define TICK_MS 10
/* 与 TaskLoop.c get_flt_value 同构 */
@@ -37,7 +37,7 @@ static void test_tau(void)
if (t_fast < 0 && v_fast <= target_fast) t_fast = t;
if (t_slow < 0 && v_slow <= target_slow) t_slow = t;
}
printf("[tau] fast=%dms slow=%dms (理论 32ms/142ms)\n", t_fast * TICK_MS, t_slow * TICK_MS);
printf("[tau] fast=%dms slow=%dms (理论 22ms/117ms)\n", t_fast * TICK_MS, t_slow * TICK_MS);
assert(t_fast * TICK_MS <= 60); /* 快滤波 τ < 60ms */
assert(t_slow * TICK_MS >= 100); /* 慢滤波 τ > 100ms */
assert(t_slow > t_fast * 3); /* 慢/快 > 3× */