# 温度异常段输出字段说明(v1 符合性改造) > 本文件记录 `_tmp_temperature/out/温度异常段.csv` 的**输出契约**。 > 本次完成字段/等级/高频合并,并增加高频候选的 5 秒二次确认; > 未改温度事件判定和基线计算,未迁移到 `models/`、未训练模型、未接入 viewer。 ## 1. 文件定位 | 项目 | 说明 | |---|---| | 文件 | `_tmp_temperature/out/温度异常段.csv` | | 粒度 | 一行一个阶段段(温度事件或高频波动) | | 当前行数 | 96 行 = 49 条温度事件 + 47 条已确认高频波动 | | 高频候选 | `温度高频候选.csv` 保留首轮 60 行及是否确认 | | 过滤副本 | `温度高频波动段.csv` 为确认后的 47 行 | | 不进入本表 | `温度观察段.csv`、`温度过渡段.csv`、`温度通道异常段.csv` | `温度过渡段.csv` 只保留为独立 CSV,不进入页面、确认事件或后续故障表。 ## 2. 等级与确认 - `温度阶段` 取值固定为:`轻微`、`异常`、`严重异常`。 - `是否形成确认等级`: - `轻微` → `否` - `异常` / `严重异常` → `是` - 原输出中的 `是否事件` 已删除;事件/观察的区分由所在文件和 `特征类型` 表达。 ## 3. 字段契约 | 字段 | 含义 | 取值 / 单位 | |---|---|---| | `机组` | 机组 | `4号机` ~ `9号机` | | `批次` | PKS 导入批次 | 整数 | | `周期编号` | 运行周期编号 | 字符串 | | `级` | 温度级 | `一级` / `二级` / `三级` | | `温度阶段` | 阶段等级 | `轻微` / `异常` / `严重异常` | | `阶段部位` | 故障部位标签 | 如 `一级2#缸`、`三级1列缸` | | `阶段点位` | 故障点位 | 如 `YSJ_20`、`YSJ_21` | | `开始小时` | 阶段开始 | `YYYY-MM-DD HH:MM:SS` | | `结束小时` | 阶段结束 | `YYYY-MM-DD HH:MM:SS` | | `持续自然小时数` | 自然持续小时 | 小时 | | `有效运行小时数` | 段内有效运行小时 | 小时 | | `峰值时刻` | 段内峰值小时 | 时间 | | `峰值缸` | 峰值缸/列标签 | 如 `一级2#缸排气温度` | | `最高温度` | 段内最高温度 | ℃ | | `最大自身偏离` | 相对自身历史基线的最大偏离 | ℃ | | `最大级差` | 段内最大级差 | ℃ | | `最大级差基线` | 级差基线(现有算法值) | ℃ | | `最大级差变化` | 级差相对基线的变化 | ℃ | | `最大同级偏离` | 相对同级中位的最大偏高 | ℃ | | `最大同级偏低` | 相对同级中位的最大偏低 | ℃ | | `最大稳健z` | 最大稳健 z | 无量纲 | | `最大同级相对1h` | 1h 同级相对变化最大值 | ℃ | | `最大同级相对3h` | 3h 同级相对变化最大值 | ℃ | | `最大同级相对6h` | 6h 同级相对变化最大值 | ℃ | | `首次短时触发` | 首次短时触发时刻 | 时间 | | `首次持续触发` | 首次持续触发时刻 | 时间 | | `阶段最高报警阈值` | 段内高报阈值最小值 | ℃ | | `阶段高高报警阈值` | 段内高高报阈值最小值 | ℃ | | `阶段高报警小时数` | 段内出现高报的小时数 | 小时 | | `阶段高高报警小时数` | 段内出现高高报的小时数 | 小时 | | `方向` | 方向 | `偏高` / `偏低` / `混合` / `波动` | | `特征类型` | 特征类型 | `持续偏高` / `持续偏低` / `混合` / `单缸抬升` / `高频波动` | | `置信度` | 置信度 | `高` / `中` / `低` | | `高频波动倍数` | HF 倍数(仅 HF 行) | 倍 | | `高频波动z` | HF 稳健 z(仅 HF 行) | 无量纲 | | `高频标准差` | 原始小时标准差(仅 HF 行) | ℃ | | `高频基线标准差` | 原始基线标准差(仅 HF 行) | ℃ | | `高频波动缸` | HF 波动缸/列(仅 HF 行) | 标签 | | `去趋势残差标准差` | 去 10 分钟慢趋势后的残差标准差(仅 HF 行) | ℃ | | `每小时反复升降次数` | 去趋势后短周期峰谷反转次数/小时(仅 HF 行) | 次/小时 | | `是否形成确认等级` | 是否达到确认等级 | `是` / `否` | | `关联通道异常` | 关联通道异常类型 | 诊断字段,页面不显示 | | `阶段触发依据` | 人类可读触发依据 | 字符串 | ## 4. 基线说明 本次**没有改基线算法**: - `最大级差基线` 仍是现有算法输出的级差基线; - `温度异常段.csv` 不新增/重算“温度基线”或“正常波动带”; - 后续 viewer 如需显示基线,只能使用现有字段(如 `最大级差基线`)或等迁移阶段再定义。 ## 5. 故障表映射(本次只记录,不实施) 未来写入 `compressor_alarm` 时建议: | 故障表字段 | 温度来源 | |---|---| | `device_code` | `机组` → `4#` ~ `9#` | | `device_part` | `阶段部位` | | `device_point` | `阶段点位` | | `alarm_type` | 固定 `温度故障` | | `alarm_level` | `温度阶段` | | `alarm_des` | `阶段触发依据` | | `alarm_time_start` | `开始小时` | | `alarm_time_end` | `结束小时` | | `alarm_info_json` | 整行 JSON | 高频波动行同样进入故障表,`特征类型=高频波动`;`阶段点位` 由 `高频波动缸` 推导。`温度高频候选.csv` 中 `是否确认=否` 的 13 行不进入故障表。 ## 6. 页面适配 - 页面只读 `温度异常段.csv`; - `特征类型=高频波动` 的行显示为“高频波动”,其余显示为“温度事件”; - `温度高频波动段.csv` 不再被页面重复读取; - 总数为 96 条;`温度高频候选.csv` 不进入页面。 ## 7. 高频确认规则 - 首轮候选仍用原始小时标准差筛出,保留在 `温度高频候选.csv`; - 二次确认用 5 秒原始数据: - 先减去 10 分钟滚动中位数,得到去趋势残差; - 计算残差标准差; - 统计去趋势后短周期峰谷反转次数/小时; - 确认条件:`去趋势残差标准差 ≥ 0.5℃` 且 `反复升降 ≥ 5 次/小时`,并满足持续 ≥3h; - 当前 60 条候选确认 47 条;未确认 13 条留在候选表,不进入 `温度异常段.csv`。 ## 8. 本次不做 / 后续阶段 本次不做: - 不改温度事件判定和基线逻辑;仅新增高频候选的 5 秒二次确认; - 不迁移 `models/`; - 不训练模型; - 不写 `compressor_alarm`; - 不做 viewer/3D 映射。 后续阶段: 1. 将 `_tmp_temperature` 的规则算法迁入 `models/temperature/`; 2. 建立 `models/datas/reference/温度异常段.csv` 和 `models/results/temperature/`; 3. `alarm_store` 增加 `温度故障`,接入 `scan_all` / `realtime_service`; 4. viewer 增加温度告警详情、温度曲线和 `YSJ_xx` → 3D 部件映射; 5. 如确认需要,再训练温度模型并接入 `model_predict`。 ## 9. 校验清单 - `温度异常段.csv` = 96 行; - 温度事件 = 49 行;已确认高频波动 = 47 行;高频候选 = 60 行; - `温度阶段` 不含 `严重`; - 不含 `是否事件` 列; - 每行 `阶段部位`、`阶段点位` 非空; - `轻微` 行的 `是否形成确认等级=否`; - `异常` / `严重异常` 行的 `是否形成确认等级=是`; - `温度高频波动段.csv` 是 `温度异常段.csv` 的 47 行过滤副本; - `温度高频候选.csv` 保留 60 行,`是否确认` 标出确认结果; - 页面总数 96,回测 11/12。