往期精彩内容:
Python轴承故障诊断 (14)高创新故障识别模型-CSDN博客
独家原创 | SCI 1区 高创新轴承故障诊断模型!-CSDN博客
基于 GADF+Swin-CNN-GAM 的高创新轴承故障诊断模型-CSDN博客
视觉顶会论文 | 基于Swin Transformer的轴承故障诊断-CSDN博客
Python轴承故障诊断 | 多尺度特征交叉注意力融合模型-CSDN博客
SHAP 模型可视化 + 参数搜索策略在轴承故障诊断中的应用-CSDN博客
位置编码祛魅 | 详解Transformer中位置编码Positional Encoding-CSDN博客
多模态-故障诊断 | 大核卷积开启视觉新纪元!-CSDN博客
超强!一区直接写!基于SSA+Informer-SENet故障诊断模型-CSDN博客
图卷积故障诊断,新增GAT、SGCN、GIN分类模型-CSDN博客
故障诊断一区直接写,图卷积+BiGRU-Attention 并行诊断模型-CSDN博客
故障诊断高创新!基于1D-GRU+2D-MTF-ResNet-CBAM的多模态融合分类模型_基于1dcnn-informer+matt融合的故障诊断模型-CSDN博客
轴承寿命预测全家桶更新!新增西交XJTU-SY数据集+预测模型合集_hxd3b 型电力机车轴承寿命预测实例中,一张该模型预测结果-CSDN博客
故障诊断 SCI 1 区直接写!基于GADF+SwinTransformer-CBAM+GRU的多模态融合分类模型-CSDN博客
创新首发!齿轮箱故障诊断:基于MTF+Swin-Informer的多模态创新模型
基于多尺度卷积神经网络(MSCNN-1D)的轴承信号故障诊断模型
创新首发!基于CNN-BiLSTM-KAN模型的滚动轴承剩余使用寿命预测
高效对抗噪声!基于深度残差收缩网络(DRSN)的轴承故障诊断模型
高创新!基于FFT+WDCNN-Transformer时频域融合的轴承故障诊断模型
创新首发!从"样本极少"到"可用增强":基于 CWT + Conditional DCGAN 的故障诊断模型
前言
在滚动轴承故障诊断研究中,传统深度学习方法大多将一维振动信号直接输入 CNN、LSTM 或 Transformer 等模型中进行分类。这类方法虽然实现简单,但往往只关注信号的局部波形变化或序列依赖关系,对于样本之间的关联结构挖掘不足。本期复现的是一类更具图学习特色的故障诊断方法:基于图卷积神经网络(Graph Convolutional Network, GCN)的滚动轴承故障诊断模型。

该方法不是简单地把每条信号作为独立样本输入网络,而是先将原始振动信号转换为频域特征 ,再将多个频域样本组织为图结构,通过 GCN 挖掘样本节点之间的关联关系,最终完成故障类别识别。(效果显著,可供学习参考!)

● 数据集:CWRU西储大学轴承数据集
● 环境框架:python 3.11 pytorch 2.1 及其以上版本均可运行
● 准确率:测试集100%
● 使用对象:初学者、论文需求、毕业设计需求者
● 代码保证:代码注释详细、即拿即可跑通。
****注意:****本代码产品围绕论文方法进行了完整复现与工程化整理,包含数据预处理、FFT频域特征提取、图结构构建、GCN模型定义、训练测试流程、结果输出与关键复现细节说明,适合用于毕业设计、论文复现、课程项目和故障诊断入门研究。
1 模型简介
本代码复现的 GCN 模型主要由四个部分组成。
1.1 FFT 频域特征提取
原始振动信号通常具有强噪声、非平稳和冲击性特点。直接使用时域信号训练模型,可能难以充分体现故障频率和频带能量分布。因此,代码首先对每段振动样本进行 FFT 变换,将时域信号转换为频域特征。对于长度为 1024 的时域信号:
x = x1, x2, ..., x1024
经过 FFT 后得到 1024 维频域幅值谱,作为图节点的输入特征。

1.2 图节点构造
在本复现方案中:
-
一个频域样本 = 一个图节点
-
节点特征 = FFT频谱向量
-
节点标签 = 故障类别标签
也就是说,模型不是把一条信号直接输入分类器,而是将多个频域样本组织成图结构,让 GCN 在图中进行特征传播。
1.3 全连接图构建
论文方法采用全连接图结构。每个图中包含多个节点,节点之间两两相连。这样做的目的是让同一图中的节点可以充分交换特征信息,使模型能够学习样本之间的关联模式。
图结构可以表示为:
Node 1 ↔ Node 2
Node 1 ↔ Node 3
...
Node i ↔ Node j
边权默认采用 0-1 权重,即存在连接则边权为 1。

1.4 GCN 分类模型
模型主体采用两层图卷积层进行特征提取,然后接入两层全连接层完成分类,其参数如下:

2 轴承数据加载与预处理
2.1 导入数据
参考之前的文章,进行故障10分类的预处理,凯斯西储大学轴承数据10分类数据集:

支持读取常见 CSV 格式数据:
每一行 = 1024个采样点 + 1个标签
适合已经整理好的 CWRU 十分类数据,也可以扩展到其他轴承故障数据集。
2.2 数据预处理
主要步骤如下:
(1)使用无重叠采样将原始振动信号划分为多段长度为1024的子样本;
(2)利用快速傅里叶变换将子样本振动信号转化为频域信号;
(3)将子样本频域信号作为节点,频谱作为节点特征,故障类型作为节点标签,然后将10个节点 构造为一个全连接图,即任意两个节点之间都有一条无向边连接,且边的权重采用0-1加权;
(4)将构造的全连接图数据集随机打乱后按照 6:4比例划分为训练集和测试集;
(5)搭建GCN模型,通过使用两个图卷积层提取节点特征,使用两个全连接层分类特征;
(6)使用训练集训练GCN模型,通过误差反向传播算法更GCN模型的可学习参数;
(7)训练完成后,将测试集输入到最终GCN中, 输出诊断果。

3 基于FFT-GCN的故障诊断模型
3.1 定义网络模型,设置参数,训练模型

50个epoch,准确率100%,用FFT-GCN网络分类效果显著,能够从故障信号特征中提取出对模型识别重要的特征,效果明显!
3.2 模型评估
(1)准确率、精确率、召回率、F1 Score

(2)故障10分类混淆矩阵:

(3)分类标签可视化

(4)模型训练后的 t-SNE特征可视化:

4 代码、数据整理如下:

