本期带来在故障诊断领域用的比较多的、且效果比较好的一个故障诊断模型---多尺度卷积神经网络MCNN(multi-scale convolutional neural network)
为了方便大家的学习,本期整理了MCNN相关的不同组合网络:
一次性获取上述模型,获取方式移步文章末尾。
MCNN: 多尺度卷积神经网络是CNN的变体, 拥有比CNN更加强大的特征提取能力。MCNN使用不同尺寸的卷积核对特征进行提取,这样做的好处是, 不同尺寸卷积核具有不同大小的感受野, 从而可以提取到低频率以及高频率的特征, 将这些特征叠加起来,以形成多尺度特征。使用多尺度的特征进行模型训练时, 结果往往要优于单一卷积神经网络。
本期搭建的网络结构如下,以MCNN-LSTM为例:
MATLAB中可以直接看到每层的网络单元的具体参数:
本期模型诊断思路如下:
①对官方下载的西储大学数据进行处理,划分10种故障类型;
②对第一步处理得到的数据,采用同步压缩小波变换(SWT)的方法进行特征提取,换将一维振动信号转换为二维图像。SWT具有多尺度分析的能力,可以在不同尺度上对信号进行分析,提供更全面的频率信息。
③采用第二步得到的二维图像进行裁剪压缩,送入MCNN网络以及它的组合网络进行训练与测试。
本期提供代码模型的几个优点:
采用了同步压缩感知方法将一维图转换为二维图,增强了故障特征;
选用了“交叉熵”损失函数作为网络训练的依据;
划分了训练集、验证集、测试集,在网络训练的时候采用验证集不断降低损失,从而不会影响模型的泛化能力;
采用了T-SNE降维方法,可视化神经网络识别前后的效果;
组合了几个常用的和新颖的网络:MCNN-BiGRU、MCNN-BiGRU-Attention、MCNN-BiLSTM、MCNN-GRU、MCNN -KELM、MCNN-LSTM、MCNN-SVM。
<
内容详解
一、数据处理
对官方下载的西储大学数据进行处理,步骤如下:
一共加载10种数据,然后取每个数据的DE_time(%DE是驱动端数据 FE是风扇端数据 BA是加速度数据 选择其中一个就行)
设置滑动窗口w,每个数据的故障样本点个数s,每个故障类型的样本量m
将所有的数据滑窗完毕之后,综合到一个data变量中
有关西储大学数据的处理之前有文章也讲过,大家可以看这篇文章:西储大学轴承诊断数据处理,matlab免费代码获取
最后得到的数据是一个2000*1024的矩阵,其中2000是样本量,1024是特征。2000又等于200*10,10是指10种故障状态,200是指每种状态有200个样本。在代码中是data_total_1797.mat
二、SWT特征提取
SWT变换结果:
三,结果展示
本期模型数据中,一共取了10种状态的数据,每种状态数据有200个样本。训练集:验证集:测试集比例为(12:3:5),你也可以任意更改比例。
结果展示
首先是MCNN网络:
MCNN-BiGRU网络:
MCNN-KELM网络:
MCNN-SVM网络:
剩下几个就不一一展示啦,效果都是很不错滴!
代码目录:
MATLAB版本要求:2023及其以上。
参考文献:
[1]龚俊,张月义,陈思戢,等 .基于 SWT与改进卷积神经网络的轴承故障诊断[J].现代电子技术,2024,47(6):68‐74
[2]陈悦然,牟莉.基于MCNN-BiGRU-Attention的轴承故障诊断.计算机系统应用,2023,32(9):125-131
[3]胡梦婷, 罗晨. 基于MCNN-LSTM和交叉熵损失函数的轴承故障诊断[J]. 制造技术与机床, 2024, (9): 16-22.
代码获取
链接:https://mbd.pub/o/bread/mbd-Z5eTmZ5q
或者点击下方阅读原文获取。
已将此代码添加至故障诊断全家桶中
已购买故障诊断全家桶的小伙伴,可以直接跳转以下链接下载哦!
故障诊断全家桶获取链接:
一次购买永久更新!目前已经包含数十种方法了!
故障诊断方向必看!精心整理!
https://mbd.pub/o/bread/ZJ2Ym5ts
获取更多代码:
或者复制链接跳转:
https://docs.qq.com/sheet/DU3NjYkF5TWdFUnpu