115 lines
4.2 KiB
Markdown
115 lines
4.2 KiB
Markdown
|
|
# Ploss 分析(delta_p 与安全余量判定)
|
|||
|
|
|
|||
|
|
> 本文档单独记录 Ploss 分析的分析口径与判定条件。
|
|||
|
|
> 内容独立于既有需求文档 `docs/requirement/WCT数据需求分析.md`,不与原文档合并。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 1. 核心口径
|
|||
|
|
|
|||
|
|
Ploss 两行日志格式:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
pow_loss = 2200, delta_p = 2500
|
|||
|
|
FOD-> (16 个字段)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- **header 行**直接记录固件当前使用的 `pow_loss` / `delta_p`。
|
|||
|
|
- **FOD-> 行**记录 16 个字段,其中包含 Ploss(功率损耗计算值)、Threshold(阈值)、触发次数、FOD 结果等。
|
|||
|
|
|
|||
|
|
**权威字段语义**(以实体 `PlossRecord` 注释为准):
|
|||
|
|
|
|||
|
|
| 字段 | 语义 |
|
|||
|
|
|------|------|
|
|||
|
|
| Field9 | ploss - 功率损耗计算值 |
|
|||
|
|
| Field10 | threshold - 阈值 |
|
|||
|
|
| Field11 | 触发次数 |
|
|||
|
|
| Field12 | FOD 结果标志 |
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 2. 判定条件
|
|||
|
|
|
|||
|
|
### 2.1 FOD 报警判定
|
|||
|
|
|
|||
|
|
**直接看 FOD 结果标志 == 1**。固件已完成判定(Ploss>Threshold → 计数累积 → 满限置位),分析无需重建该逻辑。
|
|||
|
|
|
|||
|
|
### 2.2 delta_p 恒等式
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
delta_p = Tx − Rx − pow_loss − Ploss
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
能量守恒恒等式,固件即用此公式计算 Ploss,故必然满足,可用于校验。
|
|||
|
|
|
|||
|
|
### 2.3 安全余量判定
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
Field10 − Field9 = Threshold − Ploss > 2000
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
正常充电时安全余量需大于 2000;余量不足(≤2000)即异物或异常信号。
|
|||
|
|
|
|||
|
|
### 2.4 delta_p 调整反解(使余量 > 2000)
|
|||
|
|
|
|||
|
|
当 FOD=1(余量不足)时,可依据 2.2 恒等式与 2.3 余量判定,反解出使余量严格 `> 2000`(整数即 `≥ 2001`)所需的 delta_p:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
margin = Threshold − Ploss
|
|||
|
|
delta_p' = DeltaP + (2001 − margin)
|
|||
|
|
= DeltaP + 2001 + Ploss − Threshold
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- `DeltaP`:header 行记录的原始 delta_p
|
|||
|
|
- `delta_p'`:调整后的新 delta_p
|
|||
|
|
- 将 header 行重写为 `pow_loss = <原值>, delta_p = <delta_p'>` 后,按恒等式 Ploss 下降 `2001 − margin`,余量达到 2001。
|
|||
|
|
|
|||
|
|
> **注意**:此反解仅在两行格式(有 header)下有意义;旧单行格式无 header,PowLoss/DeltaP 为 null,无法调整 delta_p。
|
|||
|
|
|
|||
|
|
**测试数据字段位置**(与实体语义错位,以实体语义为准):
|
|||
|
|
|
|||
|
|
| 文件 | ploss | threshold | FOD 标志 |
|
|||
|
|
|------|-------|-----------|----------|
|
|||
|
|
| 实体语义(真实固件) | Field9 | Field10 | Field12 |
|
|||
|
|
| ploss_test 实测 | Field8 | Field9 | Field11 |
|
|||
|
|
| ploss_legacy 实测 | Field10 | Field11 | Field13 |
|
|||
|
|
|
|||
|
|
**ploss_test 中 14 条 FOD=1 行的计算结果**(新余量校验 = 2001):
|
|||
|
|
|
|||
|
|
| 行号 | pow_loss | DeltaP | ploss | threshold | margin | delta_p' |
|
|||
|
|
|------|----------|--------|-------|-----------|--------|----------|
|
|||
|
|
| 247 | 2200 | 2500 | 798 | 1000 | 202 | 4299 |
|
|||
|
|
| 259 | 2000 | 2200 | 760 | 750 | −10 | 4211 |
|
|||
|
|
| 519 | 2200 | 2500 | 1308 | 1000 | −308 | 4809 |
|
|||
|
|
| 527 | 3000 | 3500 | 1355 | 1250 | −105 | 5606 |
|
|||
|
|
| 567 | 2200 | 2500 | 674 | 1000 | 326 | 4175 |
|
|||
|
|
| 957 | 2000 | 2200 | 736 | 750 | 14 | 4187 |
|
|||
|
|
| 1129 | 1000 | 500 | 123 | 350 | 227 | 2274 |
|
|||
|
|
| 1265 | 2000 | 2200 | 497 | 750 | 253 | 3948 |
|
|||
|
|
| 1533 | 3000 | 3500 | 1474 | 1250 | −224 | 5725 |
|
|||
|
|
| 2157 | 2200 | 2500 | 361 | 1000 | 639 | 3862 |
|
|||
|
|
| 2379 | 1000 | 500 | 397 | 350 | −47 | 2548 |
|
|||
|
|
| 2413 | 3000 | 3500 | 955 | 1250 | 295 | 5206 |
|
|||
|
|
| 2477 | 2000 | 2200 | 363 | 750 | 387 | 3814 |
|
|||
|
|
| 2575 | 1000 | 500 | 560 | 350 | −210 | 2711 |
|
|||
|
|
|
|||
|
|
新 delta_p 范围 **2274 ~ 5725**(原 500 ~ 3500)。
|
|||
|
|
|
|||
|
|
> **局限**:示例日志为生成的测试数据,恒等式 `delta_p = Tx − Rx − pow_loss − Ploss` 在数据中不成立(穷举全部字段组合均无法一致满足),故表中 delta_p' 为"若恒等式成立则应写入的目标值",无法用数据本身验证。真实固件数据(恒等式成立)下此公式精确成立。
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 3. 实测佐证
|
|||
|
|
|
|||
|
|
示例日志(自动生成的测试数据)中,按语义(threshold − ploss)计算安全余量:
|
|||
|
|
|
|||
|
|
| 格式 | 正常行 margin>2000 比例 | FOD 行 margin>2000 比例 |
|
|||
|
|
|---|---|---|
|
|||
|
|
| 两行 ploss_test | 917/1486 (61.7%) | 0/14 (0%) |
|
|||
|
|
| 旧版 ploss_legacy | 361/593 (60.9%) | 0/7 (0%) |
|
|||
|
|
|
|||
|
|
FOD 行安全余量全部 ≤ 2000,可区分正常/异物。
|
|||
|
|
|
|||
|
|
> 说明:示例日志为生成的测试数据,其字段位置与实体语义存在错位;**以实体语义为准**
|
|||
|
|
> (Field9=ploss、Field10=threshold)。
|