README.md 4.6 KB

功图特征抽取(indicator_features)

从 wave_file + wave_sample_one(每文件一个首周期)抽取单周期功图特征,用于找气阀/活塞故障特征。只读、抽样、不建模。

级配(现场确认):一级=2/4/6 缸、二级=3/5 缸、三级=1 缸;气体从 2/4/6 进,1 缸压缩后出,压力逐级升高。

用法

cd backend
python indicator_features/extract_from_db.py \
  --unit 7 --cylinders 二 四 六 --sides 盖侧 轴侧 \
  --start 2026-05-01 --end 2026-05-22 --per-day 3 \
  --output cache/indicator/7_1stage_valve_202605.csv
  • --per-day N:每个测点每天最多取 N 个文件(均匀取样),控制拉取量。
  • 输出每周期一行的 CSV:吸/排气平台、压比、相位占比、斜率、拐角、指示功、效率、相位剖面等。

对照分析(同级缸间 / 同缸双腔 / 本缸自身基线,含通道 QC):

python indicator_features/analyze.py cache/indicator/7_1stage_valve_202605.csv

特征(当前)

  • 平台:p_suction、p_discharge、p_span、pressure_ratio
  • 相位:suction_frac、discharge_frac
  • 线型:compression_slope、expansion_slope、corner_sharpness
  • 功:indicated_work、imep(注意:需物理相位锚定,当前不可靠)

已知问题

  1. 坏通道:如 8 号机六缸盖侧、7 号机六缸盖侧/四缸盖侧在部分时段压力≈0,必须识别并排除。
  2. 指示功/效率:单周期起始角与活塞相位未锚定,∮P dV 目前不可用;需用键相/相位对齐后再算。
  3. 数据覆盖:功图只在设备运行日存在,很多故障发生在停机附近,故障前数据可能不足。

见 观察记录.md。

每 10° 分箱局部统计

整周期统计会互相抵消,故障可能只在某个小角度区间。把每周期按键相 0-360° 切成 36 个 10° 箱,箱内直接在原始点上算 23 个特征(不重采样),再做同点前后对比;另外每周期还算 13 个阀时序特征。

  • 分箱 23:均值/极差/标准差/中位绝对偏差/斜率/粗糙度 + 10/50/90分位/四分位距 + 偏度/峰度 + 导数族 + 形状族(二阶导最大/总变差/过均次数/移动度/复杂度)。
  • 整周期 13:吸气压力/排气压力/压比/吸气占比/排气占比 + 最小、最大压力角 + 上升、下降穿越角 + 最大上升、下降斜率及其角度。
  • 中文名对照见 cn_names.py。
# 0) 看某机组的 rpm>0 运行段(开机表按数据本身统计)
python indicator_features/run_segments.py --unit 7

# 1) 逐周期逐箱抽特征(只读,rpm>0;--bin-deg 可选 5/10/15/20)
python indicator_features/angle_bins.py --unit 7 \
  --start 2025-04-30 --end 2026-06-07 --per-day 3 \
  --output cache/indicator/bins/7_all.csv

# 2) 同点前后对比(--normalize span 压工况;--z 变化阈值;前段取事件前最近运行段)
python indicator_features/event_bins.py --unit 7 \
  --csv cache/indicator/bins/7_all.csv --normalize span --z 2 \
  --pre-days 6 --post-days 30 --max-gap 45 --trend-days 60 \
  --out cache/indicator/bins/event_final_7.csv

# 3) 跨事件候选汇总(事件×测点×角度箱 合并指标;含“整体/局部”范围列)
python indicator_features/summary_features.py \
  --csv cache/indicator/bins/event_final_7.csv cache/indicator/bins/event_final_8.csv cache/indicator/bins/event_final_9.csv \
  --threshold 2 --out cache/indicator/bins/summary_final.csv

# 4) 生成中文交付(CSV + 特征汇总.md)
cd indicator_features && python3 make_report.py && cd ..

# 5) 单指标全时间轴演化轨迹(查事件前是否有长期渐变)
python indicator_features/metric_trace.py --csv cache/indicator/bins/7_all.csv \
  --unit 7 --cylinder 二 --side 盖侧 --bin-start 140 --metric std \
  --out cache/indicator/bins/plots/7号_二缸盖侧_140-150_波动随时间.png

# 6) 单点 停机前/开机后 三联简图(左 平均压力 / 中 波动 / 右 关注段随时间)
python indicator_features/pair_plot.py --csv cache/indicator/bins/7_all.csv \
  --unit 7 --date 2026-05-21 --cylinder 二 --side 盖侧 --highlight 140-150 \
  --series-metric std --out cache/indicator/bins/plots/7号_2026-05-21_二缸盖侧_140-150.png
  • 对比只限同一点(同缸同侧);每个指标分成 整体(全角度一起动=负荷/传感器)与 局部(个别箱动=阀/局部故障)。
  • --normalize span:压力幅度类指标除以本周期压力幅度,压掉负荷/压比变化。
  • 坏道/卡死(压力幅度<0.3)自动跳过;角度型指标按 0-360° 环形处理。
  • 中文交付在 cache/indicator/bins/results_cn/。