李 元 ,馬雨含 ,張 成 ,馮立偉
(1.沈陽(yáng)化工大學(xué)信息工程學(xué)院,遼寧沈陽(yáng) 110142;2.沈陽(yáng)化工大學(xué)數(shù)理系,遼寧沈陽(yáng) 110142)
近年來(lái),工業(yè)生產(chǎn)過(guò)程的復(fù)雜性不斷提高,產(chǎn)品與技術(shù)不斷更新?lián)Q代,為了保證生產(chǎn)過(guò)程的安全性、可靠性以及產(chǎn)品質(zhì)量,及時(shí)而有效的故障檢測(cè)與診斷的理論的研究具有重要意義.基于數(shù)據(jù)驅(qū)動(dòng)的多元統(tǒng)計(jì)分析的故障檢測(cè)與診斷方法已成功應(yīng)用于化工過(guò)程和生物過(guò)程的檢測(cè)與監(jiān)視,并逐漸成為工業(yè)界和學(xué)術(shù)界的研究熱點(diǎn)[1–7].
偏最小二乘法(partial least squares,PLS)[8–10]是多元統(tǒng)計(jì)分析方法的一種,PLS算法利用輸入對(duì)輸出的解釋預(yù)測(cè)作用選取特征向量,更適合應(yīng)用于質(zhì)量相關(guān)的故障檢測(cè).該方法已廣泛應(yīng)用于過(guò)程建模、監(jiān)控和故障診斷等領(lǐng)域[11].Zhou等[12–14]提出了全潛結(jié)構(gòu)投影 法(total projection to latent structures,T?PLS),將PLS的輸入空間分解為4個(gè)不同的子空間來(lái)提高質(zhì)量相關(guān)故障和質(zhì)量無(wú)關(guān)的故障的檢測(cè)精度.但偏最小二乘算法和全潛結(jié)構(gòu)投影法為單模態(tài)方法,應(yīng)用于多模態(tài)過(guò)程時(shí)檢測(cè)效果不佳.
多模態(tài)過(guò)程[15]是重要的化工和生物生產(chǎn)過(guò)程,具有多中心、變量非高斯性和非線(xiàn)性等特點(diǎn).數(shù)據(jù)的多模態(tài)性使得其故障診斷面臨可靠性與準(zhǔn)確性低等問(wèn)題.Zhao 等[16–17]提出了基于主元分析(principal component analysis,PCA)算法和偏最小二乘法算法的多模型方案應(yīng)用于多模態(tài)過(guò)程監(jiān)控.高斯混合模型[18](Gaussian mixture model,GMM)在多模態(tài)過(guò)程監(jiān)控中得到了成功的應(yīng)用.但高斯混合模型的子模型個(gè)數(shù)事先未知,難以應(yīng)用于復(fù)雜工業(yè)過(guò)程中.因此對(duì)多模態(tài)過(guò)程建立單一監(jiān)控模型逐漸成為研究熱點(diǎn).馬賀賀等[19]提出一種基于馬氏距離局部離群因子(local outlier factor,LOF)的方法實(shí)現(xiàn)了單個(gè)模型對(duì)多模態(tài)過(guò)程的監(jiān)控.針對(duì)多模態(tài)過(guò)程的非線(xiàn)性和多中心等特征,He 等[20]提出了基于k近鄰(k-nearest neighbor,kNN)的故障檢測(cè)方法.kNN算法[21]通過(guò)統(tǒng)計(jì)局部距離信息,能夠有效降低非線(xiàn)性和多中心的影響,提高故障檢測(cè)效率.但兩個(gè)模態(tài)數(shù)據(jù)方差差異明顯時(shí),kNN算法的監(jiān)控性能明顯降低.傳統(tǒng)的局部近鄰標(biāo)準(zhǔn)化(local neighborhood standardization,LNS)方法[22]使用樣本近鄰集的均值和方差標(biāo)準(zhǔn)化原始數(shù)據(jù),不同模態(tài)的數(shù)據(jù)經(jīng)過(guò)處理之后能夠近似滿(mǎn)足高斯分布,解決了各個(gè)模態(tài)方差差異明顯問(wèn)題.但當(dāng)故障位于兩個(gè)模態(tài)之間時(shí),故障樣本的近鄰會(huì)跨越兩個(gè)模態(tài),導(dǎo)致無(wú)法分離正常樣本和故障樣本.針對(duì)故障樣本的近鄰集跨模態(tài)問(wèn)題,Ma等[22]提出基于局部近鄰標(biāo)準(zhǔn)化策略的主元分析(local neighborhood standardization principal component analysis,LNS?PCA)方法應(yīng)用于連續(xù)過(guò)程故障檢測(cè).本文針對(duì)間歇過(guò)程數(shù)據(jù)多中心、模態(tài)方差差異明顯和故障樣本近鄰集跨模態(tài)的問(wèn)題,提出一種基于局部近鄰標(biāo)準(zhǔn)化偏最小二乘(local neighborhood standardization partial least squares,LNS?PLS)的多模態(tài)間歇過(guò)程故障檢測(cè)方法.
注 后文將傳統(tǒng)的近鄰標(biāo)準(zhǔn)化方法用LNS表示,Ma提出的方法用MLNS表示.
PLS算法利用潛變量提取來(lái)克服噪聲和消除變量間的相關(guān)性,并通過(guò)正常生產(chǎn)過(guò)程數(shù)據(jù)準(zhǔn)確捕捉質(zhì)量變量與過(guò)程變量之間的關(guān)系[11–12].PLS算法具體如下:
對(duì)m個(gè)過(guò)程變量進(jìn)行n次獨(dú)立采樣,得到輸入矩陣X∈Rn×m,同時(shí)對(duì)p個(gè)質(zhì)量變量進(jìn)行n次獨(dú)立采樣得到輸出矩陣Y∈Rn×p.PLS對(duì)X和Y空間的分解如下[23]:
PLS迭代算法[23]的目標(biāo)函數(shù)如下:
其中:wi和ci是投影向量,ti=Xwi,ui=Y ci.由于得分矩陣T無(wú)法由W=[w1… wd]和X直接得出,定義R=[r1… rd],r1=w1,d為主元個(gè)數(shù).對(duì)于i>1的情況有
得分矩陣T獲得如下:
R,P和W有如下關(guān)系:
PLS算法對(duì)輸入X分解如下:
PLS模型通常用平方預(yù)測(cè)誤差(squared prediction error,SPE)和Hotelling的統(tǒng)計(jì)量T2來(lái)監(jiān)控過(guò)程是否發(fā)生異常.T2統(tǒng)計(jì)量和SPE統(tǒng)計(jì)量的計(jì)算方法如下:
采用PLS算法進(jìn)行故障檢測(cè)時(shí),過(guò)程數(shù)據(jù)需要在檢測(cè)之前進(jìn)行標(biāo)準(zhǔn)化處理.目前常用的是z?score標(biāo)準(zhǔn)化方法[12,23].PLS算法的基本假設(shè)為數(shù)據(jù)具有多元高斯分布,而多模態(tài)數(shù)據(jù)z?score標(biāo)準(zhǔn)化后仍具有多模態(tài)特征,不滿(mǎn)足該假設(shè).設(shè)計(jì)一個(gè)數(shù)值例子來(lái)解釋這種情況:模態(tài)1:x1服從N(5,0.5),x2服從N(10,0.7),y=10x1?5x2;模態(tài)2:x1服從N(20,2.5),x2服從N(10,2.2),y=10x1?5x2.在兩個(gè)模態(tài)間設(shè)置一個(gè)故障點(diǎn)(11.5,10).圖1中z?score標(biāo)準(zhǔn)化后數(shù)據(jù)仍具有多模態(tài)特征,故障樣本位于兩個(gè)模態(tài)之間.圖2中PLS算法沒(méi)有檢測(cè)出故障,說(shuō)明原始數(shù)據(jù)具有多模態(tài)結(jié)構(gòu)時(shí)PLS算法存在不足.
圖1 z?score標(biāo)準(zhǔn)化后數(shù)據(jù)散點(diǎn)圖Fig.1 The data scatter mapping after z?score standardized
圖2 PLS算法檢測(cè)結(jié)果Fig.2 Fault detection results of PLS algorithm
多模態(tài)數(shù)據(jù)集具有兩個(gè)特征,一是各模態(tài)數(shù)據(jù)中心不重合,二是數(shù)據(jù)離散程度不同,即各模態(tài)方差不同.采用局部近鄰標(biāo)準(zhǔn)化(LNS)[22]方法可以解決這兩個(gè)問(wèn)題.LNS標(biāo)準(zhǔn)化和z?score標(biāo)準(zhǔn)化的主要區(qū)別是LNS方法使用用每個(gè)樣本局部近鄰集的均值和方差,而z?score方法使用全部樣本集的均值和方差.但LNS方法無(wú)法解決故障樣本近鄰集跨模態(tài)問(wèn)題,文獻(xiàn)[22]提出的MLNS方法解決了這一問(wèn)題.兩種方法具體過(guò)程如下:
找到每個(gè)樣本的k近鄰,并計(jì)算每個(gè)樣本到其各個(gè)近鄰的歐式距離.假設(shè)xi是X的一個(gè)樣本,表示xi的第k個(gè)近鄰,是xi和之間的歐氏距離,為樣本xi的近鄰集.樣本xi可以按以下方法兩種方法標(biāo)準(zhǔn)化:
LNS方法:
其中m(NN(xi))和s(NN(xi))分別是xi的近鄰集NN(xi)的均值和方差.
MLNS方法:
其中m(NN())和s(NN())分別是xi的第一近鄰的近鄰集NN()的均值和方差.
LNS方法無(wú)法解決故障樣本近鄰集跨模態(tài)問(wèn)題.采用第1.2節(jié)例子驗(yàn)證LNS方法和MLNS方法的效果.圖3(a)中LNS方法故障樣本的近鄰集跨越兩個(gè)模態(tài),此時(shí)故障樣本的近鄰集方差較大,由式(8)可知,故障樣本標(biāo)準(zhǔn)化后的數(shù)值接近正常樣本的模態(tài)中心,導(dǎo)致故障樣本和正常樣本無(wú)法分離.由圖3(b)可以清晰地看出故障樣本湮沒(méi)在正常樣本之中.圖3(a)中MLNS方法故障樣本的第一近鄰的近鄰集位于一個(gè)模態(tài).圖3(c)中MLNS方法標(biāo)準(zhǔn)化后正常樣本離散程度基本一致,且與故障樣本完全分離.由圖3(d)可知,標(biāo)準(zhǔn)化后的變量近似服從零均值的高斯分布,這是因?yàn)榻従悼偸欠浅=咏兞恐?變量x1減去其近鄰均值后在零附近.
圖3 LNS和MLNS方法效果Fig.3 Effect of LNS and MLNS methods
本文采用統(tǒng)計(jì)模量[25–26]方法處理間歇過(guò)程數(shù)據(jù).統(tǒng)計(jì)模量方法是用統(tǒng)計(jì)特征矩陣重新定義原始間歇過(guò)程數(shù)據(jù),一般所用的統(tǒng)計(jì)特征為均值和方差.PLS算法應(yīng)用于多模態(tài)間歇過(guò)程故障檢測(cè)時(shí)效果不佳.LNS方法解決了這一問(wèn)題,但仍存在缺陷,當(dāng)故障樣本的近鄰集跨模態(tài)時(shí),該方法無(wú)法分離正常樣本和故障樣本.本文使用MLNS方法處理數(shù)據(jù),提出了一種基于局部近鄰標(biāo)準(zhǔn)化偏最小二乘(MLNS?PLS)方法改進(jìn)PLS算法處理多模態(tài)間歇過(guò)程數(shù)據(jù)的不足.MLNS標(biāo)準(zhǔn)化后變量近似服從零均值的高斯分布,符合PLS算法基本假設(shè).基于MLNS?PLS方法的故障檢測(cè)包括離線(xiàn)建模和在線(xiàn)檢測(cè)兩部分,具體步驟如下:
離線(xiàn)建模:
1)在訓(xùn)練集X中尋找每個(gè)樣本xi的k個(gè)局部近鄰集NN(xi),在訓(xùn)練集Y中尋找每個(gè)樣本yi的k個(gè)局部近鄰集NN(yi);
2)用xi的第一近鄰的近鄰集的均值m(NN())和方差s(NN())來(lái)標(biāo)準(zhǔn)化xi,同理得到標(biāo)準(zhǔn)化后的yi;
3)在MLNS處理后的數(shù)據(jù)集上,利用式(3)?(4)確定PLS的得分矩陣T,利用式(6)計(jì)算殘差矩陣;
4)計(jì)算每個(gè)樣本的SPE統(tǒng)計(jì)量和T2統(tǒng)計(jì)量及控制限.
在線(xiàn)檢測(cè):
1)對(duì)于待檢測(cè)樣本xj和yj,分別在訓(xùn)練集X和Y中找到xj和yj的第一近鄰和;
2)用的近鄰集的均值m(NN()和方差s(NN())來(lái)標(biāo)準(zhǔn)化xj,同理得到標(biāo)準(zhǔn)化后的yj;
3)利用負(fù)載矩陣將MLNS方法標(biāo)準(zhǔn)化后的數(shù)據(jù)投影到PLS的主元空間和殘差空間;
4)計(jì)算待檢測(cè)樣本xj和yj的SPE統(tǒng)計(jì)量和T2統(tǒng)計(jì)量,并與控制限比較確定檢測(cè)結(jié)果.
使用多模態(tài)數(shù)值實(shí)例分析MLNS?PLS方法的檢測(cè)性能,同時(shí)與PLS算法、kNN算法和LNS?PLS方法的結(jié)果進(jìn)行對(duì)比分析.所用模型如下:
其中:x1,x2,x3是輸入X的3個(gè)變量,y1,y2是輸出Y的兩個(gè)變量.取500組訓(xùn)練數(shù)據(jù),兩個(gè)模態(tài)各250組;取10組校驗(yàn)數(shù)據(jù),兩個(gè)模態(tài)各5組;在3個(gè)變量上設(shè)置偏移,產(chǎn)生5個(gè)故障點(diǎn)f1(?3,?2,?3),f2(0,0.5,0.5),f3(0.7,0.1,0.3),f4(0.5,1.2,1.3),f5(1,0.5,1).
檢測(cè)過(guò)程中主元數(shù)為2,kNN算法的近鄰數(shù)為3,LNS?PLS方法和MLNS?PLS方法的近鄰數(shù)為10.仿真結(jié)果如圖4?9所示.圖中黑色實(shí)線(xiàn)是置信度為99%的控制限.原始數(shù)據(jù)所有變量分布見(jiàn)圖4,圖中兩個(gè)模態(tài)數(shù)據(jù)方差差異明顯,模態(tài)1數(shù)據(jù)分布密集,模態(tài)2數(shù)據(jù)分布較為稀疏,故障1靠近模態(tài)2,故障2和故障3在兩個(gè)模態(tài)之間,故障4和故障5靠近模態(tài)1.
圖4 原始數(shù)據(jù)散點(diǎn)圖Fig.4 Original data scatter mapping
圖5 數(shù)據(jù)散點(diǎn)圖Fig.5 Data scatter mapping
圖6 z?score?PLS算法檢測(cè)結(jié)果Fig.6 Fault detection result of z?score?PLS algorithm
圖7 kNN算法檢測(cè)結(jié)果Fig.7 Fault detection result of kNN algorithm
圖8 LNS?PLS算法檢測(cè)結(jié)果Fig.8 Fault detection result of LNS?PLS algorithm
圖9 MLNS?PLS算法檢測(cè)結(jié)果Fig.9 Fault detection result of MLNS?PLS algorithm
圖6中PLS算法未檢測(cè)出故障,且正常樣本的統(tǒng)計(jì)量差異明顯.圖7中kNN算法檢測(cè)出故障1和故障2,當(dāng)兩個(gè)模態(tài)疏密程度不一致時(shí),兩個(gè)模態(tài)樣本的D2統(tǒng)計(jì)量差異明顯,此時(shí)控制限由稀疏模態(tài)決定,故障4和故障5為靠近密集模態(tài)的微弱故障,無(wú)法被檢測(cè).
圖8中LNS?PLS方法未檢測(cè)出故障2和故障3.因?yàn)楣收?和故障3的近鄰集跨越兩個(gè)模態(tài),以故障2為例,它的前兩個(gè)近鄰屬于第二模態(tài),而第三近鄰屬于第1模態(tài),使得故障2的近鄰集方差較大,由式(8)可知,標(biāo)準(zhǔn)化后的故障2靠近正常樣本中心,導(dǎo)致故障2和正常樣本無(wú)法分離.從圖5(a)中可以看出LNS方法標(biāo)準(zhǔn)化后故障2和故障3位于正常樣本中心周?chē)?
圖5(b)清楚的表明MLNS標(biāo)準(zhǔn)化消除了數(shù)據(jù)的模態(tài)結(jié)構(gòu)信息,故障樣本和正常樣本完全分離.因此圖9中,綜合T2和SPE兩個(gè)指標(biāo),MLNS?PLS方法檢測(cè)出所有故障.
青霉素生產(chǎn)過(guò)程是一個(gè)典型的非線(xiàn)性、多模態(tài)間歇生產(chǎn)過(guò)程.其發(fā)酵過(guò)程可分3個(gè)階段:菌體快速生長(zhǎng)階段、菌體合成青霉素階段和菌體自溶階段.本文基于Pensim仿真平臺(tái)[27–28],驗(yàn)證基于MLNS?PLS故障檢測(cè)方法的有效性.青霉素發(fā)酵過(guò)程流程如圖10所示.
Pensim仿真平臺(tái)有5個(gè)輸入變量可以控制發(fā)酵過(guò)程參數(shù)變化,9個(gè)過(guò)程變量是菌體合成及生長(zhǎng)中產(chǎn)生的,5個(gè)質(zhì)量變量影響青霉素的產(chǎn)量.本文選取7個(gè)過(guò)程變量作為輸入和5個(gè)質(zhì)量變量作為輸出,變量選取[8]見(jiàn)表1.本文使用Pensim仿真平臺(tái)生成數(shù)據(jù),仿真時(shí)間設(shè)定為400 h,采樣時(shí)間設(shè)定為1 h.在正常工況下生成兩個(gè)模態(tài)數(shù)據(jù):模態(tài)1初始CO2濃度設(shè)定為0.5,通過(guò)調(diào)整初始變量值生產(chǎn)50個(gè)批次,為稀疏模態(tài);模態(tài)2初始CO2濃度設(shè)定為1,通過(guò)微調(diào)初始變量值生產(chǎn)75個(gè)批次,為密集模態(tài).從兩個(gè)模態(tài)中各隨機(jī)選取5個(gè)批次作為校驗(yàn)樣本,剩余115個(gè)批次作為訓(xùn)練樣本.圖11中可看出正常批次的CO2濃度分為兩個(gè)模態(tài).
圖10 青霉素發(fā)酵過(guò)程流程圖Fig.10 Flow chart of penicillin fermentation process
表1 青霉素發(fā)酵過(guò)程變量選取Table 1 Variable selection of penicillin fermentation process
圖11 正常樣本的CO2濃度Fig.11 CO2 concentration of normal samples
Pensim仿真平臺(tái)能對(duì)前3個(gè)變量(通氣率、攪拌功率和底物流速率)引入故障,故障類(lèi)型有階躍和斜坡兩種,并可進(jìn)一步設(shè)定兩種故障的幅度、引入時(shí)間和終止時(shí)間.為了測(cè)試方法的有效性,本文在實(shí)驗(yàn)中生產(chǎn)12個(gè)故障批次,12個(gè)故障批次的故障類(lèi)型及程度見(jiàn)表2.
表2 青霉素發(fā)酵過(guò)程中設(shè)置的12個(gè)批次故障Table 2 Twelve faults of penicillin fermentation process
青霉素發(fā)酵過(guò)程數(shù)據(jù)是間歇過(guò)程三維數(shù)據(jù)矩陣,本文采用統(tǒng)計(jì)模量方法將數(shù)據(jù)處理成二維矩陣.使用PLS算法、kNN算法、LNS?PLS方法和MLNS?PLS方法對(duì)青霉素發(fā)酵過(guò)程進(jìn)行仿真實(shí)驗(yàn)和對(duì)比分析.實(shí)驗(yàn)中PLS算法、LNS?PLS方法和MLNS?PLS方法的主元數(shù)取3.kNN 算法的近鄰數(shù)取10,標(biāo)準(zhǔn)化方法為z?score方法.LNS?PLS方法和MLNS?PLS方法的近鄰數(shù)取15.實(shí)驗(yàn)結(jié)果見(jiàn)圖12?16和表3.
圖12 數(shù)據(jù)散點(diǎn)圖Fig.12 Data scatter mapping
圖13 z?score?PLS算法檢測(cè)結(jié)果Fig.13 Fault detection result of z?score?PLS algorithm
圖14 kNN算法檢測(cè)結(jié)果Fig.14 Fault detection result of kNN algorithm
圖15 LNS?PLS算法檢測(cè)結(jié)果Fig.15 Fault detection result of LNS?PLS algorithm
圖16 MLNS?PLS算法檢測(cè)結(jié)果Fig.16 Fault detection result of MLNS?PLS algorithm
表3 12個(gè)故障批次的檢測(cè)結(jié)果Table 3 Fault detection results of 12 batches
圖12中正常樣本分為兩個(gè)模態(tài),并且兩個(gè)模態(tài)的數(shù)據(jù)離散程度不同.圖13中PLS算法的T2和SPE共檢測(cè)出6 個(gè)故障,多模態(tài)數(shù)據(jù)不服從多元高斯分布,故PLS算法檢測(cè)效果不佳.圖14中kNN 算法未檢測(cè)出故障7、故障11和故障12.因?yàn)楫?dāng)兩個(gè)模態(tài)數(shù)據(jù)離散程度不同時(shí),kNN 算法的控制限由方差大的第1模態(tài)決定,故障11為靠近密集模態(tài)的微弱故障(見(jiàn)圖12),它的統(tǒng)計(jì)量D2在兩個(gè)模態(tài)正常樣本的統(tǒng)計(jì)量之間,無(wú)法被檢測(cè).故障7和故障12同理.圖15中LNS?PLS方法未檢出故障6、故障7和故障8,因?yàn)檫@3個(gè)故障樣本的近鄰集跨越兩個(gè)模態(tài).以故障7為例,其第1近鄰和第2近鄰分別是第9號(hào)和27號(hào)樣本都屬于第1模態(tài),而其第3近鄰為第104號(hào)樣本屬于第2模態(tài).此時(shí)故障7的近鄰集方差較大,由式(8)可知,標(biāo)準(zhǔn)化后的故障7接近正常樣本的模態(tài)中心,導(dǎo)致故障7和正常樣本無(wú)法分離,故障6和故障8同理.圖16中MLNS?PLS方法檢測(cè)出全部故障,且兩個(gè)模態(tài)正常樣本的統(tǒng)計(jì)量差異不大.綜上所述,MLNS?PLS方法解決了兩個(gè)模態(tài)數(shù)據(jù)方差差異明顯和故障樣本近鄰集跨模態(tài)的問(wèn)題.
針對(duì)PLS算法無(wú)法有效應(yīng)用于多模態(tài)間歇過(guò)程故障檢測(cè)的問(wèn)題,本文提出一種局部近鄰標(biāo)準(zhǔn)化偏最小二乘(MLNS?PLS)方法.先利用MLNS方法處理統(tǒng)計(jì)模量后的數(shù)據(jù),避免了故障樣本的近鄰集跨模態(tài)的情況;再利用PLS算法進(jìn)行故障檢測(cè),改善了PLS對(duì)多模態(tài)間歇過(guò)程數(shù)據(jù)的檢測(cè)效果.將MLNS?PLS方法應(yīng)用于青霉素發(fā)酵過(guò)程的故障檢測(cè),實(shí)驗(yàn)結(jié)果表明,MLNS?PLS方法能保證較好的檢測(cè)效果,該方法可以應(yīng)用到其他工業(yè)和生物領(lǐng)域的多模態(tài)間歇過(guò)程的故障檢測(cè)中.