fix(V4B): V4.36.33 — vac_ref 重锚阈值: 修 EMA 边缘污染触发高度漂移

V4.36.32 板测新问题(所有线圈): 板间隔几秒再压触发高度降一半, 多试几轮恢复
机制: EMA(α128 τ1.28s) 更新窗=±4×dlt(196) 太宽 — 板悬感应边缘(dev−20~−40)
  当真空快学 → vac_ref=min(Origin,EMA)=EMA 低 → 触发线漂移; Origin 5s 满窗慢所以以前无感
修: vac_ref = (Origin−EMA > 1×dlt) ? EMA : Origin
- J1 锚错 130(2.65dlt) 仍重锚; 边缘拉低 20~40(<1dlt) 忽略
- 未重锚最大偏差 48 → 真空 Origin−48 vs 释放线 −41 差 7 → 环带兜底覆盖不卡
语法0 error, 4测试全绿; spec V2.50 / devlog V2.68
This commit is contained in:
wangfq
2026-09-08 10:17:43 +08:00
parent 78267f3d49
commit da2fc83afb
5 changed files with 30 additions and 4 deletions
@@ -289,7 +289,11 @@ uint32_t get_flt_value_rel(uint32_t new_value, uint32_t last_value)
static uint32_t vac_ref(void)
{
if (g_vacuum_ema == 0) return loop1_Origin;
return (g_vacuum_ema < loop1_Origin) ? g_vacuum_ema : loop1_Origin;
/* V4.36.33: 仅明显锚错(Origin 高于 EMA > 1×dlt)才重锚 EMA — 边缘金属悬停拉低 EMA 的小偏差忽略 */
if ((int32_t)loop1_Origin - (int32_t)g_vacuum_ema >
(int32_t)(loop1_dlt_ORG * VAC_REF_DELTA_DLT))
return g_vacuum_ema;
return loop1_Origin;
}
static uint8_t rel_release_hit(void)