1.本发明涉及一种针对时间序列的故障检测方法,尤其是缺乏历史故障数据的情形下,仅仅利用健康数据的时间序列就能实现对该时间序列所描述对象的健康状态检测。
背景技术:2.故障诊断是保证工艺系统安全可靠运行的重要技术手段,随着数据采集系统和智能传感器的应用,获得了大量数据,基于数据驱动的故障诊断方法日益重视,人工智能方法是数据驱动的一种重要实现方式,主要以人工神经网络作为工具,通过学习的方法来能够获得未知故障特征,从而摆脱传统故障诊断需要事先知道故障特征的限制。学习的方式通常分为有指导学习和无指导学习,有指导学习以有标签的样本集作为训练样本,训练好的神经网络用于故障诊断;无指导学习根据现有数据按一定规则进行自助聚类,新数据自动并入所分的类别。这两种学习方式均须有大量的健康数据和故障数据作为基础。然而在实际系统中,由于安全原因,设备通常不允许工作在故障状态,从而导致了故障数据的缺失或不完整。如果健康数据能够覆盖所有的工况,就可以直接通过这些数据构造来构造健康状态的概率分布,但对于健康数据,尽管健康数据在数量上很多,但由于工作条件所限,这些健康数据并不能够覆盖所有的健康状态,所包含信息有限,这种伪大样本不能带来更多的信息,但会加重训练过程的过拟合现象,因此我们很难从样本数据中直接获取概率密度函数。
3.当前的样本数据可以看作是系统状态的一种实现,后验概率理论能够提供很大的帮助,对抗神经网络(gan)给出了一种通过对抗构造同类数据的方法。以最大似然估计为例,其目标是尽可能得获取真实数据的概率分布,生成模型通过最大似然估计方法定义概率分布函数 p
model
(x;θ),该分布的参数为θ,在生成模型迭代计算中,不断更新θ,使得 p
model
(.)函数能尽量的逼近真实概率分布p
data
(x) 。但现实情况是,p
data
(x)往往未知,因此只能通过对大量实际数据集采样来近似模拟p
data
(x),进而训练生成模型的概率分布p
data
(x)。如果采用蒙特卡洛法在整个空间内不断产生大量数据,通过随机噪声的干扰,从而生成了大量的伪数据,这些产生的数据与所能够采集到的真实数据形成混合,通过gan的识别器和产生器的博弈,从而实现了健康数据的有效扩展,此时的生成器已经超出了所采集健康数据样本的范围,同时也包括了存在于整体空间而没有被发现的健康状态,而识别器则是正对整体空间的分类情况进行诊断,从而跳出了样本集的限制,大大提高了故障诊断的鲁棒性。
技术实现要素:4.本发明要解决的技术问题是,针对诊断对象由于安全原因缺乏故障状态的时间序列,通过反卷积神经网络产生大量模拟时间序列,进而利用产生对抗神经网络(gan)的识别器和产生器的博弈过程,最终训练出能够直接判断对象健康状态的判断器。
5.一种基于反卷积网络和对抗神经网络结合的故障检测方法,包括:
步骤一: 由传感器获取健康状态下的时间序列, 式中,k为采样时刻, 表示时间序列足够长;步骤二: 采用长度为t的滑动窗口将时间序列分为m组,每组包括窗口时间序列和目标状态,式中,为窗口的起始采样点,为时间序列中窗口时间序列的下一个状态值,即;步骤三: 构建多层卷积神经网络cnn1,cnn1的输入层维数为t, 输出层为 ,隐含层包括卷积层1、池化层1、卷积层2、池化层2、
…
、卷积层n、池化层n和求和层,具体隐含层的层数根据不同的时间序列通过尝试获得;步骤四: 以步骤二中所获得的m组窗口时间序列与目标状态作为训练数据集,即() l=1,2,
…
m; 对多层卷积神经网络cnn1进行训练,得到对应的权值;训练过程见后文说明;步骤五:对训练好的cnn1求反卷积网络dcnn1,即:dcnn1与cnn1具有相同的结构,数据流相反,但各个对应权值的数值不变,即cnn1的输入层变为dcnn1的输出层,cnn1的池化层n、卷积层n、
…
、池化层2、卷积层2、池化层1、卷积层1变为dcnn1的卷积层1、池化层1、卷积层2、池化层2、
…
、卷积层n、池化层n;步骤六:构造两组深度神经网络形成对抗神经网络的产生器g和判别器d,其中产生器g的输入为时间序列构成的列向量,输出为目标状态;判别器d的输入为时间序列构成的列向量,输出为健康概率;步骤七: 对抗神经网络进行训练,直到训练完成;训练过程见后文说明;步骤八:数据产生器输入新的观察窗口数据,判断器输出为诊断结果。
6.其中,步骤四中的cnn1的训练过程如下:步骤1:按以下公式计算卷积神经网络的前向传播,卷积层:ꢀ
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)式中,为卷积层输出,为卷积层输入,为卷积层权值,为卷积层激活函数阈值,为激活函数输入,为激活函数,池化层:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)式中,为池化层输出,为池化层输入,为对应区域的最大值;全连接层:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)式中,为全连接层输出,为全连接层输入,为全连接层权值,为全连接层激活函数阈值,为激活函数输入,为激活函数,输出层:
ꢀꢀꢀ
(4)
式中,为输出层输出,为输出层权值,为输出层激活函数阈值,, 为的第i个节点输出,c为输出节点的个数;步骤2:按公式(5)计算损失函数l
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)式中,为训练样本个数,为输出层的神经网络个数;为训练样本的目标值;为卷积神经网络的输出;步骤3:按公式(6) 采用梯度下降法修正权值
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)式中,为神经网络的连接权值,包括卷积层、全连接层、输出层的权值,为第k次训练的权值,为第k+1次训练的权值,为学习率;步骤4:重复步骤1-步骤3,直至损失函数l不再变化为止。
7.其中,步骤七中的对抗神经网络训练过程如下:步骤1.随机初始化产生器g和判别器d的参数;步骤2:对于m个输入样本,按式(7)计算风险损失函数,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)式中,为损失函数,,其中,y和分别为实际值和估计值;为规则项用于防止过拟合,;为区分产生器g和判别器d的风险损失函数,分别记作和; 步骤3.按式(8)(9)调整产生器g的参数,直至判别器d的输出为1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(9)式中,和为产生器g的权值和阈值,和 为第次迭代值,和 为第次迭代值,为学习率;步骤4:固定产生器g的参数,按式(10)(11)调整判别器d的参数
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(10)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
式中,和为判别器d的权值和阈值,和 为第次迭代值,和 为第次迭代值,为学习率;步骤5:重复步骤2-步骤4,直到风险函数和均收敛。
8.与现有技术相比,本发明的有益效果如下:1、本发明所述的基于反卷积网络的产生对抗神经网络故障检测方法是一种基于数据驱动的智能方法,通过引入反卷积神经网络,解决了难以生成与过程对应的时间序列问题,提高了时间序列的生成效率;2、本发明引入了产生对抗神经网络,通过数据生成器g与评估器d的博弈过程,最终获得了健康状态的隐含边界条件,该方法不受故障类型特征限制,能够适用于对不同的故障类型,提高了故障检测的通用性;3、本发明只需要系统的前期健康数据基础上,数据采集系统采集当前的数据就能完成故障诊断,不需要附加昂贵的专用设备,从而大大降低了诊断成本。
附图说明
9.图1 是一种基于反卷积网络和对抗神经网络结合的故障检测方法的结构示意图;图2 是卷积神经网络与反卷积神经网络的关系示意图;图3 是产生器g的结构示意图;图4 是判别器d的结构示意图。
具体实施方式
10.下面结合附图和具体实施例对本发明的技术方案作进一步详细描述,所描述的具体的实施例仅对本发明进行解释说明,并不用以限制本发明。
11.本发明的一种基于反卷积网络和对抗神经网络结合的故障检测方法,整个系统包括检测对象、传感器和数据处理单元组成,其结构如图1所示。
12.其中,所述检测对象包括能够产生时间序列的物理信息装置或系统,包括但不限于具有独立功能的生产系统、机械设备、电气装置等;所述传感器是指能够实现检测出物理量并能够转化成数字量的装置,包括但不限于压力传感器、流量传感器、位移传感器等;所述数据处理单元是指硬件平台和实现本算法的软件的综合,硬件平台包括但不限于微处理器、计算机等;软件是指在硬件平台上依据本算法开发的软件代码;所述时间窗口是指预设窗口长度t,在该时间长度内从时间序列中提取的传感器数据值;所述卷积神经网络是指根据时间窗口数据所构造的卷积神经网络;所述反卷积神经网络是指与训练好的卷积神经网络结构相同,权值不变,但数据流相反的人工神经网络;所述数据产生器是指根据时间窗口数据所构造的深度神经网络;所述判别器是指根据系统状态数据构造出的深度神经网络;所述风险损失函数是指损失函数与规则项的叠加;
所述输出结果是指训练好的判别器输出接近健康状态的概率。
13.具体工作步骤如下:步骤一: 由传感器获取健康状态下的时间序列, 式中,k为采样时刻, 表示时间序列足够长;步骤二: 采用长度为t的滑动窗口将时间序列分为m组,每组包括窗口时间序列和目标状态,式中,为窗口的起始采样点,为时间序列中窗口时间序列的下一个状态值,即;步骤三: 构建多层卷积神经网络cnn1,cnn1的输入层维数为t, 输出层为 ,隐含层包括卷积层1、池化层1、卷积层2、池化层2、
…
、卷积层n、池化层n和求和层,具体隐含层的层数根据不同的时间序列通过尝试获得;步骤四: 以步骤二中所获得的m组窗口时间序列与目标状态作为训练数据集,即() l=1,2,
…
m; 对多层卷积神经网络cnn1进行训练,得到对应的权值;训练过程见后文说明;步骤五:对训练好的cnn1求反卷积网络dcnn1,即:dcnn1与cnn1具有相同的结构,数据流相反,但各个对应权值的数值不变,即cnn1的输入层变为dcnn1的输出层,cnn1的池化层n、卷积层n、
…
、池化层2、卷积层2、池化层1、卷积层1变为dcnn1的卷积层1、池化层1、卷积层2、池化层2、
…
、卷积层n、池化层n;步骤六:构造两组深度神经网络形成对抗神经网络的产生器g和判别器d,其中产生器g的输入为时间序列构成的列向量,输出为目标状态;判别器d的输入为时间序列构成的列向量,输出为健康概率;步骤七: 对抗神经网络进行训练,直到训练完成;训练过程见后文说明;步骤八:数据产生器输入新的观察窗口数据,判断器输出为诊断结果。
14.其中,步骤四中的cnn1的训练过程如下:步骤1:按以下公式计算卷积神经网络的前向传播,卷积层:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)式中,为卷积层输出,为卷积层输入,为卷积层权值,为卷积层激活函数阈值,为激活函数输入,为激活函数,;池化层:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)式中,为池化层输出,为池化层输入,为对应区域的最大值;全连接层:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)式中,为全连接层输出,为全连接层输入,为全连接层权值,为全连接层激活函数阈值,为激活函数输入,为激活函数,;
输出层:
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)式中,为输出层输出,为输出层权值,为输出层激活函数阈值,, 为的第i个节点输出,c为输出节点的个数;步骤2:按公式(5)计算损失函数l
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)式中,为训练样本个数,为输出层的神经网络个数;为训练样本的目标值;为卷积神经网络的输出;步骤3:按公式(6) 采用梯度下降法修正权值
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)式中,为神经网络的连接权值,包括卷积层、全连接层、输出层的权值,为第k次训练的权值,为第k+1次训练的权值,为学习率;步骤4:重复步骤1-步骤3,直至损失函数l不再变化为止。
15.其中,步骤七中的对抗神经网络训练过程如下:步骤1.随机初始化产生器g和判别器d的参数;步骤2:对于m个输入样本,按式(7)计算风险损失函数,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)式中,为损失函数,,其中,y和分别为实际值和估计值;为规则项用于防止过拟合,;为区分产生器g和判别器d的风险损失函数,分别记作和;步骤3.按式(8)(9)调整产生器g的参数,直至判别器d的输出为1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
ꢀꢀꢀꢀꢀꢀꢀ
(9)式中,和为产生器g的权值和阈值,和 为第次迭代值,和 为第次迭代值,为学习率;步骤4:固定产生器g的参数,按式(10)(11)调整判别器d的参数
ꢀꢀꢀ
(10)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(11)式中,和为判别器d的权值和阈值,和 为第次迭代值,和 为第次迭代值,为学习率;步骤5:重复步骤2-步骤4,直到风险函数和均收敛。
16.仿真验证:在4.8mw的风机benchmark模型进行验证,以来自实际风场的风力数据来激活风机模型,仿真持续时间4400s,每个8ms采样一次,共采集440000组数据。滑动窗口长度选择300个采样点,操作系统win10 intel(r) core(tm) i7-10700 cpu@2.90ghz,按本文所推荐的方法,产生器和辨识器经过400步的对抗训练后基本稳定,尽管无法收敛为0,但已经收敛到一定的范围之内。以此评判器来判断新观察窗口时间序列,我们在风叶转速时间序列上认为制造了4种不同的故障,分别标记为f1, f2, f3和f4,每种故障随机选取滑动窗口的起始位置,得到100组观察序列,所获得结果如表1所示;表1. 测试结果序号说明正确次数错误次数准确率1无故障93793%2故障1(f1)94694%3故障2(f2)95595%4故障3(f3)95595%5故障4(f4)93793%从结果可以看出,不管是什么故障判断准确率能达到93%以上。
17.尽管上面结合附图对本发明进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨的情况下,还可以做出很多变形,这些均属于本发明的保护之内。
技术特征:1.一种基于反卷积网络和对抗神经网络结合的故障检测方法,其特征在于:步骤1: 由传感器获取健康状态下的时间序列, 式中,k为采样时刻, 表示时间序列足够长;步骤2: 采用长度为t的滑动窗口将时间序列分为m组,每组包括窗口时间序列和目标状态,式中,为窗口的起始采样点,为时间序列中窗口时间序列的下一个状态值,即;步骤3: 构建多层卷积神经网络cnn1,cnn1的输入层维数为t, 输出层为
ꢀꢀ
,隐含层包括卷积层1、池化层1、卷积层2、池化层2、
…
、卷积层n、池化层n和求和层,具体隐含层的层数根据不同的时间序列通过尝试获得;步骤4: 以步骤2中所获得的m组窗口时间序列与目标状态作为训练数据集,即() l=1,2,
…
m; 对多层卷积神经网络cnn1进行训练,得到对应的权值;步骤5:对训练好的cnn1求反卷积网络dcnn1,即:dcnn1与cnn1具有相同的结构,数据流相反,但各个对应权值的数值不变,即cnn1的输入层变为dcnn1的输出层,cnn1的池化层n、卷积层n、
…
、池化层2、卷积层2、池化层1、卷积层1变为dcnn1的卷积层1、池化层1、卷积层2、池化层2、
…
、卷积层n、池化层n;步骤6:构造两组深度神经网络形成对抗神经网络的产生器g和判别器d,其中产生器g的输入为时间序列构成的列向量,输出为目标状态;判别器d的输入为时间序列构成的列向量,输出为健康概率;步骤7: 对抗神经网络进行训练,直到训练完成;步骤8:数据产生器输入新的观察窗口数据,判断器输出为诊断结果。2.根据权利要求1所述的基于反卷积网络和对抗神经网络结合的故障检测方法,其特征在于,其中步骤4中的以步骤2中所获得的m组窗口时间序列与目标状态作为训练数据集,即() l=1,2,
…
m; 对多层卷积神经网络cnn1进行训练,得到对应的权值。3.根据权利要求1所述的基于反卷积网络和对抗神经网络结合的故障检测方法,其特征在于,其中步骤5中的对训练好的cnn1求反卷积网络dcnn1。4.根据权利要求1所述的基于反卷积网络和对抗神经网络结合的故障检测方法,其特征在于,其中步骤6中的构造两组深度神经网络形成对抗神经网络的产生器g和判别器d,其中产生器g的输入为时间序列构成的列向量,输出为目标状态;判别器d的输入为时间序列构成的列向量,输出为健康概率。5.根据权利要求1所述的基于反卷积网络和对抗神经网络结合的故障检测方法,其特征在于,其中步骤8中的数据产生器输入新的观察窗口数据,判断器输出为诊断结果。
技术总结本发明公开了一种基于反卷积网络和对抗神经网络的故障检测方法,尤其是缺乏历史故障数据的情形下,仅仅利用健康数据的时间序列就能实现对该时间序列所描述对象的健康状态检测。所述故障检测方法包括:由传感器获取健康状态下的时间序列,利用滑动窗口对时间序列进行分组以获取训练样本,构建多层卷积神经网络,并对多层卷积神经网络进行训练,得到对应的权值,对训练好的卷积神经网络求反卷积网络,构造两组深度神经网络形成对抗神经网络的产生器和判别器,对抗神经网络进行训练得到健康诊断器,输入观察窗口数据,判断器输出健康状态概率。该方法通过引入反卷积神经网络,解决了难以生成与过程对应的时间序列问题,提高了时间序列的生成效率,通过数据生成器与评估器的博弈过程,最终获得了健康状态的隐含边界条件,该方法不受故障类型特征限制,能够适用于对不同的故障类型,提高了故障检测的通用性,同时不需要附加昂贵的专用设备,从而大大降低了诊断成本。降低了诊断成本。
技术研发人员:张大鹏 谢雨贝
受保护的技术使用者:天津大学
技术研发日:2022.07.17
技术公布日:2022/11/1