feat(V4B): V4.31 — 故障补偿时序再调: 预判2s + 补偿7s (总恢复 ~15s)

V4.30 基础上现场手感再收紧: ENV_WARN_WAIT 300→200(2s);
ENV_RESYNC_WAIT 800→700(7s); 恢复确认 200(2s) 不变
时序: 2s 黄灯预判锁存 → 7s 进入学习 → 6s 学完原子替换 → 2s 确认灭
test_env_resync.c 同步 → 5 场景 ALL PASS (warn@200, applied@1300, 灭@1500)
文档: devlog V2.29 / spec V2.10 / design doc v0.8
This commit is contained in:
wangfq
2026-09-03 16:16:37 +08:00
parent 4200d96250
commit 7983bfd72d
7 changed files with 59 additions and 29 deletions
@@ -875,7 +875,7 @@ void vd1_task(void)
#define STABLE_ORIGIN_PPT 1 // 基准稳定判据: 窗口均值漂移 ≤ Origin×1/1000 (0.1%)
#define STABLE_SETTLE_WINDOWS 2 // 连续 2 个窗口(每窗100样本≈1s)漂移达标 → 判稳
#define STABLE_MAX_SAMPLES 500 // 硬兜底: 5s 未判稳强制结束自检(防绿灯无限闪)
#define ENV_RESYNC_WAIT 800 // V4.30: dev>+4dlt 高位连续 8s → 判定永久环境变化 (拍板: 预判3s + 补偿8s + 恢复2s)
#define ENV_RESYNC_WAIT 700 // V4.31: dev>+4dlt 高位连续 7s → 判定永久环境变化 (拍板: 预判2s + 补偿7s + 恢复2s)
#define ENV_LEARN_WINDOW 200 // V4.24: 环境学习窗口 2s (200×10ms)
#define ENV_LEARN_MAX_TICKS 3000 // V4.24: 学习预算 30s, 超时放弃 (防黄灯常亮死锁)
@@ -1018,7 +1018,7 @@ void vd1_task(void)
} else {
/* 负variation (CAPVD高于Origin, 特殊铁块磁导率主导/异常高)
* V4.24 两段式:
* ① 前 10s(ENV_RESYNC_WAIT): 只冻结, 不更新 Origin
* ① 前 7s(ENV_RESYNC_WAIT): 只冻结, 不更新 Origin
* (36321a1 双向保护原语义: 防铁块污染 Origin → 离开假进入锁死)
* ② 高位连续 ≥60s 未回摆 → 判定"永久环境变化"(如金属板A拿走、基准被学低)
* → 进入受控重校准: 连续空闲窗口均值 B + settle 判稳 → 空闲原子替换 Origin