diff --git a/docs/coil-range-alarm-design.md b/docs/coil-range-alarm-design.md index db1d8a0..a5eb4c3 100644 --- a/docs/coil-range-alarm-design.md +++ b/docs/coil-range-alarm-design.md @@ -12,6 +12,7 @@ | v0.3 | 2026-09-03 | **用户 4 点拍板收口(取代 v0.2 三区/灰带)**:默认低频档频率窗 **20~120 kHz** 出界即告警;黄灯**一长一短**;优先级 1 断开快闪 > 4 故障补偿常亮 > 5 电感一长一短 > 3 N短亮 > 2 灭;故障补偿 ENV_RESYNC_WAIT **60s→10s**。已实现于 V4.26(672f143 后) | | v0.4 | 2026-09-03 | **测频 4 倍偏差修正(V4.27)**:calc_freq_khz 60000→240000(TMR3 实际 120MHz 计数 + 通道捕获 DIV_2)。本文 §3 中"Xn=3681→f=16.3kHz→L≈1.4mH 超限案例"为**测频 bug 假象**——修正后实为 f≈65.2kHz、L≈90µH 的正常线圈;该"红区案例"作废,需按真实频率重新采集现场数据 | | v0.5 | 2026-09-03 | **L 估算标定(V4.28)**:五组 LCR 实测反推振荡回路等效谐振电容 C_eff=41.3~45.5nF(均值 43),与名义 66nF 明显不符 → 固件改标定值 COIL_CAL_C_NF=43(L_uH=2.533e7/(f²×C_eff));COIL_DEF_C_NF 保留为名义口径。残差 ±6% 内,待多线圈/标定电感进一步收口 | +| v0.6 | 2026-09-03 | **硬件修复后定稿(V4.29)**:拨码三极管 5.1K→0Ω → 低频档并联全导通,C_eff=68.1~68.9(均值 68.4)≈名义 66。v0.5 的 43 为 5.1K 旧板带病特性(开关未饱和),**作废**;COIL_CAL_C_NF 43→68,残差 ≤1.5%。33nF 档标定 34(旧板数据)待 0Ω 板复测 | ## 1. 背景 diff --git a/docs/devlog.md b/docs/devlog.md index a78d109..87b3e3b 100644 --- a/docs/devlog.md +++ b/docs/devlog.md @@ -4,6 +4,47 @@ --- +## 2026-09-03 — C_eff 标定定稿 68(0Ω 板低频档)+ 硬件疑点闭环(固件 V4.29) + +> **固件版本:V4.29**(cmcng.h:FIRMWARE_VER="4.29" + MAIN=4/SUB=29)。devlog 修订 V2.27。 + +### 硬件修复(用户操作) + +拨码接通第二颗 33nF 的开关电路:**三极管上 5.1K 电阻改为 0Ω**。 +(该三极管用于拨码档位时断开/接通电容。) + +### 修复效果(0Ω 板低频档实测) + +| 打印 f | 打印 L(66名义) | LCR 实际 L | C_eff 反推 | +|--------|--------------|-----------|-----------| +| 52 kHz | 141 µH | 136 µH | 68.9 nF | +| 127 kHz | 23 µH | 23 µH | 68.3 nF | +| 88 kHz | 49 µH | 48 µH | 68.1 nF | + +**C_eff = 68.1~68.9nF(均值 68.4)≈ 名义 66nF** → 第二颗 33nF 现在真正并联进回路。 + +### 闭环结论(V4.28 的 43 作废) + +V4.28 标定的 43nF 是 **5.1K 旧板带病特性**:5.1K 电阻在三极管开关通路造成 +未饱和导通/压降 → 第二颗 33nF 只等效并入 ~8.6nF(两档 C_eff 比仅 1.25 非 2.0)。 +换 0Ω 后开关全导通 → 低频档 C_eff 回到 ~68(≈66+分布)。 + +### 改动 + +- COIL_CAL_C_NF 43 → **68**(0Ω 板量产默认);注释记录 43 作废原因 +- 高频档(33nF)标定仍记 34(旧板数据;0Ω 板待复测,若开关只控并联支路则不受影响) +- 版本 V4.29;spec V2.8 / devlog V2.27 / design doc v0.6 + +### 验证(用 68 回代) + +52k→138µH(实136 +1.3%) 127k→23µH(实23 +0.4%) 88k→48µH(实48 +0.2%) +残差 ≤1.5%(用名义 66 则 +3~4%,68 更贴 LCR) + +### 待确认 + +- 0Ω 板 **33nF 档** C_eff 复测(预期仍 ~34,若开关只控并联支路) +- 量产切换 0Ω 电阻后按 68 标定 + ## 2026-09-03 — 电感量估算引入 C_eff 标定(固件 V4.28) > **固件版本:V4.28**(cmcng.h:FIRMWARE_VER="4.28" + MAIN=4/SUB=28)。devlog 修订 V2.26。 @@ -1188,6 +1229,7 @@ if (dev >= dlt_ORG × 4) { | 版本 | 时间 | 说明 | |------|------|------| +| V2.27 | 2026-09-03 | V4.29 硬件修复(拨码三极管5.1K→0Ω)后 C_eff=68.1~68.9nF≈名义66, COIL_CAL_C_NF 43→68 (旧43为5.1K带病特性作废) | | V2.26 | 2026-09-03 | V4.28 电感量估算引入标定 COIL_CAL_C_NF=43(名义 66nF vs 实测 C_eff≈43,5 组反推 41.3~45.5nF);残差 ±6% | | V2.25 | 2026-09-03 | V4.27 频率测量 4 倍偏差修正(calc 60000→240000:120MHz×DIV_2);coil_l_uH 随 f 修正;旧 f/L 日志需 ×4 | | V2.24 | 2026-09-03 | V4.26 线圈电感量告警(频率窗 20~120kHz 一长一短)+ 故障补偿 60s→10s;行尾规范化 CRLF | diff --git a/docs/technical-spec.md b/docs/technical-spec.md index 1a025c7..c49fb35 100644 --- a/docs/technical-spec.md +++ b/docs/technical-spec.md @@ -1,6 +1,6 @@ # DLD154V4B 技术规格书 -> 单路线圈车辆检测器 | 固件版本: V4.28 | 文档版本: V2.7 +> 单路线圈车辆检测器 | 固件版本: V4.29 | 文档版本: V2.8 > 本文档面向工程开发、系统集成及故障深度分析 --- @@ -457,7 +457,7 @@ if (dev < dlt_ORG * 4) { | 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_CAL_C_NF | 43 nF | — | **标定等效谐振电容**(V4.28):名义 66nF,但 2026-09-03 五组 LCR 实测反推 C_eff=41.3~45.5nF(均值 43)→ L 估算用此值;标定法:LCR 实测 L → C=2.533e7/(f²×L),多颗平均 | +| COIL_CAL_C_NF | 68 nF | — | **标定等效谐振电容**(V4.29):0Ω 板低频档实测 C_eff=68.1~68.9nF(均值 68.4)≈名义 66;旧 43 为 5.1K 旧板带病特性(三极管开关未饱和导通)作废;高频档(33nF)参考 34(0Ω 板待复测);标定法: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。 @@ -773,3 +773,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的 | V2.5 | 2026-09-03 | 更新至 V4.26:线圈电感量告警(频率窗 20~120kHz 单窗,黄灯一长一短);故障补偿 ENV_RESYNC_WAIT 60s→10s;黄灯优先级 1>4>5>3>2 | | V2.6 | 2026-09-03 | 更新至 V4.27:频率测量 4 倍偏差修正(calc_freq_khz 60000→240000:TMR3 实际 120MHz 计数 + 通道 DIV_2 边沿分频,原按 60MHz 假设漏乘 2×2);§4.1.2 流程文字更正 | | V2.7 | 2026-09-03 | 更新至 V4.28:L 估算引入标定等效谐振电容 COIL_CAL_C_NF=43(名义 66nF 与实测 C_eff≈43 不符;5 组实测 41.3~45.5nF) | +| V2.8 | 2026-09-03 | 更新至 V4.29:硬件修复(拨码三极管 5.1K→0Ω)使低频档并联全导通,C_eff 43→68.4≈名义66;COIL_CAL_C_NF 43→68 | diff --git a/utilities/at32f421_freertos_demo/inc/TaskLoop.h b/utilities/at32f421_freertos_demo/inc/TaskLoop.h index dfc4ce3..348e292 100644 --- a/utilities/at32f421_freertos_demo/inc/TaskLoop.h +++ b/utilities/at32f421_freertos_demo/inc/TaskLoop.h @@ -50,7 +50,8 @@ #define ENV_RECOVER_WAIT 500 // 恢复确认 (V4.25): 环境回正常(空闲)连续 ~5s 才解除预判, 黄灯灭 #define COIL_F_OK_MIN_KHZ 20 // 线圈频率合理窗 (V4.26): 默认低频档口径, <20kHz → L偏大 #define COIL_F_OK_MAX_KHZ 120 // 线圈频率合理窗 (V4.26): >120kHz → L偏小 -#define COIL_CAL_C_NF 43 // 标定等效谐振电容 nF (V4.28): 低频档(66nF名义)实测 C_eff≈43 (41.3~45.5, 2台5组) +#define COIL_CAL_C_NF 68 // 标定等效谐振电容 nF (V4.29): 0Ω板 低频档(66nF名义)实测 C_eff=68.1~68.9 (均值68.4) +// 旧43 = 5.1K电阻旧板带病特性(三极管开关未饱和导通, 第二颗33nF未全量并入), 作废 #define COIL_CAL_C_NF_33 34 // 高频档(33nF名义)标定值: 实测 C_eff≈34.4 (33.8~35.0, 3组) — 用33nF档时改 COIL_CAL_C_NF 为34 #define COIL_DEF_C_NF 66 // 名义默认档电容 (保留: 注释/文档口径; 计算用 COIL_CAL_C_NF) diff --git a/utilities/at32f421_freertos_demo/inc/cmcng.h b/utilities/at32f421_freertos_demo/inc/cmcng.h index f46b508..6da5b49 100644 --- a/utilities/at32f421_freertos_demo/inc/cmcng.h +++ b/utilities/at32f421_freertos_demo/inc/cmcng.h @@ -14,10 +14,10 @@ #define __CMCNG_H__ #define PRODUCT_MODEL "DLD154" -#define FIRMWARE_VER "4.28" +#define FIRMWARE_VER "4.29" #define HARDWARE_VER "3.00" #define FIRMWARE_VER_MAIN 4 -#define FIRMWARE_VER_SUB 28 +#define FIRMWARE_VER_SUB 29 #define HARDWARE_VER_MAIN 3 #define HARDWARE_VER_SUB 0 diff --git a/utilities/at32f421_freertos_demo/src/TaskLoop.c b/utilities/at32f421_freertos_demo/src/TaskLoop.c index cfec4d6..deecb3d 100644 --- a/utilities/at32f421_freertos_demo/src/TaskLoop.c +++ b/utilities/at32f421_freertos_demo/src/TaskLoop.c @@ -808,13 +808,13 @@ static void env_resync_apply(uint32_t new_origin) /*=========================================================================== * V4.26~28: 线圈电感量粗估 * L_uH = 2.533e7 / (f_kHz² × C_nF) [f=1/(2π√(LC)), f_kHz 为修正后真实频率] - * C 用 COIL_CAL_C_NF (标定等效谐振电容, V4.28): - * 低频档(名义66nF): 实测 C_eff=41.3~45.5nF (均值43, 2台一致) - * 高频档(名义33nF): 实测 C_eff=33.8~35.0nF (均值34.4) — 拨33nF档请把宏改34 - * ⚠ 两档有效 C 比仅 1.25 (非名义 2.0) → 低频档并联第二颗33nF疑似未完全生效, - * 待查拨码通路/电容实值/拓扑; 查清后两档标定值需重测 + * C 用 COIL_CAL_C_NF (标定等效谐振电容, V4.29): + * 0Ω 板低频档(名义66nF): 实测 C_eff=68.1~68.9nF (均值68.4, 3颗线圈) → 宏68 + * (V4.28 的 43 是 5.1K 旧板带病特性 — 三极管开关未饱和, 第二颗33nF未全量并入, + * 换 0Ω 后并联全导通, C_eff 回到≈名义66; 43 作废) + * 高频档(名义33nF): 旧板实测 C_eff≈34.4 — 0Ω 板待复测, 拨33nF档请把宏改34 * 标定法: LCR 测 L → C=2.533e7/(f²×L), 多颗平均 - * 例: f=64kHz→L≈144µH(实136); f=113kHz→L≈46µH(实48); f=163kHz→L≈22µH(实23) + * 例(0Ω板): f=52kHz→L≈138µH(实136); f=88kHz→L≈48µH(实48); f=127kHz→L≈23µH(实23) *===========================================================================*/ static uint32_t coil_l_uH(uint32_t f_khz) {