发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种基于深度迁移学习的多工况流程工业故障检测诊断方法,该方法采用变分自动编码器进行故障检测建模,采用卷积神经网络进行故障诊断建模,利用深度迁移学习方法对多工况的流程工业数据进行联合训练建模,通过减小不同工况数据特征之间的距离,使多工况数据提取到的特征分布尽可能相似,构建了多工况通用的故障检测和诊断模型,提高了多工况流程工业的监控效率,降低了监控成本。
本申请的第二个目的在于提出一种基于深度迁移学习的多工况流程工业故障检测诊断系统;
本申请的第三个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本申请的第一方面实施例在于提出一种基于深度迁移学习的多工况流程工业故障检测诊断方法,该方法包括以下步骤:
获取流程工业的生产系统在多个工况下的历史数据,所述历史数据包括正常运行数据和故障数据,并对所述故障数据进行标注以构建故障库;
将每种工况的所述历史数据进行标准化处理,并整理成二维矩阵;
根据所述二维矩阵设计一个变分自动编码器作为故障检测模型,并设计一个卷积神经网络作为故障诊断模型;
将整理后的每个工况的所述正常运行数据划分为训练集和测试集,并基于所述训练集,结合深度迁移学习的最大均值差异MMD训练所述故障检测模型,基于所述测试集计算所述故障检测模型的检测阈值;
基于整理后的故障数据,结合深度迁移学习的最大均值差异MMD训练所述故障诊断模型;
采集流程工业中的实时数据,将所述实时数据进行所述标准化处理并整理成所述二维矩阵的大小,并将所述实时数据对应的二维矩阵输入至训练完成的故障检测模型计算损失函数值,将所述损失函数值与所述检测阈值进行比较,以判断所述生产系统是否发生异常;
如果发生异常,则将所述实时数据对应的二维矩阵输入至训练完成的故障诊断模型,通过故障分类确定所述生产系统的故障类型。
可选地,在本申请的一个实施例中,将每种工况的所述历史数据进行标准化处理,包括:计算每种工况的所述正常运行数据的平均值和标准差,以所述平均值和所述标准差作为z-score标准化参数;通过以下公式对每个工况的历史数据进行z-score标准化:
其中,σ是平均值,μ是标准差,x是待标准化的个体数据。
可选地,在本申请的一个实施例中,基于所述训练集,结合深度迁移学习的最大均值差异MMD训练所述故障检测模型,包括:通过以下变分自动编码器的训练损失函数的公式,计算所述训练集中每个二维矩阵的损失函数值:
其中,x表示输入数据,z表示故障检测模型计算的重构数据,xs表示第一工况的数据,xt表示第二工况的数据,k(·)表示高斯核函数;通过梯度下降方法训练故障检测模型直至所述训练集的平均损失函数值收敛。
可选地,在本申请的一个实施例中,基于所述测试集计算所述故障检测模型的检测阈值,包括:通过所述变分自动编码器的训练损失函数的公式,计算所述测试集中每个二维矩阵的损失函数值;基于所述测试集中每个二维矩阵数据的损失函数值,通过核密度估计取预设数值的置信水平作为所述模型的检测阈值。
可选地,在本申请的一个实施例中,基于整理后的故障数据,结合深度迁移学习的最大均值差异MMD训练所述故障诊断模型,包括:通过所述整理后的故障数据和所述整理后的故障数据在所述故障库中的对应故障类型标签,计算所述故障诊断模型输出的分类结果的分类准确率;通过以下公式最小化卷积神经网络的训练损失函数:
其中,y表示故障数据的真实类别,z表示故障诊断模型输出的类别概率,xs表示第一工况的数据,xt表示第二工况的数据,k(·)表示高斯核函数;通过梯度下降方法训练故障诊断模型直至所述整理后的故障数据的平均分类准确率收敛。
可选地,在本申请的一个实施例中,确定所述生产系统的故障类型之后,还包括:对所述生产系统的故障类型进行判定,如果判定所述生产系统的故障类型是所述故障库中的故障类型标签和专家知识之外的故障类型,则更新所述故障库和所述故障诊断模型。
为达上述目的,本申请的第二方面实施例还提出了一种基于深度迁移学习的多工况流程工业故障检测诊断系统,包括以下模块:
获取模块,用于获取流程工业的生产系统在多个工况下的历史数据,所述历史数据包括正常运行数据和故障数据,并对所述故障数据进行标注以构建故障库;
标注模块,用于将每种工况的所述历史数据进行标准化处理,并整理成二维矩阵;
设计模块,用于根据所述二维矩阵设计一个变分自动编码器作为故障检测模型,并设计一个卷积神经网络作为故障诊断模型;
第一训练模块,用于将整理后的每个工况的所述正常运行数据划分为训练集和测试集,并基于所述训练集,结合深度迁移学习的最大均值差异MMD训练所述故障检测模型,基于所述测试集计算所述故障检测模型的检测阈值;
第二训练模块,用于基于整理后的故障数据,结合深度迁移学习的最大均值差异MMD训练所述故障诊断模型;
故障检测模块,用于采集流程工业中的实时数据,将所述实时数据进行所述标准化处理并整理成所述二维矩阵的大小,并将所述实时数据对应的二维矩阵输入至训练完成的故障检测模型计算损失函数值,将所述损失函数值与所述检测阈值进行比较,以判断所述生产系统是否发生异常;
故障诊断模块,用于如果发生异常,则将所述实时数据对应的二维矩阵输入至训练完成的故障诊断模型,通过故障分类确定所述生产系统的故障类型。
可选地,在本申请的一个实施例中,标注模块,具体用于:计算每种工况的所述正常运行数据的平均值和标准差,以所述平均值和所述标准差作为z-score标准化参数;通过以下公式对每个工况的历史数据进行z-score标准化:
其中,σ是平均值,μ是标准差,x是待标准化的个体数据。
可选地,在本申请的一个实施例中,第一训练模块,具体用于:通过以下变分自动编码器的训练损失函数的公式,计算所述训练集中每个二维矩阵的损失函数值:
其中,x表示输入数据,z表示故障检测模型计算的重构数据,xs表示第一工况的数据,xt表示第二工况的数据,k(·)表示高斯核函数;通过梯度下降方法训练故障检测模型直至所述训练集的平均损失函数值收敛。
本申请的实施例提供的技术方案至少带来以下有益效果:本申请采用变分自动编码器进行故障检测建模,采用卷积神经网络进行故障诊断建模,并利用深度迁移学习方法对多工况的流程工业数据进行联合训练建模,通过深度迁移学习减小不同工况数据在神经网络层间特征的距离,使多工况数据提取到的特征分布尽可能相似,从而能够构建多工况通用的故障检测和诊断模型,更加适用于多工况流程工业过程的监控,避免为每个工况单独建模,针对多工况进行统一联合的故障检测诊断,由此提高了多工况流程工业的监控效率,降低了监控成本。
为了实现上述实施例,本申请第三方面实施例还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中的基于深度迁移学习的多工况流程工业故障检测诊断方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例所提出的一种基于深度迁移学习的多工况流程工业故障检测诊断方法和系统。
图1为本申请实施例提出的一种基于深度迁移学习的多工况流程工业故障检测诊断方法的流程图,如图1所示,该方法包括以下步骤:
步骤101,获取流程工业的生产系统在多个工况下的历史数据,其中,历史数据包括正常运行数据和故障数据,并对故障数据进行标注以构建故障库。
其中,流程工业是指基于通过物理和/或化学变化进行生产的行业,本申请实施例中的流程工业可以是包括石油和化工等生产工业,多个工况是流程工业在不同的操作条件的工况。
在本申请一个实施例中,获取流程工业的生产系统在多个工况下的历史数据时,可以从预设的流程工业的生产装置的数据库中,读取预先存储的生产系统在不同工况下的历史数据,获取到的历史数据包括系统之前在正常运行状态下的数据和发生故障时的数据,由于正常运行状态和故障状态会持续一定的时间,因此,本申请获取的历史数据是具有一定时间长度的过程数据。
进一步的,在收集多个工况下的正常运行数据和故障数据后,对故障数据进行标注,确定故障数据的故障类型,以便于得到后续对故障诊断模型进行训练的训练数据,具体实施标注时,可以通过人力标注的方式针对每次故障进行专家标注。再根据标注后的故障数据构建故障库,则故障库中存储了不同故障类型的标签。
步骤102,将每种工况的历史数据进行标准化处理,并整理成二维矩阵。
其中,标准化处理是将不同量级的数据转化为统一量度的数据值的处理,通过标准化处理使得不同工况下的数据标准统一化,从而提高了数据可比性,削弱了数据解释性,便于后续进行联合建模。
具体实施时,可以根据实际需要选择合适的标准化处理方法,作为其中一种示例,本申请可采用Z-Score标准化方法进行标准化处理,具体而言,先计算每种工况的正常运行数据的平均值和标准差,以平均值和标准差作为z-score标准化参数,再通过以下公式对每个工况的历史数据进行z-score标准化:
其中,σ是平均值,μ是标准差,x是待标准化的个体数据,在本申请实施例中可以是单个工况下的历史数据。也就是说,将所有工况的正常运行数据和故障数据按照上述公式进行z-score标准化。
进一步的,将标准化处理后的历史数据整理成多变量时间窗口数据,即相应大小的二维矩阵。二维矩阵的大小可以根据实际需要进行设置,在本申请的实施例中,由于采集的历史数据是过程数据,且对应不同的工况,因此,将多变量时序数据整理成二维矩阵。
作为一种可能的实现方式,将多变量时序数据整理成m×t大小的二维矩阵,其中,m表示变量个数,t表示时间窗口长度,变量个数指的是每种工况下需要监控的生产系统的参数的个数,比如,m是需要监控的生产系统的温度、压力和输入输出的电流等所有变量的个数。而t是从时序数据中选取的时间窗口的预设长度,比如,t可设置为10至60min,即从历史数据中截取10至60min的数据。根据所需的m和t的大小整理成二维矩阵。
需要说明的是,在本申请实施例中,一个工况可的多变量时序数据可能被整理成多个二维矩阵,比如,若采集到的历史数据是60min,在取t为10min时,则该数据可被整理成6个二维矩阵。因此,本申请可将每种工况的标准化处理历史数据整理成多个二维矩阵。
步骤103,根据二维矩阵设计一个变分自动编码器作为故障检测模型,并设计一个卷积神经网络作为故障诊断模型。
其中,变分自动编码器通过模型本身可生成包含数据信息的隐向量,通过重构数据可以生成新的数据,通过衡量输入数据与重构数据之间的差异,可以判断输入数据是否处于正常运行状态。在本申请中,根据生成的二维矩阵设计一个变分自动编码器作为故障检测模型。
在本申请的一个实施例中,如图2所示,本申请设计的变分自动编码器包括编码器10和解码器20,在变分自动编码器的输入端(图中未示出)输入数据,在输出端输出重构数据,编码器根据上述计算出的均值和标准差挖掘潜在特征,通过解码器输出重构数据。其中,根据二维矩阵设计m×t的大小,设计变分自动编码器输入数据和输出的重构数据的格式大小,根据二维矩阵设计的大小确定变分自动编码器进行运算的数据的大小。
进一步的,设计一个卷积神经网络作为故障诊断模型,作为一种示例,本申请设计的卷积神经网络如图3所示,该卷积神经网络的最后一层由softmax函数构成,用于执行分类任务,其中,softmax函数可分类的类别数,与步骤101中生成的故障库中的故障类型数量相同。
步骤104,将整理后的每个工况的正常运行数据划分为训练集和测试集,并基于训练集,结合深度迁移学习的最大均值差异MMD训练故障检测模型,基于测试集计算故障检测模型的检测阈值。
其中,深度迁移学习放松了训练数据必须与测试数据独立且同分布的假设,在本申请中通过迁移学习可以解决训练数据不足的问题。通过深度迁移学习的最大均值差(Maximum mean discrepancy,简称MMD),可以减小不同工况数据在模型特征空间的距离,即通过MMD构建模型训练的损失函数,使提取到的特征分布尽可能相似。
其中,检测阈值用于后续将获取到的实时数据与其相比较,判断实时数据是否超过检测阈值,进而判断当前系统是否发生异常。
具体的,先将标准化且整理为二维矩阵后的历史数据按预设的比例划分为训练集和测试集,比如,按照4:1划分为训练集和测试集,训练集用于训练故障检测模型,测试集用于计算检测阈值,而标准化和整理处理后的所有工况的故障数据全部用于训练故障诊断模型。
在本申请一个实施例中,基于训练集,结合深度迁移学习的最大均值差异MMD训练故障检测模型,可以包括先通过变分自动编码器的训练损失函数的公式,计算训练集中每个二维矩阵的损失函数值,其中,变分自动编码器的训练损失函数的公式如下:
其中,x表示输入数据,z表示故障检测模型计算的重构数据,xs表示第一工况的数据,xt表示第二工况的数据,k(·)表示高斯核函数,第一工况数据和第二工况数据是采集的多个工况中的任意两组不同的工况的数据。然后通过梯度下降方法训练故障检测模型直至训练集的平均损失函数值收敛。
在本示例中,具体而言,使用正常运行数据得到的训练集,按照上述公式最小化损失函数,利用梯度下降方法训练故障检测模型,当训练集的平均损失函数值逐渐收敛不再下降后,停止模型训练。
进一步的,基于测试集计算故障检测模型的检测阈值,作为一种可能的实现方式,可以先通过上述变分自动编码器的训练损失函数的公式,计算测试集中每个二维矩阵的损失函数值,然后基于测试集中每个二维矩阵数据的损失函数值,通过核密度估计取预设数值的置信水平作为模型的检测阈值。具体而言,使用正常运行数据得到的测试集,按照上述公式计算每个二维矩阵数据的损失函数值,按照核密度估计方法取99.9%的置信水平作为该模型的检测阈值,当然,置信水平的预设值可以根据实际需要进行设置,比如,还可以取99%至99.99%置信水平作为检测阈值。
需要说明的是,在上述变分自动编码器的训练损失函数的公式中,第一项||x
i-z
i||表示变分自动编码器的重构损失,x表示输入数据,z表示模型计算的重构数据;第二项
表示变分自动编码器的KL散度,用来衡量特征空间分布与标准正态分布之间的差异;第三项
表示深度迁移学习方法中的MMD最大均值差异,x
s和x
t分别表示两种工况的数据,在深度迁移学习方法的训练过程中,要同时输入两种不同工况的数据。
其中,i表示计算次数,在本实施例中从获取到的多种工况的数据中输入两种工况的数据时,可以通过遍历的方式从全部的工况中依次选取两种输出该公式进行计算,也可以通过随机选取的方式从全部的工况中任意选取两种,并确保选取的次数符合计算需求即可,具体选取方式可以根据实际需要设置,此处不做限制。
步骤105,基于整理后的故障数据,结合深度迁移学习的最大均值差异MMD训练故障诊断模型。
在本申请实施例中,基于整理后的故障数据,结合深度迁移学习的最大均值差异MMD训练所述故障诊断模型,包括通过整理后的故障数据和整理后的故障数据在故障库中的对应故障类型标签,计算故障诊断模型输出的分类结果的分类准确率;再通过以下的卷积神经网络的训练损失函数的公式,最小化卷积神经网络的训练损失函数:
其中,y表示故障数据的真实类别,z表示故障诊断模型输出的类别概率,xs表示第一工况的数据,xt表示第二工况的数据,k(·)表示高斯核函数;最后通过梯度下降方法训练故障诊断模型直至整理后的故障数据的平均分类准确率收敛。
也就是说,本申请实施例使用故障数据及其在故障库中的对应故障类型标签,按照上述卷积神经网络的训练损失函数的公式最小化损失函数,利用梯度下降方法训练故障诊断模型,当故障数据的平均分类准确率不再上升后,停止模型训练。
需要说明的是,卷积神经网络的训练损失函数的公式中,第一项表示卷积神经网络的分类损失,y表示故障数据的真实类别,z表示模型计算输出的类别概率;第二项表示深度迁移学习方法中的MMD最大均值差异,xs和xt分别表示两种工况的数据,在深度迁移学习方法的训练过程中,要同时输入两种不同工况的数据,其中,在训练卷积神经网络过程中任意选取两种不同的工况的方式,可以参照步骤104中训练故障检测模型时的选取方式,此处不再赘述。
由此,实现了在离线阶段训练完成故障检测模型和故障诊断模型。
步骤106,采集流程工业中的实时数据,将实时数据进行标准化处理并整理成二维矩阵的大小,并将实时数据对应的二维矩阵输入至训练完成的故障检测模型计算损失函数值,将损失函数值与检测阈值进行比较,以判断生产系统是否发生异常。
具体的,在进行多工况流程工业的实时监控是,先采集实时数据。作为一种可能的实现方式,可以从流程工业的生产系统的实时数据库中读取数据,为便于后续的整理工作,在本实施例中可以在读取数据时,直接从数据库中读取时间长度为t、变量维度为m的过程数据。
进一步的,将实时数据进行标准化处理并整理成二维矩阵的大小。其中,进行标准化处理的实现方式与离线训练过程中进行标准化处理的方式对应,并且实时数据整理成的二维矩阵与离线训练过程中将历史数据整理成的二维矩阵的大小对应,具体整理方法可以参照上述实施例中的描述,用当前工况每个变量的平均值和标准差进行z-score标准化,并整理成二维矩阵m×t大小。
更进一步的,将实时数据进行标准化处理并整理成的二维矩阵输入训练完成的变分自动编码器构成的故障检测模型,并按照上述变分自动编码器的训练损失函数的公式计算损失函数值,并与预设的检测阈值进行比较,以判断生产系统是否发生异常。
在本实施例中,如果当前实时数据的损失函数值大于检测阈值,则表明当前系统发生异常,需要进行后续的故障诊断工作,如果当前实时数据的损失函数值小于或等于检测阈值,则表明当前系统正常运行,继续进行实时数据的采集。
步骤107,如果发生异常,则将实时数据对应的二维矩阵输入至训练完成的故障诊断模型,通过故障分类确定生产系统的故障类型。
具体的,在判断发生异常后,将实时数据整理成的二维矩阵输入卷积神经网络构成的故障诊断模型,通过故障诊断模型对输入的数据进行分类预测,判定当前系统发生了哪种故障类型,并输出判定结果,实现对多工况流程工业故障检测诊断。
在本申请一个实施例中,在故障诊断模输出诊断结果后,还可以提交给专家或操作人员,比如,通过无线网络将诊断结果发送至系统操作人员对应的移动终端,辅助其对当前系统状态进行监控、判断和决策。
进一步的,在本申请的其他实施例中,在确定所述生产系统的故障类型之后,还包括对生产系统的故障类型进行判定,如果判定生产系统的故障类型是故障库中的故障类型标签和专家知识之外的故障类型,则更新所述故障库和所述故障诊断模型。具体而言,如果确定故障诊断模型给出的故障类型与预先人工确立的专家知识有差异,或者发现是一种新故障,并不在故障库记录故障类型中,则需要返回步骤S101更新故障库,将该故障添加至数据库,并对故障库数据和卷积神经网络故障诊断模型进行更新。从而,根据实际生产过程中产生的新案例更新故障诊断模型,提高故障诊断的全面性和准确性。
由此,在在线应用阶段,通过训练完成的故障检测模型和故障诊断模型,可以在多种工况下准确的检测出当前系统发生了哪种故障。
综上所述,本申请实施例的基于深度迁移学习的多工况流程工业故障检测诊断方法,采用变分自动编码器进行故障检测建模,采用卷积神经网络进行故障诊断建模,并利用深度迁移学习方法对多工况的流程工业数据进行联合训练建模,通过深度迁移学习减小不同工况数据在神经网络层间特征的距离,使多工况数据提取到的特征分布尽可能相似,从而能够构建多工况通用的故障检测和诊断模型,更加适用于多工况流程工业过程的监控,避免为每个工况单独建模,针对多工况进行统一联合的故障检测诊断,由此提高了多工况流程工业的监控效率,降低了监控成本。
为了更加清楚地说明本申请实施例的基于深度迁移学习的多工况流程工业故障检测诊断方法,下面以一个具体的实施例进行详细说明。图4为本申请实施例提出的一种具体的基于深度迁移学习的多工况流程工业故障检测诊断方法的流程示意图,该方法包括离线建模阶段和实时检测阶段。
如图4所示,在进行离线建模时,包括:步骤S01:构建数据集。从某流程工业生产装置的历史数据库中收集多个工况的正常运行数据和故障数据,并对每次故障进行专家标注,确定故障类型,构建故障库。
步骤S02:数据标准化。计算每种工况正常运行数据的平均值σ和标准差μ,作为z-score标准化参数。然后将所有工况的正常运行数据和故障数据按照以下公式进行z-score标准化:
步骤S03:转换为多变量时间窗口数据。将多变量时序数据整理成二维矩阵m×t大小,m表示变量个数,t表示时间窗口长度,可取为10至60min,从而有效捕捉流程数据的动态性和多变量特性。
步骤S04:设计故障检测和诊断模型。根据变量维度m和时间窗口长度t,设计一个变分自动编码器作为故障检测模型。设计一个卷积神经网络作为故障诊断模型,最后一层由softmax函数构成用于分类任务,类别数与故障库的故障类型数量相同。
步骤S05:划分数据集。将标准化后所有工况的正常运行数据按照4:1划分为训练集和测试集,训练集用于训练故障检测模型,测试集用于计算检测阈值;标准化后所有工况的故障数据全部用于训练故障诊断模型。
步骤S06:训练故障检测模型。使用正常运行数据得到的训练集,按照变分自动编码器的训练损失函数的公式最小化损失函数,利用梯度下降方法训练故障检测模型,当训练集的平均损失函数值逐渐收敛不再下降后,停止模型训练;使用正常运行数据得到的测试集,按照变分自动编码器的训练损失函数的公式计算每个二维矩阵数据的损失函数值,按照核密度估计方法取99.9%的置信水平作为该模型的检测阈值。
步骤S07:训练故障诊断模型。使用故障数据及其在故障库中的对应故障类型标签,按照卷积神经网络的训练损失函数的公式最小化损失函数,利用梯度下降方法训练故障诊断模型,当故障数据的平均分类准确率不再上升后,停止模型训练。
在线实时检测阶段,包括:
步骤S08:采集实时数据。从实时数据库中读取时间长度为t、变量维度为m的过程数据,用当前工况每个变量的平均值和标准差进行z-score标准化,并整理成二维矩阵m×t大小。
步骤S09:实时故障检测。将实时数据进行标准化处理并整理成的二维矩阵输入变分自动编码器构成的故障检测模型,按照变分自动编码器的训练损失函数的公式计算损失函数值,并与检测阈值进行比较。如果当前实时数据的损失函数值大于检测阈值,表明当前系统发生异常,需要进行步骤S10进行故障诊断判断故障类型;如果当前实时数据的损失函数值小于等于检测阈值,表明当前系统正常运行,继续转到步骤S08进行数据采集和检测。
步骤S10:实时故障诊断:将实时数据进行标准化处理并整理成的二维矩阵输入卷积神经网络构成的故障诊断模型,通过分类得到当前系统发生了哪种故障类型,并将结果提交给专家或操作人员,辅助其对当前系统状态进行监控、判断和决策。
步骤S11:如果故障诊断模型给出的故障类型与专家知识有差异,或者发现是一种新故障,则需要返回步骤S01更新故障库,对故障库数据和卷积神经网络故障诊断模型进行更新。
由此,通过构建多工况通用的故障检测和诊断模型,针对多工况进行统一联合的故障检测诊断,该方法更加适用于多工况流程工业过程的监控。
为了实现上述实施例,本申请还提出了一种基于深度迁移学习的多工况流程工业故障检测诊断系统,图5为本申请实施例提出的一种基于深度迁移学习的多工况流程工业故障检测诊断系统的结构示意图,如图5所示,该系统包括获取模块100,标注模块200,设计模块300,第一训练模块400,第二训练模块500,故障检测模块600和故障诊断模块700。
其中,获取模块100,用于获取流程工业的生产系统在多个工况下的历史数据,历史数据包括正常运行数据和故障数据,并对故障数据进行标注以构建故障库。
标注模块200,用于将每种工况的历史数据进行标准化处理,并整理成二维矩阵。
设计模块300,用于根据二维矩阵设计一个变分自动编码器作为故障检测模型,并设计一个卷积神经网络作为故障诊断模型。
第一训练模块400,用于将整理后的每个工况的正常运行数据划分为训练集和测试集,并基于训练集,结合深度迁移学习的最大均值差异MMD训练故障检测模型,基于测试集计算故障检测模型的检测阈值。
第二训练模块500,用于基于整理后的故障数据,结合深度迁移学习的最大均值差异MMD训练故障诊断模型;
故障检测模块600,用于采集流程工业中的实时数据,将实时数据进行标准化处理并整理成二维矩阵的大小,并将实时数据对应的二维矩阵输入至训练完成的故障检测模型计算损失函数值,将损失函数值与检测阈值进行比较,以判断生产系统是否发生异常;
故障诊断模块700,用于如果发生异常,则将实时数据对应的二维矩阵输入至训练完成的故障诊断模型,通过故障分类确定生产系统的故障类型。
可选地,在本申请的一个实施例中,标注模块200,具体用于:计算每种工况的正常运行数据的平均值和标准差,以平均值和标准差作为z-score标准化参数;通过以下公式对每个工况的历史数据进行z-score标准化:
其中,σ是平均值,μ是标准差,x是待标准化的个体数据。
可选地,在本申请的一个实施例中,第一训练模块400,具体用于:通过以下变分自动编码器的训练损失函数的公式,计算训练集中每个二维矩阵的损失函数值:
其中,x表示输入数据,z表示故障检测模型计算的重构数据,xs表示第一工况的数据,xt表示第二工况的数据,k(·)表示高斯核函数;通过梯度下降方法训练故障检测模型直至训练集的平均损失函数值收敛。
可选地,在本申请的一个实施例中,第一训练模块400还用于:通过变分自动编码器的训练损失函数的公式,计算测试集中每个二维矩阵的损失函数值;基于测试集中每个二维矩阵数据的损失函数值,通过核密度估计取预设数值的置信水平作为模型的检测阈值。
可选地,在本申请的一个实施例中,第二训练模块500具体用于:通过整理后的故障数据和整理后的故障数据在故障库中的对应故障类型标签,计算故障诊断模型输出的分类结果的分类准确率;通过以下公式最小化卷积神经网络的训练损失函数:
其中,y表示故障数据的真实类别,z表示故障诊断模型输出的类别概率,xs表示第一工况的数据,xt表示第二工况的数据,k(·)表示高斯核函数;通过梯度下降方法训练故障诊断模型直至所述整理后的故障数据的平均分类准确率收敛。
可选地,在本申请的一个实施例中,故障诊断模块700,还用于对生产系统的故障类型进行判定,如果判定生产系统的故障类型是故障库中的故障类型标签和专家知识之外的故障类型,则更新故障库和故障诊断模型。
需要说明的是,前述对基于深度迁移学习的多工况流程工业故障检测诊断方法的实施例的解释说明也适用于该实施例的系统,此处不再赘述
综上所述,本申请实施例的基于深度迁移学习的多工况流程工业故障检测诊断系统,采用变分自动编码器进行故障检测建模,采用卷积神经网络进行故障诊断建模,并利用深度迁移学习方法对多工况的流程工业数据进行联合训练建模,通过深度迁移学习减小不同工况数据在神经网络层间特征的距离,使多工况数据提取到的特征分布尽可能相似,从而能够构建多工况通用的故障检测和诊断模型,更加适用于多工况流程工业过程的监控,避免为每个工况单独建模,针对多工况进行统一联合的故障检测诊断,由此提高了多工况流程工业的监控效率,降低了监控成本。
为了实现上述实施例,本申请还提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述实施例中任一所述的基于深度迁移学习的多工况流程工业故障检测诊断方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。