謝平,蔣麗雯,趙堯,何海樂
(1.上海神開石油科技有限公司,上海 201112;2.上海計算機軟件技術開發中心,上海 201112;3.南京航空航天大學計算機科學與技術學院,210016)
井涌井漏現象的發生會增加施工成本、延誤工期甚至會造成人員傷亡,因此及時對井涌井漏現象進行預測可以為鉆井工作提供良好的環境。若要準確實時地預測井涌井漏,必須及時地、準確地掌握井底裸露井段的壓力體系大小及其動態變化,但評價地層壓力又受井底鉆頭狀態、地層巖性等變化因素的影響,因此快速準確地對井涌井漏現象進行預測是工業界和學術界面臨的一項重要的挑戰[1]。要準確預測井涌井漏發生情況首先應對井涌井漏的相關起因及征兆作必要的分析。
所謂井涌是指泥漿連續不斷井口或鉆機轉盤面的鉆桿內涌出,之所會發生這樣的現象是因為鉆井過程中井筒的液柱壓力低于底層壓力,鉆遇到了井下高壓層。
鉆井液如果出現以下的三種情況說明可能會發生井涌[2]。(1)鉆井液返出量增加。發生井涌的主要標志之一是泵排量不變,鉆井液從井口返出量增加;(2)鉆井液量在鉆井液池中呈上升趨勢。鉆井液量持續增加,并且在沒有外界人為的增加鉆井液的情況下,井涌現象正在發生。(3)停泵后鉆井液依然從井內向外溢出。在已經停泵的情況下,鉆井液繼續從井內向外流出,說明井涌現象已在井內發生。
井漏是指各種工作液在壓差作用下直接進入了底層,可以發生在鉆井、固井、測試或者修井的井下作業情況下,工作液包括鉆井液、水泥漿、完井液以及其他流體等。井漏包括滲透性、裂縫性、溶洞性濾失[3]。
井漏發生的征兆主要是地層中有能容納一定鉆井液體積的空間和有足夠大開口尺寸的漏失通道(如孔隙、裂縫或溶洞等),此時正壓差存在與井筒與底層之間,這種正壓差使得鉆井液在漏失通道中發生流動。
人工智能成為當前研究熱點,從上世紀80年代起,人工神經網絡(Artificial Neural Network)便成為該領域的研究熱點。它通過建立某種簡單模型,按不同的連接方式組成不同的網絡,這些網絡是對人腦神經元網絡的一種抽象,反映的是信息處理的過程。通過相互連接構成的大量的節點關系,形成一種運算模型,組成了人工神經網絡。每個節點表示一種特定的輸出函數,可成為激勵函數。權重用每兩個節點間的連接對該連接信息的加權值來表示。根據網絡的連接方式、激勵函數以及權重值的不同,網絡的輸出也不同。網絡自身代表的是某種算法或者函數的逼近,或者是對一種邏輯策略在自然界的表達。
BP神經網絡屬于多層前饋型神經網絡,包括正向傳播階段和反向傳播階段,信號向前面傳遞,誤差則反向傳播是該網絡的主要特點。如圖1所示,在正向傳播階段中,信號從輸入層進入,經隱含層逐層進行處理,最后直至輸出層。神經元的層與層之間的輸出具有相關性。如果輸出層得不到其所需的輸出,則立馬轉入反向傳播階段(如圖2所示),網絡權值和閾值根據預測誤差進行調節,從而使得BP神經網絡預測輸出一步步的逼近期望輸出。該神經網絡的拓撲結構如圖3所示。

圖1 正向傳播階段

圖2 反向傳播階段

圖3 BP神經網絡拓撲結構圖
在進行井涌井漏預測之前需要先建立原始數據集,利用原始數據集對BP神經網絡模型進行訓練。利用訓練過后的模型對新采集的數據進行實時的預測分析。
圖3中,X1,X2,…Xn是BP神經網絡的輸入值,Y1,Y2,…Ym是BP神經網絡的預測值,ωij和ωjk為BP神經網絡權值。作為一個非線性函數的BP神經網絡,將n個輸入節點映射到m個輸出節點。網絡的聯想記憶和預測能力通過訓練來達到,結果的預測通過用訓練數據對BP神經網絡進行訓練后達到。BP神經網絡的訓練過程步驟如下。
步驟1:網絡初始化。輸入層節點數、隱含層節點數和輸出層節點數分別用n、l、m代表,根據輸入輸出序列可確定。神經元之間的連接權值ωij,ωjk分別表示輸入層、隱含層和輸出層并進行初始化,初始化隱含層閾值a,輸出層閾值b,學習速率η和神經元激勵函數f。
步驟2:隱含層輸出計算。隱含層輸出H通過輸入向量X={x1,x2,…,xn}、輸入層和輸出層之間的連接權值及一個隱含層閾值a計算得到,如公式(1)所示。

激勵函數有多種表達形式,一般選取公式(2)的形式:

步驟3:輸出層輸出計算。預測輸出O可根據三個值來計算得到,分別為隱含層輸出H,連接權值ωjk以及閾值b,如公式3所示。

步驟4:誤差計算。網絡預測誤差e的計算可通過網絡預測輸出O和期望輸出Y得到,如公式(4)所示。

步驟 5:權值更新。根據公式(5)、(6)和網絡預測誤差e對網絡連接權值ωij、ωjk進行更新。

步驟6:閾值更新。由網絡預測誤差e更新網絡節點閾值 a,b,如公式(7)和(8)所示。

步驟7:判斷迭代是否終止。若沒有結束,返回步驟2。
支持向量機(Support Vector Machine)方法是建立在統計學習理論的VC維理論和結構風險最小原理基礎上,通過在有限的范本信息中找尋一種模型,并在模型的復雜性和學習能力之間尋求最佳折衷,使得泛化能力達到最優,可以用于解決分類、回歸和預測問題[5]。
在鉆井過程中通過儀器設備將實時采集的數據傳輸到數據庫中,根據已有數據作為原始數據集,訓練建立支持向量機模型,實現對后續采集的數據進行實時的預測分析。模型的建立首先需要從原始數據里提取訓練集和測試集并對其進行一定的預處理(必要的時候還需要進行特征提取),然后用訓練集對SVM進行訓練,再用得到的模型來預測測試集的分類標簽,其算法流程如圖4所示。

圖4 SVM流程圖
在井涌井漏數據集中,選取與井涌井漏發生具有相關性的數據項,然后把井涌井漏發生結果做標記。因此井涌井漏預測轉化為三分類問題,數據集可按要求分為三類,即訓練和測試集中的數據均包含井涌、井漏、正常數據。算法具體步驟如下:
步驟1:數據集的準備。首先把樣本數據集分為兩個部分,一個做訓練集,另外的做測試集,并且對應相應的訓練集標簽和測試集標簽。
步驟2:數據預處理,對數據進行簡單的縮放操作。為提高分類準確度,采用公式(9)對訓練集和測試集進行數據歸一化預處理。

公式(9)中,x,y∈Rn,xmin=min(x),xmax=max(x),y∈[0,1]。
步驟3:選擇核函數類型。本文選擇RBF(徑向基)核函數,如公式(10)所示。

步驟4:選擇分類器的最佳參數c和g。本文在K-CV情況下獲得c和g的最佳參數,K取5,通過進行交叉驗證的方式,不斷的嘗試各種可能的(c,g)組合值,交叉驗證精度最高的(c,g)組合被找出。
步驟5:帶入訓練樣本集獲取SVM模型。利用數據集訓練出SVM模型。
步驟6:利用獲取的模型進行挖掘分析得到結果。在得到最優算法模型后,應用該模型對進行同樣預處理的數據集進行分類預測分析,記錄相應結果并展示。
在以上SVM算法步驟中,分類器的最佳參數c和g的選擇和確定是較為關鍵的一步,也是分類器能夠達到較好分類效果的重要一步。目前沒有固定的尋找得到最佳參數c和g的方法,本文采用交叉驗證的方法選擇最佳參數c和g。交叉驗證方法即是讓c和g在一定的范圍內取值,對于取定的c和g,把訓練集作為原始數據集,然后通過利用K-CV方法進行分類后,得到分類準確率,該準確率即體現了在對應c和g下的訓練效果。比較多組對應c、g的準確率,找出最佳的c和g并記錄下來。
給定訓練集train及其標簽train_label,通過K-CV方法選取最佳的參數c和g的算法如下。
算法一:利用K-CV方法選取最佳參數c和g
1:Start
2:bestAccuracy=0;bestc=0;bestg=0; %相應的數據初始化
3:for c=2^(cmin):2^(cmax)%將c和g劃分網格進行搜索
4:for g=2^(gmin):2^(gmax) % 采 用 K-CV方法
5:將train大致平均分為K組,記train(1),train(2),…,train(K)
6:相應點標簽分離出來,記為train_label(1),train_label(2),…,train_label(K)
7:for run=1:K
8:讓train(run)作為驗證集,其他的作為訓練集。
9:記錄此時的驗證準確率為acc(run)
10:end
11:cv=(acc(1)+acc(2)+…+acc(K))/K;
12:if(cv>bestAccuracy)
13:bestAaccuracy=cv;bestc=c;bestg=g;
14:end
15:end
16:end
17:Over
其中 cmin,cmax,gmin,gmax,K 是給定的數。c 和g的值則要進行離散化的查找,針對本文的情況,本文c和g在2的指數范圍網格內進行查找。
本文采用神開井涌井漏數據集,從匯聚得到的眾多鉆井數據中選取11個較密切的指標,分別是全烴、C1、鉆壓、懸重、立管壓力、出口流量、總池體積、入口密度、出口密度、入口電導率、出口電導率。數據集中包含井涌數據樣本142個,井漏數據56個,正常樣本數據2000個。分別建立BP神經網絡模型和支持向量機模型,利用建立的神經網絡模型對井涌井漏情況進行分析和預測。每類數據集均值展示如圖5所示:

圖5 數據集屬性分析圖
如圖6所示,建立BP神經網絡模型。每個指標的重要性不同,分為兩級,第一級關聯度為1,第二級關聯度為2(1最高,2最低)。鉆壓、懸重、立管壓力這三個指標為第一級指標,其余為第二級指標。在輸出層中,1代表正常,2代表發生井漏,3代表發生井涌。數據集中75%用于訓練,25%用于測試。
先將原始數據進行歸一化處理,采用最大-最小標準化方法,利用MATLAB神經網絡工具箱實現神經網絡的構建,BP神經網絡計算結束后再進行反歸一化處理。訓練樣本在經過量化后被代入模型,井涌井漏的預測值將會被得到。實驗結果如表1所示。

圖6 BP神經網絡模型

表1 實驗結果分析表
從表1中可以看出,所建立的BP神經網絡模型總體正確率為98.3%,預測結果與實際觀測值基本吻合,由此表明本文所建立的利用BP神經網絡實現井涌井漏的預測模型可以獲得很好的預測效果,無疑對指導礦井安全提供了必要的理論依據。
本實驗是在Windows7系統、在MATLAB 2014b平臺、版本號為3.22的支持向量工具libsvm下進行。數據集在歸一化之后將會被隨機的分為不等的兩份,其中一份用作訓練集,另一份則作為測試集。在本實驗中,總數據集的4/5用作訓練集,剩下的1/5作為測試集。最終的分類結果如圖7所示。
從圖7中可以看出,該方法誤差小,模型擬合度好,因此利用SVM對井涌井漏進行預測可以得到比較精確的結果,為鉆井工作提供了極大的技術支持。
本文分析了井涌井漏發生的原因及征兆,闡述了神經網絡的思想和算法,深入研究了神經網絡算法在井涌井漏預測分析中的可行性和現實的可操作性。介紹了BP神經網絡算法和支持向量機算法的應用步驟,闡明了利用這兩種算法進行井涌井漏現象預測的可行性。最后以神開井涌井漏數據集為實驗對象,以BP神經網絡算法、SVM算法分別進行了實驗分析,預測結果理想且較準確,充分說明了以神經網絡算法進行井涌井漏預測分析可操作性和高效性。

圖7 支持向量機分類結果圖
參考文獻:
[1]朱文鑒,郭學增.石油鉆井井涌井漏實時預測專家系統研究[J].現代地質,1997(1):86-90.
[2]薛玖火,劉強,王翔,等.MX10井古生界井漏原因淺析及建議[J].鉆采工藝,2016,39(1):38-41.
[3]羅遠游.川西地區固井及完井過程中井漏原因分析及對策[J].天然氣工業,1988(1):66-69.
[4]吳微,陳維強,劉波.用BP神經網絡預測股票市場漲跌[J].大連理工大學學報,2001,41(1):9-15.
[5]丁世飛,齊丙娟,譚紅艷.支持向量機理論與算法研究綜述[J].電子科技大學學報,2011,40(1):2-10.