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
+37
View File
@@ -4,6 +4,43 @@
---
## 2026-09-01 — 方案A 现场复核修正:RELEASE_ALFA 18→21 + 进入 snap(固件 V4.04
> **固件版本:V4.04**cmcng.hFIRMWARE_VER="4.04" + MAIN=4/SUB=4)。devlog 修订 V2.13。
### 背景(现场复核)
方案A(V4.03)落地后金属板复测,两个现象:
1. **慢速抬板释放高度 V4B 仍比 PD132T 高一点**,且跟手速有关(抬得越慢越接近)
2. **定在 HR0/2(释放高度一半)保持 ~1s,V4B 释放继电器,PD132T 不释放**
### 根因分析
| 现象 | 根因 | 证据 |
|------|------|------|
| 1 释放偏高 | τ 对齐用了近似口径:方案A α18 精确 τ≈137msPD132T α79@43.7ms 精确 τ≈118ms(α=79 时 `T×256/α` 近似公式高估 19.6%+ V4B 释放 3 次确认 30ms | 仿真:2s 抬升 V4B +14mm、8s 抬升 +2mm,与现场"跟手速有关"吻合 |
| 2 HR0/2 假释放 | 双滤波结构(快进+慢出):进入由快滤波(τ≈22ms)30ms 确认,释放判定用慢滤波——进入确认瞬间慢滤波还悬在基线附近,残余信号落在窄带(SENS=3 时 0.032%~0.044%)时释放条件瞬时为真 → 3 次确认数满 → 假释放。PD132T 进出共用同一滤波,进入确认时滤波值已沉过离开线,结构性免疫 | 仿真:0.10% 板 HR0/2 放置 V4B 释放@0.18sPD132T 不释放 |
### 修正(V4.04
1. **RELEASE_ALFA 18 → 21**:精确 τ = T/ln(1−α) = 10/ln(121/256) ≈ **117ms**,对齐 PD132T α79@43.7ms 精确 τ≈118ms。仿真释放高度差 3s 抬升 +9mm → **+3mm**(剩余为 3 次确认 30ms 固有延迟)
2. **进入确认 snap**`loop1_CAPVD_slow = loop1_CAPVD`(进入线档3 0.032% 恒深于离开线 0.021%,snap 后释放条件结构性为假)→ HR0/2 假释放窗口彻底消除
### 验证
- `tests/test_release_slow_filter.c` 更新 ALFA_SLOW=21:τ fast=30ms/slow=120ms(理论 22/117ms);释放时机差 200ms ✓
- 仿真(Origin=100000, SENS=3):α21+snap 下 0.10% 板 HR0/2 放置,原版释放@0.18s → 未释放 ✓
- ⚠ 待板级:真机金属板复测确认释放高度对齐 + HR0/2 保持不再释放
### 文档同步
- technical-spec §4.3.3 补 V4.04 修正说明
- analysis/docs/filter-coefficient-79-vs-64.md §4.4 方案A 同步 α21 + snap
- release-notes 待发布时更新
---
## 2026-08-31 — 释放手感对齐 PD132T:释放慢滤波(方案 A,固件 V4.03)
> **固件版本:V4.03**cmcng.hFIRMWARE_VER="4.03" + MAIN=4/SUB=3;⚠ 顺带修正字符串 "4.00" 与数字 4/2 不一致的历史问题)。devlog 修订 V2.12。
+2
View File
@@ -276,6 +276,8 @@ if ((Origin - dlt_ORG) < CAPVD) { // CAPVD 回升至距基线不
> **⚠ V4.032026-08-31)释放慢滤波(方案 AUSE_SLOW_RELEASE)**:现场金属板测试——灵敏度表已对齐,但**释放高度 V4B 比 PD132T 低**V4B 刚离开触发位置即释放,PD132T 需离得更远)。根因:**IIR 滤波时间常数差异**V4B 10ms tick + α79 → τ≈32msPD132T 43.7ms tick + α79/64 → τ≈142~175ms,慢 4.4~5.5×),释放阈值浅(进入的 20%)放大差异。修复:离开判定改用**独立慢滤波值** `loop1_CAPVD_slow`(α=18/256 @10ms → τ≈142ms,复刻 PD132T 恢复速度,吃原始 Value 不经斜率限幅),进入路径不变。开关 `USE_SLOW_RELEASE`TaskLoop.h,默认 10=原快滤波释放)。单测:τ fast=30ms/slow=140ms,释放时机差 260ms`tests/test_release_slow_filter.c`)。⚠ 若现场 PD132T 的 SET_FLT=ON(α64 → τ≈175ms),可调 `RELEASE_ALFA` 15(τ≈170ms)更贴近。
> **⚠ V4.042026-09-01)方案A 现场复核修正(RELEASE_ALFA 18→21 + 进入 snap)**:金属板复测两现象——① 慢速抬板释放高度 V4B 仍比 PD132T 高一点(跟手速有关);② 定在 HR0/2(释放高度一半)保持 ~1s V4B 释放、PD132T 不释放。根因:① **τ 对齐用了近似口径**——α18 精确 τ≈137ms vs PD132T α79@43.7ms 精确 τ≈118ms(α=79 时 `T×256/α` 近似公式高估 19.6%),叠加 3 次确认 30ms;② **双滤波进入瞬态假释放**——进入由快滤波 30ms 确认、释放判定用慢滤波,进入确认瞬间慢滤波还悬在基线附近,残余信号落在窄带(SENS=3 时 0.032%~0.044%)时释放条件瞬时为真 → 假释放;PD132T 进出共用同一滤波,结构性免疫。修正:① `RELEASE_ALFA` 18→**21**(精确 τ≈117ms 对齐 PD132T 118ms);② 进入确认处 **snap `loop1_CAPVD_slow = loop1_CAPVD`**(进入线 0.032% 恒深于离开线 0.021%,snap 后释放条件结构性为假)。单测:τ fast=30ms/slow=120ms,释放时机差 200ms;仿真 3s 抬升高度差 +9mm→+3mm0.10% 板 HR0/2 假释放消除。⚠ 待板级复测。
##### 模式 2:平坦性判定 (USE_FLATNESS_EXIT=1) — ⚠ 默认禁用(#if 0,代码保留)
基于专利 **CN200910309382**(中山大学),解决大车通行时频率多峰导致的多次误触发。