基于融合CNN(2D-CNN与1D-CNN融合)与PSO-SVM的滚动轴承故障诊断
本文将2D-CNN与1D-CNN融合,同时对轴承数据集进行训练,然后在汇聚层将两者池化层的输出连接成一个向量,送进全连接层。模型训练结束之后,取FC层的输出作为提取到的故障特征信号。数据来源,西储大学滚动轴承故障诊断数据集。
融合CNN的结构图如图所示:
1,数据准备
对于10类故障(1正常,9故障),分别采集100组样本,共1000组,采样点为1024。然后按7:2:1划分训练集、验证集与测试集。
2、模型训练-特征提取
在tensorflow中训练上图所示模型,在1D-CNN中直接将1维振动信号作为输入,整个过程中采用1d卷积进行卷积计算,池化层采用最大池化,填充均为'SAME'。在2D-CNN中,先将1维振动信号转换为32*32的矩阵作为输入,整个过程中采用2d卷积进行卷积计算,池化层采用最大池化,填充均为'SAME'。初始学习率0.1,采用递减学习率,adam优化器,迭代次数4000,batchsize为16,训练时的dropout为0.5,测试时为1.0。loss曲线如下:
训练结束之后,分别输入训练集、验证集、与测试集。采集FC层的输出作为最终的提取到的特征,因此训练集特征700*512,验证集特征200*512,测试集特征100*512
3、故障诊断
本文采用SVM对2中采集到的特征进行最后的分类,核函数RBF。由于SVM受参数的影响,因此采用PSO对核参数与惩罚参数进行寻优,以验证集的分类正确率作为适宜度函数,最终训练集准确率98.14%,验证集99%,测试集98%。结果如图:
从适应度曲线上看,pso-svm在20次迭代的时候就收敛了,此时验证集的精度为99%。得到最优惩罚系数14.7675043,最优核参数7.46431354*10^-4。
从混淆矩阵上看,只有第3类分类错误,其中有两个样本分错,一个被分为第0类 ,一个被分为第1类。
4、对比实验
特征提取对比,分别采用1d-cnn、2d-cnn与融合CNN进行特征提取。模型更改极其方便。
故障分类对比,分别采用pso-svm,svm,tree进行分类。最终结果为
当然融合cnn+pso+svm最好啦,要是其他组合更好,那玩儿鸡毛!