一種基于時間序列的油井油液含水率多模型預測方法
【技術領域】
[0001] 本發(fā)明設及石油生產領域,特別是一種基于時間序列的油井油液含水率多模型預 測方法。
【背景技術】
[0002] 油井油液的含水率是油田生產的一個重要指標,不僅關系到油井的開發(fā)壽命,還 關系到企業(yè)的經濟效益問題。因此,對其進行準確測量對計量油井產量、評價油藏的開采價 值和采出程度、制定開采方案等具有極其重要的意義。目前對油井油液含水率的測量仍普 遍采用人工取樣再蒸饋的方法,由工人定期到油井進行人工采樣,然后將油液送回技術部 口進行實驗分析,運種方法費時費力、影響生產監(jiān)控和采油數據的實時性,不能根據油井的 實際生產狀況及時制定或調整合理的開采方案。
【發(fā)明內容】
[0003] 本發(fā)明的目的是為了提供一種解決現(xiàn)有油井油液含水率人工取樣費時費力、影響 生產監(jiān)控和采油數據的實時性的問題的基于時間序列的油井油液含水率多模型預測方法, 利用已有的歷史一段時期的油井油液含水率數據預測下一個時間點的含水率數據。
[0004] 本發(fā)明的技術方案是:
[0005] -種基于時間序列的油井油液含水率多模型預測方法,其特征在于,包括如下步 驟:
[0006] 1 )、利用歷史數據建立油井油液含水率數據集為{xi,1 = 1,2,…,N},所述油井油 液含水率數據集內數據按照時間點的順序排列,所述時間點的單位為日或月,根據油井油 液含水率數據集中數據的排列順序,記錄油井油液含水率數據集中各數據的排列序號為 (indexi,i = l ,2,... ,Ν};
[0007] 2)、采用小波分析方法對油井油液含水率數據集{xi,i = l,2,···,Ν}中的數據進行 預處理,由Mallat算法對{χι4 = 1,2,···,Ν}中的數據進行Ξ層小波分解,得到小波分解序 列林:。"},其中:表示對{xi,i = 1,2,…,Ν}中的第1個數據進行小波分解 后的第Ξ層低頻分量,xfsS、xfAi和分別表示對^1,1 = 1,2,一,《中的第1個數據進 行小波分解后的第Ξ層、第二層和第一層高頻分量;經過小波分解后,1x1,i = 1,2,…,N}中 的每一個數據由所對應的)代替,小波分解后的數據集由{xi}Wav6表示. [000引3)、由近鄰傳播聚類算法將{Xi}Wave進行分類,再根據{xjWave所對應的數據的排列 序號{indexi,i = 1,2,···,N}將油井油液含水率數據集中的數據劃分到各個分類中,形成K 個聚類,Κ> 1;
[0009] 4)、將每個聚類中的數據按照各個數據的原始的排列序號{indexi,i = l,2,…,Ν} 進行排列,然后將每個聚類中的數據由如下時間序列形式進行表示:
[0010] 乂;=掉,攝,"',冷。,-,)山其中,日=1,2,...,1(,* = 1,2,...,1,111為嵌入維數,1為延 遲時間,M=N-(m-l)τ;將每個聚類的時間序列的輸出表示為:r =冷;
[0011] 5)、根據極端學習機算法建立每個聚類的時間序列模型,該模型的輸入和輸出分 另IJ為早巧護,對于K個聚類,共有K個ELM模型,那么由輸入共得到K個輸出值Γ,認為運K個 輸出值是由每一個聚類中的數據所預測出的下一個值,將其排列序號分別標記為{index "max+l },其中,index%ax表示第α個聚類中最大的排列序號;將排列序號標記為{indexdmax+l} (indexmax辛N,d = 1,2,…,K-1)的K-1個輸出值Ytd(d = 1,2,…,K-1)按照排列序號的大小順 序由小到大重新排列,構成新時間序列的數據集{ A d} (d = l,2,…,K-1),然后將其表示為 新時間序列的輸入:Tt=[ At, Δ*+τ,···, At+(m-i)T],其中,t = l,2,…,M,M = N-(m-l)T,新時 間序列的輸出表示為:Λ t= Δ t+wm-ih,將Γ t和Λ t分別作為新時間序列的輸入和輸出,并 根據極端學習機方法再建立新的時間序列模型,計算得到At輸出值;將新時間序列的輸出 值八t與排列序號標記為{indeχαmaパ}(indeχαmaχ = N)的輸出值r取平均值最終得到預測 值。
[0012] 上述的基于時間序列的油井油液含水率多模型預測方法,步驟2)具體如下:
[0013] 2.1、首先根據公式(1)對數據集^1,1 = 1,2,-,,《進行分解:
[0014]
[001引其中,J = 0,1,2;聳% =馬;Η和G分別為分解低通濾波器和分解高通濾波器;
[0016] 2.2、然后根據公式(2)進行重構:
[0017]
[001引其中,Η*和護分別為Η和G的對偶算子;
[0019] 那么,油井油液含水率數據集Ui}中的數據XI經過Ξ層小波分解后表示為: 皆》6 =(擇'\為^3,皆^,掙),其中:i二1,2,…,N,由皆aw構成的數據集表示為{xjwave。
[0020] 上述的基于時間序列的油井油液含水率多模型預測方法,步驟3)利用近鄰傳播聚 類算法將{Xi}Wav6進行分類的具體過程為:
[0021] 3.1、由經過;層小波分解后的數據集{Xi}Wave計算相似度矩陣S,{xi}Wave中的兩個 數據χΓ和皆"'6的相似度S扣由公式(3)進行計算:
[0022]
[002;3]其中,聲"6和滯"6分別表示數據.兮"W和Λ-Γ'Ρ的第1維;
[0024] 那么,相似度矩陣S表示為:
[0025]
[0026] 其中,Ρ為偏向參數,Ρ的初始值取所有初始相似度值的均值;
[0027] 3.2、設定吸引度矩陣R=hh巧日歸屬度矩陣A=扣h},分別表示為:
[0030] 其中,{Tjh巧P{ajh}的初始值為0;
[0031] 3.3、設定最大迭代次數MaxLoop,吸引度矩陣R和歸屬度矩陣A按照如下公式進行 迭代:
[0036] 其中,k=l,2,…,N,k為數據集{Xi}Wave中數據聲W的下標,xfw表示候選聚類中 屯、,j辛h辛k;
[0037] 3.4、當滿足最大迭代次數MaxLoop后,迭代過程終止,判斷兩矩陣R和A的對角線元 素之和,如果滿足m+akk>0,那么選擇聲""6為聚類中屯、.
[003引3.5、確定1(個聚類的聚類中必權^^6滬后,根據公式(3)分別計算數據集^1}"3'6中 除CC'e)K外的每個數據與K個聚類中屯、(社'"'?'的距離,將數據集{xi}Wave中除(詩'"'中外的 每個數據歸入與它距離最小的聚類中屯、(過'awf所屬的類中,完成數據集{xi}Wave中數據的 分類。
[0039] 上述的基于時間序列的油井油液含水率多模型預測方法,步驟5)中利用極端學習 機算法建立時間序列模型的原理如下:
[0040] 設有W個訓練樣:Φ
庚中Uq為輸入向量,Vq為輸出向量,設定包含L個隱 含層,激活函數為f( · )W及模型的訓練輸出表示為9=^1,〇2,-,,〇。]了,那么61^1模型由如 下方程組進行描述:
[0041]
(11)
[0042] 其中,扣q為第1個隱含層神經元與第q個輸出神經元之間的連接權值;ωι為隱含層 神經元與輸入神經元之間的連接權值;bi為第1個隱含層神經元的偏置;
[00創(chuàng)如果訓練模型能W零誤差逼近W個訓練樣本,即有
那么對于式(11) 有下式成立,
[0044]
[0045] 那么ELM模型的數學描述可W改寫成如下矩陣形式:
[0046] 地=V (13)
[0047] 式(13)中,有:
[004引
[0049] Η為隱含層輸出矩陣,ω和b在初始化時隨機給定,那么,ELM模型的訓練可W轉化 成一個求解非線性方程最小值的問題,即:
[0050]
(15)
[0051] 輸出權值矩陣護可W由下式求出,
[0052] 護= H+V (16)
[0化3] 其中,H+為隱含層輸出矩陣Η的Moore-Penrose廣義逆;
[0化4] 那么,ELM的訓練過程可W歸納為如下最優(yōu)化問題:
[0化5]
[0056] 其中,g( ·)表示由ω和b所決定的函數,g(w,b)表示當ω和b分別取不同值時的 函數輸出值,ELM訓練的目的就是找到最優(yōu)的護,使模型的訓練輸出值Cq和真實值Vq之間的 誤差最??;
[0057] 對于激活函數f( ·)的選擇,采用高斯函數和Sigmoid函數的集成方式,f( ·)的定 義如下:
[0化引
[0059]其中,U表示輸入向量,λ£[0,1]為權值,為高斯函數的寬度參數;
[0060] 基于此,建立時間序列模型的計算步驟如下:初始化,隨機生成隱含層輸入權值 ω,隱含層神經元的偏置b,高斯函數的寬度參數和權值λ;根據公式(14)計算隱含層輸出 矩陣Η;根據公式(16)計算輸出權值矩陣護;根據公式(17)計算函數輸出值。
[0061] 上述的基于時間序列的油井油液含水率多模型預測方法,建立時間序列模型的過 程中,采用改進的蛋火蟲算法對m、T、ω、b、〇2和λ的取值進行優(yōu)化選取,將m、T、ω、b、〇2和λ看 作一組解向量,即每個"蛋火蟲"為1X6維向量,其中6維變量分別為m、T、Q、b、〇2和λ,計算 步驟如下:
[0062] 第一步,產生初始"蛋火蟲'群體,表示為:化,F(xiàn)2,…,F(xiàn)npdp},其中:NpDp表示初始"蛋 火蟲'群體中"蛋火蟲'的數量;
[006:3]第二步,計算每個"蛋火蟲'的亮度,表示為:{Ii,12,…,Inpdp};
[0064]第Ξ步,每個"蛋火蟲"向比它亮度更大的"蛋火蟲"移動,根據公式(22)-公式(24) 進行位置更新,
[00化]巫i(Itenum+l) =巫(Itenum)巧(ε) · (Wbest(Itenum)-巫(Itenum))+C · (rand-0.5) (22)
[0066] 巫2(Itenun什1)=巫(Itenum)+ri(e) · (Wsectest(Itenum)-巫(Itenum))+C · (rand-0.5) (23)
[0067]
[006引
[0069] 其中,ξ表示步長,ξ e [0,1 ];rand為[0,U上服從均勻分布的一個隨機數;Wbest為 亮度最大的"蛋火蟲",Wsetbest為亮度大小次于Wbest的"蛋火蟲";Itenum表示IFA算法運行 過程中迭代的次數;Φ (Itenum)表示。蛋火蟲"在第Itenum次迭代時的位置,