手把手教你:基于深度学习的滚动轴承故障诊断(2026 修订版)

本文是《滚动轴承故障诊断》系列的第 1 篇(总览)。 系列完整目录见文末【专栏导航】。本文配套代码与分步操作手册见公众号「免费代码合集」菜单。

一、项目简介

本文介绍如何使用 Python 搭建一个基于深度学习的滚动轴承故障诊断系统。

系统对轴承的 4 种状态做自动分类:

  • 正常
  • 内圈故障
  • 滚动体故障
  • 外圈故障

项目中使用了三种方法对比检测结果,这也是毕设论文中最需要的一组"对比实验":

方法 类型 测试集准确率
随机森林 传统机器学习 约 73%
1D-CNN 深度学习 约 83%
CNN + 残差模块(ResNet) 深度学习(推荐) 95%+

三个模型用同一份数据、同一套切分方式训练,结论可直接写进论文实验章节。

如需更换自己的训练数据,只需要把数据文件按目录放好,所有代码无需改动即可直接运行。

二、数据介绍

本项目使用凯斯西储大学(Case Western Reserve University,CWRU)轴承数据中心的开源公开数据集——这也是全世界故障诊断研究最常用的入门数据集,引用进论文无版权风险。

数据为 Matlab 格式(.mat),每个文件包含风扇端和驱动端振动数据以及电机转速。文件中的变量名含义:

  • DE —— 驱动端加速度计数据
  • FE —— 风扇端加速度计数据
  • BA —— 基础加速度计数据
  • RPM —— 测试期间的转速

对四类状态各取一个文件绘制波形,可以直观看到:不同故障之间、故障与正常之间,数据分布都存在明显差异——这正是"可以用分类模型来做诊断"的物理依据。

三、数据预处理

原始信号是"一整条很长的时间序列",而分类模型需要的是"一条条样本"。预处理做三件事:

  1. 归一化:把 DE、FE 两路信号的幅值都压到 0~1,消除不同转速、负载带来的幅值差异;
  2. 构造双通道:把驱动端(DE)和风扇端(FE)信号配成对,每条样本形状为 1000 点 × 2 通道——双通道信息互补,比单通道更稳;
  3. 滑窗切分 + 类别均衡:每 1000 个点切出一条样本,每类采样固定数量,最终得到:
类别 样本数
正常 1400
内圈故障 1400
滚动体故障 1400
外圈故障 1400
合计 5600

处理后的数据保存为 train_data.npy(5600, 1000, 2)和 label.npy(5600,),后续三个模型都从这两个文件读取——预处理一次,三模型通用。

四、模型设计与对比结果

4.1 随机森林(传统基线)

把每条 1000×2 的样本"拍平"成 2000 维特征向量,直接喂给随机森林(50 棵树,深度 5)。 它不需要训练轮次、跑得最快,作为论文里的"传统方法对照组"非常合适。

4.2 1D-CNN(深度学习基线)

一维卷积神经网络:卷积核沿时间轴滑动,自动从波形中提取局部模式(比如故障冲击的形状),替代人工特征工程。

结构很简洁:Conv1D(64) → MaxPooling → 全局平均池化 → Dense(32) → Dropout → softmax(4)。

实测准确率约 83%,且"内圈故障"一类的召回率明显偏低——误分集中发生在内圈与滚动体之间。这个"缺陷"恰好是第 6 篇文章的主角:它证明了简单浅层网络的特征提取能力不够。

4.3 CNN + 残差模块(ResNet,推荐模型)

在 CNN 基础上加入 5 个残差块(ResBlock)。每个残差块内部的连接方式是:

输出 = F(x) + x      # F 是两层卷积,x 是块的输入(捷径直接跳过来)

这条"捷径"让损失梯度可以无损地传回浅层,深层网络因此训得动、不退化——这是 ResNet 论文(He et al., 2015)的核心思想,也是本项目准确率从 83% 提升到 95%+ 的关键。

4.4 三模型对比总结

模型 准确率 论文话术
随机森林 ~73% 传统人工特征路线的上限
1D-CNN 83% 浅层网络对内圈/滚动体故障区分不足
CNN+ResNet 95%+ 残差连接增强深层特征表达,四类召回均衡

三个模型各自的完整分类报告(precision / recall / f1)和混淆矩阵图,运行配套评估脚本可一键生成,直接贴论文。

五、配套代码与资源

本系列文章走"文章讲思路、资源包管操作"的路线,内容互不重复:

  • 每一步的安装命令、运行步骤、常见报错解决:见公众号菜单「免费代码合集」(按章节拆好:环境部署 / 数据下载 / 预处理 / 三模型训练 / 评估出图 / 可视化界面 / 论文模板);
  • 完整代码合集(含 CWRU 数据、已训练模型、TensorBoard 日志、全部结果截图):CSDN 下载频道付费资源,已购本专栏的同学在微信公众号免费领取完整代码;
  • 本专栏后续 8 篇文章将逐模块逐行讲透:环境部署 → 数据集深度解析 → 预处理源码走读 → 随机森林 → CNN 与残差原理 → 训练与评估 → 可视化界面 → 论文与答辩。

六、专栏导航

篇次 主题 状态
1 项目总览与三模型对比(本文) ✅
2 环境部署:Anaconda + TensorFlow 2.x 全流程 编写中
3 CWRU 数据集深度解析与波形可视化 排期中
4 数据预处理源码走读:从 .mat 到 npy 排期中
5 随机森林:传统基线的取舍 排期中
6 一维卷积与残差模块:83% 到 95% 的原理拆解 排期中
7 训练与评估:复现全部实验结果 排期中
8 可视化界面:PyQt5 搭建诊断工具 排期中
9 从代码到毕设:论文框架与答辩话术 排期中

下一篇预告:《环境部署:从零搭好能跑深度学习的 Python 环境(CPU 版)》,零基础 30 分钟完成,含常见安装报错速查。


版权说明:CWRU 数据集版权归凯斯西储大学所有,仅限学习研究使用;本文代码与文字为本人原创,付费专栏读者可学习使用,禁止转售。