一种基于PCA-KDR的故障检测方法
技术领域
本发明涉及一种数据驱动的故障检测方法,尤其涉及一种基于PCA-KDR的故障检测方法。
背景技术
安全稳定的生产是所有工业过程对象首要考虑的问题,而保证持续正常的生产状态无外乎对过程运行状态实施实时监测,从而及时地甄别出系统出现的异常状态。在已有的科研文献与专利资料中,实施故障检测的技术手段可以大体上分为基于机理模型的与基于数据的。基于机理模型的故障检测方法依赖于过程对象精确的机理模型,以产生过程对象某些参数的实测值与估计值之间的误差,通过监测估计误差的变化情况来反应过程对象是否处于正常生产工况。一般而言,若系统处于正常生产状态下,参数的实测值与模型输出的估计值之间的误差通常基本符合高斯分布,是在某个区域内变化的。超出这个正常区域范围的误差所对应的采样时间点,系统就进入非正常运行状态。由于这类方法需要已知对象较精确的机理模型,已越来越不适应于监测现代工业过程。然而,以误差生成为核心的理念值得学习与借鉴。
目前,工业界与学术界关注密切的故障检测技术是数据驱动的方法,这其中又当以多变量统计过程监测(Multivariate Statistical Process Monitoring,MSPM)方法为主。主元分析(Principal Component Analysis,PCA)与独立元分析(IndependentComponent Analysis,ICA)是被研究得最多的MSPM算法,相应的研究成果层出不穷。一般来讲,基于PCA的故障检测方法需要要求训练数据服从或近似服从高斯分布,ICA算法因挖掘的是非高斯独立元而不受数据是否高斯分布的限制。然而,从算法本身来讲,PCA只是一种数据降维算法,旨在挖掘数据间的相关性特征并使降维后的数据最大化的保留原始数据的方差,是不存在高斯分布假设的。基于PCA的故障检测方法之所以假设数据高斯分布,原因在于需要为监测统计量指标(即T2与Q)确定控制上限。若不满足于高斯分布,PCA模型所定义的正常变化范围就不准确。基于ICA的故障检测模型同样是采用类似的距离型监测指标实施故障检测,只是控制上限由核密度估计法确定。从几何视觉的角度上看,距离型监测指标及其上限确定了一个超椭球的变化区域,只有在数据服从或近似服从高斯分布的前提下,该椭球区域才不会存在“空洞”现象。若是故障数据经投影变换后刚好位于“空洞”位置,这些故障工况样本是无法被PCA或ICA检测出来的。因此,被监测数据是否服从高斯分布对于基于距离型监测指标的方法很重要,不能只停留在高斯分布的假设上。
刚才提到过基于机理模型的方法生成的估计误差一般而言都服从高斯分布,这在满足一定精度要求的机理模型的前提下是成立的。受此启发,这种生成服从高斯分布误差并利用误差反映过程运行状态是否可以借鉴到数据驱动的故障检测模型中,比如说PCA模型。监测误差的主要优势在于,高斯分布假设变成了能最大限度接近高斯分布的误差信息,定义的超椭球区域不会存在“空洞”,相应的故障检测能力就会得到保证。
发明内容
本发明所要解决的主要技术问题是:如何在已知PCA模型的基础上,为在线监测样本数据推算出其相应主元的估计值,从而生成主元估计误差并利用该误差实施故障检测。为此,本发明提供一种基于PCA-KDR的故障检测方法。本发明方法逐个假设测量变量数据缺失,然后利用已知数据回归(Known Data Regression,KDR)预测出相应的主元估计值,最后利用主元估计误差实施故障检测。
本发明解决上述技术问题所采用的技术方案为:一种基于PCA-KDR的故障检测方法,包括以下步骤:
(1)收集生产过程正常运行状态下的数据样本,组成训练数据集X∈R
n×m,并对每个变量进行标准化处理,得到均值为0,标准差为1的新数据矩阵
其中,n为训练样本数,m为过程测量变量数,R为实数集,R
n×m表示n×m维的实数矩阵。
(2)利用PCA算法为
建立相应的PCA模型:
初始化变量下标号i=1,其中,T∈R
n×d与P∈R
m×d分别为主元得分矩阵与载荷矩阵,E∈R
n×m为模型拟合残差,上标号T表示矩阵与向量的转置。
(3)假设矩阵
中第i列数据缺失,为不失一般性,可将矩阵
表述成
其中,
为假设缺失的数据(实为矩阵
中第i列),
由矩阵
中剩余的列组成,为已知数据。
(4)利用最小二乘的思路构建已知数据矩阵
与主元得分矩阵T之间的回归模型,即:
其中,U
i与V
i为酉矩阵,对角矩阵
实际上只包含了一个非零奇异值,这是因为矩阵E
i的秩等于1。因此,从误差E
i到向量U
i之间的变换矩阵为
(6)根据公式Ui=EiΘi计算出剔除冗余信息后的误差向量Ui,并判断是否满足条件i<m?若是,则置i=i+1后返回步骤(3);若否,则将得到的误差向量组成矩阵U=[U1,U2,…,Um]后继续执行下一步骤。
(7)计算矩阵U的协方差矩阵S=U
TU/(n-1),并计算控制上限
其中
表示自由度为m的卡方分布在置信水平α=99%下的取值。
(8)收集新采样时刻的数据样本x∈R
m×1,对其实施与步骤(1)中相同的标准化处理得到新数据向量
后,初始化i=1。
(9)假设向量
中第i个数据缺失,同理,
可表示成
其中,
为第i个缺失的数据,
由向量
中除缺失数据以外的元素组成。
(10)利用如下所示公式计算出向量
在缺失第i个数据的前提下相应的主元估计误差e
i:
(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为本发明方法的基本原理示意图。
图2为TE过程原始数据与经本发明方法转换后误差的高斯分布检验图。
具体实施方式
下面结合附图对本发明方法进行详细的说明。
如图1所示,本发明公开一种基于PCA-KDR的故障检测方法,包括离线建模与在线故障检测两个部分,对应的实施过程如下所示:
离线建模阶段的实施流程如下所示:
步骤(1):收集生产过程正常运行状态下的数据样本,组成训练数据集X∈R
n×m,并对每个变量进行标准化处理,得到均值为0,标准差为1的新数据矩阵
其中,n为训练样本数,m为过程测量变量数,R为实数集,R
n×m表示n×m维的实数矩阵。
步骤(2):利用PCA算法为
建立相应的PCA模型:
初始化变量下标号i=1,其中,T∈R
n×d与P∈R
m×d分别为主元得分矩阵与载荷矩阵,E∈R
n×m为模型拟合残差,上标号T表示矩阵与向量的转置。
步骤(3):假设矩阵
中第i列数据缺失,为不失一般性,可将矩阵
表述成
其中,
为假设缺失的数据(实为矩阵
中第i列),
由矩阵
中剩余的列组成,为已知数据。
步骤(4):利用最小二乘的思路构建已知数据矩阵
与主元得分矩阵T之间的回归模型,即:
上式中,回归矩阵
E
i∈R
n×d为主元估计误差矩阵。
其中,U
i与V
i为酉矩阵,对角矩阵
实际上只包含了一个非零奇异值,这是因为矩阵E
i的秩等于1。因此,从误差E
i到向量U
i之间的变换矩阵为
步骤(6):根据公式Ui=EiΘi计算出剔除冗余信息后的误差向量Ui,并判断是否满足条件i<m?若是,则置i=i+1后返回步骤(3);若否,则将得到的误差向量组成矩阵U=[U1,U2,…,Um]后继续执行下一步骤。
步骤(7):计算矩阵U的协方差矩阵S=U
TU/(n-1),并计算控制上限
其中
表示自由度为m的卡方分布在置信水平α=99%下的取值。
至此,离线建模阶段完成,下面的实施步骤为在线故障检测。
步骤(8):收集新采样时刻的数据样本x∈R
m×1,对其实施与步骤(1)中相同的标准化处理得到新数据向量
后,初始化i=1。
步骤(9):假设向量
中第i个数据缺失,同理,
可表示成
其中,
为第i个缺失的数据,
由向量
中除缺失数据以外的元素组成。
步骤(10):利用如下所示公式计算出向量
在缺失第i个数据的前提下相应的主元估计误差e
i:
步骤(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∈R
960×33,并对每个变量进行标准化处理,得到均值为0,标准差为1的新数据矩阵
(2)利用PCA算法为
建立相应的PCA模型:
其中,主元得分矩阵为T∈R
960×14,载荷矩阵为P∈R
33×14。
(3)假设矩阵
中第i列数据缺失,利用最小二乘的思路构建已知数据矩阵
与主元得分矩阵T之间的回归模型:
(4)对主元估计误差
实施奇异值分解,得到从误差E
i到向量U
i之间的变换矩阵为
(5)据公式Ui=EiΘi计算出剔除冗余信息后的误差向量Ui,并判断是否满足条件i<m?若是,则置i=i+1后返回步骤(3);若否,则将得到的误差向量组成矩阵U=[U1,U2,…,Um]后继续执行下一步骤。
(6)计算矩阵U的协方差矩阵S=U
TU/(n-1),并计算控制上限
其次,为验证本发明方法可以将非高斯的原始数据转变成高斯分布的误差信息,特对TE过程第10、19、和31号测量变量的采样数据执行高斯分布检验,相应的检验图显示于图2中的上半部分。可以很明显的发现这三个测量变量不服从高斯分布。因为,高斯分布检验图为一条直线时,所测试的数据向量才服从高斯分布。在经本发明方法转变成误差后,以主元估计误差U10,U19,U31为例,相应的高斯分布检验图如图2中下半部分所示,都呈现出近乎直线的特性。因此,本发明方法在将其转换成误差信号后,该误差是服从高斯分布的。
最后,实施在线故障检测,为对比验证本发明方法与其他方法(如传统PCA方法与Modified ICA方法)的优越性,分别采集TE过程中除故障3、9、15以外的18种故障类型工况下各960个采样数据,其中前160个数据是正常的,后800个数据才处于异常工况。在线故障检测的实施过程如下所示:
(7)收集新采样时刻的数据样本x∈R
33×1,对其实施与步骤(1)中相同的标准化处理得到新数据向量
(8)逐一假设数据向量
中每个元素缺失,并计算出对应于向量
在缺失第i个数据的前提下相应的主元估计误差e
i。
(9)判断是否满足条件i<m?若是,则置i=i+1后返回步骤(9);若否,则将得到的误差组成向量e=[e1,e2,…,em]并继续执行下一步骤;
步骤(10):计算误差向量e的统计监测指标D=eS-1eT,并根据D的具体数值实施在线故障检测。
将18类故障工况下的故障漏报率对比详情列于表2中,所谓的故障漏报率是指在故障工况发生后,为能识别故障工况下的采样数据个数占所有故障工况下数据的百分比,该百分比数值越小说明方法越优越。在表2中,取得最小故障漏报率的数值已用黑体标出。可以很明显的发现,本发明方法所呈现出的故障漏报率在绝大多数情况下是最小的。
表2 TE过程18类故障的检测漏报率对比。
上述实施案例只用来解释说明本发明的具体实施,而不是对本发明进行限制。在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改,都落入本发明的保护范围。