宋 磊,高 攀,楊卓懿,周 佳
(山東交通學(xué)院 船舶與港口工程學(xué)院,山東 威海 264209)
虛擬現(xiàn)實(shí)技術(shù)廣泛應(yīng)用于各行各業(yè)。在船舶領(lǐng)域,虛擬現(xiàn)實(shí)的應(yīng)用日漸成熟。李建偉[1]研發(fā)基于Unity3D的船舶電力推進(jìn)系統(tǒng),可實(shí)現(xiàn)場(chǎng)景漫游、部件檢查和人機(jī)交互等,有助于推進(jìn)電力系統(tǒng)的操作與培訓(xùn)。李超[2]研發(fā)游艇虛擬現(xiàn)實(shí)系統(tǒng),實(shí)現(xiàn)游艇漫游和駕駛操縱體驗(yàn)。何雋等[3]研發(fā)Unity3D船舶虛擬消防訓(xùn)練系統(tǒng),可實(shí)現(xiàn)船員進(jìn)行安全有效的船舶滅火訓(xùn)練。虛擬現(xiàn)實(shí)在傾斜試驗(yàn)方向沒(méi)得到具體的應(yīng)用,因此在船舶傾斜試驗(yàn)方面研究開(kāi)發(fā)一套虛擬仿真系統(tǒng)具有重要意義,可促進(jìn)船舶試驗(yàn)數(shù)字化技術(shù)應(yīng)用,為船舶建造工藝和試驗(yàn)提供數(shù)字化手段,方便開(kāi)展試驗(yàn)安全操作評(píng)判和試驗(yàn)方案預(yù)演評(píng)估。針對(duì)船舶與海洋工程專業(yè)人才的培養(yǎng),將在課堂較難呈現(xiàn)的試驗(yàn)以虛擬仿真的方式實(shí)現(xiàn)實(shí)時(shí)在線交互操作,可系統(tǒng)直觀地理解船舶傾斜試驗(yàn)的基本原理,促進(jìn)理論知識(shí)與試驗(yàn)教學(xué)的結(jié)合。該系統(tǒng)以高度逼真的模型和場(chǎng)景還原真實(shí)試驗(yàn)境況,有助于激發(fā)學(xué)員對(duì)傾斜試驗(yàn)的學(xué)習(xí)興趣,可為船舶制造行業(yè)提供新的解決方案和數(shù)據(jù)參考。
該系統(tǒng)以某64 000 t散貨船的傾斜試驗(yàn)為例,構(gòu)建包括船體建模、貼圖和渲染、功能實(shí)現(xiàn)及數(shù)據(jù)處理等模塊。系統(tǒng)利用3Ds Max建模軟件、Unity3D和萬(wàn)維引擎平臺(tái)等開(kāi)發(fā)工具。萬(wàn)維引擎是一款基于Unity的虛擬仿真開(kāi)發(fā)平臺(tái),該引擎將常用功能指令按模塊化高度封裝,使用Excel編輯器進(jìn)行相應(yīng)的代碼功能編輯和存儲(chǔ)。該系統(tǒng)采用萬(wàn)維引擎語(yǔ)言與C#語(yǔ)言相結(jié)合的開(kāi)發(fā)方式,可大幅提高開(kāi)發(fā)效率[4]。系統(tǒng)整體設(shè)計(jì)流程如圖1所示。
圖1 系統(tǒng)整體設(shè)計(jì)流程
船舶傾斜試驗(yàn)的目的是確定船舶的質(zhì)量和重心位置,而初穩(wěn)心高h(yuǎn)GM是衡量船舶穩(wěn)性的重要指標(biāo)。因此,求得船舶重心位置的關(guān)鍵是求出初穩(wěn)心高h(yuǎn)GM,其數(shù)值可由式(1)確定,即
(1)
式中:zG為船舶重心垂向坐標(biāo);zM為船舶穩(wěn)心垂向坐標(biāo);zB為浮心垂向坐標(biāo);rBM為橫穩(wěn)心半徑,可根據(jù)型線圖或型值表求得。
當(dāng)船舶處于正浮狀態(tài)時(shí)水線為WL,其排水量為Δ。如果將A處質(zhì)量為p的壓鐵橫向移動(dòng)至A1,船舶將產(chǎn)生橫傾,此時(shí)船舶狀態(tài)處于新水線W1L1,如圖2所示,其中:G為船舶重心;M為橫穩(wěn)心;B為浮心;B1為浮心移動(dòng)后位置;φ為橫傾角。
圖2 橫向移動(dòng)壓鐵時(shí)的船舶橫傾示例
由船舶載荷移動(dòng)的計(jì)算公式可知:
(2)
將式(2)代入式(1),得:
(3)
由分析可知:測(cè)量的橫傾角φ是求出重心垂向坐標(biāo)的關(guān)鍵。
在進(jìn)行試驗(yàn)前,先測(cè)量艏部、艉部和腫部的吃水及水的質(zhì)量密度,求出排水量。傾斜試驗(yàn)所用的移動(dòng)重物為生鐵塊,將其分為4組堆放于甲板指定位置,每組質(zhì)量分別為p1、p2、p3和p4,確保每組重物的質(zhì)量相等。傾斜試驗(yàn)移動(dòng)質(zhì)量布置如圖3所示。
圖3 傾斜試驗(yàn)移動(dòng)質(zhì)量布置
為使所建船舶模型更真實(shí)、效果更逼真,基于3Ds Max采用Extrude Line Tool及Editable Poly的建模方法對(duì)實(shí)船和碼頭等物體進(jìn)行1∶1建模[5]。建模流程如圖4所示。
圖4 建模流程
待所有模型建成后需要保存為FBX格式的文件,導(dǎo)入U(xiǎn)nity3D進(jìn)行模型的貼圖和渲染。散貨船模型如圖5所示。
圖5 散貨船模型
在場(chǎng)景中,當(dāng)移動(dòng)甲板上的壓鐵后,船舶會(huì)根據(jù)其移動(dòng)情況和各壓鐵當(dāng)前位置發(fā)生不同的橫向傾斜運(yùn)動(dòng),并在一定空間位置來(lái)回?cái)[動(dòng),這是對(duì)各船艙讀取擺錘數(shù)據(jù)的過(guò)程。船舶的橫傾運(yùn)動(dòng)穩(wěn)定性和精度至關(guān)重要,可直接影響試驗(yàn)數(shù)據(jù)的準(zhǔn)確性。
實(shí)現(xiàn)船舶傾斜運(yùn)動(dòng)的算法較多,例如:分別對(duì)4個(gè)鐵塊8種移動(dòng)情況進(jìn)行運(yùn)動(dòng)算法實(shí)現(xiàn);對(duì)船體模型尺寸和位置進(jìn)行分析,選取公共基準(zhǔn)點(diǎn),建立函數(shù)關(guān)系,實(shí)現(xiàn)不同壓鐵移動(dòng)情況下的橫傾運(yùn)動(dòng)。由于涉及壓鐵移動(dòng)步驟較多,選取使用多個(gè)功能函數(shù)實(shí)現(xiàn)起來(lái)比較繁瑣,并且不便后續(xù)功能調(diào)用和維護(hù)處理,不具有通用性,因此選取第2種手段進(jìn)行實(shí)現(xiàn)。船舶橫向傾斜運(yùn)動(dòng)算法流程如圖6所示。
圖6 船舶傾斜運(yùn)動(dòng)流程
(1)建立船體橫傾運(yùn)動(dòng)坐標(biāo)系
通過(guò)對(duì)散貨船模型的尺寸和位置分析,考慮船舶整個(gè)模型結(jié)構(gòu),在船舶模型為零點(diǎn)的位置建立一個(gè)空的子物體并進(jìn)行位置的初始化,將整個(gè)船舶模型放在該空物體下。選取的位置是幾何零點(diǎn)即模型的中心位置,方便后續(xù)對(duì)船舶橫傾運(yùn)動(dòng)的控制。
(2)定義參數(shù)變量
考慮在壓鐵移動(dòng)后船舶產(chǎn)生反復(fù)的橫傾運(yùn)動(dòng),角度實(shí)時(shí)改變,因此需要定義船舶向左旋轉(zhuǎn)和向右旋轉(zhuǎn)時(shí)的區(qū)間變量,該區(qū)間的大小即左右傾斜運(yùn)動(dòng)區(qū)間。為使在讀取數(shù)據(jù)時(shí)更好地控制船舶旋轉(zhuǎn)速度,經(jīng)過(guò)擺動(dòng)幅度計(jì)算和多次速度驗(yàn)證,最終選取60(°)/s為最佳默認(rèn)值,過(guò)大或過(guò)小均會(huì)影響擺錘讀數(shù)。需要定義擺錘的運(yùn)動(dòng)時(shí)間變量,控制左旋轉(zhuǎn)和右旋轉(zhuǎn)的時(shí)間,而旋轉(zhuǎn)運(yùn)動(dòng)時(shí)間長(zhǎng)短由初始角度和目標(biāo)角度之差的絕對(duì)值與旋轉(zhuǎn)速度決定。目標(biāo)角度值是在合理區(qū)間內(nèi)的隨機(jī)數(shù)。
(3)運(yùn)動(dòng)過(guò)程實(shí)現(xiàn)
該功能通過(guò)C#語(yǔ)言腳本與萬(wàn)維引擎語(yǔ)言相結(jié)合的編程手段實(shí)現(xiàn)。通過(guò)C#語(yǔ)言實(shí)現(xiàn)主要算法功能,通過(guò)萬(wàn)維引擎語(yǔ)言實(shí)現(xiàn)最終的變量參數(shù)賦值和傾斜運(yùn)動(dòng)啟停。C#語(yǔ)言功能強(qiáng)大,實(shí)現(xiàn)具體功能較為方便簡(jiǎn)單;萬(wàn)維引擎封裝度高,對(duì)參數(shù)設(shè)置和功能調(diào)用簡(jiǎn)單,兩者結(jié)合可最終實(shí)現(xiàn)運(yùn)動(dòng)的功能。
與傳統(tǒng)軟件相比,該系統(tǒng)具有實(shí)時(shí)與場(chǎng)景內(nèi)物體進(jìn)行交互、實(shí)時(shí)觀察船舶運(yùn)動(dòng)現(xiàn)象等特點(diǎn),使復(fù)雜的理論知識(shí)通過(guò)一系列的動(dòng)作過(guò)程直觀展示出來(lái)。傾斜試驗(yàn)的內(nèi)容仿真通過(guò)基礎(chǔ)知識(shí)、練習(xí)和考核等手段實(shí)現(xiàn)。基礎(chǔ)知識(shí)是對(duì)試驗(yàn)內(nèi)容的認(rèn)知學(xué)習(xí)。練習(xí)是對(duì)學(xué)到的知識(shí)進(jìn)行操作學(xué)習(xí)??己耸菍?duì)所學(xué)內(nèi)容熟練掌握后的測(cè)評(píng)。用戶可根據(jù)試驗(yàn)掌握情況反復(fù)操作練習(xí),通過(guò)完整的學(xué)、練、考操作流程相互配合,直至操作者完全掌握所有內(nèi)容為止。
傾斜試驗(yàn)包括試驗(yàn)準(zhǔn)備、實(shí)施和試驗(yàn)報(bào)告等主要內(nèi)容,用戶需要對(duì)試驗(yàn)內(nèi)容進(jìn)行學(xué)習(xí)和場(chǎng)景的交互練習(xí),根據(jù)掌握情況對(duì)試驗(yàn)內(nèi)容進(jìn)行考核。功能模塊流程如圖7所示。
圖7 功能模塊流程
(1)試驗(yàn)準(zhǔn)備。試驗(yàn)準(zhǔn)備任務(wù)包括氣候條件選擇、試驗(yàn)地點(diǎn)選擇、船舶狀態(tài)、試驗(yàn)器材和人員準(zhǔn)備等,用戶通過(guò)點(diǎn)擊交互界面彈出文本提示和試驗(yàn)器材模型的形式對(duì)試驗(yàn)準(zhǔn)備進(jìn)行詳細(xì)認(rèn)知。
(2)試驗(yàn)實(shí)施。試驗(yàn)實(shí)施步驟為全船性檢查及認(rèn)可、測(cè)量環(huán)境參數(shù)、放松纜繩、初始吃水測(cè)量、初始狀態(tài)讀數(shù)和壓鐵移動(dòng)狀態(tài)等。該過(guò)程是試驗(yàn)的核心部分,壓鐵移動(dòng)和纜繩放松的操作通過(guò)使用鼠標(biāo)點(diǎn)選指令和Animation動(dòng)畫(huà)相結(jié)合的形式實(shí)現(xiàn)。在數(shù)據(jù)讀取擺錘數(shù)據(jù)引導(dǎo)過(guò)程中使用動(dòng)態(tài)特效等手段,增加場(chǎng)景交互的友好性。
(3)試驗(yàn)報(bào)告。試驗(yàn)報(bào)告包括傾斜試驗(yàn)概況、試驗(yàn)時(shí)船舶吃水、擺錘讀數(shù)記錄表等,可通過(guò)萬(wàn)維引擎中的WebGL截屏方法以PDF的格式上傳至課堂平臺(tái)。
船艙擺錘數(shù)據(jù)獲取是系統(tǒng)核心部分,通過(guò)仿真系統(tǒng)對(duì)1號(hào)船艙、3號(hào)船艙和5號(hào)船艙進(jìn)行多次擺錘數(shù)據(jù)讀取,將每次移動(dòng)后的讀數(shù)求取平均值標(biāo)注到數(shù)據(jù)表格中。為保證測(cè)量結(jié)果準(zhǔn)確性,需要進(jìn)行誤差檢查和限值設(shè)定,當(dāng)偏離擬合直線4%時(shí)需要對(duì)其分析原因并判斷是否需要重新試驗(yàn)。
測(cè)試壓鐵移動(dòng)順序?yàn)镻1-P3-P3-P1-P2-P4-P4-P2,每個(gè)鐵塊在每次移動(dòng)后獲取5次擺錘數(shù)據(jù)。以1號(hào)船艙壓鐵移動(dòng)全過(guò)程擺錘讀數(shù)數(shù)據(jù)為例進(jìn)行分析[6-7],如表1所示,其中:移動(dòng)順序0為船舶初始狀態(tài)下的擺錘讀數(shù)。
表1 仿真系統(tǒng)1號(hào)船艙擺錘讀數(shù) mm
1號(hào)船艙擺錘讀數(shù)平均值之差線性回歸擬合直線參數(shù)和數(shù)值分析如表2所示。
表2 仿真系統(tǒng)1號(hào)船艙擺錘數(shù)據(jù)分析
1號(hào)船艙線性回歸分析如圖8所示。通過(guò)1號(hào)船艙線性回歸擬合直線可得,絕大部分點(diǎn)均在擬合直線上,試驗(yàn)數(shù)據(jù)符合要求。對(duì)1號(hào)船艙擺錘數(shù)據(jù)極限偏差數(shù)值進(jìn)行計(jì)算,篩選可剔除的點(diǎn)。對(duì)極限偏差數(shù)值進(jìn)行分析,在允許的±4%極限偏差范圍內(nèi),較易找到可剔除的點(diǎn)。為進(jìn)一步驗(yàn)證該系統(tǒng)試驗(yàn)數(shù)據(jù)準(zhǔn)確性,需要對(duì)實(shí)船試驗(yàn)獲取的試驗(yàn)數(shù)據(jù)進(jìn)行分析和對(duì)比,最終得出結(jié)論。
圖8 1號(hào)船艙線性回歸分析
對(duì)6 4000 t散貨實(shí)船在傾斜試驗(yàn)時(shí)進(jìn)行試驗(yàn)數(shù)據(jù)采集,得到1號(hào)船艙擺錘讀數(shù),如表3所示。采用與第4.1節(jié)相同的數(shù)據(jù)分析方法,對(duì)實(shí)船1號(hào)船艙擺錘讀數(shù)進(jìn)行處理分析,將獲取的擺錘數(shù)據(jù)與實(shí)船的擺錘數(shù)據(jù)進(jìn)行對(duì)比分析。對(duì)比結(jié)果如表4所示。通過(guò)試驗(yàn)數(shù)據(jù)對(duì)比可知:系統(tǒng)擺錘與實(shí)船擺錘讀數(shù)平均值偏差在合理范圍內(nèi),符合系統(tǒng)設(shè)計(jì)要求。
表3 實(shí)船1號(hào)船艙擺錘讀數(shù) mm
表4 系統(tǒng)擺錘數(shù)據(jù)與實(shí)船擺錘數(shù)據(jù)對(duì)比 mm
通過(guò)對(duì)所開(kāi)發(fā)的虛擬仿真系統(tǒng)進(jìn)行測(cè)試,基于3Ds Max的船體建模與萬(wàn)維引擎的功能開(kāi)發(fā)方法有效,該系統(tǒng)可按照設(shè)定的壓鐵移動(dòng)順序獲取擺錘數(shù)據(jù),測(cè)試所獲取的試驗(yàn)數(shù)據(jù)與實(shí)船試驗(yàn)數(shù)據(jù)偏差在合理范圍內(nèi),驗(yàn)證該系統(tǒng)符合使用要求。這種基于虛擬現(xiàn)實(shí)的仿真系統(tǒng)可對(duì)船舶建造工藝和大型試驗(yàn)開(kāi)展數(shù)字化的方案評(píng)估和驗(yàn)證,同時(shí)可輔助學(xué)員操作培訓(xùn),體驗(yàn)交互式學(xué)習(xí)方式,增強(qiáng)試驗(yàn)真實(shí)體驗(yàn)感。當(dāng)前,所開(kāi)發(fā)的虛擬仿真系統(tǒng)僅針對(duì)某散貨船進(jìn)行船舶傾斜仿真試驗(yàn),下一步在系統(tǒng)升級(jí)后可考慮實(shí)現(xiàn)多種船型的切換試驗(yàn),在交互方式上可加入頭盔式虛擬現(xiàn)實(shí)功能,實(shí)現(xiàn)沉浸式的3D交互模式。