首页/文章/ 详情

中科院一区Top开源代码推荐|基于单侧对齐策略下的类别缺失鲁棒域自适应故障诊断

2月前浏览4687

迁移学习是当前故障诊断领域的研究热点,然而针对其开源代码较少,小编整理搜集了一些开源代码与大家进行分享。本期分享的是基于单侧对齐策略下的类别缺失鲁棒域自适应故障诊断,该论文发表于中科院一区Top期刊IEEE Transactions on Industrial Electronics,并提供有该作者原创的开源代码,因此这篇开源代码适合参考借鉴并在上面进行改进学习,适合具备一定的深度迁移学习基础知识的学习者。该方法很贴合实际工程应用场景,非常值得阅读

1 论文基本信息

论文题目Missing-Class-Robust Domain Adaptation by Unilateral Alignment for Fault Diagnosis

论文期刊IEEE Transactions on Industrial Electronics

Doihttps://ieeexplore.ieee.org/abstract/document/8949730

论文时间2020年

作者Qin Wang, Gabriel Michau, Olga Fink

机构Department Information Technology and Electrical Engineering, ETH Zürich, Zürich, Switzerland

2 摘要

领域自适应的目的是将源域中学习到的知识迁移到目标领域来提高模型性能。目前,领域对抗方法在减小源域和目标域之间的分布偏移方面取得了很好的成果。然而,这些方法均假设两个域之间的标签空间相同。这种假设对真实的应用造成了明显的限制,因为目标训练集可能不包含完整的类别。在本文中,我们证明了领域对抗方法的性能在训练过程中容易受到不完整目标标签空间的影响。为了克服这个问题,我们提出了一个两阶段的单侧对齐方法。所提出的方法利用源域的类间关系单独将目标域与源域对齐。所提出的方法在目标训练集缺失类别的故障诊断任务中进行了评估,证明了所提出的方法的有效性。
关键词故障诊断,领域自适应,特征对齐

3 目录

1 论文基本信息
2 摘要
3 目录
4 引言
5 相关工作
5.1 领域自适应中的类别缺失
5.2 领域自适应在故障诊断中的应用
6 所提出的方法
6.1 阶段一:只基于源域学习到类间关系的提取
6.2 阶段二:单侧对抗域自适应
6.3 总结
7 实验
7.1 数据集
7.2 数据预处理
7.3 模型实现
7.4 实验结果
8 总结
注:本文只选中原论文部分进行分享,若想拜读,请下载原论文进行细读。
小编能力有限,如有翻译不恰之处,请多多指正~

4 引言

近年来,深度学习方法在各种任务中均已经取得了显著的成果。然而,这些方法不仅需要大量的训练集,还需要标签来学习数据特征。特别是对标签的要求,这很昂贵甚至有时候是不可能获得的。因此,由于深度学习方法的这种数据密集型性质,限制了它们在实际应用中的效果。此外,如果训练集和测试集之间存在分布偏移,会导致模型很难泛化。
无监督领域自适应技术提供了一种有前景的解决方案来缓解缺失标签和域偏移这两个挑战。领域自适应的目的是利用未标记的目标数据来提高模型在目标领域的泛化能力。它允许知识从源域迁移到不同但相关的目标域。最近,对抗域自适应方法以对抗方式对齐源域和目标域数据,并在潜在空间中加强领域不变特征,显着提高了领域自适应性能。这些无监督领域自适应方法通过跨域迁移已知知识来减小对目标域上的标签的需求。然而,它们通常假设源域数据和目标数据的标签空间是相同的。这种假设对实际应用过程中产生了限制,因为训练集可能不包含完整的类别集 合。
在目标域中缺失类别的情况下,直接使用对抗域对齐可能会导致模型性能有很大不确定性。具有完整标签的源域和仅包含标签子集类别的目标训练集之间执行域对齐,会对目标训练集中缺失类别的模型性能产生负面影响。除此之外,直接领域对齐也会对类间关系产生负面影响。当领域自适应技术应用于不相同的标签空间时,在训练期间存在于目标域中的类别和缺失类别之间的对齐效果是不同的。这意味着对齐域的类间关系可能以不可预测的方式从源域中的原始类间关系扭曲。可以预期的是,当目标域中有更多的缺失类时,这种错位效应更大。
为了减轻这种对齐的负面影响,更好地将学习到的类间关系从源域转移到目标域,我们建议将目标域单方面对齐源域,而不是将两者对齐到未知的中间空间。所提出的方法的最终目标是使对抗域自适应对目标域中的缺失类别具有鲁棒性。该方法更好地利用从源域中学习到的判别信息。由于我们无法了解目标域中某些类别的样本,因此只能通过使用从源域中了解到的类间关系来推断它们。我们认为,这种方法将提供一个更强大的表示为目标域。所提出的方法是主要包括两步:(1) 首先,只基于源域数据训练一个锚模型,并提取预训练的源特征。(2) 然后,通过最小化源域特征和预训练特征之间的距离,同时执行源域和目标域特征对齐,目标域分布被单向变换以匹配源域分布。
综上所述,我们提出了一种解决目标域训练数据中缺失类的领域自适应问题的解决方案,同时仍然在目标域中的所有类上评估模型的性能。与以前的方法类似,我们以一种对抗性的方式对齐特征。然而,与以往的方法不同的是,我们将它们对齐源域侧。为了证明所提出的方法在实际应用中的适用性,我们评估了我们的方法在轴承数据集上的故障诊断任务的两个不同的操作条件之间迁移学习到的知识的任务。通过应用所提出的单侧对齐方法,我们能够提高轴承数据集的诊断性能。

5 相关工作

5.1 领域自适应中的类别缺失

在领域自适应类别缺失的案例中,目标域类别是源域类别的子集。[24]建议使用重要性加权对抗网络来关注共同类别。[25]通过降低离群源域类别数据的权重来消除负迁移。[26]提出了跨域学习领域不变表示和渐进加权方案。但上述实验中,在测试过程没有评估缺失的目标类。这是与本文的关键区别。

5.2 领域自适应在故障诊断中的应用
在故障诊断问题中,当对工况进行调整时,漏类问题尤为严重。在不考虑缺失类别的背景下,领域自适应方法才刚刚被引入到故障诊断问题中。研究者已经提出了几种方法[34],[35]来处理故障诊断中的缺失类。然而,他们假设目标训练数据集只包含一个类(健康状况)。与我们的论文的主要区别在于,我们提出的方法能够处理不同数量的缺失类,这意味着我们提出的方法更通用,因为我们不假设目标训练数据都来自健康状况。

6 所提出的方法

目标域训练集中的缺失类别使得标准域自适应方法的直接应用变得困难。大多数方法背后的统一思想是将源域和目标域转换到共同的特征空间。这种一致性需要来自源域和目标域以及所有类别的充分支持。目标域信息的缺失可能导致比对的意外。潜在的问题之一是,对齐直观地改变了目标域中给定类别的分布,而对于目标域中缺失的类别没有给出指导。当前已知类别和缺失类别之间的这种不平衡的对齐行为可能会扭曲良好学习的源域类间关系,从而使对齐效果不佳甚至恶化模型性能。

为了充分利用目标域中有限的健康数据,提高模型在所有类别上的性能,我们提出了一个两阶段的框架。我们首先学习源域中的分类模型,并提取源域数据的相关特征。然后,我们应用对抗域自适应技术,并对齐源域数据和目标域数据。我们通过确保单侧对齐来加强对齐,也就是说,迫使对齐的特征尽可能接近第一步中学习到的特征。我们在图2中可视化所提出的方法。

图2 提出的两阶段单边对准方法
注: (阶段1)我们使用单独的网络提取源域特征; (阶段2)我们通过添加一致性损失来单侧对齐分布。使用当前计算的源域特征及其对应的预训练特征来计算损失。  
6.1 阶段一:只基于源域学习到类间关系的提取

由于目标域中存在缺失的类别,因此只能从源域数据中学习类间关系。我们建议预先训练一个单独的神经网络来提取这种关系。我们假设我们拥有与第二阶段中使用的主网络相同的骨干架构:由    参数化的特征提取器    ,以及由    参数化的分类器    。因此,我们应用标准的有监督训练模型来学习这种关系。形式上,我们通过使用以下损失函数来训练这个单独的网络:   其中,  是softmax交叉熵损失函数,广泛用于有监督分类问题。网络仅使用源域数据  训练模型。在该阶段的训练之后,该阶段1网络被冻结。

在阶段1的网络上成功训练之后,我们可以为每个源域训练样本  提取预训练的源域特征    。这些特征包含有意义的类间关系,因为简单的分类器能够对源域数据进行强有力的预测。然后,这些特征被用作阶段2的参考。
6.2 阶段二:单侧对抗域自适应
6.2.1 现有的对抗域对齐

图5 所有的故障诊断实验中使用的主干网络  

由于DANN在计算机视觉中的成功应用,以及其后来在工业应用中应用的启发。我们建议应用这种现成的领域自适应技术于缺失类别的迁移任务。如图5所示,我们的主要架构有三个组件:特征提取器    ,分类器    和鉴别器    。对齐是通过引入区分来自源域的健康特征和来自目标域的健康特征来实现的。同时,我们鼓励特征提取器    欺骗神经网络,使得特征不偏向它们开始的状态。这等价于下面的mini-max问题:   其中,    是源域数据,    是目标域数据,    是softmax交叉熵损失函数,    是域分类子任务的交叉熵损失。目标函数类似于生成对抗网络(Generative Adversarial Networks, GAN)。它包括两个部分:监督学习的分类损失和对齐的领域对抗损失。

我们最小化分类损失,也就是特征提取器和分类器的参数。除了这种监督损失之外,我们还最大化了包括特征提取器参数的对抗性对齐损失,以便实现领域不变特征。我们进一步最小化对抗对齐损失。因此,训练神经网络以提供对原始特征的精确预测。

通过在将特征提取器的梯度传递到域分类器之前反转它们,我们可以重新制定问题并减轻源域和目标域分布之间的H-发散。我们采用了这种优化技术来解决域自适应问题与缺失类别。上述使用来自DANN的梯度反转层(GRL)损失函数可以写为:   因此,它可以作为一个端到端的学习问题进行训练。

6.2.2 使用单侧对齐作为附加损失
DANN方法直接将完整的源域数据与具有缺失类别的目标域数据对齐。因此,预计会出现严重的不对齐。为了避免上述对齐的潜在负面影响,并在应用领域自适应技术的同时保留类间关系,我们建议将目标分布单侧对齐到源域分布的相应部分,而不是将两者对齐到共享的新空间。我们认为预训练的源域特征是所有类别的良好表示,因为可以实现类可分性。为了传递这种良好的表示,在阶段2中,使用额外的约束从而让对齐的源域特征尽可能接近预先训练的特征。如果对齐成功,则目标域特征也应该与预先训练的源域特征对齐。
为了在使用部分领域对抗对齐时保持类间关系,我们使用预训练的源域特征    ,并迫使对齐的源域特征接近预训练的源域特征:   其中K是特征空间中的特征数量。我们将这个附加约束添加到上一段中描述的损失函数中。因此,总损失函数变为:  
这种附加损失受到[42]中引入的一致性损失的启发,其中使用相似性距离来提高对象检测任务的边界框预测器的跨领域鲁棒性。然而,它在这里用于不同的目的,因为我们试图鼓励在一个方向上对齐并保持类间关系。我们使用    和    损失测试额外损失,发现它们之间没有显著差异。

6.3 总结

总而言之,除了通过DANN对齐源域和目标域分布之外,我们还提出了一个附加的约束条件,以使对齐朝着预训练的源域特征单向进行。单侧对齐的主要目标是保存从源域数据中学习到的类间关系,其中所有类别的知识都是可用的。

7 实验

在下面的部分中,我们将展示所提出的方法在不同的故障诊断任务上的优势。故障诊断是一个分类任务,我们的方法可以直接应用于这里。通常的标签由健康状态和故障状态组成。在本节中,我们故障诊断问题可以被理解为是目标训练集中80%的类别缺失时的无监督领域自适应。

7.1 数据集

我们在故障诊断数据集上进行实验:凯斯西储大学(Case Western Reserve University, CWRU)。

我们尽可能地遵循[35]所使用的设定。因此,驱动端加速度计数据用作我们的输入。本文所涉及的标签列表如表2所示,即考虑了三种不同的故障类型以及一种健康状态。IF代表内圈故障,BF代表滚动体故障,OF代表外圈故障。每种故障类型包含三个子类型,故障直径为7,14,21mil。采样率为12kHz。当数据在12kHz时不可用时,我们会对其进行下采样,以确保所有实验中的采样率一致。

表2 CWRU数据集的分类定义  

CWRU数据集中有四个不同的负载{0,1,2,3}。在这四个不同的负载下进行跨域自适应。例如,任务0 → 1意味着工作负载0是带有标签训练样本的源域,工作负载1是我们想要提高模型性能的目标域。

7.2 数据预处理

图4 预处理步骤取自[29],[35]  
对于CWRU数据集,我们遵循与[29],[35]相同的预处理步骤。如图4所示,首先,我们对每个原始记录进行下采样和截断。其次,我们将每个序列分为200个序列,每个序列包含1024个点。最后,使用快速傅立叶变换[46],每个序列被转换为512个傅立叶系数的向量。  
7.3 模型实现

图5 所有的故障诊断实验中使用的主干网络

我们在图5中可视化了主干模型和我们的框架的细节。我们使用相同的架构[29],[35]来进行公平的比较。
主干网络[35]由特征提取器和分类器组成。每个卷积层的卷积核长度为3,隐藏层大小为10。之后相应地添加丢弃层,丢弃率为0.5。然后,信号被平坦化并通过全连接层转换为大小为256的特征。分类器是一个大小为256的单隐藏层网络,使用交叉熵损失函数。
我们只使用源域负载数据来训练这个主干网络作为我们的基线模型。为了实现我们的模型,还需要一个包含两个完全连接的隐藏层以及softmax交叉熵损失的隐藏层。
主干网络和附加鉴别器的体系结构如图5所示。CWRU模型使用Sigmoid激活函数训练2000个Epoch。我们统计了5次运行的平均准确度和标准偏差。
7.4 实验结果
7.4.1 基于80%缺失类别的CWRU数据集的无监督领域自适应实验
在这个实验中,目标训练数据集由所有类别的子集组成。需要再次强调,在该实验中,没有一个目标类别标签用于训练。我们考虑以下来自目标机器的未标记训练数据集:   进行缺失类别的实验。我们考虑k = 2进行演示。
表3 基于80%缺失类别的CWRU数据集的无监督领域自适应实验结果  

在这种新设置下的结果如表3所示,包含基准模型、DANN和具有我们的附加单侧约束的DANN。与基准模型相比,原始DANN并没有提供显著的改善。这可能是由于试图将所有类别的源域特征与仅包含20%类的目标域特征对齐的负面影响所造成的。这可能导致类内关系的扭曲。

所提出的单侧对齐方法,解决了这种负面影响,并加强了对准效率。通过增加额外的一致性损失,相比原始的DANN,它提升了1.33%的准确率。

7.4.2 讨论
在案例研究中进行的故障诊断实验表明,当目标训练集中存在缺失类时,单侧对齐能够提高领域自适应问题的模型性能。
我们观察到单侧对齐几乎不会出现损害性能的情况。在这种情况下,结果表明实际上不需要校准:基准模型已经提供了非常高的精度。我们的研究结果表明,在这种情况下,准确度的下降是非常小的,甚至微不足道,而在许多其他情况下,准确度的增益是显着的。总体而言,所提出方法的效果显着提升了。

8 总结

在本文中,我们证明了当目标训练数据集中存在缺失类别时,直接应用对抗域自适应技术会导致性能下降。为了克服这个问题,我们利用源域的类间关系提出了单侧对齐,这是一种简单而有效的训练策略。我们在故障诊断任务上的实验展示了所提出的领域自适应方法在工业应用中的潜力,其中缺失类别的问题对所应用的方法施加了显着的限制。发展所提出的模型在样本缺失情况下的性能是未来的发展方向之一。

编辑:曹希铭

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

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

来源:故障诊断与python学习

附件

免费链接.txt
ACT通用ANSAUMElectric
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-04-22
最近编辑:2月前
故障诊断与python学习
硕士 签名征集中
获赞 44粉丝 41文章 102课程 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
联系我们
帮助与反馈