feat(V4B): V4.28 — L估算引入标定等效谐振电容 COIL_CAL_C_NF=43
问题: V4.27 频率对齐后 L 仍有系统性 ~1.5 倍偏差(实际/打印 1.46~1.64)
根因: 公式用名义档位电容 66nF, 但 5 组 LCR 实测反推振荡回路等效
C_eff=41.3~45.5nF (均值 42.97) — 频率真实+LCR真实下偏差收敛到 C 一参
改动: coil_l_uH 改用 COIL_CAL_C_NF 43 (宏可标定); COIL_DEF_C_NF 保留名义口径
验证: 43nF 回代 5 组残差 ±6% 内 (64k→144vs136 +5.7%, 113k→46vs48 -3.9% ...)
标定指引: LCR 测 L → C=2.533e7/(f²×L) 多颗平均改宏
文档: devlog V2.26 / spec V2.7 / design doc v0.5
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
| v0.2 | 2026-09-03 | 合理范围改 **50 ~ 1000 µH(规格书口径,两档任意一档合法即不告警)**,三区窗口重算 |
|
||||
| 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% 内,待多线圈/标定电感进一步收口 |
|
||||
|
||||
## 1. 背景
|
||||
|
||||
|
||||
@@ -4,6 +4,50 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-09-03 — 电感量估算引入 C_eff 标定(固件 V4.28)
|
||||
|
||||
> **固件版本:V4.28**(cmcng.h:FIRMWARE_VER="4.28" + MAIN=4/SUB=28)。devlog 修订 V2.26。
|
||||
|
||||
### 问题(现场实测,V4.27 频率已对齐后)
|
||||
|
||||
打印 L 与实际 LCR 实测仍有 ~1.5 倍系统性偏差(实际/打印 1.46~1.64):
|
||||
|
||||
| 打印 f | 打印 L | LCR 实测 L | C_eff 反推 |
|
||||
|--------|--------|-----------|-----------|
|
||||
| 64 kHz | 93 µH | 136 µH | 45.5 nF |
|
||||
| 113 kHz | 30 µH | 48 µH | 41.3 nF |
|
||||
| 114 kHz | 29 µH | 46 µH | 42.4 nF |
|
||||
| 107 kHz | 33 µH | 50 µH | 44.3 nF |
|
||||
| 163 kHz | 14 µH | 23 µH | 41.5 nF |
|
||||
|
||||
### 根因
|
||||
|
||||
L_uH = 2.533e7/(f_kHz²×C_nF) 里 C 用了**名义档位电容 66nF**,但振荡回路
|
||||
**等效谐振电容 C_eff ≈ 43nF**(41.3~45.5,均值 42.97)——与标称明显不符
|
||||
(可能振荡拓扑/布局/电容实际值造成)。频率真实 + LCR 真实时,偏差收敛到 C 一个参数。
|
||||
|
||||
### 改动
|
||||
|
||||
- TaskLoop.h:新增 `COIL_CAL_C_NF 43`(标定等效谐振电容,出厂默认=5 组实测均值);
|
||||
`COIL_DEF_C_NF 66` 保留为名义口径(不再参与计算)
|
||||
- coil_l_uH():公式改用 COIL_CAL_C_NF;EVT 文案去掉 (C66/×2C33)
|
||||
- 版本 V4.28;spec 参数表 + devlog + design doc v0.5
|
||||
|
||||
### 验证(用 43nF 回代 5 组)
|
||||
|
||||
64k→144µH(+5.7%) 113k→46µH(-3.9%) 114k→45µH(-1.5%) 107k→51µH(+2.9%) 163k→22µH(-3.6%)
|
||||
残差 ±6% 内(含 LCR 测量/频率取整噪声),"粗略值"够用;可标定收口。
|
||||
|
||||
### 标定指引(想更准)
|
||||
|
||||
拿 1~3 颗 **LCR 实测已知**的线圈(建议覆盖 60~160kHz),串口读 f,代入
|
||||
`C_eff = 2.533e7/(f_kHz² × L_LCR)` 多颗取均值 → 改 COIL_CAL_C_NF 重新编译即可。
|
||||
|
||||
### 待现场验证
|
||||
|
||||
- V4.28 打印 L 应与 LCR 接近(±6% 内);如需更准按指引标定
|
||||
- 若用 33nF 档(高频)测试数据多,可再单独标一组高频档 C_eff(当前 5 组混档均值)
|
||||
|
||||
## 2026-09-03 — 频率测量 4 倍偏差修正(固件 V4.27)
|
||||
|
||||
> **固件版本:V4.27**(cmcng.h:FIRMWARE_VER="4.27" + MAIN=4/SUB=27)。devlog 修订 V2.25。
|
||||
@@ -1144,6 +1188,7 @@ if (dev >= dlt_ORG × 4) {
|
||||
|
||||
| 版本 | 时间 | 说明 |
|
||||
|------|------|------|
|
||||
| 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 |
|
||||
| V2.23 | 2026-09-02 | V4.25 环境异常黄灯预判(锁存):dev>+4dlt 高位连续 5s 触发 g_env_warn 锁存常亮;回摆/目标靠近保持,环境空闲稳定 5s(ENV_RECOVER_WAIT)才解除;60s 才真正学习 |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# DLD154V4B 技术规格书
|
||||
|
||||
> 单路线圈车辆检测器 | 固件版本: V4.27 | 文档版本: V2.6
|
||||
> 单路线圈车辆检测器 | 固件版本: V4.28 | 文档版本: V2.7
|
||||
> 本文档面向工程开发、系统集成及故障深度分析
|
||||
|
||||
---
|
||||
@@ -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_DEF_C_NF | 66 nF | — | 默认档电容(拨码不可读,粗估 L 打印用;33nF 档结果 ×2) |
|
||||
| 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),多颗平均 |
|
||||
|
||||
> **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。
|
||||
|
||||
@@ -772,3 +772,4 @@ DLD154V4B V1.4 起实现该专利的整数化版本,用于大车通行时的
|
||||
| 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 |
|
||||
| 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) |
|
||||
|
||||
@@ -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_DEF_C_NF 66 // 默认档电容 (V4.26): 拨码不可读, 粗估 L 打印用; 33nF 档 ×2
|
||||
#define COIL_CAL_C_NF 43 // 标定等效谐振电容 nF (V4.28): 名义 66nF, 实测 C_eff≈43
|
||||
#define COIL_DEF_C_NF 66 // 名义默认档电容 (保留: 注释/文档口径; 计算用 COIL_CAL_C_NF)
|
||||
|
||||
/*===========================================================================
|
||||
* 离开检测模式
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
#define __CMCNG_H__
|
||||
|
||||
#define PRODUCT_MODEL "DLD154"
|
||||
#define FIRMWARE_VER "4.27"
|
||||
#define FIRMWARE_VER "4.28"
|
||||
#define HARDWARE_VER "3.00"
|
||||
#define FIRMWARE_VER_MAIN 4
|
||||
#define FIRMWARE_VER_SUB 27
|
||||
#define FIRMWARE_VER_SUB 28
|
||||
#define HARDWARE_VER_MAIN 3
|
||||
#define HARDWARE_VER_SUB 0
|
||||
|
||||
|
||||
@@ -806,14 +806,17 @@ static void env_resync_apply(uint32_t new_origin)
|
||||
env_resync_abort();
|
||||
}
|
||||
/*===========================================================================
|
||||
* V4.26/27: 线圈电感量粗估 (默认低频档 C=66nF; 拨码 33nF 档结果 ×2)
|
||||
* V4.26~28: 线圈电感量粗估
|
||||
* L_uH = 2.533e7 / (f_kHz² × C_nF) [f=1/(2π√(LC)), f_kHz 为修正后真实频率]
|
||||
* 例: f=30.2kHz → L≈420µH; f=65.2kHz → L≈90µH; f=120kHz → L≈27µH
|
||||
* C 用 COIL_CAL_C_NF (标定等效谐振电容, V4.28):
|
||||
* 名义 66nF 档, 但 2026-09-03 五组 LCR 实测反推 C_eff=41.3~45.5nF (均值43)
|
||||
* → 振荡回路等效 C 并非名义值, 必须标定 (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)
|
||||
*===========================================================================*/
|
||||
static uint32_t coil_l_uH(uint32_t f_khz)
|
||||
{
|
||||
if (f_khz == 0) return 0;
|
||||
return 25330000UL / (f_khz * f_khz * COIL_DEF_C_NF);
|
||||
return 25330000UL / (f_khz * f_khz * COIL_CAL_C_NF);
|
||||
}
|
||||
|
||||
/*===========================================================================
|
||||
@@ -843,7 +846,7 @@ static void coil_monitor(void)
|
||||
g_coil_bad_cnt++;
|
||||
if (g_coil_bad_cnt >= 100) {
|
||||
if (g_coil_fault == 0)
|
||||
PRINT("EVT|coil_fault f:%d kHz L~%lu uH(C66/×2C33) Xn:%d %s\n",
|
||||
PRINT("EVT|coil_fault f:%d kHz L~%lu uH Xn:%d %s\n",
|
||||
f_khz, coil_l_uH(f_khz), loop1_Xn,
|
||||
want == 1 ? "too_large" : "too_small");
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user