基于融合CNN(2D-CNN与1D-CNN融合)与SVM的滚动轴承故障诊断

        本文将2D-CNN与1D-CNN融合,同时对轴承数据集进行训练,然后在汇聚层将两者池化层的输出连接成一个向量,送进全连接层。模型训练结束之后,取FC层的输出作为提取到的故障特征信号。

        融合CNN的结构图如图所示:

1,数据准备

        采用凯斯西储轴承数据集,OHP下48k采样频率驱动端的数据,对于10类故障(1正常,9故障),分别采集200组样本,共2000组,采样点为1024。然后按7:2:1划分训练集、验证集与测试集。故障类型对应如下:

0HP/48k_Drive_End_B007_0_122.mat 为第 0 类
0HP/48k_Drive_End_B014_0_189.mat 为第 1 类
0HP/48k_Drive_End_B021_0_226.mat 为第 2 类
0HP/48k_Drive_End_IR007_0_109.mat 为第 3 类
0HP/48k_Drive_End_IR014_0_174.mat 为第 4 类
0HP/48k_Drive_End_IR021_0_213.mat 为第 5 类
0HP/48k_Drive_End_OR007@6_0_135.mat 为第 6 类
0HP/48k_Drive_End_OR014@6_0_201.mat 为第 7 类
0HP/48k_Drive_End_OR021@6_0_238.mat 为第 8 类
0HP/normal_0_97.mat 为第 9 类

2、模型训练-特征提取

        在tensorflow1.x框架中搭建上图所示模型,在1D-CNN中直接将1维振动信号作为输入,整个过程中采用1d卷积进行卷积计算,池化层采用最大池化,填充均为'SAME'。在2D-CNN中,先将1维振动信号转换为32*32(这也是上面为什么要取样1024,正好转为32*32)的矩阵作为输入,整个过程中采用2d卷积进行卷积计算,池化层采用最大池化,填充均为'SAME'。学习率0.001,adam优化器,迭代次数100,batchsize为64,训练时的dropout为0.5,测试时为1.0。loss曲线如下:

      训练结束之后,分别输入训练集、验证集、与测试集。采集FC层的输出作为最终的提取到的特征。

3,特征可视化

将提取的特征进行二维可视化,从图像上可以看出,经CNN学习之后,不同类数据的类间区分度明显增加

4、故障诊断

      1、直接采用softmax进行分类:

        训练集分类精度为: 100.0 %
        验证集分类精度为: 97.49373197555542 %
        测试集分类精度为: 98.50746393203735 %

       2、采用SVM进行分类,本文采用SVM对2中采集到的特征进行最后的分类,核函数RBF,惩罚参数100,核参数0.01。

训练集分类精度为: 100.0 %
验证集分类精度为: 98.99749373433583 %
测试集分类精度为: 99.00497512437812 %
测试集中,第 0 类样本的精确率: 1.0  召回率为: 0.8947368421052632  F1分数为: 0.9444444444444444
测试集中,第 1 类样本的精确率: 0.8947368421052632  召回率为: 1.0  F1分数为: 0.9444444444444444
测试集中,第 2 类样本的精确率: 1.0  召回率为: 1.0  F1分数为: 1.0
测试集中,第 3 类样本的精确率: 1.0  召回率为: 1.0  F1分数为: 1.0
测试集中,第 4 类样本的精确率: 1.0  召回率为: 1.0  F1分数为: 1.0
测试集中,第 5 类样本的精确率: 1.0  召回率为: 1.0  F1分数为: 1.0
测试集中,第 6 类样本的精确率: 1.0  召回率为: 1.0  F1分数为: 1.0
测试集中,第 7 类样本的精确率: 1.0  召回率为: 1.0  F1分数为: 1.0
测试集中,第 8 类样本的精确率: 1.0  召回率为: 1.0  F1分数为: 1.0
测试集中,第 9 类样本的精确率: 1.0  召回率为: 1.0  F1分数为: 1.0

4、对比实验

       特征提取对比,分别采用1d-cnn、2d-cnn与融合CNN进行特征提取。模型更改极其方便。

       当然融合cnn++svm最好啦。就算其他方法效果好,也要调低【手动滑稽】

代码见评论区我的评论

  • 31
    点赞
  • 331
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 41
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 41
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机器鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值