基于egmm的高斯過(guò)程回歸軟測(cè)量建模方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及基于EGMM的高斯過(guò)程回歸軟測(cè)量建模方法,屬于復(fù)雜工業(yè)過(guò)程建模 和軟測(cè)量領(lǐng)域。
【背景技術(shù)】
[0002] 現(xiàn)代工業(yè)過(guò)程中,基于數(shù)據(jù)驅(qū)動(dòng)的軟測(cè)量建模方法得到了越來(lái)越多的關(guān)注。一 些常用的軟測(cè)量建模方法如偏最小二乘(partial least squares,PLS)、主成分分析 (principal component analysis,PCA)等能夠很好地處理輸入變量和輸出變量之間的線 性關(guān)系。人工神經(jīng)網(wǎng)絡(luò)(artificial neural networks,ANN)、支持向量機(jī) machine,SVM)、 最小二乘支持向量機(jī)(least (support vector squares support vector machine,LS-SVM) 能夠有效地處理過(guò)程的非線性關(guān)系。
[0003] 近年來(lái),高斯過(guò)程回歸(Gaussian process regression,GPR)作為一種非參數(shù)概 率模型,不僅可以給出預(yù)測(cè)值,還可以得到預(yù)測(cè)值對(duì)模型的信任值。本發(fā)明選擇GPR模型作 為基本的軟測(cè)量模型。這些建模方法雖可以有效地處理過(guò)程高度的非線性和輸入輸出之間 高維的映射關(guān)系,但是這些數(shù)據(jù)模型往往都是假設(shè)建模誤差符合高斯分布所建立的。事實(shí) 上,工業(yè)過(guò)程中常常包含了不同的隨機(jī)分布、多樣的測(cè)量散射和非測(cè)量輸入(隱藏輸入), 建模往往非常復(fù)雜。因此,一般認(rèn)為誤差分布符合高斯分布是一種比較嚴(yán)苛的假設(shè),所建立 的往往是局部?jī)?yōu)化的預(yù)測(cè)模型。
[0004] 為了提高建模精度,用一種基于高斯混合模型(Gaussian mixture model, GMM) 的建模策略提取隱含在預(yù)測(cè)誤差中的信息。只要GMM模型包含足夠多的高斯成分,就能 夠逼近任意連續(xù)的概率密度函數(shù)。因此,可以用GMM描述復(fù)雜的非高斯的模型誤差特征, 通過(guò)加入訓(xùn)練數(shù)據(jù)的輸出誤差構(gòu)建誤差數(shù)據(jù)集,建立誤差高斯混合模型(error Gaussian mixture model, EGMM),通過(guò)對(duì)從EGMM提取出來(lái)的信息進(jìn)行檢驗(yàn)假設(shè)或者數(shù)據(jù)模型改進(jìn),從 而能提尚建t旲的精度。
[0005] 因此,需要用合適的相關(guān)變量構(gòu)建一個(gè)概率EGMM模型,從而使隱含在預(yù)測(cè)誤差中 的復(fù)雜的概率特征能夠被提取出來(lái),以達(dá)到提高模型精度的目的。通過(guò)EGMM模型,對(duì)于一 個(gè)新的輸入,可以計(jì)算得到誤差的概率密度函數(shù)、誤差均值和誤差方差。誤差方差可用來(lái)評(píng) 估模型預(yù)測(cè)輸出值的可靠性,用來(lái)決定當(dāng)前模型是否需要更新,從而根據(jù)當(dāng)前過(guò)程的動(dòng)態(tài) 產(chǎn)生一個(gè)自適應(yīng)的軟測(cè)量模型。誤差均值可以用來(lái)對(duì)這個(gè)新的輸入的預(yù)測(cè)輸出值進(jìn)行補(bǔ) 償,提高模型預(yù)測(cè)輸出的精度。
【發(fā)明內(nèi)容】
[0006] 本化工過(guò)程呈現(xiàn)的非線性、不同的動(dòng)態(tài)特性和噪聲的非高斯性對(duì)所建立的軟測(cè)量 模型的預(yù)測(cè)精度會(huì)產(chǎn)生很大的影響,為了提高產(chǎn)品的質(zhì)量,本發(fā)明提供一種基于EGMM的高 斯過(guò)程回歸軟測(cè)量建模方法。首先,選擇合適的變量組成誤差數(shù)據(jù),優(yōu)化得到合適的高斯成 分的個(gè)數(shù);然后用EGMM對(duì)誤差數(shù)據(jù)進(jìn)行擬合;當(dāng)新的數(shù)據(jù)到來(lái)時(shí),用建立的GPR模型進(jìn)行 預(yù)測(cè)輸出,并通過(guò)EGMM模型求得條件誤差均值,對(duì)輸出進(jìn)行補(bǔ)償?shù)玫礁泳_的結(jié)果。從 而提高產(chǎn)量,降低生產(chǎn)成本。
[0007] 本發(fā)明是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
[0008] 基于EGMM的高斯過(guò)程回歸軟測(cè)量建模方法,所述方法包括以下過(guò)程:首先,基于 PCA選擇合適的變量組成誤差數(shù)據(jù);然后,采用BIC準(zhǔn)則優(yōu)化得到合適的高斯成分的個(gè)數(shù); 最后,構(gòu)建誤差高斯混合模型;當(dāng)新的數(shù)據(jù)到來(lái)時(shí),用建立的GPR模型進(jìn)行預(yù)測(cè)輸出,并通 過(guò)EGMM模型求得條件誤差均值,對(duì)輸出進(jìn)行補(bǔ)償?shù)玫礁泳_的結(jié)果。從而提高產(chǎn)量,降 低生產(chǎn)成本。
【附圖說(shuō)明】
[0009] 圖1是基于EGMM的高斯過(guò)程回歸軟測(cè)量建模方法流程圖;
[0010] 圖2硫回收裝置不意圖;
[0011] 圖3 PCA模型主成分顯示解釋比例;
[0012] 圖4 BIC值與K之間的關(guān)系;
[0013] 圖5是H2S的濃度預(yù)測(cè)結(jié)果圖。
【具體實(shí)施方式】
[0014] 下面結(jié)合圖1所示,對(duì)本發(fā)明做進(jìn)一步詳述:
[0015] 以實(shí)際化工過(guò)程為例,硫回收裝置(Sulfur Recovery Unit, SRU)用于含硫氣體 (主要含有H2S, SO2)排入大氣前硫的回收,以防止對(duì)環(huán)境造成污染,其裝置見(jiàn)圖2。
[0016] SRU裝置主要處理兩種酸性氣體:一種是富含H2S的氣體(也稱(chēng)MEA氣體);另一 種是來(lái)自于含硫污水汽提設(shè)備(SWS)的含H 2S、NH3的氣體,也稱(chēng)為SWS氣體。主要燃燒室用 于處理MEA氣體,在有著充足空氣(AIR_MEA)的情況下,可以充分燃燒;另一個(gè)燃燒室用于 處理SWS氣體,其進(jìn)入的空氣流量可寫(xiě)為AIR_SWS。
[0017] 5個(gè)過(guò)程變量和2個(gè)主導(dǎo)變量的描述見(jiàn)表1所示。實(shí)驗(yàn)數(shù)據(jù)來(lái)自實(shí)際工業(yè)過(guò)程,對(duì) H2S的含量進(jìn)行預(yù)測(cè)。
[0018] 步驟1 :收集輸入輸出數(shù)據(jù)組成歷史訓(xùn)練數(shù)據(jù)庫(kù)。
[0019] 步驟2 :對(duì)輸入和輸出數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,并用PCA進(jìn)行信息提取得到得分矩 陣。由圖3所示,從PCA模型中提取出三個(gè)主成分。PCA算法為:
[0020] 給定訓(xùn)練數(shù)據(jù)X e RnXm,m是過(guò)程變量的維數(shù),n是訓(xùn)練數(shù)據(jù)的數(shù)目。PCA是 在X的協(xié)方差矩陣基礎(chǔ)上實(shí)現(xiàn)的。一般情況下,可以通過(guò)奇異值分解(singular value decomposition,SVD)的方法建模PCA模型。假設(shè)PCA模型有q個(gè)主成分,X可以被分解為 如下形式: X = TP' +TP' =TP' +E (!) 式中,T e Rnxtl和f 0分別是主成分子空間和殘差子空間的得分矩陣,P e 和是主成分子空間和殘差子空間相應(yīng)的載荷矩陣,E是殘差矩陣。
[0021] 建立得分矩陣和輸出數(shù)據(jù)之間的GPR模型,然后用已經(jīng)建立的GPR模型對(duì)訓(xùn)練數(shù) 據(jù)集的得分矩陣進(jìn)行預(yù)測(cè)得到預(yù)測(cè)值,最后得到輸出誤差。建立的GPR模型為:
[0022] 給定訓(xùn)練樣本集 X e 1?_和7 e Rn,其中 X = {Xie RD}i = 1...N,y = {yie R} i = 1... 1^分別代表D維的輸入和輸出數(shù)據(jù)。輸入和輸出之間的關(guān)系由公式(10)產(chǎn)生: y = f (χ) + ε (2)
[0023] 其中f是未知的函數(shù)形式,ε是均值為〇,方差為σ〗的高斯噪聲。對(duì)于一個(gè)新的 輸入χ%相應(yīng)的概率預(yù)測(cè)輸出/也滿足高斯分布,其均值和方差如式(3)和(4)所示: y*(x*) = cT (x*