首页/文章/ 详情

综述 | 物理信息-数据驱动的剩余使用寿命预测综述:挑战与机遇(下)

19小时前浏览8

    本期给大家推荐司小胜教授团队的物理信息-数据驱动的剩余使用寿命预测综述:挑战与机遇(下)基于物理信息-数据驱动的剩余寿命预测已经成为预测领域的一个新兴话题。然而,目前还没有专门针对这一话题的系统综述。为了填补这一空白,文章回顾了基于物理信息的数据驱动剩余寿命预测方法的最新进展。将这类方法大致分为三类,即物理模型和数据融合方法基于随机退化模型的方法基于物理信息的机器学习(Physics-Pnformed Machine Learning, PIML)方法尤其以基于PIML方法为中心进行综述。通过讨论现有方法的优缺点,讨论了指导物理信息-数据驱动的剩余寿命预测方法未来发展的挑战和可能的机遇


    论文链接:通过点击本文左下角阅读原文进行在线阅读及下载

    论文基本信息

    论文题目:

    A review on physics-informed data-driven remaining useful life prediction: Challenges and opportunities

    论文期刊:Mechanical Systems and Signal Processing

    论文日期:2024年1月

    论文链接:

    https://doi.org/10.1016/j.ymssp.2024.111120 

    作者:Huiqin Li (a), Zhengxin Zhang (a), Tianmei Li (a), Xiaosheng Si (a)

    机构:

    a: Zhijian Laboratory, Rocket Force University of Engineering, Xi’an 710025, PR China

    通讯作者邮箱: 

    zhengxinzhang@tsinghua.org.cn (Z.  Zhang).

    sixiaosheng@126.com (X.  Si).   

    作者简介:

    司小胜,火箭军工程大学教授、博士生导师。2014年博士毕业于火箭军工程大学控制科学与工程学科(与清华大学联合培养)。近年来,主要从事随机退化系统剩余寿命预测与健康管理方面理论及应用研究,在EJOR、RESS、IEEE汇刊等国内外重要期刊发表论文50余篇,2篇论文为IEEE可靠性汇刊/EJOR近20/10年被引最多论文,出版中英文专著各1部,谷歌学术引用6200余次。先后主持国家自然科学优秀青年基金1项,完成国家自然科学基金面上项目2项,获国家自然科学二等奖(2019,排名3)、教育部自然科学一等奖(2018,排名3)、CAA自然科学一等奖(2016,排名3)、CAA优秀博士论文等。目前担任中国自动化学会技术过程的故障诊断与安全性专业委员会及大数据专业委员会委员,国际权威期刊《Mechanical Systems and Signal Processsing》编委(Editorial Member)

    目录

    1 摘要

    2 物理信息驱动的 RUL 预测概述

    3 物理模型和数据融合的RUL 预测方法

    基于随机退化模型的 RUL 预测方法

    5 基于 PIML 的 RUL 预测方法

    5.1 PIML 范式概述

    5.2 物理信息数据增强

    5.3 物理信息架构设计

    5.4 物理信息损失函数

    5.5 物理信息残差建模

    6  挑战与机遇讨论

    6.1 不完善物理模型下的 RUL 预测

    6.2 海量数据下的RUL预测

    6.3 基于 PIML 的 RUL 预测

    6.4 用于验证物理信息驱动方法的基准数据集

    6.5 RUL 预测的可解释性和可解释性

    6.6 融合物理退化观测和状态监测数据的 RUL 预测

    7 总结

    (以上标记章节为本文内容)

    摘要

    剩余寿命(Remaining Useful Life, RUL)预测,长期以来一直被认为是预测和健康管理(Prognostics and Health Management, PHM)中的关键技术之一。对保障系统的安全性和可靠性,降低运行和管理成本至关重要。随着传感和状态监测技术的迅猛发展,数据驱动的RUL预测引起了人们的广泛关注,并研究了各种数据驱动的RUL预测方法。

    尽管学者们对数据驱动的RUL预测方法进行了广泛的研究,但这些方法的成功应用在很大程度上取决于数据的数量和质量,纯粹的数据驱动方法可能产生物理上不可行/不一致的RUL预测结果,并且具有有限的推广性和可解释性。值得注意的是,越来越多的人认为,将物理或领域知识嵌入到数据驱动方法中,并开发基于物理信息的数据驱动方法,将有望提高RUL预测结果的可解释性和效率,并降低对数据量和质量的依赖。在这种背景下,基于物理信息-数据驱动的RUL预测已经成为预测领域的一个新兴话题。然而,目前还没有专门针对这一话题的系统综述。为了填补这一空白,本文回顾了基于物理信息的数据驱动RUL预测方法的最新进展。本文将这类方法大致分为三类,即理模型和数据融合方法基于随机退化模型的方法基于物理信息的机器学习( Physics-Pnformed Machine Learning, PIML)方法。由于基于PIML的方法在过去五年中得到了快速的发展,因此本文尤其以这类方法为中心进行综述。通过讨论现有方法的优缺点,讨论了指导物理信息数据驱动的RUL预测方法未来发展的挑战和可能的机遇。

    关键词:预测,剩余寿命,物理信息,数据驱动,可解释性

    5 基于 PIML 的 RUL 预测方法

    5.1 PIML 范式概述

    机器学习模型因其强大的处理高维非线性数据和从海量数据中捕捉隐含表示的能力,在海量应用和预测领域得到了广泛的应用。神经网络( Neural Networks, NN)作为典型的机器学习模型,在RUL预测领域得到了广泛的应用[112–116]。众所周知,NN可以映射任意非线性函数,在解决复杂的实际系统相关问题方面具有明显的优势。其基本过程是将监测数据输入NN模型进行训练,输出预测结果,结合真实值与损失函数反向优化NN的结构参数,实现输入数据与输出结果之间的非线性映射关系。此类方法的主要优点是纯数据驱动,即使在没有底层物理知识的情况下,也能在模型拟合方面具有很强的灵活性和普适性。尽管机器学习方法能力强大、应用广泛,但大多数方法无法提取可解释的信息,并且以黑箱方式运行,缺乏透明度和可解释性。此外,纯数据驱动的特性将导致这些模型可能很好地符合观察结果,但由于在可用标记数据之外进行外推,预测可能在物理上不一致或难以置信,从而导致泛化性能不佳。因此,迫切需要通过整合有关物理控制方程或物理约束的物理或领域知识来“教授”机器学习模型 [117]。因此,提倡物理信息学习来提高学习算法的性能。Karpatne 等人 [118] 首次正式概念化了用于知识发现的理论引导数据科学范式,并通过来自不同学科的说明性示例,重点介绍了一些将科学理论整合到不同研究主题的数据科学模型中的新研究的有希望的途径。据观察,物理信息学习可以看作是理论引导数据科学范式的具体实现。

    受到NN可以自动逼近任意非线性函数的事实和[118]中理论指导数据科学对知识发现的渴望的启发,Karniadakis等人[119]首次提出了“物理信息神经网络(Physic-informed Neural Networks , PINN)”来解决偏微分方程(Partial Differential Equations, PDE)的正问题和逆问题。具体来说,本文中PINN的基本思想是将PDE中的微分形式约束融入到NN的损失函数中,从而得到具有物理模型约束的NN。与传统NN相比,PINN可以近似观测数据,并自动满足PDE的物理性质,如守恒、不变性和对称性。在本文中,我们以求解粘性Burgers方程正问题为例,介绍PINN的设计思想。这里,粘性Burgers方程[120]通常表示为:   
    具体来说,用于求解粘性 Burgers 方程的 PINN 网络结构如图 7 所示。
    图7 用于求解粘性 Burgers 方程的 PINN 网络结构
    如图 7 所示,PINN 考虑构建一个 NN 来近似 PDE (6) 的解。为此,  被定义为 PDE 解的替代,  被定义为 PDE 残差。损失函数包括从初始和边界条件对  进行数据测量的数据驱动损失   和  PDE 的物理驱动损失:
      
    且 

     
    其中  和  是通过初始状态和边界状态获得的两组训练数据,   是   处  的值  是数据的数量,  和  是用于平衡数据驱动和物理驱动的损失项之间相互作用的权重。
    输入时间和空间数据后,首先利用全连接NN逼近函数    ,然后利用自动微分技术得到PDE的残差约束和初始边界值,并作为正则项代入损失函数。最后利用梯度下降法等优化算法得到NN的权重参数和PDE的物理参数。在上述实现过程中,加入物理驱动的损失    是为了保证训练后的NN与物理规律一致,这是使ML模型与物理规律一致的最常见方法之一。将ML模型导向物理一致的输出的好处是多方面的。首先,计算基于物理的损失不需要观测数据,因此优化    允许在训练中包含未标记数据。其次,物理约束的加入可以缩小参数可能的搜索空间,为提高优化效率和用更少的标记数据进行学习,同时使训练后的输出保持与物理规律的一致性提供了可能性。第三,遵循所需物理特性的机器学习模型更有可能推广到训练中未见过的场景,并且可以提高训练后的机器学习模型的通用性。

    受上述优点的推动,PIML 已成为 ML 领域的新兴主题,并在过去五年中得到了迅速发展和应用。以上主要说明了使用 NN 构建物理信息损失函数的情况,以满足主要愿望,即结合物理知识可以产生更易于解释的 ML 模型,这些模型在样本外场景下仍保持稳健,并可以提供准确且物理一致的预测。还有许多其他方法可以将物理学嵌入 ML 模型以开发 PIML,包括物理信息数据增强、物理信息架构设计、物理信息初始化、残差建模、混合物理-ML 模型等。在最近的一些全面而优秀的综述中可以找到使用不同方式嵌入物理的 PIML 的详细进展,例如 [117,121,122]。

    虽然近年来PIML取得了重大进展,但本文主要关注将PIML应用于RUL预测的研究。根据RUL预测建模的整个流程和PIML的实现方式,现有的基于PIML的RUL预测方法大致可分为三类:物理信息化的数据增强[122]、物理信息化的架构设计[121]和物理信息化的损失函数[47]。此外,基于PIML的RUL预测可以通过利用ML模型预测物理模型的误差并修正预测结果来实现,因此我们将这种物理嵌入方式视为物理信息化的残差建模[40]。图8概述了用于RUL预测的PIML方法的总体框架,主要包括上述四种物理嵌入方式。

    图8 基于PIML的RUL预测方法的总体框架

    值得注意的是,尽管本节主要关注的 ML 方法是 NN,但上述基于物理的方法也可以适当地应用于其他 ML 方法,如高斯过程回归 (Gaussian Process RegressionGPR) 模型 [123]。在以下小节中,我们将分别讨论基于 PIML 的 RUL 预测方法的各类别的进展。
    5.2 物理信息数据增强
    基于ML模型的RUL预测通常需要大量高质量的训练数据,但重大系统(如武器、航空航天等)的实验成本高昂,测试过程耗时长,此时ML模型的性能很大程度上取决于退化监测数据的大小和质量。通过集成物理模型实现数据增强,可以降低ML模型对数据的依赖,丰富数据类型,有效提高RUL预测的精度和收敛性。目前,基于物理模型的数据增强方法主要有三种,如图9所示。

    图9 物理信息增强示意图

    实现物理信息数据增强的方法之一是借鉴迁移学习的思想[124]。其主要思想是利用物理模型生成的仿真数据预训练ML模型来初始化ML模型参数,然后利用实验监测数据更新ML模型,如图9(a)所示。基于这种思想,Kohtz 等人[125]提出了一种利用部分充电段曲线进行电池健康状态预测的PIML模型。在本文中,他们应用有限元模型生成仿真数据来训练GPR模型,并根据部分充电段的数据预测固体电解质界面厚度。基于电池实例数据和有限元仿真结果,建立了物理信息多保真模型来预测电池的健康状态。结果表明,提出的PIML模型可以准确、快速地估计健康状态。Shi 等人 [126] 建立了基于锂电池日历老化和循环老化的物理模型,并结合长短期记忆 (Long and Short-Term Memory, LSTM) 网络来学习从物理模型中获得的退化趋势与实时监测数据之间的映射关系。在利用物理信息的 LSTM 模型估计电池的退化模式后,再利用另一个 LSTM 网络通过学习物理信息的 LSTM 模型估计的退化趋势来预测锂电池在未来循环中的退化趋势和 RUL。在 [127] 中,考虑到两阶段退化的影响,基于希尔伯特谱构建了具有物理意义的时频健康指标,并将其作为 ML 模型的输入信号,对飞机冷却装置的 RUL 进行了预测。

    实现物理信息数据增强的另一种方法是将物理模型的输出和监测数据组合成一个增强数据集,用于训练 ML 模型 [128],如图 9(b)所示。Arias Chao 等人 [129] 通过解决基于物理模型的校准问题,推断出与复杂安全关键系统部件健康有关的不可观测模型参数。这些参数与传感器读数相结合,用作深度神经网络 ( Deep Neural Network , DNN) 的输入,以生成具有物理增强特征的数据驱动预测模型,实验证明该方法优于纯数据驱动方法。Thelen 等人 [130] 使用基于物理的半电池模型的模拟数据和早期退化数据来训练 ML 模型。通过扩展训练数据的观测空间,该模型可以在低退化数据点和高退化数据点之间进行插值,并更准确地估计后期容量和退化参数。在前人工作[130]的扩展基础上,Thelen 等人[131]利用模拟数据训练估计模型,再利用早期生命实验的老化数据修正估计模型的预测偏差,实验结果与对比分析进一步表明基于物理的模拟数据可以提高模型的预测精度。

    物理信息数据增强的第三种方式是构建数字孪生(Digital Twin, DT)等效模型。DT 技术 [132] 可以为物理实体构建高保真数字孪生模型并生成虚拟数据集,可作为物理信息数据增强的一种手段,如图 9 (c)所示。Meraghni 等人 [133] 提出了一种数据驱动的 DT 技术,整合质子交换膜燃料电池系统的物理知识,利用基于堆叠去噪自编码器的深度迁移学习模型在线预测健康状况。在文献 [134] 中,DT 与轴承寿命预测相结合。利用敏感特征构建孪生数据集框架。通过集成学习 Cat-Boost 方法补充缺失数据集,形成完整的数字孪生数据集,用于训练宏观和微观注意 Bi-LSTM 模型,从而获得最终的 RUL 预测结果。Wang 等 人[135] 开发了一种新的 DT 驱动框架,其中通过扩展有限元法建立的裂纹跟踪模型为径向基函数神经网络构建的高精度近似模型提供了充分有效的训练数据。然后,动态贝叶斯网络模型连接虚拟模型和物理模型进行 RUL 预测。验证结果表明,在提高结构疲劳寿命预测精度的同时,模型参数的不确定性可以显著降低。

    除了上述物理信息数据增强方法之外,还有一些途径可以实现物理信息数据增强和增强,例如物理信息数据预处理和物理信息数据生成。例如,Xiong 等人 [136] 提出了一种基于自适应深度学习的 RUL 预测框架,并在数据预处理中使用故障模式 (FM) 识别,其中开发了具有深度卷积神经网络的物理信息 FM 分类器,以提高 RUL 预测的可解释性和准确性。为了缓解基于 DL 的 RUL 预测中代表性故障时间轨迹可用性的限制,[137] 提出了一种结合受控物理信息数据生成方法和基于 DL 的预测模型的混合框架,用于利用生成的物理上合理的合成数据进行预测。在本文中,通过考虑控制生成器的五个基本物理约束,开发了一种受控物理信息生成对抗网络 (Generative Adversarial Network, GAN) 来生成合成退化数据。设计了一个基于物理的带惩罚项的损失函数作为正则化项,以确保合成数据中记录的系统健康状态变化趋势与底层物理定律一致。然后,将生成的合成数据用作基于 DL 的预测模型的输入,以获得 RUL 预测。

    通过文献分析发现,基于物理知识的数据增强可以基于物理知识对ML模型进行预训练,避免ML模型参数随机初始化导致的收敛速度慢、局部最优等问题,降低对监测数据量和质量的要求,降低模型训练的复杂度。但对于大型复杂系统,物理模型的计算成本较大,该方法的优势会受到影响。即使在具备物理知识的情况下,合成高质量的仿真数据仍然具有挑战性。当基于物理模型合成的仿真数据质量较低时,直接用于训练ML模型会带来过多的噪音,因此需要对仿真数据进行筛选,保留高质量数据用于后续的模型训练或模型微调。物理模型生成的仿真数据可能存在不同程度的可信度,或者与传感器监测的真实数据存在较大差距。最简单、最直接的方法是通过考虑可信度的差异来研究这两个数据源的权重分布。缩小差距的另一个潜在方向是开发先进的基于物理的生成数据增强技术,因为这种技术已被证明能够有效丰富数据数量和多样性 [137,138]。此外,由 DT 等先进智能技术支持的数据增强有助于提高生成的合成数据的可靠性,从而开发基于 PIML 的 RUL 预测方法。因此,构建可实时演化的高可靠性复杂系统 DT 模型值得在未来进行更多研究。

    5.3 物理信息架构设计

    尽管上一节讨论的基于物理的数据增强提供了具有物理意义的数据来训练 ML 模型,但 ML 结构仍然是一个无法解释的黑盒。因此,为了提高 ML 模型的可解释性,一种方法是使用架构属性来隐式编码所需的物理属性。NN 的模块化和灵活性有助于修改其网络结构。结合物理知识来设计网络结构和节点连接,以捕获变量之间的基于物理的依赖关系并使其受到物理约束,可以产生更通用和物理一致的模型,并使传统的黑盒结构更易于解释。在基于 PIML 的 RUL 预测中,现有的基于物理的架构设计方法大致可分为两类,如图 10 所示。

    图10 物理信息架构设计
    实现物理信息架构设计的第一类是为神经元或层赋予物理意义,如图10(a)所示。Nascimento和Viana[139]提出了一种基于物理信息的循环神经网络(Recurrent Neural Network, RNN)的累积损伤建模方法。通过修改RNN单元,将系统物理模型的信息嵌入到RNN中。利用循环单元中的多层感知器对应力强度进行建模,并将其输入到巴黎定律层。结果表明,该方法可以准确模拟疲劳裂纹扩展,润滑脂状态严重影响风力涡轮机主轴承的疲劳寿命。然而,其退化机理的复杂性和质量变化的不确定性使得建模非常困难。基于[139]中提出的方法,Yucesan和Viana[140–142]通过物理信息的RNN结合纯数据驱动的方法来模拟润滑剂的退化,从而对疲劳寿命进行建模。物理信息层用于建模轴承疲劳的累积损伤,而NN层用于建模润滑脂的未知退化过程。同样,Nascimento等人[143]和Kim等[144]采用了Nascimento和Viana[139]提出的方法来建模充放电循环中的容量退化过程,并将已知的放电方程嵌入到RNN单元架构中。不同的是,Nascimento 等人[143]通过变分推断估计RNN单元权重和偏差的PDF,而Kim 等人[144]则使用蒙特卡洛dropout方法进一步量化预测不确定性。Yan 等人[145]将基于物理的信号处理技术与人工网络相结合进行机器退化建模。网络的前三个隐藏层由希尔伯特变换、平方包络和傅里叶变换组成,将时域信号映射到具有丰富故障信息的频域信号。第四层隐藏层由全连接层组成,设计了知识引导的损失函数来提取健康指标。所提出的网络完全透明且可解释,生成的健康指标通常具有更好的单调性趋势和早期检测能力。Nguyen 等人 [146] 提出了一种嵌入物理的模糊生成对抗网络 (GAN)。将物理模型添加到模糊逻辑模型的聚合模块中,以改进生成网络架构并降低预测评估指标的误差。结果表明,模糊逻辑与基于物理的模型的结合有助于提高模糊 GAN 的预测能力。在 [147] 中,Hajiha 等人开发了一种物理正则化的数据驱动方法,用于对具有多个隐藏和依赖健康状态的复杂工程系统进行 RUL 预测。开发的框架包括一个数据层,用于捕获隐藏系统状态的统计相关的时间动态,以及一个物理层,用于通过系统工作原理和控制物理对观察到的系统运行参数和系统健康状态施加正则化。为此,所提出的方法实现了工程领域知识与传感器数据流的集成,以提高预测的可解释性和准确性。
    实现物理信息架构设计的第二类方法是根据物理知识约束网络结构参数的可行解空间,即通过对权重和偏移项施加适当的约束将物理知识融入神经网络,如图 10(b)所示。Chen和Liu[148]提出了一种概率物理引导神经网络来估计概率疲劳S-N曲线,其中应力水平S、应力比R和疲劳寿命的对数为输入,均值和方差为输出。根据疲劳寿命的标准差与应力呈负相关、疲劳曲线的曲率与应力呈正相关的物理知识,通过对网络权重和偏差等结构参数施加物理约束,获得了可解释的应力-寿命关系。针对 Ti-64 疲劳数据缺失问题,Chen和Liu [149] 在前人工作 [148] 的基础上,除了对材料进行纯力学分析外,还将工艺参数(如扫描速度、激光功率、加热温度等)作为控制因素,采用灵敏度分析法确定工艺参数对疲劳性能的影响。此外,在概率物理引导神经网络中加入平均值随应力比减小而增大的物理知识,对网络参数的可行解空间进行约束,从而得到更可靠的寿命预测。
    与NN结构不同,GPR是一种概率模型,具有非参数建模和强泛化能力的特点,可以量化预测结果的不确定性,在RUL预测中受到了广泛关注。将物理嵌入GPR的方式是将物理方程编码到均值或协方差函数中。Pfingstl和Zimmermann [150]利用基于物理信息的基函数推导了均值函数和协方差函数,并验证了疲劳裂纹扩展、激光退化和铣床磨损数据的适用性和有效性。物理基函数的使用进一步提高了精度并减少了训练的计算负担。同样,Richardson等人[123]将经验退化方程嵌入GPR均值函数中,建立了三输出GPR,预测了电池未来的退化趋势。此外,Zhang 等人[151]还设计了时变物理核函数来模拟退化的时变变化并量化不确定性,并根据监测数据学习物理均值函数和核函数的参数以捕捉现有物理知识中未嵌入的信息,并成功应用于暖通空调系统的性能预测。目前,物理信息架构的设计基本是依赖于上下文的,并没有一种适用于各种情况的通用的物理信息架构设计方法。换句话说,为某个系统的RUL预测设计的模型架构,在应用到其他系统时可能会失效。因此,如何根据不同的任务和需求自动设计高性能的网络架构,以解决实践中不同系统的RUL预测问题,提高ML模型对实际物理过程的逼近效果,是未来潜在的研究方向。实现 PIML 自动架构设计的一种可能方法是应用神经架构搜索技术 [152],这是一种自动化架构设计方法。利用这种技术,物理知识被限制在预定义的搜索空间内,以便根据搜索策略找到潜在的优秀架构,并通过评估方法快速验证该架构的性能。经过迭代搜索和验证过程,有望找到具有物理一致性的最优架构。

    5.4  物理信息损失函数

    PIML 的训练通常是通过在反向传播过程中最小化损失函数来完成的。将物理信息与 ML 模型相结合的最直接方法是在训练 NN 的过程中将物理信息作为约束添加到损失函数中。基于物理的损失函数通常可以表示为:

    其中  是损失函数中输入和输出之间的均方误差或交叉熵,  是衡量模型复杂度损失的超参数,   和    分别是 NN 的权重和偏差。前两个损失是 ML 模型的标准损失,表示数据驱动部分的损失项。   是基于  的物理正则化项,表示物理驱动部分的损失项,  是衡量物理模型权重的超参数。

    如第 5.1 节所述,将物理信息嵌入损失函数将带来多个好处,包括降低对标记数据的要求、缩小优化 ML 模型的搜索空间、提高可解释性和对未知场景的泛化能力。利用物理信息损失,Wang 等人 [153] 提出了一种用于机床磨损预测的 PINN 模型,通过在损失函数中引入考虑物理定律的 ReLU 函数,保留了物理一致性并消除了物理不一致性。除了单调约束之外,另一种嵌入知识的方法是通过近似约束为 NN 的结果添加上下界。[154] 使用基于威布尔的损失函数作为近似约束,将威布尔分布表示的可靠性工程知识融入 ML 模型中。[155]考虑了线弹性断裂力学模型的半经验律约束,构建了损失函数,在正态分布的均值处损失值为0,在远离均值的点处损失值近似为1,结果表明可以准确预测金属材料的疲劳寿命。Sheng 等人[156]融合阈值模型和深度卷积神经网络(Convolutional Neural Network, CNN)模型进行轴承故障检测。阈值模型根据已知的轴承故障物理原理评估健康等级。CNN模型自动从输入数据中提取特征来预测未来的健康水平。阈值模型中的物理知识通过损失函数嵌入到CNN模型的训练过程中。当两个模型对健康水平的预测不一致时,在损失函数中加入惩罚措施,使模型具有物理意义。Russell 和 Wang [157] 利用监测信号周期性领域知识,研究了自相关和两次快速傅里叶变换 (Fast Fourier Transform, FFT) 测量组合的物理信息损失项,提高了深度卷积自编码器压缩和重构故障信号的能力,对工业状态监测中大数据的高效传输和分析具有重要意义。Sun 等人 [158] 提出了一种用于漏磁缺陷检测的物理信息双馈交叉残差 DNN,研究了基于物理学的漏磁缺陷量化理论,并将其融入到 NN 训练过程中的损失函数中。Sun 等 人[159] 将超声无损检测的逻辑理论融入到 NN 训练中,提出了反馈和前馈损失函数来评估不同形式的变量,以准确量化微裂纹缺陷。[160] 采用基于 LSTM 的多输入 NN 对电液作动器系统的退化进行建模和预测,并将故障机理引入损失函数。除了物理知识外,领域知识也可以嵌入到机器学习模型中。例如,Zhang 等人 [161] 在基于物理的特征工程和基于物理的损失函数下构建了基于物理的深度神经网络,通过添加一些在钢领域获取的约束来预测蠕变疲劳寿命,对 316 奥氏体不锈钢蠕变疲劳数据的实验结果表明,该方法的预测精度明显高于经验模型和纯数据驱动的方法。考虑到预测实践中的领域知识,RUL 的后期预测会增加系统的运行故障风险,预测性能的衡量标准应区分后期预测和早期预测,并应对后期预测施加更大的惩罚。He等人 [162] 提出了一种基于 ARMA 回归和图卷积网络模型的系统方法,通过将该领域知识与基于 RUL 预测均方误差的损失函数进行嵌入,在动态运行条件和多种故障模式下,利用多传感器数据预测 RUL。在模型训练中,在损失函数中引入了预防性维护策略中经济性和安全性平衡的物理方程。

    此外,还可将描述系统动力学的偏微分方程中的微分形式约束纳入NN的损失函数设计中,得到具有物理模型约束的NN[119],如图7所示。Xu等人[163]设计了一种物理信息的动态深度自编码器模型,以锂电池的状态方程和容量方程作为惩罚项来调整损失函数,有望解决当前数据驱动的健康状态预测在准确性和可解释性方面的挑战。Zhou 等人[164]提出了一种基于物理信息的GAN的系统可靠性评估方法,根据前向柯尔莫哥洛夫方程推导出系统状态概率来确定系统可靠性。通过将前向柯尔莫哥洛夫方程约束嵌入到GAN的损失函数中,量化了系统可靠性的不确定性。在 [165] 中,PINN 用于预测复杂载荷下准脆性材料的裂纹扩展,利用能量变分原理构造损失函数,并利用罚函数法在损失函数中强制边界条件,消除了对标签数据的依赖。当物理退化方程未知时,Cofre-Martel 等人 [166] 将监测数据和时间变量映射到与系统退化相关的隐式变量中,以 PDE 的形式引入 RUL 对运行时间和潜变量的导数,从而找到未知的 PDE,然后将该项引入损失函数中,训练 DNN 模型进行 RUL 预测。最近,Wen 等人 [167] 开发了一种基于 PINN 的锂离子电池预测模型融合方案。在实现过程中,建立了半经验半物理 PDE 来模拟锂离子电池的退化动力学。在物理知识匮乏的情况下,利用数据驱动的深层隐藏物理模型来发现底层控制动力学模型,然后将发现的动力学信息与PINN框架中代理神经网络挖掘出的动力学信息进行融合,采用基于不确定性的自适应加权方法设计基于PDE的物理信息损失函数,用于训练PINN进行RUL预测。

    5.5 物理信息残差建模
    物理信息残差建模是解决物理模型缺陷的常用方法之一,它使用 ML 模型来学习和预测基于物理的模型产生的错误或残差。物理信息残差建模背后的主要思想是学习物理模型的偏差,并用它来修正物理模型的预测。图 11 说明了物理信息残差建模实现 PIML 的一般原理。

    图11 物理信息残差建模

    Tu 等人 [168,169] 利用物理信息残差建模的思想,将电化学模型、等效电路模型与前馈神经网络相结合,构建了两个混合模型。在这项研究中,神经网络用于捕捉热效应单粒子模型(Single Particle Model, SPM)的残差和预测电压,实现了基于物理的模型与基于机器学习的模型的深度融合。同样,Feng 等人 [170] 建立了电化学-热神经网络(Electrochemical-Thermal-Neural-Network, ETNN)耦合模型,以隐式 SPM 和集中热模型作为 ETNN 的子模型来预测核心温度并提供近似的端电压。然后,引入神经网络来提高子模型的性能。Yu 等人 [171] 将飞机动力学系统的物理方程集成到深度残差循环神经网络中,以在训练过程中最小化残差函数。结果表明,基于物理的深度残差循环神经网络显著提高了预测性能,降低了计算成本,并具有良好的外推性能。观察到基于物理的残差建模是一种相对简单直接的构建PIML的途径,其工作方式与前面讨论的混合建模过程类似。因此,物理模型和ML模型的结合比较浅,组合结构设计是一个具有挑战性的问题。此外,残差建模仅对基于物理的模型输出的误差进行建模,而不是对实际的监测量进行建模。因此,这类方法的一个关键限制是不能强制将上一节中描述的物理约束嵌入到建模过程中。因此,将基于物理的残差建模扩展到考虑物理约束是提高所开发的PIML作为这种残差建模方式的建模能力和可解释性的重要方向。
    结合5.1节至5.4节的讨论,可以看出,与传统的基于ML的RUL预测方法相比,基于PIML的方法通过融合物理指导和数据驱动学习,为RUL预测形成了一种新的学习模式,可以有效提高基于ML的方法的可解释性和泛化性。同时,如前文所述,应用和开发此类基于PIML的RUL预测方法仍面临诸多挑战和机遇,包括如何初始化模型、设计更稳定的网络结构和合理的损失函数、提高模型在不同工况下的适应性和泛化能力等问题。结合以上文献分析,可以看出,自2017年提出以来,PIML不仅已成为RUL预测领域的研究前沿,而且还激发了许多工业界合作伙伴扩展PIML的应用场景,包括NVIDIA、NASA、阿贡国家实验室和西门子。例如,ANSYS和NVIDIA正在加速PIML算法的研发[172]。NVIDIA已经展示了PIML在基于AI的仿真计算方面的巨大潜力,将其应用于自研芯片散热器的外形设计,与传统商用数值仿真求解器相比,可以将仿真时间从数月缩短到数天甚至数小时。尽管如此,PIML方法在学术文献中的研究与现实世界中的有效应用之间仍然存在着巨大的差距,对于基于PIML的RUL预测研究尤其如此。在实际工程环境中,由于系统结构、运行工况、数据质量的差异,基于PIML的RUL预测场景复杂多样,使得PIML在RUL预测领域的实际应用落后于其他领域。因此,基于PIML的RUL预测尚处于起步阶段,更多侧重于理论研究,在预测学中具有很大的发展潜力,因为PIML背后的思想和相关的现有研究表明PIML非常有希望丰富RUL预测领域并为预测应用提供理论支持。可以预见,随着PIML在多学科领域的快速发展,基于PIML的RUL预测研究将在未来继续增长,但RUL预测本身的重要方向是开发面向预测的PIML,而不是简单地将其他领域提出的PIML应用于RUL预测问题。

    6 挑战与机遇讨论

    物理信息数据驱动的 RUL 预测是实际工程需求驱动的前沿研究方向。为了进一步定量说明物理信息数据驱动的 RUL 预测方法的优势,我们以桥面钢筋腐蚀数据集、商用模块化航空推进系统模拟 (Commercial Modular Aero-Propulsion System Simulation, C-MAPSS) 数据集和锂电池老化数据集为代表性案例,并提供以下从有关物理信息数据驱动方法和使用同一数据集的其他方法的出版物中收集的比较结果,如表 3–5 所示,其中比较不同预测方法的指标包括均方根误差 (Root Mean Squared Error, RMSE)、Score 值和平均绝对百分比误差 (Mean Absolute Percent Errormean, MAPE)。

    表3 不同预测方法的 RMSE 性能比较[173]
    表4 不同预测方法在分值方面的性能比较[174]

    表5 不同预测方法在 MAPE 方面的性能比较[126]

    3—5中,以粗体突出显示的方法是相应参考文献中提出的物理信息数据驱动方法。值得注意的是,预测性能指标(RMSE、Score值和MAPE)越小,预测性能越好。从以上三个代表性案例研究中,可以直观地得出结论,与物理模型、随机退化模型和ML模型相比,物理信息数据驱动方法的RUL预测性能更好。这些比较结果进一步表明了开发物理信息数据驱动预测方法的必要性。在前面的部分中,我们回顾了近年来报道的物理信息数据驱动的RUL预测方法的最新进展,并讨论了每一类的局限性和可能的方向,即物理模型和数据融合方法、基于随机退化模型的方法和基于PIML的方法。我们观察到,在如何将物理或领域知识嵌入数据驱动模型方面的理解取得进展,有望使它们更好地推广到未见过/样本外的情况,同时解释故障的根本物理原理。除了前面几节中针对每个类别讨论的挑战和机遇之外,我们还将从更一般的角度介绍进一步开发物理信息数据驱动的 RUL 预测的一些挑战和机遇
    6.1 不完善物理模型下的 RUL 预测

    现代系统逐渐呈现出大规模、复杂化和多样化的特征。在这些情况下,所构建的有关复杂系统的物理模型即使可能,也是不完善的,具有很高的复杂性。此外,由于现代系统的复杂性、非线性和高维性,表征系统健康状态的性能退化变量往往相互关联,变量之间的关系很难清楚地理解。同时,系统退化至故障过程受到各种复杂因素的影响,例如不同的运行条件、环境和负载。所有这些因素都使得构建精确完美的物理模型变得非常困难。相比之下,数据驱动的方法可以自动挖掘变量之间的关系,因此可以用来指导物理模型的构建。例如,卷积神经网络挖掘出的新组合特征可用于改进物理模型[175]。此外,通过在数据驱动的方法中添加扰动也可以解释数据中的隐藏规则[176],这有助于分析各种退化变量之间的关系。当物理模型与实际工况不匹配或存在噪声干扰等不确定因素时,物理模型对于RUL预测不够准确。通过修改物理模型的关键参数、量化物理模型的差异、辅助更新物理模型或以数据驱动的方式分析不确定因素,可以提高计算结果的准确性。在这种情况下,可以使用数据驱动方法来简化物理模型的构建。一个发展机会是用物理模型来表示确定性、线性和可表示的部分,而用数据驱动模型来表示非线性和难以解释的部分。这样做可以继承基于物理的模型和数据驱动方法的优势,同时了解故障的底层物理。

    6.2 海量数据下的RUL预测

    虽然上述基于随机模型的 RUL 预测方法在量化潜在预测不确定性方面具有天然优势,但此类方法的成功取决于一个重要的潜在先决条件,即可以从系统的监测数据中提取具有趋势的退化特征。凭借良好的退化特征,可以有效地构建随机退化模型并以概率分布形式输出预测的 RUL,以量化预测不确定性。这也被称为统计数据驱动的预测方法的主要优势。随着工业 4.0 和物联网的巨大进步,可以获得大量监测数据,为系统健康状态和 RUL 提供丰富的信息。然而,现有的基于随机模型的方法在自动处理海量数据和提取相关退化特征的能力方面受到限制。相比之下,深度学习技术具有强大的处理海量数据和提取数据中隐藏特征的能力。因此,融合深度学习和基于随机模型的方法将大有希望为海量数据案例的预测铺平道路。一种可能的方法是应用深度学习技术提取退化特征,然后用随机模型对此类特征的退化进程进行建模。为此,可以通过这种数据模型链接机制共同实现量化预测不确定性和处理海量数据的能力。值得注意的是,已经有一些初步尝试采用这种方式,甚至已经观察到巨大的潜力,例如 [173,177]。深度学习和随机模型的融合仍处于起步阶段,但它是一个重要的持续方向,有潜力提高海量数据下的预测性能,其中的挑战在于如何建立有效且可解释的融合机制。

    6.3 基于 PIML 的 RUL 预测

    如第5节所述,虽然PIML方法实现了物理知识与ML的有机结合、相互补充,在RUL预测领域引起了广泛关注,但是该类方法在数据增强、网络架构设计、损失函数优化等方面还存在一些问题。首先,数据质量决定了PIML训练结果的准确性和鲁棒性。对于不平衡、局部缺失、未标记等不完整数据,可以采用GAN[178]增强扩展数据、无监督/半监督学习[179]重构信号等技术来改善数据质量,从而提高RUL预测性能。其次,对于复杂的大规模非线性高阶物理方程,PIML在训练过程中可能会收敛到局部最优解甚至崩溃,需要设计更稳定的网络架构并选择合适的激活函数和参数更新算法来提升其性能。第三,由物理方程构造的损失函数一般具有强非凸性,如何构造更合理的损失函数和优化器以提高训练过程的收敛速度还有待进一步探索。第四,基于PIML的方法可以与迁移学习和元学习[180]相结合,实现模型在不同运行条件、环境负荷、退化阶段等变化条件下快速迁移到新任务,提高基于PIML方法的适应性和泛化能力。第五,在当前基于PIML的RUL预测中,确定性ML模型被广泛采用,但它们量化预测不确定性的能力有限,而预测不确定性是预测问题固有的问题。因此,如何开发用于RUL预测的概率PIML模型是未来的一个潜在研究方向。最后,现有的基于 PIML 的 RUL 预测方法主要通过物理信息数据增强、物理信息架构设计、物理信息损失函数和物理信息残差建模将物理或领域知识嵌入到 ML 模型中,如上一节所述。实际上,根据图 2 所示的 RUL 预测过程,将物理或领域知识嵌入到 RUL 预测的整个过程中,从数据采集、预处理、特征提取、退化建模到参数估计和优化,将极大地丰富基于 PIML 的 RUL 预测研究,未来需要更多关注。

    6.4 用于验证物理信息驱动方法的基准数据集

    事实证明,全面的基准数据集是相应技术发展的巨大助推器。在纯数据驱动的 RUL 预测方法的发展过程中尤其如此。例如,有许多开源的运行至故障预测数据集,包括 IMS 轴承数据集 [181]、FEMTO 轴承数据集 [182]、铣削数据集 [183]、NASA CMAPSS 和 N-CMAPSS 飞机发动机数据集 [184]、马里兰大学和麻省理工学院 CALCE 的电池数据集 [91]、西安交通大学的轴承数据集 [75] 等。所有这些公开的数据集都通过提供性能基准测试的通用平台,极大地促进了纯数据驱动的 RUL 预测研究的快速发展。然而,可用的数据集基本上是用于数据驱动的建模和预测。由于问题设置的复杂性和异质性,物理信息数据驱动的 RUL 预测仍然缺乏用于评估各种知识集成方法的综合基准数据集,这为此类方法的开发带来了障碍。缺乏此类领域特定数据集大大增加了公平比较不同物理信息 RUL 预测方法的难度。在这种情况下,构建物理信息预测的综合基准数据集对于促进其发展至关重要。此类针对物理信息预测的数据集包含适当的参数化物理模型或领域特定知识,希望公开提供,并且足够通用,以适应各种物理信息预测方法以及纯数据驱动和基于物理的方法。值得注意的是,构建这样的数据集相当具有挑战性,但对于开发和验证用于实际工程应用的物理信息预测方法至关重要。

    6.5 RUL 预测的可解释性和可解释性

    随着人工智能 (Artificial Intelligence, AI) 技术在医疗、金融、法律和交通等高风险决策领域的发展 [185],越来越多的学术界、企业、当局和民间社会组织越来越关注人工智能技术在实践中的可解释性和可解释性。Arrieta 等人 [186] 对可解释人工智能 (Explainable AI, XAI) 道德规范中使用的术语进行了必要的澄清:可解释性(解释所做的决策)和可解释性(理解模型的内部工作原理)是不能互换的。对于应用人工智能技术时的 RUL 预测领域来说,这一点绝对正确。RUL 预测服务于决策,常用于高铁、航空航天设备、核电设备和其他大型工业设备等安全关键领域,因此风险是基于预测信息进行决策的重要考虑因素。RUL 预测的最终目标是为最终用户提供信息和见解,以便他们决定何时以及如何通过管理活动(例如预防性更换、维护计划和备件订购)保持相关系统的健康。对于最终用户来说,他们经常会遇到这样的问题:他们何时可以信任模型做出的 RUL 预测,以及在基于此类预测做出决策时何时需要格外小心。当错误的决策可能导致严重的财务损失甚至危及安全关键应用中的生命时,这一点尤其重要。因此,RUL 预测结果的可解释性和可解释性是开发预测方法时值得更多关注的两个重要方面。目前,黑盒模型(例如神经网络)可以随着大量数据的不断增加而实现高精度,但缺乏对最终用户的 RUL 预测结果的可解释性,而白盒模型(例如随机过程模型)易于理解,但缺乏足够的能力来处理海量数据进行预测。与纯数据驱动方法相比,基于物理的数据驱动方法可以将物理知识嵌入到机器学习模型中,提高模型的可解释性和实际应用决策的可解释性,减少安全事故的发生和设备意外故障造成的成本。然而,机器学习模型的某些超参数(例如神经网络的层数、优化算法的学习率和批量大小)无法用物理知识很好地解释,可能导致机器学习模型受到局部最小值的影响 [187]。此外,如第 6.2 节和第 6.3 节所述,当前的基于物理的数据驱动的 RUL 预测方法通常采用确定性机器学习模型,因此量化预测不确定性的能力有限。缺乏强大的预测不确定性量化能力,阻碍了基于物理的数据驱动的 RUL 预测方法在实际的任务和安全关键型决策应用中的实际部署。因此,应该深入研究和进一步提高物理信息数据驱动方法的可解释性和可解释性。

    有几种方法可以提高物理信息数据驱动方法的可解释性和可解释性。第一种方法是选择可解释的算法,例如决策树和回归模型,以避免模型超参数可能造成的不确定性。其次,可以使用XAI分析超参数和数据之间的相关性,并基于这种相关性,为RUL预测设计更多可解释的物理信息数据驱动模型。这两种方法可用于提高物理信息数据驱动模型内部工作机制的可解释性。第三种方法是将不确定性量化技术集成到物理信息数据驱动模型中,以增强预测结果的透明度和可信度。为此,具有不确定性量化能力的物理信息数据驱动模型可以提供有关预测结果置信度的有用信息。因此,基于物理的数据驱动的 RUL 预测方法可以量化预测不确定性,并将这种不确定性传达给最终用户,以易于理解的方式指导决策应用。这种方式有可能提高与所做决策相关的可解释性。总之,RUL 预测结果最终是为了决策,而实际应用中的决策涉及风险和潜在经济利益之间的复杂权衡。因此,RUL 预测方法需要尽可能地可信和可靠。因此,提高 RUL 预测结果的可解释性和可解释性是当务之急,因为它使预测模型更符合物理并增强预测稳健性,从而最终促进 RUL 预测方法在实际应用中的广泛接受。

    6.6 融合物理退化观测和状态监测数据的 RUL 预测

    由于系统的复杂性和直接监测退化状态的高成本,一些内部物理退化观测值,如疲劳裂纹的扩展或工具磨损,很难直接观察到。在工程实践中,经常会遇到隐式或部分可观测的退化场景。尽管如此,状态监测数据还是比较容易通过各种外部传感器获取的,包括压电传感器、振动传感器、声发射传感器等。通过对来自传感器的状态监测数据的分析和处理,可以提取有关内部物理退化状态的重要信息(如退化趋势、异常情况等),以评估和预测系统的健康状态和性能。沿着这个思路,如何建立物理退化观测值和状态监测数据之间的关系对于开展预测任务至关重要。换句话说,隐式物理退化场景下的RUL预测的关键是合理地建模随机退化过程并确定隐式物理退化过程与状态监测数据之间的随机关系。在这种情况下,状态空间模型是一个非常强大的工具,它可以方便地在统一的框架下对隐式物理退化过程与状态监测数据之间的关系进行建模,并根据相关的预测方程和更新方程实现实时估计和更新[188,189]。如果在某些情况下可以获得一些物理观测值,则可以考虑使用这些物理观测值来校准或修正状态空间模型。此外,如果可用,可以在数据级、特征提取级或模型构建级整合物理观测值和状态监测数据,以更好地理解系统的内部状态和性能,提高预测的准确性和可靠性。虽然融合物理观测值和状态监测数据的原理是可行的,但仍有一些挑战需要解决。首先,物理退化观测值可能只是间歇性的,而传感器的采样输出是连续的。在这种情况下,物理退化观测值和状态监测数据的采样间隔是不同的。如何在采样间隔不一致的情况下设计数据处理技术和融合机制值得进一步研究。另一个尚未充分探索的挑战是间歇性故障系统的预测。间歇性故障是指在系统运行过程中随机发生然后在没有任何维护活动的情况下快速消失的故障[190]。此类系统的退化表现为间歇性故障的频率或强度逐渐增加。值得注意的是,间歇性故障可能在传感数据中不明显可见,具有隐蔽性。在这种情况下,物理退化观测很难获得,且受间歇性故障发生机制的影响,这给分析它带来了另一个挑战。一种可能的途径是设计切换状态空间模型来表征间歇性故障对状态方程的影响,然后通过数据驱动的方法揭示间歇性故障影响的物理退化与传感器状态监测数据之间的关系。总之,开发新方法来揭示物理退化和状态监测数据之间的关系以用于预测任务是一个具有挑战性但有前途的方向,并且在 RUL 预测领域有着迫切的应用愿望。

    7 总结

    本文全面系统地综述了物理信息数据驱动的RUL预测的最新研究进展,旨在为开发实现物理知识与监测数据深度融合的新框架提供启示。为此,通过阐明物理信息数据驱动的RUL预测的思想,将当前的相关方法分为物理模型和数据融合方法、基于随机退化模型的方法和基于PIML的方法三类。对于每一类,都讨论了所涉及的建模原理和最新进展,并对未来发展提出了一些建议。特别是,对基于PIML方法的进展进行了详细讨论,并提供了广泛的参考文献。通过讨论现有方法的优缺点,提出了物理信息数据驱动的RUL预测方法可能面临的机遇和挑战,以引导和加速未来先进的物理信息数据驱动技术的发展,提高预测性能。

    编辑:Tina
    校核:李正平、陈凯歌、赵栓栓、曹希铭、赵学功、白亮、任超、海洋、陈宇航、陈莹洁,王金
    该文资料搜集自网络,仅用作学术分享,不做商业用途,若侵权,后台联系小编进行删除
    来源:故障诊断与python学习
    MechanicalSystem振动疲劳断裂非线性化学燃料电池通用航空航天暖通python芯片裂纹理论电机材料Fourier TransformFAST
    著作权归作者所有,欢迎分享,未经许可,不得转载
    首次发布时间:2025-02-09
    最近编辑:19小时前
    故障诊断与python学习
    硕士 签名征集中
    获赞 77粉丝 80文章 169课程 0
    点赞
    收藏
    作者推荐

    手把手教你安装GPU版Pytorch环境及手把手带大家跑通第一个故障诊断案例!!!(中)

    故障诊断方向而言,无论是信号处理、特征提取、故障分类还是寿命预测,所有的方法实现基本都依靠于Python代码,很多小白遇到的第一个拦路虎便是代码环境的配置。Pytorch是Python第三方库的一种,里面包含很多深度学习机器学习的函数,Pytorch本身有两个版本,一个是简便的CPU版本,一个是高速高效的GPU版本。另外代码编辑器可以直接用于编写、编辑和运行代码。它们提供了代码高亮、自动补全、代码调试、版本控制集成等功能,以提高开发效率和代码质量,也是故障诊断相关代码的必备工具之一。本期给大家带来Pytorch环境(Anaconda)安装教程,并附带代码编辑器配置过程。每一部分内容都附带推荐的视频教程以及教程链接,保证每一位故障诊断学习者都能搭建自己的代码平台。此外,后续文章还手把手带大家跑通第一个故障诊断案例,代码包含数据处理,1DCNN模型搭建,模型训练,以及模型评估等故障诊断完整过程,特别适合研一、研二小白入门。 本期代码非常详细,所占篇幅也非常多,所以分三次呈现给大家,该文章是本期第2篇文章,主要介绍西储大学数据集以及一些所需的深度学习基础知识,文章后半部分讲解了本期代码的数据预处理以及数据切割等部分。本期第1篇文章主要介绍了Python环境以及各个软件环境安装【初学者必看教程 | 手把手教你安装GPU版Pytorch环境及手把手带大家跑通第一个故障诊断案例!!!(上)】。第3篇文章主要构建1DCNN模型框架以及模型训练模型检测等内容。数据集下载:通过点击最左下角的阅读原文进行下载。目录1 引言2 安装Anaconda 2.1 Anaconda介绍 2.2 Anaconda安装3 配置Pytorch环境(CPU版) 3.1 Pytorch介绍 3.2 Pytorch配置教程(CPU版)4 配置Pytorch环境(GPU版) 4.1 两种Pytorch区别(看是否支持GPU) 4.2 CUDA安装 4.3 Pytorch配置教程(GPU版)5 配置代码编辑器 5.1 代码编辑器区别 5.2 VScode编辑器 5.3 Pycharm编辑器 5.4 JupyterNotebook编辑器6 故障诊断代码示例 (重中之重) 6.1 代码介绍 6.2 检验Pytorch 6.3 故障诊断实战代码(数据提取及预处理部分)注:小编能力有限,如有不恰之处,请多多指正~1 引言在学习故障诊断相关代码时,拥有一个强大且灵活的开发环境是至关重要的。Anaconda和Pytorch正是这样的工具,它们为我们提供了一个完整的生态系统,用于进行数据分析、模型训练和部署,是目前常用的工具软件资源。虽然网上Anaconda及Pytorch安装教程资源比较丰富,但对一些细节部分,比如在安装GPU版本的Pytorch时,是否需要安装CUDA、以及如何查看CUDA版本等问题上仍存在一些歧义。本文将用通俗易懂的语言及方法带大家了解这些概念,并选择自己最合适的方法。此外,本文提供了下载GPU版Pytorch的快捷方式,以及通俗易懂的视频教程链接,为读者朋友们在安装过程中尽可能带来更多的便利。本期第2篇、第3篇提供了故障诊断实例以及学习代码的必备基础知识,代码包含数据处理,1DCNN模型搭建,模型训练,以及模型评估等故障诊断完整过程,为读者朋友们提供了基本的代码框架。总的来说,本期文章旨在为初学者及入门小白提供一个全面的指南,第1篇科普一些基本概念的同时,提供详细操作过程,帮助大家安装和配置Anaconda环境,以及在该环境中配置Pytorch(包含CPU和GPU两种版本)。此外,本期第2篇、第3篇还带大家学习一个完整故障诊断代码示例,深入学习故障诊断代码的各个框架,为接下来学习打下夯实的基础。无论您是在寻找一个全新的开发环境,还是希望优化现有的工作流程,本期文章都将为您提供必要的指导和资源。6 故障诊断代码示例6.1 代码介绍6.1.1代码流程数据提取部分代码,把.mat文件中正常数据和12kHz驱动端数据提取成Dataframe格式,接着通过预处理将数据划分为长度1024、重叠率0.5的多个样本。并转化为适合深度学习的tensor格式。模型搭建部分构建了1DCNN模型框架,然后模型训练部分调用基本1DCNN模型框架以及训练集验证集通过多次训练生成最佳模型,最后模型测试部分加载最佳模型和测试集并通过准确率,召回率,混淆矩阵等多指标检验模型效果。6.1.2 基础知识(1) 西储数据集西储轴承故障数据集,常用于故障诊断和预测的研究。该数据集包含了来自不同故障模式和工作条件下的轴承振动数据。 图1 西储大学轴承数据集试验台数据集分成四个部分分别是Normal Baseline Data(正常数据集),12k Drive End Bearing Fault Data(12k 驱动端轴承故障数据),48kDrive End Bearing Fault Data(48k 驱动端轴承故障数据),12k Fan End Bearing Fault Data(12k 风扇端轴承故障数据)。图2 正常数据集图3 12k驱动端轴承故障数据 图4 48k驱动端轴承故障数据‍ 图5 12k风扇端轴承故障数据本文代码涉及正常数据以及12k驱动端轴承数据,在正常数据集中有四部分分别是0马力,1马力,2马力,3马力。12k驱动端轴承数据中按照轴承故障尺寸分成0.007英寸、0.014英寸、0.021英寸、0.028英寸。其中每个故障尺寸包含0-3四个马力负载,每个负载测量内圈、滚珠、外圈(部分数据存在空缺,如0.028英寸故障中的外圈)。在外圈数据中,又分为6点钟、3点钟、12点钟。其中在0.007英寸、0.014英寸、0.021英寸中均包含6点钟的外圈故障。文章所取数据为正常数据0hp,0.007英寸缺陷尺寸0hp(内圈,滚珠,6点钟外圈故障),0.014英寸缺陷尺寸0hp(内圈,滚珠,6点钟外圈故障),0.021英寸缺陷尺寸0hp(内圈,滚珠,6点钟外圈故障),总共10类,后面依次记标签为0-9。图6 本文代码涉及数据集注:官网下载原数据集以及本文代码涉及数据集均在文末提供。(本文代码数据集是在原数据基础上将需要的数据集整合到matfiles文件中,并对各数据重命名方便观察)(2) 数据格式数据提取部分代码,把.mat文件中正常数据和12kHz驱动端提取到Dataframe格式并保存为CSV文件方便后续调用,在数据预处理阶段先对CSV文件里的数据进行划分并保存为train_set,val_set,test_set新的CSV文件,然后对这三部分进行转换,得到适合深度学习的张量格式。其中,DataFrame 是 Pandas 库中的一种数据结构,用于存储和操作结构化数据。它是一个二维的、表格型的数据结构,可以看作是一个表格,其中每列可以是不同的数据类型(数值、字符串、布尔值等),类似于 Excel 中的电子表格或 SQL 中的表。CSV(Comma-Separated Values,逗号分隔值)是一种常见的文件格式,用于存储表格数据。CSV 文件由纯文本组成,其中数据项之间用逗号分隔,每行代表一个数据记录。许多应用程序和编程语言都可以读取和写入 CSV 文件。张量是多维数组,是深度学习框架(如 Pytorch 和 TensorFlow)中的基本数据结构。它可以表示标量(0 维张量)、向量(1 维张量)、矩阵(2 维张量)以及更高维度的数据。深度学习框架对张量提供了高效的数学运算支持,如加法、乘法、卷积等。在 Pytorch 等框架中,张量可以记录计算过程,自动计算梯度,这使得模型的训练和优化变得简单。(3) 1DCNN1DCNN 通过卷积层提取一维序列数据的局部特征,池化层降低特征维度并保留重要信息,激活函数引入非线性,全连接层整合特征并进行分类这些层共同协作,使得 1DCNN 能够有效地处理和分析序列数据,捕捉序列中的模式和时间依赖性,适用于各种序列建模任务。其中卷积层是 CNN 的核心层,通过卷积操作来提取输入数据的局部特征。在 1DCNN 中,卷积层使用一维卷积核在序列上滑动,计算卷积核与序列局部区域的点积,生成特征图(激活图)。池化层用于降低特征图的空间维度,减少计算量,同时保留重要特征信息。常见的池化操作有最大池化和平均池化。激活函数是用于引入非线性的函数,它对卷积层或全连接层的输出进行非线性变换。常用的激活函数有 ReLU、sigmoid、tanh 等。全连接层是传统的神经网络层,其中每个神经元都与前一层的所有神经元相连。在 1DCNN 中,全连接层通常位于网络的最后几层,用于将前面卷积层和池化层提取的特征进行整合和分类。在分类任务中,全连接层输出每个类别的概率分布;在回归任务中,输出预测值。6.2 检验Pytorch(1) Win+R后输入cmd,管理员运行进入命令提示符,然后命令输入conda env list。conda env list。 图7 运行结果(2) 进入想查询的Python环境,输入activate python311。activate python311图8 运行结果(3) 查询当前环境下的所有库,输入pip list。pip list图9 运行结果(4) 查询pytorch‍‍‍‍‍‍‍‍‍‍‍‍‍图10 查询结果发现不带cuda版本,即该环境下pytorch为CPU版本。(5) 退出当前环境,输入conda deactivate。conda deactivate图11 运行结果(6) 进入想查询的其他Python环境,输入activate DL311。activate DL311图12 运行结果(7) 查询当前环境下的所有库,输入pip list。pip list图13 运行结果发现带cuda版本,即该环境下pytorch为GPU版本。6.3 故障诊断实战代码6.3.1 数据预处理(1)数据提取数据提取部分代码,首先创建一个空的 Pandas DataFrame,用于存储从 .mat 文件中提取的数据。通过循环遍历每个 .mat 文件,使用 loadmat 函数读取.mat文件中正常数据和12kHz驱动端数据内容,并将指定的数据列提取出来,填充到 DataFrame 的对应列中,同时只取前 119808 个数据点以保证数据长度一致。之后,将 DataFrame 中的 'de_normal' 列设置为索引,以便于后续的数据操作。最后,将合并后的 DataFrame 保存为一个名为 'data_12k_10c.csv' 的 CSV 文件,并输出 DataFrame 的形状以检查数据集。整个过程实现了将多个 .mat 文件中的数据整合到一个结构化的表格中,并将其转换为易于分析和共享的 CSV 格式,方便后续操作。import numpy as npimport pandas as pdfrom scipy.io import loadmatfile_names = ['0_0.mat','7_1.mat','7_2.mat','7_3.mat','14_1.mat','14_2.mat','14_3.mat','21_1.mat','21_2.mat','21_3.mat']# 采用驱动端数据data_columns = ['X097_DE_time', 'X105_DE_time', 'X118_DE_time', 'X130_DE_time', 'X169_DE_time', 'X185_DE_time','X197_DE_time','X209_DE_time','X222_DE_time','X234_DE_time']columns_name = ['de_normal','de_7_inner','de_7_ball','de_7_outer','de_14_inner','de_14_ball','de_14_outer','de_21_inner','de_21_ball','de_21_outer']data_12k_10c = pd.DataFrame() # for index in range(10): # 读取MAT文件 data = loadmat(f'matfiles\\{file_names[index]}') dataList = data[data_columns[index]].reshape(-1) data_12k_10c[columns_name[index]] = dataList[:119808] print(data_12k_10c.shape)data_12k_10c.set_index('de_normal',inplace=True)data_12k_10c.to_csv('data_12k_10c.csv')print(data_12k_10c.shape)data_12k_10c图14 数据提取部分输出结果(2)数据切割划分数据切割划分将data_12k_10c中数据按照步长1024,重叠率0.5划分,分成多个样本,并打上对应标签(0-9)。最后把数据按照3:1:1划分成训练集、验证集、测试集。最后保存分别命名为train_set,val_set,test_set。def split_data_with_overlap(data, time_steps, lable, overlap_ratio=0.5): stride = int(time_steps * (1 - overlap_ratio)) # 计算步幅 samples = (len(data) - time_steps) // stride + 1 # 计算样本数 # 用于存储生成的数据 Clasiffy_dataFrame = pd.DataFrame(columns=[x for x in range(time_steps + 1)]) data_list = [] for i in range(samples): start_idx = i * stride end_idx = start_idx + time_steps temp_data = data[start_idx:end_idx].tolist() temp_data.append(lable) # 对应哪一类 data_list.append(temp_data) Clasiffy_dataFrame = pd.DataFrame(data_list, columns=Clasiffy_dataFrame.columns) return Clasiffy_dataFrame# 数据集的制作def make_datasets(data_file_csv, split_rate = [0.6,0.2,0.2]): # 1.读取数据 origin_data = pd.read_csv(data_file_csv) # 2.分割样本点 time_steps = 1024 # 时间步长 overlap_ratio = 0.5 # 重叠率 # 用于存储生成的数据# 10个样本集 合 samples_data = pd.DataFrame(columns=[x for x in range(time_steps + 1)]) # 记录类别标签 label = 0 # 使用iteritems()方法遍历每一列 for column_name, column_data in origin_data.items(): # 划分样本点 window = 1024 overlap_ratio = 0.5 samples = 233 每个类有233个样本 split_data = split_data_with_overlap(column_data, time_steps, label, overlap_ratio) label += 1 # 类别标签递增 samples_data = pd.concat([samples_data, split_data]) # 随机打乱样本点顺序 # 打乱索引并重置索引 samples_data = samples_data.sample(frac=1).reset_index(drop=True) # 3.分割训练集-、验证集、测试集 sample_len = len(samples_data) # 每一类样本数量 train_len = int(sample_len*split_rate[0]) # 向下取整 val_len = int(sample_len*split_rate[1]) train_set = samples_data.iloc[0:train_len,:] val_set = samples_data.iloc[train_len:train_len+val_len,:] test_set = samples_data.iloc[train_len+val_len:,:] return train_set, val_set, test_set, samples_data# 生成数据集train_set, val_set, test_set, samples_data = make_datasets('data_12k_10c.csv')# 保存数据dump(train_set, 'train_set')dump(val_set, 'val_set')dump(test_set, 'test_set')print(train_set.shape)print(val_set.shape)print(test_set.shape)图15 数据切割代码结果(3)Pandas数据转换成张量数据转换部分将train_set,val_set,test_set这些Pandas数据结构转化为适合深度学习模型的张量结构,最后保存。def make_data_labels(dataframe): # 信号值 x_data = dataframe.iloc[:,0:-1] # 标签值 y_label = dataframe.iloc[:,-1] x_data = torch.tensor(x_data.values).float() y_label = torch.tensor(y_label.values.astype('int64')) # 指定了这些张量的数据类型为64位整数,通常用于分类任务的类别标签 return x_data, y_label# 加载数据train_set = load('train_set')val_set = load('val_set')test_set = load('test_set')# 制作标签train_xdata, train_ylabel = make_data_labels(train_set)val_xdata, val_ylabel = make_data_labels(val_set)test_xdata, test_ylabel = make_data_labels(test_set)# 保存数据dump(train_xdata, 'trainX_1024_10c')dump(val_xdata, 'valX_1024_10c')dump(test_xdata, 'testX_1024_10c')dump(train_ylabel, 'trainY_1024_10c')dump(val_ylabel, 'valY_1024_10c')dump(test_ylabel, 'testY_1024_10c')print('数据 形状:')print(train_xdata.size(), train_ylabel.size())print(val_xdata.size(), val_ylabel.size())print(test_xdata.size(), test_ylabel.size())图16 数据转换输出结果(4)加载张量数据 该部分代码首先会检验运行环境是否支持GPU,如果支持则输出cuda,然后通过数据加载器,它将从xdata和 ylabel 中批量加载数据,每个批次包含 batch_size 个样本每个批次包含 batch_size 个样本,样本在每个训练周期开始时会被随机打乱,使用 workers 个子进程来加载数据,并且会丢弃最后一个不完整的批次。通过这种方式,可以高效地加载和处理训练数据,为模型的训练提供支持。device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # 有GPU先用GPU训练print(device)# 加载数据集def dataloader(batch_size, workers=2): # 训练集 train_xdata = load('trainX_1024_10c') train_ylabel = load('trainY_1024_10c') # 验证集 val_xdata = load('valX_1024_10c') val_ylabel = load('valY_1024_10c') # 测试集 test_xdata = load('testX_1024_10c') test_ylabel = load('testY_1024_10c') # 加载数据 train_loader = Data.DataLoader(dataset=Data.TensorDataset(train_xdata, train_ylabel), batch_size=batch_size, shuffle=True, num_workers=workers, drop_last=True) val_loader = Data.DataLoader(dataset=Data.TensorDataset(val_xdata, val_ylabel), batch_size=batch_size, shuffle=True, num_workers=workers, drop_last=True) test_loader = Data.DataLoader(dataset=Data.TensorDataset(test_xdata, test_ylabel), batch_size=batch_size, shuffle=True, num_workers=workers, drop_last=True) return train_loader, val_loader, test_loaderbatch_size = 32# 加载数据train_loader, val_loader, test_loader = dataloader(batch_size)print(len(train_loader))#批次个数print(len(val_loader))print(len(test_loader)) 图17 练集验证机测试集批次个数如图,本次操作环境支持GPU加速(此处也可以作为检验是否支持cuda的方法),并且通过batch_size=32,丢弃最后一个不完整的批次设置后,训练集部分将存在43个批次,验证集存在14个批次,测试集存在14个批次。文章剩余部分为1DCNN模型框架搭建,加载训练集验证集训练模型,测试集验证模型,并通过折线图以及准确率、召回率等指标检验模型结果,最后通过混淆矩阵进一步分析实验结果。详细内容及讲解将在第三篇呈现。 编辑:赵栓栓校核:李正平、陈凯歌、曹希铭、赵学功、白亮、王金、陈莹洁、陈宇航、任超、海洋、Tina该文资料搜集自网络,仅用作学术分享,不做商业用途,若侵权,后台联系小编进行删除点击左下角阅读原文,即可在线阅读论文。 来源:故障诊断与python学习

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