时间:2024-05-04
李 元,吴昊俣,张 成,冯立伟
(1.沈阳化工大学 信息工程学院,沈阳 110142; 2.沈阳化工大学 数理系,沈阳 110142)(*通信作者电子邮箱li-yuan@ mail.tsinghua.edu.cn)
随着科学技术的发展,现代工业生产系统变得越来越庞大和复杂,而这些系统一旦发生故障,便会造成不可估量的财产损失甚至人员伤亡[1]。工业生产过程中进行过程控制、监测、故障检测及诊断能够确保过程的稳定运行和安全可靠[2-3]。因此,人们迫切需要提高复杂系统的可靠性和可维护性。系统的故障诊断技术可以有效地提高系统的可靠性与安全性,降低事故风险,提高经济效益。故障诊断技术通常采用解析模型的方法以及数据驱动等方法进行分析[4-6]。本文采用数据驱动的方法进行研究,因为数据驱动技术不需要事先已知一个系统的精确数学模型便能对它实现控制、故障诊断,而解析模型方法需要精确的数学模型所以很难实现[6-7]。
数据驱动的方法包含五大类:机器学习、信息融合、多元统计分析、粗糙集、信号处理[8]。本文采用的是多元统计分析的方法。基于多元统计分析方法的故障监测是利用过程中多个变量之间的相关性对过程进行故障检测[9-10]。这类方法根据过程变量的历史数据,利用多元投影方法将多变量样本空间分解成由主元变量张成的较低维的投影子空间和一个相应的残差子空间,并分别在这两个空间中构造能够反映空间变化的统计量,然后将观测向量分别向两个子空间投影并计算相应的统计量指标用于过程监控[11-13]。常用的多元投影方法主成分分析(Principal Component Analysis, PCA)、偏最小二乘法(Partial Least Squares, PLS),以及独立主元分析(Independent Component Analysis, ICA)[13-17]。针对非线性和多工况等特征,基于K近邻的故障检测方法(Fault Detection method based onKNearest Neighbors, FD-KNN)利用局部距离之和D2检测,该方法提高了非线性和多模态中大尺度故障的检测能力;然而,当数据为多模态且方差差异较大时,其故障检测能力降低。本文所采用的方法是基于偏最小二乘法(PLS)进行改进。
偏最小二乘法(PLS)是多元统计分析方法中的一种,PLS 通过将高维空间数据投影到低维特征空间,得到相应的特征向量,再建立特征向量间的线性回归关系[18]。 PLS 利用输入对输出的预测作用选取特征向量,去除了对回归无益的噪声,能够针对影响最终产品质量的故障进行诊断;同时还可以通过提取更少的主元去解释更多的与质量相关的变化,因此更适合检测与质量变量相关的故障。 该方法已经在过程建模、监控和故障诊断等领域得到了广泛应用[19]。虽然基于 PLS 的质量相关的故障检测技术已经在化工及制药等生产过程中得到了广泛应用,但是仍然存在一些问题:1)PLS 模型需要选择较多的主元来描述与质量相关的变化,使得模型的解释非常困难,而且这些主元中依然含有一些和质量变量正交的成分,对预测产品质量没有帮助;2)多模态过程是多中心、非高斯、非线性的,而PLS 的监控指标T2元高斯分布,多模态过程数据具有多中心的结构不满足该假设,因此应用 PLS对多模态数据进行故障检测时效果不佳。针对多模态数据多中心和模态方差差异明显问题,本文提出了一种基于局部近邻标准化(Local Neighborhood Standardization, LNS)的PLS(PLS based on LNS, LNS-PLS)方法用于多模态过程故障检测。
对于某个工业生产过程的m个过程变量进行n次采样,得到过程变量输入矩阵X(X∈Rn×m) ,与此同时得到质量变量输出矩阵Y(Y∈Rn×p),p为质量变量。然后使用非线性迭代偏最小二乘法(Non-linear Iterative PArtial Least Squares, NIPALS)算法将(X,Y)投影到一个由少量的潜在变量[t1,t2,…,tA]所组成的低维空间中,A为主元个数。
(1)
其中:T=[t1,t2,…,tA]为得分矩阵;P=[p1,p2,…,pA]和Q=[q1,q2,…,qA] 分别为X和Y的负载矩阵;E和F分别为X和Y的残差矩阵。PLS的迭代过程具体步骤如下:
设i=1,H1=X。
1)取u为Y矩阵的第一列。
2)wi=HiTui/‖HiTui‖。
3)算出得分向量ti=Hiwi。
4)qi=YTti/tiTti在T中把Y的各列进行回归。
5)算出Y的新得分ui=Yqi,此时判断ti是否收敛,如果是那么跳转到第6)步;如果不是,则跳转到第2)步。
6)算出X的负载矩阵pi=HiTti/(tiTti)。
7)算出残差矩阵Hi+1=Hi-tipiT。
取i=i+1,返回第1)步,直到所有潜变量都被提取。对PLS的模型求解需要解决下面的最优化问题:
max{wiTXiTYiqi}
(2)
s. t. ‖wi‖= ‖qi‖= 1
式中:wi与qi是权重向量,用来计算隐变量ti=Xiwi,ui=Yiqi。令W=[w1,w2,…,wA],由于T不能由X计算得出的W表示,令R=[r1,r2,…,rA],且T=XR,R为权重矩阵。已知:
(3)
其中R和P的关系为PTR=RTP=IA。PLS在原始变量的投影空间表达为:
(4)
PLS建模使用监控指标平方预测误差(Squared Prediction Error, SPE)也被称为Q统计量以及Hotelling T2来检测过程是否发生异常,其中:
(5)
在日常的工业生产活动中,通常采用Z-score的方法进行标准化,即对所有数据集求均值和标准差的数据预处理方法,进一步解释是指对已知数据进行平移变换和伸缩变换,使得数据的中心平移到新坐标系的原点,并使得数据在各个坐标方向的变化幅度相同。 由于 Z-score 标准化计算时使用的是整体的均值和标准差,因此在处理模态方差显著不同的多模态数据时,达不到消除多模态特征的目的。
Ai=(xi-m(N(xi)))/s(N(xi))
(6)
式中:xi近邻集的均值是m(N(xi));方差是s(N(xi))。而LNS标准化的方法实际上解决了两个问题:1)消除多模态数据中心差异;2)解决了多模态数据的离散程度不同的问题。
如图1所示,原始数据是两个模态,经过LNS处理后,变成一个模态。由式(6)中可以看出,当减掉均值后,分子变小,使得两个模态的中心更加靠近原点,而同时除以标准差后,使得疏密程度得到进一步调整,变成一个模态。LNS 处理后降低了两个模态结构方差差异明显的影响,解决了多模态数据多中心的问题,同时解决了多模态数据的疏密程度不同的问题。
当利用PLS建模进行过程检测时,在用Z-score进行标准化之后,数据集的分布依然是多中心的,多模态的数据集是多中心的且模态方差差异明显,而PLS的假设条件是数据是单峰分布,不满足假设条件,所以检测效果并不理想。本文提出用局部近邻标准化(LNS)方法进行数据处理,再进行PLS建模,来解决上述问题。基于LNS-PLS的故障检测由建立模型和在线监测两个部分组成。
图1 原始数据与LNS处理后的数据散点图Fig. 1 Scatter plot diagrams of raw data and LNS processed data
离线建模步骤如下:
1)找出样本集X中每个样本xi的k个局部近邻集N(xi),样本Y中每个样本yi的k个局部近邻集N(yi);
2)用xi的近邻集的均值m(N(xi))和方差s(N(xi))来标准化xi,同时用yi近邻集的均值m(N(yi))和方差s(N(yi))来标准化yi;
3)用LNS方法标准化后,再利用PLS提取主元和降维;
4)计算SPE 统计量和T2统计量及其控制限。
在线检测步骤如下:
1)对于一个新来的样本xj和yj,用训练集xj的近邻集的均值m(N(xj))和方差s(N(xj))来标准化xj,同时用yj近邻集的均值m(N(yj))和方差s(N(yj))来标准化yj;
2)将LNS方法标准化后的数据利用负载矩阵投影到PLS的主元空间和残差空间;
3)计算新来样本xj和yj的SPE 统计量和T2统计量,并与控制限比较确定检测结果。
本节采用LNS-PLS方法进行性能的检测,同时与PLS、PCA、KNN等方法进行比较分析。原始数据中输入X包括3个变量,输出Y包含2个变量。
训练数据如下:
模态一x1~N(5,2)y1=20x1-3x2-x3
x2~N(5,1.2)y2=10x1-5x2+2x3
x3~N(5,0.7)
模态二x1~N(-5,0.5)y1=20x1-3x2-x3
x2~N(-5,0.2)y2=10x1-5x2+2x3
x3~N(-5,0.1)
在开始产生600组训练数据,模态一、模态二各300组;再产生20组校验数据,模态一、模态二各10 组;最后在3个变量上设置偏移产生6 个故障,分别为:F1(-5,-5,-6),F2(1,-1,-1),F3(0,0,1),F4(-5.5,5,-6),F5(5,7,10),F6(10,7,10)。
由图2可以看出,6个故障点散落在两个模态之间,模态一稀疏,模态二密集;2、3故障在两个模态之间;5、6故障在一模态上方;1、4模态在二模态下方。实验中分别使用 PLS、KNN、PCA、LNS-PLS进行故障检测,由累计贡献率的方法得出 PLS、PCA和 LNS-PLS中主元数为 2;通过寻优测试,KNN 中近邻数K为 3,LNS-PLS中局部近邻数K为 10;以上方法都采用 99%控制限对过程进行监控。
图2 原始数据散点图Fig. 2 Original data scatter plot diagram
实验仿真结果如图3~7所示。
图3 PLS检测结果Fig. 3 Detection results of PLS
图4 PLS主元空间数据散点图Fig. 4 Scatter plot diagram of PLS principal component spatial data
图5 KNN检测结果Fig. 5 Detection results of KNN
PLS 的检测结果如图 3所示,图 3(a)中 PLS 算法的SPE检测出了故障 5,T2没有检测出故障,且两个模态数据的统计值差异较大。图4为 PLS 主元空间散点图,故障2和3投影到主元空间后分布在两个模态之间,故障1和4靠近数据分布密集的模态二,而PLS 在主元空间的控制限是一个椭圆,无法将正常数据和故障数据区分,由于两个模态方差差异明显,控制限由方差较大的模态决定,因此只有故障5被检测出来,检测率仅为16%。KNN的检测结果如图5所示,KNN算法检测出故障2、3、5、6,检测率为66.7%。KNN算法正常样本两个模态的统计值D2分两个部分,并没有消除模态结构信息:当两个模态的方差差异较大时,KNN 两个模态的样本的统计量D2差异较大,此时控制限由方差较大的模态一所决定;故障1和4为较小方差的模态二发生的微弱故障,此时D2统计量的值介于两个模态之间,所以KNN方法无法检测。PCA的检测结果如图6所示,由于生成的数值例子为多模态数据,且不服从高斯分布,所以PCA并没有检测出任一故障。LNS-PLS的检测结果如图7所示。图7(a)中LNS-PLS的SPE 统计量检测出所有故障,图7(b)中LNS-PLS 的 T2统计量检测出故障 1、4、5、6,综合两个指标LNS-PLS 算法检测出所有故障,检测率达到100%。由于 LNS 标准化后数据消除了模态结构信息,故障和正常数据完全分离,使得检测效果更好,验证了该方法对模态方差差异明显的多模态过程进行故障检测的有效性。
图6 PCA检测结果Fig. 6 Detection results of PCA
图7 LNS-PLS检测结果Fig. 7 Detection results of LNS-PLS
青霉素的生产过程是一个典型的非线性、多模态的生产过程,其发酵过程可以分为三个阶段:菌体的快速生长阶段,菌体合成青霉素阶段,以及菌体自溶阶段[20-21]。青霉素发酵过程流程如图8所示。
本文采用基于青霉素生产过程的 Pensim 仿真平台,验证基于PLS以及 LNS-PLS 的故障检测方法的有效性 。Pensim 仿真平台是由伊利诺科技学院(Illinois Institute of Technology, IIT)的Cinar 教授为学科带头人领导过程建模及控制研究小组创建开发的青霉素发酵过程仿真软件,该软件的内核采用基于Bajpai机理模型改进的Birol 模型,此软件可以模拟实现青霉素发酵过程的一系列参数变化,已经有很多相关研究成果表明,该仿真软件具有很高的有效性和实用性。青霉素发酵过程仿真软件已成为当今科学界验证多元统计方法在间歇过程故障诊断与监测的有效途径,弥补了间歇过程数据难采集等困难。Pensim 仿真平台有 5 个输入变量来控制发酵过程参数变化,9 个过程变量是菌体合成及生长中产生的,5 个质量变量影响青霉素的产量[22],本文选取其中的12 个主要变量,如表1所示。
图8 青霉素发酵过程流程Fig. 8 Flow chart of penicillin fermentation process表1 青霉素变量类型Tab.1 Penicillin variable types
序号变量序号变量序号变量1通气率5底物浓度9发酵反应器温度2搅拌功率 6容氧浓度10反应产生的热量3底物流加速率7CO2浓度 11菌体浓度4底物流加温8pH值12青霉素(产物)浓度
本文使用 Pensim 对青霉素发酵仿真过程生产数据,仿真时间设定为400 h,采样时间设定为1 h。在正常工况下生产一批数据作为训练样本。 青霉素生产过程数据分为两个模态:前43 h为青霉菌生长阶段,样本比较稀疏;43 h~400 h为青霉素生产阶段,样本比较密集。青霉素生产过程能对前3个变量(通气率、搅拌功率和底物流加速率)引入干扰,故障扰动的类型有阶越和斜坡两种,然后进一步设定两种扰动的幅度、扰动的引入时间和终止时间。 为了测试检测算法的有效性,实验中对青霉素发酵过程设置了 6 个不同类型的故障作为待检测数据样本,如表2所示。
采用PLS方法、KNN方法、PCA方法以及LNS-PLS方法对青霉素发酵过程进行故障检测,故障ft1、ft6的检测结果如图9~10。测试过程中,PLS、PCA、LNS-PLS的主元数为4;KNN方法的近邻数取K=10;LNS-PLS方法的近邻数取K=10。 图中黑色实线为99%控制限,全部故障的检测结果如表3所示。
表2 青霉素生产过程中的6个故障Tab. 2 Six faults in penicillin production process
表3不同方法故障检测率对比%
Tab. 3 Fault detection rate comparison of different methods %
本文选取了对6组实验中具有代表性的2组实验进行分析:图9中ft1故障为大尺度阶跃故障,所以由表3可以看出,四种方法的检测率都很高;图10中ft6是斜坡故障,故障刚引入时很微弱,所以在开始检测时有一部分漏报,因此几种方法都存在一定的故障延迟,但LNS-PLS方法延迟最小,故障检测率最高。
青霉素生产过程数据分为两个模态,并且模态密度显著不同,由于数据不服从多元高斯分布,使得 PCA和PLS的统计量 T2和 SPE对故障 ft3、ft4、ft5、ft6 的检测效果不佳,故障 ft1、ft2的幅度为 1%、1 L/h,为大尺度故障,所以 PCA与PLS检测率较高。
KNN 能够对一般的多阶段过程故障进行检测,但当两个阶段数据的疏密程度不同时,其控制限被密集阶段数据决定,造成对密集阶段的微弱故障检测率明显下降,故障 ft3、ft5、 ft6正处在密集模态,故KNN方法检测不到故障,故障 ft1、ft2、ft4 发生在稀疏阶段, 能被KNN 检测出。
在经过LNS处理后,两个阶段数据融合为单一模态数据,并且数据近似服从多元高斯分布,降低了两个模态结构方差差异明显的影响,解决了多模态数据疏密程度不同的问题,LNS-PLS方法中检测指标T2和 SPE 的假设得到满足,所以 LNS-PLS 方法对所有故障的检测率都较高。
图9 ft1故障不同方法检测结果Fig. 9 ft1 fault detection results of different methods
图10 ft6故障不同方法检测结果Fig.10 ft6 fault detection results of different methods
本文提出了一种基于改进偏最小二乘法(PLS)的多模态过程故障检测方法LNS-PLS,利用了局部近邻标准化(LNS)方法进行数据的标准化,再使用偏最小二乘法(PLS)进行故障检测。 该方法改善了传统的PLS 处理多模态问题的不足,解决了多模态数据多中心和模态方差差异明显的问题,使故障检测结果更加准确。 实际上,因为前期对PLS进行LNS处理使得数据近似变成多元高斯分布,而PLS正适用于多元高斯分布,使得检测率提高。
将 LNS-PLS应用于工业过程的统计监视青霉素发酵过程的实验结果表明,相比其他方法,LNS-PLS方法可以在误报率相差不多的情况下,有比较好的检测效果。该方法可以推广到多模态过程的故障检测。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!