发明内容
本发明所要解决的主要技术问题是:如何在已知PCA模型的基础上,为在线监测样本数据推算出其相应主元的估计值,从而生成主元估计误差并利用该误差实施故障检测。为此,本发明提供一种基于PCA-KDR的故障检测方法。本发明方法逐个假设测量变量数据缺失,然后利用已知数据回归(Known Data Regression,KDR)预测出相应的主元估计值,最后利用主元估计误差实施故障检测。
本发明解决上述技术问题所采用的技术方案为:一种基于PCA-KDR的故障检测方法,包括以下步骤:
(1)收集生产过程正常运行状态下的数据样本,组成训练数据集X∈Rn×m,并对每个变量进行标准化处理,得到均值为0,标准差为1的新数据矩阵其中,n为训练样本数,m为过程测量变量数,R为实数集,Rn×m表示n×m维的实数矩阵。
(2)利用PCA算法为建立相应的PCA模型:初始化变量下标号i=1,其中,T∈Rn×d与P∈Rm×d分别为主元得分矩阵与载荷矩阵,E∈Rn×m为模型拟合残差,上标号T表示矩阵与向量的转置。
(3)假设矩阵中第i列数据缺失,为不失一般性,可将矩阵表述成其中,为假设缺失的数据(实为矩阵中第i列),由矩阵中剩余的列组成,为已知数据。
(4)利用最小二乘的思路构建已知数据矩阵与主元得分矩阵T之间的回归模型,即:
上式中,回归矩阵为主元估计误差矩阵。
(5)对主元估计误差实施奇异值分解,即:
其中,Ui与Vi为酉矩阵,对角矩阵实际上只包含了一个非零奇异值,这是因为矩阵Ei的秩等于1。因此,从误差Ei到向量Ui之间的变换矩阵为
(6)根据公式Ui=EiΘi计算出剔除冗余信息后的误差向量Ui,并判断是否满足条件i<m?若是,则置i=i+1后返回步骤(3);若否,则将得到的误差向量组成矩阵U=[U1,U2,…,Um]后继续执行下一步骤。
(7)计算矩阵U的协方差矩阵S=UTU/(n-1),并计算控制上限其中表示自由度为m的卡方分布在置信水平α=99%下的取值。
(8)收集新采样时刻的数据样本x∈Rm×1,对其实施与步骤(1)中相同的标准化处理得到新数据向量后,初始化i=1。
(9)假设向量中第i个数据缺失,同理,可表示成其中,为第i个缺失的数据,由向量中除缺失数据以外的元素组成。
(10)利用如下所示公式计算出向量在缺失第i个数据的前提下相应的主元估计误差ei:
上式中,主元实际值主元估计值
(11)判断是否满足条件i<m?若是,则置i=i+1后返回步骤(9);若否,则将得到的误差组成向量e=[e1,e2,…,em]并继续执行下一步骤。
(12)根据如下所示公式计算误差向量e的统计监测指标D:
D=eS-1eT (4)
进而根据D的具体数值实施在线故障检测,具体思路为:若D≤ub,则当前时刻过程对象运行正常,继续监测下一个新样本数据;若否,当前时刻运行出现异常。
与传统方法相比,本发明方法的优势在于:
本发明方法在传统PCA模型的基础上,通过假设缺失数据并利用KDR推算出相应的主元估计值,从而将原始数据转换成估计误差并以误差作为监测对象。一般而言,PCA统计模型能挖掘过程变量间的相关性特征,以PCA为基础通过KDR得到的估计误差通常是服从高斯分布的。从这点上将,本发明方法除利用PCA算法外,还是用了KDR这种回归建模方法。而且,本发明方法不再局限于原始训练数据的高斯分布假设。取而代之的是,无论原始数据是否服从高斯分布,本发明方法监测对象(即估计误差)始终服从高斯分布。因此,本发明方法能显著提升传统PCA模型的故障检测能力,是一种更为优选的故障检测方法。
具体实施方式
下面结合附图对本发明方法进行详细的说明。
如图1所示,本发明公开一种基于PCA-KDR的故障检测方法,包括离线建模与在线故障检测两个部分,对应的实施过程如下所示:
离线建模阶段的实施流程如下所示:
步骤(1):收集生产过程正常运行状态下的数据样本,组成训练数据集X∈Rn×m,并对每个变量进行标准化处理,得到均值为0,标准差为1的新数据矩阵其中,n为训练样本数,m为过程测量变量数,R为实数集,Rn×m表示n×m维的实数矩阵。
步骤(2):利用PCA算法为建立相应的PCA模型:初始化变量下标号i=1,其中,T∈Rn×d与P∈Rm×d分别为主元得分矩阵与载荷矩阵,E∈Rn×m为模型拟合残差,上标号T表示矩阵与向量的转置。
步骤(3):假设矩阵中第i列数据缺失,为不失一般性,可将矩阵表述成其中,为假设缺失的数据(实为矩阵中第i列),由矩阵中剩余的列组成,为已知数据。
步骤(4):利用最小二乘的思路构建已知数据矩阵与主元得分矩阵T之间的回归模型,即:
上式中,回归矩阵Ei∈Rn×d为主元估计误差矩阵。
步骤(5):对主元估计误差实施奇异值分解,即:
其中,Ui与Vi为酉矩阵,对角矩阵实际上只包含了一个非零奇异值,这是因为矩阵Ei的秩等于1。因此,从误差Ei到向量Ui之间的变换矩阵为
步骤(6):根据公式Ui=EiΘi计算出剔除冗余信息后的误差向量Ui,并判断是否满足条件i<m?若是,则置i=i+1后返回步骤(3);若否,则将得到的误差向量组成矩阵U=[U1,U2,…,Um]后继续执行下一步骤。
步骤(7):计算矩阵U的协方差矩阵S=UTU/(n-1),并计算控制上限其中表示自由度为m的卡方分布在置信水平α=99%下的取值。
至此,离线建模阶段完成,下面的实施步骤为在线故障检测。
步骤(8):收集新采样时刻的数据样本x∈Rm×1,对其实施与步骤(1)中相同的标准化处理得到新数据向量后,初始化i=1。
步骤(9):假设向量中第i个数据缺失,同理,可表示成其中,为第i个缺失的数据,由向量中除缺失数据以外的元素组成。
步骤(10):利用如下所示公式计算出向量在缺失第i个数据的前提下相应的主元估计误差ei:
上式中,主元实际值主元估计值
步骤(11):判断是否满足条件i<m?若是,则置i=i+1后返回步骤(9);若否,则将得到的误差组成向量e=[e1,e2,…,em]并继续执行下一步骤。
步骤(12):根据如下所示公式计算误差向量e的统计监测指标D:
D=eS-1eT (8)
进而根据D的具体数值实施在线故障检测,具体思路为:若D≤ub,则当前时刻过程对象运行正常,继续监测下一个新样本数据;若否,当前时刻运行出现异常。
下面结合一个具体的工业过程的例子来说明本发明方法相对于现有方法的优越性与可靠性。该过程数据来自于美国田纳西-伊斯曼(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)收集生产过程正常运行状态下的数据样本,组成训练数据集X∈R960×33,并对每个变量进行标准化处理,得到均值为0,标准差为1的新数据矩阵
(2)利用PCA算法为建立相应的PCA模型:其中,主元得分矩阵为T∈R960×14,载荷矩阵为P∈R33×14。
(3)假设矩阵中第i列数据缺失,利用最小二乘的思路构建已知数据矩阵与主元得分矩阵T之间的回归模型:
(4)对主元估计误差实施奇异值分解,得到从误差Ei到向量Ui之间的变换矩阵为
(5)据公式Ui=EiΘi计算出剔除冗余信息后的误差向量Ui,并判断是否满足条件i<m?若是,则置i=i+1后返回步骤(3);若否,则将得到的误差向量组成矩阵U=[U1,U2,…,Um]后继续执行下一步骤。
(6)计算矩阵U的协方差矩阵S=UTU/(n-1),并计算控制上限
其次,为验证本发明方法可以将非高斯的原始数据转变成高斯分布的误差信息,特对TE过程第10、19、和31号测量变量的采样数据执行高斯分布检验,相应的检验图显示于图2中的上半部分。可以很明显的发现这三个测量变量不服从高斯分布。因为,高斯分布检验图为一条直线时,所测试的数据向量才服从高斯分布。在经本发明方法转变成误差后,以主元估计误差U10,U19,U31为例,相应的高斯分布检验图如图2中下半部分所示,都呈现出近乎直线的特性。因此,本发明方法在将其转换成误差信号后,该误差是服从高斯分布的。
最后,实施在线故障检测,为对比验证本发明方法与其他方法(如传统PCA方法与Modified ICA方法)的优越性,分别采集TE过程中除故障3、9、15以外的18种故障类型工况下各960个采样数据,其中前160个数据是正常的,后800个数据才处于异常工况。在线故障检测的实施过程如下所示:
(7)收集新采样时刻的数据样本x∈R33×1,对其实施与步骤(1)中相同的标准化处理得到新数据向量
(8)逐一假设数据向量中每个元素缺失,并计算出对应于向量在缺失第i个数据的前提下相应的主元估计误差ei。
(9)判断是否满足条件i<m?若是,则置i=i+1后返回步骤(9);若否,则将得到的误差组成向量e=[e1,e2,…,em]并继续执行下一步骤;
步骤(10):计算误差向量e的统计监测指标D=eS-1eT,并根据D的具体数值实施在线故障检测。
将18类故障工况下的故障漏报率对比详情列于表2中,所谓的故障漏报率是指在故障工况发生后,为能识别故障工况下的采样数据个数占所有故障工况下数据的百分比,该百分比数值越小说明方法越优越。在表2中,取得最小故障漏报率的数值已用黑体标出。可以很明显的发现,本发明方法所呈现出的故障漏报率在绝大多数情况下是最小的。
表2 TE过程18类故障的检测漏报率对比。
上述实施案例只用来解释说明本发明的具体实施,而不是对本发明进行限制。在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改,都落入本发明的保护范围。