王 輝
中國石化河南油田分公司研究院,河南南陽 473132
Oracle數據庫與油藏模擬的集成應用研究
王 輝
中國石化河南油田分公司研究院,河南南陽 473132
隨著我國部分油田進入高含水開發后期,油藏數值模擬技術的應用也越來越深入細致,而由此需要處理的數據量也越來越大、越來越復雜。本文通過對數據庫與數值模擬工作的結合應用問題加以研究探索,利用PRO*C和Oracle數據庫技術在Unix平臺下對兩方面的結合加以研究,從而可以提高生產、科研工作效率。
油藏模擬;PRO*C;oracle數據庫
如何提高油田最終采收率,尋找剩余油分布,尋求最佳布井方案,獲得好的注聚效果以及最佳的蒸汽吞吐周期,得到高的投資回報率等等,這一切的一切離不開油藏數值模擬技術,它也是國內外油田開發中后期尋找剩余油分布指導方案部署通用和慣用的技術手段。油田開發數據庫建設已經進行了很多年,在科研生產中的應用葉越來越多,整個系統逐漸成熟起來,將之與數值模擬技術的結合應用前景廣闊。
按照傳統的UNIX交互界面模型進行設計,用主菜單加多分支判斷語句switch連接而成。ORACLE數據庫查詢程序用Pro*C語言編制,由靜態數據查詢、動態數據查詢、生成ECLIPSE文件、生成CMG文件、數模成果建檔入庫、數模成果瀏覽查詢、用戶使用幫助等幾個模塊組成。
建立于ORACLE數據庫連接的設計思路的設計過程中,采用了經典的設計方法,其設計思路與流程如下主程序與連接服務器模塊數據通過輸入數據庫服務器名、unix用戶名、ORACLE用戶名、ORACLE用戶口令dbasepw,連接服務器執行碼以及數據查詢執行碼,連接到ORACLE數據庫發送執行碼信息,結果返回到log.msg記錄中,以判定是否正確。
2.3.1 查詢子模塊設計
查詢數據的模塊,包括動態數據查詢和靜態數據查詢以及對專門的數模成果庫的查詢,3個子功能的設計思路是一樣的,數據查詢子程序的職能是利用開發數據庫系統用戶sjk查詢數據庫的表數據。該數據查詢子程序由3個獨立的Pro*C程序組成,分別查詢4個表:daa02、daa05、dba04、dba05。表數據由以井名為代表的數據記錄組成,一口井一個記錄,一個記錄由表示井的與表屬性相關數據組成。因此數據查詢時要給出表名、井名以及數據名。
2.3.2 文件生成模塊設計
文件生成模塊由主程序和數據予處理子模塊組成,它的職能是分別生成CMG、VIP、ECLIPSE數模軟件的靜態、動態輸入數據文件。由于ECLIPSE等數模軟件數據的特殊性,首先要對這些數據格式進行分析,,雖然3個數模軟件的動態數據格式不同,但它們的數據組成規律相同,都是以井為一數據段且按順序排列。針對各種數模軟件的數據格式類型,調整轉換機制,生成數模軟件的靜態、動態輸入數據文件。雖然3個數模軟件的動態數據格式不同,但它們的數據組成規律相同,都是以井為一數據段且按順序排列。針對各種數模軟件的數據格式類型,調整轉換機制,生成所需的靜態、動態輸入數據文件。
數模成果是指應用不同數模軟件完成歷史擬合以及各開發方案預測的計算結果,該結果由一系列數據文件組成。針對數模成果的這種特點,確定了數模成果數據庫的性質,即以軟件名、數模區塊名分類存放的文件庫,成果數據的錄入、瀏覽以及提取以文件組的形式進行。
利用SUN的Solaris操作系統命令創建數模成果數據庫:
1)在數模成果數據庫的home目錄/SMSJK下創建一個成果錄入記錄文件;
2)建立文檔說明文件;
3)在數模成果數據錄入時自動將系統時間加在文件后如sh320091120,用來避免文件名重名造成的錯誤。
在Solaris系統終端對話框中,命令提示符下輸入/usr/smpt/ bin/smjcyy彈出菜單,在其中選擇功能模塊,如圖1所示。
在界面繼續選擇所需使用的功能選項,如選擇1,代表生成ECLIPSE文件選項,在提示符處輸入所要處理的文件名,程序查詢模塊會向數據庫提交查詢,在返回的數據中,程序控制模塊會對輸出數據的進行參數控制, 包括輸出那些時間的數據, 那些關鍵字參數的數據,以及對數據的處理、挑選可用數據。輸出的結果文件會保存在數模成果庫中,以便查詢使用。如圖2所示。

圖2
通過本項目的研究在一定程度上解決了長期以來油藏數值模擬的前期數據準備工作效率低下的問題,直接提高工作效率幾十倍。實現了數模數據資源的高度互補與共享,使數模數據資源的再次利用更為方便快捷,這又間接提高工作效率。通過本項目的研究成果來看,對ECLIPSE 軟件計算的油氣田開發指標預測數據進行此類處理是非常有意義的。
[1]陳月明.油藏數值模擬基礎.石油工業出版社,1989,9.
[2][美]富爾斯汀.龔波,張平,潘顯俊,譯.ORACLE PL/SQL最佳實踐[M].1版.機械工業出版社,2008,3.
TE319
A
1674-6708(2010)24-0139-02