机器学习(深度学习)故障诊断分类(提供故障数据和python代码实现)
轴承故障数据集和python代码自取:https://mbd.pub/o/bread/ZZWTm5hw
摘要:机器学习广泛的应用于机械故障诊断和故障分类问题,本研究利用机器学习的卷积神经网络对滚动轴承内圈损坏尺寸的分类,利用凯斯西储实验室提供的数据,整理出滚动轴承内圈损坏尺寸分别为0.14cm和0.21cm的数据集,通过机器学习实现对两个损坏尺寸的分类训练模型,通过数据测试模型的有效性。
关键词: 机器学习;神经网络;机械故障诊断;训练模型;数据集
机器学习(Machine Learning)是一种人工智能领域的技术和方法,机器学习的基本思想是利用数据来构建一个模型,该模型可以从数据中学习并进行预测[1]。为了实现这一目标,机器学习使用了大量的训练数据集,其中包含输入数据和对应的输出结果或标签。通过对这些数据进行分析和学习,机器学习算法可以自动发现数据中的模式和关联性,并从中构建出一个能够对新的输入数据进行预测的模型[2]。
1 基本理论介绍
1.1 卷积神经网络
卷积神经网络(Convolutional Neural Networks)是神经网络的一种,卷积神经网络通常由卷积层、池化层和全连接层组成[3],典型的CNN模型如图1所示。输入层一般是某一尺寸的二维数据,通常是三通道的彩色图像或单通道的灰度图像; 卷积层和池化层是 CNN 的核心层,卷积层通过一系列的卷积核对输入层的图像进行卷积从而获得相应数量的特征图,即特征提取[4][5]。池化层对卷积层得到的特征图进行最大值池化或平均值池化等操作,从而大幅减少卷积层的空间维度,降低计算成本,控制过拟合; 经过若干次的卷积和池化层,紧接着将池化操作后的数据展开并输入到全连接层,全连接层连接一个隐藏层,最后由 softmax 函数将数据映射到输出层[6][7]。
图1 典型的卷积神经网络结构图
1.2 轴承故障机理
轴承是工业设备中常见的关键组件,用于支撑和转动机械部件。轴承故障是工业运行中常见的问题之一,轴承通常由外圈、内圈滚动体和保持架组成[8][9]。结构如图2所示。
图2 轴承结构图
了解轴承故障的机理对于预防和维护至关重要。下面是一些常见的轴承故障机理:(1)疲劳故障:疲劳是最常见的轴承故障机理之一。在长时间的运转过程中,轴承承受着来自负载和振动的应力,这可能导致材料的疲劳损伤。疲劳故障通常表现为裂纹、剥落和断裂等。(2)磨损:磨损是轴承故障的常见原因之一。磨损可能由于轴承内部零件之间的摩擦、颗粒污染或润滑不足等引起。磨损故障可能导致轴承内部间隙的增加,降低了其性能和寿命。(3)过热:过热是轴承故障的常见指标之一。过高的温度可能是由于摩擦、润滑不足、轴承损伤或环境条件等因素引起的。过热会导致轴承润滑剂的失效,损害轴承表面,并加速磨损和疲劳。(4)锈蚀和腐蚀:环境中的湿度和腐蚀性物质可能导致轴承的锈蚀和腐蚀。这会破坏轴承表面的润滑膜,加速磨损和损坏。(5)轴承安装不当:轴承安装不当也可能导致故障。例如,不正确的安装力、轴向间隙不合适或使用不当的工具等都可能对轴承的性能和寿命产生负面影响[10]。
本研究的是轴承内圈的裂纹故障,根据凯斯西储实验室公开的数据,损伤尺寸数据集为0.14cm和0.21cm两类,本文整理这两类故障作为神经网络训练数据集,训练出的模型能够将测试数据分类为0.14cm和0.21cm的损伤尺寸故障。
2 代码实现
代码实现流程如图3所示。
图3 代码实现流程图
从"故障数据集.csv"文件中读取轴承故障数据集,该数据集包含轴承故障样本和对应的内圈损伤尺寸标签。将特征数据存储在X中,使用np.expand_dims将数据维度转换为(样本数, 特征数, 1),以适应一维卷积神经网络的输入要求。对标签数据进行数字编码,使用LabelEncoder将标签转换为数字形式,并使用np_utils.to_categorical将数字编码的标签转换为二进制矩阵形式。
使用train_test_split将数据集划分为训练集和测试集,其中70%的数据用于训练,30%的数据用于测试。
定义一维卷积神经网络模型,使用Sequential模型初始化一个线性堆叠模型。添加一维卷积层Convolution1D,设置卷积核数量、卷积核大小、步长和输入形状。添加激活函数层Activation,使用’tanh’作为激活函数。添加池化层MaxPooling1D,设置池化窗口大小和步长。添加批归一化层BatchNormalization,进行数据归一化处理。添加Flatten层,将多维输入展平为一维。添加Dropout层,进行随机失活以避免过拟合。添加全连接层Dense,设置神经元数量和激活函数。添加输出层Dense,设置输出类别数量和激活函数。使用compile方法配置模型的损失函数、优化器和评估指标。
在训练和评估模型中,使用KerasClassifier包装模型,以便在Scikit-learn中进行交叉验证。使用fit方法训练模型,指定训练集和相关参数。通过绘制曲线可视化模型的损失和准确率,如图4所示。程序实现了对卷积层输出的可视化,其中使用keras.backend.function获取指定层的输出,然后绘制特征图。绘制了混淆矩阵的可视化图,如图5所示,使用confusion_matrix计算混淆矩阵,并使用plot_confusion_matrix函数绘制图像。
最后收集测试数据集,将保存和加载的模型预测该测试集,预测部分结果如图6所示,标签为0表示轴承内圈损伤尺寸为0.14cm, 标签为1表示轴承内圈损伤尺寸为0.21cm
图4 损失和准确率图
图5 混淆矩阵图
在模型保存和加载中,将模型保存为JSON格式,使用model.to_json将模型结构保存到文件。保存模型权重,使用model.save_weights将模型权重保存到文件。加载模型时,使用model_from_json加载模型结构,然后使用load_weights加载模型权重。对加载的模型进行编译和评估,计算分类准确率。
图6 测试集预测结果
3 结束语
本文实现了一个基于机器学习的滚动轴承内圈损坏尺寸的二分类模型。研究使用了由凯斯西储实验室提供的滚动轴承内圈损坏尺寸为0.14cm和0.21cm的样本数据,通过训练神经网络模型,实现对两种损坏尺寸的分类训练模型,通过测试数据测试模型的有效性。
参考文献
[1] 基于多通道一维卷积神经网络特征学习的齿轮箱故障诊断方法[J]. 叶壮;余建波.振动与冲击,2020(20)
[2] Parity recognition of blade number and manoeuvre intention classification algorithm of rotor target based on micro-Doppler features using CNN[J]. WANG Wantian;TANG Ziyue;CHEN Yichang;SUN Yongjian.Journal of Systems Engineering and Electronics,2020(05)
[3] 自适应卷积神经网络在旋转机械故障诊断中的应用[J]. 李涛;段礼祥;张东宁;赵赏鑫;黄辉;毕彩霞;袁壮.振动与冲击,2020(16)
[4] 滚动轴承多状态特征信息的改进型卷积神经网络故障诊断方法[J]. 周陈林;董绍江;李玲;汤宝平;贺坤;穆书锋;张潇汀.振动工程学报,2020(04)
[5] 基于优化变分模态分解和卷积神经网络的齿轮故障诊断[J]. 杨同光;于晓光.组合机床与自动化加工技术,2020(07)
[6] 采用HHT算法与卷积神经网络诊断轴承复合故障[J]. 施杰;伍星;刘韬.农业工程学报,2020(04)
[7] 卷积神经网络多变量过程特征学习与故障诊断[J]. 陈淑梅;余建波.哈尔滨工业大学学报,2020(07)
[8] 深度学习在旋转机械设备故障诊断中的应用研究综述[J]. 吴春志;冯辅周;吴守军;陈汤;王杰.噪声与振动控制,2019(05)
[9] 基于改进3D卷积神经网络的行为识别[J]. 张小俊;李辰政;孙凌宇;张明路.计算机集成制造系统,2019(08)
[10] 无标签数据下基于特征知识迁移的机械设备智能故障诊断[J]. 郭亮;董勋;高宏力;李长根.仪器仪表学报,2019(08)