首页/文章/ 详情

首个专注于工业机器声音的开放数据集:MIMII 数据集介绍

17小时前浏览6
本期给大家介绍MIMII声音数据集,MIMII声音数据集提供首个专注于工业机器声音的开放数据集,支持无监督异常检测算法的开发与评估,推动自动化设备维护研究。

论文基本信息

论文题目MIMII DATASET: SOUND DATASET FOR MALFUNCTIONING INDUSTRIAL MACHINE INVESTIGATION AND INSPECTION

论文日期2019
论文链接https://arxiv.org/abs/1909.09347
数据链接https://zenodo.org/record/3384388
作者Harsh Purohit, Ryo Tanabe, Kenji Ichige, Takashi Endo, Yuki Nikaido, Kaori Suefusa, and Yohei Kawaguchi
Research and Development Group, Hitachi, Ltd. 1-280, Higashi-koigakubo, Kokubunji, Tokyo 185-8601, Japan

目录

1 摘要

2 背景介绍

3 录制环境与相关设置

4 数据集内容

5 实验

6 数据读取

1 摘要

工厂机器容易出现故障或故障,给公司带来巨大损失。因此,利用包括麦克风在内的不同传感器进行机器监控正受到越来越多的关注。在科学界,公开数据集的出现推动了声音场景和事件的检测与分类研究,但在真实的工厂环境中,针对工业机器在正常和异常运行状态下的声音数据集却不存在。在本文中,我们提供了一个新的工业机器声音数据集,称为“用于工业机器故障调查和检查的声音数据集”(MIMII数据集)。该数据集为不同类型工业机器(即阀门、泵、风机和滑轨)记录了正常声音,并为了模拟真实场景,还记录了各种异常声音(如污染、泄漏、旋转不平衡和轨道损坏等)。发布MIMII数据集的目的是帮助机器学习和信号处理社区开发自动设施维护技术。

2 背景介绍

对机器自动检查的需求日益增长,这源于对工厂设备维护质量提升的迫切需求。目前,发现机器故障部件主要依赖于现场工程师的经验,但由于检查需求的增加导致现场专家短缺。因此,迫切需要一种高效且经济的解决方案来解决这个困境  

在过去的十年里,工业物联网(Industrial IoT)和数据驱动技术已经彻底改变了制造业,并且尝试了多种方法来监测机器的状态,例如基于振动传感器的方法[1-4]、基于温度传感器的方法[5]和基于压力传感器的方法[6]。另一种方法是利用声音场景分类和事件检测技术从声音检测异常[7-13]。目前在声音场景分类和事件检测方面已经取得了显著进展,并且有许多前沿研究[14-16]。显然,众多开放基准数据集[17-20]的出现对于推动研究领域的发展至关重要。然而,据我们所知,目前还没有包含真实工厂环境中不同类型机器声音的公开数据集。在本文中,我们介绍了一个新的数据集,该数据集包含真实工厂环境中机器在正常和异常运行条件下的声音。我们收集了四种不同类型机器的声音——(i)阀门(ii)泵(iii)风机和(iv)滑轨——并且对于每种类型的机器,我们考虑了七种不同的产品型号。我们假设主要任务是在无监督学习的情况下,在10秒的声音片段中发现机器的异常状况。换言之,在训练阶段只能使用正常机器声音,而在测试阶段正确区分正常机器声音和异常机器声音。

3 录制环境与相关设置

数据集采用System In Frontier[21]公司生产的TAMAGO-03麦克风收集,它是一个包含八个麦克风的环形阵列,可评估单通道和多通道方法,其细节如图1所示。麦克风阵列距离机器50厘米(阀门案例中为10厘米),录制10秒的声音片段。数据集包含每个片段的八个通道。图2描述了每种机器的方向和距离的记录设置。在运行状态下,机器声音以16位音频信号形式在混响环境中以16kHz采样率录制。此外,还连续录制了多个真实工厂中的背景噪音,并将其与目标机器声音混合以模拟真实环境,背景噪音使用与目标机器相同的麦克风阵列录制。

图1 圆形麦克风阵列

图2 记录数据集的实验装置示意

4 数据集内容

MIMII数据集包含四种不同类型机器的声音:阀门、泵、风机和滑轨。阀门是反复开关的电磁阀;泵是排水并连续向水池注水的水泵;风机是用于在工厂中提供连续气体或空气流动的工业风机;滑轨则是由移动平台和底座组成的线性滑动系统。各种机器产生的声音具有平稳和非平稳特性,特征各异且难度不同。图3展示了所有四种类型机器声音的功率谱图,清楚地表明每种机器具有独特的声音特征。

图3 6dB信噪比下正常条件的功率谱图

表1列出了每种机器类型的声音文件列表。每种机器类型包括七台 独立的机器,它们可能是不同的产品型号。为了有效训练模型,需要包含现实复杂性的大型数据集,因此我们为所有单个机器录制了总计26,092个正常声音片段。此外,还考虑了每种机器的不同现实异常情况:污染、泄漏、旋转不平衡、轨道损坏等。各种运行状况列于表2中。每种不同类型机器的每个异常声音片段数量较少,因为我们把数据集的主要目标视为无监督学习场景,并将异常片段视为测试数据的一部分。如第2节所述,在多个真实工厂中录制了背景噪音,并将其与目标机器声音混合,以模拟真实环境。在将原始声音与噪音混合时,八个通道是分别处理的。对于某个信噪比(SNR)γ dB,通过以下步骤创建每种机器模型的噪音混合数据:

1. 计算机器模型所有片段的平均功率 a  

2. 对于机器模型的每个片段 i: 

(a) 随机选择一个背景噪音片段j,并调整其功率bj,使得    

(b) 通过将目标机器片段和功率调谐后的背景噪音片段 相加,计算得到噪音混合数据。

表1 MIMII数据集内容细节

表2 运行和异常状况列表  

 

5 实验

本节介绍了一个基准测试的示例。主要目标是在无监督学习场景中检测异常声音。一些研究已经成功地将自编码器用于无监督异常检测[12,22–24],因此在这里评估一种基于自编码器的无监督异常检测器。  

仅使用麦克风的第一个通道(图1中的"1号")。将log-Mel(对数梅尔)谱图视为输入特征。为了计算Mel频谱图,在该实验中考虑了1024的帧大小、512的跳跃大小和64个Mel滤波器。五个帧被组合起来,用以初始化输入特征向量x(320维)。编码器和解码器神经网络的参数(即θ=(θe,θd))被训练用以最小化给定的损失函数:

        

我们的基本假设是,这个训练好的模型对异常机器声音将具有较高的重构误差。实验中使用的自编码器网络结构总结如下:编码器网络(E(·))包括FC(Input, 64, ReLU);FC(64, 64, ReLU);以及FC(64, 8, ReLU),而解码器网络(D(·))包含FC(8, 64, ReLU);FC(64, 64, ReLU);以及FC(64, Outputnone),其中FC(abf)表示一个全连接层,有a个输入神经元,b个输出神经元,以及激活函数f。ReLUs是指修正线性单元[25]。该网络通过Adam[26]优化技术训练50个周期。  

对于每种机器类型和模型ID,所有片段被分为训练数据集和测试数据集。所有异常片段被视为测试数据集,随机选择相同数量的正常片段作为测试数据集的一部分,其余所有正常片段则被视为训练数据集。通过仅由正常样本组成的训练数据集,针对每种机器类型和模型ID训练了不同的自编码器。通过对每个片段在10秒内平均重构误差设定阈值来执行异常检测,并为每种机器类型和模型ID的测试数据集计算了曲线下面积(AUC)值。此外,我们还考虑了不同信噪比水平(与工厂噪声相关)例如,6dB、0dB和−6dB。  

表3列出了三次独立初始化训练的平均AUC。很明显,阀门的AUC低于其他机器。阀门的声音信号是非平稳的——特别是,它们在时间上是脉冲式的和稀疏的——并且随时间推移平均的重建误差往往很小,这使得检测阀门的异常变得困难。相比之下,风机的异常更容易检测,因为风扇的声音信号是平稳的。此外,对于某些机器型号,AUC随着噪声水平的增加而迅速下降。这些结果表明,我们需要解决非平稳性和噪声引起的性能下降问题以实现无监督的异常声音检测。

表3 运行和异常状况列表  

6 数据读取

6.1 导入包


















import osimport librosaimport seaborn as snsimport numpy as npimport matplotlibmatplotlib.use('TkAgg')import matplotlib.pyplot as pltfrom matplotlib import rcParams
config = {    "font.family"'serif'# 衬线字体    "font.size"15# 相当于小四大小    "font.serif": ['SimHei'], # 宋体    "mathtext.fontset"'stix'# matplotlib渲染数学字体时使用的字体,和Times New Roman差别不大    'axes.unicode_minus'False # 处理负号,即-号
}rcParams.update(config)
7.2 数据分析
数据储存格式为WAV文件,WAV(Waveform Audio File Format)是一种音频文件格式,广泛用于存储音频数据。它基于 RIFF(Resource Interchange File Format)文件结构,通常用于存储高质量的音频数据,支持多种音频编码格式(如 PCM、ADPCM 等)。WAV 文件的主要特点是无损压缩,因此文件体积较大,但音质较高。
数据集分为:阀门、泵、风机和滑轨四种设备类型,每类数据下有四个模型(id_00、id_02、id_04、id_06),每个模型下包含正常与异常数据。
图4 数据集结构
读取对应wav文件与采样率:
















def load_sound_file(wav_name, mono=False, channel=0):    """    加载音频文件并提取指定声道的数据。     参数:        wav_name (str): 音频文件的路径。        mono (bool): 是否将音频转换为单声道。默认为 False。        channel (int): 如果音频是多声道且 mono=False,指定要提取的声道索引。默认为 0。     返回:        signal (numpy.ndarray): 提取的音频信号数据。        sampling_rate (int): 音频的采样率。    """    channel_data, sampling_rate = librosa.load(wav_name, sr=None, mono=mono)    signal = np.array(channel_data)[channel, :]    return signal, sampling_rate

绘制正常信号与异常信号对比(以水泵信号为例):

图5 正常声音与异常声音对比(水泵)




















def plot_waveforms(normal_signal, anomaly_signal, sr, title="Signal Waveforms"):    """    绘制正常信号和异常信号的波形图。     参数:        normal_signal (array-like): 正常信号的波形数据。        anomaly_signal (array-like): 异常信号的波形数据。        sr (int): 采样率。        title (str): 图表的标题,默认为 "Signal Waveforms"。    """    sns.set_theme(style="white", font_scale=1.2)    plt.figure(figsize=(85), dpi=100)    librosa.display.waveshow(normal_signal, sr=sr, label="Normal Signal", alpha=0.8, color='blue', linewidth=1.5)    librosa.display.waveshow(anomaly_signal, sr=sr, label="Anomaly Signal", alpha=0.8, color='red', linewidth=1.5)    plt.title(title, fontsize=16, fontweight='bold')    plt.xlabel("Time (sec)", fontsize=14)    plt.ylabel("Amplitude", fontsize=14)    plt.legend(fontsize=12, loc="upper right", framealpha=0.8)    plt.grid(True, linestyle='--', alpha=0.5)    plt.show()
编辑:肖鑫鑫
校核:李正平、陈凯歌、赵栓栓、曹希铭、赵学功、白亮、任超、海洋、Tina、陈宇航、陈莹洁、王金、赵诚
该文案例资料搜集自网络,仅用作学术分享,不做商业用途,若侵权,后台联系小编进行删除


来源:故障诊断与python学习
System振动旋转机械航空UG海洋UM声学电机传动工厂渲染InVEST
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-04-16
最近编辑:17小时前
故障诊断与python学习
硕士 签名征集中
获赞 77粉丝 102文章 184课程 0
点赞
收藏
作者推荐

TIM论文 | 一种基于时频图和预训练模型的旋转机械故障诊断深度迁移学习方法

本期给大家推荐一篇使用预训练模型进行迁移学习故障诊断的论文:一种基于时频图和预训练模型的旋转机械故障诊断深度迁移学习方法。论文提出了一种基于深度迁移学习的旋转机械故障诊断方法,该方法结合了时频图和预训练模型,有效地提高了故障诊断的准确性和适应性。该方法通过时频处理获得原始时序信号的时频图,并使用预训练的残差神经网络作为特征提取网络。此外,设计了多个损失函数来最小化数据类别之间的差异和自适应迁移损失。实验结果表明,该方法不仅提高了故障预测模型的准确性,还显著减少了训练时间,并在各种工作条件下保持了强大的检测能力。论文链接:通过点击本文左下角的阅读原文进行在线阅读及下载。论文基本信息 论文题目:An Improved Deep Transfer Learning Method for Rotating Machinery Fault Diagnosis Based on Time Frequency Diagram and Pretraining Model论文期刊: IEEE Transactions on Instrumentation and Measurement论文日期:2024论文链接:https://doi.org/10.1109/TIM.2023.3345907作者:Shaoqing Liu(a), Shaoqing Liu(b),Zuchao Zhang(b),Yong Wang(b)机构:a: Institute of Energy, Hefei Comprehensive National Science Center, Hefei, China;b: Division of Control and Computer Application, Institute of Plasma Physics, and the Hefei Institutes of Physical Science, Chinese Academy of Sciences, Hefei, China.作者简介:刘少清,博士,合肥综合性国家科学中心能源研究院助理研究员。2022年毕业于中国科学技术大学计算机应用技术专业。主要从事机械设备故障诊断与深度迁移学习、目标检测等方向研究。发表SCI、EI论文五篇,授权发明专利两项,参编国家标准一项,参与国家自然科学基金、安徽省协同创新等项目。(来自科学中心官网)目录 摘要1 引言2 方法 2.1 数据预处理 2.2 网络结构 2.3 模型损失函数 2.4 模型训练与推理3 评估 3.1 公共数据集性能测试 3.2 自建数据集性能测试4 结论摘要 在不同的工作条件下,同一类型设备的故障预测模型在部署和应用中往往是无效的。针对目前基于神经网络的故障诊断模型的局限性,如深度有限、特征提取能力不足、自适应能力不足、分类效果较差等,提出了一种新的故障预测算法深度自适应残差神经网络(DARN)。该算法结合了一个预训练模型来增强其故障诊断能力。该方法通过时频处理,得到了原始时间序列信号的时频图。同时,将残差神经网络预训练模型作为特征提取的主要网络。此外,还设计了一些损失函数来最小化数据类别之间的差异和自适应迁移的损失。并对多个超参数进行了消融实验。该方法不仅提高了故障预测模型的精度,而且显著减少了训练时间。与传统的神经网络故障诊断模型相比,该方法解决了结构不稳定性和特征提取能力有限的问题。它确保了该模型在各种工作条件下都保持了强大的预测能力。最后,在一个公共轴承数据集和一个自制的轴承数据集上对该方法进行了验证。关键词:深度迁移自适应;故障诊断;预训练模型;ResNet网络;时频处理1 引言 在统计学习理论框架下的机器学习算法遵循一个基本假设,即训练数据和测试数据来自相同的分布。如果这个假设不正确,这些方法的泛化性能可能会大大降低。当发生故障时,旋转机械可能不能连续工作,这使得很难获得带有标记的故障数据[1],[2]。对于某些不常见的故障,等待故障发生再收集必要的专门故障数据可能会很耗时。同时,为了获取某些旋转机械的故障数据,往往需要建立相应的故障试验台,并对设备进行破坏性实验,以获得有价值的故障数据[3]。这些条件使得获取旋转机械故障类别的数据集变得困难和昂贵,并且很容易在实际应用中导致数据分布的差异。这反过来又导致了故障预测模型[4]的性能的显著下降。利用现有的故障数据来指导不同操作条件下的设备,使用少量的标记数据和大量的未标记数据进行模型自适应学习,仍然是实现提高故障预测性能的一个重大挑战。目前,解决这类问题的常用方法是利用迁移学习。一般来说,迁移学习是指利用现有的知识来获取新的知识。迁移学习的关键是识别现有知识[5]和新知识[5]之间的相似性。在迁移学习中,现有的知识被称为源域,而需要学习的新知识被称为目标域[6]。源域和目标域虽然不同,但也有一定的关联。为了便于知识迁移和实现数据校准,我们需要减少源域和目标域之间的分布差异[7]。Shen等[8]提出了一种基于迁移学习的轴承故障诊断方法,提出了迁移策略来提高轴承在各种操作条件下的诊断性能,采用选择性辅助数据辅助目标数据分类,并采用TrAdaBoost算法进行权重调整,以提高诊断能力。Qian等[9]提出了一种新的迁移学习方法,称为改进的联合分布自适应(IJDA),以更全面地对齐数据集的边缘分布和条件分布。同时,提出了一种基于振动信号的鲁棒故障诊断方法[9]。Wu等[10]提出了一种用于轴承故障诊断的自适应深度迁移学习方法。构建了一种基于实例迁移学习的长短期记忆循环神经网络模型,采用联合分布自适应方法减小了辅助数据集与目标域数据集之间的概率分布差异,并引入了联合分布自适应学习的关键参数[10]。Li等[11]提出了一种基于堆叠自动编码器(SAE)方法的对抗性迁移学习方法来解决目标域出现新故障的问题。利用SAE网络有效地提取可迁移特征,采用对抗性学习和梯度反转层实现模型训练和参数反向传播[11]。Qian等[12]提出了一种基于卷积自编码器(CAE-DTLN)的深度迁移网络,该网络集成了CORAL损失和域分类损失,可以在没有标签数据的情况下实现目标域的机械故障诊断。Sheng等[13]提出了一种基于CNN和SVM的燃气轮机故障诊断的迁移学习方法。通过设计一种特征映射方法,利用在正常数据集上训练的CNN内层来提取故障数据集的特征表示,并使用SVM来进行故障诊断[13]。Si等[14]提出了一种具有转矩匹配的无监督深度迁移网络(UDTN-MM),旨在实现不同工作条件下的故障诊断。采用灰度时频图像作为网络输入,采用两种自适应方法减小分布差异[14]。Shao等[15]提出了一个基于辅助分类器GAN(ACGAN)的框架,从机械传感器信号中学习和生成真实的一维原始数据。该架构由两个部分组成,一个生成器和一个鉴别器,它们都是通过叠加一维卷积层,从原始输入中学习局部特征。考虑到行星齿轮箱结构复杂、噪声干扰和故障样本数量少,Wang等[16]提出了一种新的结合了生成对抗网络(GAN)和堆叠降噪自动编码器(SDAE)的故障诊断方法来解决上述问题。上述文献在一定程度上解决了部分模型泛化的问题。然而,在准确性方面仍有改进的空间。同时,仅仅依赖深度网络并不总是最有效的方法,需要考虑特征提取的问题。考虑到旋转机械所面临的挑战,如不同的工作条件、复杂的环境和有限的故障样本,利用预训练模型可以有效地最小化所需的训练资源,提高模型的泛化能力[17]。因此,迁移学习正在逐渐被应用于旋转机械故障的诊断中。在训练过程中,迁移学习容易出现负迁移、适应不足等问题。如何有效地提取特征,提高领域类别的分类精度已成为迁移学习中的一个重大挑战。因此,本文提出了一种改进的旋转机械故障预测算法。该算法基于时频图和残差神经网络预训练模型,旨在解决模型泛化和特征提取方面的挑战。该方法通过对原始时间序列数据进行时频处理,得到了时频图。采用ResNet-50残差神经网络作为特征提取的主要网络,并采用预训练模型。设计了几种损失函数来最小化分类和迁移损失。专门添加了中心损失函数以减少类内差异,并通过实验得到了充分的验证。本文的主要贡献如下。1)采用时频处理方法对时间序列数据进行预处理,得到一个作为网络输入的时频图。然后,我们对网络结构进行了调整。2)定义了几个损失函数,并添加了一个特殊的损失函数。利用中心损失函数减小了一个域内的类内距离,提高了模型的分类精度。3)设计了充分的验证实验,并进行了参数消融实验,有效地证明了该方法的优良性能。本文的其余部分组织如下。第二节详细介绍了旋转机械故障预测算法。该算法基于时频图和使用残差神经网络的预训练模型。第三节验证所提出的方法,分布利用公共和自制数据集的数据,在各种场景下进行了测试。结论将在第四节呈现。2 方法 本节中,基于时频图和预训练模型的旋转机械故障诊断深度自适应的ResNet网络方法如图1所示。该方法通过时频处理得到原始时间序列信号的时频图。利用残差神经网络预训练模型作为特征提取的主要网络,同时增强了网络结构以满足任务要求。设计了几种损失函数来最小化数据类别之间的差异和自适应迁移的损失。其中,增加了一个特殊的中心损失函数,以减少不同领域中单类别样本之间的距离,提高分类精度。并对多个超参数进行了消融实验。该方法不仅提高了故障预测模型的精度,而且显著减少了训练时间。 图1 该方法的框架图下面介绍了所提出的方法。2.1 数据预处理在将样本输入网络之前,需要对其进行标准化和增强。研究表明,数据的标准化和归一化可以有效地提高神经网络训练的效率[20]。在这里,我们使用了目前最常用的标准化方法,即Z分数标准化,也称为标准差标准化。该方法计算原始数据的平均值和标准差,以便进行数据标准化。经过处理后,原始数据样本符合正态分布,即平均值为0,标准差为1。假设旋转机械数据集其中n为样本总数,Z分数标准化公式为 其中,µ为原始数据的平均值,计算公式为 σ是原始数据的标准差,计算公式为 考虑到噪声干扰环境下实验数据与现场数据之间的差异,在数据预处理过程中对原始数据进行了数据增强[21]。通过在原始样本中加入高斯分布的噪声,深度神经网络在数据的训练和推理过程中变得更加鲁棒,从而提高了其泛化能力。在使用Z分数将原始数据进行标准化后,进行数据增强,以获得增强的数据。 式中(0,0.1)为高斯分布得到的随机值,其均值为0,标准差为0.1[22]。传统的傅里叶变换方法不能准确地描述任意给定时间的频率成分,缺乏全面的分析能力。小波分析虽然对信号的局部特征有较精细的分析,但其复杂度较高,计算量较大。考虑到深度学习中数据量大和对信号整体特征的关注,数据预处理采用了时频分析。时频分析方法将一维时间序列信号映射到二维时频平面上,以充分捕获非平稳信号的时频组合特性[23]、[24]。EEMD方法根据原始信号的平均特征和时间尺度,将信号分解为从低频到高频的一系列IMF分量之和[25]。然后,通过希尔伯特变换,可以得到每个分解后的IMF分量的瞬时频率。通过对所有IMF分量的瞬时频谱进行积分,可以得到信号的希尔伯特时频图。2.2 网络结构本节提出的方法采用基于PyTorch框架的ResNet-50残差神经网络预训练模型作为故障预测算法的主干网络。该模型用于特征提取和模型训练。其中,ResNet-50残差神经网络由4个较大的残差块组成。每个大的残差块包含几个小的残差块,数量分别为3、4、6和3。每个小的残差块包含三个卷积层。最后一层是全连接层,尺寸为1000[18],[19],[20]。为了使ResNet-50残差神经网络适应于故障预测任务,我们对该网络的结构进行了微调。ResNet-50网络的最后一个全连接层的输出被传递到一个具有256个输出单元的线性层。将激活函数的ReLU层连接到一个Dropout层,然后连接一个大小为256×10的线性层,以获得一个具有十个输出通道的softmax层,用于多类分类预测。网络的结构如图2所示。图2 神经网络特定结构图2.3 模型损失函数为了有效地迁移由源域数据训练出来的模型,本文添加了一个迁移损失函数,以减小源域和目标域之间的分布差异。同时,针对域内不同标签样本的分类边界模糊且容易出现误分类的问题,在模型训练中加入一个中心损失函数。假设数据预处理后的源域样本集为 ,总样本为 ,数据预处理后的目标域样本集为 ,总样本为 。1)分类损失函数:对源域样本进行标记,并作为深度神经网络模型训练的监督学习。在这里,我们使用交叉熵损失函数作为模型训练中的分类损失函数。所对应的计算公式如下: 其中, 是交叉熵的计算, 是softmax分类预测操作, 是样本 的真实标签。2)迁移损失函数:为了将在源域学习到的知识应用于不同但相关的分布数据,在模型训练中加入了最大均值差异(MMD)传递损失函数。MMD的基本思想是,如果两个随机变量在任意阶上都是相同的,那么两个分布都是一致的。当两个分布不同时,应将导致它们之间的最大差异的力矩作为度量分布的标准。本质上,MMD是寻找一个变换函数,使变换后源域数据和目标域数据之间的距离最小化: 其中H表示这个距离是由 映射数据到再生希尔伯特空间(RKHS)来测量的。考虑到MMD在实际应用中的性能,我们使用多核MMD方法来计算多RBF带宽的高斯核。 3)中心损失函数:为了有效减少类别间的差异并缩短同种类样本之间的距离,从而有效解决因不同类别样本边界模糊导致的分类错误问题,所提出的方法采用了一种特殊的损失函数。中心损失函数持续计算每种样本与类别中心之间的距离。随着模型的训练,距离被迭代减少,类别内的距离也相应减少,使得相似样本之间的相似度增加。计算公式如下: 4)全损失函数:根据上述对损失函数的描述,所提出的深度迁移神经网络的总体损失函数为: 式中,α为迁移损失函数的权重,β为中心损失函数的权重。在接下来的实验验证部分中,对权值进行局部搜索,以确定最优超参数。2.4 模型训练与推理模型训练和推理过程如算法1所示。通过对源域数据集和目标域数据集的HHT时频分析,得到了时频图,并完成了对原始样本的预处理操作。然后,将预处理后的源域样本和目标域样本输入ResNet-50网络进行模型训练。每个损失函数在几轮中迭代计算,包括分类损失函数、迁移损失函数和中心损失函数。通过反向传播对网络参数进行更新,完成模型训练过程。最后,利用训练好的模型来预测目标域的标签。 3 评估 3.1 公共数据集性能测试在本章中,我们使用美国克利夫兰凯斯西储大学的轴承数据集,对该方法进行了实验测试,以验证算法的性能。试验台主要由感应电机、加速度计、试验轴承、转矩计、负载电机组成。轴承主要包括不同裂纹大小的内圈单点故障、外圈单点故障、滚动体单点故障。每种损伤类型不同,产生四种不同直径的裂纹损伤,分别为0.007、0.014、0.021和0.028英寸。每个轴承分别在0、1、2、3马力四种不同负载下进行测试,并收集驱动端和风扇端的加速度数据。风扇端数据以12000Hz的采样率采集,驱动端数据以12000和48000Hz的采样率采集[26]。在硬件配置方面,GPU服务器的操作系统是CentOS7.6。GPU服务器的中央处理器为Intel Xeon Gold 5122 @3.60GHz,图形处理器为NVIDIA Tesla V100 PCIE 32-GB RAM。为了评价该方法,我们选择了正常状态、内圈故障、外圈故障、滚动体故障等10种不同状态的测试数据。每个类别的样本数为800,每个样本包含1024个数据点。每个状态包含四种不同负载下收集的加速度数据,以及来自驱动器和风扇末端不同传感器位置的加速度数据。本节中使用的测试数据的详细信息见表Ⅰ。表Ⅰ 数据集信息1)模型性能测试:我们测试了所提出的模型在单状态数据中自适应迁移的性能。实验选择了2hp负载下的轴承状态数据,样本总数为8000个,样本标签包含10个类别。本文比较了三种类型的方法,包括未使用预训练模型、预训练模型和本文中提到的方法。给出了三种方法的预测效果,包括准确率和训练损失函数曲线。在本实验中,将模型的迭代次数设置为50次,并得到相应的精度曲线和损失函数曲线,如图3所示。可以看出,所提出的方法具有最佳的模型性能。模型迅速收敛,仅需大约十轮就能达到接近1的准确率。仅调用模型结构而不调用模型参数的方法,训练时间更长,收敛速度最慢。与所提出的方法相比,仅使用预训练模型的方法在收敛速度上仍有一定差距。图3 准确率和损失函数曲线 2)不同负载条件:为了测试该方法在不同负载下的模型自适应能力,在HP0、HP1、HP2和HP3等不同负载下的数据集进行了实验。实验采用一种负载下的数据分别对其他三种负载下的数据进行自适应迁移。为了更好地优化该方法的权值,对模型的损失函数的权值进行了最优参数搜索。如图4所示,左侧为该方法的迁移损失权重系数的比较图,右侧为该方法的中心损失权重系数的比较图。迁移损失权重系数从0到10进行测试。结果表明,当alpha = 3时,使用不同的负载下的数据进行迁移,所提出的方法模型的效果最好。当alpha = 0时,表示模型尚未迁移,在一定负载下训练的模型直接应用于其他负载下的数据。可以看出,如果不使用传递损失函数,故障预测的精度相对较低。中心损失权重系数从0到1依次进行测试。图4 不同负载下迁移损失和中心损失权重系数的对比图。 考虑到在其他值下的模型效果相对较差,因此没有展示出来。结果表明,当beta = 0.3时,该方法在不同负载下的迁移效果最好。当beta = 0时,表示该模型没有中心损失函数。该模型只有一个分类损失函数,它没有针对类内差异进行优化。可以看出,如果不使用中心损失函数,故障诊断准确率相对较低。为了观察中心损失函数对模型训练的影响,采用t-分布随机邻域嵌入(t-SNE)算法将残差神经网络训练得到的最终特征进行可视化[27]、[28],如图5所示。可以看出,最终的特征可以清楚地区分不同类型的样本。结果表明,该方法能有效地保证不同负载下故障分类的精度。其次,当该方法不使用中心损失函数时,类内距离没有减小,导致相邻类之间的边界模糊,影响分类结果。黑色虚线框标记了类的边界在图上被模糊的明显位置。图5 采用t-SNE算法进行特征可视化的比较 在添加中心损失函数进行训练后,各类别的样本都相对集中,没有出现明显的边界模糊。为了比较中心损失函数对模型的影响,本文计算了本实验中各类别的类内距离和类间距离。其中,表Ⅱ列出了本实验中所有类别的类间距离和类内距离。对角线上空值的左下角的值是使用中心损失函数后不同类之间的距离。对角线上空值的右上角的值是在不使用中心损失函数后,不同类之间的距离。可以看出,在使用中心损失函数后,类内距离大大减少,本实验中的类内距离减少了近10倍。与类内距离的变化程度相比,类间距离有一定的增大,但增大程度不明显,小于2倍。表Ⅱ 不同负载条件下类内距离和类间距离为了比较该方法和其他常用的迁移学习方法的自适应迁移性能,本文列出了几种常见的迁移学习方法,包括迁移成分分析(TCA)、联合分布自适应(JDA)、微调网络(微调)、深度领域混淆等传统迁移学习方法和深度迁移学习方法。试验结果见表Ⅲ。可以看出,前四种传统迁移方法对不同负载下的模型的自适应效果较差,而后三种深度迁移学习方法一般都优于传统的迁移方法。结果表明,在不同负载下,与主流的旋转机械故障自适应诊断模型检测方法相比,该方法将旋转机械故障诊断的准确率提高了至少6%。 表Ⅲ 不同负载下几种迁移方法的比较同时,为了验证该方法的领先性能,本文列出了凯斯西储大学轴承数据集上故障诊断迁移学习的最新研究结果进行比较。试验结果见表Ⅳ。可以看出,与最新的研究结果相比,该方法在不同负载条件下具有最佳的模型迁移性能。表Ⅳ 不同负载下近期研究成果的比较 3)不同的传感器安装位置:考虑到实际工作情况,不同的传感器安装位置会影响模型的性能。因此,我们设计了实验来验证所提出的方法。选择驱动端和风扇端振动数据集进行相互自适应迁移学习。其中,驱动端和风扇端的数据集都包含两种不同负载下的数据,每种负载状态包含十种类型的样本。为了更好地进行统计分析,我们将相似的故障归为一类,总共获得了四种类型的样本。为了更好地优化模型在不同传感器安装位置下的权重,对模型的损失函数的权重进行了最优参数搜索。如图6所示。左侧为该方法的迁移损失的权重系数比较图,右侧为该方法的中心损失的权系数比较图。可以看出,迁移损失权重系数从0到10。结果表明,当alpha = 4时,该模型在不同传感器安装位置的数据迁移中性能最好。当alpha =为0时,表示模型尚未迁移,在一定传感器位置训练的模型直接应用于不同传感器安装位置的数据。可以看出,当不使用迁移损失函数时,故障诊断的精度相对较低。中心损失权重系数依次从0到1进行测试。考虑到该模型在其他值下的效果相对较差,因此没有显示出来。结果表明,当beta = 0.7时,该模型在不同传感器安装位置的数据迁移中性能最好。当beta =为0时,表示该模型没有中心损失函数。该模型只有一个分类损失函数,并没有对类内的差异进行优化。可以看出,当不使用中心损失函数时,故障诊断精度相对较低。为了比较中心损失函数对模型的影响,本文计算了本实验中各类别的类内距离和类间距离。结果表明,使用中心损失函数后,类内距离大大减小,本实验的类内距离减少了近3倍。同时,类间损失距离增加了近3倍。 图6 不同传感器安装位置的迁移损失和中心损失权重系数的比较为了比较该方法与其他常用的迁移学习方法的自适应迁移性能,本文列出了几种传统的迁移学习方法和深度迁移学习方法。实验结果见表Ⅴ。可以看出,前四种传统的迁移方法对不同传感器安装位置下的模型的自适应效果较差,基本不可用,而后三种深度迁移学习方法一般都优于传统的迁移方法。同时,对于旋转机械的故障诊断,传感器的位置将严重影响故障诊断的准确性。结果表明,在不同的传感器安装位置下,该方法可将旋转机械故障诊断的准确率提高至少15%。表Ⅴ 不同传感器安装位置下几种迁移方法的比较同时,为了验证该方法的领先性能,列出了相同条件下凯斯西储大学轴承数据集上故障诊断迁移学习的最新研究成果并进行了比较。试验结果见表Ⅵ。可以看出,与最新的研究结果相比,该方法在不同传感器位置下的性能最好。表Ⅵ 不同传感器安装位置下近期研究成果的比较3.2 自制数据集性能测试本文利用自建轴承故障测试台的故障数据集进行了实验验证,验证了该算法的性能。实验设备如图7所示,主要由驱动电机、加速度计、测试轴承、扭矩表、负载电机组成。轴承型号为NSK UCP208。主要故障包括单点故障,如不同尺寸的内圈单点故障、外圈单点故障、保持架单点故障、滚动体单点故障。损伤的程度各不相同,包括长度为0.05和0.15厘米的不同长度的裂纹。每个轴承都在0、20和30N·m的负载下进行了测试。收集正上、近、远处轴承的加速度数据。加速度传感器的数据以10 000 Hz的采样率采集。为了评估该方法,我们选择了9个不同状态的数据集,包括正常状态、内圈故障、外圈故障和滚动体故障。每个类别的样本数为1000个,每个样本包含1024个数据点。包含了在三种不同负载下收集的加速度数据,以及在三个不同传感器位置收集的振动数据,这些位置分别是正上、近和远处。表Ⅶ列出了本节所使用的测试数据。图7 自制轴承失效试验台 表Ⅶ 数据集信息1)模型性能测试:我们测试了所提出的方法在单状态数据中的自适应迁移性能。实验选择了20 N·m负载下的自制轴承故障数据集,样本总数为9000个,样本标签包含9个类别。本文比较了三种类型的方法,包括未使用的预训练模型、预训练模型和本节中提到的方法。给出了三种方法的预测效果,包括准确率和训练损失函数曲线。本实验将模型的迭代次数设置为50次,相应的精度曲线和损失函数曲线如图8所示。可以看出,该方法具有最好的模型性能。该方法性能最好,模型收敛速度快,仅需10轮就接近收敛。仅调用模型结构而不调用模型参数的方法,具有更长的训练时间和最慢的收敛速度。相较于所提出的方法,仅使用预训练模型的方法在收敛速度上仍存在一定的差距。图8 精度和损失函数曲线 2)不同负载条件:采用0、20、30 N·m不同负载下的自制轴承故障数据集,测试模型的自适应能力。实验采用一种负载下的数据分别对其他三种负载下数据进行自适应迁移。为了更好地优化该方法的权值,对模型的损失函数的权值进行了最优参数搜索。迁移损失权重系数从0到10进行测试。结果表明,当alpha = 2时,所提出的方法模型在不同负载下进行数据迁移时效果最好。当alpha = 0时,表示模型尚未迁移,但在一定负载下训练的模型直接应用于其他负载下的数据。可以看出,如果不使用迁移损失函数,故障诊断的精度相对较低。中心损失权重系数从0到1依次进行测试。结果表明,当beta = 0.3时,该方法在不同负载下的迁移效果最好。当beta =为0时,表示该模型没有中损失函数。该模型只有一个分类损失函数,它没有针对类内差异进行优化。可以看出,如果不使用中心损失函数,故障诊断的准确性相对较低。为了比较该方法与不同负载下常用迁移学习模型的自适应迁移性能,对迁移成分分析(TCA)、联合分布式适应(JDA)、微调网络、深度混淆等许多传统迁移学习方法和深度迁移学习方法进行了测试,测试结果如表Ⅷ所示。表Ⅷ 不同负载下几种迁移方法的比较3)不同的传感器安装位置:考虑到实际工作情况,不同的传感器安装位置会影响模型的性能。因此,我们设计了实验来验证所提出的方法。选择轴承的正上、近、远的振动数据集进行相互自适应迁移学习。其中,驱动端和风扇端数据集都包含两种不同加载状态的数据集,每个加载状态包含9种类型的样本。为了更好地进行统计分析,我们将类似的故障分类为一个类别,并得到了一共有四种类型的样本。为了更好地优化模型在不同传感器安装位置下的权重,对模型的损失函数的权重进行了最优参数搜索。当alpha = 3时,所提模型在不同的传感器安装位置进行数据迁移时的性能最好。当alpha =为0时,表示模型尚未迁移,但在一定传感器位置训练的模型直接应用于不同传感器安装位置的数据。可以看出,当不使用迁移损失函数时,故障诊断的精度相对较低。中心损失权重系数依次从0到1进行测试。考虑到该模型在其他值下的效果相对较差,因此没有显示出来。结果表明,当beta = 0.2时,该模型在不同传感器安装位置的数据迁移中性能最好。当beta =为0时,表示该模型没有中心损失函数。该模型只有一个分类损失函数,并没有对类内的差异进行优化。可以看出,当不使用中心损失函数时,故障诊断精度相对较低。为了比较该方法与其他常用的迁移学习方法在不同传感器位置上的模型自适应迁移性能,这里也列出了不同的迁移学习方法,测试结果如表Ⅸ所示。可以看出,前四种传统迁移方法在不同负载下的自适应效果很差,基本不可用,而后三种深度迁移学习方法一般都优于传统迁移方法。同时,对于旋转机械的故障诊断,传感器的位置也有所不同,它会严重影响故障诊断的准确性。结果表明,与基于不同传感器位置下数据的旋转机械故障诊断模型相比,该方法的实验精度可提高至少8%。表Ⅸ 不同传感器安装位置下几种迁移方法的比较 4 结论 在旋转机械的故障诊断中,负载状态、传感器位置、机器尺寸等各种因素都会导致降低模型性能。本文研究了一种利用时频图和ResNet-50残差神经网络的预训练模型进行模型自适应的增强型故障诊断算法。该方法首先对原始时间序列数据进行预处理,并得到时频图作为深度神经网络的输入。采用ResNet-50预训练模型作为特征提取的主要网络,并设计了几个损失函数,以最小化数据类别之间的差异和自适应迁移的损失。同时,对多个超参数进行了优化,不仅提高了故障诊断模型的准确性,而且大大减少了训练时间。为了评价该方法的分类性能和模型的自适应迁移能力,我们使用凯斯西储大学的轴承数据集设计并进行了多次实验。同时,建立了一个轴承故障测试平台,对该算法进行了反复测试。考虑到真实场景中噪声的干扰,在数据预处理过程中,在原始信息中加入高斯白噪声。根据损失函数的权重,对模型参数进行评价,并选择最优的超参数。为了直观地演示设计的残差神经网络的特征提取能力,采用t-SNE进行特征可视化。最后,验证了该方法的分类有效性,并与其他主流和最先进的方法进行了比较。结果表明,与最新的研究方法相比,该方法在诊断旋转机械故障方面具有较好的性能。编辑:陈莹洁校核:李正平、陈凯歌、赵栓栓、曹希铭、赵学功、白亮、任超、海洋、陈宇航、Tina、王金、赵诚、肖鑫鑫该文资料搜集自网络,仅用作学术分享,不做商业用途,若侵权,后台联系小编进行删除来源:故障诊断与python学习

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈