feat(V4B): V4.24 — 环境重校准:永久环境变化自动恢复基线(金属板A拿走场景)
现场(2026-09-02实测): 线圈旁金属板A上电把Origin学低(128096),A拿走CAPVD弹回 真空场(128856) dev=+761(0.59%),被36321a1双向保护"dev>0永不更新"永久冻结 → B触发需809cnt(正常54cnt) 灵敏度假性降低且不恢复(V4.20分钟级可自愈) 修复: dev>+4dlt高位两段式受控重校准 ① 60s(ENV_RESYNC_WAIT)高位连续未回摆 → 判定永久环境变化(瞬态铁块类不污染) ② 学习基线B: 连续空闲窗200tick均值 + settle判稳(连续2窗漂移≤0.1%) ③ 空闲原子替换Origin, 清freeze/ORG/entry残留, slow snap, 黄灯恢复 - 学习期打断(回窗/dev<0/断线重连)→重算; 30s预算超时放弃保留旧Origin - 黄灯模式4: 环境学习中常亮(优先级: 断开快闪>学习常亮>N短闪>灭) - tests/test_env_resync.c 5场景ALL PASS(恢复66s/瞬态不学/打断重算/放弃/不震荡) - docs: devlog V2.22 + spec V2.3 + 产品手册 V2.7 同步
This commit is contained in:
+52
-1
@@ -4,6 +4,57 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-09-02 — 环境重校准:现场永久环境变化自动恢复基线(固件 V4.24)
|
||||
|
||||
> **固件版本:V4.24**(cmcng.h:FIRMWARE_VER="4.24" + MAIN=4/SUB=24)。devlog 修订 V2.22。
|
||||
|
||||
### 现场现象(V4.22 实测复现,DBG/EVT 串口日志)
|
||||
|
||||
线圈旁金属板 A 上电 → 稳定后 Origin 学低;A 拿走 → CAPVD 弹回真空场,
|
||||
相对 Origin 恒高 dev=+761 cnt(0.59% Origin,实测 CAPVD 128096→128856),
|
||||
被 V4.20 双向保护(36321a1)"dev>0 永不更新"永久冻结 → Origin 卡 128095 →
|
||||
再拿金属板 B 测试需下跌 ~809 cnt(正常 54 cnt)才触发 → 触发高度明显降低、不恢复。
|
||||
|
||||
- V4.20(双向保护前,278d470):dev>0 走正常窗口平均 → 数分钟缓慢恢复(现场"等一段时间能恢复")
|
||||
- V4.22(含双向保护):dev>0 只冻结、永不更新 → 永久不恢复
|
||||
|
||||
### 根因
|
||||
|
||||
36321a1 为防"铁块靠近污染 Origin → 离开假进入锁死",把 dev>+4×dlt 高位的
|
||||
"无车环境异常"一律永久冻结。但"铁块靠近(瞬态,秒级回摆)"与"永久环境变化
|
||||
(基准被学低,如 A 拿走)"数值不可分,仅**时间维度**可分——永久冻结把后者也卡死。
|
||||
|
||||
### 修复(V4.24 两段式受控重校准)
|
||||
|
||||
| 阶段 | 条件 | 动作 |
|
||||
|------|------|------|
|
||||
| ① 冻结等待 | dev>+4×dlt 高位连续 60 s(ENV_RESYNC_WAIT=6000 tick)未回摆 | 保持双向保护冻结语义(<60 s 瞬态不污染) |
|
||||
| ② 学习基线 B | 连续空闲窗(ENV_LEARN_WINDOW=200 tick)均值 + settle 判稳(连续 2 窗漂移 ≤0.1%) | **黄灯常亮**指示学习过程 |
|
||||
| ③ 原子替换 | B 可信且空闲 | Origin=B;清 freeze/ORG/entry 残留;slow snap(同 V4.04);黄灯恢复 |
|
||||
|
||||
- 学习期任何打断(CAPVD 回窗、dev<0 目标靠近、线圈断开重连)→ 重算重来
|
||||
- 学习预算 ENV_LEARN_MAX_TICKS=3000(30 s)超时放弃,保留旧 Origin——宁可灵敏度低不冒险污染
|
||||
- 替换瞬间 B≈当前空闲 CAPVD → dev≈0 无跳变,不会误触发继电器
|
||||
- 黄灯优先级:断开快闪 > 学习常亮 > N 短闪(断开史)> 灭
|
||||
|
||||
### 验证
|
||||
|
||||
- `tests/test_env_resync.c`(新增):5 场景 ALL PASS
|
||||
1. 永久变化(常量高位)→ 6600 tick(~66 s)自动替换 Origin 128095→128856
|
||||
2. 瞬态高位 60 s 内回摆 → 不学习不替换
|
||||
3. 学习期打断 → abort 重算 → 最终恢复
|
||||
4. 学习期窗口不稳 → 30 s 预算放弃,Origin 不被污染
|
||||
5. 替换后 dev≈0 → 无重复学习不震荡
|
||||
- gcc `-fsyntax-only` TaskLoop.c 0 error
|
||||
|
||||
### 权衡(待现场验证)
|
||||
|
||||
- 铁块静止 60 s+ 也会被学入 → 靠等待时长 + 黄灯常亮提示(操作员看到黄灯别移走目标)
|
||||
- 恢复总时长 ≈66 s(V4.20 分钟级),A 拿走场景现场复测确认手感
|
||||
- ENV_RESYNC_WAIT / ENV_LEARN_MAX_TICKS 为编译期宏,现场可调
|
||||
|
||||
---
|
||||
|
||||
## 2026-09-02 — 红灯呼吸对齐 vd960Loop + 上电自检基准判稳(固件 V4.23)
|
||||
|
||||
> **固件版本:V4.23**(cmcng.h:FIRMWARE_VER="4.23" + MAIN=4/SUB=23)。devlog 修订 V2.21。
|
||||
@@ -983,7 +1034,7 @@ if (dev >= dlt_ORG × 4) {
|
||||
|
||||
| 版本 | 时间 | 说明 |
|
||||
|------|------|------|
|
||||
| V2.21 | 2026-09-02 | V4.23 红灯呼吸对齐 vd960Loop(周期≈2.6s);上电自检基准判稳:窗口 Origin 漂移 ≤0.1%×连续 2 窗 + 5s 兜底 |
|
||||
| V2.22 | 2026-09-02 | V4.24 环境重校准:dev>+4dlt 高位连续 60s 触发受控学习(黄灯常亮),连续空闲窗均值+判稳后原子替换 Origin,恢复金属板A拿走类永久环境变化;打断重算 + 30s 预算兜底 |
|
||||
| V2.20 | 2026-09-02 | V4.22 DEBUG 改编译器 -DDEBUG 控制(cmcng.h DEBUG_ENABLE 删除) |
|
||||
| V2.19 | 2026-09-02 | V4.20 负variation铁块锁死修复:基线跟踪双向对称保护(±4×dlt 对称窗口) |
|
||||
| V2.18 | 2026-09-02 | V4.20 Debug 串口打印重组:频率/采样/基准全量输出(DBG/EVT 前缀) |
|
||||
|
||||
Reference in New Issue
Block a user