合并方案.md 2.4 KB

缸体振动标签合并方案

当前阶段不合并。先把 _tmp_cylinder_vibration/ 稳定下来;确认后再迁入 models/。

1. 合并目标

把振动标签接入现有压力/温度统一体系:

  • 统一标签表;
  • 统一 API;
  • 可进入数据库;
  • 页面/报告口径一致。

不改变现有压力、温度算法。

2. 建议目录

models/cylinder_vibration/
  __init__.py
  config.py
  data.py
  features.py
  local_baseline.py
  labels.py
  adaptive.py
  hourly.py
  machine_events.py
  unified.py
  report.py

放在 models/vibration/ 下也可以,但建议独立目录,避免和现有“振动模型”混淆。

3. 合并步骤

  1. 固定 _tmp_cylinder_vibration 的整机事件标签和验证结果,确认标签口径。
  2. 把纯算法模块迁入 models/cylinder_vibration/:
    • data.py、features.py、local_labels.py、adaptive.py、hourly.py、machine_events.py、unified_labels.py
  3. 把数据库写入、API、页面相关代码留在 backend:
    • 新增统一表 compressor_fault_segment 或复用现有故障标签表;
    • 提供 GET /api/fault-segments;
    • 振动标签写入 label_type=振动。
  4. 添加测试:
    • 局部基线窗口;
    • 启动/断档跳过;
    • 三等级阈值;
    • 相邻小时合并;
    • 开机/停机 6 小时门控;
    • 24 小时 ≥4 缸且 ≥2 条异常;
    • 整机事件合并;
    • 统一字段映射;
    • 3 次事件回归。
  5. 后端接入后再把 waveforms.html 的交互能力迁入正式页面。

4. 字段边界

  • 核心字段见 字段说明.md;
  • 振动专有字段放 details_json;
  • 事件关联 只放在验证表,不参与算法;
  • 故障缸不参与整机事件生成,只用于事后验证;
  • 启动过渡比例、局部基线可用比例 只做质量标记;
  • 最终标签以 machine_vibration_events.csv 为准,单缸小时表只作为候选明细。

5. 不做的事

  • 不针对某次维修事件写专用规则;
  • 不因事件删标签;
  • 不在本阶段改现有温度/压力表;
  • 不在本阶段写数据库;
  • 不把实验 HTML 直接当正式页面。

6. 验收标准

  • 同一批数据重复运行结果一致;
  • 3 次事件回归结果稳定;
  • 最终事件不依赖故障缸;
  • 统一表能由压力、温度、整机振动三类映射生成;
  • 无事件专用分支。