高 峰, 李曉升, 李北群, 謝靜遠(yuǎn), 張 然, 倪崇本
(1.中國(guó)船舶集團(tuán)有限公司,上海 200011;2.海洋石油工程股份有限公司 a.安裝分公司;b.特種設(shè)備分公司,天津 300452;3.上海船舶工藝研究所,上海 200032;4.上海交通大學(xué) a.海洋工程國(guó)家重點(diǎn)實(shí)驗(yàn)室;b.船舶海洋與建筑工程學(xué)院,上海 200240)
油井產(chǎn)出流體可能含有非烴類氣體,如氮、二氧化碳和硫化氫等;可能含有液態(tài)或半液態(tài)物質(zhì),如水和蠟等;可能含有鉆井液、泥砂和鹽類等固體雜質(zhì)。海洋油氣平臺(tái)油井產(chǎn)出流體含原油、凝析油、天然氣、水及各種雜質(zhì);伴隨原油和天然氣一起產(chǎn)出的水可能為蒸汽或液體;液態(tài)水可能為自由水或乳化水;自由水在到達(dá)地面后可從液態(tài)烴中分離;乳化水以液滴狀分散在液態(tài)烴中。在海洋油氣平臺(tái)油井產(chǎn)出流體輸入生產(chǎn)系統(tǒng)前,需要將混合物各組分分離,獲得純凈的原油[1]。
油氣分離方式分為3種:一次分離、連續(xù)分離和多級(jí)分離。多級(jí)分離是指在系統(tǒng)中保持氣液兩相接觸,在每次系統(tǒng)壓力降低至某一數(shù)值時(shí),將析出的天然氣排掉,重復(fù)該過(guò)程,直至壓力降為常壓。在實(shí)際生產(chǎn)中,油氣分離常用多級(jí)分離。由于儲(chǔ)存罐中的壓力最大,在儲(chǔ)存罐中總有天然氣析出,因此常將儲(chǔ)存罐作為最后一級(jí);排氣1次,為一級(jí)分離;1個(gè)分離罐和1個(gè)儲(chǔ)存罐組成二級(jí)分離,2個(gè)分離罐和1個(gè)儲(chǔ)存罐組成三級(jí)分離,以此類推。
海洋油氣平臺(tái)油氣分離中控系統(tǒng)是用戶關(guān)注的重點(diǎn),負(fù)責(zé)維持油氣分離系統(tǒng)的穩(wěn)定作業(yè)。以某海洋油氣平臺(tái)為對(duì)象,進(jìn)行基于Unity3D的油氣分離中控系統(tǒng)仿真與開(kāi)發(fā),為平臺(tái)研發(fā)提供支持。
分離罐與儲(chǔ)存罐是油氣分離系統(tǒng)中的主要容器,罐體模型如圖1所示。
圖1 罐體模型
分離罐運(yùn)行原理:混合液自進(jìn)液口進(jìn)入罐內(nèi),隨著流向和流速突然改變,油氣初步分離;原油在重力作用下流入分離器集液部分;集液部分具有足夠容量,使原油在流出分離罐前具有足夠停留時(shí)間,原油攜帶的氣泡有機(jī)會(huì)上升至液面并進(jìn)入氣相;集液部分提供緩沖容積,均衡進(jìn)出分離罐原油流量波動(dòng);原油經(jīng)控制液位的排油口流出分離罐。為得到最大的氣液界面面積,通常在分離罐內(nèi)充滿二分之一的液體。
從降低計(jì)算負(fù)荷的需求出發(fā),油氣分離中控系統(tǒng)對(duì)罐體需要進(jìn)行簡(jiǎn)化建模,僅提取控制邏輯所關(guān)注的參數(shù)指標(biāo)。通過(guò)對(duì)油氣分離作業(yè)流程進(jìn)行研究,總結(jié)儲(chǔ)存罐和分離罐的控制模型所關(guān)注的參數(shù)。
(1)固有參數(shù)
固有參數(shù)在仿真過(guò)程中不會(huì)發(fā)生變化。第一類參數(shù)為儲(chǔ)存罐內(nèi)液體體積V與液位h的關(guān)系函數(shù)h=F(V)。F(V)是由罐體形狀決定的復(fù)雜函數(shù),從簡(jiǎn)化建模的角度出發(fā),油氣分離中控系統(tǒng)僅關(guān)心若干關(guān)鍵液位對(duì)應(yīng)的液體體積,因此采用分段線性函數(shù)F*(V)進(jìn)行近似,由F(V)可得出罐內(nèi)最大容積Vmax[2]。容積液位函數(shù)F(V)與分段線性函數(shù)F*(V)如圖2所示。第二類參數(shù)為油氣分離中控系統(tǒng)控制邏輯所關(guān)注的液位參考值。油氣分離中控系統(tǒng)關(guān)注影響儲(chǔ)存罐進(jìn)液排液閥門(mén)開(kāi)合程度的3個(gè)參考值:最低液位Lmin、最高液位Lmax和平衡液位Lw;由于無(wú)法排除特殊情況的存在,因此應(yīng)包含排液口高度Lout,大部分儲(chǔ)存罐排液口位于罐底,可設(shè)Lout=0。第三類參數(shù)與泄壓控制邏輯相關(guān),包括泄壓壓力Pr1和停止壓力Pr2。儲(chǔ)存罐控制模型固有參數(shù)如表1所示。
圖2 容積液位函數(shù)F(V)與分段線性函數(shù)F*(V)
表1 儲(chǔ)存罐控制模型固有參數(shù)
(2)狀態(tài)參數(shù)
狀態(tài)參數(shù)是反映罐內(nèi)物理狀態(tài)的指標(biāo),在仿真過(guò)程中實(shí)時(shí)更新計(jì)算[3]。儲(chǔ)存罐控制模型狀態(tài)參數(shù)如表2所示,其中:V*、Vair*和Pair*分別為前一時(shí)間步的液體體積、氣體體積和氣壓。狀態(tài)參數(shù)計(jì)算按時(shí)間步迭代,因此每次計(jì)算需要前一時(shí)間步的狀態(tài)。
(3)初始參數(shù)
在仿真開(kāi)始前,需要設(shè)置儲(chǔ)存罐控制模型初始參數(shù),如表3所示。
表2 儲(chǔ)存罐控制模型狀態(tài)參數(shù)
表3 儲(chǔ)存罐控制模型初始參數(shù)
(1)固有參數(shù)
與儲(chǔ)存罐相比,分離罐中間設(shè)置1個(gè)堰板將罐體分為左右兩側(cè),左側(cè)為流入的油水混合物,大量浮油通過(guò)重力將油脂分離出來(lái)浮于表面,高出堰板的油脂流向堰板右側(cè)。左右兩側(cè)各設(shè)置1個(gè)排液口,因此其控制模型固有參數(shù)需要區(qū)分左右兩側(cè),如表4所示。
表4 分離罐固有參數(shù)
(2)狀態(tài)參數(shù)
分離罐需要監(jiān)控左右兩側(cè)液位,罐內(nèi)的氣體體積和氣壓與兩側(cè)液位同時(shí)相關(guān)。分離罐控制模型狀態(tài)參數(shù)如表5所示,其中:VL*、VR*、Vair*和Pair*分別為前一時(shí)間步的左側(cè)液體體積、右側(cè)液體體積、氣體體積和氣壓。狀態(tài)參數(shù)計(jì)算同樣需要前一時(shí)間步的數(shù)據(jù)。
表5 分離罐控制模型狀態(tài)參數(shù)
(3)初始參數(shù)
在開(kāi)始仿真前,需要設(shè)置分離罐控制模型初始參數(shù),如表6所示。
表6 分離罐控制模型初始參數(shù)
通常管路流仿真基于分離罐與儲(chǔ)存罐控制模型建立管路模型,設(shè)定管路流場(chǎng)進(jìn)液口和排液口的邊界條件,通過(guò)計(jì)算流體動(dòng)力學(xué)(Computational Fluid Dynamics,CFD)計(jì)算得出管路流流量。但油氣分離中控系統(tǒng)并不關(guān)注管路內(nèi)的流場(chǎng)狀況,不應(yīng)在CFD求解上耗費(fèi)算力,需要將管路流進(jìn)行簡(jiǎn)化。
在油氣分離中控系統(tǒng)仿真過(guò)程中,由于管路內(nèi)的流場(chǎng)形狀固定,僅進(jìn)液口和排液口邊界的壓強(qiáng)出現(xiàn)變化,因此根據(jù)經(jīng)驗(yàn)數(shù)據(jù),采用壓降-流量函數(shù)
Q(ΔP)代替管路內(nèi)的流場(chǎng)計(jì)算。由于壓降-流量函數(shù)一般為復(fù)雜函數(shù),因此在系統(tǒng)仿真中采用分段線性函數(shù)Q*(ΔP)進(jìn)行近似。壓降-流量函數(shù)Q(ΔP)與線性函數(shù)Q*(ΔP)如圖3所示。
圖3 壓降-流量函數(shù)Q(ΔP)與線性函數(shù)Q*(ΔP)
壓降-流量函數(shù)作為每條管路的固有參數(shù)參與計(jì)算,在仿真過(guò)程中根據(jù)管路上下游的連接位置計(jì)算該處壓強(qiáng),將壓差代入壓降-流量函數(shù)得出管路內(nèi)的流量。對(duì)于設(shè)置調(diào)節(jié)閥的部分管路,仿真軟件將調(diào)節(jié)閥作為額外阻力加入計(jì)算。
油氣分離中控系統(tǒng)的目的在于維持油氣分離系統(tǒng)的平穩(wěn)作業(yè),將分離罐和儲(chǔ)存罐的液位控制在目標(biāo)水位附近。在工業(yè)上,比例積分微分(Proportion Integration Differentiation,PID)算法在該類問(wèn)題中獲得廣泛應(yīng)用。PID算法流程如圖4所示。
圖4 PID算法流程
PID算法的關(guān)鍵在于3個(gè)調(diào)節(jié)項(xiàng)KP、KD和KI。
(1)比例調(diào)節(jié)項(xiàng)KP。KP考慮當(dāng)前誤差,將誤差值和1個(gè)正值常數(shù)相乘得出需要的控制量。油氣分離中控系統(tǒng)仿真關(guān)注的是罐內(nèi)水位,一般采用線性函數(shù)關(guān)系,計(jì)算水位當(dāng)前值與目標(biāo)值的誤差再與KP相乘。KP越大,調(diào)節(jié)作用越激進(jìn),KP調(diào)小會(huì)使調(diào)節(jié)作用更保守。
(2)微分調(diào)節(jié)項(xiàng)KD。KD考慮將來(lái)誤差,計(jì)算誤差的一階導(dǎo),并與1個(gè)正值常數(shù)相乘。若油氣分離中控系統(tǒng)僅由比例調(diào)節(jié),則罐內(nèi)水位會(huì)在目標(biāo)值附近來(lái)回振蕩,而KD的作用在于使受控物理量穩(wěn)定,即類似阻尼的作用。KD越大,調(diào)節(jié)過(guò)程越穩(wěn)定,但調(diào)節(jié)至目標(biāo)值所需要的時(shí)間越長(zhǎng)。
(3)積分調(diào)節(jié)項(xiàng)KI。KI考慮過(guò)去誤差,將誤差值過(guò)去一段時(shí)間和(誤差和)與1個(gè)正值常數(shù)相乘。KI的作用在于減小靜態(tài)情況下的誤差,使受控物理量盡可能接近目標(biāo)值。KI越大,在積分時(shí)所乘的系數(shù)越大,積分效果越明顯,但在仿真過(guò)程一開(kāi)始需要設(shè)定KI的限制,避免初始狀態(tài)不穩(wěn)定造成的物理量飄散[4]。
在上述研究的基礎(chǔ)上,建立油氣分離系統(tǒng)主要部件的控制模型,并采用Unity3D進(jìn)行建模仿真。利用Unity編輯器將罐體、管路及閥門(mén)組件模型導(dǎo)入為對(duì)象進(jìn)行管理;控制模型采用C#編寫(xiě),作為腳本加載于對(duì)象?;赨nity3D的仿真開(kāi)發(fā)如圖5所示。
圖5 基于Unity3D的仿真開(kāi)發(fā)
考慮油氣分離系統(tǒng)各部件的控制模型兼具控制邏輯相似和關(guān)鍵參數(shù)不同的特點(diǎn),對(duì)控制模型進(jìn)行設(shè)計(jì),其固有參數(shù)和初始參數(shù)普遍采取讀取配置文件的方法而非固化于腳本代碼,這樣整個(gè)仿真過(guò)程具有更好的靈活性,通過(guò)調(diào)節(jié)參數(shù)配置文件即可模擬不同海洋油氣平臺(tái)的油氣分離中控系統(tǒng)作業(yè)過(guò)程;開(kāi)發(fā)完成,在Unity3D中進(jìn)行編譯調(diào)試,即可生成軟件的可執(zhí)行文件[5]。油氣分離中控系統(tǒng)運(yùn)行界面如圖6所示。
圖6 油氣分離中控系統(tǒng)運(yùn)行界面
從海洋油氣平臺(tái)油氣分離中控系統(tǒng)的需求出發(fā),提出將系統(tǒng)復(fù)雜的油-水-氣三相流問(wèn)題進(jìn)行抽取簡(jiǎn)化,僅保留系統(tǒng)關(guān)注的固有參數(shù)和狀態(tài)參數(shù),可大幅降低仿真過(guò)程的實(shí)現(xiàn)難度。對(duì)系統(tǒng)的主要部件(分離罐、儲(chǔ)存罐、管路和閥門(mén))分別提出建模方法,并在Unity3D上完成開(kāi)發(fā),可為海洋油氣平臺(tái)的相關(guān)開(kāi)發(fā)研究提供技術(shù)支持。