fix(V4B): V4.25 黄灯预判改锁存语义 — 触发后回摆保持常亮, 环境空闲稳定5s才灭
原(V4.25首个提交): 黄灯条件 wait_cnt>=5s, 回摆(wait清零)即灭 — 用户反馈应锁存: 一旦5s黄灯常亮, 高位回摆/目标靠近也保持常亮; 只有"新的没有变化的环境" 超过5s 确认恢复, 黄灯才灭。 改动: - 新增 g_env_warn 预判锁存标志(只增不清): dev>+4dlt 高位累计满 ENV_WARN_WAIT=500tick(~5s) → g_env_warn=1, 黄灯常亮 - 新增 g_env_recover_cnt 恢复确认: 环境回窗口内且 dev 未进进入线(>-dlt) 连续 ENV_RECOVER_WAIT=500tick(~5s) → 解除锁存, 黄灯灭 - 目标进确认区(dev<-dlt)/深压(dev<-4dlt) → 恢复计时清零 - 高位重现 → 恢复计时清零, 黄灯保持 - abort/apply 均不清 g_env_warn (替换后也需恢复确认5s才灭) - 黄灯模式4条件 = g_env_resync || g_env_warn tests 5 场景: 回摆保持常亮→稳定5s灭→高位重现再锁存; 学习打断/放弃后锁存保持 docs: devlog V2.23 + spec V2.4 + 手册 V2.8 同步锁存语义
This commit is contained in:
+11
-9
@@ -15,21 +15,23 @@ V4.24 环境重校准的黄灯常亮只在**进入学习后**(dev>+4dlt 高位
|
||||
|
||||
### 改动
|
||||
|
||||
- 黄灯模式4 条件放宽为两段(poll_yellow_led):
|
||||
`g_env_resync || g_env_wait_cnt >= ENV_WARN_WAIT`
|
||||
- 新增 `ENV_WARN_WAIT = 500 tick(~5 s)`(TaskLoop.h 文件级宏):
|
||||
- 高位(dev>+4dlt)持续 **5 s** 未回摆 → 黄灯**预判常亮**(提示"环境已重大变化,将进入重校准学习")
|
||||
- 累计满 **60 s** 才真正进入学习(学习期间黄灯保持常亮,学完替换 Origin 后灭)
|
||||
- 预判 ≠ 学习:回摆/目标靠近(wait 清零)→ 黄灯立即灭,不触发学习
|
||||
- 黄灯模式4 条件(poll_yellow_led):`g_env_resync || g_env_warn`
|
||||
- 新增 `ENV_WARN_WAIT = 500 tick(~5 s)` + `ENV_RECOVER_WAIT = 500 tick(~5 s)`(TaskLoop.h 文件级宏)
|
||||
- **预判锁存状态机(g_env_warn)**:
|
||||
- 高位(dev>+4dlt)连续 **5 s** → `g_env_warn=1`,黄灯**预判常亮**(提示"环境已重大变化")
|
||||
- **锁存**:回摆/目标靠近(wait 清零)**不灭灯**——只有环境回到正常空闲(dev 未进进入线)**连续 5 s**(恢复确认)才解除、黄灯灭
|
||||
- 累计满 **60 s** 才真正进入重校准学习(学习期间黄灯保持常亮,学完替换 Origin 后仍需恢复确认 5 s 才灭)
|
||||
- 高位重现 → 恢复确认计时清零,黄灯继续常亮
|
||||
- 预判 ≠ 学习:短时瞬态(60 s 内回摆)只亮黄灯、不触发学习
|
||||
|
||||
### 验证
|
||||
|
||||
- tests/test_env_resync.c 扩展:黄灯预判点亮时刻 = 500 tick;瞬态高位 4000 tick 预判亮但未学习;打断回摆后预判灭
|
||||
- tests/test_env_resync.c 扩展:预判点亮时刻 = 500 tick;回摆后黄灯**保持常亮**;稳定 5 s 后解除;高位重现再锁存;打断/放弃后锁存保持
|
||||
- 5 场景 ALL PASS;gcc `-fsyntax-only` 0 error
|
||||
|
||||
### 待现场验证
|
||||
|
||||
A 拿走场景:约 5 s 后黄灯常亮 → 60 s 后自动重学(黄灯保持常亮数秒)→ 替换完成黄灯灭、检测高度恢复。
|
||||
A 拿走场景:约 5 s 黄灯常亮(此后回摆也不灭)→ ~60 s 自动重学 → 替换完成 → 环境稳定再 5 s 黄灯灭、检测高度恢复。
|
||||
|
||||
---
|
||||
|
||||
@@ -1063,7 +1065,7 @@ if (dev >= dlt_ORG × 4) {
|
||||
|
||||
| 版本 | 时间 | 说明 |
|
||||
|------|------|------|
|
||||
| V2.23 | 2026-09-02 | V4.25 环境异常黄灯预判:dev>+4dlt 高位连续 5s(ENV_WARN_WAIT=500tick)即黄灯常亮预判,60s 才真正学习;预判≠学习,回摆即灭 |
|
||||
| V2.23 | 2026-09-02 | V4.25 环境异常黄灯预判(锁存):dev>+4dlt 高位连续 5s 触发 g_env_warn 锁存常亮;回摆/目标靠近保持,环境空闲稳定 5s(ENV_RECOVER_WAIT)才解除;60s 才真正学习 |
|
||||
| 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 前缀) |
|
||||
|
||||
@@ -185,10 +185,10 @@ DLD154V4B 是一款基于 ARM Cortex-M4 微控制器的**单通道环形线圈
|
||||
|
||||
| 状态 | 红灯 | 绿灯 | 黄灯 | 说明 |
|
||||
|------|------|------|------|------|
|
||||
| 环境校准学习中 | 呼吸 | 灭(无车) | **常亮** | 检测到**永久环境变化**(如旁置金属板被移走使基准被学低):高位持续 **5 s** 黄灯预判常亮,累计 **60 s** 后自动学习新基线并替换,恢复灵敏度 |
|
||||
| 环境校准学习中 | 呼吸 | 灭(无车) | **常亮** | 检测到**永久环境变化**(如旁置金属板被移走使基准被学低):高位持续 **5 s** 黄灯预判**锁存**常亮,累计 **60 s** 后自动学习新基线并替换,恢复灵敏度 |
|
||||
|
||||
- 线圈旁金属等目标在**上电时**在场会把空车基准学低;目标移走后检测高度会明显变低(V4.22 及以前需断电重上电或等基线慢跟恢复)。V4.24 起自动恢复;V4.25 起环境变化 **~5 s** 黄灯即常亮预判(提示"检测器已感知环境变化、即将进入重学")
|
||||
- **黄灯常亮 = 环境异常预判/学习中**:请勿移动线圈附近的目标(铁块静止 60s+ 也会被学入);回摆(干扰消失)黄灯自动灭,不触发学习
|
||||
- 线圈旁金属等目标在**上电时**在场会把空车基准学低;目标移走后检测高度会明显变低(V4.22 及以前需断电重上电或等基线慢跟恢复)。V4.24 起自动恢复;V4.25 起环境变化 **~5 s** 黄灯即常亮预判(提示"检测器已感知环境变化")
|
||||
- **黄灯常亮(锁存)= 环境异常预判/学习中**:一旦点亮,目标移走/回摆**不会立即灭灯**——需环境恢复正常(空闲)且稳定 **~5 s** 才解除。请勿在黄灯常亮期间移动线圈附近的金属目标(铁块静止 60 s+ 也会被学入)
|
||||
- 黄灯优先级:断开快闪 > 环境预判/学习常亮 > N 短闪(断开史)> 灭
|
||||
|
||||
- **快闪**:200ms 亮 / 200ms 灭
|
||||
|
||||
@@ -449,7 +449,8 @@ if (dev < dlt_ORG * 4) {
|
||||
| STABLE_SETTLE_WINDOWS | 2 | ~2 s | 连续窗口漂移达标数 |
|
||||
| STABLE_MAX_SAMPLES | 500 tick | **~5 s** | 自检硬兜底上限(超时强制判稳) |
|
||||
| FREEZE_TIMEOUT | 1000 | **~10 s** | 基线冻结超时(连续稳定后更新 Origin) |
|
||||
| ENV_WARN_WAIT | 500 tick | **~5 s** | 环境预判黄灯(V4.25):dev>+4×dlt 高位连续 5s 即黄灯常亮预判(将进入重学);预判≠学习,回摆即灭 |
|
||||
| ENV_WARN_WAIT | 500 tick | **~5 s** | 环境预判锁存(V4.25):dev>+4×dlt 高位连续 5s → 黄灯常亮预判(锁存) |
|
||||
| ENV_RECOVER_WAIT | 500 tick | ~5 s | 恢复确认(V4.25):环境回正常空闲连续 5s 才解除预判锁存、黄灯灭(回摆/目标靠近保持常亮) |
|
||||
| ENV_RESYNC_WAIT | 6000 tick | **~60 s** | 环境重校准等待:dev>+4×dlt 高位连续 60s 判定永久环境变化(V4.24) |
|
||||
| ENV_LEARN_WINDOW | 200 tick | ~2 s | 环境学习窗口(基线 B 均值窗,学习期黄灯常亮) |
|
||||
| ENV_LEARN_MAX_TICKS | 3000 tick | **~30 s** | 学习预算:窗口不稳超时放弃,保留旧 Origin(防死锁) |
|
||||
@@ -758,4 +759,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
|
||||
| V2.1 | 2026-06-29 | 更新至 V2.6:单路 IIR ALFA_CAP1=79, WINDOW_ORIGIN=500, 两阶段基线 |
|
||||
| V2.2 | 2026-09-02 | 更新至 V4.23:上电稳定期判稳语义(基准漂移≤0.1%×2窗 + 5s兜底)、红灯呼吸周期≈2.6s、绿灯自检描述 |
|
||||
| V2.3 | 2026-09-02 | 更新至 V4.24:环境重校准(dev>+4dlt 高位连续 60s → 学习基线 B → 空闲原子替换 Origin,黄灯常亮指示;瞬态 60s 内不污染、30s 学习预算兜底) |
|
||||
| V2.4 | 2026-09-02 | 更新至 V4.25:环境异常黄灯预判(ENV_WARN_WAIT=5s 常亮,预判≠学习,回摆即灭) |
|
||||
| V2.4 | 2026-09-02 | 更新至 V4.25:环境异常黄灯预判锁存(ENV_WARN_WAIT=5s 触发;回摆保持,ENV_RECOVER_WAIT 空闲 5s 才解除);预判≠学习 |
|
||||
|
||||
Reference in New Issue
Block a user