郭榮佐,黃 君
(1.四川師范大學 計算機科學學院,四川 成都 610101; 2.四川工商職業技術學院 經濟管理系,四川 都江堰 611830)
鉆井工程是涉及到諸多主題和大量數據的一種技術密集型的工程。鉆井數據進行實時采集、通信和管理,對鉆井企業而言,可提高鉆井效率和降低鉆井成本而提高企業利潤。而隨著信息和通信技術(information and commu-nication technology,ICT)的發展和應用,各類鉆井平臺也應采用信息和通信技術進行裝備,以實現鉆井現場數據的實時采集。在ICT中的物聯網及其感知技術,為鉆井平臺的數據采集提供了新的發展契機。對鉆井平臺進行隨鉆和井場的實時數據采集,可實時掌控鉆井時的各種工況,對提高鉆井效率和保障安全生產等具有重要意義。
對鉆井及其平臺的數據采集進行研究,國內外研究者們已有相關研究成果。文獻[1]利用ZigBee技術,并結合CAN總線,實現對空氣鉆井監測系統進行設計與實現。文獻[2]利用鉆井現場的傳感器進行現場數據采集,主要就數據采集管理系統進行了研究,但該文獻對鉆井現場感知部分,僅簡單進行了描述,而對如何感知、怎么采集的硬件部分未進行描述。文獻[3]利用“互聯網+”,對鉆井平臺進行設計,并對信息流和能量流進行優化。文獻[4]對鉆井平臺自動化和自動節流管匯進行了設計,對鉆井現場數據采集與分析具有很好的參考價值。文獻[5]對鉆井進行更加有效的監控,設計一種具有無線測井的鉆井監控系統,并結合無線傳感器技術和相關測量技術,實現無線測井。文獻[6]對石油鉆井數據管理進行研究,提出了基于數據分發服務技術的石油鉆井數據管理優化解決方案,且該方案基于實時數據管理的服務質量。這些研究,幾乎都是應用ICT于鉆井工程,為進一步研究鉆井平臺數據采集,提供了有益的參考,但鉆井平臺一般置于野外,若采用有線方式進行數據采集,勢必帶來如安裝維護難、攜帶不便和成本高等缺點。
雖有文獻采用無線方式進行數據傳輸,但未考慮無線方式和本地化管理等的服務質量問題;亦有文獻從數據管理的角度研究鉆井管理信息系統的服務質量,但未針對隨鉆和井場數據采集端的服務質量問題。因此,利用物聯網及其感知技術,設計一種隨鉆和井場進行實時數據采集和無線傳輸的鉆井平臺數據采集系統,并對感知節點、網關和監控主機的軟件進行設計,同時對軟件的QoS(quality of service)進行基于虛擬化感知即服務理念的優化與仿真。
對鉆井平臺,需要采集的實時數據較多,如隨鉆數據采集、井口數據采集和鉆井機數據采集等等。本系統主要完成鉆井平臺的數據采集,主要包括隨鉆數據采集、井口各種監測數據采集和鉆井機監測數據采集。其系統總體架構如圖1所示。

圖1 系統總體架構
隨鉆感知是通過圖1中的隨鉆傳感器節點予以實現,以采集隨鉆數據。隨鉆數據采集部分,主要通過隨鉆傳感器,采集井里的瓦斯氣體濃度、溫度、濕度、氧氣,還對鉆井液體積、密度進行采集。隨鉆感知到的數據,由于井位于地下或其它較為深遠的山、海下,其傳輸只能采用現場總線,現場總線將數據傳輸到井口,再由鉆井現場的總線轉ZigBee協議的設備進行無線化。
由圖1可知,井口也需要采集數據,以便對鉆井平臺進行完整的檢測,進而實現有效控制和精準操作[7]。井口主要采集的數據可分為吊鉆大鉤壓力數據、排沙管通暢程度、儲沙池中沙漿高度、壓縮空氣進入管道的氣壓、環境溫度濕度和立體主循環管道的暢通程度等。同樣,鉆井機及附屬也需要進行數據采集。對鉆井的數據采集主要有發動機的轉速、功率、帶動鉆桿的轉動扭矩和油箱油量等;對鉆井井場的空壓機,也需要進行數據感知與采集,主要采集排氣的溫度、空氣儲罐的溫度與壓力和管道的流量等。井場的數據感知,采用信息采集處理加ZigBee協議收發結構,用專用處理器進行數據處理,無線發送與接收裝置進行收發,并與匯聚節點或網關進行通信。而監控主機則通過專用ZigBee網關,將感知節點傳輸而來的ZigBee協議數據,解析并轉換為TCP/IP協議數據,并通過防火墻與衛星調制解調器連接,將監控主機實現與遠程端進行鏈接;調試解調器連接衛星收發天線。
系統硬件主要是指各種感知節點和ZigBee網關的硬件。由總體結構可知,系統的感知分為隨鉆感知和井場感知,故節點亦分為隨鉆節點和井場節點。
隨鉆節點由傳感器、微控制器和總線模塊等構成,傳感器將隨鉆數據進行采集,由微控制器進行處理并交由總線模塊進行傳輸;總線將信息傳輸到ZigBee協議轉換節點。因此,本部分的感知節點,僅針對井場的其它數據感知節點。
在此以井場壓縮空氣進入管道后的氣壓監測為例進行設計,其它感知節點類似。
在空壓機產生壓縮空氣時,空壓機端能夠進行輸出空氣壓力顯示,但進入管道后,壓力存在一定的損失,就需要在管道里面進行氣壓的采集,以便及時調整空壓機的輸出流量[8]。管道氣壓檢測采用PMP131傳感器(Endress+Hauser公司,恩德斯·豪斯,簡稱E+H公司),該傳感器為壓敏電阻式壓力傳感器,且具有金屬隔離膜片,其量程為0 MPa-60 MPa,具有高穩定性和可靠性,同時具有良好的重復性、長期穩定性和高過載能力,非常適合于工業較高壓力測量。
本系統采用Endress+Hauser公司PMP131壓力傳感器中的兩線制電流型,其輸出電流為4 mA-20 mA。采用多點采集,即在壓縮空氣管道內壁,多個點位安裝PMP131壓力傳感器,將各個傳感器的輸出信號使用屏蔽線,輸入到ZigBee處理模塊,其具體結構如圖2所示。其中,ZigBee芯片選用美國TI公司的CC2530,并使用CC2591對其信號進行擴展,以使收發端的無線信號更強。在電源方面,使用充電式鋰電池與太陽能板一起構成感知部分的電源模塊,傳感器本身電源使用專用電源線路。

圖2 井場壓縮空氣感知原理框架
太陽能電池板使用單晶體硅太陽電池片,其輸出壓降為5.5 V、電流為140 mA/h-160 mA/h,尺寸為90ms×90ms。采用上海如韻電子科技有限公司的太陽能板供電的單節鋰電池充電管理芯片—CN3063,同時使用該公司的極低功耗電池電壓檢測芯片—CN301;這兩個芯片在本系統中,用作充電和放電的管理與保護芯片,且放電保護時與LM1117-3.3芯片一起構成感知節點的電源模塊,其具體電路原理如圖3所示[9]。

圖3 太陽能-鋰電池充電電路及放電保護電路
ZigBee網關是本系統的核心設備之一,主要完成ZigBee信號到以太網或其它形式的轉換,以便在系統控制端實現對系統的控制。ZigBee網關采用ARM Cortex-A8作為核心處理器,外接SD卡、以太網絡控制器兩個、相應的存儲器芯片和CC2530芯片等構成,其具體原理框架如圖4所示。

圖4 ZigBee網關原理框架
隨鉆感知數據經總線后,需要轉為ZigBee協議的信息,其原理框架與圖2相似,唯一差異在于輸入信號為總線信號,接口芯片為相應的總線控制芯片(如使用Can總線,則可用Philips公司的PCA82C250芯片作為接口芯片),替代氣壓傳感器,接收總線傳輸來的信號,利用CC2530和CC2591將信號轉換為ZigBee信號。同樣,感知匯聚節點不再進行描述。
在設計完硬件后,對系統的各種軟件,如感知節點軟件、監控主機軟件,進行設計。在此僅對感知節點及網關的軟件流程進行設計。
系統軟件部分包含內容較多,主要有感知節點的軟件、ZigBee網關的軟件和監控主機的軟件。其中感知節點的軟件部分,無論是井場感知節點,還是隨鉆感知轉換,其軟件差異在于感知到的數據傳輸方式不同而已。
對感知節點軟件,采用Z-Stack協議棧+Tiny OS操作系統,在用Nes C編程[10]。對感知節點而言,軟件啟動之初,首選屏蔽所有中斷源,進入節點的芯片級、板載級和系統級的硬件初始化,然后進行Tiny OS的初始化及其相關設置,再進入事件處理的循環,其具體軟件流程如圖5(a)所示。
如圖5(b)所示,為感知節點的井場感知和隨鉆感知轉ZigBee協議數據的具體數據處理流程圖[11]。依據Tiny OS操作系統的相關規范,應用Nes C進行程序設計時,數據處理依事件觸發而進行調度,從而實現感知數據轉ZigBee協議數據;圖中虛線表示UART(universal asy-nchronous receiver/transmitter)數據流動方向。

圖5 感知節點及網關軟件流程
網關軟件主要完成與后端監控主機交換感知信息,同時還要與各匯聚節點間進行ZigBee通信來實現感知數據的傳輸和監控主機命令的下達。網關在完成初始化后,即刻進入監聽ZigBee網絡狀態,并等待外部事件中斷的發生,通過判決中斷事件是否為感知型,來確定相應的處理過程。若網關收到的為以太網數據,則判決是否為監控主機下達的管理命令;若通過匯聚節點收到感知數據,則對感知數據進行解析,解析后轉發到監控主機[12]。其具體流程如圖5(c)所示。
監控主機通過網絡連接控制中心,一方面要將感知數據通過網關進行采集,另一方面要將相應的命令通過網關下達給感知節點和上傳現場感知信息給遠程控制中心。物聯網是一種新的數據交互模式,可實現多個智能感知對象間的遠程鏈接,使得任何可感知的對象均能相互獨立的實現信息交互;同時,避免了潛在的大規模崩塌和癱瘓風險,而提高系統的可信性[13]。因此,在監控主機的軟件部分,使用基于物聯網的QoS優化的虛擬感知即服務技術,以使各個感知節點的QoS最優化。
為便于處理感知節點通過ZigBee方式傳輸而來的感知信息,采用基于感知即服務的虛擬化框架來處理感知信息。在框架中,屏蔽了用戶與感知節點的直接聯系,并以最大限度的透明度來提高服務的QoS質量。前端感知節點構成的物聯網與后端遠程中心之間通過OpenIoT實現服務集成;對遠程中心而言,通過OpenIoT實現了完整的智能云特性,且集成了需求效用、感知數據和遙感等服務[14]。圖6 為基于此設計的系統監控主機軟件框架圖,該圖主要基于物聯網QoS優化的虛擬感知即服務技術,框架能夠處理各種感知數據和遠程中心的請求,相應請求時隱藏了極其復雜的處理細節。由圖6可知,該框架按照層次結構,給出了感知層、語義層、回溯搜索優化算法層和感知即服務虛擬層,應用程序建立于感知即服務虛擬層之上。

圖6 監控主機軟件框架
感知層通過OpenIoT和ZigBee網關,與井場感知節點、隨鉆感知節點和其它感知節點建立感知數據,且通過數據庫管理各種感知數據。感知層相當于一個輕量級的服務總線,用于進行現場感知數據的表示和與上層進行數據信息的交互。通過感知層能完善服務,增加新的定制服務和新感知節點時,無需改變監控主機軟件而能方便進行新服務的集成,即該層基于發布/訂閱模型來增加物聯網與感知層的透明性。
語義層采用面向服務思想以統一整個監控主機軟件框架。該層提供語義模型,來查找、共享和翻譯下層所傳輸來的數據,主要解決描述、解釋和利用下層信息和事件;能提供獨立的服務;能處理異構信息和數據、能完成與上層交互與兼容;為感知層提供訪問安全策略。而回溯搜索優化算法層,該層的目標是實時提高框架服務性能,主要通過以下3個方面來實現:一是對下層輸入的各種服務請求進行過濾和向上層輸入的服務請求;二是對各種服務的QoS進行計算和度量,并按照相關約束條件,如可用性、可靠性和響應時間,進行服務排序;三是為上層提供最優化QoS服務解決方法;該層具體算法及其仿真驗證,將在下一個部分予以詳細論證。感知即服務虛擬層主要功能是將應用程序輸入的各種同構、異構的服務請求,進行服務創建和組合,使服務的QoS達到最優化,同時將感知數據進行虛擬化。
應用程序建立在感知即服務虛擬層之上,主要為監控主機提供各種操作界面和應用處理程序。應用程序生成各種服務請求,提交給感知即服務虛擬層進行處理,而完成對鉆井現場的監控和遠程中心的實時處理等工作。
上文所述,回溯搜索優化算法層的主要目的是依據各種請求的優先級進行請求過濾和重新建立隊列,且為上層提供服務QoS優化算法。因此,本部分將對算法進行設計和仿真驗證,同時對監控主機的數據采集軟件進行實現。
回溯搜索優化算法(backtracking search optimization algorithm,BSOA)是文獻[15]中提出的一種基于種群的新型進化算法。在此,將BSOA算法應用于物聯網感知領域,以提高本系統監控主機軟件框架的性能。
定義1 設G=(V,R) 為一幾何隨機圖,則G表示感知節點的拓撲結構圖,其中:V表示n1個感知節點和n2個匯聚節點構成的感知頂點集合,V=Vn1∪Vn2={vi,vj} 且?≠0,i,j∈{1,2,…,N};

在物聯網感知服務的監控主機軟件框架中,任何服務都具有實時性要求[16]。感知服務S的最優QoS值,與定義1的R相關,即要求服務的可用性和可靠性最大,響應時間最短[17]。另一方面,物聯網中,服務S為串行服務SSm、 并行服務PSm、 分支服務BSm和循環服務CSm的最優組合,使得服務S的QoS值最大,即
(1)
因此,主要的目的是改進系統監控主機軟件框架的QoS屬性,使其達到最優化。
而每個服務,又可描述為服從定義1所定義的屬性指標,即
(2)
又由于服務SSi的可用性為s1,s2,…,sn所有服務均可用而得到的;服務SSi的可靠性也與服務s1,s2,…,sn中的每個均可靠才能使得其可靠;服務SSi的響應時間為s1,s2,…,sn所有服務的響應時間之和;由此得到
(3)
同理可得PSm,BSm,CSm, 在此就不再予以詳細描述。
因此,依據BSOA算法,得到基于BSOA算法的系統監控主機軟件響應時間算法流程如圖7所示,其具體步驟為:
步驟1 初始化。對初始種群的規模、交叉概率、搜索空間范圍和最大進化次數等進行初始化。初始化種群H為下層的歷史請求數量和新的下層請求數,即為
(4)
其中,HPR和NLR分別表示歷史請求數和新的下層請求數;i,k=1,2,…,M1,M1表示這群規模;j=1,2,…,A,A表示種群維數;lowj,highj分別為搜索空間的下限值和上限值;U(lowj,highj) 表示隨機函數,在此為均勻分布。

圖7 基于BSOA算法流程
步驟2 選擇I。選擇I的目的就是選擇一新的歷史種群。依據HPR中的歷史數據,利用式(2)、式(3)計算得到SSm服務最小值、次最小值等對應的服務,從而得到SSm服務響應時間由短到長的序列;并按照同樣的方法,得到PSm、BSm和CSm的序列;將此4個序列作為一個歷史種群H1, 直到該歷史種群發生改變。
步驟3 種群變異。依據新的請求數,重新組成請求隊列;從隊列取出請求,與H1一起重新構成歷史種群H2, 并對進行QoS屬性中定義1的Q檢查而進行變異。變異如式(5)所示
H3(s)=QoS(s2)+F·(QoS(s2)-QoS(s1))
(5)
其中,QoS(s) 服從式(1);s1,s2表示種群H1,H2的QoS屬性度量;F表示控制種群變異系數,其大小為F=3·RD,RD~U(0,1)。
若H3(s)≤b, 則轉為第一步;若H3(s)>b, 則繼續進行下一步;其中b為設定的閾值。
步驟4 種群交叉。BSOA的種群交叉是通過交叉率來控制兩種交叉方式,使其在等概率條件下,得到復雜的聯合交叉方法,其目的是得到新一代種群[18]。依據第三步得到的結果和BSOA算法,得到新的種群。新種群產生如式(6)所示
(6)
其中,Z是M1×A的整數矩陣,初值為1,由式(7)予以確定
(7)
式中:RD~U(0,1) 表示[0,1]上的均勻分布;cp為交叉概率,在此取值為1;m2,m3服從[0,1]均勻分布;由此得到規模受控的新種群T。
步驟5 選擇Ⅱ。由步驟3、步驟4,得到了新種群T和歷史種群H2, 然后依據類型進行選擇Ⅱ,即將T和H2中適應度值較好的個體Ti作為當前的最優解,否則進行種群更新并返回到步驟2。定義式(8)描述新種群T與歷史種群H2的最優解,即
(8)
又由前可得到適應度函數為
(9)
式中:M表示在新種群T和歷史種群H2中選取的樣本;Pi表示新種群T和歷史種群H2的統稱;F服從步驟3的定義。
步驟6 輸出最優解。輸出當前得到的最優解,繼續執行,直到達到最大進化次數才停止,并從輸出的結果中,將式(9)值最小的個體序列,作為整個算法的最優解。
由此,利用BSOA算法提高系統監控主機軟件相應時間,減少系統實時采集的計算時間[19]。接下來,對算法進行仿真實驗與分析,以驗證算法的有效性,從而提高健康主機軟件的可伸縮性和響應速度。
對設計的QoS算法進行實驗與仿真分析時,使用專業網絡實驗平臺NS2(network simulator version 2,NS2)和Matlab模擬器[20]。實驗時,將BSOA算法與GA(genetic algorithm)算法的性能進行比對,同時使用蟻群算法(ant colony algorithm,ACA)進行性能評價。Matlab模擬器主要評估BSOA算法、GA算法和ACA算法,在執行相同任務時的時間上的差異[21]。
實驗時,依據鉆井平臺所使用到的傳感器網絡類型和特點,建立基于特定按需距離矢量協議(hoc on-demand distance vector protocol,HODVP)的傳感器網絡區域。先基于HODVP,編寫實現GA算法、ACA算法和BSOA算法的代碼,建立一個可靠的具有QoS屬性約束的無線感知網絡;然后設置和調整網絡容量,使其感知節點由10個到100個,場景模擬時間為12 s。實驗主要比較不同感知節點下的平均感知任務結束延遲、吞吐率、數據傳輸率和抖動等。具體實驗與仿真結果如圖8所示。

圖8 3種算法實驗與仿真對比
由圖8可知,BSOA算法在任務平均結束時間延遲、吞吐率、數據傳輸率和抖動等方面,較GA算法和ACA算法而言,具有較好的優勢。另一方面,通過Matlab模擬器仿真的3種算法的時間復雜度,其比較圖如圖8(e)所示。
由上文設計可知,系統對鉆井平臺的隨鉆數據和井場數據進行感知與采集,而具體執行采集任務由相應的傳感器完成。
數據分為隨鉆感知和井場感知。在測試時,隨鉆數據主要有鉆井深度、瓦斯濃度、扭矩、進井液體速度、出井液體速度、進井液體密度和出井液體密度等。井場感知數據主要有鉆井發動機監測、空壓機數據感知和泥漿池等。
測試基于某高校鉆井實驗平臺進行數據采集,并微軟Visual Studio 2015集成開發系統,用微軟基礎類庫(Microsoft foundation classes,MFC)和Visual C++結合,利用前面設計的框架與模塊化并重的方式,開發系統監控主機測試軟件。界面如圖9所示,采用下拉菜單方式進行設計,主要有數據采集、系統設置和數據操作等功能。其中數據操作有當前數據識別、未來鉆井預測、鉆井約束條件、數據初步分析和鉆井事故預測。監控主機軟件啟動后,點擊界面中的“啟動”,則實時動態顯示各種感知數據;若點擊“停止”,則暫停實時動態顯示,而僅顯示停止時刻的各傳感器瞬態時值,但后臺自動記錄實時感知數據。

圖9 監控主機軟件界面
在圖9中,顯示了大部分傳感器的鉆井參數及其實時變化情況,顯示的參數間隔時間可設置,最小為3 s;并將數據自動進行保存于如表1樣式所示的數據文件中。
在監控主機軟件中,可實現對現場感知數據的初步分析和鉆井事故的預測,同時可對鉆井未來工況進行預測。通過對感知數據的分析,若發現鉆井現場存在事故可能,則啟動現場預警,并指示某個感知數據異常。若對隨鉆感知數據進行分析,可預測鉆頭損壞與裹死情況、鉆桿斷裂情況、鉆具是否卡死和鉆井液漏失與溢流等。如圖9右邊曲線所示,為所選擇的某個傳感器感知數據的實時變化曲線;截圖為泵壓力感知曲線。若泵壓力和扭矩都增大,且數據曲線急劇波動,鉆機轉速先上升后加劇下降,泵壓力導致鉆壓力波動非常劇烈,則為鉆頭損壞。由此,要預測某種鉆井事故,必須對多個感知數據進行綜合分析,而得到鉆井事故預測結果;監控主機軟件對鉆井事故預測樣式表格見表2。

表1 監控主機保存數據樣式

表2 鉆井事故預測情況
利用物聯網感知技術,對鉆井平臺的數據采集進行設計。對鉆井現場數據采集系統的總體結構進行了設計,還對各種感知節點、隨鉆感知節點和ZigBee網關等的硬件進行了設計;對感知節點、網關和監控主機等軟件進行了設計,并對監控主機軟件進行了實現。利用基于物聯網的QoS優化的虛擬感知即服務技術,對系統監控主機軟件進行層次化設計,并對監控主機的軟件服務QoS進行回溯式搜索優化算法,提高感知即服務的質量和時間響應特性,在QoS的延遲、分組投遞率和吞吐量等方面的仿真實驗結果表明,該算法對提高系統監控主機的實時性。