背景技术
通常意义上来讲,对生产过程运行状态实施监测的目的首先在于及时而准确地发现故障,其次在于识别出故障的根源或类型。因此,故障检测与诊断两者缺一不可,它们对于保证安全生产与维持产品质量稳定是具有重要意义的。近十几年来,针对故障检测的研究层出不穷,涌现出了一大批故障检测新方法与新思路。相比之下,针对故障诊断的研究却寥寥无几。当前,由于工业信息化建设的大举推进,实施故障检测与诊断的主流技术是数据驱动的方法,这主要得益于现代化工过程的大型化建设以及先进仪表与计算机技术的广泛应用,生产过程可以采集海量的数据。数据驱动的故障诊断方法发展至今主要的实施方案有两种,其一是监测变量的贡献度分析,其二是将故障诊断当成一种分类问题实施故障分类。变量的贡献度分析由于变量间的交错关系,很容易将正常变量定位成故障根源。故障分类通过判别故障类型,在保证分类模型精确性的前提下可以较好地识别出故障类型。
然而,与传统分类问题不同的是,故障分类所能使用的数据皆采集自工况切换的过渡过程阶段,不仅数据的时变特性非常强,而且各类故障的可用参考样本有限。这主要是因为在故障发生后,现场操作人员会在第一时间内将过程修复至正常运行状态,各种故障工况下采集到的数据量是有限的。针对故障分类的研究若是直接采用模式识别领域常用的分类算法如判别分析、支持向量机、神经网络等建立多分类模型通常得不到满意的效果。此外,支持向量机与神经网络需要大量的数据实施训练才能保证模型精度,它们通常不适合用作故障分类诊断。
纵观现有的故障分类诊断方法的文献与专利,还鲜有涉及将故障多分类模型转变成多个单分类模型实施故障类型识别的解决思路。一般而言,针对某个故障类型进行特征描述建立单分类的模型与实施故障检测有相似之处,其特点在于可以针对每种故障类型实施其各自的特征挖掘与分析。然而,由于每种故障的可用训练数据时变特性强,建立单分类的模型实施故障类型匹配还有很多挑战性的难点未得到有效解决。
发明内容
本发明所要解决的主要技术问题是:如何通过多个单分类的模型实施故障类型识别。具体来讲,本发明方法首先将每种故障类型的可用训练数据转换成能体现变量间相互关系特征的误差,然后对误差建立分类的“故障检测”模型从而用于在线故障类型识别。
本发明解决上述技术问题所采用的技术方案为:一种基于多个误差生成模型的故障分类诊断方法,包括以下步骤:
(1)从生产过程历史数据库中找到不同故障工况条件下的采样数据,组成不同的参考故障数据集
其中N
c为第c种故障的可用样本数,c=1,2,…,C,R为实数集,
表示N
c×m维的实数矩阵,m为过程测量变量的个数。
(2)对各类型故障的参考故障数据集X
1,X
2,…,X
C按列实施标准化处理,对应得到均值为0,标准差为1的新数据矩阵
并初始化i=1。
(3)将新数据矩阵
中的第i列向量x
i取出,新数据矩阵
中其余的列组成新矩阵
再利用偏最小二乘算法建立由Y
i预测输出x
i的误差生成模型,具体的实施过程如下所示:
①置k=1与Zi=Yi后,初始化向量uk=xi;
②根据公式wk=Ziuk/||Ziuk||、sk=Ziwk、qk=xi Tsk/(sk Tsk)分别计算得到系数向量wk、得分向量sk、和系数qk,其中||Ziuk||表示计算向量Ziuk的长度;
③根据公式unew=xiqk/qk 2计算向量unew;
④判断是否满足条件||uk-unew||<10-6?若否,则置uk=unew后返回步骤②;若是,则执行⑤;
⑤根据公式pk=Zi Tsk/(sk Tsk)计算得到第k个投影向量pk∈R(m-1)×1,并保留投影向量pk、系数向量wk、和系数qk;
⑥判断矩阵Yk=skpk T中的最大元素是否大于0.01?若是,根据公式Zi=Zi-skpk T更新矩阵Zi后执行步骤⑦;若否,则得到投影矩阵P=[p1,p2,…,pk]、系数矩阵W=[w1,w2,…,wk]、和向量Q=[q1,q2,…,qk],并执行步骤⑧;
⑦判断k<m-1?若是,则置k=k+1后,返回步骤②;若否,则得到最终的投影矩阵P=[p1,p2,…,pk]、系数矩阵W=[w1,w2,…,wk]、和向量Q=[q1,q2,…,qk];
⑧根据公式br=Wr(Pr TWr)-1Qr T计算在保留r个投影向量前提下的回归系数向量br。其中r=1,2,…,k,对应可得到的回归系数向量有b1,n2,…,nk,Pr、Wr、和Qr分别为矩阵P、W、和Q中前1至r列向量组成的矩阵;
⑨根据公式
计算输出x
i的预测值
后,计算保留不同个数投影向量所对应的模型预测误差
⑩根据MSE1,MSE2,…,MSEk的数值变化情况找出预测误差不再发生显著变化的收敛点位置,并将其下标号对应的具体数值作为偏最小二乘模型需保留的投影变量个数K,其中K≤k;
由输入Y
i预测输出x
i的误差生成模型最终可确定为
其中,输入-输出回归向量为
模型预测误差为e
i。
(4)判断是否满足条件i<m?若是,则置i=i+1后返回步骤(3);若否,则将得到的估计误差向量组成估计误差矩阵
后继续执行下一步骤(5)。
(5)对估计误差矩阵Ec实施奇异值分解,即:Ec=UcΛcVc T,具体的实施过程如下所示:
①设置r=1与F=Ec后,初始化列向量tr为矩阵Ec中的第一列;
②根据公式vr=FTtr/(tr Ttr)计算得到向量vr;
③根据公式tnew=Fvr/(vr Tvr)计算向量tnew;
④判断是否满足条件||tnew-tr||<10-6?若是,则执行下一步骤⑤;若否,则置tr=tnew后返回步骤②;
⑤根据公式
分别计算得到第r个奇异值λ
r与向量μ
r,并根据公式F=F-t
rv
r T更新F;
⑥判断是否满足条件λr≤10-3?若否,则设置r=r+1与向量tr为矩阵F中的第一列后返回步骤②;若是,则将所有得到的奇异值λ1,λ2,…,λr组成对角矩阵Λc∈Rr×r,将所有得到的向量μ1,μ2,…,μr组成矩阵Uc=[μ1,μ2,…,μr],再将所有的向量v1,v2,…,vr组成矩阵Vc=[v1,v2,…,vr]。
(6)重复步骤(2)~(5)直至得到所有C种故障类型对应的误差生成模型、奇异值分解模型、以及控制上限。
(7)当在线检测出故障样本z∈R1×m后,对z实施与第c类故障的参考数据集Xc相同的标准化处理得到zc=[z1,z2,…,zm],并初始化i=1。
(8)将z
c中第i列元素z
i取出,剩余元素作为输入向量y
i∈R
1×(m-1),根据公式
生成对应的误差f
i。
(9)判断是否满足条件i<m?若是,则置i=i+1后返回步骤(8);若否,则将得到的误差组成向量Fc=[f1,f2,…,fm]∈R1×m后继续执行下一步骤(10)。
(10)根据如下所示公式计算统计指标Dc的具体数值:
Dc=||FcVcΛc -1||2 (1)
上式中符号||||表示计算向量的长度。
(11)重复步骤(7)~(10)得到不同故障类型条件下的统计指标D1,D2,…,DC,那么当前故障样本所隶属的故障类型为D1,D2,…,DC中最小值对应的故障类型。
与传统方法相比,本发明方法的优势在于:
本发明方法针对每种故障类型的训练数据,建立其各自的误差生成模型,然后利用误差建立单分类模型匹配统计监测指标。从这点上看,本发明方法将故障分类诊断的多分类问题转换成了多个单分类模型实施故障分类。此外,在生成误差的过程中,本发明方法针对各测量变量单独建立一个偏最小二乘模型以生成误差,体现出了分散式建模的特点。因此,本发明方法还具备分散式多模型的优势。综合以上两点优势,本发明方法是一种更为优选的故障分类诊断方法。
具体实施方式
下面结合附图与具体的实施案例对本发明方法进行详细的说明。
如图1所示,本发明公开一种基于多个误差生成模型的故障分类诊断方法。下面结合一个具体的工业过程的例子来说明本发明方法的具体实施过程。
表1:TE过程监测变量。
序号 |
变量描述 |
序号 |
变量描述 |
序号 |
变量描述 |
1 |
物料A流量 |
12 |
分离器液位 |
23 |
D进料阀门位置 |
2 |
物料D流量 |
13 |
分离器压力 |
24 |
E进料阀门位置 |
3 |
物料E流量 |
14 |
分离器塔底流量 |
25 |
A进料阀门位置 |
4 |
总进料流量 |
15 |
汽提塔等级 |
26 |
A和C进料阀门位置 |
5 |
循环流量 |
16 |
汽提塔压力 |
27 |
压缩机循环阀门位置 |
6 |
反应器进料 |
17 |
汽提塔底部流量 |
28 |
排空阀门位置 |
7 |
反应器压力 |
18 |
汽提塔温度 |
29 |
分离器液相阀门位置 |
8 |
反应器等级 |
19 |
汽提塔上部蒸汽 |
30 |
汽提塔液相阀门位置 |
9 |
反应器温度 |
20 |
压缩机功率 |
31 |
汽提塔蒸汽阀门位置 |
10 |
排空速率 |
21 |
反应器冷却水出口温度 |
32 |
反应器冷凝水流量 |
11 |
分离器温度 |
22 |
分离器冷却水出口温度 |
33 |
冷凝器冷却水流量 |
应用对象是来自于美国田纳西-伊斯曼(TE)化工过程实验,原型是伊斯曼化工生产车间的一个实际工艺流程。目前,TE过程因其流程的复杂性,已作为一个标准实验平台被广泛用于故障检测研究。整个TE过程包括22个测量变量、12个操作变量、和19个成分测量变量。TE过程除仿真正常工况以外,还可以模拟21组故障数操作工况。而在这些故障工况中,有7个是阶跃类型故障,如冷却水入口温度阶跃变化等。为了对该过程的七类故障进行故障分类诊断,选取如表1所示的33个过程变量,接下来结合该TE过程对本发明具体实施步骤进行详细的阐述。
首先,利用TE过程这七类故障的训练数据离线建立模型,每类故障的可用样本数设置为200个。
(1)从生产过程历史数据库中找到不同故障工况条件下的采样数据,组成不同的参考故障数据集Xc∈R200×33。
(2)对第c种故障类型的参考故障数据集X
c按列实施标准化处理,对应得到均值为0,标准差为1的新数据矩阵
并初始化i=1。
(3)将新数据矩阵
中的第i列向量x
i取出,新数据矩阵
中其余的列组成新矩阵Y
i∈R
200×32,再利用偏最小二乘算法建立由Y
i预测输出x
i的误差生成模型为
(4)判断是否满足条件i<33?若是,则置i=i+1后返回步骤(3);若否,则将得到的误差组成估计误差矩阵Ec=[e1,e2,…,e33]∈R200×33后继续执行下一步骤。
(5)对估计误差矩阵Ec实施奇异值分解,即:Ec=UcΛcVc T。
(6)重复步骤(2)~(5)直至得到所有C种故障类型对应的误差生成模型、奇异值分解模型、以及控制上限。
其次,采集TE过程第五类故障(即冷凝器冷却水进口问题阶跃跳变故障)的的测试数据集,实施在线故障分类诊断。
(7)当在线检测出故障样本z∈R1×33后,对z实施与第c类故障的参考故障数据集Xc相同的标准化处理得到zc=[z1,z2,…,z33]。
(8)将z
c中第i列元素z
i取出,剩余元素作为输入向量y
i∈R
1×32,根据公式
生成对应的误差f
i。
(9):判断是否满足条件i<33?若是,则置i=i+1后返回步骤(8);若否,则将得到的误差组成向量Fc=[f1,f2,…,f33]后继续执行下一步骤(10)。
(10)根据公式Dc=||FcVcΛc -1||2计算统计指标Dc的具体数值。
(11)根重复步骤(7)~(10)得到不同故障类型条件下的统计指标D1,D2,…,DC,那么当前故障样本所隶属的故障类型为D1,D2,…,DC中最小值对应的故障类型。
最后,将本发明方法对于该故障的分057类诊断结果显示于图2中,带星号标记的曲线就是理应诊断出的故障类型。从图2中可以发现本发明方法能成功诊断出该故障。
上述实施案例只用来解释说明本发明的具体实施,而不是对本发明进行限制。在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改,都落入本发明的保护范围。