从一次深夜停机说起:旋转机械故障数据集到底能帮你做什么

📅 发布时间:2026/8/20 16:41:35
从一次深夜停机说起:旋转机械故障数据集到底能帮你做什么 从一次深夜停机说起旋转机械故障数据集到底能帮你做什么【免费下载链接】Rotating-machine-fault-data-setOpen rotating mechanical fault datasets (开源旋转机械故障数据集整理)项目地址: https://gitcode.com/gh_mirrors/ro/Rotating-machine-fault-data-set凌晨两点某风电场的运维值班室里报警灯突然亮起。中速轴轴承的温度比平时高了 12 摄氏度振动幅值一路爬升运维团队连夜赶赴机舱。事后拆检发现外圈已经出现了明显的剥落——如果再晚几天发现齿轮箱可能整体报废一次更换的成本就是几十万元。这样的故事每天都在工厂、电厂、轨道交通线上演。问题的核心是设备不会提前告诉我们它哪里疼但它会留下信号——振动、温度、声音——就像病人发出的呻吟。而旋转机械故障数据集正是把设备这些呻吟整理成可学习的病历档案让算法能够听懂并提前预警。把振动信号想成设备的心跳如果你去医院体检医生会听心跳、测血压、看心电图。工业设备也一样轴承、齿轮每转一圈都会产生周期性的振动这个波形就是它的心跳。健康时心跳平稳规律当轴承内圈出现一道细小的裂纹滚珠滚过裂纹时会产生规律的冲击脉冲反映在振动波形上就是每隔固定间隔出现的尖峰。更妙的是不同故障位置——内圈、外圈、滚动体——对应的冲击频率各不相同就像不同的心律失常各有特征。把这段波形交给算法学习它就能像心内科医生看心电图一样判断这台设备得的是什么病。但问题来了真实工厂里故障样本太稀缺了。谁也不可能故意让昂贵设备跑到坏掉来攒数据。于是全球多所大学和研究机构设计了一系列实验平台人为制造故障、施加负载、加速轴承老化把实验全程的振动信号保存下来。这些散落在世界各地的数据就是本项目Rotating-machine-fault-data-set要整理和提供的东西——一份公开的、跨机构的设备病历档案库专门服务于工业设备健康监测与预测性维护研究。新手最常问的 5 个问题1. 这份数据能做什么三类典型任务故障分类判断设备是否故障、故障在哪、退化趋势分析设备还能用多久、以及验证信号处理和深度学习算法。2. 适合哪些人正在做毕业设计或论文的机械/自动化专业学生、想入行工业智能的算法工程师、负责设备点检的运维人员都可以从中受益。3. 需要什么基础会 Python、了解一点 NumPy 和简单的机器学习概念就足够了。信号处理知识可以在实践中边做边补。4. 数据是什么格式多为 MATLAB 的.mat文件和文本文件Python 里用scipy.io.loadmat就能读取也有 ASCII 格式可以直接读。5. 用了别人的数据会不会有版权问题项目内均为开源数据但引用研究时需按各数据源版权方要求进行标注仓库的doc/目录下每份数据集说明都给出了对应的论文引用信息。从零跑通第一个故障分类 Demo下面我用最经典的 CWRU 数据集美国凯斯西储大学轴承数据中心演示完整流程。它被誉为轴承诊断领域的 MNIST故障特征明显、文献丰富是入门首选。它的详细说明见 doc/CWRU.md。第一步准备数据与环境# 克隆仓库查看数据获取说明 git clone https://gitcode.com/gh_mirrors/ro/Rotating-machine-fault-data-set pip install numpy scipy scikit-learn matplotlib第二步加载数据并切分样本import numpy as np from scipy.io import loadmat def load_sample(path, channelDE_time, length1200): 读取一段振动信号并切成固定长度的样本 data loadmat(path)[channel].flatten() return [data[i:ilength] for i in range(0, len(data)-length, length)]以 12kHz 采样率为例每 0.1 秒就是 1200 个采样点可以作为一个样本。分别加载正常、内圈故障、外圈故障三类的数据各切几百段打上标签。第三步提取简单特征def extract_features(sig): return [ np.sqrt(np.mean(sig**2)), # 均方根 RMS反映振动强度 np.mean(np.abs(sig - np.mean(sig))**3) / np.std(sig)**3, # 偏度 np.mean((sig - np.mean(sig))**4) / np.std(sig)**4, # 峭度冲击越强值越大 np.max(np.abs(sig)), # 峰值 ]峭度是这里最懂行的特征健康轴承的峭度接近 3出现冲击性故障时会明显抬升能直观感受到病征。第四步训练与验证from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score X np.array([extract_features(s) for s in all_samples]) y np.array(labels) X_train, X_test, y_train, y_test train_test_split(X, y, test_size0.3, random_state42, stratifyy) clf RandomForestClassifier(n_estimators200).fit(X_train, y_train) print(准确率:, accuracy_score(y_test, clf.predict(X_test)))即便只用这 4 个时域特征随机森林在 CWRU 上通常也能达到 95% 以上的准确率。换用更复杂的频域、时频特征或深度学习模型就是大家论文里的常规操作了。避坑指南那些让你白跑一周实验的坑坑一数据格式不统一不同机构的数据结构五花八门有的存在嵌套结构里有的含多通道。建议先写一个统一的加载函数把各类数据都规整成(样本数, 长度)的二维数组再开始后续工作。坑二样本重叠导致虚假高分切样本时如果滑动步长过小训练集和测试集里会出现来自同一段原始信号的样本模型其实是背答案。务必按文件级划分数据集保证训练、测试样本互不重叠。坑三工况不同导致模型失灵在 0 马力负载下训练的分类器拿到 3 马力数据上往往大幅退化因为转速、负载改变了振动能量分布。解决思路是训练时混入多种工况或使用迁移学习、域自适应技术。CWRU 之外加拿大渥太华大学数据就专门提供变转速工况非常适合这类研究见 doc/README 第 14 节。坑四把人工故障当成真实故障多数实验室数据是用电火花加工人为制造缺陷特征相对干净。真实故障往往伴随多种退化同时发生因此建议在掌握基础后再挑战 MFPT 附带的风机轴承真实故障案例见 doc/MFPT.md体会理想与现实的差距。一份档案二十个来源一个正在生长的生态这个项目不是某一家机构的数据而是一份横跨全球的索引档案美国凯斯西储大学的 CWRU、机械故障预防技术学会 MFPT、辛辛那提大学的 IMS 轴承退化数据德国帕德博恩大学的电流-振动联合数据集法国 FEMTO-ST 的加速退化实验以及国内的西安交通大学 XJTU-SY 全寿命周期数据、东南大学齿轮箱数据、上海交通大学轴承数据等合计二十余个数据源每个数据源都有独立的说明文档、下载入口和配套论文。尤其值得关注的是两类进阶数据一类是 XJTU-SY 这类记录轴承从健康到完全失效全过程的数据见 doc/XJTU_SY.md它支撑的是剩余使用寿命预测——不是有没有病而是还能撑多久另一类是电机异音质检竞赛数据见 doc 第 18 节模拟的是工厂流水线上用 AI 替代人工听音的落地场景离生产实际只有一步之遥。更难得的是项目维护者本身就是这个领域的工程师长期活跃在数据使用、信号处理、智能诊断与寿命预测的交流中社区氛围开放欢迎在 Issues 里提问、分享心得也欢迎提供新的公开数据源。可以说这不仅是数据集更是一群同行共建的故障诊断地图。下一步你该做什么如果你正处于想学故障诊断却不知道数据从哪来的阶段我的建议很直接克隆仓库通读README.md的目录了解每份数据的定位从 CWRU 入手把上面的 Demo 完整跑通建立信号→特征→分类的直觉换用 XJTU-SY 或 IMS 数据尝试做一次简单的退化趋势分析把实验结果与公开论文对比并注意按数据源要求正确引用。数据是工业智能的燃料。这份开源整理把全球最优质的研究数据集中呈现在你面前省下的找数据时间足够你多跑几十组实验。设备不会说话但它的振动信号里藏着答案——现在读懂这份病历档案的工具和钥匙都已经交到你手上了。【免费下载链接】Rotating-machine-fault-data-setOpen rotating mechanical fault datasets (开源旋转机械故障数据集整理)项目地址: https://gitcode.com/gh_mirrors/ro/Rotating-machine-fault-data-set创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考