发明内容
本发明所要解决的主要技术问题是:如何从数据的角度将原始数据转换成服从或近似服从高斯分布的误差信息,然后对该误差实施监测从而避免因非高斯数据造成的种种不便。为此,本发明提供一种基于缺失数据的分布式工业过程监测方法。首先,本发明方法逐一假设过程对象中每个变量的测量数据缺失;然后,根据PCA模型中处理缺失数据的技巧推测出相应缺失变量的估计值;最后,利用假设的缺失数据实测值与估计值之间的误差作为被监测对象,再次建立基于PCA的故障检测模型实施在线故障检测。
本发明解决上述技术问题所采用的技术方案为:一种基于误差主元分析模型的工业过程监测方法,包括以下步骤:
(1)收集生产过程正常运行状态下的数据样本,组成训练数据集X∈Rn×m,并对每个变量进行标准化处理,得到均值为0,标准差为1的新数据矩阵其中,n为训练样本数,m为过程测量变量数,R为实数集,Rn×m表示n×m维的实数矩阵。
(2)利用PCA算法对矩阵进行分解其中T∈Rn×m与P∈Rm×m分别为主元得分矩阵与载荷矩阵,并初始化变量下标号i=1。
(3)假设矩阵中第i列数据缺失,为不失一般性,可将矩阵表述成其中,为假设缺失的数据(实为矩阵中第i列),由矩阵中剩余的列组成,对应的载荷矩阵P也可以类似的表述成P=[Pi #T,Pi *T]T,其中,为矩阵P中的第i行,Pi *∈R(m-1)×d由矩阵P中除去第i行以外的元素组成,上标号T表示矩阵或向量的转置。
(4)按照如下所示公式推测出中的第i列数据的估计值
(5)计算缺失数据的估计误差并判断是否满足条件i<m?若是,置i=i+1后,重复执行步骤(3)~(5);若否,将所有得到的估计误差向量组成误差矩阵F=[F1,F2,…,Fm]∈Rn×m后执行步骤(6)。
(6)对误差矩阵F建立基于PCA的故障检测模型,保留模型载荷矩阵H∈Rm×d、主元得分矩阵G∈Rn×d的协方差矩阵Λ∈Rd×d、以及监测统计量的控制上限Tc 2与Qc,其中,d为主元模型保留的主元个数。
(7)收集新采样时刻的数据样本x∈Rm×1,对其实施与步骤(1)中相同的标准化处理得到新数据向量后,初始化i=1。
(8)假设向量中第i个数据缺失,同理,可表示成其中,xi #为第i个缺失的数据,xi *由向量中除缺失数据以外的元素组成,按照如下所示公式计算中缺失变量实测值与估计值之间的误差ei:
ei=xi #-P#ΛP*T(P*ΛP*T)-1xi * (2)
(9)判断是否满足条件i<m?若是,置i=i+1后,重复执行步骤(8)~(9);若否,将所有得到的估计误差组成误差向量e=[e1,e2,…,em]T后执行下一步骤(10)。
(10)调用步骤(6)中保留的故障检测模型参数,并根据如下所示公式分别计算监测统计量指标T2与Q的具体数值:
T2=eTHΛHTe (3)
Q=eT(I-HHT)e (4)
(11)将T2与Q的具体数值与对应控制上限Tc 2与Qc进行比较,判断当前监测样本是否来自于故障工况。
与传统方法相比,本发明方法的优势在于:
本发明方法以PCA模型为基础通过假设缺失数据以生成缺失数据实测值与估计值之间的估计误差,巧妙的将原始数据转换成服从或近似服从高斯分布的误差。本发明方法不拘泥于原始数据是否满足于高斯分布假设,而通过对估计误差实施基于PCA的故障检测流程来避免直接面对这一问题。本发明方法虽然同样采用的是传统PCA故障检测模型中的距离型监测统计量指标,但是由于监测对象为满足于高斯分布的估计误差,本发明方法定义的正常状态的波动区域是比较准确的,不会出现“空洞”现象。可以说,本发明方法能较大幅度改善传统PCA方法的故障监测性能,是一种更为优选的过程监测方法。
具体实施方式
下面结合附图对本发明方法进行详细的说明。
如图1所示,本发明方法提供一种基于误差主元分析模型的工业过程监测方法,具体包括以下步骤:
首先是离线建模部分,如图2中左图所示,实施流程如下所示:
步骤(1):收集生产过程正常运行状态下的数据样本,组成训练数据集X∈Rn×m,并对每个变量进行标准化处理,得到均值为0,标准差为1的新数据矩阵其中,n为训练样本数,m为过程测量变量数,R为实数集,Rn×m表示n×m维的实数矩阵。
步骤(2):利用PCA算法对矩阵进行分解其中T∈Rn×m与P∈Rm×m分别为主元得分矩阵与载荷矩阵,并初始化变量下标号i=1,具体实施过程如下所示:
①计算的相关性矩阵
②求解C所有特征值λ1≥λ2≥…≥λm所对应的特征向量p1,p2…,pm;
③将m个特征向量组成载荷矩阵P=[p1,p2…,pm];
④根据公式计算主元矩阵T∈Rn×m。
步骤(3):假设矩阵中第i列数据缺失,为不失一般性,可将矩阵表述成其中,为假设缺失的数据(实为矩阵中第i列),由矩阵中剩余的列组成,对应的载荷矩阵P也可以类似的表述成P=[Pi #T,Pi *T]T,其中,Pi #∈R1 ×d为矩阵P中的第i行,Pi *∈R(m-1)×d由矩阵P中除去第i行以外的元素组成,上标号T表示矩阵或向量的转置。
步骤(4):按照如下所示公式推测出中的第i列数据的估计值:
步骤(5):计算缺失数据的估计误差并判断是否满足条件i<m?若是,置i=i+1后,重复执行步骤(3)~(5);若否,将所有得到的估计误差向量组成误差矩阵F=[F1,F2,…,Fm]∈Rn×m后执行步骤(6)。
步骤(6):对误差矩阵F建立基于PCA的故障检测模型,保留模型载荷矩阵H∈Rm×d、主元得分矩阵G∈Rn×d的协方差矩阵Λ∈Rd×d、以及监测统计量的控制上限Tc 2与Qc。为F建立基于PCA的故障检测模型包括以下步骤:
①计算F的协方差矩阵S=FTF/(n-1);
②求解S所有特征值γ1≥γ2≥…≥γm所对应的特征向量h1,h2…,hm;
③设置保留的主成分个数d为满足如下所示条件的最小值,并将对应的d个特征向量组成载荷矩阵H=[h1,h2…,hd];
④根据公式G=FH计算主元得分矩阵G∈Rn×d,并计算其相应的协方差矩阵Λ=GTG/(n-1);
⑤根据如下所示公式分别确定监测统计量T2与Q对应的控制上限Tc 2与Qc:
上两式中,置信水平α=99%,Fα(d,n-d)表示自由度为d与n-d的F分布,表示权重为g=v/2b,自由度为h=2a2/b的χ2分布,a与b分别是F对应的Q统计量的估计均值和估计方差。
其次,实施在线故障检测的流程如图2中右图所示,详细的过程如下所示:
步骤(7):收集新采样时刻的数据样本x∈Rm×1,对其实施与步骤(1)中相同的标准化处理得到新数据向量后,初始化i=1。
步骤(8):假设向量中第i个数据缺失,同理,可表示成其中,xi #为第i个缺失的数据,xi *由向量中除缺失数据以外的元素组成,按照如下所示公式计算中缺失变量实测值与估计值之间的误差ei:
ei=xi #-P#ΛP*T(P*ΛP*T)-1xi * (9)
步骤(9):判断是否满足条件i<m?若是,置i=i+1后,重复执行步骤(8)~(9):若否,将所有得到的估计误差组成误差向量e=[e1,e2,…,em]T后执行下一步骤(10)。
步骤(10):用步骤(6)中保留的故障检测模型参数,并根据如下所示公式分别计算监测统计量指标T2与Q的具体数值:
T2=eTHΛHTe (10)
Q=eT(I-HHT)e (11)
步骤(11):判断T2与Q的具体数值是否大于对应控制上限Tc 2与Qc?若否,则当前样本为正常工况采样;若是,则当前采样数据有可能来自故障工况,理应继续监测接下来的3~6个新样本,若都超限,则说明当前工况已出现故障,若都没超限,则说明当前工况仍旧处于正常状态。
下面结合一个具体的工业过程的例子来说明本发明方法相对于现有方法的优越性与可靠性。该过程数据来自于美国田纳西-伊斯曼(TE)化工过程实验,原型是伊斯曼化工生产车间的一个实际工艺流程。目前,TE过程因其流程的复杂性,已作为一个标准实验平台被广泛用于故障检测研究。整个TE过程包括22个测量变量、12个操作变量、和19个成分测量变量。所采集的数据分为22组,其中包括1组正常工况下的数据集与21组故障数据。而在这些故障数据中,有16个是已知故障类型,如冷却水入口温度或进料成分的变化、阀门粘滞、反应动力学漂移等,还有5个故障类型是未知的。为了对该过程进行监测,选取如表1所示的33个过程变量,接下来结合该TE过程对本发明具体实施步骤进行详细的阐述。
表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过程正常工况下的采样数据建立故障检测模型,包括以下步骤:
(1)采集正常工况下的过程数据,以其中960个正常数据组成训练数据矩阵X∈R960 ×33,对其进行标准化处理得到
(2)利用PCA算法对矩阵进行分解并初始化变量下角标i=1。
(3)假设矩阵中第i列数据缺失,为不失一般性,可将矩阵表述成对应的载荷矩阵P也可以类似的表述成P=[Pi #T,Pi *T]T。
(4)按照如下所示公式推测出中的第i列数据的估计值
(5)计算缺失数据的估计误差并判断是否满足条件i<m?若是,置i=i+1后,重复执行步骤(3)~(5);若否,将所有得到的估计误差向量组成误差矩阵F=[F1,F2,…,Fm]∈Rn×m后执行步骤(6)。
(6)对误差矩阵F建立基于PCA的故障检测模型,保留模型载荷矩阵H∈Rm×d、主元得分矩阵G∈Rn×d的协方差矩阵Λ∈Rd×d、以及监测统计量的控制上限Tc 2与Qc。
为验证本发明方法可以将非高斯的原始数据转变成高斯分布的误差信息,特对TE过程第10、19、和31号测量变量的采样数据执行高斯分布检验,相应的检验图显示于图3中的上半部分。可以很明显的发现这三个测量变量不服从高斯分布。因为,高斯分布检验图为一条直线时,所测试的数据向量才服从高斯分布。在经本发明方法转变成误差后,以主元估计误差F10,F19,F31为例,相应的高斯分布检验图如图3中下半部分所示,都呈现出近乎直线的特性。因此,本发明方法在将其转换成误差信号后,该误差是服从高斯分布的。
最后,实施在线故障检测,为对比验证本发明方法与其他方法(如传统PCA方法与Modified ICA方法)的优越性,采集TE过程中第五种故障类型工况下的960个采样数据,其中前160个数据是正常的,后800个数据才处于异常工况。
(7)收集新采样时刻的数据样本x∈R1×33,对其实施与步骤(1)中相同的标准化处理得到新数据向量后,初始化i=1。
(8)假设向量中第i个数据缺失,同理,可表示成计算中缺失变量实测值与估计值之间的误差ei。
(9)判断是否满足条件i<m?若是,置i=i+1后,重复执行步骤(8)~(9);若否,将所有得到的估计误差组成误差向量e=[e1,e2,…,e33]T后执行下一步骤(10)。
(10)计算监测误差向量e的统计量指标T2与Q的具体数值。
(11)判断T2与Q的具体数值是否大于对应控制上限Tc 2与Qc?若否,则当前样本为正常工况采样;若是,则当前采样数据有可能来自故障工况,理应继续监测接下来的3~6个新样本,若都超限,则说明当前工况已出现故障,若都没超限,则说明当前工况仍旧处于正常状态。对应的故障监测详图显示于图4中,可以很明显的发现,本发明方法取得的效果明显优越于其他两种方法。
上述实施案例只用来解释说明本发明的具体实施,而不是对本发明进行限制。在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改,都落入本发明的保护范围。