楊向前,鄭清華,郭 華,曹建宇,張 甫,顧繼俊
(1.中海油研究總院有限責任公司,北京 100028;2.中國石油大學(北京) 機械與儲運工程學院,北京 102249)
石油是人類可使用能源的重要組成部分,是世界經濟發展的重要影響因素。近年來,海洋油氣開發的發展步伐明顯加快,已成為全球油氣資源的交替區,海洋石油開采難度較大,而模塊鉆機項目是海上石油勘測開采的重點項目之一[1-2]。傳統的模塊鉆機設計工作通常采用二維圖紙與三維模型相結合的方式,包括結構、機械、配管、重控等13個專業協同工作,最后形成241份設計文件,設計步驟繁瑣,一旦得到的模塊鉆機不符合工程預期,就需要大量的優化工作。為此,該文將虛擬現實技術應用于海上模塊鉆機設計,在數據庫中儲存模塊鉆機大量的設備信息,利用計算機減輕設計人員工作量。目前國內外將虛擬現實技術應用于工業領域多集中于仿真模擬,例如張登峰等人構建虛擬飛機維修平臺[3];高國雪等人基于Unity3D仿真模擬焊接機器人的工作過程[4];Eduardo H. Tanaka等研發出了一種沉浸式虛擬變電站[5];Gonzalez-Badillo等開發了一套基于觸覺反饋的虛擬現實裝配系統[6];Freitag等將虛擬現實用于家具行業的設計與展示過程[7];Bruzzone等開發了用于港口交通管理和駕駛員培訓的虛擬仿真系統[8]。該文基于Unity3D虛擬現實引擎開發一套海上模塊鉆機三維設計系統。該系統結合模塊鉆機設計規范,可快速完成模塊鉆機三維模型搭建,實時顯示各設備的詳細信息,具備在設計完成后批量導出標準設計文件、重量控制計算、項目文件管理、連接VR設備進行虛擬漫游等功能,將計算機圖形技術、人機交互技術、仿真技術、網絡技術等綜合應用于海洋油氣領域,既通過計算機極大地減輕了設計人員的工作量,又呈現了可供漫游檢查的虛擬海洋平臺環境。
海上模塊鉆機三維設計系統采用Unity3D引擎和C#語言作為開發平臺和編程語言。軟件模型數據庫源文件使用SOLIDWORKS建模工具,經過3ds Max軟件做貼圖、渲染、軸系轉化后導出FBX格式儲存。軟件信息數據庫采用EXCEL編寫關系型數據庫,經過文件加密后儲存。軟件的外部輸入文件接口和文件輸出均通過C#編寫腳本實現。
海上模塊鉆機三維設計系統由軟件和硬件結合組成,軟件部分主要由軟件數據庫、接口、智能算法、文件輸出系統和虛擬漫游系統五部分構成,硬件部分分為VR頭盔、手柄、定位器。系統構成如圖1所示。

圖1 系統構成
(1)軟件部分:軟件數據庫包含模塊鉆機設備模型及其詳細信息,在系統中孿生出虛擬設備;接口分為文件接口和人機交互接口,系統通過接口獲取用戶指令和輸入的文件;算法在后臺處理用戶的指令,反饋到UI界面或者儲存至數據庫;文件輸出系統通過處理數據庫信息及用戶輸入信息,批量輸出設計文件;虛擬漫游系統可連接VR硬件設備和虛擬場景,實現全方位校驗模塊鉆機設計的合理性。
(2)硬件部分:VR頭盔、控制手柄以及定位器。手柄和定位器實時監測用戶運動軌跡,輸入進系統中,實現設計人員在虛擬環境中檢查海洋平臺模塊鉆機,進行空間調整與優化。
針對軟件預期的功能, 采用如圖2所示的軟件開發流程。 第一步,在開發軟件前,研究模塊鉆機設計規范及模塊鉆機各設備出廠資料及設計圖紙,結合專業設計規范和詳細的設備信息建立軟件數據庫;第二步使用UGUI完成軟件UI界面制作;第三步,根據軟件UI,通過微軟Visual Studio編寫C#腳本分步進行功能開發;第四步,在Unity3D內引用System類,編寫文件輸出及文件管理腳本;第五步,搭建虛擬漫游系統,調試硬件與軟件的數據通信;最后使用軟件復現設計陸豐14-4模塊鉆機項目,測試所有功能。

圖2 系統開發流程
模塊鉆機三維設計系統可供13個專業協同工作,因此設有管理員權限管理所有項目信息和登陸權限。通過UGUI的Canvas下的Dropdown、Input field、Button等組件獲取用戶輸入,經過加密函數轉換成亂碼儲存,新建項目的數據寫入時可用#new_project、#end_project等特定字符串隔開,然后通過識別字符串刷新Dropdown的選項。調用數據時通過Dropdown控件的監聽方法,解密數據并反饋于UI交互面板上。
數據庫包含模塊鉆機的設備模型文件和數據信息,在進行模型調用時,能夠關聯設備的數據信息。
(1)數據庫模型種類應包含模塊鉆機所有獨立的設備,對于管線、防噴器組這類設計方案靈活度高的模塊,數據庫也應包含其基本組件,如管線的管道、三通、閥門等。對于任意單個模型,應包含設備的物理信息,如尺寸、重心、質量、位置等。設備的三維模型可采用工業建模軟件SOLIDWORKS建立,經過3ds Max軟件進行貼圖、渲染后轉換成FBX格式的文件存入數據庫中[9-10]。Unity3D引擎采用Y軸豎直向上的左手坐標系統,為了消除模型導入后初始角不統一的問題,在3ds Max中需要進行軸系轉化。詳細步驟為:采用Z軸向上建模,導入3ds Max時選擇Z軸向上,將所有零件模型的X軸旋轉-90°,導出FBX格式時選擇Y軸向上。模型庫搭建過程實例(絞車)見圖3。

圖3 絞車模型處理過程
(2)設備數據信息包括設備號、設備名稱、規格參數、干重、操作重、設計壽命等在內,可通過軟件內的模型標簽關聯設備的數據信息,通過構建關系型數據庫關聯設備的其他信息。
在海上模塊鉆機三維設計系統中,生成模塊鉆機結構有兩種方式。一是預制成熟的幾種模塊鉆機結構模型,按照2.2節模型庫搭建過程存入模型庫中,如果所設計的模塊鉆機工況類似于之前的項目,可以直接從模型庫中調用加以修改;二是從外部導入已經經過強度校核的鋼結構模型。本節講述如何編寫接口讀取SACS模型。
2.3.1 SACS模型編碼規則
SACS是用于海洋平臺以及一般陸地結構工程設計的結構有限元分析軟件,已經發展成為當今海事結構設計分析中最廣泛的軟件系統[11]。要實現在其他軟件里編寫SACS模型的接口程序,就要研究SACS模型的編碼規則。SACS常導出的文件格式是帶前綴“.inp”文件和帶后綴“.mac”格式文件。.inp格式文件的編碼邏輯是將所有節點的位置、組關系、材料屬性、截面形狀一一對應,這種格式是SACS默認的保存格式。.mac格式文件主要含有節點信息、截面屬性、密度等與三維模型密切相關的信息,且讀取邏輯性更強,更有利于與其他軟件形成接口。下面是參考SACS導入PDMS的方法[12]并繼續研究后所得的SACS軟件導出后綴“.mac”格式文件更詳細的編碼規則。
(1)NEW STRU:創建結構。
(2)MM BOR/MM DIST:表示在SACS中單位是kg或者kN;FINCH BOR/ FINCH DIST表示單位為English。
(3)NEW POND/PSACXXXX:表示新建節點的編號為XXXX,編號位數小于或等于4位,由數字或者字母組成。
(4)NPOS EX.XXX NX.XXX UX.XXX:表示新建節點的位置。E表示SACS右手坐標系的X軸正向,N表示Y軸正向,U表示Z軸正向,X、Y、Z三軸的負方向則用W、S、D表示。
(5)STRINGFROM/PSACXXXATOPSACXXXB:表示以XXXA節點為起始點,XXXB節點為終點,存在一條線段。
(6)SPREF/AISC-SPEC/H200100:表示截面屬性為標準規格的窄翼緣(HN)H型鋼的截面,型號為H200×100×5.5×8×13。其他型號的標準H型鋼,用H+高度+寬度表示。
(7)SPREF/DESPAR-SPEC/Beam with design parameters:表示自定義截面屬性,Beam表示H型鋼形狀,在SACS中為Wide Flange或者Plate Girder。其他截面除名稱代碼外都相同,如Tube表示管型鋼,Box表示矩形鋼,自定義截面文本行后面緊跟截面屬性,如第8條。
(8)DESP 1 650.000 MM 450.000 MM 25.000 MM 50.000 MM 0.0 0.0 7.849 MM:依次表示H型鋼的高度、寬度、腹板厚度、翼緣厚度、密度。
(9)NEW PANE:表示新建鋼板,下一行表示鋼板某一個頂點的位置;NEW PLOO的下一行表示鋼板的厚度;NEW PAVE下一行表示鋼板頂點的位置。SACS中只能生成三角形鋼板和四邊形鋼板,通過判斷鋼板代碼段中的節點數量判斷是哪種類型鋼板。
(10)POSS WX.XXX SX.XXX UX.XXX/POSE WX.XXX SX.XXX UX.XXX:POSS行和POSE行相連表示上一條線段的首尾節點發生了偏移,POSE行表示偏移后的起始點位置,POSE表示偏移后的終點位置。在模塊鉆機結構設計中,為了使甲板平鋪在梁的上表面,鋼結構的節點經常做偏移處理。
2.3.2 SACS文件讀取
讀取SACS文件的重點是研究SACS文件編碼規則和寫生成網格的方法。Unity3D對于復雜模型,沒有自動添加網格和碰撞體功能[13],因此必須有重建SACS模型算法。Unity3D中所有模型都是由大量三角面片組成,通過代碼設置網格每個三角形面片的頂點與拓撲方向,就可以得到任意形狀的物體模型。圖4為編寫.mac格式文件接口程序的流程圖,圖5為此系統SACS接口讀取文件的效果圖。

圖4 SACS接口編程邏輯

圖5 讀取SACS模型
軟件的UI界面設計綜合考慮模塊鉆機的布置規范和模塊化設計原則,分為窗口、主菜單、目錄樹、子菜單、對話框、提示欄等部分,完成模塊鉆機設計過程中的人機交互。系統可滿足模塊鉆機設計流程,可分模塊、逐層設計。對于任意設備,系統調用數據庫生成模型,并可對模型進行鼠標交互、精準移動、智能裝配、任意角旋轉、尺寸修改、信息顯示等基本功能。軟件整體的UI界面與設計模塊鉆機的過程如圖6所示。
對于模塊鉆機獨立的設備,可以預制模型存入數據庫中,設計時只需要從數據庫中調用。但是模塊鉆機還有很多模塊的設計方案靈活度高,例如管線設計、防噴器組設計、散裝罐模塊設計,需要根據工況,考慮其設計壓力、占位尺寸、操縱方式等因素,從而會有多種設計方案。預制這些模塊的模型,工作量大且有局限性。對于這類模塊,可以在系統中建立模型智能裝配系統,在子系統中由這些模塊的基本組成單位,設計滿足技術要求的方案。以管線設計中的同軸心裝配關系為例,參考圖7的流程,配合UGUI的UI組件,編寫監聽方法調整模型相對位置實現模型智能裝配。

圖7 管線裝配系統工作流程
模塊鉆機質量重心控制直接影響著鉆井平臺甲板的可變載荷、平臺的穩性和吊裝運輸[14]。在完成模塊鉆機設計后,提取結構桿件尺寸及材料屬性進行結構重心計算;通過標簽腳本對已布置的設備進行分層歸類,提取設備數據,計算機械設備重心位置。通過計算模塊鉆機的重心,調整布置方案、優化重心位置可提高平臺的抗風載能力以及穩定性。
(1)結構重控計算。
以某海上模塊鉆機DSM結構為例,提出基于Unity3D引擎開發系統軟件,實現計算模塊鉆機結構重心的方法。圖8為DSM結構模型,可以看出該結構由大量的H型鋼、矩形鋼、管材、板材等焊接而成。

圖8 DSM結構模型
系統在數據庫中提取每一根結構桿件的尺寸參數及密度,通過組合物體重心理論公式,求解整個結構的重心位置。從SACS模型文件中提取結構桿件尺寸和密度的方法可參考2.3.1節。下面為單根桿件的理論重量計算公式:
wi=[t1(H-2t2)+2Bt2+φr2]×ρ
(1)
式中:wi為H型鋼單位長度理論重量,kg/m;t1為H型鋼腹板厚度,m;H為H型鋼的高度,m;t2為H型鋼翼緣厚度,m;B為H型鋼寬度,m;φ為焊縫系數,根據工程經驗一般取0.858 4;r為圓角,m;ρ為鋼材密度,kg/m3。
(2)
式中:wi為矩形鋼管單位長度理論重量,kg/m;H為鋼材高度,m;B為鋼材寬度,m;d為鋼材壁厚,m;r為鋼材截面內腔圓角,m;ρ為鋼材密度,kg/m3。
計算其他幾類桿件的理論重量后,由式(3)~式(5)編寫程序計算模塊鉆機結構的重心坐標。
(3)
(4)
(5)
(2)機械設備重控計算。
在系統數據庫中寫入設備的重心位置和重量,并給模型綁定自動添加標簽的腳本,使設備實時獲得表示層位置的標簽。由Unity.Engine.GameObject類的FindGameObjectWithTag()函數獲得某類設備后,查找設備的重量屬性,可由式(3)~式(5)實時計算出設備的重心位置,如與預期位置不符,可以及時調整設備布局。
模塊鉆機項目設計文件總量達240份左右,分為規格書、數據表、料單、圖紙、設備清單、計算書、報告。海上模塊鉆機三維設計系統通過數據庫獲得文件模板,通過軟件UI輸入獲得封面信息,通過后臺算法處理數據庫設備信息,獲得變量,實現批量輸出標準設計文件,達到避免重復性輸入和減輕工作量的目的。
標準設計文件分為.docx、.xlsx、.dwg三類。以.docx格式文件為例,通過Visual Studio使用C#調用NPOI.XWPF程序包并編寫程序,通過FileStream和XWPFDocument類對.docx文件進行信息填充、文本替換、頁眉頁腳修改等操作,寫入文件結束后,調用多個dll包實現.docx文件的生成。
海上模塊鉆機13個專業的標準設計文件可以由平臺統一管理,軟件通過查找項目文件夾的路徑,實時獲得任意項目的完成度,并且通過調用System.Diagnostics.Process.Start()函數打開程序查看文件。
系統虛擬漫游功能分為場景漫游和連接VR設備漫游兩部分。虛擬漫游功能可以呈現虛擬海洋平臺環境,設計人員可以頭戴VR設備,在虛擬平臺中“走”到模塊鉆機的各個工作間,近距離檢查設備的操作環境、維護空間、管線排布等。實現方法為使用Translate()函數與Rotate()函數[15]編寫程序控制多個Camera運動軌跡、歐拉角、相機切換,來改變屏幕的顯示圖像。圖9為場景漫游和連接VR設備漫游的視角。

圖9 虛擬漫游
為了驗證該系統的實用性并統計其解放人工工作量占比,對陸豐14-4模塊鉆機項目進行測試,測試結果指標主要考慮場景還原度、計算結果精確度、可減工作量、軟硬件通訊情況。表1為陸豐14-4案例測試結果,結果分析如下:

表1 陸豐14-4案例測試結果
(1)通過模型數量表示場景還原度,結果為100%,表明軟件模型庫的完整性。
(2)通過計算結果誤差表示精確度,測試誤差在5%以內。誤差原因是模型庫中預制模型的重心位置與設備實際出廠數據有偏差,解決辦法是軟件具有設置模型重心位置功能。
(3)通過計算軟件可輸出文件占比表示其可減少的人工工作量,結果為38.17%。模塊鉆機項目龐大,設計文件涉及的專業種類多,文件數量大。其中可通過計算機技術編程解放勞動力的占比不足一半,目前軟件可一鍵快速輸出92份設計文件,極大地減輕了人工工作量,表示軟件具有良好的應用前景和發展空間。
(4)測試過程中定位傳感器、手柄與系統的通訊順暢,VR頭盔顯示圖像質量高,總體情況良好。
(1)海上模塊鉆機三維設計系統通過搭建數據庫、編寫多個接口與算法,實現了快速搭建模塊鉆機三維模型、模塊鉆機重心布局優化、實時更新并批量輸出設計文件、提高海上平臺空間利用率,有效解決了模塊鉆機前期設計效率低的問題。
(2)給出了SACS模型文件詳細的編碼規則,對開發軟件讀取.mac文件具有借鑒意義,并在本系統中實現增減結構桿件,以適應模塊鉆機設備布置空間。
(3)由復現陸豐14-4模塊鉆機項目的過程與結果,證實了海上模塊鉆機三維設計系統的實用性;通過虛擬現實技術實現在虛擬環境中仿真設計,在海洋工程領域中具有應用前景。