# 统一故障标签字段说明 ## 1. 设计目标 压力、温度、振动标签共用同一套核心字段;各类型保留自己的专有字段。 - 压力:`models/results/pressure/润滑油压力小时阶段段.csv` - 温度:`_tmp_temperature/out/温度异常段.csv` - 振动候选明细:`_tmp_cylinder_vibration/out/cylinder_vibration_label_unified.csv` - 振动最终标签:`_tmp_cylinder_vibration/out/machine_vibration_events.csv` 5 号机温度 + 整机振动统一预览:`_tmp_cylinder_vibration/out/fault_label_unified_machine_preview.csv`(18 + 4 = 22 行)。 润滑油压力标签当前只有 8 号机 61 条,没有 5 号机,不纳入 5 号机振动-温度关系预览。 ## 2. 统一核心字段 | 字段 | 说明 | |---|---| | 标签ID | 统一标签编号;单缸候选如 `5号机-VIB-0001`,最终事件如 `5号机-MACH-0001` | | 标签类型 | 润滑油压力 / 温度异常 / 振动 | | 机组 | 如 `5号机` | | 批次 | 数据批次;振动全量扫描时为 `全量` | | 周期编号 | 压力/温度沿用原周期;振动候选为 `5号机-VIB-0001`,最终事件为 `5号机-MACH-0001` | | 阶段 | 轻微 / 异常 / 严重异常 | | 阶段部位 | 如 `5号机二缸`、`一级3#缸`;最终振动事件为 `5号机整机` | | 阶段点位 | 具体点位名;最终振动事件为 `5号机一缸~六缸缸体振动` | | 开始小时 | 标签开始 | | 结束小时 | 标签结束(不含) | | 持续自然小时数 | 自然时间跨度 | | 有效运行小时数 | 实际有运行数据的小时数 | | 基线值 | 对应类型的近期/周期基线 | | 正常波动带 | 基线正常范围 | | 阶段开始值 | 标签开始时指标 | | 阶段结束值 | 标签结束时指标 | | 阶段最大值 | 标签内最大指标 | | 相对基线变化 | 最大值相对基线 | | 阶段最大连续异常有效小时数 | 最长连续异常小时 | | 阶段高报警小时数 | 高等级小时数;振动按等级近似 | | 阶段高高报警小时数 | 更高等级小时数;振动按严重异常近似 | | 方向 | 偏高/偏低/高幅高冲击/低幅高冲击等 | | 特征类型 | 持续偏高、振动、高频波动等 | | 置信度 | 高/中/低 | | 是否形成确认等级 | 是/否 | | 阶段触发依据 | 人能读懂的原因说明 | | 事件关联 | 与维修事件窗口关联时填事件日期 | | 启动过渡比例 | 标签内启动/过渡点占比 | | 局部基线可用比例 | 局部基线可用的点占比 | | 数据来源 | 源文件或波形来源 | | 算法版本 | 当前算法版本 | ## 3. 振动专有字段 | 字段 | 说明 | |---|---| | 近期基线RMS | 局部基线 RMS | | RMS正常波动带 | 局部基线正常带 | | 阶段开始/结束/最大RMS | 标签内 RMS | | 阶段最大峭度 | 实际峭度最大值 | | 阶段最大峭度/基线 | 峭度相对局部基线 | | 阶段最大残差峭度z | 跨缸残差峭度 z-score | | 触发特征 | 分数最大的特征,如 `resid_kurt` | | 多特征确认 | RMS 与峭度是否同时抬升 | | 参与缸数 | 最终事件中 24 小时窗口内出现候选的缸数 | | 参与缸 | 参与的缸名列表 | | 异常缸数 | 至少一条异常/严重异常的缸数 | | 严重异常缸数 | 出现严重异常的缸数 | | 异常标签数 / 严重异常标签数 | 候选标签条数 | | 候选标签数 | 合并到该事件的单缸候选数 | | 最大异常分数 | 事件内最大分数 | | 最大RMS / 最大峭度 | 事件内最大特征值 | | 转速范围 | 事件期间转速范围 | | 运行段开始 / 结束 | 事件所在运行段 | | 整机聚集窗口小时 | 当前为 24 小时 | ## 4. 压力/温度映射 压力表: - `压力阶段` → `阶段` - `开始小时`、`结束小时`、`持续自然小时数`、`有效运行小时数` 直接沿用 - `阶段触发依据` 直接沿用 - `是否形成确认等级` 直接沿用 - 压力专有字段仍保留在原表 温度表: - `温度阶段` → `阶段` - `阶段部位`、`阶段点位` 直接沿用 - `方向`、`特征类型`、`置信度`、`是否形成确认等级`、`阶段触发依据` 直接沿用 振动候选表: - `阶段` = 当前等级 - `阶段部位` = `5号机{缸}` - `周期编号` = 振动标签编号 - `阶段触发依据` 由 RMS、峭度、局部基线和持续时间自动生成 最终整机事件表: - 一行代表一个整机多缸事件,不再要求故障缸自身振动最强; - `阶段部位` = `5号机整机`; - `事件关联` 留空,事件与维修记录的对应关系放在 `machine_event_validation.csv`; - 物理故障缸只做事后验证,不参与事件生成。 ## 5. 数据库建议 后续进入数据库时建议使用一张统一表,例如: ```text compressor_fault_segment - id - label_id - label_type - unit_name - batch_no - cycle_no - stage - part_name - point_name - start_hour - end_hour - natural_hours - running_hours - baseline_value - normal_band - start_value - end_value - max_value - relative_change - max_consecutive_hours - high_alarm_hours - high_high_alarm_hours - direction - feature_type - confidence - confirmed - trigger_reason - event_refs - startup_ratio - baseline_ok_ratio - source - algorithm_version - details_json -- 类型专有字段 ``` - 公共字段放列; - 振动 RMS/峭度等放 `details_json`,避免表无限加列; - 原压力/温度表保留,统一表由映射生成。