花 靖,蔣 秀,于 超,谷成林,靳彥欣,逄銘玉
(中國石油化工股份有限公司青島安全工程研究院,山東 青島 266071)
持液率又稱截面含液率,是指在氣液兩相流動過程中,液相的過流斷面面積占總過流面積的比值,表征液相在整個流動空間內(nèi)的填充程度。兩相流持液率的精準(zhǔn)計算對于氣液兩相流流型識別、管道腐蝕評價與預(yù)測以及輸氣管道輸送過程中沿程壓降計算等方面都具有重要的意義[1-4]。
國外關(guān)于持液率計算模型的研究起步較早[3,5-12],主要包括兩類:(1)基于室內(nèi)實驗數(shù)據(jù)擬合得到的經(jīng)驗、半經(jīng)驗相關(guān)式計算模型(如Eaton模型、Beggs-Brill模型、Mukherjee-Brill模型等);(2)通過實驗現(xiàn)象觀察建立的機理模型(如Taitel&Dukler模型、ARS模型、MARS模型等)。這兩類模型雖然在各自的實驗條件下(或相近實驗條件)都具有較高的計算精度,但當(dāng)其應(yīng)用到實驗條件相差較大的工況時,計算結(jié)果的準(zhǔn)確率較低,甚至有些模型完全不適用。
近年來,機器學(xué)習(xí)在生物、醫(yī)療、商業(yè)、個體分析等不同的領(lǐng)域都有了廣泛的應(yīng)用,一些國內(nèi)學(xué)者將機器學(xué)習(xí)運用到多相流領(lǐng)域[12-16],建立了不同的持液率計算模型,但由于受到數(shù)據(jù)來源的限制,導(dǎo)致模型適應(yīng)性不夠。比如邵孟良[13-14]建立的GA-BP神經(jīng)網(wǎng)絡(luò)持液率計算模型只適用于管徑0.025 4 m、管道傾角為0°~-90°的工況。陳星杙[15]建立的基于ACE算法水平管持液率計算模型只適用于水平管持液率的計算。因此,有必要建立一套適應(yīng)不同工況(不同傾角、不同管徑、不同氣速、不同液速等)的持液率計算模型。
本文統(tǒng)計分析了國內(nèi)外不同專家學(xué)者共計2 123組氣液兩相流室內(nèi)實驗數(shù)據(jù),構(gòu)建了相應(yīng)的實驗數(shù)據(jù)庫,在此基礎(chǔ)上選定SVM算法對數(shù)據(jù)進行訓(xùn)練和回歸預(yù)測,并對SVM算法的懲罰因子c和核函數(shù)參數(shù)g的尋優(yōu)過程進行優(yōu)化,從而建立了基于GA-SVM算法的持液率計算模型。最后,將該模型與經(jīng)典的持液率計算模型進行了計算精度對比分析,結(jié)果顯示,建立的持液率模型在不同的工況條件下都具有較高的計算精度。本文基于GA-SVM算法建立的氣液兩相流持液率計算模型具有計算精度高、穩(wěn)定性強、適應(yīng)性廣泛的優(yōu)點,可滿足不同工況條件下持液率計算的需求。
為了建立精度高、適應(yīng)性廣泛的持液率計算模型,建立豐富的室內(nèi)實驗數(shù)據(jù)庫是重要前提,遵循以下的數(shù)據(jù)篩選原則:(1)參數(shù)變化范圍盡可能大,確保建立的持液率計算模型適應(yīng)強,在不同的工況條件下都具有良好的計算精度;(2)統(tǒng)計的持液率影響因素盡量多,確保數(shù)據(jù)訓(xùn)練階段具有良好的學(xué)習(xí)效果?;谝陨显瓌t,廣泛地統(tǒng)計、篩選了國內(nèi)外不同專家學(xué)者共2 123組氣液兩相流室內(nèi)實驗數(shù)據(jù)[16-24],數(shù)據(jù)來源及實驗條件描述詳見表1。由表1可知,實驗數(shù)據(jù)涵蓋了不同的實驗條件,基本覆蓋了影響持液率的主要因素,包括管徑、管道傾角、溫度、壓力、氣相折算速度、液相折算速度、氣相密度、液相密度、氣相黏度、液相黏度以及界面張力(由于實驗介質(zhì)的區(qū)別在密度、黏度等參數(shù)上有所體現(xiàn),從而不考慮在內(nèi))等。
表1 不同專家學(xué)者所做兩相流持液率測試實驗的實驗介質(zhì)及條件Tab.1 Media and conditions used in two-phase flow holdup testing experiments by different experts and scholars
支持向量機(Support Vector Machine,SVM)是Vapnik等于1995年首先提出,因其通用性強、魯棒性好、計算簡單,在解決模式分類和非線性回歸問題方面達(dá)到了較好的效果[25-28]。支持向量機的基本原理是:通過建立一個分類超平面作為決策曲面,使得正類和反類距離超平面最近的樣本點到超平面的距離最大化。
超平面可以用下面的線性方程來描述,ωTx+b=0,其中,x是 N維空間點,坐標(biāo)為(x1,x2,…,xn)。因此,點x到直線的距離為:
圖1為支持向量機數(shù)據(jù)分布示意圖,可以看出滿足該條件的決策邊界實際上是構(gòu)造了2個平行的超平面,以此作為間隔邊界來實現(xiàn)對判別樣本進行分類的目的,在上間隔邊界以上的數(shù)據(jù)屬于正類,在下超平面邊界以下的數(shù)據(jù)屬于負(fù)類,2個平行邊界
圖1 支持向量機數(shù)據(jù)分布示意圖Fig.1 Data distribution diagram of Support Vector M achine
因此,當(dāng) ω 最小時,x到直線的距離最大。同時,考慮到在實際分類過程中,完全線性可分的樣本是非常少的,從而引入軟間隔的概念,允許部分?jǐn)?shù)據(jù)點出現(xiàn)在上下邊界之間。增加軟間隔以后,得到優(yōu)化目標(biāo)為:
其中:c為懲罰因子,無因次;ξi為松弛變量,表征軟間隔軟的程度,無因次。
為了求解上述目標(biāo)函數(shù),構(gòu)造拉格朗日函數(shù),并根據(jù)強對偶性,得到轉(zhuǎn)換后的函數(shù)為:
其中:λi、μi是拉格朗日乘子,ω、b、ξ為主問題參數(shù),yi為距離第i個數(shù)據(jù)點最近的平面。
對主問題參數(shù)分別求導(dǎo),帶入式(3)中,得到:
使用SMO算法求得最優(yōu)解λ*,并根據(jù)式(4)分別求得 ω,b。
最終,根據(jù)分類決策函數(shù)進行分類求解:
式中:κ(x,xi)為核函數(shù),常用的核函數(shù)有線性核、多項式核、高斯核以及拉普拉斯核,本文使用高斯核,公式為 κ(x·xi)=e-g(x-xi)2,x是輸入?yún)?shù),xi是訓(xùn)練參數(shù),g是核函數(shù)參數(shù)。λ*i和b*分別是λi和b的最優(yōu)解。
在SVM算法的計算過程中,懲罰因子c和核函數(shù)參數(shù)g的尋優(yōu)過程是關(guān)鍵一步,尋優(yōu)結(jié)果的好壞直接影響著SVM 算法的計算精度。因此,下文在SVM算法的基礎(chǔ)上,采取了不同的關(guān)鍵參數(shù)搜索方法或算法,對c和g的尋優(yōu)過程進行優(yōu)化,以達(dá)到獲得最佳的c和g的目的。
(1)K-交叉驗證(K-Cross Validation,K-CV)
CV是用來驗證分類器性能的一種統(tǒng)計分析方法,它將原始數(shù)據(jù)進行分組,一部分作為訓(xùn)練集,一部分作為驗證集。原理是先對訓(xùn)練集進行訓(xùn)練,得到模型,再使用驗證集與模型預(yù)測的結(jié)果進行對比,采用得到的準(zhǔn)確率作為分類器的性能指標(biāo)。K-CV是其中的一種方法,它將原始數(shù)據(jù)分成K組,然后輪流將每一組數(shù)據(jù)作為測試集,其他K-1組作為訓(xùn)練集,最后將K次訓(xùn)練測試的準(zhǔn)確率的平均值作為分類器性能的評價指標(biāo)。與其他CV方法相比,K-CV可有效地避免過學(xué)習(xí)和欠學(xué)習(xí)情況的發(fā)生,模擬的結(jié)果可信度較高。
(2)遺傳算法(Genetic Algorithm,GA)
GA是Holland教授模擬自然界遺傳機制和生物進化論而提出的一種并行搜索最優(yōu)化方法[29]。它以自然界“優(yōu)勝劣汰,適者生存”的生物進化機制為指導(dǎo),通過建立合適的適應(yīng)度函數(shù),模仿遺傳學(xué)中的選擇、交叉、變異過程,對個體進行篩選,留下適應(yīng)度高的個體。通過不停的循環(huán)訓(xùn)練過程,生存下來的群體一代比一代優(yōu)質(zhì),直至滿足條件要求。遺傳算法計算流程如圖2[30]所示。
圖2 遺傳算法計算流程Fig.2 Genetic algorithm calculation process
(3)粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)
PSO算法最早由Kenndy和Eberhart在1995年提出,是通過模擬鳥群覓食行為而發(fā)展起來的一種基于群體協(xié)作的隨機搜索方法[31]。PSO算法的原理是:首先在可解空間中初始化一群粒子,每個粒子都有位置、速度以及適應(yīng)度值3個特征。通過適應(yīng)度函數(shù)計算粒子的個體極值Pbest和群體極值Gbest,并根據(jù)2個極值來調(diào)整位置和速度,通過不斷的調(diào)整優(yōu)化,最終得到符合條件的位置和速度。粒子群優(yōu)化算法的計算流程如圖3[30]所示。
圖3 粒子群優(yōu)化算法計算流程Fig.3 Particle swarm optim ization algorithm calculation process
通過K-交叉驗證、遺傳算法及粒子群優(yōu)化算法對c和g的尋優(yōu)過程進行優(yōu)化,建立相應(yīng)的持液率計算模型分別為:K-CV-SVM、GA-SVM、PSO-SVM。
隨機選取90%的數(shù)據(jù)作為訓(xùn)練集,剩余10%作為驗證集。分別采用3套模型進行訓(xùn)練和預(yù)測,為了避免模型的隨機性計算誤差,每套模型模擬計算10次,詳細(xì)記錄每一次模擬的原始值、預(yù)測值以及計算誤差等數(shù)據(jù)。其中,計算誤差采用均絕對誤差(MAE)、均方誤差(MSE)和平均絕對百分比誤差(MAPE)3個指標(biāo)來表征,計算公式分別如下:
式中:xi為第i個預(yù)測值;yi為第i個實際值;n為數(shù)據(jù)總量。
分別取每套模型計算效果最好的數(shù)據(jù)集和計算效果最差的數(shù)據(jù)集,繪制成圖(如圖4~圖6所示)。計算精度方面:由圖4~圖6可知,3套模型的計算誤差均較小,除了少數(shù)點計算效果較差之外,大多數(shù)計算的結(jié)果都和原始數(shù)據(jù)非常相近。計算穩(wěn)定性方面:由圖4(b)可知,K-CV-SVM的計算結(jié)果中,出現(xiàn)了-0.34和-0.05這樣的無效點,由于持液率是0~1之間的參數(shù),這樣的計算結(jié)果顯然是不合理的。而圖4(a)中、圖5和圖6這樣的無效點基本上沒有,說明K-CV-SVM模型的計算穩(wěn)定性不如GASVM和PSO-SVM模型。
圖4 K-CV-SVM 模型的持液率計算結(jié)果Fig.4 Liquid holdup calculation results by K-CV-SVM model
圖5 GA-SVM 模型的持液率計算結(jié)果Fig.5 Liquid holdup calculation results by GA-SVM model
圖6 PSO-SVM 模型的持液率計算結(jié)果Fig.6 Liquid holdup calculation results by PSO-SVM model
表2列出了每套模型各誤差指標(biāo)的平均值和標(biāo)準(zhǔn)差,由表2可知,3套模型的計算誤差均保持在較小的范圍內(nèi),具體來說,GA-SVM 模型和PSO-SVM模型的計算誤差均值相近,明顯低于K-CV-SVM模型,表明GA-SVM模型和PSO-SVM模型的計算精度更高;對比3種參數(shù)的標(biāo)準(zhǔn)差可知,GA-SVM模型的MAE、MSE低于其他兩種模型,MAPE處于兩者之間,表明GA-SVM模型比其他兩種模型的計算穩(wěn)定性更好。因此,綜合考慮計算的精度和穩(wěn)定性,最終選擇GA-SVM 模型作為持液率計算模型的核心算法。
表2 3套模型計算結(jié)果對比Tab.2 Com parison of liquid holdup calculation results using 3 models
為了驗證優(yōu)選出的基于GA-SVM 算法的持液率計算模型是否適用于不同傾角范圍的工況,分別對上傾管(傾角>0)、水平管(傾角=0)以及下傾管(傾角<0)模型的計算效果進行分析,并與常用的經(jīng)驗關(guān)系式計算模型對比。水平管的經(jīng)驗關(guān)系式計算模型選用:Eaton模型、BB(Beggs-Brill)模型、MB模型(Mukherjee-Brill);上傾管和下傾管的經(jīng)驗關(guān)系式計算模型選用:BB(Beggs-Brill)模型、MB模型(Mukherjee-Brill)、BBE(Beggs-Brill&Eaton)[32]。
關(guān)于經(jīng)驗關(guān)系式計算結(jié)果的處理:持液率為0到1之間的參數(shù),為了更直觀地對數(shù)據(jù)進行分析,對經(jīng)驗關(guān)系式計算的過大或過?。ㄘ?fù))數(shù)據(jù)進行數(shù)值范圍約束。當(dāng)持液率大于1時按數(shù)值1輸出,當(dāng)持液率為負(fù)值時按數(shù)值0輸出。將計算得到的數(shù)據(jù)繪制成圖,分別見圖7~圖9,并計算不同模型的平均誤差(以MAE作為評價指標(biāo)),匯總見表3。
表3 不同傾角條件下GA-SVM 模型與經(jīng)典模型計算結(jié)果對比Tab.3 Comparison of liquid holdup calculation results using GA-SVM model and classicmodels under different inclination angles of pipeline
由圖 7和表 3可知,GA-SVM 的計算誤差(MAE=0.055 8)最小,BB模型(MAE =0.123 9)和 BBE模型(MAE =0.159 3)次之,MB模型計算誤差最大(MAE =0.217 9)。GA-SVM模型計算的數(shù)據(jù)非常接近原始數(shù)據(jù),大部分計算數(shù)據(jù)和原始數(shù)據(jù)重合,表明該模型計算精度較高。其他3種模型中,BB模型的計算精度相對較好,部分?jǐn)?shù)據(jù)點計算效果尚可;Eaton模型除個別點和原始數(shù)據(jù)接近以外,大部分?jǐn)?shù)據(jù)都偏離原始數(shù)據(jù)很多,計算效果不佳;MB模型縱坐標(biāo)值為0和1的數(shù)據(jù)點較多,計算效果差。
圖7 上傾管GA-SVM 模型與經(jīng)典模型持液率計算值Fig.7 Comparison of liquid holdup calculation results using GA-SVM model and classicmodels under upward inclined pipe
由圖 8和表 3可知,GA-SVM 的計算誤差(MAE=0.026 7)最小,BB模型(MAE =0.059 5)和 Eaton模型(MAE =0.087 9)次之,MB模型計算誤差最大(MAE =0.190 0)。4種模型計算結(jié)果的規(guī)律與上傾管相似,但整體誤差低于上傾管。
圖8 水平管GA-SVM 模型與經(jīng)典模型持液率計算值Fig.8 Comparison of liquid holdup calculation results using GA-SVM model and classic models under horizontal pipe
由圖9和表3可知,GA-SVM的計算誤差(MAE=0.018 9)最小,BB模型(MAE =0.152 2)和 BBE模型(MAE =0.246 0)次之,MB模型計算誤差最大(MAE =0.591 9)。4種模型計算結(jié)果的規(guī)律與上傾管和水平管相似,但整體計算誤差低于上傾管和水平管。
圖9 下傾管GA-SVM 模型與經(jīng)典模型持液率計算值Fig.9 Comparison of liquid holdup calculation results using GA-SVM model and classicmodels under downward inclined pipe
綜合上述,本文建立的持液率模型在上傾管、水平管以及下傾管中都具有比Eaton、BB、MB等經(jīng)驗關(guān)系式模型更佳的計算精度。此外,4套模型在上傾管、水平管以及下傾管中持液率的計算誤差均呈現(xiàn)逐漸降低的趨勢,這是源于在實際的氣液兩相流流動過程中,由于液相重力在不同傾角的管道中對兩相流的流動狀態(tài)影響不同(在上傾管中重力阻礙液相向下游流動,在水平管中不影響,在下傾管中促進液相向下游流動),導(dǎo)致在其他實驗參數(shù)相同的工況條件下,上傾管中持液率最高,下傾管中持液率最低,從而各模型計算的持液率數(shù)值偏離真實值的絕對值也呈現(xiàn)相應(yīng)的規(guī)律。
本文從室內(nèi)實驗數(shù)據(jù)庫構(gòu)建和機器學(xué)習(xí)算法優(yōu)選兩方面出發(fā),雙管齊下,建立了基于GA-SVM算法的氣液兩相流持液率計算模型。該計算模型比Eaton、BB、MB等經(jīng)驗關(guān)系式模型的計算精度更高,具有計算精度高、穩(wěn)定性強、適應(yīng)性廣泛的優(yōu)點,可滿足不同工況條件下持液率計算的需求。