手把手教你:基于深度学习的滚动轴承故障诊断(2026 修订版)
本文是《滚动轴承故障诊断》系列的第 1 篇(总览)。 系列完整目录见文末【专栏导航】。本文配套代码与分步操作手册见公众号「免费代码合集」菜单。
一、项目简介
本文介绍如何使用 Python 搭建一个基于深度学习的滚动轴承故障诊断系统 。 系统对轴承的 4 种状态做自动分类: 项目中使用了三种方法对比检测结果,这也是毕设论文中最需要的一组"对比实验": 三个模型用同一份数据、同一套切分方式训练,结论可直接写进论文实验章节。 如需更换自己的训练数据,只需要把数据文件按目录放好,所有代码无需改动即可直接运行。 本项目使用凯斯西储大学(Case Western Reserve University,CWRU)轴承数据中心的开源公开数据集 ——这也是全世界故障诊断研究最常用的入门数据集,引用进论文无版权风险。 数据为 Matlab 格式(.mat),每个文件包含风扇端和驱动端振动数据以及电机转速。文件中的变量名含义: 对四类状态各取一个文件绘制波形,可以直观看到:不同故障之间、故障与正常之间,数据分布都存在明显差异 ——这正是"可以用分类模型来做诊断"的物理依据。 原始信号是"一整条很长的时间序列",而分类模型需要的是"一条条样本"。预处理做三件事: 处理后的数据保存为 。 把每条 1000×2 的样本"拍平"成 2000 维特征向量,直接喂给随机森林(50 棵树,深度 5)。 它不需要训练轮次、跑得最快,作为论文里的"传统方法对照组"非常合适。 一维卷积神经网络:卷积核沿时间轴滑动,自动从波形中提取局部模式(比如故障冲击的形状),替代人工特征工程。 结构很简洁: 。 实测准确率约 83%,且"内圈故障"一类的召回率明显偏低——误分集中发生在内圈与滚动体之间。这个"缺陷"恰好是第 6 篇文章的主角:它证明了简单浅层网络的特征提取能力不够 。 在 CNN 基础上加入 5 个残差块(ResBlock) 。每个残差块内部的连接方式是: 这条"捷径"让损失梯度可以无损地传回浅层,深层网络因此训得动、不退化——这是 ResNet 论文(He et al., 2015)的核心思想,也是本项目准确率从 83% 提升到 95%+ 的关键。 三个模型各自的完整分类报告(precision / recall / f1)和混淆矩阵图,运行配套评估脚本可一键生成,直接贴论文。 本系列文章走"文章讲思路、资源包管操作 "的路线,内容互不重复: 下一篇预告 :《环境部署:从零搭好能跑深度学习的 Python 环境(CPU 版)》,零基础 30 分钟完成,含常见安装报错速查。 版权说明:CWRU 数据集版权归凯斯西储大学所有,仅限学习研究使用;本文代码与文字为本人原创,付费专栏读者可学习使用,禁止转售。方法
类型
测试集准确率
随机森林
传统机器学习
约 73%
1D-CNN
深度学习
约 83%
CNN + 残差模块(ResNet)
深度学习(推荐)
95%+
二、数据介绍
三、数据预处理
类别
样本数
正常
1400
内圈故障
1400
滚动体故障
1400
外圈故障
1400
合计
5600
train_data.npy(5600, 1000, 2)和 label.npy(5600,),后续三个模型都从这两个文件读取——预处理一次,三模型通用四、模型设计与对比结果
4.1 随机森林(传统基线)
4.2 1D-CNN(深度学习基线)
Conv1D(64) → MaxPooling → 全局平均池化 → Dense(32) → Dropout → softmax(4)4.3 CNN + 残差模块(ResNet,推荐模型)
输出 = F(x) + x # F 是两层卷积,x 是块的输入(捷径直接跳过来)
4.4 三模型对比总结
模型
准确率
论文话术
随机森林
~73%
传统人工特征路线的上限
1D-CNN
83%
浅层网络对内圈/滚动体故障区分不足
CNN+ResNet
95%+
残差连接增强深层特征表达,四类召回均衡
五、配套代码与资源
六、专栏导航
篇次
主题
状态
1
项目总览与三模型对比(本文)
✅
2
环境部署:Anaconda + TensorFlow 2.x 全流程
编写中
3
CWRU 数据集深度解析与波形可视化
排期中
4
数据预处理源码走读:从 .mat 到 npy
排期中
5
随机森林:传统基线的取舍
排期中
6
一维卷积与残差模块:83% 到 95% 的原理拆解
排期中
7
训练与评估:复现全部实验结果
排期中
8
可视化界面:PyQt5 搭建诊断工具
排期中
9
从代码到毕设:论文框架与答辩话术
排期中