feat(V4B): V4.26 — 线圈电感量告警(一长一短) + 故障补偿 60s→10s (4点拍板)
1. 默认低频档频率合理窗 20~120kHz, 出界即告警(不做档位判定/灰带):
TaskLoop.c 新增 coil_monitor() — 稳定+无车空闲由无车主路径调用,
Origin 反推空场 f, f<20kHz→L偏大/f>120kHz→L偏小, 1s 防抖置位/清除
2. 告警形式: 黄灯"一长一短" 200ms亮/100ms灭/100ms亮/800ms灭 循环 (模式5)
3. 黄灯优先级: 断开快闪 > 故障补偿(学习)常亮 > 电感量一长一短 > N短闪 > 灭
4. 故障补偿等待 ENV_RESYNC_WAIT 6000→1000 (60s→10s): 总补偿 ~66s→~21s
验证: tests/test_coil_range.c 5场景(边界19/20/120/121+防抖) ALL PASS;
test_env_resync.c 适配10s(applied_at=1600tick) 5场景 ALL PASS; 语法 0 error
文档: devlog V2.24/spec V2.5/manual V2.9/design doc v0.3(标记已实现)
修复: 源文件行尾多CR污染(\\r\\r\\r\\r\\n)统一规范化回标准CRLF
This commit is contained in:
+27
-17
@@ -1,6 +1,6 @@
|
||||
# DLD154V4B 技术规格书
|
||||
|
||||
> 单路线圈车辆检测器 | 固件版本: V4.25 | 文档版本: V2.4
|
||||
> 单路线圈车辆检测器 | 固件版本: V4.26 | 文档版本: V2.5
|
||||
> 本文档面向工程开发、系统集成及故障深度分析
|
||||
|
||||
---
|
||||
@@ -364,7 +364,7 @@ if (!VD_FLAG) {
|
||||
| 4× 冻结阈值 | 防止异常 CAPVD 上升污染基线(V1.5) |
|
||||
| 5% 斜率限幅 | 过滤 EMI/闪电尖峰,保护 IIR(V2.0) |
|
||||
| 冻结超时 + 稳定性检查 | 防止永久冻结死锁(V2.3~2.5) |
|
||||
| 环境重校准(V4.24) | dev>+4×dlt 高位连续 60s(ENV_RESYNC_WAIT)→ 判定永久环境变化 → 学习基线 B(空闲窗均值+判稳,黄灯常亮)→ 原子替换 Origin;铁块类瞬态 60s 内仍只冻结不污染 |
|
||||
| 环境重校准(V4.24/26) | dev>+4×dlt 高位连续 10s(ENV_RESYNC_WAIT,V4.26 由 60s 提速)→ 判定永久环境变化 → 学习基线 B(空闲窗均值+判稳,黄灯常亮)→ 原子替换 Origin;铁块类瞬态 10s 内仍只冻结不污染 |
|
||||
|
||||
#### 4.4.3 基线更新速率(两阶段)
|
||||
|
||||
@@ -451,9 +451,12 @@ if (dev < dlt_ORG * 4) {
|
||||
| FREEZE_TIMEOUT | 1000 | **~10 s** | 基线冻结超时(连续稳定后更新 Origin) |
|
||||
| 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_RESYNC_WAIT | 1000 tick | **~10 s** | 环境重校准等待:dev>+4×dlt 高位连续 10s 判定永久环境变化(V4.26 拍板:60s→10s) |
|
||||
| ENV_LEARN_WINDOW | 200 tick | ~2 s | 环境学习窗口(基线 B 均值窗,学习期黄灯常亮) |
|
||||
| ENV_LEARN_MAX_TICKS | 3000 tick | **~30 s** | 学习预算:窗口不稳超时放弃,保留旧 Origin(防死锁) |
|
||||
| COIL_F_OK_MIN_KHZ | 20 kHz | — | 线圈频率合理窗下界(V4.26):默认低频档口径,f<20kHz → L偏大告警 |
|
||||
| COIL_F_OK_MAX_KHZ | 120 kHz | — | 线圈频率合理窗上界(V4.26):f>120kHz → L偏小告警 |
|
||||
| COIL_DEF_C_NF | 66 nF | — | 默认档电容(拨码不可读,粗估 L 打印用;33nF 档结果 ×2) |
|
||||
|
||||
> **M4 优化**:V2.0 将 tick 从 50ms (TMR15 5ms×10) 提升到 10ms (vTaskDelay 10ms)。IIR 系数同步调整(α 从 79/256→18/256),保持等效时间常数。进入确认 3×10ms + 500ms IN_DELAY = ~530ms,比旧设计 (50ms + 500ms = 550ms) 略快。基线更新从 5s 加速到 1s。
|
||||
|
||||
@@ -498,23 +501,28 @@ void poll_green_led(void) {
|
||||
|
||||
### 6.3 黄灯行为表
|
||||
|
||||
| 条件 | 行为 | 参数 | 诊断含义 |
|
||||
|------|------|------|---------|
|
||||
| `g_disconnect_active == 1` | **快闪** | 200ms 亮 / 200ms 灭 | 线圈当前断开中 |
|
||||
| `!g_loop_power_up_state` | **快闪** | 200ms 亮 / 200ms 灭 | 上电后从未连接线圈 |
|
||||
| `g_disconnect_count == 1` | **1 短闪** | 80ms 亮 / 200ms 灭 → 1.2s 灭(循环) | 断开 1 次,已恢复 |
|
||||
| `g_disconnect_count == 2` | **2 短闪** | 同上 | 断开 2 次 |
|
||||
| `g_disconnect_count >= 3` | **3 短闪** | 同上 | 断开 3+ 次 |
|
||||
| 正常 | **灭** | — | 一切正常 |
|
||||
| 优先级 | 条件 | 行为 | 参数 | 诊断含义 |
|
||||
|--------|------|------|------|---------|
|
||||
| 1 | `g_disconnect_active == 1` 或 `!g_loop_power_up_state` | **快闪** | 200ms 亮 / 200ms 灭 | 线圈当前断开中 / 从无线圈上电 |
|
||||
| 4 | `g_env_warn` 或 `g_env_resync` | **常亮** | — | 环境异常预判/重校准学习(V4.24/25;故障补偿 ~10 s 内完成) |
|
||||
| 5 | `g_coil_fault`(V4.26) | **一长一短** | 长亮 200ms / 灭 100ms / 短亮 100ms / 灭 800ms 循环 | 电感量不合理:1=L偏大(f<20kHz) 2=L偏小(f>120kHz) |
|
||||
| 3 | `g_disconnect_count == 1` | **1 短闪** | 80ms 亮 / 200ms 灭 → 1.2s 灭(循环) | 断开 1 次,已恢复 |
|
||||
| 3 | `g_disconnect_count == 2` | **2 短闪** | 同上 | 断开 2 次 |
|
||||
| 3 | `g_disconnect_count >= 3` | **3 短闪** | 同上 | 断开 3+ 次 |
|
||||
| 2 | 正常 | **灭** | — | 一切正常 |
|
||||
|
||||
```c
|
||||
void poll_yellow_led(void) {
|
||||
void poll_yellow_led(void) { // 优先级 1 > 4 > 5 > 3 > 2 (V4.26)
|
||||
if (g_disconnect_active || !g_loop_power_up_state)
|
||||
fast_blink_200ms(); // 断开中快闪
|
||||
fast_blink_200ms(); // ① 断开中快闪
|
||||
else if (g_env_warn || g_env_resync)
|
||||
led_on(); // ④ 环境预判/学习中常亮 (V4.24/25)
|
||||
else if (g_coil_fault)
|
||||
long_short_blink(); // ⑤ 电感量不合理: 一长一短 (V4.26)
|
||||
else if (g_disconnect_count > 0)
|
||||
n_short_flash(g_disconnect_count); // N 短闪编码
|
||||
n_short_flash(g_disconnect_count); // ③ N 短闪编码
|
||||
else
|
||||
led_off(); // 正常
|
||||
led_off(); // ② 正常
|
||||
}
|
||||
```
|
||||
|
||||
@@ -617,14 +625,15 @@ if (!g_loop_stable) {
|
||||
|--------|---------|---------|
|
||||
| 线圈断开 | `loop1_RF_FLAG == 0` 持续 | 黄灯快闪 / 继电器释放 |
|
||||
| 线圈短路 | Xn 持续为 0 或极小 | 黄灯快闪 / 继电器释放 |
|
||||
| 频率过低 | Value 持续 < MIN_FREQ | 黄灯编码闪烁 |
|
||||
| 频率过高 | Value 持续 > MAX_FREQ | 黄灯编码闪烁 |
|
||||
| 电感量不合理(L偏大) | 空场 f 持续 < 20 kHz(默认低频档,V4.26) | 黄灯**一长一短**(g_coil_fault=1)/ 持续监视 1s 防抖 |
|
||||
| 电感量不合理(L偏小) | 空场 f 持续 > 120 kHz | 黄灯**一长一短**(g_coil_fault=2)/ 持续监视 1s 防抖 |
|
||||
|
||||
### 10.2 黄灯编码设计
|
||||
|
||||
断开次数编码提供了比 TLD-110 的均匀闪烁更丰富的诊断信息:
|
||||
- **快闪=当前故障** → 现场立即处理
|
||||
- **N短闪=历史故障** → 判断是偶发还是持续问题
|
||||
- **一长一短=线圈电感量不合理**(V4.26):空场频率出 20~120kHz 窗(默认低频档);用标定线圈实测后微调阈值
|
||||
|
||||
---
|
||||
|
||||
@@ -760,3 +769,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
|
||||
| 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 触发;回摆保持,ENV_RECOVER_WAIT 空闲 5s 才解除);预判≠学习 |
|
||||
| V2.5 | 2026-09-03 | 更新至 V4.26:线圈电感量告警(频率窗 20~120kHz 单窗,黄灯一长一短);故障补偿 ENV_RESYNC_WAIT 60s→10s;黄灯优先级 1>4>5>3>2 |
|
||||
|
||||
Reference in New Issue
Block a user