• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      破損船舶運(yùn)動三維視景展示軟件的設(shè)計(jì)與實(shí)現(xiàn)

      2021-04-04 23:44:28管芳景林達(dá)
      現(xiàn)代信息科技 2021年18期
      關(guān)鍵詞:仿真

      管芳景 林達(dá)

      摘? 要:文章主要對破損船舶運(yùn)動及進(jìn)出水運(yùn)動結(jié)果三維視景展示進(jìn)行研究,開發(fā)了一款仿真軟件,首先對軟件進(jìn)行功能需求分析,確定了軟件總體方案和基本結(jié)構(gòu),并給出了軟件主界面原型,軟件中實(shí)現(xiàn)了船型建模、運(yùn)動控制、模擬、顏色設(shè)置等功能模塊,然后給出軟件中主要的功能模塊的設(shè)計(jì)思路和實(shí)現(xiàn)方法,最后,展示了軟件主要功能模塊的實(shí)現(xiàn)效果。

      關(guān)鍵詞:破損船舶;三維視景展示;進(jìn)水過程;仿真

      中圖分類號:TP311.1 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2021)18-0001-04

      Abstract: This paper mainly studies the three-dimensional visual display of damaged ship motion and water Inflow and outflow movement results, and develops a simulation software. This paper firstly analyzes the functional requirements of the software, then determines the overall plan and the basic structure, gives the prototype of the main interface of the software. The software realizes ship shape modeling, motion control, simulation, color setting and other functional modules. functional module? Then the design idea and implementation method of main function modules in software are given. Finally, the effect of main function modules in the software is showed.

      Keywords: damaged ship; 3D visual display; water inflow process; simulation

      0? 引? 言

      船舶經(jīng)常在航行過程中由于碰撞等因素造成不同程度的船體破損,船舶破損后吃水增加,在波浪中運(yùn)動,對破損船體造成極大的危險,造成人員和財產(chǎn)的損失[1]。當(dāng)前一些仿真軟件不能滿足試驗(yàn)需求,為了更清楚了解不同船型在試驗(yàn)過程中破損船體運(yùn)行和進(jìn)水過程[2],可以使用試驗(yàn)人員更直觀了解船體進(jìn)水的時間和吃水情況,需建設(shè)成一款可積累、高復(fù)用的船舶破損進(jìn)出水仿真集成軟件,從而成為船舶試驗(yàn)中了解破損船舶運(yùn)行和進(jìn)出水過程的有效手段。

      1? 軟件功能分析

      破損船舶運(yùn)動和進(jìn)出水運(yùn)動結(jié)果三維視景展示軟件[3]主要用于船舶后處理展示,根據(jù)用戶提供的船體模型、船體運(yùn)動結(jié)果、進(jìn)水時域結(jié)果等,在計(jì)算機(jī)中建立起虛擬試驗(yàn)場景,模擬仿真求解過程中船舶的運(yùn)動狀態(tài)及進(jìn)出水狀態(tài)。軟件功能需求主要包括如下幾個方面。

      1.1? 前處理功能模塊

      該模塊主要實(shí)現(xiàn)對船型的模型轉(zhuǎn)換及三維展示。在友好的用戶界面下實(shí)現(xiàn)參數(shù)定義,并進(jìn)行合法性檢查。前處理階段輸入的參數(shù)主要包括用戶基本信息、船型信息、工況信息等,能夠?qū)崿F(xiàn)針對不同船型的三維展示??衫瞄_發(fā)平臺對接相關(guān)API,在三維場景中對船型進(jìn)行相應(yīng)的調(diào)整、視角切換、縮放等操作。

      1.2? 求解器調(diào)用模塊

      該模塊主要實(shí)現(xiàn)對軟件所輸入的參數(shù)進(jìn)行校驗(yàn),確保軟件中各部分功能之間的協(xié)調(diào)工作。在友好的用戶界面下實(shí)現(xiàn)求解參數(shù)設(shè)置,并進(jìn)行合法性檢查。求解階段所需的輸入?yún)?shù)主要包括求解控制參數(shù)和求解輸出選項(xiàng)等。并具備在計(jì)算開始前對參數(shù)具備初步檢查功能,如判斷參數(shù)數(shù)值選擇范圍等,提供完善的報錯機(jī)制,支持流程自動及交互式運(yùn)行,各功能既可以獨(dú)立運(yùn)行,又可在流程管理環(huán)境內(nèi)按照具體業(yè)務(wù)流程形成有機(jī)整體,實(shí)現(xiàn)模塊間按邏輯執(zhí)行及數(shù)據(jù)的自動流轉(zhuǎn)。

      1.3? 后處理功能模塊

      讀入求解器生成的結(jié)果文件,對結(jié)果數(shù)據(jù)進(jìn)行處理,并采用曲線、云圖、報告等多種形式展示后處理數(shù)據(jù)內(nèi)容。根據(jù)計(jì)算功能對不同計(jì)算結(jié)果顯示實(shí)現(xiàn)差異化,具備后處理結(jié)果截圖、視頻或動態(tài)圖片錄制功能,計(jì)算結(jié)果數(shù)據(jù)能夠采用通用格式(txt、dat等)導(dǎo)出。

      后處理展示中,具備船艙破損進(jìn)水動畫效果,突出展示船艙破裂時,波浪進(jìn)入艙內(nèi)的效果。

      2? 軟件總體設(shè)計(jì)

      根據(jù)破損船舶運(yùn)動和進(jìn)出水運(yùn)動結(jié)果三維視景展示軟件功能分析結(jié)果,搭建了軟件集成架構(gòu)和軟件原型界面。

      如圖1所示軟件主界面主要由左側(cè)工具欄和右側(cè)視景展示區(qū)兩部分組成。

      工具欄主要包括導(dǎo)入、運(yùn)動模擬、波浪模擬[4]、進(jìn)水模擬[5]等控件,具體功能如以下所示:

      (1)導(dǎo)入船體模型和計(jì)算結(jié)果。

      (2)控制運(yùn)動模擬的顯示、隱藏以及開始、暫停、結(jié)束。

      (3)控制進(jìn)水效果的顯示、隱藏以及開始、暫停、結(jié)束。

      (4)控制波浪的波高、波長、周期、相位等。

      (5)控制時間進(jìn)度。

      視景展示區(qū)主要用于展示船舶模型、運(yùn)動及進(jìn)出水模擬,同時可以協(xié)同展示運(yùn)動和艙室進(jìn)水的數(shù)據(jù)曲線,以及物理試驗(yàn)視頻。

      3? 軟件設(shè)計(jì)方案

      3.1? 開發(fā)平臺選取

      三維視景展示軟件其重點(diǎn)在于三維場景的交互,結(jié)合軟件功能需求,在開發(fā)平臺選取時,采用了Unity作為開發(fā)平臺。Unity(Unity 3D),是由Unity Technologies公司開發(fā)的一個讓玩家輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實(shí)時三維動畫等類型互動內(nèi)容的多平臺的綜合型游戲開發(fā)工具。全世界在工業(yè)VR/AR內(nèi)容中的60%是Unity驅(qū)動,很多領(lǐng)先汽車品牌中使用了Unity的技術(shù),所以,軟件開發(fā)平臺選用了Unity。gzslib202204051020

      3.2? 船舶模型轉(zhuǎn)換

      在本軟件中,船舶模型轉(zhuǎn)換是前處理功能模塊中的重要功能,能夠?qū)⒂?jì)算采用的型值點(diǎn)數(shù)據(jù)文件轉(zhuǎn)換成標(biāo)準(zhǔn)3D模型文件,便于導(dǎo)入視景仿真軟件進(jìn)行后處理制作,同時在模型文件中保留有船舶各部件的信息。

      實(shí)現(xiàn)方法分三步完成:

      第一步:數(shù)據(jù)處理。設(shè)置一個容差(可由用戶修改),剔除間距小于該容差的數(shù)據(jù)點(diǎn),防止節(jié)點(diǎn)過于密集導(dǎo)致網(wǎng)格連接錯誤。由于船體的對稱性,二維數(shù)據(jù)文件中僅存有橫剖面一般站點(diǎn)的數(shù)據(jù),因此需要補(bǔ)全缺少的節(jié)點(diǎn),形成整船的節(jié)點(diǎn)數(shù)據(jù)。

      第二步:節(jié)點(diǎn)信息寫入。從船尾開始,按照Y坐標(biāo)值從小到大的順序記錄每一個型值點(diǎn)的三維坐標(biāo),以便網(wǎng)格數(shù)據(jù)正確匹配節(jié)點(diǎn)。

      第三步:網(wǎng)格信息寫入。根據(jù)船體形狀特征,以船中為分界,對船尾部的站面求取任意兩個相鄰型值點(diǎn)Y坐標(biāo)的平均值,并將該值與相鄰站面上的型值點(diǎn)Y坐標(biāo)比對,獲取最接近的節(jié)點(diǎn),由這三個節(jié)點(diǎn)構(gòu)成一個三角形網(wǎng)格,在模型文件中記錄此網(wǎng)格三個節(jié)點(diǎn)的編號。對于船尾部,則求取相鄰兩節(jié)點(diǎn)的Z坐標(biāo),后續(xù)步驟同上,從而形成完整的船體網(wǎng)格信息,并且網(wǎng)格之間不發(fā)生重疊。

      3.3? 船型三維展示模塊

      3.3.1? 船型三維展示模塊功能

      船型三維展示模塊屬于前處理功能模塊,實(shí)現(xiàn)讀取并展示用戶導(dǎo)入的船體模型,具體功能如以下所示:

      (1)通過鼠標(biāo)按鍵操作自由調(diào)整視角位置及大小。

      (2)顯示船體內(nèi)部的艙室結(jié)構(gòu)及破損口。

      (3)設(shè)置吃水大小來調(diào)節(jié)液面與船體的位置。

      (4)支持用戶自定義船體、艙室的顏色。

      3.3.2? 實(shí)現(xiàn)方法

      建模,在軟件運(yùn)行過程中通過讀取模型文件內(nèi)容重新構(gòu)建船體模型。將讀取到的節(jié)點(diǎn)、網(wǎng)格信息以Unity中數(shù)據(jù)類型存儲到MeshFilter組件中,按照模型文件中船體部件創(chuàng)建空對象并修改名稱為部件名,添加相應(yīng)的MeshFilter組件,同時創(chuàng)建MeshRender組件并賦予該部件相應(yīng)的材質(zhì),完成模型創(chuàng)建。

      顯示,Unity平臺中內(nèi)置幾種渲染隊(duì)列,按照渲染順序,從先到后進(jìn)行排序,隊(duì)列數(shù)越小的,越先渲染,隊(duì)列數(shù)越大的,越后渲染。根據(jù)顯示邏輯,水面與船體默認(rèn)處于同一渲染隊(duì)列,將船殼的渲染隊(duì)列順序設(shè)置為第一個,艙室渲染順序設(shè)置為第二個。同時創(chuàng)建一個包裹體完全包裹住船體模型,包裹體的材質(zhì)不賦予任何顏色,渲染隊(duì)列設(shè)置為第三個,以確保模型顯示正常。

      鼠標(biāo)控制視角。Unity通過相機(jī)將用戶搭建的場景呈現(xiàn)出來,本模塊中通過記錄鼠標(biāo)操作來計(jì)算移動相機(jī)的距離及角度以實(shí)現(xiàn)調(diào)整用戶的觀測視角。

      3.4? 船舶運(yùn)動模塊

      3.4.1? 船舶運(yùn)動模塊功能

      船舶運(yùn)動模塊屬于后處理模塊中的功能模塊,讀取導(dǎo)入的運(yùn)動結(jié)果文件,展示船舶六自由度運(yùn)動(包括橫搖、縱搖、艏搖、橫蕩、縱蕩、垂蕩),具體功能如以下所示:

      (1)可自由選擇顯示或隱藏任意某個自由度上的運(yùn)動。

      (2)運(yùn)動具備開始、暫停、停止等功能。

      (3)可任意調(diào)節(jié)時間軸上的時刻,并從選定時刻進(jìn)行船體運(yùn)動模擬。

      3.4.2? 實(shí)現(xiàn)方法

      通過Unity的動畫系統(tǒng)可以輕易地在船體對象施加運(yùn)動效果,保準(zhǔn)時間與動作的一致性,同時可以方便地控制動畫的啟停,播放倍數(shù)等。

      本模塊首先在獲取的船體模型上添加Animation動畫組件,然后創(chuàng)建六個動畫剪輯片段(分別存儲六自由度運(yùn)動數(shù)據(jù)),對不存在縱搖數(shù)據(jù)的片段添加航速數(shù)據(jù)。再將動畫剪輯添加到Animation組件中,通過腳本控制動畫的播放。

      3.5? 進(jìn)水動畫模塊

      3.5.1? 進(jìn)水動畫模塊功能

      進(jìn)水動畫模塊屬于后處理模塊中的功能模塊,讀取導(dǎo)入的進(jìn)水結(jié)果文件,展示船艙破損后海水涌入及艙室內(nèi)液面上升動畫,具體功能如以下所示:

      (1)運(yùn)動具備開始、暫停、停止等功能。

      (2)可任意調(diào)節(jié)時間軸上的時刻,并從選定時刻進(jìn)行船體運(yùn)動模擬。

      3.5.2? 實(shí)現(xiàn)方法

      (1)進(jìn)水效果。在獲取到的破艙口對象上添加粒子系統(tǒng)組件,調(diào)整粒子系統(tǒng)的形狀,方向,重力材質(zhì)等參數(shù),模擬海水進(jìn)入艙室的效果。獲取液面對象,添加到粒子系統(tǒng)的碰撞器中,模擬水柱進(jìn)入液面后消失效果。

      (2)液面升降。復(fù)制一個艙室底面對象,艙室底面上添加Animation動畫組件,然后創(chuàng)建一個動畫剪輯片段,添加液面高度時歷數(shù)據(jù)。再將動畫剪輯添加到Animation組件中,通過腳本控制動畫的播放。

      4? 軟件詳細(xì)設(shè)計(jì)及效果展示

      4.1? 軟件主界面

      為便于分析人員操作,將功能集成在軟件主界面中,運(yùn)行效果如圖2所示。

      4.2? 船舶模型轉(zhuǎn)換模塊

      船舶模型轉(zhuǎn)換模塊能夠?qū)⒂?jì)算采用的自定義型值點(diǎn)數(shù)據(jù)文件轉(zhuǎn)換成obj格式的標(biāo)準(zhǔn)3D模型文件,能直接導(dǎo)入視景仿真軟件進(jìn)行后處理制作,同時在模型文件中保留有船舶各部件的信息具體步驟為:

      (1)輸入文件,即船舶基礎(chǔ)信息數(shù)據(jù),可分為船體型值文件(ship.data)和艙室型值文件(dam.data)兩種,船體型值文件格式如圖3所示,第一行為船體名稱,第二行為船長、船寬、吃水?dāng)?shù)據(jù),第三行為總剖面?zhèn)€數(shù),從第四行開始記錄每一個剖面的型值點(diǎn)坐標(biāo)數(shù)據(jù)。第一行為該剖面的型值點(diǎn)個數(shù)與剖面X坐標(biāo),此后29個值為剖面型值點(diǎn)的Y與Z坐標(biāo)值,依次類推。

      艙室型值文件主要包括艙室和破口信息,文件格式如圖4所示。

      (2)輸出文件,即3D模型文件,其內(nèi)容包括船體各部件的名稱,頂點(diǎn)坐標(biāo)數(shù)據(jù)及面網(wǎng)格數(shù)據(jù),具體如圖5所示。gzslib202204051020

      根據(jù)所提供的船舶3D模型文件,在主界面中導(dǎo)入模型文件,轉(zhuǎn)換后的模型如圖6所示。

      4.3? 船型三維展示模塊

      船型三維展示模塊能夠讀取并展示用戶導(dǎo)入的船體模型,并且顯示船體內(nèi)部的艙室結(jié)構(gòu)及破損口;能夠設(shè)置吃水大小來調(diào)節(jié)液面與船體的位置;通過鼠標(biāo)按鍵操作可自由調(diào)整視角位置及大小;支持用戶自定義船體、艙室的顏色。船型三維展示效果如圖7所示。

      4.4? 船舶運(yùn)動模塊

      船舶運(yùn)動模塊能夠讀取導(dǎo)入的運(yùn)動結(jié)果文件數(shù)據(jù),利用Unity動畫系統(tǒng)將離散的時域數(shù)據(jù)擬合成連續(xù)的數(shù)據(jù),在船型三維展示界面上模擬船舶六自由度運(yùn)動(包括橫搖、縱搖、艏搖、橫蕩、縱蕩、垂蕩),模擬過程中,用戶可自由選擇顯示或隱藏任意某個自由度上的運(yùn)動;運(yùn)動模擬具備開始、暫停、停止等功能;支持任意調(diào)節(jié)時間軸上的時刻,并從選定時刻進(jìn)行船體運(yùn)動模擬。通過鼠標(biāo)滾輪可自由縮放視角大小,鼠標(biāo)右鍵按住可調(diào)整視角位置。運(yùn)行效果如圖8所示。

      4.5? 進(jìn)水動畫模塊

      進(jìn)水動畫模塊能夠讀取導(dǎo)入的進(jìn)水結(jié)果文件,利用Unity粒子系統(tǒng)模擬船艙破損后海水從破艙口涌入過程,利用Unity動畫系統(tǒng)將離散的時域數(shù)據(jù)擬合成連續(xù)的數(shù)據(jù)展示艙室內(nèi)液面上升動畫。進(jìn)水模擬具備開始、暫停、停止等功能;支持任意調(diào)節(jié)時間軸上的時刻,并且從選定時刻進(jìn)行船體運(yùn)動模擬。通過鼠標(biāo)滾輪可以自由縮放視角大小,鼠標(biāo)右鍵按住可調(diào)整視角位置。運(yùn)行效果如圖9所示。

      5? 結(jié)? 論

      本文采用了Unity開發(fā)平臺,開發(fā)了破損船舶運(yùn)動及進(jìn)出水運(yùn)動的三維視景展示軟件,軟件根據(jù)試驗(yàn)專家經(jīng)驗(yàn),創(chuàng)建不同船舶模型,從不同視角展示船體情況,根據(jù)時間段和場景不同,模擬破損船舶運(yùn)動和進(jìn)出水情況,讓試驗(yàn)人員直觀了解破損船舶進(jìn)出水過程。

      參考文獻(xiàn):

      [1] 夏淼.破損船舶在波浪中的運(yùn)動響應(yīng)研究 [D].鎮(zhèn)江:江蘇科技大學(xué),2019.

      [2] 徐濤.船舶破損緊迫局面的應(yīng)對措施 [J].中國水運(yùn)(下半月),2019,19(2):16-17.

      [3] 聶海英,劉常波,張建華.關(guān)于潛艇破損進(jìn)水實(shí)時監(jiān)視管理系統(tǒng)設(shè)計(jì) [J].計(jì)算機(jī)仿真,2018.35(2):1-5.

      [4] 楊威,毛筱菲.波浪中船舶破損進(jìn)水模擬研究 [J].船海工程,2010,39(1):48-51.

      [5] 孫智超.艦船多艙室破損進(jìn)水仿真及抗沉決策研究 [D].大連:大連海事大學(xué),2018.

      猜你喜歡
      仿真
      Proteus仿真軟件在單片機(jī)原理及應(yīng)用課程教學(xué)中的應(yīng)用
      工業(yè)機(jī)器人模擬仿真技術(shù)在職業(yè)教育中的應(yīng)用淺析
      一種幫助幼兒車內(nèi)脫險應(yīng)急裝置的仿真分析
      科技資訊(2016年18期)2016-11-15 20:09:22
      論虛擬仿真實(shí)訓(xùn)系統(tǒng)在口腔實(shí)驗(yàn)教學(xué)中的應(yīng)用
      科技資訊(2016年18期)2016-11-15 07:55:28
      基于機(jī)電設(shè)備電氣控制線路排故的仿真系統(tǒng)設(shè)計(jì)
      價值工程(2016年29期)2016-11-14 02:01:16
      航空電氣系統(tǒng)中故障電弧研究
      Buck開關(guān)變換器的基本參數(shù)設(shè)計(jì)及仿真分析
      試析PLC控制下的自動化立體倉庫仿真情況分析
      基于MADYMO的航空座椅約束系統(tǒng)優(yōu)化設(shè)計(jì)
      科技視界(2016年18期)2016-11-03 21:44:44
      中國體態(tài)假人模型與FAA Hybrid Ⅲ 型假人模型沖擊差異性分析
      科技視界(2016年18期)2016-11-03 20:31:49
      海晏县| 滕州市| 渝北区| 和田市| 临清市| 长兴县| 老河口市| 隆安县| 双柏县| 同仁县| 怀集县| 花垣县| 得荣县| 库车县| 治多县| 康乐县| 班玛县| 宜宾县| 红原县| 灵山县| 禹州市| 通许县| 霍林郭勒市| 琼结县| 丰都县| 濉溪县| 东兴市| 花莲县| 闻喜县| 荃湾区| 浦县| 塘沽区| 惠水县| 济阳县| 清水河县| 平安县| 武安市| 衡东县| 民权县| 正安县| 突泉县|