feat(V4B): V4.36.18 — 频率窗下界 20→18kHz

COIL_F_OK_MIN_KHZ 18: 合理窗 18~125kHz (@43nF ≈ L47µH~1.15mH) 放行更大电感
test 边界 17偏大/18正常 全绿; 镜像同步
顺带修正 spec 参数表历史滞后: MAX 115→125, COIL_CAL_C_NF 68→43
语法0 error; spec V2.34 / manual / devlog V2.53
This commit is contained in:
wangfq
2026-09-04 17:35:41 +08:00
parent c4c7a484b7
commit e1b5542296
6 changed files with 23 additions and 13 deletions
+9
View File
@@ -4,6 +4,14 @@
--- ---
## 2026-09-03 — 频率窗下界 20→18kHz(固件 V4.36.18
> **固件版本:V4.36.18**cmcng.hFIRMWARE_VER="4.36.18"REV=18)。devlog 修订 V2.53。
COIL_F_OK_MIN_KHZ 20 → **18**:合理窗 **18~125kHz**@43nF ≈ L 47µH~1.15mH),
放行更大电感线圈(如双/大尺寸地感)。test_coil_range 镜像+边界 17 偏大/18 正常。
顺带修正 spec 参数表历史滞后(MAX_KHZ 115→125、COIL_CAL_C_NF 68→43)。
## 2026-09-03 — 安全复位观感勘误:绿灯镜像继电器后复位指示变化(文档 V2.52,无代码改动) ## 2026-09-03 — 安全复位观感勘误:绿灯镜像继电器后复位指示变化(文档 V2.52,无代码改动)
> 用户板测确认:SW5=ON 金属板压 >4 分钟 → 安全复位**正常触发**(Origin 重学压板值, > 用户板测确认:SW5=ON 金属板压 >4 分钟 → 安全复位**正常触发**(Origin 重学压板值,
@@ -1894,6 +1902,7 @@ if (dev >= dlt_ORG × 4) {
| 版本 | 时间 | 说明 | | 版本 | 时间 | 说明 |
|------|------|------| |------|------|------|
| V2.53 | 2026-09-03 | V4.36.18 频率窗下界 20→18kHz (18~125kHz) |
| V2.52 | 2026-09-03 | 安全复位观感勘误(无代码): 绿灯镜像继电器后复位指示变化; manual 4.5/spec 对齐实际行为 | | V2.52 | 2026-09-03 | 安全复位观感勘误(无代码): 绿灯镜像继电器后复位指示变化; manual 4.5/spec 对齐实际行为 |
| V2.51 | 2026-09-03 | V4.36.17 修复上电无线圈黄灯不闪: 黄灯模式1 改 !LOOP_OK(5ms 实时) | | V2.51 | 2026-09-03 | V4.36.17 修复上电无线圈黄灯不闪: 黄灯模式1 改 !LOOP_OK(5ms 实时) |
| V2.50 | 2026-09-03 | V4.36.16 上电自检与重连灯语义分离: 黄灯去!power_up, 判稳门控限运行中(stable=1) | | V2.50 | 2026-09-03 | V4.36.16 上电自检与重连灯语义分离: 黄灯去!power_up, 判稳门控限运行中(stable=1) |
+1 -1
View File
@@ -187,7 +187,7 @@ SW_5 = ON 时:车辆(金属)持续压线超过 **4 分钟**LC_HOLD_TIME
| 故障类型 | 红灯 | 绿灯 | 黄灯 | 说明 | | 故障类型 | 红灯 | 绿灯 | 黄灯 | 说明 |
|---------|------|------|------|------| |---------|------|------|------|------|
| 线圈断开(当前) | 呼吸 | 灭 | **快闪** (200ms) | 检查线圈连接。**断开前有车:继电器保持 RELAY_HOLD_MS=1000ms 后仍断才释放**(防瞬时断开误释放,宏可调)。**重连后无车判稳门控**:值稳定(600ms 无漂移)且回带内才放行检测,判稳期黄灯保持快闪,Origin 自动对齐新空场 | | 线圈断开(当前) | 呼吸 | 灭 | **快闪** (200ms) | 检查线圈连接。**断开前有车:继电器保持 RELAY_HOLD_MS=1000ms 后仍断才释放**(防瞬时断开误释放,宏可调)。**重连后无车判稳门控**:值稳定(600ms 无漂移)且回带内才放行检测,判稳期黄灯保持快闪,Origin 自动对齐新空场 |
| 线圈电感量不合理(V4.26/V4.36.13 | 呼吸 | 灭(无车) | **一长一短** (900ms亮/300ms灭/100ms亮/700ms灭 循环) | 空场频率出 20~125kHz(默认低频档):L偏大(f<20k)/L偏小(f>125k),检查线圈匝数/尺寸 | | 线圈电感量不合理(V4.26/V4.36.13 | 呼吸 | 灭(无车) | **一长一短** (900ms亮/300ms灭/100ms亮/700ms灭 循环) | 空场频率出 18~125kHz(默认低频档):L偏大(f<18k)/L偏小(f>125k),检查线圈匝数/尺寸 |
| 线圈重连,断开 1 次 | 呼吸 | 正常 | **1 短闪** + 1.2s 灭 | 发生过 1 次断开,已恢复 | | 线圈重连,断开 1 次 | 呼吸 | 正常 | **1 短闪** + 1.2s 灭 | 发生过 1 次断开,已恢复 |
| 线圈重连,断开 2 次 | 呼吸 | 正常 | **2 短闪** + 1.2s 灭 | 发生过 2 次断开,已恢复 | | 线圈重连,断开 2 次 | 呼吸 | 正常 | **2 短闪** + 1.2s 灭 | 发生过 2 次断开,已恢复 |
| 线圈重连,断开 3+ 次 | 呼吸 | 正常 | **3 短闪** + 1.2s 灭 | 多次断开,建议检查接头 | | 线圈重连,断开 3+ 次 | 呼吸 | 正常 | **3 短闪** + 1.2s 灭 | 多次断开,建议检查接头 |
+5 -4
View File
@@ -1,6 +1,6 @@
# DLD154V4B 技术规格书 # DLD154V4B 技术规格书
> 单路线圈车辆检测器 | 固件版本: V4.36.17 | 文档版本: V2.33 > 单路线圈车辆检测器 | 固件版本: V4.36.18 | 文档版本: V2.34
> 本文档面向工程开发、系统集成及故障深度分析 > 本文档面向工程开发、系统集成及故障深度分析
--- ---
@@ -455,9 +455,9 @@ if (dev < dlt_ORG * 4) {
| ENV_RESYNC_WAIT | 700 tick | **~7 s** | 环境重校准等待:dev>+4×dlt 高位连续 7s 判定永久环境变化(V4.31 拍板:60s→10s→8s→7s | | ENV_RESYNC_WAIT | 700 tick | **~7 s** | 环境重校准等待:dev>+4×dlt 高位连续 7s 判定永久环境变化(V4.31 拍板:60s→10s→8s→7s |
| ENV_LEARN_WINDOW | 200 tick | ~2 s | 环境学习窗口(基线 B 均值窗,学习期黄灯常亮) | | ENV_LEARN_WINDOW | 200 tick | ~2 s | 环境学习窗口(基线 B 均值窗,学习期黄灯常亮) |
| ENV_LEARN_MAX_TICKS | 3000 tick | **~30 s** | 学习预算:窗口不稳超时放弃,保留旧 Origin(防死锁) | | ENV_LEARN_MAX_TICKS | 3000 tick | **~30 s** | 学习预算:窗口不稳超时放弃,保留旧 Origin(防死锁) |
| COIL_F_OK_MIN_KHZ | 20 kHz | — | 线圈频率合理窗下界(V4.26):默认低频档口径,f<20kHz → L偏大告警 | | COIL_F_OK_MIN_KHZ | 18 kHz | — | 线圈频率合理窗下界(V4.36.18):f<18kHz → L偏大告警 |
| COIL_F_OK_MAX_KHZ | 115 kHz | — | 线圈频率合理窗上界(V4.36):f>115kHz → L偏小告警(43nF 板口径 ≈44µH;历史 120@68nF实验→92→108→115 | | COIL_F_OK_MAX_KHZ | 125 kHz | — | 线圈频率合理窗上界(V4.36.9):f>125kHz → L偏小告警(43nF 板口径 ≈38µH;历史 120@68nF实验→92→108→115→125 |
| COIL_CAL_C_NF | 68 nF | — | **标定等效谐振电容**V4.29):0Ω 板低频档实测 C_eff=68.1~68.9nF(均值 68.4)≈名义 66;旧 43 为 5.1K 旧板带病特性(三极管开关未饱和导通)作废;高频档(33nF)参考 340Ω 板待复测);标定法:LCR 实测 L → C=2.533e7/(f²×L),多颗平均 | | COIL_CAL_C_NF | 43 nF | — | **标定等效谐振电容**V4.34 产品基准):三极管库存板(R19在/R27空,66nF 名义)实测 C_eff≈43;68 为 0Ω 实验板仅机理验证口径(产品不用);高频档(33nF)参考 34;标定法:LCR 实测 L → C=2.533e7/(f²×L),多颗平均 |
> **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。 > **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。
@@ -804,3 +804,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
| V2.31 | 2026-09-03 | **V4.36.15 重连判稳门控**:无车断开重连后值稳定才放行动作——200ms 步进漂移≤dlt/2 连续 600ms + dev 回带(≤dlt) → Origin 对齐当前空场(消新旧基线差);不稳黄灯续闪;强车 8×dlt 例外即时放行;5s 兜底。低Q 窗末假车(21µH 蠕变 ~2.2s > 固定窗)根治 | | V2.31 | 2026-09-03 | **V4.36.15 重连判稳门控**:无车断开重连后值稳定才放行动作——200ms 步进漂移≤dlt/2 连续 600ms + dev 回带(≤dlt) → Origin 对齐当前空场(消新旧基线差);不稳黄灯续闪;强车 8×dlt 例外即时放行;5s 兜底。低Q 窗末假车(21µH 蠕变 ~2.2s > 固定窗)根治 |
| V2.32 | 2026-09-03 | **V4.36.16 上电自检与重连灯语义分离**:黄灯模式1 去 !power_up(上电有线圈黄灯不闪,自检归绿灯慢闪);无线圈由 disconnect_active 覆盖仍双闪;判稳门控触发加 g_loop_stable(上电/安全复位不判稳);运行中重连仍黄灯接管 | | V2.32 | 2026-09-03 | **V4.36.16 上电自检与重连灯语义分离**:黄灯模式1 去 !power_up(上电有线圈黄灯不闪,自检归绿灯慢闪);无线圈由 disconnect_active 覆盖仍双闪;判稳门控触发加 g_loop_stable(上电/安全复位不判稳);运行中重连仍黄灯接管 |
| V2.33 | 2026-09-03 | **V4.36.17 修复上电无线圈黄灯不闪**:断开分支置位条件含 power_up(上电 phase 故意不置 disconnect_active),V4.36.16 去 !power_up 后裸奔 → 黄灯模式1 改 `!LOOP_OK || g_reconn_stab`(5ms 实时载波缺失判定,同时让运行中断开黄灯反应从 150ms 加快到 5ms) | | V2.33 | 2026-09-03 | **V4.36.17 修复上电无线圈黄灯不闪**:断开分支置位条件含 power_up(上电 phase 故意不置 disconnect_active),V4.36.16 去 !power_up 后裸奔 → 黄灯模式1 改 `!LOOP_OK || g_reconn_stab`(5ms 实时载波缺失判定,同时让运行中断开黄灯反应从 150ms 加快到 5ms) |
| V2.34 | 2026-09-03 | **V4.36.18 频率窗下界 20→18kHz**:放行更大电感线圈(18~125kHz @43nF ≈ L 47µH~1.15mH);test 边界 17 偏大/18 正常;参数表同步修正历史滞后(MAX 125 / C_NF 43 |
+5 -5
View File
@@ -3,7 +3,7 @@
* *
* : TaskLoop.c coil_monitor() (V4.26 ) * : TaskLoop.c coil_monitor() (V4.26 )
* (43nF ): 20~125kHz, * (43nF ): 20~125kHz,
* g_coil_fault: 0= 1=L偏大(f<20kHz) 2=L偏小(f>125kHz) * g_coil_fault: 0= 1=L偏大(f<18kHz) 2=L偏小(f>125kHz)
* : / 100tick(=1s) / (=) * : / 100tick(=1s) / (=)
* *
* ( COIL_* !) * ( COIL_* !)
@@ -13,7 +13,7 @@
#include <stdio.h> #include <stdio.h>
#include <stdint.h> #include <stdint.h>
#define COIL_F_OK_MIN_KHZ 20 #define COIL_F_OK_MIN_KHZ 18
#define COIL_F_OK_MAX_KHZ 125 #define COIL_F_OK_MAX_KHZ 125
#define COIL_DEF_C_NF 66 #define COIL_DEF_C_NF 66
@@ -85,9 +85,9 @@ static void test_recover(void)
static void test_boundaries(void) static void test_boundaries(void)
{ {
g_coil_fault = 0; g_coil_bad_cnt = 0; g_coil_fault = 0; g_coil_bad_cnt = 0;
run_ticks(19, 100); assert(g_coil_fault == 1); /* 19 → 偏大 */ run_ticks(17, 100); assert(g_coil_fault == 1); /* 19 → 偏大 */
run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~125 正常 */ run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~125 正常 */
run_ticks(20, 100); assert(g_coil_fault == 0); /* 边界 20 正常 */ run_ticks(18, 100); assert(g_coil_fault == 0); /* 边界 20 正常 */
run_ticks(125, 100); assert(g_coil_fault == 0); /* 边界 125 正常 */ run_ticks(125, 100); assert(g_coil_fault == 0); /* 边界 125 正常 */
run_ticks(126, 100); assert(g_coil_fault == 2); /* 126 → 偏小 */ run_ticks(126, 100); assert(g_coil_fault == 2); /* 126 → 偏小 */
printf("4. 边界 19/20/125/126 OK\n"); printf("4. 边界 19/20/125/126 OK\n");
@@ -111,6 +111,6 @@ int main(void)
test_recover(); test_recover();
test_boundaries(); test_boundaries();
test_jitter_no_alarm(); test_jitter_no_alarm();
printf("\nALL PASS (窗口 20~125kHz, 防抖 1s)\n"); printf("\nALL PASS (窗口 18~125kHz, 防抖 1s)\n");
return 0; return 0;
} }
@@ -60,7 +60,7 @@
#define FREEZE_STABILITY_RATE 2 // 冻结稳定性窗口: 参考值的 ±2% (CAPVD 需在此范围内才累计超时) #define FREEZE_STABILITY_RATE 2 // 冻结稳定性窗口: 参考值的 ±2% (CAPVD 需在此范围内才累计超时)
#define ENV_WARN_WAIT 200 // 环境预判 (V4.31): dev>+4dlt 高位连续 ~2s → 黄灯预判锁存(回摆保持) #define ENV_WARN_WAIT 200 // 环境预判 (V4.31): dev>+4dlt 高位连续 ~2s → 黄灯预判锁存(回摆保持)
#define ENV_RECOVER_WAIT 200 // 恢复确认 (V4.31): 新基线替换后 环境空闲连续 ~2s 才解除预判, 黄灯灭 #define ENV_RECOVER_WAIT 200 // 恢复确认 (V4.31): 新基线替换后 环境空闲连续 ~2s 才解除预判, 黄灯灭
#define COIL_F_OK_MIN_KHZ 20 // 线圈频率合理窗 (V4.26): 默认低频档口径, <20kHz → L偏大 #define COIL_F_OK_MIN_KHZ 18 // 线圈频率合理窗 (V4.36.18): 默认低频档口径, <18kHz → L偏大 (≈双 250µH+ 大线圈放行)
#define COIL_F_OK_MAX_KHZ 125 // 线圈频率合理窗 (V4.36/9): >125kHz → L偏小 (43nF板口径, ≈38µH) #define COIL_F_OK_MAX_KHZ 125 // 线圈频率合理窗 (V4.36/9): >125kHz → L偏小 (43nF板口径, ≈38µH)
#define COIL_CAL_C_NF 43 // 标定等效谐振电容 nF (V4.34): 三极管库存板 低频档(66nF名义, R19在/R27空)实测 C_eff≈43 (41.3~45.5; 0Ω板68仅实验口径, 产品不用) #define COIL_CAL_C_NF 43 // 标定等效谐振电容 nF (V4.34): 三极管库存板 低频档(66nF名义, R19在/R27空)实测 C_eff≈43 (41.3~45.5; 0Ω板68仅实验口径, 产品不用)
// 旧43 = 5.1K电阻旧板带病特性(三极管开关未饱和导通, 第二颗33nF未全量并入), 作废 // 旧43 = 5.1K电阻旧板带病特性(三极管开关未饱和导通, 第二颗33nF未全量并入), 作废
+2 -2
View File
@@ -14,11 +14,11 @@
#define __CMCNG_H__ #define __CMCNG_H__
#define PRODUCT_MODEL "DLD154" #define PRODUCT_MODEL "DLD154"
#define FIRMWARE_VER "4.36.17" // 主.子.修订 (2026-09-03 起: 小改动只增 REV; MAIN/SUB 由产品定) #define FIRMWARE_VER "4.36.18" // 主.子.修订 (2026-09-03 起: 小改动只增 REV; MAIN/SUB 由产品定)
#define HARDWARE_VER "3.00" #define HARDWARE_VER "3.00"
#define FIRMWARE_VER_MAIN 4 #define FIRMWARE_VER_MAIN 4
#define FIRMWARE_VER_SUB 36 #define FIRMWARE_VER_SUB 36
#define FIRMWARE_VER_REV 17 #define FIRMWARE_VER_REV 18
#define HARDWARE_VER_MAIN 3 #define HARDWARE_VER_MAIN 3
#define HARDWARE_VER_SUB 0 #define HARDWARE_VER_SUB 0