# 功图找气阀/活塞故障 —— 观察记录 > 只读分析。样本 `wave_file` + `wave_sample_one`(首周期,约 1545 点)。故障锚点:`7,8,9号压缩机故障汇总.xlsx`;异常段对齐 `cache/pks_scanner/evolution/`。 > `backend/indicator_features/` 为**新增独立**目录,只读数据库、只 `import app.config`,不影响现有算法/程序。 ## 1. 数据方法 - 25.6 kHz、8 脉冲/转、≈996 RPM → 单周期≈60 ms;15 分钟一个文件。 - `wave_sample_one` = 每文件**一个首周期**;`cycle_start/end` 废弃。 - 级配:**一级=2/4/6、二级=3/5、三级=1**。 - **同一缸的“压力盖侧 / 压力轴侧”可互换替代**(同一缸两个腔的测点)。 ## 2. 可用性(以 `wave_sample_one` 计数为准) `wave_sample`(全量)基本为空;真正存数据的是 `wave_sample_one`(每文件一个首周期)。 `availability.py` 现在**直接统计有多少文件存在 `wave_sample_one` 数据**,并区分“有样本”与“有效周期”: ``` 9号机一缸盖侧: 文件1489, 抽样日16, 有 wave_sample_one 的日11, 其中有效周期日11 有样本数据段: 2026-01-30 ~ 2026-02-09 8号机三缸盖侧: 文件521, 抽样日7, 有 wave_sample_one 的日0, 其中有效周期日0 (2025-10~12) 7号机三缸盖侧: 文件0 (2024-12~2025-02) ``` **活塞事件前无数据的直接计数证据**: | 事件 | 测点 | 窗口内文件 | 有 wave_sample_one | |---|---|---:|---:| | 8 号机活塞 2025.12.6 | 三缸/二缸 | 521 | **0** | | 9 号机活塞 2026.1.18 | 一缸 | 1489 | 仅 2026-01-30 起 | | 7 号机活塞 2025.1.10 | 三缸/二缸 | 0 | 0 | | 对照:8 号机气阀 2026.3.29 | 三缸 | 3594 | 535 | 结论:活塞事件前**确实没有功图周期**(不是抽样误判),气阀有、活塞没有是**数据采集期差异**。 ### 其它可用段 ## 3. 特征与检测(已完成) - 稳健平台:Otsu 双峰求 `P_s/P_d/pressure_ratio`。 - 相位对齐:整转内取 PV 环面积最大的偏移 → 指示功、**等熵效率 efficiency(0.68~0.89,合理)**、`n_comp`。 - 通道 QC:**按“级”**判断 dead/weak/high(修正了跨级误判,如三级一缸压力天然高)。 - `analyze.py`:同级缸间、同缸双腔(相位剖面 L2)、本缸自身 z。 - `trend.py`:按天自身基线 z + **突发跳变** + **同级偏差的突发跳变**,并对齐 evolution 段。 ## 4. 关键观察 ### 4.6 全事件慢漂移扫描(`event_scan.py`) 对 9 个维修事件各回看 120~180 天,自动计算 peer 相对/自基线的线性漂移并排序: - 多数事件**数据不足**(活塞事件、8 号机 2025/2026 事件,故障前只有几天或完全没有周期); - 7 号机 2026-05-21:只有**六缸盖侧**显著漂移(传感器失效,见 4.5); - 7 号机 2025-08-08:扫描出的“漂移”其实是 **二缸盖侧传感器异常**——其 p_discharge 在 **2025-04-30~06-11 卡在 13.3 MPa**,06-12 降到 7.5,06-13 起恢复约 1.69; - 其余“漂移”为数据稀疏/启停造成的假象。 **结论:全事件扫描仍未发现气阀/活塞的缸级故障漂移;找到的异常几乎都是传感器故障。** ### 4.7 往前追溯 1~2 个有效段(`lookback_scan.py`) 把“有功图周期”的日期聚成段(相邻间隔>10 天分段),对每个事件取之前最近的 1~2 段,比较段间 peer 相对值,并在长段(≥8 天)内做漂移。 | 事件 | 追溯到的段(最近→更早) | 观察 | |---|---|---| | 7 号机 2025-08-08 气阀 | 2025-07-25~27、2025-06-11~13 | 两段 peer 几乎一致 → **无变化** | | 7 号机 2025-10-07 气阀 | 2025-07-25~27、2025-06-11~13(2025-10 无数据) | 同上,**无变化** | | 7 号机 2026-05-21 气阀 | 2026-03-12~04-04(22天)、2026-02-10~16 | **六缸盖侧**:段内漂移(pressure_ratio −3.4MAD)× 段间 +4.8%→−23.0% → **传感器退化,事件前两段即可见** | | 8 号机 2025-12-06 活塞 | 2025-03-13~19、2025-04-29~05-03 | 多缸同步变(一缸 Pd、四/六压比)→ 工况/启停;且距事件 8~9 个月 | | 8 号机 2026-03-10 十字头 | 同上 | 同上 | | 8 号机 2026-03-29 / 04-01 气阀 | 2026-03-15~20、2025-04-29~05-03 | 六缸盖侧已死(−99%,传感器);四轴压比 +24%→+79%(配置) | | 9 号机 2026-01-18 活塞 | 2025-10-13~16、2025-09-04~09 | 二/三缸一致 → **无变化** | | 7 号机 2025-01-10 活塞、8 号机 2025-02-17 气阀 | 无 | 该时段**完全无 data** | 结论:往前追溯 1~2 段后,**仍未发现气阀/活塞的缸级特征**;唯一在事件前两段内可见的是 **7 号机六缸盖侧的传感器退化**。 ### 4.5 长窗口慢趋势(`trend.py` 的 slow_trends,数月、每点每天4条) | 机组 | 最主要的慢变化 | 判断 | |---|---|---| | 7 号机 | **六缸盖侧 p_discharge 从 4 月 ~1.9 骤降到 5 月后 ~0.81 并保持**(p_span 0.85→0.27);六缸**轴侧正常** | **单侧传感器失效**(不是缸故障);方法能抓到阶跃 | | 8 号机 | 一缸(三级)压比/指示功缓降(负荷耦合);四缸轴侧 peer 压比 +30%→+11%(配置) | 无单缸故障 | | 9 号机 | **全部缸** p_discharge/指示功同步 +3~4%/30天 | 负荷级整体漂移,peer 相对无单缸趋势 | 结论:长窗口慢趋势能稳定捕捉**缓慢/阶跃变化**(已用 7 号机六缸盖侧传感器失效验证),但**这些变化都不是气阀/活塞缸故障**。 ### 4.4 形状/波形角度(`shape_analysis.py`) 用归一化相位剖面(PV 环面积对齐 + 平台归一化,消工况),比较“修前/修后 L2、同级 peer、双腔”: | 事件 | 修前/修后 剖面 L2 | 结论 | |---|---|---| | 8 号机 2026.3.29/4.1 | 二/四缸 ≈0.13~0.16(极稳);三级一缸 3.0~3.3 | 只有三级一缸形状变化大,但三级受负荷耦合 | | 7 号机 2025.8.8 | 全部 0.13~0.82 | 无单缸形状畸变 | | 7 号机 2026.5.21 | 全部 0.05~0.54 | 无单缸形状畸变 | 剖面图:`cache/indicator/shape/*.png`。 **结论**:形状角度也**没有**找到可归因于气阀/活塞的单缸畸变;唯一较大变化是三级一缸(负荷耦合)。 ### 4.0 已找到的候选特征(修前/修后同级对照) 方法:把“维修前段”与“维修后段”的**同级缸间偏差**做对比,找维修后恢复的缸。 **8 号机 2026.4.1 气阀(更换阀片/弹簧/缓冲片)** —— 一级轴侧压比同级偏差: | 段 | 四缸轴侧 | 六缸轴侧 | 同级中位 | |---|---:|---:|---:| | 修前 2026-03-15~20 | **+34%** | −22% | 3.42 | | 修后 2026-04-18~05-06 | **+13%** | −16% | 3.10 | - **四缸轴侧压比(相对同级)在维修前后由 +34% 降到 +13%**,相对稳定缸(二缸)降约 16%;`efficiency` 同期 0.558→0.626(+12%)。 - 其余一级缸变化仅 ±2~10%。这是目前**唯一**在维修前后明显变化的缸级特征。 - **对照分析(任务 2)——结论:大概率是配置变化,不是纯故障**: | 时期 | 四缸/二缸 压比 | 同级排序 | |---|---:|---| | 2025-03~05(无维修) | 0.96~0.98 | 二 > 四 > 六 | | 2026-03-15~20(修前) | 1.27~1.34 | 四 > 二 > 六 | | 2026-04~06(修后) | 1.12~1.17 | 四 > 二 > 六 | 四缸轴侧相对二缸在 2025→2026 之间发生**持久排序反转**(2026 全年仍偏高,维修后也回不到 2025 水平)→ 更像**年度拆装/配置变化**;维修只解释 1.34→1.12 这一部分。 - **全事件修前/修后对照**(`repair_compare.py`): - 8 号机 2026.3.29/4.1:仅四缸轴侧显著(见上); - 7 号机 2025.8.8、2026.5.21 气阀:各缸 peer 相对仅 ±1~2%,**无恢复特征**; - 其余活塞事件无可用的故障前段。 ### 4.1 8 号机 2025 春季(活塞事件前最后运行段) - 全通道正常;**二缸盖侧** `p_discharge` 比同级低约 8%、指示功低约 9%,但**二缸轴侧正常** → 倾向单侧偏置,不是活塞双腔特征。 - 同级偏差的“突发跳变”集中在 **2025-03-17/18、05-01~03**,是**工况切换日**(多缸同步移动)。 ### 4.2 8 号机 2026 春季(3.29/4.1 气阀) - 3-16~20 一级 Pd 比 4/5 月低约 10 MAD,03-18 落在 `压力/轻微` 段内; - 但**同级缸间 + 盖/轴双腔同步移动** → 工况级变化,非单缸故障。 ### 4.3 7 号机 2026-05 气阀前两周 - 同级轴侧偏差稳定、无趋势(该事件为管道突发)。 ## 5. 结论 - 工具链完备(平台/效率/三种归一化/突发跳变/evolution 对齐/通道 QC)。 - 但**活塞事件在现有功图数据里没有故障前可用段**;气阀事件多为突发,故障前无单缸趋势。 - 观察到的较大变化都能被“同级/双腔同步”解释为**工况**,说明归一化是必需的,也说明目前**功图暂未提供可区分的故障特征**。 ## 6. 建议 1. 用**未来/新采集**的密集段(4/6 号机与 7/8/9 持续运行 + 有维修记录)做验证; 2. 稳定 `n_comp`(限制拟合区间、最小样本); 3. 将“同级偏差 + 双腔差”的长期基线与 evolution 段联合,做多证据互验与偏离报警。 --- # 附录:方法总览与总结 ## A. 名词解释 | 名词 | 含义 | |---|---| | 功图(示功图) | 气缸一个压缩循环内的“压力–曲柄转角 / 压力–容积”曲线,反映吸气、压缩、排气、膨胀四过程 | | `wave_file` | 高频波形文件记录,每测点约 15 分钟一条;字段含 `point_name/device_part/measurement_type/sample_time/rpm` 等 | | `wave_sample_one` | 每条 `wave_file` 对应的**一个首周期**采样点:`sample_index, signal_value(压力), second_value(键相触发)`;约 1540 点 | | `wave_sample` | 全量采样表,本项目**基本为空**,实际用的是 `wave_sample_one` | | 键相/触发 | `second_value>=30` 的脉冲;8 个脉冲/转,较宽的那个是 0° 标记 → 一周期≈60 ms(≈996 RPM)、25.6 kHz | | 缸 / 级 | 该机 6 缸按压缩级串联:**一级=2/4/6、二级=3/5、三级=1**,压力逐级升高 | | 盖侧 / 轴侧 | 同一缸两个腔的测点(压力盖侧、压力轴侧),**可互换互补** | | `P_s` / `P_d` | 吸气平台压力 / 排气平台压力 | | `pressure_ratio` | 压比 = `P_d / P_s`(单腔的压缩能力) | | 指示功 | 一圈内 `∮P dV`(算在气体上的净功) | | 等熵效率 `efficiency` | 理想等熵功 / 实际指示功,<1 合理,实测 0.68~0.89 | | `n_comp` | 压缩线多变指数(拟合 logP–logV 斜率),不稳定 | | peer 相对 | 同一“级 + 侧”内,各缸相对其它缸中位数的偏差(消工况) | | 双腔差 | 同一缸“盖侧 − 轴侧”的差(活塞/窜气类故障会两侧不对称) | | 自身基线 z | 本测点相对自己近期中位数/MAD 的稳健 z(看时间趋势) | | MAD | 中位数绝对偏差,稳健尺度 | | dead / weak / high | 通道 QC 标记:压力≈0(坏)/ 明显偏低 / 明显偏高 | ## B. 观察对象(故障点) 故障锚点来自 `7,8,9号压缩机故障汇总.xlsx`,逐事件查功图: | 机组 | 日期 | 类型 | 故障前是否有功图 | |---|---|---|---| | 7 号机 | 2025-01-10 | 活塞(一级3#缸,笔误) | ❌ 无 | | 7 号机 | 2025-08-08 | 气阀(污染) | ✅ 2025-07-25~27 | | 7 号机 | 2025-10-07 | 气阀(一级排气阀阀片) | ❌ 2025-10 无;已追溯 07-25~27、06-11~13 两段,无变化 | | 7 号机 | 2026-05-21 | 气阀(进气阀组油压管) | ✅ 2026-05-07~21(连续) | | 8 号机 | 2025-02-17 | 气阀(阀片) | ❌ 数据 2025-03 才开始 | | 8 号机 | 2025-12-06 | 活塞(开裂) | ❌ 故障前无 | | 8 号机 | 2026-03-10 | 十字头 | ❌ 故障前无 | | 8 号机 | 2026-03-29 | 气阀(一级进气滤网) | ⚠ 仅 2026-03-16~20 | | 8 号机 | 2026-04-01 | 气阀(阀片/弹簧/缓冲片) | ⚠ 仅 2026-03-16~20 | | 9 号机 | 2026-01-18 | 活塞(三级活塞杆断裂) | ❌ 数据 2026-01-30 才起 | 涉及的测点:7/8/9 号机 × 6 缸 × {盖侧, 轴侧}(共 35~36 个压力测点)。 ## C. 用过的方法、原理与结果 1. **稳健平台检测(Otsu 双峰)** - 原理:对一周期压力做直方图,用 Otsu 找双峰分界,分别取低压/高压簇中位数作 `P_s/P_d`。 - 结果:同段内稳定,是后续所有特征的基础;比“分位数”更抗噪。 2. **物理相位对齐 + 指示功/等熵效率** - 原理:用曲柄连杆几何把转角换算成容积 `V(θ)`;在整转内搜索使 PV 环面积(指示功)最大的曲柄偏移,再用等熵理想功算效率。 - 结果:`efficiency` 合理(0.68~0.89);`n_comp` 不稳定(部分为 0/负),不宜作主特征。 3. **通道 QC(按级)** - 原理:以“同级的期望排气压力”为基准,把明显偏离的测点标记为 dead/weak/high 并排除。 - 结果:发现 **8 号机六缸盖侧 dead、7 号机四缸盖侧 dead、7 号机六缸盖侧 weak** 等;修正了“三级一缸天然高压被误判 high”的跨级错误。 4. **三种归一化对照(`analyze.py`)** - 同级(peer)/ 双腔(chamber)/ 自身(self),用于消工况。 - 结果:证明 8 号机 2026-03 的大偏离是**工况级**(同级与双腔同步移动);四缸轴侧为**单侧配置变化**。 5. **修前 / 修后同级对照(`repair_compare.py`)** - 原理:对比维修前段与维修后段的 peer 相对值,找“维修后恢复”的缸。 - 结果:8 号机 2026.3.29/4.1 仅四缸轴侧显著(+30.9%→+13.4%);7 号机两个气阀事件无恢复特征;活塞事件无故障前段。 6. **波形形状 / 归一化相位剖面(`shape_analysis.py`)** - 原理:PV 环对齐 + 平台归一化,得到与工况无关的 P–θ 形状;比较修前/修后、同级、双腔的 L2 距离。 - 结果:7 号机两气阀、8 号机一级二/四缸形状**极稳(L2≈0.05~0.8)**;唯一大变化是三级一缸(负荷耦合)。**无单缸形状畸变**。 7. **突发跳变检测(`trend.py`)** - 原理:自身基线与 peer 相对的“按天跳变”,阈值取 MAD 的若干倍。 - 结果:跳变集中在 8 号机 2025-03-17/18、05-01~03 等**工况切换日**,多缸同步,非单缸故障。 8. **长窗口慢趋势(`trend.py` slow_trends)** - 原理:数月、每点每天多条,按天中位数做线性回归,找缓慢漂移。 - 结果:7 号机六缸盖侧 p_discharge 从 ~1.9 骤降到 ~0.81(**单侧传感器失效**);9 号机全缸同步漂移(**负荷**);8 号机一缸(负荷)/四轴(配置)。 9. **全事件慢漂移自动扫描(`event_scan.py`)** - 原理:对每个维修事件回看 120~180 天,计算 peer 相对/自基线的漂移量并用 MAD 归一化、按强度排序。 - 结果:多数事件**数据不足**;7 号机 2026-05-21 只有六缸盖侧(传感器);7 号机 2025-08-08 的“漂移”实为 **二缸盖侧传感器卡死**(2025-04-30~06-11 卡在 13.3 MPa,后恢复 1.69)。**未见气阀/活塞缸级漂移。** ## D. 为什么活塞事件“数据不足” 按 `wave_sample_one` **直接计数**(不是抽样)确认: - **7 号机 2025.1.10 活塞**:窗口 2024-12~2025-02 内 `wave_file` **0 条** → 完全没有采集。 - **8 号机 2025.12.6 活塞**:窗口 2025-10~12 内 `wave_file` 521 条,但 `wave_sample_one` **0 条** → 有功图文件但**未生成首周期**(机器停机 / 采集处理缺口)。其后一直无数据到 2026-03。 - **9 号机 2026.1.18 活塞**:`wave_file` 与 `wave_sample_one` 都**从 2026-01-30 才开始**(事件后 12 天)→ 故障前无。 根因:`wave_sample`(全量)整表基本为空,真正存数据的是 `wave_sample_one`;而这三段时间 `wave_sample_one` 要么为空、要么在故障之后才开始。对比气阀事件(如 8 号机 2026-03 有 535 个文件),所以出现“气阀有、活塞没有”的差异,属**采集期差异**,不是分析漏看。 ## E. 总体结论 - 工具链已完备:稳健平台、相位对齐/等熵效率、按级通道 QC、同级/双腔/自身三种归一化、修前修后对照、波形形状、突发跳变、长窗口慢趋势、全事件扫描。 - 方法对**缓慢/阶跃变化是敏感的**:稳定抓出了两处**传感器故障**(7 号机六缸盖侧骤降、二缸盖侧卡死 13.3 MPa)以及一处**年度配置变化**(8 号机四缸轴侧排序反转)。 - 但在**现有功图数据**上,**没有找到可归因于气阀/活塞、且只在单缸出现的故障特征**;已有较大变化均被解释为工况、配置或传感器问题。 - 主要制约:活塞事件故障前无 `wave_sample_one`;气阀事件多为突发或数据有长缺口。 - 补充:对“故障前缺失”的事件已**往前追溯 1~2 个有效段**(`lookback_scan.py`,见 4.7);追溯后仍无功图故障特征,唯一在事件前两段内可见的是 7 号机六缸盖侧的传感器退化。