Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

predlab

能力分层 (诚实版): 检测 ✅ 零标签可用 · 退化分数 ✅ 跨数据集 0.98+ · RUL ❌ 未解决, 是待攻克的难关.

v1 跨数据集验证: 代码一字不改, IMS→XJTU-SY 15/15 检出, 虚警 0%.

什么意思: 一套在实验室轴承上开发的异常检测代码, 原封不动搬到完全不同的工业轴承退化数据上——15 个全检出, 零误报. 它需要每台设备自己的健康段做基线标定 (无监督, 无标签, 工厂免费可得), 不需要任何历史故障案例. 学界主流用 LSTM/CNN 做 XJTU RUL 预测——拿 12 个轴承训练, 预测剩下 3 个, 在有训练数据时 MAE 可达分钟级. 但在没有训练数据的工业场景, predlab 15/15 检出, 有监督方法无法部署.

RUL (还剩多久) 未解决: 退化分数可靠 (0.98+), 但"分数→失效时间"的映射不跨数据集迁移. 多轮实验 (线性/指数/幂律/神经ODE/锚点约束) 全部证伪或失败, 详细边界见下文. 这是本仓库当前唯一的开放难关.

用 ~15 个数的 HI + CUSUM + LR, 在 IMS 轴承 B1 全寿命数据上拿到剩余寿命预测 nowcast MAE 2.38h / forecast 2.92h, 平均提前 72 小时报警. 3 台同工况健康 bearing 全部 0% 误报. 保留了"事后分析 → 严格 online 失败 (66.7% 误报) → 跨 baseline 修复"的完整探索路径.


v2 更新 · 单调退化分数学习器

动机: v1 的 HI L2 (120维z-score的欧氏距离) 在 XJTU 加速退化下不单调 (单调性仅 55-63%)——聚合函数破坏单调性, 末段数值溢出.

方法:

CFD 120维 → 健康基线 z-score (基线归一化) → 小MLP (120-64-32-1, sigmoid)
          → 保序回归 (isotonic) → 单调退化分数 s∈[0,1]
训练: IMS B1 前80% | 测试: XJTU 零改动 (各轴承自基线标定)

结果 (跨数据集, 零改动):

轴承 相关性 rho 单调性
XJTU 3_1 0.857 → 0.993 58% → 100%
XJTU 3_3 0.743 → 0.987 50% → 100%
XJTU 3_4 0.389 → 0.985 52% → 100%

三个方法论结论 (v2 验证)

  1. 定量退化公式不跨数据集通用 — 指数/幂律/线性全部证伪 (r²<0.7). 退化是多阶段的, 单形公式无法统一描述 IMS 与 XJTU.
  2. 定性物理性质跨数据集通用 — 单调性(损伤不可逆)在物理上必然成立, 但需要正确的观测函数配合: 保序回归把学习器的输出校准为单调, 100% 成立.
  3. 基线归一化是跨数据集迁移的关键 — 同一 MLP, 输入原始 CFD 时 XJTU 相关性为负 (-0.57), 换成健康基线 z-score 后 0.86+. 分布偏移必须由基线消除, 不是靠网络泛化.

边界 · RUL 是未解决的难关: RUL 数值外推全部尝试失败:

  • 线性/指数/幂律外推: 公式不跨数据集通用 (r²<0.7), 证伪
  • 神经ODE (ds/dt=f(s)): 动力学可学 (自加速形状学出), 但状态变量标定跨数据集不一致
  • 锚点约束无标签学习: 训练域完美 (单调98%, 端点精确), 跨数据集标定被输入分布偏移破坏 (XJTU 3_1 失效时 s 仅 0.20)
  • 结论: "分数→失效时间"的映射需要该设备类型的历史故障案例集来学习形状, 单个案例只够标定锚点(健康=0/失效=1), 不够学曲线形状. 检测与预测解耦是结构性的 — 检测零标签可用, RUL 是有监督问题.

代码: experiments/eval_rul_v2.py (v2 训练+评估), experiments/eval_xjtu_online.py (v1 跨数据集).


与学界方法的关系 (保守陈述)

学界主流 (数据驱动 RUL): CNN/LSTM/Transformer 直接回归 RUL, 标签为 RUL=T-t 或分段线性, 协议为同数据集内留出法 (如 XJTU 12 训练 3 测试), 同数据集内 MAE 可达分钟级. 前提: 该数据集有足够的全寿命故障案例.

学界物理/混合方法: Paris 定律 / Wiener 过程 / PINN 约束, 参数从数据估计. 可解释性强, 但对退化模型形式有先验假设.

与 predlab 的关系:

  • 任务不同: 学界聚焦 RUL 回归 (需故障案例训练); predlab 聚焦零标签检测 (仅需健康段标定). 两者解决不同问题, 不构成直接对比.
  • 已做的验证: 在 IMS 数据集上, 数据稀缺的 5-fold TSCV 协议下, 深度方法 (LSTM/TCN) 崩到 25-66h, HI-based 方法稳定在 0.5-3h — 数据量小是有监督方法的短板.
  • 未做的验证: predlab 未与学界方法在同一 RUL 任务上公平对比 — 因为 predlab 的 RUL 未解决 (见边界), 对比无从谈起. 此为已知局限.

需要强调的局限: 本文的跨数据集结论均基于 XJTU-SY 与 IMS 两个数据集; 更多数据集 (PHM2012, FEMTO, 私有工业数据) 的验证尚未进行, 结论的外推需谨慎.

在线自适应 RUL 初步结果 (2026-08-09)

方法: 每设备部署后, 健康段标定 → 检测 → 异常检出后用自己的历史曲线做在线指数拟合外推. 严格在线协议 (检查点 k 只用 t≤k 数据), 跨数据集零改动.

结果 (XJTU, 42h 长寿命轴承 3_1):

检查点 相对误差 折算 MAE
50% 寿命 47% ~20h
70% 寿命 30% ~12.6h
80% 寿命 5% ~0.4h
90% 寿命 113% ~28h

与学界的保守对比 (协议不同, 不可直接比较):

  • 学界 SOTA (同数据集, 12训练3测试, 有标签): MAE 2-8h
  • 本方法 (跨数据集零改动, 零标签, 严格在线): 中期 30-47%, 后期 (80%寿命) ~0.4h
  • 定位: 中期精度落后 SOTA (数据不足是客观限制); 后期超过 SOTA (越接近失效越准, 恰是工业最需要的窗口); 末期 (90%+) 因 sigmoid 饱和发散
  • 局限: 单轴承 (3_1) 为最优案例; 3_4 (退化早期曲线太平) 拟合困难; 中期精度不足以支撑计划性检修, 仅适合预警窗口

代码: experiments/eval_online_v2.py

RUL 边界结论 (2026-08-09) · 参数可辨识性是瓶颈, 设备标定是必然

物理骨架验证 (模拟): Paris 裂纹扩展定律的解析解证明退化是"早期平坦(近似线性)+后期爆炸"的双形态——统一解释了 IMS(线性形)与 XJTU(指数形)的观测差异: 同一物理定律的不同观测窗口, 不是物理不同. 粒子滤波 (Paris 动力学) 在已知参数下模拟 RUL 误差 2% (85% 寿命) — 机制正确.

真实数据结论: 在线 RUL 的瓶颈不是算法, 是参数可辨识性——单设备早期观测的信息量不足以确定退化模型参数 (前 60% 退化曲线几乎平坦, 无数参数组合可拟合). 这解释了学界为何需要 12 案例训练 (多设备先验弥补单设备信息不足). 诚实的定位: 检测零标签可行 (仅健康段标定), RUL 需要每设备/每工况标定 (观测到足够退化段后参数才可辨识).

探索记录: Paris 自适应、粒子滤波、多观测融合等失败路径的完整记录保留在私有工作簿, 公开仓库仅展示通过验证的最终方案.


5 方法 × 3 协议 · 对比矩阵

5 种方法在 3 种评估协议下的完整对比. 左图 MAE 热图 (绿=好, 红=差), 右图参数量 log 刻度. 数据稀缺的 5-fold TSCV 下, 深度方法崩到 25-66h, HI-based 方法 (~15 个数) 稳定在 0.5-3h. 完整叙事和逐点数据 → outputs/VERIFICATION.md.


核心成果 · 4 个数字

  • B1 剩余寿命预测: nowcast MAE 2.38h ± 1.53h · forecast MAE (h=1.67h) 2.92h ± 1.76h (两个口径下都比原版 8A 提升 31%)
  • 报警提前量: 稳定 72-74.5 小时 (约 3 天), 报警时刻收敛在 idx 536-552
  • 健康 bearing 误报率: 0/33 = 0% — 从原版 8A 的 66.7% (22/33) 修到 0. 排 B1 对照实验下依然 0%, 说明鲁棒性来自方法本身
  • 参数量: ~15 个数. 对比 LSTM 2777 / TCN 6177, 精度不劣 (5-fold TSCV 下深度方法崩到 25-66h)

这份工作的独特价值

不是"我找到了最好的 RUL 方法" — 学界的 2D-LSTM (Li 2022) / 物理引导 NN (Lu 2023) 在充足数据下都能到 2-5h. 独特价值在四点:

  1. 主动暴露失败模式并修复 · 严格 online 协议下, 原版 "自 baseline" 在 B1 上看起来合理的 3.46h, 但 3 台健康 bearing 平均 66.7% 假报警. 学界通常不公开这类中间失败, predlab 保留完整数字 + 明说失败原因 (自 baseline 无法区分故障漂移 vs 正常时序漂移) + 展示修复路径 (换成跨 bearing 对照 baseline, 66.7% → 0%). 换 baseline 取值方式的思路是可迁移的方法学.

  2. 严格滑动窗口 online 评估 · 学界 IMS RUL 论文几乎全部用 hold-out 协议. Predlab 每个 t=k ∈ {200, ..., 950} 只用 t≤k 的数据做 baseline / 选维 / 报警 / 建模, 严格贴近工业部署条件. 这个协议下 predlab 拿到 2.38h, 跟学界深度方法在 hold-out 下报告的 2-5h 同量级, 但评估条件严格得多.

  3. 反向陈述 · 22 种事前选维公式全失败 · 尝试了 Spearman / Welch t / Mann-Kendall / SNR / Random Forest importance / Rank Ensemble 等 22 种事前选维指标, 全部无法把真正的金子维 band[29] 排到 top-15. 元结论: "金子维"是 (特征 × 任务 × 评估协议) 的联合产物, 不是特征本身固有属性. 事后金子维 band[29] (idx 56) 和方向 A 在线金子维 freq[3] (idx 15) 在同一数据集上共存但物理含义完全不同 — 挑战学界主流 filter method 假设.

  4. 两次严格自查都通过 · (a) 双口径 MAE: nowcast (样本内 evaluate) + forecast (h=1.67h, 训练集截掉最后 10 file 后真实预测), 两个口径下方向 A 都比原版提升 31%, 说明优势不依赖评估口径. (b) B1 污染对照: 排除失效 B1 后 others 池只用另外 2 台健康 bearing, 误报率依然 0%, 说明方法鲁棒性不是被 B1 污染撑起来的假 0%.

明确的边界

  • 跨数据集验证已完成 ✅. XJTU-SY 15 轴承, 3 工况, 严格 online 协议, 零改动迁移一字不改: 15/15 全部检出, 13/15 在寿命 50% 前告警, 虚警率 0%. RUL nowcast MAE 18.6h, 且不收敛——HI L2 对退化加速度敏感, XJTU 末期的 z-score 指数级增长, CUSUM+LR 线性外推崩盘. 这恰好验证了原版结论: 异常检测和 RUL 预测应该解耦. HI L2 跨数据集检得出异常, 但 RUL 精度取决于退化曲线是否适合线性拟合, 换数据集就可能崩——不是过拟合, 是触及了方法的物理学边界. 突破方向: 非线性 RUL 模型 (指数/幂律) 替代线性外推, 应对加速退化场景. Eval 代码: experiments/eval_xjtu_online.py.
  • 方向 A 需多机同型号同工况监测 (至少 2 台参照). 单机孤立部署不适用, 需要另一条技术路线 (领域自适应 / 先验演化模型).
  • 8 条完整已知局限 → 已知局限.

完整对比矩阵

方法 参数量 评估协议 MAE (nowcast) MAE (forecast h=1.67h) 备注
band[29] 单维 (事后金子维) 3 5-fold TSCV / Hold-out 0.53h / 0.45h 事后分析, 需已看完 B1 全生命
trend + PHI 5 维 15 5-fold TSCV 3.19h ± 1.39h 事后, 多维选择
Online 自 baseline (原版, 8A) ~15 严格 online 3.46h ± 2.80h 4.26h ± 3.23h B1 精度合理; 但 B2/B3/B4 平均 66.7% 误报
Online 跨 baseline (方向 A · 修复, 8B) ~15 严格 online 2.38h ± 1.53h 2.92h ± 1.76h B1 精度更高; B2/B3/B4 全部 0% 误报
LSTM (小容量对照) 2777 5-fold TSCV / Hold-out 66.33h / 7.23h 深度方法对照
TCN (小容量对照) 6177 5-fold TSCV / Hold-out 25.67h / 24.10h 深度方法对照

两个口径的差别: nowcast 用 [alert, k) 全部拟合 LR 后在训练集最后一点自我 evaluate (回答"此刻剩余寿命是多少"); forecast 训练集截掉最后 10 file 后用最新观测预测 (回答"1.67h 后的 RUL 是多少"). 两个口径下方向 A 都比原版 8A 提升 31%, 说明优势不依赖具体的评估口径.

报警提前量: 方向 A 在 B1 上报警时刻稳定收敛在 idx 536-552, 距 B1 失效 72-74.5h (约 3 天).


完整探索路径 · 三阶段

这份工作的核心不是"我发现了一个方法", 而是"我完整走完了一条从事后分析到严格 online 部署的路径", 包括中间的失败模式.

第一阶段 · 事后分析 (实验 1-7)

对 B1 的 984 file 全生命做单维扫描, 意外发现 band[29] 单维 = 0.53h ± 0.66h MAE (5-fold TSCV), 比 trend + PHI 5 维 (3.19h) 好 6 倍. 一维就够, 多维反而稀释信号.

同时尝试了 22 种事前选维公式 (Spearman ρ / Welch t / Mann-Kendall τ / SNR / Random Forest importance / Rank Ensemble 等), 全部无法把 band[29] 排到 top-15. 元结论: "金子维"是 (特征 × 任务 × 评估协议) 的联合产物, 不是特征本身的固有属性. 22 指标失败对照的完整数据在私有档案, 公开只讲元结论.

同容量深度方法对照 (LSTM 2.8k / TCN 6.2k) 在 5-fold TSCV 下差传统方法 16-125×. 深度方法学习"故障演化模式"需要训练集包含完整演化, 传统方法只需要识别"偏离健康基线".

第二阶段 · 严格 online 自 baseline (实验 8A) — 关键失败

把方法搬到严格 online 协议: 对每个 t=k ∈ {200, 300, ..., 950}, 只用 t≤k 的数据做 baseline / 选维 / HI / 报警 / RUL 预测, 不预设任何维度. B1 上 nowcast MAE 3.46h, 数字看起来合理.

但补做 B2/B3/B4 (三个全程健康 bearing) 的误报验证, 得到:

Bearing 11 个 t=k 中的误报数 误报率
B2 (健康) 6/11 54.5%
B3 (健康) 10/11 90.9%
B4 (健康) 6/11 54.5%
合计 22/33 66.7%

只在故障 bearing 上看 3.46h 是自欺. 三个健康 bearing 一进来, 每 3 次判断里就有 2 次假报警. 失败根源: "自 baseline" 假设 (前 100 file 是健康期) 无法区分"故障导致的漂移"和"正常时序漂移" (转速微漂 / 温漂 / 传感器时变). Welch t 检验把这些正常漂移误识别为故障演化.

这不是可以通过调 σ 阈值挽救的问题 —— 提高门槛会同时提高 B1 和 B2/3/4 的报警难度, 比例不变. 需要换 baseline 的取值方式.

第三阶段 · 跨 bearing 对照修复 (实验 8B · 方向 A)

核心改动: baseline 从"target 自己的 [0:100]" 改为 "其他 bearing 在滚动窗口 [k-100:k] 段" (跨 bearing 对照). 其他一切不变.

原理: "正常时序漂移" 会同步作用在所有同工况 bearing 上 (共模干扰), 跨 bearing 对照能扣除这些共模, 剩下的偏离才是 target 独有的异常 = 真实故障演化.

结果:

  • B1 nowcast MAE 2.38h ± 1.53h / forecast MAE 2.92h ± 1.76h (两个口径下都比 8A 提升 31%)
  • 中期最好一次: t=600 时 nowcast err 0.01h / forecast err 0.15h
  • 报警时刻从 8A 的 121.5h→74.5h 漂移收敛到稳定的 72-74.5h
  • B2/B3/B4 全部 0% 误报 (0/33)

自查 · 排 B1 对照实验: 评估 B{2,3,4} 时把 others 池的 B1 排除, 只用另外 2 个健康 bearing 做参照. 结果依然是 0/33 = 0% 误报. 说明方向 A 的鲁棒性来自方法本身 (跨 bearing 对照扣除共模), 不是"被 B1 污染撑起来的假 0%".

意外发现 · 双金子维: 方向 A 每个成功 t=k 都稳定选中 freq[3] (idx 15) —— 这是 B1 相对其他健康 bearing 差异最强的维. 而事后分析的金子维 band[29] (idx 56) 是 B1 内部时间演化最强的维. 两个金子维在同一批数据上共存但物理含义完全不同 —— 再次印证第一阶段的元结论: "金子维"任务相关.


快速复现

pip install -r requirements.txt

数据准备: 从 NASA PCoE Repository 下载 IMS Set 2, 解压到 data/IMS-DATASET/. 详见 data/README.md.

按需运行各实验:

# 特征准备 (首次必跑)
python experiments/prepare_ims.py

# 事后分析层 (实验 1-2)
python experiments/exp_dim_comparison.py       # 4 策略 × k 扫描
python experiments/exp_single_dim_scan.py      # 单维扫描, 发现 band[29]

# 深度方法对照 (实验 5-7)
python experiments/exp_lstm_baseline.py        # LSTM baseline (需 PyTorch)
python experiments/exp_tcn_baseline.py         # TCN baseline
python experiments/exp_holdout_comparison.py   # 协议敏感性

# 严格 online (实验 8A · 失败模式)
python experiments/exp_beta_online_rul.py      # B1 online RUL 预测 (双口径 MAE)
python experiments/exp_online_false_alarm.py   # B2/3/4 误报验证 → 66.7%

# 严格 online 修复 (实验 8B · 方向 A · 核心)
python experiments/exp_online_fix_A_full.py     # 方向 A 完整版 (双口径 MAE)
python experiments/exp_online_fix_A_control.py  # 对照: 排 B1 后依然 0% 误报

# 泛化验证
python experiments/exp_generalization.py       # B1 训 → B2/3/4 测

# 生成 README 图
python experiments/make_readme_figures.py

产物全部落在 outputs/, 完整验证报告见 outputs/VERIFICATION.md.


数据与协议

数据集: IMS Bearing Data Center Set 2 (NSF I/UCR Center for Intelligent Maintenance Systems, Rexnord Corp.). 4 个滚动轴承同轴运行, 转速 2000 rpm, 径向载荷 6000 lbs, 20 kHz 采样. 984 files × 每 file 20480 点 ≈ 164 小时. B1 内圈故障演化到失效, B2/B3/B4 全程健康.

特征体系: CFD 120 维 (与 vibrolab 同源, 逐维公式一致):

  • 时域 12 维 (RMS / 峭度 / 波形因子等)
  • 频域 15 维 (质心 / 带宽 / 谱斜率等)
  • 分频带 64 维 (32 带能量比 + 32 带对数能量)
  • 主峰 12 维 (Top-6 主导频率与幅值)
  • 倒谱 17 维 (前 17 阶系数)

无重叠滑窗切分 (window = step = 2048 采样点), 每 file 10 段, 每段 → 120 维特征向量.

三种评估协议:

  1. 5-fold TimeSeriesSplit — sklearn 标准, 训练集从前 1/6 递增到 5/6, 早期 fold 完全没进入故障期
  2. Hold-out 90/10 — 学界主流, 前 90% 训, 后 10% 测
  3. 严格滑动窗口 online — 每个 t=k ∈ {200, ..., 950} 独立完整流程, 只用 t≤k 的数据, 模拟真实工业部署

三种协议的差异是 predlab 相对学界工作的一个稀缺角度. 大部分 IMS RUL 论文只报协议 2, 协议 3 揭示真实工业条件下方法的表现.


已知局限

诚实公开 8 条边界:

  1. 跨数据集验证 ✅ · XJTU-SY 15 轴承, 3 工况, 严格 online 协议, 零改动迁移: 15/15 检出, 13/15 <50% 寿命告警, 虚警 0%. RUL MAE 18.6h (告警过早→外推困难; IMS 原版 2.38h 依赖 72h post-alarm 数据). Eval: experiments/eval_xjtu_online.py.

  2. 方向 A 需多机同型号同工况监测 · 核心方案 (8B · 方向 A) 需要至少 2 台同型号同工况 bearing 同时运行做参照. 本仓库只在 IMS Set 2 的 4 轴承同工况场景下验证过, 推广到其他机械类型未做实测. 单台孤立监测不适用, 需要另一条技术路线 (领域自适应 / 先验故障演化模型), 也是未来工作.

  3. 报警前雪崩期不可预测 · 严格 online 下 t=850+ (报警后 8h+) 建模精度 MAE 快速膨胀到 5-9h. RUL 的实用价值在中期预警 (报警后 20-100 file, MAE 0.2-4h), 不在末期精确预测.

  4. 早期无预测能力 · 严格 online 下 t=200/300 (生命的 20-30%) 未触发 3σ 报警, 无法给出 RUL. 新机器上线的头 30-50 小时默认不出预测.

  5. HI 单调假设 · 本方法依赖 HI 随故障演化单调爬升. 非渐进式劣化 / 非单调退化模式可能失效. 本仓库没有验证这个边界, 学界 Li 2022 也提过这个已知问题.

  6. 深度方法容量限制 · 对比只做到 2.8k (LSTM) - 6.2k (TCN) 参数, 未跑大容量 (100k+) SOTA. 本仓库的主张是"简单方法在此场景下够用", 不是"简单方法比 SOTA 好". 大 SOTA 深度方法 (LSTM + Attention + 数据增强) 能到 2-3h, 但需要 GPU 和大量数据.

  7. 单个 bearing 数据 · 主实验用 B1 完整数据. IMS Set 2 只有 B1 一个故障 bearing, 无法在多故障样本上做多轮验证. 不能宣称"方法对所有轴承都工作".

  8. Nowcast 数字有轻微虚高 · nowcast 口径的训练点最后一个 = 评估点, 是样本内 evaluate. Forecast 口径 (h=1.67h) 才是真正的未来预测. 两个口径 gap 0.54-0.80h, 说明 nowcast 数字有轻微偏乐观但不是灾难级. 表格里两个数字都报给了读者.


与学界工作的位置

明说 predlab 相对已有工作的位置, 不宣称原创:

学界工作 核心方法 与 predlab 的关系
Sahu & Rai 2024 [1] · JMST HI (C-MMPE 熵特征) + LSTM 相似思路, 都用 "HI-based 特征 + 分类器" 结构. 差异: 我们用 CFD 频段能量而非熵特征; 做了更小容量 (2.8k) LSTM 公平对比
Li 2022 [2] · IEEE Sensors 2D-LSTM + 两阶段 (FOT 检测 + degradation) 理念一致 — 我们的 "3σ 报警 + CUSUM + LR" 是 FOT 检测的另一种实现
Chen 2022 [3] · ISAS 两阶段 LSTM + 统计特征 类似 [2], 用更简单的报警机制
Lu 2023 [4] · Eng App AI Physics-Guided NN (物理引导 loss) 不同物理引导层次 — 他们在 loss 层加约束, 我们在特征层用 CFD 模块划分
Kamat 2024 [5] · JBSMS 振动异常模式挖掘 + LSTM 相似的"预处理 + 深度模型"结构

Predlab 相对以上工作的独立价值:

  1. 参数效率视角 — 5 篇文献都没做"传统 vs 深度"参数效率对比, 默认"更深更好". predlab 实测: 数据稀缺场景下传统方法效率高 60000×.
  2. 严格滑动窗口 online 评估 — 5 篇文献都是 hold-out 或变体. predlab 用严格 online, 贴近真实工业部署.
  3. 反向陈述 — 学界罕见"我试了什么都不行", predlab 记录了 22 种事前选维公式全部失败.
  4. 主动暴露失败模式 — 8A → 8B 的完整路径 (66.7% 误报 → 修复) 在学界少见. 学界主流只报告能 work 的最终版本, 中间失败模式不进论文. predlab 保留 8A 数字 + 明说失败原因 + 展示修复路径.

参考文献:

  • [1] Sahu, P.K., Rai, R.N. (2024). "LSTM-based deep learning approach for RUL prediction of rolling bearing using proposed C-MMPE feature". J. Mech. Sci. Technol., 38(5), 2197-2209. DOI: 10.1007/s12206-024-0402-8
  • [2] Li, Y., et al. (2022). "A 2-D Long Short-Term Memory Fusion Networks for Bearing Remaining Useful Life Prediction". IEEE Sensors J., 22(22), 21806-21815. DOI: 10.1109/JSEN.2022.3202606
  • [3] Chen, Q., et al. (2022). "Remaining useful life prediction of bearings with two-stage LSTM". ISAS 2022. DOI: 10.1109/ISAS55863.2022.9757261
  • [4] Lu, W., et al. (2023). "Physics guided neural network: RUL prediction of rolling bearings using LSTM through dynamic weighting". Eng. Appl. Artif. Intell., 127, 107350. DOI: 10.1016/j.engappai.2023.107350
  • [5] Kamat, P., et al. (2024). "Vibration-based anomaly pattern mining for RUL prediction in bearings". J. Braz. Soc. Mech. Sci. Eng., 46(5). DOI: 10.1007/s40430-024-04872-4

目录结构

predlab/
├── experiments/                       # 实验脚本
│   ├── prepare_ims.py                 # 数据准备: IMS 原始信号 → CFD 特征
│   ├── exp_dim_comparison.py          # 实验 1 · 4 策略 × k 扫描
│   ├── exp_single_dim_scan.py         # 实验 2 · 单维扫描 (发现 band[29])
│   ├── exp_rul.py                     # trend+PHI 5 维基准流水线
│   ├── exp_lstm_baseline.py           # 实验 5 · LSTM baseline
│   ├── exp_tcn_baseline.py            # 实验 6 · TCN baseline
│   ├── exp_holdout_comparison.py      # 实验 7 · Hold-out 协议敏感性
│   ├── exp_beta_online_rul.py         # 实验 8A · 严格 online (双口径 MAE)
│   ├── exp_online_false_alarm.py      # 实验 8A · B2/3/4 误报验证 (66.7%)
│   ├── exp_online_fix_search.py       # 8B 探索: σ/persist 参数扫描, 验证"调阈值救不了"
│   ├── exp_online_fix_A.py            # 8B 探索: 跨 baseline 初版, 只做 B1 报警
│   ├── exp_online_fix_A_full.py       # 实验 8B · 方向 A 完整版 (双口径 MAE, 核心)
│   ├── exp_online_fix_A_control.py    # 实验 8B · 对照 (排 B1 后依然 0% 误报)
│   ├── exp_generalization.py          # 实验 9 · B1 训 → B2/3/4 测
│   └── make_readme_figures.py         # 生成 README 图
├── outputs/                           # 实验产物
│   ├── VERIFICATION.md                # 完整验证报告 (每个数字都可追溯)
│   ├── dim_comparison.csv             # 4 策略 × k 扫描数据
│   ├── single_dim_scan.csv            # 120 维单维扫描数据
│   ├── exp_online_false_alarm.json    # 8A 误报证据
│   ├── exp_online_fix_A_full.json     # 8B 方向 A 结果 (双口径)
│   ├── exp_beta_online_rul.json       # 8A 双口径结果
│   ├── exp_online_fix_A_control.json  # 8B 对照 (排 B1)
│   ├── exp_generalization_result.csv  # 泛化验证
│   └── figures/                       # 图集
├── predlab/                           # Python 包 (骨架)
│   ├── features.py                    # CFD 120 维特征提取 (与 vibrolab 同源)
│   └── dim_selector.py                # 4 种选维策略
├── data/                              # 数据目录 (IMS 原始不进 git, 见 data/README.md)
├── requirements.txt
└── LICENSE

相关项目

  • vibrolab — CWRU 轴承跨工况故障诊断, 2 KB 模型部署到 ESP32-S3. 与 predlab 共享 CFD 120 维特征体系.
  • diagnosis-agent — LLM Agent + SCA 守卫在跨工况诊断上的探索.

三个仓库共享 features.py 里的 CFD 120 维公式实现 (完全一致).


Author

康龙辉 · 燕山大学机械工程学院 2027 届硕士研究生

📧 k3132755765@163.com · GitHub @kanglongh

License

MIT. 见 LICENSE.

About

IMS 轴承 RUL 预测的完整探索路径 · CFD 120 维物理特征 + HI + CUSUM + LR · 事后分析 (band[29]=0.53h) → 严格 online 失败 (66.7% 误报) → 跨 baseline 修复 (方向 A: nowcast 2.38h / forecast 2.92h / 0% 误报)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages