首页/文章/ 详情

迁移学习!SCI二区开源代码推荐|结合理论边界和深度对抗网络的迁移学习开集故障诊断

6月前浏览10279

迁移学习是当前故障诊断领域的研究热点,然而针对其开源代码较少,小编整理搜集了一些开源代码与大家进行分享。本期分享的是结合理论边界和深度对抗网络的迁移学习开集故障诊断,该论文发表于Neurocomputing期刊,并提供有该作者原创的开源代码,因此这篇开源代码适合参考借鉴并在上面进行改进学习,适合具备一定的深度迁移学习基础知识的学习者。该方法很贴合实际工程应用场景,非常值得阅读


1 论文基本信息

论文题目Combining the theoretical bound and deep adversarial network for machinery open-set diagnosis transfer

论文期刊Neurocomputing

Doihttps://doi.org/10.1016/j.neucom.2023.126391

论文时间2023年

作者Yafei Deng, Jun Lv, Delin Huang, Shichang Du

机构

State Key Lab of Mechanical System and Vibration, School of Mechanical Engineering, Shanghai Jiao Tong University, Shanghai 200240, China; Department of Industrial Engineering and Management, School of Mechanical Engineering, Shanghai Jiao Tong University, Shanghai 200240, China; Faculty of Economics and Management, East China Normal University, 200241 Shanghai, China; College of Intelligent Manufacturing and Control Engineering, Shanghai Polytechnic University, China

2 摘要

目前,基于深度迁移学习的智能机器诊断得到了很好的研究,通常假设源域和目标域共享相同的故障类别,这可以称为闭集诊断迁移(The Closed-set Diagnosis Transfer, CSDT)。然而,由于机器零部件的不确定性和复杂性,可能会出现未知的新故障,这种假设很难覆盖真实的工程场景,即开集诊断迁移(Open-set Diagnosis Transfer, OSDT)。为了解决这一具有挑战性的问题,本文提出了一种理论引导的渐进迁移学习网络(Theory-guided Progressive Transfer Learning Network, TPTLN)。首先,深入分析了开集环境下迁移学习模型的上界,为模型优化提供了理论指导。其次,设计了一个两阶段模块,通过渐进学习的方式分离未知目标样本并将已知样本靠近,有效提高类间可分性和类内紧凑性。最后我们对所提出的TPTLN的性能基于两个OSDT数据集进行评估。对比实验结果表明,该方法在不同程度的领域偏移和不同开集情况下均具有较好的鲁棒性和诊断性能。

3 目录

1 论文基本信息
2 摘要
3 目录
4 引言
5 相关工作
5.1 开集诊断迁移
6 所提出的方法
6.1 TPTLN的整体框架
6.2 分离阶段
6.3 靠近阶段
实验结果与讨论
7.1 关键对比方法和评估指标
7.2 实验结果和性能分析
8 总结
注:本文只选中原论文部分进行分享,若想拜读,请下载原论文进行细读。
小编能力有限,如有翻译不恰之处,请多多指正~

4 引言

在工程场景中,机器总是处于正常状态并进行定期维护。因此收集充足的有标签数据,特别是有标签故障数据是耗时且费力的。此外,由于任务需求和工作环境的不同,同类机器往往工作在不同的工作状态,这就导致了测试数据和训练数据之间的分布差异。因此,在实验室环境下表现良好的深度学习诊断模型在工程应用的背景下会大大退化。
迁移学习(Transfer Learning, TL)允许在一个或多个任务中获得的知识被使用到另一个任务中。在机器故障诊断的场景中,不同的工况和机器部件可以看作是不同的领域,不同的故障类型可以看作是不同的任务。基于特征的TL方法通过构造映射函数将源域和目标域的原始数据转换到一个共同的潜在空间,提取领域不变特征,主要包括三种策略:基于差异度量的领域偏移减少策略、基于对抗机制的领域混淆生成策略和基于重构模型的领域不变性表示改进策略。

1  CSDT和OSDT的对比图

大多数机器诊断迁移学习方法的主要假设之一是基于闭集条件,这表明训练和测试数据应该覆盖相同的机器健康状态。然而,在工程领域中,闭集诊断迁移(The Closed-set Diagnosis Transfer, CSDT) 假设很难满足。由于数据收集的巨大经济成本,通常难以收集具有各种机器健康状态的足够标签的训练数据,导致源域类别有限。在测试阶段,新的未知故障模式在源域中不存在,并且诊断模型会错误地将新出现的未知故障类型分类为已知故障类型。因此,提出了一种更具挑战性和实用性的场景,称为开集诊断迁移(Open-set Diagnosis Transfer, OSDT)。OSDT不仅将源域的诊断知识迁移给目标域,而且还需要在目标域中检测出源域中的未知故障。图1给出了CSDT和OSDT的示意图,主要区别在于OSDT旨在将诊断知识从类稀少的源域迁移到类丰富的目标域,并构建已知和未知样本的决策边界。因此,OSDT问题可以从两个方面解决:1)学习已知和未知目标样本之间的决策边界,以实现类间水平的可分性; 2)匹配源域样本和目标域样本在共享标签空间中的分布,以实现类内水平的紧凑性。然而,一些尚未解决的问题限制了OSDT解决方案的发展:

(1)  不确定决策边界:在不知道未知样本和已知样本之间的相关程度的情况下,很难确定一个固定的决策界来识别未知样本和已知样本。在开放程度较大的情况下,使用过紧的决策界会忽略一些未知的样本,而在开放程度较小的情况下,使用过于宽松的决策界会包含一些已知的样本。

(2)  交互性负迁移:在模型训练过程中,两个目标相互影响。详细地说,已知和未知的目标样本在领域偏移大的情况下会变得混乱,使得更难学习准确的决策边界。因此,这些误分类的样本,属于共享(私有)空间,但被认为是私有(共享),将产生不利影响的分布匹配,这进一步误导决策边界学习。

为了克服上述挑战,我们提出了一种新的理论引导的深度对抗网络来检测新出现的故障并减少领域差异。通过最小化理论推导的误差界,优化开集检测风险域不变学习风险,在理论上保证了类间的可分性和类内的紧凑性。此外,设计了两阶段渐进式学习策略来抑制交互式负迁移。最后,采用基于对抗的机制使模型具有从不平衡数据中学习判别表示的能力,在不同的开放程度下都能表现出较好的泛化能力。

图2 概述了OSDT问题的TPTLN方法

所提出的理论引导的渐进式迁移学习网络(Theory-guided Progressive Transfer Learning Network, TPTLN)的概述如图2所示。如图2所示,在分离阶段,自适应地获得灵活的决策界以准确区分目标未知样本,其中源域风险和开集风险将被迭代地优化以促进离群数据(类间)可分性;在靠近阶段,跨源域和目标域的共享标签空间的域不变特征将被学习以促进类内紧凑性。

图2中,(a)开集设置下的最终状态示例,其中源域和目标域包含几个已知的共同的故障类(图中标记的三角形和正方形),并且目标域还包含源域中不包括的未知故障类(图中的圆圈)。(b)分离阶段后的情况:首先构造源域已知故障的分类边界,使TPTLN能够实现诊断。其次,构造一个由粗到细的决策边界,将已知类和未知类的目标样本分开。(c)靠近阶段之后的情况。采用对抗性分布对齐策略靠近共享空间中的源域和目标域样本。(d)在分离阶段和靠近阶段之间进行渐进学习后,迭代直到收敛的情况下,未知类的目标样本将被分离出共享空间,而已知类的目标样本将靠近它们的源域对应的类。主要贡献概述如下:

(1)我们对OSDT的情况下的迁移学习进行探索,其中的目标域不仅包含与源域共享的标签空间,也包含不在源域中的私有标签(新的未知故障类型)。

(2)设计了一种渐进式学习结构TPTLN,分别实现目标样本划分(分离阶段)和领域分布对齐(靠近阶段)。该方法将不确定性校正、自适应开放度估计和加权分布模块附加到两阶段学习过程中,能够更好地适应较大的领域迁移,有效避免了同一模型内的交互负迁移问题。

(3)在理论界分析的指导下设计了TPTLN。最小化源域损失获得源域分类器,优化分布差异的目标是学习领域不变特征,通过提出的校正相似度和领域一致性得分控制开集风险,提供一个自适应的决策边界来检测目标未知样本,适应不同程度的目标数据开放性。

(4)设计了不同领域迁移程度和开放度变化情况下的开集诊断迁移任务,验证了模型的有效性。选取了7个具有代表性的模型作为基准模型,通过多种可视化方法验证了模型在提高诊断精度和增强迁移鲁棒性方面的性能。

5 相关工作

5.1 开集诊断迁移

开集迁移诊断的目的是从目标域检测新出现的未知故障类,同时正确地将已知故障类的诊断知识从源域迁移到目标域。近年来,已经提出了几种方法来解决计算机视觉领域中的开集领域自适应问题,例如OSBP [15],STA [16]和CMU [17]。也有一些研究人员正在为工业应用进行探索性工作。Li等人首先提出了一种深度对抗迁移学习网络(Deep Adversarial Transfer Learning Network, DATLN),该网络受到OSBP方法的启发,并已成功应用于旋转机器故障检测[18]。DATLN通过一个对抗性的二元分类器来确定决策边界,当对应样本的分类概率超过固定阈值(通常设置为0.5)时,未知故障将被识别。Zhang等人开发了一个实例级加权对抗网络来解决OSDT问题[19]。研究者提出了目标域样本的实例级权重来描述与源域类的相似性,该权重由目标域样本的相似性得分得到,并采用熵最小化方法来增强目标离群点检测。Zhu等人提出了一种具有多个辅助分类器的对抗网络(Adversarial Network with Multiple Auxiliary Classifier, ANAMC), 该网络开发了多个分类器来校准OSBP方法中的阈值设置[20]。这些辅助分类器可以更好地利用具有代表性权重的领域知识,这有助于更灵活地制定准确的决策范围,而不是将某个固定阈值下的所有目标数据强制为一个类别。

回顾最近的文献,现有的OSDT模型缺乏必要的理论分析,从而忽略了潜在的改进方案,导致产生了受到客观影响的解决方案[21]。本文将理论界分析方法引入OSDT模型设计中,填补了OSDT模型设计的空白,使OSDT模型能够以无监督的方式检测新出现的目标离群数据。此外,设计了渐进式对抗学习策略,以抑制互动负迁移下大程度的开放性和领域迁移。

6 所提出的方法

6.1 TPTLN的整体框架

图3 概述了OSDT问题的TPTLN方法

所提出的TPTLN如图3所示,其主要包括三个模块:特征提取、分离阶段和靠近阶段。首先,在特征提取阶段,将机器振动信号的频谱放到特征生成器G中以提取分层特征      和      。接着,在分离阶段,通过不确定性校准和领域一致性学习策略估计理论推导的源域风险项和开集风险项。随后,在靠近阶段,提出了基于对抗的加权机制,通过向目标已知类分配较大的权重来最小化共享标签空间的差异距离项,并通过向目标未知类分配较少的权重来减轻来自私有空间的负迁移。最后,在分离阶段和靠近阶段之间的渐进式学习策略可以使TPTLN学习到一个更紧密的理论界,以检测目标域中的未知故障类别,并建立一个更强大的分类器诊断已知的故障类别跨域。TPTLN的详细算法在表2中给出。
表2 训练细节

6.2 分离阶段

本节详细描述了渐进式学习框架中的分离阶段。顾名思义,分离阶段主要集中在从已知类中分离没有标签的目标域中的未知故障类,这可以减轻由于源域中已知类别的样本和整个目标域样本的分布错误匹配而导致的交互负迁移。为了从理论上进行分离阶段,采用上述源域风险    和开集风险    来指导模型优化。
 

6.2.1 源域风险      的优化

源域风险保证了跨域分类器能够准确地对源域的已知故障类别进行分类。为了实现这一点,定义多类别分类器来计算源风险,源域风险    的计算公式如下:

   

其中,损失函数是交叉熵损失,其通常用于多类别分类函数,  是用于  类别的通用分类器,源域中的已知  类加上目标域中的附加未知类。  表示从源域提取的特征。  表示每个样本到相应已知类别  的概率。  是每个源域样本的真实标签信息。

 

6.2.2 开集风险      优化

开集风险表示模型区分未知目标类和已知目标类的能力,应该注意的是,首先应该准确评估开放性  。如果开放度太大,则表明目标域中的大部分数据是未知故障类型    。该项将决定开集风险    以及整个误差上界。另一方面,如果    ,这意味着没有未知的目标样本,整个误差上界将与CSDT问题相同。

在之前的研究中,对    中的未知参数开放性    进行了初步评估。例如,将    设置为较大的值,这可能会在不同程度的领域偏移下受到波动。为了准确地估计开放度,本文采用了一种由粗到细的学习算法,用于学习已知和未知目标样本之间的自适应开放度边界。所设计的鉴别器包括用于源域粗糙鉴别的    和用于目标域精细鉴别的    。

6.2.2.1 基于不确定度校准源域鉴别器    

我们设计了多个二分类的鉴别器  ,仅用源域标签样本实现粗分离。所提议的  的损失优化过程可以表示为: 

 其中,  是二分类交叉熵损失,并且在  中有  个类别的源域鉴别器。另外,在  的时候,  ;其他情况下,  。将每个目标域特征      放入      中,来自每个鉴别器的输出概率      可以被看作是根据相应源域类别      的预测置信度,并且源域鉴别器将输出概率向量      。由于目标域中已知类别在共享空间中具有比未知类别的目标数据更高的概率,因此向量中的最大概率      总是被当作第      个目标样本与已知类之间的相似度      :   预测置信度可以很好地用于来自已知标签空间的目标域数据的相似性估计,因为这些数据将共享在源域中已经出现的相似结构。然而,对于来自未知标签空间的目标域数据,很难学习到在源域中从未出现过的结构特异性特征,从而导致弱区分性和有偏相似性估计。
为了克服这个问题,我们将自监督的不确定度校准技术(熵分析)与相似性评价相结合。熵用来衡量类分布的平滑程度,熵越大,表明类分布的不确定性越高。因此,利用熵分析的校准的相似性可以表示为:   

6.2.2.2 基于一致性得分的目标域鉴别器      

图4 领域一致性得分的图示 

目标函数    将    学习到的粗糙开放边界调整为更精细的边界,旨在进一步分离未知和已知目标样本。为了实现这一点,所有目标域样本的相似性    ,以降序排列,并且将选择具有较高相似性的前K个样本和具有较低相似性的后K个样本来构建子集    。我们提出了一种基于领域一致性得分(Domain Consensus Score, DCS)的自适应K初始化方法。一致性得分旨在提取跨领域知识,以促进共享类聚类和私有类发现[25]。域一致性得分的定义如图4所示。
与以前使用基于阈值的方法[15,17]或固定K值[16]来检测未知目标样本的研究相比,所提出的自适应K选择方法提供了一种更鲁棒的方法来训练不同级别的领域偏移下的已知和未知目标域样本分离。因为它的子集的区分界限可以灵活调整。基于处理后的目标子集      ,目标域      可以被优化如下:   其中,  是二分类交叉熵损失,  指的是经滤波子集的目标样本。通过引入  (为粗分离提供每个目标域样本的相似度)和  (为细分离提供每个目标域样本为已知或未知故障类别的概率),可以逐渐获得目标样本的自适应决策边界,并且可以如下估计开集风险的未知参数开放度  :   在通过粗到细的迭代估计开放度      之后,可以获得开集风险      ,并且给出优化函数如下:    6.3 靠近阶段

在靠近阶段,应减少源域和目标域之间的分布差异以实现学习领域不变的特征。需要注意的是只有源域和目标域所共享的空间需要对齐。 为此,我们提出了一种加权分布风险优化策略来促进源域和目标域已知类别的对齐,并抑制源域和目标域未知类的对齐。

6.3.1 加权分配风险优化

为了给每个目标域样本赋予不同的权重,目标域鉴别器    的输出用作软实例级权重     。基于目标域已知/未知判别器    的定义,较大的表明样本来自共享空间的概率更高(已知类别);较小的    意味着样本来自非共享空间的概率较高(未知类)并且应该在分布风险最小化期间被抑制。 相应地,利用目标样本权重    进行对抗领域适应,可以得到加权分布风险优化函数如下:   其中,域对抗损失    旨在在    上最小化并且在    上最大化。训练域鉴别器    识别输入特征是来自源域还是目标域,而特征生成器    通过提取域不变特征来混淆    。由于加权机制,与未知目标样本相比,具有更高概率为已知类的目标样本将主导对抗过程,这意味着在极大极小博弈期间,分布对齐将迭代地集中在目标已知样本和源域样本上。

7 实验

7.1 关键对比方法和评估指标

OSBP(Open Set Domain Adaptation by Backpropagation)旨在构建一个决策边界来检测未知的目标域样本。训练分类器以在源域样本和目标域样本之间建立边界,而训练生成器以使目标样本远离边界。

STA(Separate to Adapt)采用两阶段网络结构来解决开集迁移学习问题,其中第一阶段通过探索源域数据来训练识别目标未知数据,第二阶段训练在已知类的范围内适应分布。

CMU(Calibrated Multiple Understanding)提出了一种新的可迁移性度量来检测离群数据,该度量由互补中的不确定性量的混合来估计:熵,置信度和一致性,定义在由多分类器模型校准的条件概率上。

DATLN(Deep Adversarial Transfer Learning Network)首先讨论了在工业场景中迁移诊断知识的开集设置。对抗分类器被设计为在源域和目标域中对齐样本(具有已知类别),并检测具有未知类别的样本。

IW-OSDA(Instance-Level Weighted Open-set Domain Adaptation)将离群值分类器结合到基于对抗的网络中,以增强OSDT问题的未知故障样本检测。由领域差异度得到的实例权重用来描述目标域样本与源域类的相似度。

为了全面评估TPTLN和其他基线方法,两个广泛使用的评估指标,所有类别的标准化准确度和仅已知类别的标准化准确度    ,具体如下:      

其中    表示属于第c个故障类别的目标样本,    指的是分类器    正确地将样本    分配给相应的类别。
7.2 实验结果和性能分析

7.2.1 实验结果

表9a 基于轴承任务的准确率对比

表9b 基于齿轮箱任务的准确率对比

7.2.2 性能分析

图8 每个类中目标实例的权重的平均值  

(a) 轴承OSDT任务的结果; (b) 齿轮箱OSDT任务的结果。  

为了直观地评估所提出的方法的性能,在所有OSDT任务中学习的目标域样本的实例级权重进行了研究。由于STA、CMU和IWOSDA模型通过分配不同的权重来区分离群样本,因此给出了这些方法的结果以供比较,可视化结果如图8所示,其中目标离群实例的权重以红色标记。

7.2.3 性能分析

图9 齿轮箱任务T1上的域不变特征的可视化  

为了比较模型性能并反映所提出方法的优点,使用t分布随机邻居嵌入(t-SNE)算法[28]来可视化从生成器      中提取的特征。以变速箱任务T1为例。来自不同模型的t-SNE的可视化特征如图9所示。

8 总结

本文提出了一种理论引导的迁移学习模型TPTLN,用于解决目标域中故障类别未知的开集诊断迁移问题。TPTLN模型通过分离阶段和靠近阶段来解决OSDT问题,其中设计了不确定性校准、自适应开放度估计和加权分配模块,以更好地适应不同的开放度变化。在分散阶段,目标未知数据被推离已知类以避免参与领域对齐过程,通过互补相似度和领域一致性学习离群数据的鲁棒判别边界。在靠近阶段,来自源域和目标域之间的共享标签空间的数据将通过对抗学习策略进行对齐,以进行诊断知识迁移。进一步分析了每个阶段的理论上界,并将其结合到优化过程中,使得分散阶段的类间分离性和吸引阶段的类内紧凑性得到改善。基于轴承和齿轮箱设计了多个OSDT任务,实验结果表明,TPTLN在诊断精度和迁移鲁棒性方面上级其他代表性方法。
在未来,一个更具挑战性的问题,称为通用域适应(Universal Domain Adaptation, UDA)的机械诊断将被探索。在UDA问题中,源域和目标域都包含未知的故障数据,这可以看作是OSDT的一个更广泛的情形。

编辑:曹希铭

校核:李正平、张泽明、张勇、王畅、陈凯歌、赵栓栓、董浩杰

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


来源:故障诊断与python学习

附件

免费链接.txt
ACTMechanicalSystem振动通用理论电机DCS控制数控
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-22
最近编辑:6月前
故障诊断与python学习
硕士 签名征集中
获赞 57粉丝 62文章 133课程 0
点赞
收藏
作者推荐

周期振动与准周期振动有什么区别?两个不同频率的振动叠加之后还是周期振动吗?

背景及摘要很多初学者刚接触故障诊断可能觉得很简单,套用深度学习模型进行训练,分类准确率很容易就达到99%。在写论文时,这样的确没问题。但是在工作或者在解决实际问题时,几乎是用不上(至少目前是这样)。 最近在读时献江老师等人的《机械故障诊断及典型案例解析》这本书时,发现其内容真的很丰富,故障诊断方法讲解的详细全面,且有实际丰富的案例,更加容易消化理解各方法特点及其应用场景。 上期分享了机械振动的3种基本动力学模型及3类振动传感器测量原理简介,这期给大家分享机械系统振动的概念及分类。 参考资料:书籍:机械故障诊断及典型案例解析(第2版,时献江) 目录 目录摘要1. 机械系统振动的概念及分类 1.1 机械振动的基本概念 1.2 机械振动的分类 1.3 机械振动的描述2. 实战代码3. 总结摘要本节将介绍机械振动基础知识,机械振动的基本概念、按不同指标进行分类、机械振动的三要素。 通过阅读本文将了解到(或带着以下疑问去阅读,答案见总结部分) 自由振动、受迫振动、自激振动是怎么区分的?低频、中频、高频振动各自的频率范围是多少?周期振动和准周期振动的区别? 两个不同频率的振动叠加之后还是周期振动吗? 1、机械振动的概念及分类1.1 机械振动的基本概念机械振动是系统在某一位置(通常是静平衡位置)附近做往复运动。振动的强弱用系统的位移、速度或加速度表征。机械振动广泛存在于机械系统中,如钟摆的摆动、汽车的颠簸及活塞的运动等。机械振动的一个主要应用就是振动诊断,其以机械系统在某种激励下的振动响应作为诊断信息的来源,通过对所测得的振动参量(振动位移、速度或加速度)进行各种分析处理,并借助一定的识别策略,判断机械设备的运行状态,进而给出机械的故障部位、故障程度以及故障原因等方面的诊断结论。 1.1 机械振动的分类(1) 按产生振动的原因分类根据机器产生振动的原因,可将机械振动分为三种类型自由振动:给系统一定的初始能量后所产生的振动。若系统无阻尼,则系统维持等幅振动;若系统有阻尼,则系统为自由衰减振动。受迫振动:元件或系统的振动是由周期变化的外力作用所引起的,如不平衡、不对中所引起的振动。自激振动:在没有外力作用下,只是由于系统自身的原因所产生的激励引起的振动,如旋转机械的油膜振荡、喘振等。机械故障领域所研究的振动,多属于受迫振动和自激振动。对于减速箱、电动机、低速旋转设备等机械故障,主要以受迫振动为主,通过对受迫振动的频率成分、振幅变化等特征参数分析,来鉴别故障。对于高速旋转设备以及能被工艺流体所激励的设备,如汽轮机、旋转空气压缩机等,除了需要监测受迫振动的特征参数外,还需监测自激振动的特征参数。(2) 按激振频率与工作频率的关系分类同步振动:机械振动频率与旋转转速同步(即激振频率等于工作频率),由此产生的振动称为同步振动。例如转子不平衡会激起转子的同步振动。亚同步振动:振动频率小于机械的旋转频率的振动称为亚同步振动,滑动轴承的油膜涡动频率约为同步旋转频率的一半,是典型的亚同步振动。(3) 按振动所处频段分类按照振动频率的高低,通常把振动分在如下3个频段低频振动, 采用低通滤波器(截止频率 )滤除高频信号,进行谱分析等处理。这个频段通常包含设备的直接故障频率成分,故不需要太复杂的信号处理手段,缺点是各种部件的故障频率混叠在一起,一些部件的微弱故障信号分离与识别困难。中频振动, 采用高通或带通滤波器滤除低频信号,再进行相关谱分析等处理。这个频段通常包含设备的结构共振故障频率成分,可采用加速度传感器获得。通常需要采用包络解调或细化等特殊信号处理方法,提取结构共振频率调制的低频故障信息,避免其他部件的低频段故障频率的影响。高频振动, 这个频段仅用于滚动轴承诊断的冲击脉冲法,采用加速度传感器的谐振频率来获取故障的冲击能量等。应当指出,目前,频段划分的界限尚无严格规定和统一标准。不同行业,或同一行业中对不同的诊断对象,其划分频段的标准都不尽一致。(4) 按描述系统的微分方程分类可分为线性振动和非线性振动。线性振动可用常系数线性微分方程来描述,其惯性力、阻尼力及弹性力只分别与加速度、速度及位移成正比;非线性振动不存在这种线性关系,需要用非线性微分方程来描述。(5) 按振动系统的自由度分类可分为单自由度和多自由度系统。自由度是指在任意时刻确定机械系统位置所需的独立坐标数目。(6) 按振动的运动规律分类按振动的运动规律,一般将机械振动分为如图1所示的几种类型图1 机械振动的分类下面主要依据这种分类方式,分别对机械振动进行进一步详细描述 1.3 机械振动的描述(1) 简谐振动图2 简谐振动简谐振动可用图2上半部所示的弹簧质量模型来描述。当忽略摩擦阻力时,在外力作用下,将质量块离开平衡点后无初速度释放,在弹簧力的作用下,质量块会在平衡点做连续的左右振动,如果取其平衡位置为原点,运动轨道为z轴,那么质点离开平衡位置的位移z随时间变化的规律如图2下半部分所示。如果没有任何阻力,这种振动便会不衰减地持续下去,这便是简谐振动。简谐振动 的数学表达式为: 式(1)式中 ----时间,s或ms; ----振幅或幅值,μm或mm; ----频率,Hz; ----初始相位,rad。其中,振幅 表示质点离开平衡位置( )时的最大位移的绝对值,称为振幅,振幅反映振动或故障的强弱。振幅不仅可以用位移表示,也可以用速度和加速度来表示。由于振幅是时变量,在时域分析中,通常用峰值 ,峰-峰值 表述瞬时振动的大小,用振幅的平方和或有效值表示振动的能量。例如,很多振动诊断标准都是以振动烈度来制定的,而振动烈度就是振动速度的有效值。图中 是简谐振动的周期,即质点再现相同振动的最小时间间隔。其倒数称为频率 , ,表示振动物体(或质点)每秒钟振动的次数,单位为Hz。频率是振动诊断中一个最重要的参数,在机械设备中,每一个运动的零部件都有其特定的结构固有振动频率和运动振动频率,某种频率的出现往往预示着设备存在某种特定类型的故障,我们可以通过分析设备的频率特征来判别设备的工作状态。频率 还可以用圆频率 来表示,即: 。 称为简谐振动的初相角或相位,如图3(a)所示,表示振动质点的初始位置。相位测量分析在故障诊断中亦有相当重要的地位,可用于谐波分析、设备动平衡测量或振动类型识别等方面。简谐振动的特征仅用幅值 ,频率 (或周期)和相位 。三个特征参数就可以描故称其为振动三要素。图3 简谐信号及其频谱简谐振动的时域波形(也称简谐信号)如图3(a)所示,其为复杂的曲线形式,不易识别。如果从振动的三要素的频率成分来看,它只含有一个频率为 ,幅值为 的单一简谐振动成分,可以用图3(b)所示幅频关系图来描述,这样的图称为离散谱或线谱。同理,相频关系也可用图3(c)来表示。在工程信号处理领域,图3(b)和图3(c)分别称为图3(a)所示时域波形的幅值谱和相位谱,俗称频谱。可见,频谱可以把一条复杂的简谐曲线(由若干点组成)表示成一根谱线(一个点),具有信息简化和易于识别等特点,这是频谱表示方法的优点之一。简谐振动(信号)是最基本的振动(信号),不可以再分割。对于复杂的信号,我们可以采用傅里叶变换方法,先把其变换为多个或无限个简谐振动(信号)的叠加过程,然后再绘制频谱。(2) 周期振动实际上,很多机械振动并不具备简谐振动的特征,但在时间域上仍然呈现周期性称为周期振动,或称非简谐周期振动,对于周期振动,当周期为 时,对任何时间应该有: 式(2)式中, 为振动周期,s; ,为振动频率,Hz。图4 两个正弦信号的叠加(有公共周期)图4所示是两个简谐振动信号叠加成一个周期振动信号的例子。两个简谐信号 [图4(a)] [图4(b)]合成信号 如图4(c)所示,虽然可以看出其具有周期信号特征,但是却难以辨别其所包含的频率成分。如按图3所示的方法可以绘出其幅值频谱图如图4(d)所示,则可以清楚看出该合成信号的频率构成和幅值分布。我们知道,多个振动信号叠加后的公共周期是所有叠加信号的周期的最小公倍数,因此,图4所示 和 的周期分别为 、 、 的最小公倍数为 。即叠加后信号的合成周期为 为1,其倒数 称为基波频率,简称基频。(3) 非周期振动① 准周期振动图5 两个正弦信号的叠加(无公共周期)准周期振动信号具有周期信号的特征,实质为非周期信号。例如图5(c)所示的信号 由 、 两个信号组成: 信号的周期为 ; 信号的周期为 。由于 为无理数,理论上, 和 的最小公倍数趋于无穷大,合成信号 为非周期信号。实际上, 只能取其近似值,例如当 的近似值为1.7时, 此时合成周期为 ;当 的近似值为1.73时,此时合成周期为 。因此,实际信号呈现的是周期信号的特征。另外,准周期信号还可从其频谱中[图5(d)]分辨,通常两根谱线间不具备整数(公)倍数关系。② 瞬态振动瞬态振动只在某一确定时间内才发生,其不具备周而复始的特性,是非周期振动信号,也可以说它的周期 。因此,可以把瞬态振动信号看作是周期趋于无穷大的周期振动信号自由衰减振动[图6(a)]是一个典型的瞬态振动。瞬态振动信号的频谱特征是连续的,如图6(b)所示。图6 自由衰减振动(4) 随机振动随机振动是一种非确定性振动,不能用精确的数学关系式加以描述,仅能用随机过程理论和数理统计方法对其进行处理,其时间历程曲线如图7所示。图7 某机器振动信号通常把图7所示的所有可能得到的振动信号 的集 合称为随机过程 ,而每一条曲线 称为随机过程 的一个样本。对于各态历经的平稳随机信号,单个样本的统计特征与总体相同,所以可以使用单个样本代替总体。也就是说,如果能够证明某个随机过程是平稳且各态历经的,只需采集一个样本进行分析即可,这是随机信号处理的基础之一。但是,上述计算需要大量的统计数据,显然是不可能实现的,通常只能根据经验来进行评估。一般来说,工程中所见的振动信号多数是平稳且各态历经的,如电机在稳定载荷和稳定转速下的振动信号;刀具在一定吃刀量和稳定走刀速度下的切削力信号等。而电机在启停过程中的振动信号、刀具在进刀和退刀过程中的切削力信号则为非平稳信号。设备在实际运行中,由故障引起振动一般具有一定的周期成分,往往被淹没在随机振动信号之中。当设备故障程度加剧时,随机振动中的周期成分会加强,从而使整台设备振动增大。因此,从某种意义上讲,设备振动诊断的过程就是从随机振动信号中提取和识别周期性成分的过程。2、实践代码 下面将演示文中图4、5、6的生成,建议在jupyter上演示。图4 两个正弦信号的叠加(有公共周期) import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei'] # 显示中文plt.rcParams['axes.unicode_minus'] = False # 显示负号font = {'family': 'Times New Roman', 'size': '20', 'color': '0.5', 'weight': 'bold'}##========生成第1个模拟信号=======##fs = 100 # 采样率100Hzf1 = 2t = np.linspace(0, 10, 10*fs) # 采集时长10sx1 = 10*np.sin(2*np.pi*f1*t+np.pi/6) # x1(t)=10sin(2*pi*2*t+pi/6)# 绘制时域图plt.figure(figsize=(10, 6))plt.subplot(2, 1, 1)plt.title('时域图')plt.plot(t, x1, label='x1(t)=10sin(2*pi*2*t+pi/6)', color='b')plt.xlabel('时间 (s)')plt.ylabel('幅值')plt.legend()plt.show()##========生成第2个模拟信号=======##fs = 100 # 采样率100Hzf2 = 3t = np.linspace(0, 10, 10*fs) # 采集时长10sx2 = 5*np.sin(2*np.pi*f2*t+np.pi/3) # x1(t)=10sin(2*pi*2*t+pi/6)# 绘制时域图plt.figure(figsize=(10, 6))plt.subplot(2, 1, 1)plt.title('时域图')plt.plot(t, x2, label='x2(t)=5sin(2*pi*3*t+pi/3)', color='b')plt.xlabel('时间 (s)')plt.ylabel('幅值')plt.legend()plt.show()##========生成第3个模拟信号=======##x3 = x1 + x2# 绘制时域图plt.figure(figsize=(10, 6))plt.subplot(2, 1, 1)plt.title('时域图')plt.plot(t, x3, label='x1(t)+x2(t)', color='b')plt.xlabel('时间 (s)')plt.ylabel('幅值')plt.legend()plt.show()##========生成第3个信号FFT图=======### 计算频域图fft_result = np.fft.fft(x3)fft_freq= np.fft.fftfreq(len(x3), d=t[1]-t[0]) # FFT频率fft_amp= 2*np.abs(fft_result)/len(t) # FFT幅值# 绘制频域图plt.subplot(2, 1, 2)plt.title('频域图')plt.plot(fft_freq[0: int(len(t)/2)], fft_amp[0: int(len(t)/2)], label='Frequency Spectrum', color='b')plt.xlabel('频率 (Hz)')plt.ylabel('幅值')plt.legend()plt.tight_layout()plt.show() 输出结果:图5 两个正弦信号的叠加及其频谱图 ##========生成第1个模拟信号=======##fs = 100 # 采样率100Hzf1 = np.sqrt(3)t = np.linspace(0, 10, 10*fs) # 采集时长10sx1 = 0.9*np.sin(2*np.pi*f1*t+np.pi/6) # x1(t)=10sin(2*pi*2*t+pi/6)# 绘制时域图plt.figure(figsize=(10, 6))plt.subplot(2, 1, 1)plt.title('时域图')plt.plot(t, x1, label='x1(t)=10sin(2*pi*2*t+pi/6)', color='b')plt.xlabel('时间 (s)')plt.ylabel('幅值')plt.legend()plt.show()##========生成第2个模拟信号=======##fs = 100 # 采样率100Hzf2 = 2t = np.linspace(0, 10, 10*fs) # 采集时长10sx2 = 0.9*np.sin(2*np.pi*f2*t+np.pi/3) # x1(t)=10sin(2*pi*2*t+pi/6)# 绘制时域图plt.figure(figsize=(10, 6))plt.subplot(2, 1, 1)plt.title('时域图')plt.plot(t, x2, label='x2(t)=5sin(2*pi*3*t+pi/3)', color='b')plt.xlabel('时间 (s)')plt.ylabel('幅值')plt.legend()plt.show()##========生成第3个模拟信号=======##x3 = x1 + x2# 绘制时域图plt.figure(figsize=(10, 6))plt.subplot(2, 1, 1)plt.title('时域图')plt.plot(t, x3, label='x1(t)+x2(t)', color='b')plt.xlabel('时间 (s)')plt.ylabel('幅值')plt.legend()plt.show()##========生成第3个信号FFT图=======### 计算频域图fft_result = np.fft.fft(x3)fft_freq= np.fft.fftfreq(len(x3), d=t[1]-t[0]) # FFT频率fft_amp= 2*np.abs(fft_result)/len(t) # FFT幅值# 绘制频域图plt.subplot(2, 1, 1)plt.title('频域图')plt.plot(fft_freq[0: int(len(t)/2)], fft_amp[0: int(len(t)/2)], label='Frequency Spectrum', color='b')plt.xlabel('频率 (Hz)')plt.ylabel('幅值')plt.legend()plt.tight_layout()plt.show() 输出结果:图6 衰减信号及其频谱图 ##========生成第1个模拟信号=======##fs = 100 # 采样率100Hzf1 = 3 # 频率n = 0.5 # 衰减系数t = np.linspace(0, 10, 10*fs) # 采集时长10sx4 = 10*np.exp(-n*t)*np.sin(2*np.pi*f1*t+np.pi/6) # x1(t)=10sin(2*pi*2*t+pi/6)# 绘制时域图plt.figure(figsize=(10, 6))plt.subplot(2, 1, 1)plt.title('时域图')plt.plot(t, x4, label='$x_4(t)=10e^{-0.5 t}sin(2\pi3t)$', color='b')plt.xlabel('时间 (s)')plt.ylabel('幅值')plt.legend()plt.show()##========生成衰减信号FFT图=======### 计算频域图fft_result = np.fft.fft(x3)fft_freq= np.fft.fftfreq(len(x4), d=t[1]-t[0]) # FFT频率fft_amp= 2*np.abs(fft_result)/len(t) # FFT幅值# 绘制频域图plt.figure(figsize=(10, 6))plt.subplot(2, 1, 1)plt.title('频域图')plt.plot(fft_freq[0: int(len(t)/2)], fft_amp[0: int(len(t)/2)], label='Frequency Spectrum', color='b')plt.xlabel('频率 (Hz)')plt.ylabel('幅值')plt.legend()plt.tight_layout()plt.show() 输出结果:3、总结 自由振动、受迫振动、自激振动是怎么区分的?自由振动:无外界力干扰、由本身的初始动能引起的振动,如钟摆运动受迫振动:有外界力干扰的振动,如不平衡、不对中自激振动:无外界力干扰,由系统本身产生的激励引起的振动,如油膜振动、喘振低频、中频、高频振动各自的频率范围是多少?低频振动: 中频振动: 高频振动: 周期振动和准周期振动的区别?周期振动:在时域上呈现周期性振动准周期振动:时域上看像周期信号,其实其周期为无穷大。 两个不同频率的振动叠加之后还是周期振动吗?多个振动信号叠加后的公共周期是所有叠加信号的周期的最小公倍数,如果公倍数为实数,则为周期振动;如果公倍数为无穷大,则为准周期振动。 注明本文内容摘抄自《机械故障诊断及典型案例解析》,仅供学习交流,若有侵权,烦请联系处理!参考文献[1] 《机械故障诊断及典型案例解析,第2版,时献江等,2020年第一次印刷》来源:故障诊断与python学习

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