80 lines
2.7 KiB
Markdown
80 lines
2.7 KiB
Markdown
# Qfod 标定分析(Q值 → 标定 ΔQ 阈值)
|
||
|
||
> 本文档单独记录 Qfod 标定分析的分析口径、阶段区分限制与交付方式。
|
||
> 内容独立于既有需求文档 `docs/requirement/WCT数据需求分析.md`,不与原文档合并。
|
||
|
||
---
|
||
|
||
## 1. 核心口径
|
||
|
||
Q 值由日志直接记录,日志格式 `X#:Q A->B C D E F`:
|
||
|
||
| 字段 | 名称 | 说明 |
|
||
|------|------|------|
|
||
| X | ChargerIndex | 充电器索引(0, 1) |
|
||
| A | CoilIndex | 线圈索引(0, 1, 2) |
|
||
| B | ΔQ (DeltaQ) | Q 值变化量 |
|
||
| C | CurrentQ | 当前 Q 值 |
|
||
| D | RawQ | 原始 Q 值 |
|
||
| E | FodType | 异物类型编码 |
|
||
|
||
**关键点**:「纯手机」与「手机+异物」分别对应**两个日志文件(两个测试场景)**:
|
||
|
||
- 日志文件 A:纯手机充电
|
||
- 日志文件 B:手机 + 异物
|
||
|
||
标定分析需**先区分这两个日志文件**,再计算标定 ΔQ 阈值。
|
||
|
||
---
|
||
|
||
## 2. 标定 ΔQ 阈值计算
|
||
|
||
1. 分别从两个日志文件提取 ΔQ:
|
||
- 文件 A(纯手机):取该文件 ΔQ **最大值**(示例:25)
|
||
- 文件 B(手机+异物):取该文件 ΔQ **最小值**(示例:40)
|
||
2. 计算标定阈值:`Threshold = (25 + 40) / 2 = 32`
|
||
|
||
---
|
||
|
||
## 3. 分析步骤
|
||
|
||
1. 提取日志中 `#Q` 开头的行
|
||
2. 绘制 ΔQ 时序曲线,叠加 Y=Threshold 水平线
|
||
3. 验证余量:纯手机最高点 vs 阈值、有异物最低点 vs 阈值
|
||
|
||
---
|
||
|
||
## 4. 文件区分方式(现状与后续计划)
|
||
|
||
### 4.1 当前限制
|
||
|
||
暂无可自动区分「纯手机」/「手机+异物」两个日志文件的可靠依据,因此**当前版本无法自动计算标定 ΔQ 阈值**。
|
||
|
||
### 4.2 后续计划
|
||
|
||
日志文件将写清楚所对应的场景(文件名 Purpose 段或文件内标记),届时据此区分两个文件再计算标定阈值。
|
||
|
||
**待办**:定义日志文件区分标识,解析时识别并关联配对的两个场景。
|
||
|
||
---
|
||
|
||
## 5. 交付方式
|
||
|
||
- 标定 ΔQ 阈值属**独立分析**,**不进入发布库聚合**(发布库现有 Q值/Q基值 列仍为 CurrentQ/RawQ 全量平均,保持不变)。
|
||
- 计划通过**新建 CLI 分析命令**(`analyze-qfod`)承载/输出,命令**尚未实现**。
|
||
|
||
---
|
||
|
||
## 6. 实测佐证
|
||
|
||
`data/test_input/singleMold-v1.0-hex2_1-iPhone15-qfod_test-20260710-1.log`(示例日志含 Phase 标记):
|
||
|
||
| Phase | 含义 | ΔQ 范围 | FOD Type(E) |
|
||
|---|---|---|---|
|
||
| 1 正常充电 | 纯手机 | 20~30(均值 24.9) | 0 |
|
||
| 2 异物检测 | 手机+异物 | 35~55(均值 44.6) | 1/2/3 |
|
||
| 3 边界值 | 临界区 | 30~35(均值 32.5) | — |
|
||
| 4 负数 | 异常 | -25~0 | — |
|
||
|
||
> 说明:示例日志为生成的测试数据,仅作 ΔQ 数值区间的参考;真实数据中「纯手机」与「手机+异物」分属两个日志文件。
|