首页/文章/ 详情

信号处理代码实战 | 阶次分析,(附开源代码与实验数据)

2月前浏览1105

本文分享阶次分析代码。

阶次基本介绍

等时间采样无法对变转速设备进行故障分析,由于转速的变化,导致在等时间采样的情况下,无法采集到同相位的点,所以直接进行FFT转换后,信号往往会出现非常大的泄露,如图1所示。

图1 等时间采样频谱

阶次分析首先要确定参考轴的旋转频率。假设参考轴的转速为    ,则其旋转频率     。某一振动信号的频率为    (除去固有频率之外,其他频率均会随着转速的变化而等比例变化),那么该振动信号对应的阶次    ,所以无论转速如何变化,故障阶次始终不会改变。

实现阶次谱存在两个关键步骤:

(1).插值获取等角度间隔的时间点

(2).使用等角度间隔的时间点对振动信号重采样得到等角度间隔的振动信号

最后只需对重采样的振动信号FFT变换,即可得到阶次谱。需要注意角采样频率    仍需满足奈奎斯特采样定理,大于等于最大阶次2.56倍,阶次谱中最大阶次则为    。

案例数据介绍

采用渥太华升速轴承内圈损伤数据,数据为.mat数据,包含两类数据振动信号(Channel_1)和脉冲信号(Channel_2),采样频率200000,每圈脉冲数1024,内圈故障阶次5.43。

实现过程讲解

  1. 读取原始振动数据与转速脉冲(局部放大),如图2、图3。

图2 原始数据

图3 转速脉冲

2.根据转速脉冲计算转频时间曲线如图4,对给定时间内求取旋转角度的累积变化量如图5。

图4 转频时间曲线

图5 角度时间曲线

3.使用上述获取到的角度以及时间创建一个插值函数(python中使用interp1d实现),将角度进行等间隔划分并带入,即可获取到等角度间隔的时间点。使用原始振动数据和时间再次创建一个插值函数,将等角度间隔的时间点带入,即可获取到等角度间隔采样的振动信号,如图6。

图6 重采样振动信号

4.对重采样的振动信号进行FFT转换,得到阶次谱如图7(进行局部放大),但是故障阶次不够明显,进行包络解调得到包络阶次谱如图8(进行局部放大),此时故障阶次5.43非常明显。

图7 阶次谱

图8 阶次包络谱

代码































































































































import numpy as npfrom scipy.interpolate import interp1dimport matplotlib.pyplot as pltfrom scipy.fftpack import fftfrom scipy.integrate import cumulative_trapezoid, trapezoidfrom scipy.fftpack import hilbert, fft, ifftfrom matplotlib.pylab import mplfrom scipy import fftpackimport pandas as pdimport scipympl.rcParams['font.sans-serif'] = ['SimHei']mpl.rcParams['axes.unicode_minus'] = False

def trend_remove(x, y):    # 用2次多项式拟合x,y数组,返回多项式系数    param = np.polyfit(x, y, 2)    # 拟合完之后,用生成的多项式系数用来生成多项式函数    y_poly_func = np.poly1d(param)    # 生成多项式函数之后,就是获取x在这个多项式处的值    y_poly = y_poly_func(x)    # 原始信号减去拟合函数的值即为去除趋势项后的信号    de_trend_y = y - y_poly    return de_trend_y

file = r'C:\Users\Deng\Desktop\新建文件夹 (2)\I-A-1.mat'dataset = scipy.io.loadmat(file)vib = np.array([i[0] for i in dataset['Channel_1']])pulse = np.array([i[0] for i in dataset['Channel_2']])
fs = 200000t = (1 / fs) * np.arange(0, len(vib))# 振动信号去除趋势项vib = trend_remove(t, vib)# 转速计算:SpeedFre
PulseTime = []for i in range(len(pulse)-1):    if pulse[i + 1] < 2 < pulse[i]:        PulseTime.append(t[i])PulseTime = np.array(PulseTime)
SpeedFre = []speedTime = []for i in range(0, len(PulseTime) + 1, 1024):    if i == 0:        SpeedFre.append(0)    else:        Fre = 1 / (PulseTime[i] - PulseTime[i - 1024])        SpeedFre.append(Fre)        speedTime.append(PulseTime[i])
SpeedFre = np.array(SpeedFre)SpeedFre = SpeedFre[1:]PulseTime = PulseTime[1:]

# 积分求取转过的总角度AngleAngle = cumulative_trapezoid(SpeedFre*360, speedTime, initial=0)
plt.figure(figsize=(11, 4))plt.plot(speedTime, SpeedFre)plt.title('转速')plt.xlabel('时间')plt.ylabel('hz')
plt.figure(figsize=(11, 4))plt.plot(speedTime, SpeedFre*360)plt.title('角度')plt.xlabel('时间')plt.tight_layout()plt.show()
# 获取等角度间隔的时间点:EqualAngleTimeangleStep = 0.1EqualAngle = np.arange(0, trapezoid(SpeedFre*360, speedTime), angleStep)FunctionA = interp1d(Angle, speedTime)EqualAngleTime = FunctionA(EqualAngle)
# 用等角度间隔的时间点对振动信号重新采样,得到了等角度间隔的振动信号:EqualAngleVibFunctionV = interp1d(t, vib)EqualAngleVib = FunctionV(EqualAngleTime)
# 对重采样信后进行fft变换VibFft = (np.abs(fft(EqualAngleVib)) * 2) / len(EqualAngleVib)VibFftHalf = VibFft[1:int(np.round(len(EqualAngleVib) / 2))]order = np.arange(0, len(EqualAngleVib), dtype='int64') * (1/angleStep*360) / len(EqualAngleVib)orderHalf = order[1:int(np.round(len(EqualAngleVib) / 2))]
plt.figure(figsize=(11, 4))plt.plot(EqualAngle, EqualAngleVib)plt.title('重采样之后的振动信号')plt.xlabel('角度')plt.ylabel('振动幅值')
plt.figure(figsize=(11, 4))plt.plot(orderHalf, VibFftHalf)plt.title('阶次谱')plt.xlabel('阶次')plt.ylabel('振动幅值')plt.xlim(0, 100)plt.show()
angleFs = (1/angleStep)*360orderMin = 1orderMax = 500
# 带通滤波后逆变换signal_fft = fftpack.fft(EqualAngleVib)sig_fre = fftpack.fftfreq(n=len(signal_fft), d=1 / angleFs)signal_fft[(abs(sig_fre) < orderMin) | (abs(sig_fre) > orderMax)] = 0signal_filter = fftpack.ifft(signal_fft).real
# 包络变换H = np.abs(hilbert(signal_filter) - np.mean(signal_filter))HP = np.abs(fft(H - np.mean(H))) * 2 / len(EqualAngleVib)HP_half = HP[1:int(np.round(len(EqualAngleVib) / 2))]
plt.figure(figsize=(11, 4))plt.plot(orderHalf, HP_half)plt.title('阶次包络谱')plt.xlabel('阶次')plt.ylabel('振动幅值')plt.xlim(0, 100)plt.show()

编辑:海洋

校核:李正平、陈凯歌、赵栓栓、曹希铭、赵学功、白亮、任超、陈宇航、Tina、王金、陈莹洁

该文资料搜集自网络,仅用作学术分享,不做商业用途,若侵权,后台联系小编进行删除


来源:故障诊断与python学习
振动航空python海洋UM电机数字孪生数控
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-01-09
最近编辑:2月前
故障诊断与python学习
硕士 签名征集中
获赞 77粉丝 96文章 182课程 0
点赞
收藏
作者推荐

SCI论文学习 | 一种基于联邦学习的边云协同机器剩余使用寿命预测的方法

本期给大家推荐郭亮教授的一种基于联邦学习的边云协同机器剩余使用寿命预测的方法。针对实际工业应用中智能方法预测剩余使用寿命(Remaining Useful Life)时出现的边缘客户端计算能力较弱、数据量有限以及所有边缘客户端数据不共享的问题,提出了一种基于联邦学习的RUL预测方法——FedRUL。该方法利用多个边缘客户端和一个云服务器在不共享数据的情况下训练全局编码器和剩余寿命预测器。首先,将所有的局部训练数据集馈送到相应的客户端,用于训练自己的卷积自编码器(Convolutional Autoen-coder)。然后,将所有客户端的编码器上传到服务器对编码器进行聚合。最后,服务器将全局编码器和RUL预测器分发给所有客户端,以实现相应的剩余寿命预测任务。通过铣刀数据集和轴承数据集验证了该方法的有效性。论文基本信息论文题目:FedRUL: A New Federated Learning Method for Edge-Cloud Collaboration Based Remaining Useful Life Prediction of Machines 论文期刊:IEEE/ASME TRANSACTIONS ON MECHA TRONICS论文日期:2022年论文链接:https://doi.org/10.1109/TMECH.2022.3195524作者:Liang Guo (a),(b), Yaoxiang Yu (a), Mengui Qian (a), Ruiqi Zhang (a), Hongli Gao (a), and Zhe Cheng (a).机构:a: Engineering Research Center of Advanced Driving Energy-Saving Technology, Southwest Jiaotong University, Chengdu 610031, China;b: Laboratory of Science and Technology on Integrated Logistics Support, National University of Defense Technology, Changsha 410003, China.作者邮箱:guoliang@swjtu.edu.cn作者简介:郭亮,西南交通大学副教授,四川省省级人才计划入选者、西南交通大学雏鹰学者。2022年和2023年连续两年,入选斯坦福大学“全球前2%顶尖科学家终生科学影响力榜单”和“全球前2%顶尖科学家年度科学影响力榜单”。长期从事轨道交通车辆状态监测、诊断与维护的研究工作,先后主持国家自然科学基金、国家重点研发计划子任务、四川省杰出青年科学基金等项目15项。以第一或通讯作者在MSSP、IEEE TIE等领域权威/知名期刊发表SCI论文37篇,其中“ESI国际学术研究前沿”论文2篇,“ESI热点”论文2篇,“ESI高被引”论文6篇。发表论文谷歌学术引用5700余次,一作单篇引用最高1000余次。发表论文先后荣获《IEEE Transactions on Industrial Electronics》2020年度杰出论文奖、PHM2017国际学术会议最佳论文奖、领跑者5000(F5000)——中国精品科技期刊顶尖学术论文、EITRT2023国际学术会议最佳论文奖等奖励。研究成果支撑先后获得了2022年四川省科学技术进步奖一等奖(排名第2)、2021年陕西省自然科学奖一等奖(排名第5)等奖励。目录1 摘要2 引言3 联邦学习的工业应用4 提出的方法4.1 网络构建与训练4.2 FedRUL框架5 案例研究一 5.1 实验介绍 5.2 样本构建 5.3 模型建立 5.4 实验结果6 案例研究二 6.1 数据建立 6.2 实验结果 7 结论 1 摘要在实际工业应用中,出现了许多智能方法来预测剩余使用寿命(RUL)。然而,它们的发展受到两个阻碍。首先,普通边缘客户端计算能力较弱,数据量有限,难以实现RUL预测。其次,对于所有边缘客户端来说,由于潜在的利益冲突,相互共享数据是不现实的。为此,提出了一种基于联邦学习的RUL预测方法——FedRUL来解决这些问题。该方法利用多个边缘客户端和一个云服务器在不共享数据的情况下训练全局编码器和剩余寿命预测器。每个客户端包括由编码器和解码器组成的卷积自编码器(CAE),而服务器包括了相同的编码器以及RUL预测器。在每个历元期间,CAEs首先通过其相应的本地训练数据集在所有客户端进行训练。然后,将所有本地编码器上传到服务器,并根据客户端在服务器验证数据集上的性能为所有客户端分配权重,从而聚合为全局编码器。最后,将该全局编码器发送回所有客户端,从客户端数据集中提取特征,并将这些特征上传到每个客户端,逐个训练RUL预测器。两个实验表明,FedRUL为RUL预测提供了一个有前途的机密分散学习解决方案。关键词:卷积自编码器,分布式数据,联邦学习,剩余使用寿命预测2 引言机器的剩余使用寿命(RUL)能够直接反映机器的健康状态。随着工业大数据时代的到来,数据驱动的RUL预测方法 正在兴起并显示出潜在的效果。在这些方法中,第一步是从原始数据中提取特征。传统的特征提取方法一般是通过统计知识[1],[2],[3]手动提取特征,耗费大量时间,严重依赖专家知识。相反,最近流行的基于深度学习的智能特征提取方法能够自动提取特征,并已应用于各种研究[4],[5],[6]。尽管有前景的智能剩余寿命预测方法 正在稳步发展,但限制其广泛应用的两个挑战是:1)基于神经网络的RUL预测模型需要训练大量的参数,对于计算能力较弱的边缘设备来说,这非常耗时。2)对于基于深度学习的方法,需要大量的数据。然而,收集大量数据对于边缘客户端来说是非常昂贵和不现实的。针对第一个问题,通常实现边缘云协作[7],其中云服务器负责通过接收来自一个或多个边缘客户端的数据来训练神经网络。Zhao等[8]构建了一种边缘云协同的织物缺陷检测体系结构,包括边缘层、平台层和应用层。实验表明,提出的边缘云协同织物缺陷检测方法具有较好的动态适应性。Verma等人提出了一种基于机器振动监测的物联网边缘云性能评估,以促进考虑环境的部署。另一方面,数据不足也阻碍了基于深度学习的RUL预测方法的发展。Yu等人[10]提出了一种深度学习模型,根据所有样本的类别赋予不同的权重,以解决少数类别样本不足带来的问题。利用轴承数据集和铣刀数据集验证了该方法的性能。Mao等人[11]将原始信号的频谱输入到生成对抗网络中生成少数派样本,在轴承数据集上获得了出色的诊断结果。Guo等人[10]介绍了机器间迁移故障诊断方面的工作,提出了一种基于最大平均差异(MMD)和领域对抗训练的机器故障诊断迁移学习网络。该方法能够将从一个数据集学习到的知识应用到另一个数据集上,而不需要任何标签。然而,在数据不足的情况下生成新数据或改进新算法需要专家投入大量时间和知识。除了这些方法之外,一个常见的想法是集成从不同边缘客户机[13]中不同但相似的机器获取的所有数据。然而,由于潜在的利益冲突,几乎所有的边缘客户端都不愿意分享自己的数据。为了应对这些挑战,最近出现了联邦学习(FL)方法[15],并将其应用于数据孤岛问题。在这些方法中,多个边缘客户端上传提取的特征或模型参数,而不是直接将自己的数据发送到云服务器上构建强全局模型,从而保护了用户的隐私。随着人们对隐私保护的日益重视,近年来提出了许多隐私保护方法。McMahan等人提出了一种联邦平均(FedAvg)方法,该方法将所有边缘客户端的模型参数或梯度平均并集成到云服务器上。在工业应用中,FL也普遍存在。Zhang等人提出了一种基于传统FedAvg方法的动态验证策略。这种改进通过忽略验证数据集中一些性能较差的模型,减少了分布式低质量数据的负面影响。以三种场景下的两个轴承数据集为例,验证了该方法的优越性。为了进一步将FL与迁移学习相结合,Zhang等人[18]提出了一种用于故障诊断的联邦迁移学习方法,该方法通过将从多个边缘客户端提取的特征发送到服务器来实现。这种开创性的传输策略在机器故障诊断方面取得了巨大的成功。利用列车转向架数据集验证了该方法的有效性。虽然FL方法在机器故障诊断中得到了广泛的应用,但在RUL预测中的应用研究却很少。因此,本文提出了一种新的用于RUL预测的联邦学习方法——FedRUL。在该方法中,在每个边缘客户端中包含包含编码器和解码器的卷积自编码器(CAE),而云服务器由RUL预测器和编码器组成,其结构与客户端中的编码器相同。所有客户端都拥有自己的本地训练数据集,没有任何数据共享。在服务器端,数据集分为验证数据集和测试数据集。首先,将所有的局部训练数据集馈送到相应的客户端,用于训练自己的CAE。然后,将所有客户端的编码器上传到服务器,在服务器上,根据这些编码器在验证数据集上的性能确定的相应权重对这些编码器进行聚合。最后,服务器将其全局编码器和RUL预测器分发给所有客户端,以实现相应的RUL预测任务。为了验证该方法的有效性,应用了铣刀数据集和轴承数据集。本文的主要贡献总结如下。1)为了充分利用云服务器的计算能力,降低通信成本,只将所有编码器的底层特征和参数上传到服务器,而不是将整个模型上传到服务器。此外,主要的训练过程在服务器端完成,这可以大大减少所有边缘客户端的计算负担。2)为了避免低质量数据的边缘客户端带来的负面影响,所有客户端的编码器根据其在验证数据集上的表现被分配不同的权重。基于这一理论,低质量数据的客户的贡献被抑制。3)不像以往的研究那样将FL应用于故障诊断,而是首先通过FL框架实现机器的RUL预测。4)在RUL预测器中,由于不同种类的信号所反映的退化信息是异步的,因此采用了多尺度学习策略来提取不同尺度水平上的特征。此外,RUL预测器还采用了自注意机制来强调有用的特征,抑制多余的特征。本文的其余部分组织如下。第二节介绍了联邦学习的工业概念。第三节详细介绍了所提出的方法。在第四节和第五节中,使用铣刀数据集和轴承数据集验证了所提出方法的有效性和优越性。最后,在第六节给出结论。3 联邦学习的工业应用为了清晰地描述FL及其在本文中的应用,首先介绍了相关的概念和符号。在工业应用中,边缘客户端训练具有大量参数的深度学习模型既耗时又昂贵。一般来说,他们将自己的数据上传到云服务器。然而,仅基于一个边缘客户端的数据构建一个强大的模型是不够的,不同的边缘客户端由于潜在的利益冲突而不愿意共享他们的数据。在FL中,client表示边缘客户端,server表示云服务器。在没有任何数据共享的情况下,客户机只将其本地模型上传到服务器,而不是将自己的数据上传到服务器,而服务器负责将所有客户机发送的信息集成到全局模型中。在第 个客户端中,它自己的本地训练数据集表示为 ,其中 为第 个样本, 表示第 个样本数据, 表示其对应的标签, 表示客户端数量, 表示第 个客户端的样本数量。FL的过程如图1所示。首先,所有客户端的局部模型由各自的局部训练数据集进行训练。然后,将所有本地模型上传到服务器进行聚合。最后,将聚合的全局模型下载到所有客户机,用于它们自己的任务。图1 联邦学习方案的说明最近,FL方法在以下场景下进行应用,并取得了出色的性能。1)数据量不足以为每个客户端训练一个强模型。2)服务器凭借其强大的计算能力参与模型训练过程。3)来自不同客户端的模型可以共享,但它们的本地数据集无法通信。上述所有场景都符合FL的工业应用。因此,在本文中,通过基于FL的方法实现机器的RUL预测。4 提出的方法在本节中,将详细解释FedRUL,如图2所示。总共有上传-下载两个主要的过程。在第一个过程中,所有客户端拥有的CAEs首先由其对应的局部训练数据集进行训练。训练完成后,将所有编码器上传到服务器,并通过加权平均方法进行汇总。然后,将聚合的全局编码器下载到所有客户机。在第二个下载过程中,全局编码器从每个客户端的本地训练数据集中提取低级特征,并将这些特征逐一上传到服务器,用于在服务器中训练RUL预测器。最后,服务器将全局编码器发送到所有客户端。至此,一个训练历元已完成,上述过程不断重复,直到包含全局编码器和RUL预测器的RUL预测模型训练好。图2 提出的联邦学习框架4.1 网络构建与训练在每个客户端中,构建一个CAE,包括一个编码器和一个解码器来重建输入信号。如果重构损失能够在一定程度上减少并达到收敛,则认为编码器具有从原始数据中提取底层特征的能力。然后,将这些特征输入到服务器中的RUL预测器中进行RUL预测。相关网络架构如图3所示。图3 网络结构 1)客户端CAE:对于所有客户端的CAE,其结构是统一的,由一个编码器和一个解码器组成。当输入样本数据时,使用包含两个卷积(Conv)层的编码器提取特征。具体来说,第 个Conv层的第 个输出特征向量可以由式(1)得到, 其中 为卷积计算算子, 为前一层的第 个特征向量, 为卷积核, 为第 卷积层的偏置向量。然后,将这些提取的特征输入到与编码器结构对称的解码器中。应用两个反卷积(Deconv)层负责重构样本数据。为了确保原始和重构样本数据的一致性,用于编码输入和解码潜在表示的参数集 通常被约束为 的形式。Deconv层的详细操作可以定义如下: 其中 表示在两个维度上翻转操作的参数, 是偏置向量。为了保证提取特征的有效性,构造一个损失函数,使原始样本数据与其重构样本数据 之间的距离最小。具体来说,选择它们之间的均方误差(MSE)作为优化目标,并在训练过程中减小MSE。在数学上,第 个客户端的损失函数可以测量为: 在第一项中,考虑重构损失。 为第 个样本数据 在第 个客户端的重构, 为该客户端的样本数。在第二项中, 表示第 层的参数, 表示层数。正则化项是一个用于平衡重构和参数损失的重要性的超参数。通过在一定范围内限制参数,可以约束这些CAEs的复杂性,从而避免过拟合。在训练过程中,采用随机梯度下降法对给定的参数进行更新: 其中 为第 个客户端的CAE参数, 为学习率。2)服务器RUL预测器:更新所有客户端的CAEs参数后,将所有编码器发送到服务器进行聚合。然后,将聚合的全局编码器下载到所有客户端,从他们自己的本地训练数据集中提取低级特征。为了在服务器中训练RUL预测器,将这些提取的低级特征及其相应的标签上传到服务器以更新RUL预测器。对于RUL预测器,主要的算子也是卷积运算。与CAEs不同的是,该算法采用多尺度学习策略,在不同尺度上提取更多有用的退化信息。其中,在多个Conv层中应用不同大小的核,其操作与式(1)相同。卷积后,通过激活函数实现如下的非线性变换: 式中 为第个输出特征向量 的激活特征, 为激活函数,本文中使用的为ReLU函数。然后,在每个Conv层之后使用池化(pool)层来降低特征映射的维数和模型的复杂性。池化层中的操作定义为: 其中 为池化规则,即本文中的最大池化操作。具体来说, 的元素是特征映射 中一个区域的最大值,该区域由池化内核大小决定。除了多尺度学习策略外,自注意机制也被用于强调信息特征映射,并从大量特征中抑制不重要信息。具体来说,平均池化和最大池化操作同时应用于压缩空间维度的特征映射。经验证实,利用这两种池化操作大大提高了网络的表示能力,而不是单独使用每个池化操作。首先,分别使用全局平均池化(GAP)和全局最大池化(GMP)操作来聚合输入特征映射。然后,将每个聚合映射输入到两个全连接(FC)层。最后,将两组输出相加,生成频道注意映射 。在这两个FC层中,前者负责将特征映射降维到 ,其中 为降维比。为了保证输入和输出之间形状的一致性,使用另一个FC层将形状还原回 。通过GAP和GMP的两组输出使用元素求和合并。简而言之,信道注意力计算为: 其中 表示sigmoid函数, , 分别表示FC第一层和第二层的参数, , 分别表示GAP和GMP压缩后的特征映射。在得到每个通道的权重后,重新缩放操作执行如下: 其中 和 分别表示输入和加权输出。 表示channel-wise乘法,其中通道注意力值沿空间维度广播。4.2 FedRUL框架随着人们对隐私保护的日益重视,FL已经成为一种很有前途的去中心化模型训练技术。通过FL,在不同的客户端和服务器之间只传输特征、梯度或模型参数,而不是直接发送原始数据。在没有任何数据共享的情况下,FL可以通过汇总所有数据的知识来训练一个强大的模型。虽然FL能够解决数据孤岛的问题,但是所有客户端巨大的计算成本和客户端与服务器之间沉重的通信负担制约了FL方法的发展。此外,在以往的研究中,几乎所有的FL框架都是针对故障诊断问题构建的。然而,RUL预测也很重要,需要隐私保护。因此,本文提出了一种新的基于联邦学习的预测方法——FedRUL。FedRUL的详细过程如图4所示。图4 FedRUL在机器RUL预测场景中的流程图首先,所有客户端的CAEs都通过自己的本地训练数据集进行训练。然后,将它们的编码器上传到服务器,并使用相应的权重进行聚合。这些权重是根据服务器中验证数据集上的MSE测量的。具体来说,这些权重通过下式计算: 其中 表示验证数据集上的重构损失, 表示第 个客户端的权重。在编码器聚合后,将聚合的全局编码器下载到所有客户端以提取低级特征。这些特征及其相应的标签被上传到服务器,用于高级特征提取和RUL预测。之后,训练过程结束。在测试过程中,首先使用全局编码器提取底层特征。然后,使用RUL预测器提取高级特征,实现RUL预测。基于FedRUL,只需将本地编码器和底层特性多次上传到服务器,而不是将整个模型上传到服务器,大大减轻了通信负担。此外,训练过程在服务器端实现,而在所有客户端只完成浅层CAEs的简单训练,充分利用了服务器强大的计算能力。虽然可以使用不同客户机的底层功能,但仍然可以确保数据隐私[20],[21]。使用特定类型的神经网络,输入数据通常不能使用输出特征复 制,从而有助于保护数据隐私。5 案例研究一在本节中,通过与其他最新方法的比较,在铣刀数据集上验证了所提出方法的优越性。在模拟应用场景时,将不同条件下采集的样本视为存在于不同客户端的本地数据集,不能相互共享。5.1 实验介绍如图5所示,本次铣刀实验是在计算机数控机床DAHENG CMC850上进行的。在实验过程中,使用4种传感器采集8种信号。详细的参数设置如表1所示。当刀具后刀面磨损宽度大于0.3 mm时,停止寿命试验,按GBT16460-1996中铣刀寿命标准认为该刀具已达到磨损极限。实现了两种不同的工况,每种工况包括6把铣刀,详细信息见表2。图5 数控铣床和传感器布置 表1 铣刀实验参数设置表2 铣刀的切削条件5.2 样本构建 实验过程中,采集了不同寿命周期铣刀的X、Y、Z轴振动信号、X、Y、Z轴切削力信号、电流信号、声音信号等8种信号。以寿命最长的刀具为例,其部分信号如图6所示。在切削过程中,信号的幅值随操作时间的增加呈增加趋势。图6 整个使用寿命期间监测信号。(a) X轴振动信号 (b) X轴切削力信号 (c)电流信号 (d)声音信号在实验过程中,每次切削进行20秒。由于不稳定,前5秒和后5秒被忽略,而在中间10秒收集信号。在构建样本时,仅使用前1 s数据来预测RUL。因此,每个样本拥有10000个时间点,其形状为10000 × 1 × 8,其中8表示信号类型的数量。为了更清楚地说明,样本生成过程如图7所示。图7 数据样本生成5.3 模型建立 所提出方法中使用的模型包括所有客户端的CAEs和服务器端的RUL预测器,其网络结构如表3所示,其中F表示过滤器的数量,K表示内核大小,P表示每层的参数。为方便起见,使用Conv、GAP和GMP分别表示卷积层、全局平均池化和全局最大池化。FC1和FC2表示自注意模块中的两个FC层。FO是最后的预测层。训练时,batch size设置为8,使用的优化器为Adam,学习率为0.005。CAE和RUL预测器的损失随时间变化图如图8所示。本文采用一台搭载NVIDIA GeForce RTX 2060 GPU的服务器来实现云计算,客户端为NVIDIA公司的Jetson TX1[22]。在实验中设置了两个客户端,对应两种不同的操作条件。表3 联邦框架的结构图8 FedRUL框架随时间的损失曲线5.4 实验 结果 (1)方法比较:本文对不同的规则规则预测方法进行了实现,以证明本文方法的优越性。具体来说,这些方法如下。1)OneByOne:第一个对照组命名为OneByOne,通过在每个客户端中逐个独立输入本地训练数据集来训练RUL预测模型。具体来说,在一个训练时期,服务器中的模型被下载到每个客户端,并首先由一个本地训练数据集进行训练,以更新其参数。然后,将该模型发送回服务器。之后,将模型下载到下一个客户端并重复相同的训练过程,直到所有客户端都通过。实际上,这种方法可以看作是一种间接的样本展开。然而,对于非独立且分布相同的数据,数据混合可能会产生负面影响。2)BaseLine:在第二种方法中,所有客户端都拥有一个由其相应的局部训练数据集训练的RUL预测模型。当所有模型都训练得很好后,它们的预测结果被平均作为最终结果。在实验中,由于每个客户端样本量有限,该方法的性能往往不理想。3)UpperLimit:直接对所有的局部训练数据集进行聚合,按照正常的集中式学习方案训练RUL预测模型。这种方法通常表现出最好的性能,并提供了一个上界。4)FedAvg:作为最经典的FL方法之一,FedAvg被用于验证FedRUL的优越性。在该方法中,服务器通过本地训练数据集将全局RUL预测模型下载到每个客户端进行训练。然后,将每个客户机中的参数上传到服务器,并通过平均聚合到更新的全局模型中。5)FedRUL2:为了验证CAE聚合中加权求和的作用,构建该方案。在该方法中,局部编码器的参数通过平均直接组合。由于对本地数据质量较低的客户的疏忽,该方法可能会受到这些数据的负面影响。训练完成后,应用服务器中的测试数据集,通过不同的方法进行RUL预测。然后,实现中值滤波器平滑预测的规则规则。图9为RUL的预测结果,其中真实RUL用黑点虚线表示,预测RUL结果用彩色实线表示。图9 通过6种方法对4种刀具的RUL进行预测的结果(2)评价指标:为了定量地评价所有方法的RUL预测结果的性能,本文采用了评分函数(Score)、均方根误差(RMSES)和收敛率(CR)三种常用指标。1)Score:在2008预后与健康管理数据挑战赛[23]中首次提出并使用评分函数 式中, 为样本数, 为预测RUL与实际RUL之差。这个函数是不对称的,因为预测的RUL小于实际RUL的情况更容易接受。然而,应该注意的是,由于分数随着误差的增加呈指数增长,该函数对具有非常大的预测误差[24]的单个异常值格外敏感。为了解决这个问题,本文选择RMSE作为第二个度量。2)RMSE:一般采用RMSE来评价预测RUL与实际RUL的拟合程度。与Score不同,RMSE赋予所有样本相同的权重。计算方法如下: 3)收敛速度:CR可以根据给出的误差曲线下的区域原点到质心的欧氏距离来测量 式中, 和 分别为预测误差曲线下区域质心的横坐标和纵坐标。CM越低,收敛速度越快。为了说明所有方法的性能,这三个指标绘制在图10中。从这个结果来看,FedRUL虽然不如UpperLimit,但优于其他。此外,FedRUL2和FedAvg也表现出令人满意的性能。对于OneByOne来说,由于不同客户端的梯度不一致,可能会影响其性能。由于数据量不足,基线方法的性能是所有方法中最差的。图10 6种方法下Score、RMSE和CR的结果图6 案例研究二在本节中,使用XJTU-SY轴承数据集验证了所提出方法的性能和优越性。该数据集来自西安交通大学与长兴Sumyoung科技有限公司共同搭建的测试平台。6.1 数据集建立 XJTU-SY轴承数据集使用在三种不同工作条件下实现的15种不同的滚动轴承构建。在这些条件下,三个客户端分别负责收集数据。各轴承的实验设置和样样量如表4所示。实验中,采用DT9837便携式动态信号采集器采集X方向和y方向的振动信号。其中,每秒采集25600个数据点,采样间隔设为1.28 s。两次收集之间的时间间隔为1分钟。Wang等人[25]提供了关于该数据集的更多信息。在本例中,选取归一化后的20000个时间点作为样本基准,预测相应的一分钟RUL。使用两个方向的两个信号,使输入的形状为20000 × 1 × 2。6.2 实验结果 为了进一步验证FedRUL的有效性,在本例中应用了相同的控制组和评估量度。图11为在测试数据集Bearing1_3、Bearing2_2、Bearing3_4上的RUL预测结果。图11 通过6种方法预测3种轴承的RUL结果结果表明,UpperLimit算法具有最佳的拟合度和收敛性,FedRUL和FedRUL2算法也具有令人满意的效果。相反,BaseLine和OneByOne由于数据不足和非独立的同分布而性能较差。为了量化这些结果,我们使用Score、RMSE和CR,如图12所示。图12不同方法下Score、RMSE和CR的结果图 7 总结本文提出了一种新的基于逻辑推理的方法—FedRUL来实现机器的剩余寿命预测。该方法主要处理有限样本量下不同客户端之间的数据孤岛问题。为了减少通信成本和计算负担,在客户端和服务器之间只传输浅层编码器和底层特征,而不是整个RUL预测模型。通过两个实验验证了该方法的优越性。根据实验结果,得出以下结论:首先,为所有客户端的本地编码器分配不同的权重,可以有效地避免一些客户端使用低质量的本地数据集带来的负面影响。其次,FL能够全面地同时考虑来自所有客户端的知识,这保证了所提出方法的性能。最后,由于训练过程中数据的非独立同分布,从不同客户端提取的特征可能会产生相反的更新方向,这通过OneByOne和BaseLine的性能表现出来。该方法利用了从多个客户端数据中学习到的知识,同时保证了数据的隐私性,为RUL预测提供了一种很有前途的基于FL的方法。根据实验结果,提出了今后的工作和可能存在的局限性。1) 模型参数和特征的加密在FL框架中是必要的。近年来,人们提出了同态加密、秘密共享和差分隐私等技术来解决这一问题。尽管如此,它们可能会影响计算效率和模型精度。因此,设计一种更好的加密算法是未来的研究方向之一。2) 本文忽略了数据清洗和异常点检测。相关工作可能会在未来进行。3) 需要指出的是,FedRUL的性能与UpperLimit相比仍然存在明显的差距。将进一步开展研究工作,开发更有效的FL框架来应对这一挑战。编辑:Tina校核:李正平、陈凯歌、赵栓栓、曹希铭、赵学功、白亮、任超、陈宇航、海洋、 陈莹洁、王金该文资料搜集自网络,仅用作学术分享,不做商业用途,若侵权,后台联系小编进行删除来源:故障诊断与python学习

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