摘要:該文針對化工生產(chǎn)過程設(shè)計開發(fā)軟測量建模軟件。考慮到實際工業(yè)過程復(fù)雜多變,軟件采用了線性回歸建模和非線性神經(jīng)網(wǎng)絡(luò)建模兩種方法來設(shè)計。通過對化工生產(chǎn)過程苯乙烯裝置乙苯含量和淀粉含量的建模軟測量應(yīng)用,結(jié)果表明軟件能夠?qū)崿F(xiàn)軟測量的趨勢預(yù)測功能。
關(guān)鍵詞:軟測量;神經(jīng)網(wǎng)絡(luò);軟件設(shè)計
中圖分類號:TP18文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2011)04-0753-04
The Development and Design of the Modeling Software for Soft Sensor
HOU Yan-song, XIE Gang, ZHANG Min, LIU Ya-ru
(Automation Research Institute of Lanzhou Petrochemical Company Petrochina, Lanzhou 730060, China)
Abstract: This paper designs a soft-sensing modeling software for chemical production process, Considering the complexity in the practical industry process, the software applies the linear regression modeling approach and the nonlinear neural network modeling approach to design the measurement software. Practice have been carried on the production process of Ethyl benzene and Starch content prediction, and the results show that the software can fulfill the function of trend prediction.
Key words: soft-sensor; neural network; software development
在工業(yè)實際中,產(chǎn)品質(zhì)量控制是所有工業(yè)過程控制的核心。要對產(chǎn)品質(zhì)量進(jìn)行實時有效的控制,就必須及時準(zhǔn)確的了解產(chǎn)品的質(zhì)量參數(shù),從而及時調(diào)整工藝參數(shù)和控制參數(shù),以期獲得良好的產(chǎn)品質(zhì)量監(jiān)測和控制。然而實際中,過程的質(zhì)量參數(shù)通常是無法直接測量的,即使能夠利用分析儀表測量,也存在較大的分析滯后[1],無法完全滿足過程控制的需要。總的來說,我國石油化工行業(yè)現(xiàn)有的儀表設(shè)備很難實時的提供過程控制所需的質(zhì)量參數(shù)信息。基于這種現(xiàn)實,更高一層的先進(jìn)控制技術(shù),過程優(yōu)化技術(shù),產(chǎn)品質(zhì)量的監(jiān)測管理等上層應(yīng)用就受到了測量信息不足這一瓶頸問題的極大限制。在這種背景下,工業(yè)過程對過程檢測的內(nèi)容和時效性均提出了新的要求。一方面,僅獲取流量、溫度、壓力、液位等常規(guī)過程參數(shù)的測量信息已不能滿足工藝操作指導(dǎo)和質(zhì)量控制的要求,迫切需要獲取諸如成分、物性等與過程工藝操作和質(zhì)量控制密切相關(guān)的檢測參數(shù)的測量信息。另一方面,測量從靜態(tài)或穩(wěn)態(tài)向動態(tài)測量發(fā)展,在許多應(yīng)用場合還需要綜合運用所獲得的各種過程測量信息,才能實現(xiàn)有效的過程控制、對生產(chǎn)過程或測量系統(tǒng)進(jìn)行故障診斷、狀態(tài)監(jiān)測。近年來,作為以計算機技術(shù)為基礎(chǔ)的軟測量技術(shù)成為了解決上述工業(yè)控制瓶頸問題的有效途徑之一,越來越受到關(guān)注[2-5]。
就苯乙烯、丙烯腈、乙烯及丁二烯抽提等化工裝置而言,產(chǎn)品質(zhì)量數(shù)據(jù)主要是產(chǎn)品的純度。針對這一特點,本軟件采用基于數(shù)據(jù)驅(qū)動的建模方法,并考慮到實際的工業(yè)過程對象復(fù)雜多變,軟件采用了線性回歸建模和非線性神經(jīng)網(wǎng)絡(luò)建模兩種方法來設(shè)計軟測量軟件。最后,根據(jù)工藝機理,我們通過建立苯乙烯裝置乙苯塔塔頂乙苯含量軟測量數(shù)學(xué)模型,完成了對塔頂乙苯含量的準(zhǔn)確預(yù)測。
1 乙苯含量軟測量模型的建立
1.1 軟測量
軟測量的工作原理(見圖1),就是在常規(guī)檢測的基礎(chǔ)上,利用輔助變量與主導(dǎo)變量的關(guān)系,通過軟件計算 ,得到主導(dǎo)變量的測量值。軟測量技術(shù)的核心是建立用來預(yù)測主導(dǎo)變量的可靠的軟測量模型。初始軟測量模型是對過程變量的歷史數(shù)據(jù)進(jìn)行辨識而來的。在應(yīng)用過程中,軟測量模型的參數(shù)和結(jié)構(gòu)并不是一成不變的,隨時間遷移工況和操作點可能發(fā)生改變,需要對它進(jìn)行在線或離線修正,以得到更適合當(dāng)前狀況的軟測量模型,提高模型的適合范圍。因此,軟測量結(jié)構(gòu)可分為歷史數(shù)據(jù)處理、離線建模、在線運行(包括校正)三大模塊。
1.2 輔助變量的選擇
通過對苯乙烯裝置乙苯塔工藝機理研究,我們選擇通過DCS收集的1000組過程參數(shù)作為建模樣本集,300組過程數(shù)據(jù)作為校驗樣本集,運用統(tǒng)計學(xué)方法將樣本數(shù)據(jù)中隱含的對象信息進(jìn)行濃縮和提取,通過工程師的經(jīng)驗以及多元回歸分析方法,尋找最優(yōu)變量來建模,從而建立主導(dǎo)變量和輔助變量之間的數(shù)學(xué)模型,見表1。
2 軟測量建模軟件的實現(xiàn)
2.1 軟件框架
選用微軟VC++6.0開發(fā)環(huán)境[6],軟件的整體設(shè)計采用面向?qū)ο蟮某绦蛟O(shè)計方法,考慮到軟測量儀表本身側(cè)重于數(shù)值計算和參數(shù)的頻繁傳遞,因此選用基于對話框的應(yīng)用程序框架。該軟件框架結(jié)構(gòu)簡單,易于人機參數(shù)傳遞。從程序的角度來說,軟件總共分四個主要模塊:主對話框模塊、算法模塊、矩陣運算模塊、圖形編輯模塊。如圖2所示。
1)主對話框模塊:即人機界面UI,提供基本的人機交流界面,以及數(shù)據(jù)文件操作。
2)算法模塊:是整個軟件的核心,包括了軟件中所有的算法程序,并且留有擴充借口,可隨時根據(jù)軟件的升級增加新的算法。軟件在調(diào)用算法時需要用戶傳遞的參數(shù)和算法結(jié)果的返回利用子對話框來傳遞。該模塊分為三個子模塊:① 數(shù)據(jù)歸一化模塊:主要功能是對原始樣本數(shù)據(jù)進(jìn)行歸一化處理;② 樣本數(shù)據(jù)分析模塊:主要功能是對輔助變量進(jìn)行相關(guān)性分析和主元分析;③ 建模算法模塊:偏最小二乘法建模、神經(jīng)網(wǎng)絡(luò)建模。
3)矩陣運算模塊:主要功能是為算法模塊提供必需的矩陣運算支持。軟件中數(shù)據(jù)歸一化、樣本分析、建模的大多數(shù)算法在數(shù)學(xué)上表現(xiàn)為大量的矩陣運算,微軟MFC基礎(chǔ)類庫并沒有提供可以直接使用的矩陣運算類。為了使得建模算法代碼更為簡潔,易于修改。矩陣運算模塊將常用的矩陣運算操作寫成一個類——矩陣類,供算法程序調(diào)用。
4)圖形編輯模塊:主要功能是按照需要對工作空間中的數(shù)據(jù)進(jìn)行曲線圖形顯示。作用是當(dāng)離線建模完成后,需要對所建立的模型進(jìn)行擬合試驗,將試驗結(jié)果以曲線的形式表現(xiàn)出來,軟件允許用戶自己設(shè)定坐標(biāo)范圍和圖形標(biāo)題。
2.2 偏最小二乘回歸法
偏最小二乘回歸是建立在主元分析原理上的化學(xué)計量學(xué)方法。它通過多元投影變換的方法,分析兩個不同矩陣間的相互關(guān)系。在主元分析中,提取主元的過程只是強調(diào)了主元對輔助變量信息的最大綜合能力,并沒有考慮主導(dǎo)變量。偏最小二乘法不僅利用對系統(tǒng)中的數(shù)據(jù)進(jìn)行分析和篩選的方式辨識系統(tǒng)中的信息和噪聲,從而克服變量的多重線性相關(guān)性對建模的影響,而且在提取主元時還考慮主元和因變量的相關(guān)性,即主元對主導(dǎo)變量的解釋作用。因此,偏最小二乘回歸可以集多元線性回歸,主元分析,典型相關(guān)分析的基本功能為一體。
該算法原理如下:
假設(shè)有兩個數(shù)據(jù)矩陣X和Y,其中X∈Rn×m,Y∈Rn×1,X和Y之間的關(guān)系表示如下:
Y=Xβ+e (1)
式中:e表示殘差;β表示自適應(yīng)因子。
自適應(yīng)因子β的估計值可以用最小二乘法得到,即:
(2)
如果數(shù)據(jù)矩陣X具有較強的相關(guān)性,則式(2)中存在病態(tài)矩陣的求逆,結(jié)果誤差較大,而部分最小二乘法可以避免對病態(tài)矩陣求逆。其基本原理是將式(1)中的X和Y的關(guān)系分解為兩個內(nèi)部關(guān)系和一個外部關(guān)系:式(3)、(4)和(5)。
(3)
(4)
其中,矩陣T=[t1 t2 … tα],U=[u1 u2 …uα];分別稱為X和Y的得分矩陣,而th和uh分別稱為矩陣X和Y的第h主元。P=[p1 p2 … pα]和Q=[Q1 Q2 … Qα]稱為荷載矩陣,U和T之間的關(guān)系表示如下:
(5)
式中:E、F、R為殘差矩陣。
該算法將高維空間信息投影到由幾個隱含變量組成的低維信息空間中,隱含變量包含了原始數(shù)據(jù)的重要信息,且隱含變量間是互相獨立的。
2.3 神經(jīng)網(wǎng)絡(luò)法
基于人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)的軟測量建模方法是近年來研究最多、發(fā)展很快和應(yīng)用范圍很廣泛的一種軟測量建模方法[7-8]。能適用于高度非線性和嚴(yán)重不確定性系統(tǒng),因此它為解決復(fù)雜系統(tǒng)過程參數(shù)的軟測量問題提供了一條有效途徑。
化工裝置產(chǎn)品含量預(yù)測建模通常處理的是非線性建模問題,而多層前向網(wǎng)絡(luò)已被證明具有以任意精確度進(jìn)行復(fù)雜非線性函數(shù)的擬合能力[7],因此選擇前向網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)層數(shù)方面,除了網(wǎng)絡(luò)必須包含的輸入輸出層外,對于化工裝置產(chǎn)品含量預(yù)測這類軟測量建模,問題的復(fù)雜程度一般要求隱層數(shù)目為1。因此,軟件中采用包含一個隱含層的三層結(jié)構(gòu)前饋網(wǎng)絡(luò)。
確定好網(wǎng)絡(luò)結(jié)構(gòu)后,神經(jīng)網(wǎng)絡(luò)用于軟測量建模實際上就是利用產(chǎn)品的歷史數(shù)據(jù)經(jīng)過一定的算法來確定網(wǎng)絡(luò)的連接權(quán)值和閾值。BP算法是應(yīng)用較早的學(xué)習(xí)算法,它充分利用了前向網(wǎng)絡(luò)的結(jié)構(gòu)優(yōu)勢,在正反傳播過程中的每一層計算都是并行的。但BP算法存在兩個缺點,即訓(xùn)練時間長和容易陷入局部最小。針對此缺陷,本軟件在設(shè)計時采用了帶動量因子的改進(jìn)方法來加快網(wǎng)絡(luò)訓(xùn)練速度。改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)設(shè)置和參數(shù)設(shè)置如圖3所示。
神經(jīng)網(wǎng)絡(luò)建模算法采用BP算法,算法不再是簡單的矩陣操作。根據(jù)前饋神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)將神經(jīng)網(wǎng)絡(luò)用兩個類來描述,即神經(jīng)網(wǎng)絡(luò)類和神經(jīng)網(wǎng)絡(luò)層類。經(jīng)過處理后,主程序算法簡潔,可讀性強。如果要改進(jìn)BP算法,代碼的修改只需在類的方法中修改即可,不必修改主程序。神經(jīng)網(wǎng)絡(luò)類的設(shè)計和神經(jīng)網(wǎng)絡(luò)層類的設(shè)計主要代碼如下:
神經(jīng)網(wǎng)絡(luò)類
屬性:
輸入層:CNeuralNetworkLayerInputLayer;
隱層: CNeuralNetworkLayerHiddenLayer;
輸出層:CNeuralNetworkLayer OutputLayer;
方法:
void Initialize(int nNodesInput, int nNodesHidden, int nNodesOutput); // 初始化函數(shù)確定了三層網(wǎng)絡(luò)的層次關(guān)系,有點類似構(gòu)造函數(shù)
void SetInput(int i, double value); // 網(wǎng)絡(luò)輸入函數(shù)
double GetOutput(int i); // 網(wǎng)絡(luò)輸出函數(shù)
void SetDesiredOutput(int i, double value); // 設(shè)置網(wǎng)絡(luò)期望輸出函數(shù)
void LoadWeight(const CMatrix I_H, const CMatrix H_O, const CMatrix H, const CMatrix O); // 給網(wǎng)絡(luò)加載權(quán)值和閾值
void FeedForward(void); // 前向計算函數(shù)
void BackPropagate(void);// 反向權(quán)值調(diào)整函數(shù)(標(biāo)準(zhǔn)的最速梯度下降法)
void Levenberg_Marquardt(void);// 反向權(quán)值調(diào)整函數(shù)(Levenberg_Marquardt法)
double CalculateError(void); // 計算網(wǎng)絡(luò)全局誤差函數(shù)
void SetLearningRate(double rate1,double rate2); // 設(shè)置學(xué)習(xí)效率
void SetLinearOutput(bool useLinear); // 是否線性輸出
void SetMomentum(bool useMomentum, double factor); // 設(shè)置動量因素
神經(jīng)網(wǎng)絡(luò)層類
屬性:
int NumberOfNodes; // 層中神經(jīng)元數(shù)目
int NumberOfChildNodes; // 子層神經(jīng)元數(shù)目
int NumberOfParentNodes; // 父層神經(jīng)元數(shù)目
double**Weights; // 網(wǎng)絡(luò)權(quán)值數(shù)組
double**WeightChanges; // 權(quán)值改變數(shù)組
double* NeuronValues; // 神經(jīng)元值
double* DesiredValues; // 導(dǎo)師信號
double* Errors; // 局部誤差
double* BiasWeights; // 偏差權(quán)值
double* BiasValues; // 偏差值
doubleLearningRate; // 學(xué)習(xí)效率
boolLinearOutput; // 是否線性輸出
boolUseMomentum; // 是否有動量因素
doubleMomentumFactor; // 動力因素大小值
CNeuralNetworkLayer* ParentLayer; // 父層
CNeuralNetworkLayer* ChildLayer; // 子層
方法:
void Initialize(int NumberOfNodes, CNeuralNetworkLayer* parent, CNeuralNetworkLayer* child); // 初始化(分配存儲空間)
void RandomizeWeights(void); // 權(quán)值初始化函數(shù)
void OrderWeights(const CMatrix WeightsMatrix,const CMatrix BiasWeightsMatrix); // 權(quán)值給定函數(shù)
void CalculateErrors(void); // 計算局部誤差函數(shù)
void AdjustWeights(void); // 調(diào)整權(quán)值函數(shù)
void CalculateNeuronValues(void); // 計算神經(jīng)元值函數(shù)
void CleanUp(void); // 清除網(wǎng)絡(luò)層(有析構(gòu)函數(shù)的作用)
2.4 軟測量模型的在線校正
由于軟測量對象的時變性、非線性及模型的不完整性等因素,必須經(jīng)過模型的在線校正才能適應(yīng)新工況。根據(jù)被估計變量的離線測量值與軟測量估計值的誤差,對軟測量模型進(jìn)行在線修正,使軟測量儀表能跟蹤系統(tǒng)特性的緩慢變化,提高靜態(tài)自適應(yīng)能力。一般采用在線校正算法為常數(shù)項修正法,即通過化驗值或分析值計算新的偏差,并把新的偏差寫入軟測量儀表,修正偏差。即:
新偏差=(采樣時刻計算值-化驗值)×偏差權(quán)重+舊偏差×(1-偏差權(quán)重)
3 工業(yè)應(yīng)用
乙苯含量是乙苯精餾塔塔釜采出產(chǎn)品中一個十分重要的質(zhì)量控制指標(biāo)[9],通過輔助變量塔頂壓力、塔頂溫度、塔靈敏板溫度、回流量及塔釜溫度來預(yù)測乙苯含量變化趨勢。通過本軟件進(jìn)行仿真,乙苯含量軟測量偏最小二乘建模數(shù)據(jù)擬合圖如圖4所示。其中,紅線為實際值,綠線為擬合值。誤差平方和:0.765762856683714,均方誤差:0.0033294037247118。
針對某裝置淀粉含量預(yù)測問題選擇神經(jīng)網(wǎng)絡(luò)方法進(jìn)行仿真研究,均方誤差:9.14971253690028e-009;擬合曲線:紅線為化驗值,綠線為擬合值。淀粉含量軟測量神經(jīng)網(wǎng)絡(luò)建模數(shù)據(jù)擬合圖如圖5所示。
4 結(jié)束語
本文采用了微軟基礎(chǔ)類庫(MFC)提供的基于對話框的應(yīng)用程序框架實現(xiàn)了軟測量建模軟件的開發(fā)。軟件主要是從數(shù)學(xué)的角度分別研究了線性和非線性軟測量建模算法,重點強調(diào)了建模算法對給定歷史數(shù)據(jù)的擬合和泛化能力。在具體的應(yīng)用中,根據(jù)工藝知識對軟測量問題進(jìn)行初步數(shù)學(xué)抽象,然后以本軟件作為一種工具建模,輔以必要的工藝機理分析檢驗?zāi)P偷暮侠硇浴Mㄟ^對實際中兩個化工過程進(jìn)行的仿真表明,該軟件基本具備了軟測量建模預(yù)測產(chǎn)品含量變化趨勢的能力,可以得到較好的效果。
參考文獻(xiàn):
[1] 王樹青.先進(jìn)控制技術(shù)及應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2005.
[2] Morris A J,Montague G A,Tham M T.Soft-sensors in industrial process control[C].London,UK:Applied developments in process control,1989.
[3] 王躍宣.先進(jìn)控制策略與軟件實現(xiàn)及應(yīng)用研究[D].杭州:浙江大學(xué),2003.
[4] 俞金壽.軟測量技術(shù)及其在石油化工中的應(yīng)用[M].北京:化學(xué)工業(yè)出版社,2000.
[5] 馬勇,黃德先,金以慧.動態(tài)軟測量建模方法初探[J].化工學(xué)報,2005,56(8):1516-1519.
[6] 侯俊杰.深入淺出MFC[M].2版.武漢:華中科技大學(xué)出版社,2001.
[7] 薄翠梅,張湜,李俊,等.基于神經(jīng)網(wǎng)絡(luò)的軟測量技術(shù)在精餾塔上的應(yīng)用[J].過程工程學(xué)報,2003,3(4):371-375.
[8] 尚長軍,陳曦,錢積新.基于PCA-BP神經(jīng)網(wǎng)絡(luò)的精餾塔產(chǎn)品組成軟測量模型[J].工業(yè)儀表與自動化裝置,2003(4):33-36.
[9] 李照杰,王長明,龔輝.苯乙烯精餾生產(chǎn)過程先進(jìn)控制[J].數(shù)字石油和化工,2008(2):19-23.