# 缸体振动标签合并方案 > 当前阶段不合并。先把 `_tmp_cylinder_vibration/` 稳定下来;确认后再迁入 `models/`。 ## 1. 合并目标 把振动标签接入现有压力/温度统一体系: - 统一标签表; - 统一 API; - 可进入数据库; - 页面/报告口径一致。 不改变现有压力、温度算法。 ## 2. 建议目录 ```text 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 次事件回归结果稳定; - 最终事件不依赖故障缸; - 统一表能由压力、温度、整机振动三类映射生成; - 无事件专用分支。