docs(V4B): 线圈电感量估算与不合理范围告警 设计讨论稿(未实现, 三区制)
This commit is contained in:
@@ -0,0 +1,120 @@
|
|||||||
|
# 线圈电感量估算与不合理范围告警 — 设计讨论稿
|
||||||
|
|
||||||
|
> **状态:设计讨论稿(未实现,2026-09-02)** — 本文仅存档讨论结论,代码未落地。
|
||||||
|
> 固件版本基线:V4.25(cmcng.h);涉及产品:DLD154V4B(DLD154V4)。
|
||||||
|
|
||||||
|
## 1. 背景
|
||||||
|
|
||||||
|
DLD154V4 线圈振荡电路:固定电容 **33 nF** + 拨码开关可并联另一 **33 nF**(C = 33 nF 或 66 nF 两级频率)。
|
||||||
|
拨码**不引到 MCU IO**,固件无法感知当前档位。
|
||||||
|
|
||||||
|
需求:
|
||||||
|
1. 由实测振荡频率推算线圈电感量 L(粗略值即可)
|
||||||
|
2. 对不合理电感量范围的线圈进行告警(判断合理范围 **50 ~ 300 µH**,用户给定)
|
||||||
|
3. 预留 C_eff 校准公式/系数,测试时微调
|
||||||
|
4. 持续监视
|
||||||
|
|
||||||
|
## 2. 物理模型与测量精度
|
||||||
|
|
||||||
|
LC 谐振:**f = 1 / (2π·√(L·C))**,反推 **L = 1 / (4π²·f²·C)**
|
||||||
|
|
||||||
|
- f 固件现成:`calc_freq_khz()`(Xn@60MHz 捕获,f_kHz = 60000 / Xn),Xn≈3681 时测量精度 ~0.03%,足够
|
||||||
|
- 误差预算:C 容差 ±5% → L 误差 ~10%;线圈分布电容 C0(几十 pF vs 33000 pF)≈0.3% 可忽略;
|
||||||
|
谐振拓扑非理想偏移 → 待标定收口
|
||||||
|
- **档位歧义(核心)**:C = 33/66 nF → 同一线圈频率差 √2=1.414 倍,反推 L 差 **2 倍**;
|
||||||
|
拨码不可读 → 单次测频无法唯一判定档位(见 §4 三区制)
|
||||||
|
|
||||||
|
## 3. 频率 ↔ 电感对照表
|
||||||
|
|
||||||
|
| L(µH) | C=33nF f(kHz) | C=66nF f(kHz) |
|
||||||
|
|-------|--------------|--------------|
|
||||||
|
| 20 | 195.9 | 138.5 |
|
||||||
|
| 50 | 123.9 | 87.6 |
|
||||||
|
| 100 | 87.6 | 62.0 |
|
||||||
|
| 150 | 71.5 | 50.6 |
|
||||||
|
| 300 | 50.6 | 35.8 |
|
||||||
|
| 500 | 39.2 | 27.7 |
|
||||||
|
| 1000 | 27.7 | 19.6 |
|
||||||
|
| 1440* | 23.1 | 16.3 |
|
||||||
|
|
||||||
|
\* 现场实测 Xn=3681 → f=16.3kHz → L≈1445µH(66nF)/2889µH(33nF),无论哪档都超 300µH →
|
||||||
|
该线圈应被"L 偏大"告警拦下(V4.24/V4.25 抓波形期间发现的现象)
|
||||||
|
|
||||||
|
**换算公式(默认档粗估)**:L_µH = 2.533e7 / (f_kHz² × C_nF);33nF 档结果 = 66nF 档结果 × 2
|
||||||
|
|
||||||
|
**C_eff 校准预留**:L_µH = (2.533e9 / (f_kHz² × C_nF)) × COIL_CAL_COEF_Q10 / 1024,
|
||||||
|
标定线圈(100µH / 300µH 精密电感)实测 f 后调单一系数收口。
|
||||||
|
|
||||||
|
## 4. 判定窗口 — 三区制(2026-09-02 讨论修订)
|
||||||
|
|
||||||
|
初稿使用"两档并集 [35.8, 123.9] kHz 为绿",用户指出应关注**交集 [50.6, 87.6] kHz**。
|
||||||
|
讨论结论:L 是线圈固有属性(f 随档位变),档位不可读时并集(可能漏报超范围线圈)
|
||||||
|
与交集(会误报合法线圈,如 66nF+200µH=43.8kHz、33nF+80µH=98kHz 均为手册推荐组合)
|
||||||
|
都是二值判据,无法消除两档交叠歧义 → **采用三区制**:
|
||||||
|
|
||||||
|
| 区 | 频率 (kHz) | 语义 | 动作 |
|
||||||
|
|----|-----------|------|------|
|
||||||
|
| 🟢 确认正常 | 50.6 ~ 87.6(两档频带交集) | 两档下 L 均 ∈ [50,300] µH | 绿灯 |
|
||||||
|
| 🟡 歧义带 | 35.8~50.6 或 87.6~123.9(单档合法区) | 某一档合法/另一档超,无档位信息无法确认 | 不上故障灯,仅 EVT/状态字段提示 |
|
||||||
|
| 🔴 确认超范围 | < 35.8 或 > 123.9(并集外) | 两档下 L 必超(<35.8 → >300µH;>123.9 → <50µH) | 黄灯慢闪告警 |
|
||||||
|
|
||||||
|
- 🔴 区无歧义:<35.8 必然是 66nF 档 + L>300µH;>123.9 必然是 33nF 档 + L<50µH
|
||||||
|
- 🟡 区若上灯会误伤合法现场(如 66nF 档 + 200µH → f=43.8kHz),建议静默到诊断层,产品手册注明"该频段请核对拨码档位"
|
||||||
|
|
||||||
|
### 建议宏(TaskLoop.h,待标定)
|
||||||
|
|
||||||
|
```c
|
||||||
|
#define COIL_F_LOW_LIMIT 358 // f < 35.8kHz → L 必 >300µH → L偏大 (0.1kHz 单位)
|
||||||
|
#define COIL_F_HIGH_LIMIT 1239 // f > 123.9kHz → L 必 <50µH → L偏小 (0.1kHz 单位)
|
||||||
|
#define COIL_F_GREEN_LOW 506 // 绿窗下界 50.6kHz (交集)
|
||||||
|
#define COIL_F_GREEN_HIGH 876 // 绿窗上界 87.6kHz (交集)
|
||||||
|
#define COIL_DEF_C_NF 66 // 默认档电容 nF (拨码不可读, 粗估 L 用; 33nF 档 ×2)
|
||||||
|
#define COIL_CAL_COEF_Q10 1024 // C_eff 校准系数 Q10 (=1.000), 标定后微调
|
||||||
|
```
|
||||||
|
|
||||||
|
## 5. 判定状态机(持续监视 + 防抖)
|
||||||
|
|
||||||
|
```
|
||||||
|
条件: !g_disconnect_active && g_loop_stable && !loop1_VD_FLAG (空闲/稳定, 车来不判)
|
||||||
|
f = calc_freq_khz(loop1_Origin, loop1_LPCNT) (空场滤波后频率)
|
||||||
|
|
||||||
|
f < COIL_F_LOW_LIMIT → 故障 1 = L 偏大
|
||||||
|
f > COIL_F_HIGH_LIMIT → 故障 2 = L 偏小
|
||||||
|
COIL_F_GREEN_LOW..HIGH → 正常
|
||||||
|
其余 (歧义带) → 状态位提示 (不上灯)
|
||||||
|
|
||||||
|
防抖: 越界持续 100tick(1s) 置位; 恢复持续 100tick 清除
|
||||||
|
监视点: vd1_task 无车段末尾 (Origin 更新后)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 6. 黄灯模式 5(方案草案)
|
||||||
|
|
||||||
|
| 模式 | 状态 | 指示 |
|
||||||
|
|------|------|------|
|
||||||
|
| 1 | 断开/无线圈 | 快闪 200ms |
|
||||||
|
| 5(新增) | 线圈电感异常(L 偏大/偏小) | 慢闪 500ms/500ms(1Hz) |
|
||||||
|
| 4 | 环境预判/学习中 | 常亮 |
|
||||||
|
| 3 | 断开史 N 短闪 | — |
|
||||||
|
| 2 | 正常 | 灭 |
|
||||||
|
|
||||||
|
优先级:断开(1) > 电感异常(5) > 环境(4) > N短闪(3) > 灭
|
||||||
|
自检段(STBL=0)不判,防上电抖动。红绿指示不受影响。
|
||||||
|
|
||||||
|
## 7. 诊断输出(草案)
|
||||||
|
|
||||||
|
```
|
||||||
|
EVT|coil_fault f:16.3kHz L~1445uH(C66/×2C33) too_large // 进入告警
|
||||||
|
EVT|coil_ok f:62.1kHz L~100uH // 恢复
|
||||||
|
```
|
||||||
|
|
||||||
|
## 8. 单测计划
|
||||||
|
|
||||||
|
`tests/test_coil_range.c`:窗口边界换算(表驱动)/ 越界告警与恢复防抖 /
|
||||||
|
车压不误判(VD=1 不判)/ 两档歧义粗估(L66 与 ×2)。
|
||||||
|
|
||||||
|
## 9. 待确认项(未定)
|
||||||
|
|
||||||
|
1. 黄灯模式 5 慢闪 1Hz 节奏是否采纳(或"常亮+1 短灭")
|
||||||
|
2. 默认档 `COIL_DEF_C_NF`:66nF(出厂并联 ON)?现场是否有普遍拨 33nF 的情况
|
||||||
|
3. 灰带(歧义带)处理:推荐不上灯仅诊断日志,若产品要求提示再议(EVT/状态位 1 级)
|
||||||
|
4. 绿/红四阈值需标定线圈实测后微调
|
||||||
Reference in New Issue
Block a user