docs(DLD110S): 归档环路线圈健康评估设计依据V1.1 + 评审映射 + 小程序评估报告核验(归一化基数bug×4)

This commit is contained in:
wangfq
2026-08-26 17:08:11 +08:00
parent eaec1bd1bd
commit e43b882ca9
4 changed files with 725 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
# 环路线圈健康评估设计依据 — 技术评审与 DLD110S 字段映射
> **评审日期**2026-08-26
> **评审人**:小飞(配合王工)
> **评审对象**`docs/coil-eval-design-basis.md` V1.1(第三方应用设计依据)
> **配套产品**DLD110SCH591R BLE 单线圈,固件 V4.20 / 硬件 V4.01
---
## 1. 总体结论
设计依据文档**数据质量高、公式全部核验通过**,可作为第三方应用(小程序)的评估规范。但它是**通用行业文档**(FHWA/NEMA 口径),落地到 DLD110S 必须做字段映射——**DLD110S 实际上报的字段与文档参数体系不是一一对应**,尤其"电感量 L / Q 值 / R_DC / Vpp"四项 DLD110S **不直接上报**,需要换算或降级处理。
## 2. 公式与数据核验结果(全部通过)
| 核验项 | 结果 |
|---|---|
| §3.2.1 频率-电感表 32 格(8 L × 4 C) | ✅ 全部正确,最大偏差 0.24%(表格四舍五入) |
| 交叉验证 59μH @ 四档电容 | ✅ 114.1 / 99.9 / 80.7 / 75.2 kHz,与 vd960Loop 实测 114/100/81/75 一致 |
| §3.2.2 Δf/f = -(1/2)×ΔL/L | ✅ 正确(f ∝ L^-1/2 微分) |
| §3.4.1 Q 算例 13.5 | ✅ Q=2πfL/R = 2π×20k×94μ/0.87 = 13.6 |
| §3.5.1 R_DC 算例 0.36Ω | ✅ 21.6m×0.0083×2 = 0.359Ω |
| §3.3.2 Class3 汽车 3.2%/5.4% | ✅ 3.0/94μH=3.2%、5.0/94μH=5.3%(含引线口径) |
| §3.3.2 3M 专利 5.0% | ✅ 3.5μH/70μH=5.0%6ft 方环无引线口径) |
| 中国工程实践 150~250μH → 频率 | ✅ 36~72kHz 落在 DLD110S 量程内 |
> ⚠ 注意 §3.3.2 表内 **ΔL/L 口径不一致**NEMA 表用"含 100ft 引线总电感 94μH"3M 专利用"裸环 70μH"。两个口径差 34%,小程序实现时**必须统一基准**(建议统一用裸环 L_loop 或含引线 L_total,别混用)。
## 3. 关键口径对齐:variation ↔ ΔL/LDLD110S 上报字段的核心)
DLD110S 0xC0 主动上报的 `variation` 是**周期域差值**`variation = Origin CAPVD`),不是文档 §3.3 直接定义的 ΔL/L。换算关系(CAPVD ∝ T = 2π√(LC),即周期 ∝ √L):
```
variation/Origin = 1 √(1 + ΔL/L) 精确
ΔL/L ≈ 2 × variation/Origin 一阶(|ΔL/L|≪1 时残差 <0.2%
Δf/f ≈ variation/Origin 频域对应(与文档式 2-47 完全一致)
```
**结论**:文档 §3.2.2 的 `Δf/f = -(1/2)×ΔL/L` 与 DLD110S 的 variation 口径**自洽**——`variation/Origin ≈ Δf/f ≈ -(1/2)×ΔL/L`。第三方应用两种实现路径等价:
| 路径 | 做法 | 注意 |
|---|---|---|
| A. 用频率 | Δf/f = (f_报 f_基)/f_基,ΔL/L ≈ −2×Δf/f | 需要自建基线 f_基(无车时频率) |
| B. 用 variation | ΔL/L ≈ 2×variation/Origin | 需要 Origin**但 DLD110S 不上报 Origin** ⚠️ |
> 🚨 **DLD110S 上报缺陷**0xC0 只有 `frequency` + `variation`**没有 Origin/CAPVD**。小程序走路径 B 算不出 ΔL/L,**必须走路径 A**(用上报频率自建无车基线,或用 0x24 读参数/上电初始频率当基线)。这是小程序实现时最大的坑。
## 4. DLD110S 字段映射表(设计依据 → 实际上报)
| 设计依据参数 | 优先级 | DLD110S 是否有 | 实际来源 | 实现说明 |
|---|---|---|---|---|
| 谐振频率 f | ★★★ | ✅ | 0xC0 偏移 7-93B LE | `freq = sclk_freq/(CAPVD/LPCNT) + 360`+360 经验补偿,见 §5 |
| 电感量 L | ★★★ | ⚠️ 间接 | 反推:L = 1/(4π²f²C) | 需知道当前电容档(freq_level)才能反推;或依赖用户输入的几何参数算理论值 |
| ΔL / ΔL/L | ★★★ | ⚠️ 间接 | variation + 自建频率基线 | 走路径 A:ΔL/L ≈ 2×(f_报−f_基)/f_基 |
| 品质因数 Q | ★★ | ❌ | 无 | 文档 §7 已留口:无 Q 上报时用 R_DC + 频率间接评估,或直接降级跳过 |
| 直流电阻 R_DC | ★★ | ❌ | 无(人工输入) | C 类测量来源,小程序表单提供输入框即可 |
| 振荡峰峰值 Vpp | ★ | ❌ | condition 字段可替代 | 0xC0 偏移 1 低 4 位 `condition`(0~15,环境活跃度),**不是 Vpp 但可当健康度粗判** |
| 基线漂移 | ★★ | ⚠️ 间接 | 频率长期趋势 | 固件有基线跟踪(WINDOW_ORIGIN=500 窗 4.4s),variation 被自动基线吸收,**漂移监测必须用上报频率的长期趋势,不能用 variation** |
**condition 字段语义**(固件 peripheral_main.c):`g_env_activity/10`>150 取 15**线圈断开强制 15**。
→ 小程序可直接展示:condition≥15 → 环境活跃/疑似断开,再结合 `loop1_FLAG_CUT`0xC0 偏移 3 bit7)+ 断开次数(偏移 4-6)区分。
## 5. DLD110S 四档电容与频率档位(FLEVEL)
- 固件 `g_freq_level = loopFreq_Level - 1`0~3),硬件 GPIO `FLEVEL_H/L` 组合切档:
- 0=高频(FLEVEL_H_LOW, FLEVEL_L_LOW
- 1=中高(LOW, HIGH
- 2=中低(HIGH, LOW
- 3=低频(HIGH, HIGH
- **0x23 设置参数 Data[0] 高 4 位 = loopFreq_Level**1~40x24 回读同位置)
- 0xC0 偏移 1 `freq_level<<4` 直接上报当前档位 → 小程序评估频率必须用**上报的 freq_level 对应电容**查表,不能假设档位
- ⚠️ **待现场验证**:设计依据说四档电容 = 33/43/66/76nFvd960Loop 口径)。DLD110S 的 FLEVEL 是否就是这四个值,**需按原理图/实物确认**(固件只有 GPIO 切换,无电容值信息)。默认沿用 33/43/66/76,但评估前先核实。
- ⚠️ **频率 +360 补偿**:上报 freq 加了经验值 360Hz。对频率判据(±10%~±20%)影响可忽略(0.36%@100kHz),但**反推电感量 L 时别把 360 当真实频率**,建议先用 `f_真实 = f_报 360` 再算 L。
## 6. DLD110S 灵敏度档位(评估检测能力时用)
| KEY_SA1 | KEY_SA2 | g_freq_sens | 档位 | sens_in | Δf/f 阈值 | ΔL/L 阈值(×2) |
|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 最低 | 108 | 0.165% | 0.330% |
| 0 | 1 | 1 | 中 | 54 | 0.082% | 0.165% |
| 1 | 0 | 2 | 最高 | 28 | 0.043% | 0.085% |
- 🚨 **灵敏度由硬件拨码决定,0x23 设置的 sensitvity 不生效**0x24 回读 = 拨码档位+1
- 对照设计依据 §3.3.4:轿车 S≥1% 正常、摩托车 S≥0.1% 正常 → DLD110S 最高档(0.085% ΔL/L 阈值)能覆盖摩托车临界场景,符合 NEMA Class 2 可靠检测下限(0.32%... 实际 0.32% > 0.085%,裕量充足)
- 小程序评估"检测能力"时:**按 0x24 回读的拨码档位**查表,别用 0x23 设置值;或者直接用百分比阈值(S≥1% 轿车 / S≥0.1% 摩托)评估实际车辆事件信号强度,不依赖档位号
## 7. 小程序评估实现检查清单(上传评估数据后逐项核对)
1. **频率判据**:理论频率是否按"用户输入几何参数 → FHWA 表 → 叠加引线 → 选当前 freq_level 电容"计算?±10%/±20% 阈值是否实现?
2. **电感反推**:是否用 `L = 1/(4π²(f_报−360)²C)`C 是否取自上报 freq_level
3. **ΔL/L 路径**:是否走频率基线(路径 A)?**有没有错误地直接用 variation 当 ΔL/L 或除以错误基准?**
4. **符号位**variation 3B 补码符号扩展(`if (v & 0x800000) v |= 0xFF000000`)是否正确?
5. **灵敏度档位**:是否读 0x24(拨码档位+1)而非 0x23 设置值?
6. **condition 判读**:是否区分"环境活跃" vs "线圈断开"(结合 FLAG_CUT / 断开次数)?
7. **综合评级**:是否按 §4.3 规则(★★★ 参数异常 → ❌,开路/停振 → 🚨)?
8. **口径统一**:ΔL/L 基准是否统一(裸环 vs 含引线)?
## 8. 建议回填给设计依据文档 V1.2 的修订点
1. §3.3.2 两个口径表加注"基准不同"(94μH 含引线 vs 70μH 裸环)
2. §7 待确认项补:DLD110S 上报缺 Origin → 建议固件后续版本在 0xC0 增加 Origin/CAPVD 字段(一行),第三方就能直接算 ΔL/L
3. §3.6 建议的"自检布尔量"对 DLD110S 可用 `condition` + `FLAG_CUT` 组合实现,建议写进产品协议文档
4. 频率 +360 补偿要写进协议(已写进 ble-protocol.md 第 6 节,本文档评估方须知晓)