基于自适应分块非负矩阵分解的化工生产过程故障监测方法与流程

文档序号:16779352发布日期:2019-02-01 18:59阅读:240来源:国知局
基于自适应分块非负矩阵分解的化工生产过程故障监测方法与流程

本发明属于控制系统故障诊断技术领域,具体涉及一种化工生产过程故障监测方法,用于提高复杂化工生产过程故障监测的准确率。



背景技术:

随着现代工业过程变得越来越复杂,许多工业过程(如化工过程)通常由高维且相互关联的海量数据组成。多变量统计过程监控(mspm)是一种基于数据驱动的故障诊断技术,其本质是将高维数据转换为低维数据,并在低维数据中获取重要信息。典型的mspm技术包含主成分分析(pca),偏最小二乘法(pls),独立成分分析(ica)等。

pca是一种广泛使用的降维技术,近几年来已经成功地应用于工业过程的在线监测,尤其是在化工过程中。很多文献在使用pca进行故障监控时,都要求被监控的过程变量必须遵循高斯分布。然而在实际的复杂工业生产中,大多数过程变量不满足高斯分布。如果pca方法用于非高斯过程的故障监测,则过程的统计特性将被削弱,导致过程故障监控不准确。为了解决过程数据非高斯问题,很多学者提出了ica算法,ica虽然提取了非高斯且相互独立的潜在独力分量,但处理的结果不够准确。为此,lee等人提出一种基于非负矩阵(nmf)降维方法(d.d.lee,andh.s.seung,“algorithmsfornon-negativematrixfactorization,”advancesinneuralinformationprocessingsystems,vol.13,no.6,pp.556-562,2000.)。与传统的mspm监测方法相比,nmf算法对测量数据除了为非负外没有其他限制,具有更广泛的应用。此外,nmf算法可以从海量数据中捕获数据的局部特征,并且具有比传统mspm方法更好的解释能力。

然而,很多基于nmf的故障监测方法中,都采用了固定的nmf模型通常故障过程是缓慢变化的,基于固定模型的故障监测算法可能会降低故障监测的准确性。



技术实现要素:

本发明的发明目的是提供一种化工生产过程故障监测方法,用于解决现有的化工生产过程故障诊断准确率低的问题。

为实现发明目的,可以采用如下的技术方案。

一种基于自适应分块非负矩阵分解(apnmf)的化工生产过程故障监测方法,用于处理化工生产过程中多个采集点监测的变量数据以识别出与已知故障相对应的数据,便于生产维护人员及早发现生产中的问题并做出相应处理,所述变量包括温度、压力、液位、流体速度和流量中的至少一种,包括以下步骤:

步骤一,基于非负矩阵的全局故障监测;

离线采集化工生产过程中d个采集点的所述变量的mn个历史正常样本,并构建历史矩阵对矩阵xn′进行预处理得到矩阵xn,以使其能够应用基于nmf的故障监测方法,然后利用nmf模型获取监测统计量nn2和spen的控制限nlim2和spelim;

在线采集化工生产过程中d个采集点的所述变量的m个测量样本,并构建测量矩阵xg′=[x1,x2,...,xm]∈rd×m,对测量矩阵xg′进行预处理,得到矩阵xg,然后利用nmf模型获取第t个样本的统计量ng2(t)和speg(t),将其与控制限和spelim进行比较,如果统计量ng2(t)或speg(t)超过相应的控制限或spelim,则将检测到的第t个样本认为故障样本,获取故障矩阵mf为故障样本个数;

步骤二,全局变量自适应分块;

根据步骤一得到的故障矩阵构建故障样本的残差矩阵:

ef=xf-wn(wntwn)-1wntxf(1)

计算pearson相关系数,表示为:

这里,ef,i和ef,j分别表示第i和第j个变量的残差,是ef,i的平均值,是ef,j的平均值;

对rf进行t检验,得到显著水平矩阵sf;

对矩阵sf使用完整的链接算法将变量划分为b个子块ci(i=1,2,...,b),其中,子块数据由子块ci(i=1,2,...,b)的变量构成,且满足d1+d2+...,+db=d;

步骤三,分块故障监测;

根据子块ci(i=1,2,...,b)构造每个子块的历史正常数据矩阵然后利用基于nmf模型的故障监测方法获得每个子块xi的监测统计量的控制限和监测统计量spei的控制限spei,lim;

计算第t个样本的b+1组统计量n2(t)和spe(t),并将它们与相应的控制限进行比较:

如果b+1个统计量n2(t)或spe(t)均没有超过相应的控制限,则将检测到的第t个样本认为正常样本,否则为故障样本。

优选的,在所述步骤一中,利用nmf模型获取监控统计量nn2与spen的控制限的方法包括以下步骤:

利用nmf算法,把xn矩阵分解为非负矩阵wn∈rd×k的乘积,其中,wn为基矩阵,hn为系数矩阵,k为降维的阶次,且满足不等式(d+mn)k≤dmn;

确定wn和hn的最优值:由给定的wn、hn初值,利用迭代法则进行更新迭代,直到这两个矩阵不在变化时,结束迭代;

确定每个样本t的监控指标nn2(t)和spen(t)在过程控制的监控中,监控模型如下

其中,为低阶重构矩阵,en为残差矩阵;

在该监控模型中,监控指标nn2和spen的计算公式如下

这里,分别为矩阵和xn的行向量;

利用核密度估计(kde)获取监控指标nn2和spen的控制限和spen,lim。

应当明白,在所述步骤一中利用nmf模型获取监测统计量ng2与speg的方法、所述步骤三中利用nmf模型获取每个子块xi的监测统计量ni2和spei的控制限的方法均与所述步骤一中利用nmf模型获取监控指标nn2与spen的控制限的方法是类同的,其仅通过将xn矩阵替换为测量矩阵xg或子块xi矩阵,属实质相同的方法。

进一步的,确定wn和hn的初值的方法是:

构造测量矩阵计算其协方差

对协方差s进行特征值分解,然后按照特征值的大小进行降序排列,s的特征值为λ1≥λ2≥...≥λd≥0,s的特征向量为p1,p2,...,pd;

pca模型对xnt的分解如下

其中,由s的前a个特征向量组成的p=[p1,p2,...,pa]∈rd×a为负载矩阵,为得分矩阵,t的每一列都是主元变量,a是主元个数,采用累计方差准则确定主元个数,累计方差准则为

当前a个主元的累积贡献率超过85%时,主元模型包含了足够多的原数据信息,

令k=a,则wn、hn初值为wn=abs(p)∈rd×k其中abs(.)是求取矩阵每一个元素的绝对值。

进一步的,在所述步骤一中,对矩阵xn′进行预处理的方法是:将xn′的每一行减去这一行所有样本数据的均值,然后除以这一行所有样本数据的标准差,最后对矩阵里面的每个数据取其绝对值。

进一步的,对矩阵xg′进行预处理的方法是:将xg′的每一行减去对应的xn′行所有样本数据的均值,然后除以对应xn′行所有样本数据的标准差,最后对矩阵里面的每个数据取其绝对值。

本发明的有益效果是:本发明所采用的基于apnmf模型的故障诊断与传统的基于nmf模型的故障诊断相比,系统在不同运行条件下的过程变量能够自适应的分成多个子变量模块,全局变量空间和每个子变量空间由nmf方法建模。然后,采用核密度估计(kde)方法计算定义的统计指标的控制限,之后进行故障的监测。该方法充分利用了块内局部信息和整体全局信息,提高故障监测的准确率。

附图说明

图1为本发明的流程图。

图2为te生产过程的原理图。

图3为故障5的全局监测图,图中横坐标为样本(samples)。

图4为故障5的子块c1监测图。

图5为故障5的子块c2监测图。

图6为故障5的子块c3监测图。

图7为故障5的子块c4监测图。

图8为故障5的子块c5监测图。

图9为故障5的子块c6监测图。

图10为故障5的子块c7监测图。

具体实施方式

下面结合附图和实施例来说明本发明的具体实施方式,但以下实施例只是用来详细说明本发明,并不以任何方式限制本发明的范围。

te过程是由美国eastman化学公司的downs和vogel提出的化工过程模型,该过程仿真是基于数据驱动的,是过程故障诊断监测的有效工具。因此,本发明选用te仿真例子进行验证。在实施例1中以故障5冷凝器冷却水入口温度的阶跃变化为例进行说明。

实施例1:本发明提出的一种基于自适应分块非负矩阵分解(apnmf)的化工生产过程故障监测方法,用于处理化工生产过程中多个采集点监测的变量数据以识别出与已知故障相对应的数据,所述变量包括温度、压力、液位、流体速度和流量中的至少一种,参见图1-3,包括以下步骤:

步骤一、基于非负矩阵的全局故障监测。

1)运行te过程仿真,离线采集d个监测点的所述变量的mn个历史正常样本(即获取采集点记录的离线数据),并构建历史矩阵对矩阵xn′进行预处理,预处理方法是将xn′的每一行减去这一行全部样本的均值(可以利用matlab软件的mean函数)且除以相应的这一行所有样本的标准差(可以利用matlab软件的std函数),然后对矩阵里面的每个数据取其绝对值(可以利用matlab软件的abs函数),得到预处理后的矩阵xn。这里,d=33,mn=500。

2)利用nmf算法,把矩阵xn分解为非负矩阵wn∈rd×k的乘积,可以表达为xn≈wnhn。其中wn为基矩阵,hn为系数矩阵,k为降维的阶次,且满足不等式(d+mn)k≤dmn。

3)确定wn和hn的最优值。首先,利用pca分解获取k值以及wn、hn的初值,具体方法如下,

构造测量矩阵计算其协方差

对协方差s进行特征值分解,然后按照特征值的大小进行降序排列(可以利用matlab软件中的eig函数)。s的特征值为λ1≥λ2≥...≥λd≥0,s的特征向量为p1,p2,...,pd。

pca模型对xnt的分解如下

其中,由s的前a个特征向量组成的p=[p1,p2,...,pa]∈rd×a为负载矩阵,为得分矩阵,t的每一列都是主元变量,a是主元个数,采用累计方差准则确定主元个数,累计方差准则为

当前a=17个主元的累积贡献率超过85%时,主元模型包含了足够多的原数据信息,

令k=a,则wn、hn初值为wn=abs(p)∈rd×k其中abs(.)是求取矩阵每一个元素的绝对值。

然后,基于利用pca分解获取wn、hn初值,通过迭代法则,进行一定次数的更新迭代,直到这两个数变化较小时或者不在变化时,结束迭代。这里,迭代次数为1000次。迭代法则如下,

4)确定每个样本t的监控指标nn2(t)和spen(t)。

在过程控制的监控中,监控模型如下:

其中,为低阶重构矩阵,en为残差矩阵;

在该监控模型中,监控指标nn2和spen的计算公式如下

这里,分别为矩阵和xn的行向量;

5)计算监控统计量nn2和spen的控制限。由于nn2和spen都是单变量,此时适合选用核密度估计(kde)求取控制限和spelim(可以利用matlab软件中计算kde的fitdist和icdf函数)。

6)在线采集化工生产过程中d个采集点的所述变量的m个测量样本,并构建测量矩阵xg′=[x1,x2,...,xm]∈rd×m,对测量矩阵xg′进行预处理,即将xg′的每一行减去对应的xn′行所有样本数据的均值,然后除以对应xn′行所有样本数据的标准差,最后对矩阵里面的每个数据取其绝对值,得到预处理后的矩阵xg。计算系数矩阵hg=wntxg。这里,d=33,m=960。其中,在进行数据监测时,前160个数据为正常数据,后800个数据为故障数据。

7)使用公式(14)和(15)计算并得出第t(1≤t≤m)个样本的统计量ng2(t)和speg(t),将其与控制限和spelim进行比较,如果统计量ng2(t)或speg(t)超过相应的控制限或spelim,则将检测到的第t个样本认为故障样本,获取故障矩阵mf为故障样本个数;

步骤二、全局变量自适应分块。

8)根据步骤一得到的故障矩阵mf为数据个数(mf=307)构建故障样本的残差矩阵:

ef=xf-wn(wntwn)-1wntxf(16)

9)计算pearson相关系数,表示为:

这里,ef,i和ef,j分别表示第i和第j个变量的残差,是ef,i的平均值,是ef,j的平均值;

10)对rf进行t检验(可以利用matlab软件的ttest函数),得到显著水平矩阵sf。sf为变量之间的相关程度,范围为0到1。其中,sf越小则两个变量之间的相关性越强。例如,如果sf≤0.05,则两个变量的相关性是显著的。

11)将矩阵sf定义为距离矩阵,并使用完整的链接算法(可以利用matlab软件的linkage函数)将变量划分为若干子块ci(i=1,2,...,b)。子块数据由子块ci(i=1,2,...,b)的变量构成,且满足d1+d2+...,+db=d。这里共分为c1(1229)2,c2(221932),c3(358614),c4(1254162771320),c5(18311926),c6(1733)和c7(1028112422)七个子块。

步骤三、分块故障监测。

12)根据子块ci(i=1,2,...,b=7)构造每个子块的历史正常数据矩阵并根据步骤一中的2)、3)步骤得到每个子块的基矩阵wni和系数矩阵hni。

13)根据公式(14)、(15)构建每个子块的监测统计量nn,i2和spen,i,并用kde算法计算控制限和spei,lim。

14)构造子块测量数据矩阵并利用公式(14)、(15)计算每个子块xi的监测统计量ni2和spei。

15)计算第t个样本的b+1组统计量n2(t)和spe(t),并将它们与相应的控制限进行比较:

如果b+1个统计量n2(t)或spe(t)均没有超过相应的控制限,则将检测到的第t个样本认为正常样本,否则为故障样本。正常样本意味着判断结果是正常,故障样本意味着判断结果是故障,已经能够判断出正常、故障。具体的监测结果见图3-10所示。

参见图1,通过以上三个步循环进行即可得到化工生产过程故障的监测结果。

在对故障5“凝器冷却水入口温度的阶跃变化”进行监测时,图3示出了采用nmf监测时在第161个样本和第376个样本之间清楚地

监测到了故障。然而,由于控制回路的补偿,在第385个样本之后很难通过n2和spe统计监测到故障。采用apnmf方法分为c1(1229231530),c2(221932),c3(358614),c4(1254162771320),c5(18311926),c6(1733)和c7(1028112422)7个子块,图4-10示出了这7个子块的监测结果。图3中的低监测结果存在于图5、图6、图7、图8、图10中。但是,如图9所示,c6子块可以在整个故障操作中通过spe统计监测故障。基于nmf的故障监测率n2和spe分别为0.3300和0.3612;而基于apnmf的分别为0.4762和0.9924。apnmf的spe统计数据显示故障仍然存在于过程中,并且子块c6中能监测出出大部分故障数据。通过上述分析,在故障5中,apnmf方法优于nmf方法,可以为监测人员提供更精确的信息。

实验例1:本实验例采用te模型模拟了一种基于自适应分块非负矩阵分解(apnmf)的化工生产过程故障监测方法具体应用,表1列出了te过程的33个采集点采集的变量数据,这些变量数据包括温度、压力、液位、流体速度流量和功率,表2列出了与这33个采集点采集的变量数据高度相关的21种故障,表3为分别采用pca、nmf、apnmf对该21种故障监测时的故障监测结果。

表1te过程的采集的变量及对应的采集点信息

表221种故障

表3为21种故障下故障监测的准确率/故障检测延迟时间

表3列21种故障下的pca,nmf和apnmf的故障监测结果。具有鲜明对比度的检测率用粗体字标记。注意到nmf方法的总体效果优于pca方法,这与已发表的很多论文中的结论是一致的。与pca或nmf相比,apnmf方法在大多数故障模式下显示出最高的故障检测率和最少的延迟时间,并且在故障3,5,9,10,16和19的模式下具有更好的性能,而该些故障均与温度相关。上述三种方法很容易检测到故障1,2,6,7,8,12,13,14,17和18因为它们对整个过程的变化和平均值有明显的影响。根据以上对te过程的采集点采集的变量数据的分析,所提出的apnmf方法在故障监测方面比pca和nmf表现更好。

上面结合附图和实施例对本发明作了详细的说明,但是,所属技术领域的技术人员能够理解,在不脱离本发明宗旨的前提下,还可以对上述实施例中的各个具体参数进行变更,形成多个具体的实施例,均为本发明的常见变化范围,在此不再一一详述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1