郝小龍,高國寅,王偉,楊誠
(西安石油大學(xué)電子工程學(xué)院,陜西西安 710065)
測井是油氣勘探與開發(fā)的“眼睛”,聲波測井在地層評價、儲層改造和隨鉆地質(zhì)導(dǎo)向等方面發(fā)揮著重要作用[1-2]。隨著探測深度和精度的提高,聲波測井的數(shù)據(jù)量越來越大,給實時上傳和高效測井帶來了巨大挑戰(zhàn)[3]。對數(shù)據(jù)進行井下處理是一種有效的途徑。
在聲波測井中,使用較多的數(shù)據(jù)處理算法有深度校正、增益還原和噪聲濾波等預(yù)處理算法[4],全波列中求取縱橫波時差的慢度-時間分析、頻譜分析等算法[5-7],處理反射波的波場分離和偏移疊加算法[8-9]以及用于增強方位分辨率的相控陣接收算法等[10]。這些算法大多在PC 機中對測井后的數(shù)據(jù)進行處理,未考慮算法的運行時間和內(nèi)存占用量,不能作為測井過程中的井下實時處理算法。必須開發(fā)井下儀器硬件支持、滿足測井時效性的井下實時處理算法。
上位機軟件是開發(fā)井下處理算法的重要輔助工具,甚至是算法的必要組成部分。本文在分析井下處理算法開發(fā)流程的基礎(chǔ)上,提煉了上位機軟件需要具備的功能,設(shè)計了測井數(shù)據(jù)轉(zhuǎn)換、USB 文件傳輸和數(shù)據(jù)處理三個模塊,并使用實際測井數(shù)據(jù)和井下算法驗證系統(tǒng)前端機對上位機軟件進行了測試。
聲波測井井下算法驗證系統(tǒng)的總體框架見圖1。系統(tǒng)主要包括前端機和上位機兩部分,二者通過USB線連接。前端機是系統(tǒng)的核心,實現(xiàn)相應(yīng)的井下處理算法,它通過USB 接口與外部交換數(shù)據(jù)。為了確保井下算法的可行性和可移植性,前端機使用的處理器與井下儀器相同,一般為數(shù)字信號處理器(DSP)或者現(xiàn)場可編程門陣列(FPGA)。上位機主要包括文件轉(zhuǎn)換、USB 傳輸和數(shù)據(jù)處理三個模塊,其中文件轉(zhuǎn)換模塊實現(xiàn)測井數(shù)據(jù)文件的解析和轉(zhuǎn)換,USB 傳輸模塊與前端機進行通信,數(shù)據(jù)處理模塊對算法的效果進行驗證和評價。
圖1 井下算法驗證系統(tǒng)總體框架
開發(fā)井下處理算法主要包含以下幾個流程:(1)上位機文件轉(zhuǎn)換模塊先將實際測井數(shù)據(jù)轉(zhuǎn)換成前端機能夠識別的數(shù)據(jù)格式,然后通過USB 傳輸模塊發(fā)送到前端機中。(2)前端機運行井下處理算法,對接收到的測井數(shù)據(jù)進行處理,將處理結(jié)果通過USB 接口回傳給上位機。(3)上位機對經(jīng)過前端機處理后的數(shù)據(jù)進行二次處理,分析與評價井下算法的效果。
聲波測井井下處理算法的上位機軟件開發(fā)在VS2010 環(huán)境中進行,主要包含三個模塊:文件轉(zhuǎn)換模塊、USB 傳輸模塊和數(shù)據(jù)處理模塊。
文件轉(zhuǎn)換是根據(jù)輸入文件的數(shù)據(jù)記錄格式,將其轉(zhuǎn)換成所需格式的新文件[11]。井下算法驗證系統(tǒng)中的文件轉(zhuǎn)換模塊見圖2,它能夠?qū)⒉煌瑑x器測量的不同記錄格式的聲波測井數(shù)據(jù)轉(zhuǎn)換為井下算法驗證系統(tǒng)前端機能夠識別的數(shù)據(jù)文件,為后續(xù)的井下處理算法開發(fā)提供測試數(shù)據(jù)。
圖2 文件轉(zhuǎn)換模塊
文件轉(zhuǎn)換模塊由文件輸入、文件輸出和文件回放三個功能子模塊組成。文件輸入子模塊中可以導(dǎo)入聲波測井原始數(shù)據(jù)文件,并識別出數(shù)據(jù)所對應(yīng)的起始深度、終止深度和采樣間隔,供文件轉(zhuǎn)換使用。文件輸出子模塊根據(jù)井下算法驗證系統(tǒng)前端機所需的數(shù)據(jù)內(nèi)容和格式,選擇導(dǎo)出數(shù)據(jù)的深度、站和道,進而實現(xiàn)聲波測井數(shù)據(jù)文件的格式化輸出。文件回放子模塊主要用于快速檢查測井文件和數(shù)據(jù)的質(zhì)量[12]。該模塊可以選擇回放文件的類型并在繪圖區(qū)顯示波形。若是選擇“輸入”類型,則文件回放輸入子模塊中的原始數(shù)據(jù)文件;若是選擇“輸出”類型,則文件回放輸出子模塊轉(zhuǎn)換得到的導(dǎo)出文件。此外,通過調(diào)用定時器功能,可以設(shè)置文件回放的周期。
文件傳輸模塊基于USB 2.0 協(xié)議設(shè)計,實現(xiàn)了上位機與前端機之間的雙向通信,進行井下算法處理前后的數(shù)據(jù)交換。設(shè)計的文件傳輸模塊見圖3,該模塊在USB 設(shè)備初始化的基礎(chǔ)上實現(xiàn)了數(shù)據(jù)文件的下傳和讀取兩個功能,并顯示傳輸狀態(tài)。
圖3 文件傳輸模塊
USB 設(shè)備的初始化調(diào)用Cypress 公司提供的庫文件CyAPI.lib 和相應(yīng)的控制函數(shù)CyAPI.h、cyioctl.h 來創(chuàng)建USB 設(shè)備結(jié)構(gòu)體,打開USB 設(shè)備以及初始化設(shè)備端點,獲取USB 設(shè)備的連接數(shù)目與名稱等信息[13-14]。本設(shè)計中,USB 設(shè)備與前端機連接正常后,該模塊顯示連接狀態(tài)和該設(shè)備的PID 和VID。
文件下傳子模塊通過USB 接口,將算法處理系統(tǒng)前端機能夠識別的處理前數(shù)據(jù)文件傳入前端機。而文件讀取模塊接收來自前端機處理后的數(shù)據(jù)文件。文件下傳和讀取是以512 字節(jié)的數(shù)據(jù)包為單位進行的。每個數(shù)據(jù)包中,前511 個字節(jié)為測井數(shù)據(jù),最后一個字節(jié)為校驗和。文件傳輸?shù)臓顟B(tài)使用傳輸速度和誤碼率來表示,其中誤碼率的計算是通過上位機和前端機對收發(fā)的數(shù)據(jù)包進行校驗實現(xiàn)的。文件傳輸完畢后,若誤碼率不為0,則重新傳輸該文件。
數(shù)據(jù)處理模塊是上位機軟件中的可擴展模塊,可根據(jù)需要隨時增加處理功能。該模塊可以實現(xiàn)井下處理算法的驗證功能甚至作為算法的必要部分。針對參數(shù)計算一類的算法,該模塊可以使用相同程序進行算法效果的驗證。而對聲波測井數(shù)據(jù)壓縮算法來說,上位機的數(shù)據(jù)處理模塊是必不可少的組成部分。該算法的壓縮部分在井下儀器的處理器中實現(xiàn),而解壓縮功能在上位機中完成。
本設(shè)計對文件轉(zhuǎn)換模塊和傳輸模塊分別進行了測試。測試文件轉(zhuǎn)換模塊時,先依次執(zhí)行文件導(dǎo)入和文件轉(zhuǎn)換操作,將聲波測井原始數(shù)據(jù)文件轉(zhuǎn)換為前端機識別的數(shù)據(jù)文件,然后對兩個文件分別進行回放。結(jié)果顯示,文件轉(zhuǎn)換模塊的3 個子模塊均能正常工作,回放的一道波形見圖4。
圖4 文件回放結(jié)果圖
傳輸模塊的測試是通過在前端機和上位機之間傳輸1 GB 的數(shù)據(jù)文件進行的,其中前端機的處理器為FPGA。測試表明,該文件傳輸?shù)南聜魉俣瓤蛇_43.36 MB/s,上傳讀取速度可達34.78 MB/s,誤碼率均為0。這表示文件傳輸模塊是正常的。
對數(shù)據(jù)進行井下處理是實現(xiàn)聲波測井實時上傳和高效測井的有效途徑。上位機軟件是開發(fā)井下處理算法的重要輔助工具,甚至是算法的必要組成部分。
本文設(shè)計了包含測井數(shù)據(jù)轉(zhuǎn)換、USB 文件傳輸和數(shù)據(jù)處理三個模塊的上位機軟件,實現(xiàn)了測井原始數(shù)據(jù)的格式轉(zhuǎn)換與快速傳輸功能,滿足了開發(fā)井下數(shù)據(jù)處理算法的上位機需求。該上位機軟件有利于加快聲波測井井下處理算法的開發(fā),從而為提高測井速度和實現(xiàn)降本增效服務(wù)。