来一个创新模型,先见先得!基于多尺度1DCNN-Mamba2的轴承故障诊断,python代码
项目简介
本期推文提出了一种基于多尺度一维卷积神经网络(Multi-Scale 1DCNN) 与 Mamba2状态空间模型(SSD) 相结合的轴承故障智能诊断方法。通过对振动信号进行FFT频谱变换,利用多尺度卷积捕获不同频带的故障特征,再由Mamba2建模频谱序列中的长程依赖关系,实现对多种轴承故障类型的高精度自动识别。
本期推文结合了两种案例数据,分别是西储大学轴承数据和江南大学轴承数据,代码中可以自由切换数据。
模型架构
整体模型采用串行结构设计,多尺度CNN内部为并行多分支提取:

FFT频谱输入 (1×1024)
│
▼
┌────────────────────────────┐
│ 多尺度1DCNN Block ×2 │
│ ┌─────┬─────┬─────┐ │
│ │ k=3 │ k=5 │ k=7 │ │
│ │细粒度│中粒度│粗粒度│ │
│ └──┬──┴──┬──┴──┬──┘ │
│ └─────┼─────┘ │
│ Concat + 1×1卷积融合 │
└────────────┬───────────────┘
▼
┌────────────────────────────┐
│ 自适应平均池化 (→64步) │
└────────────┬───────────────┘
▼
┌────────────────────────────┐
│ Mamba2 (SSD) Block ×2 │
│ 分块并行状态空间建模 │
└────────────┬───────────────┘
▼
┌────────────────────────────┐
│ 全局平均池化 → 全连接分类 │
└────────────────────────────┘
核心创新点在哪里?
-
①多尺度并行卷积:3个不同尺寸的卷积核(3/5/7)并行提取细粒度、中粒度、粗粒度频谱特征,通过1×1卷积实现通道融合
-
②Mamba2 (SSD) 加速机制:采用State Space Duality框架,将传统逐步递推转化为分块矩阵运算,序列长度64在chunk_size=8下仅需8次跨块递推,训练速度相比Mamba1提升数十倍。所以Mamba2是一种参数效率极高的序列模型,与多尺度CNN结合后,整体参数量可控,不易过拟合。
-
③在变负载、噪声干扰等场景下,多尺度特征本身具备良好的抗扰能力,而Mamba2的全局状态更新机制又提供了额外的时序平滑与动态调整能力,两者强强联合,使模型泛化能力更强。
本期代码纯PyTorch实现:Windows/Linux/Mac全平台可运行
数据集
代码集合了两个经典的轴承故障诊断公开数据集,可通过命令行参数一键切换。另外你也可以添加自己的数据集,数据添加非常方便。
凯斯西储大学(CWRU)轴承数据集
-
10类故障状态:正常、内圈故障(0.007/0.014/0.021英寸)、滚动体故障(0.007/0.014/0.021英寸)、外圈故障(0.007/0.014/0.021英寸)
-
采样率12kHz,转速1797rpm
-
每类300个样本,共3000个样本
江南大学(JNU)轴承数据集
-
4类故障状态:正常、内圈故障、外圈故障、滚动体故障
-
转速1000rpm
-
每类300个样本,共1200个样本
数据处理流程

-
每个样本包含2048个采样点
-
FFT变换后取前1024个正频率分量的幅值作为输入特征
-
对每个样本进行最大值归一化
训练配置

诊断结果
将数据按照训练集:验证集:测试集=6:2:2 来划分。结果如下:
CWRU数据集(10分类)

JNU数据集(4分类)

可视化输出
项目自动生成以下7张可视化结果图:
1.混淆矩阵 —— 展示各类别的分类正确数与误判情况,同时提供归一化百分比视图
西储大学诊断结果:

江南大学诊断结果:

2.训练曲线 —— 训练/验证损失曲线、训练/验证准确率曲线、学习率衰减曲线
西储大学数据:

江南大学数据:

3.ROC曲线 —— 每个类别的ROC曲线及AUC值(One-vs-Rest策略)

4.t-SNE特征可视化 —— 对模型倒数第二层特征进行t-SNE降维,观察类别聚类效果

5.FFT频谱样例图 —— 每个故障类别的FFT频谱示例,直观展示不同故障的频率特征差异


6.各类别指标柱状图 —— Precision/Recall/F1三项指标的逐类别对比
西储大学数据:

江南大学数据:

项目文件结构
MultiScale-1DCNN-Mamba2-Bearing-Diagnosis/
├── main.py # 主入口,支持命令行参数
├── config.py # 全局配置(数据路径、模型参数、训练参数)
├── data_loader.py # 数据加载、滑动窗口、FFT变换、数据集划分
├── model.py # 多尺度1DCNN-Mamba2模型定义
├── train.py # 训练循环、早停、模型保存
├── evaluate.py # 评估指标计算与7种可视化图生成
├── utils.py # 工具函数(随机种子、设备检测等)
├── requirements.txt # 依赖列表
└── results/ # 输出目录
├── CWRU/ # CWRU数据集结果
└── JNU/ # JNU数据集结果
环境依赖
-
Python 3.9+
-
PyTorch 2.0+(支持CUDA加速)
-
NumPy、SciPy、scikit-learn、matplotlib、seaborn、h5py、tqdm
代码获取
https://mbd.pub/o/bread/YZaTk51qag==
点击下方阅读原文也可跳转。
更多推荐

所有评论(0)