愛采購

發產品

  • 發布供應
  • 管理供應

基于虛擬現實技術的船舶運動仿真

   2012-07-06 轉載于網絡佚名3430
導讀

摘要: 虛擬現實技術是目前國內外最熱門的仿真技術之一,由于其有著高效、安全和低成本等特點越來越受到各國的重視。介紹了在虛擬

摘要: 虛擬現實技術是目前國內外最熱門的仿真技術之一,由于其有著高效、安全和低成本等特點越來越受到各國的重視。介紹了在虛擬環境下的船舶運動仿真的可行性方法。首先用二維半切片法給出了船舶運動的方程,接著用3DMax軟件建立船舶的模型,最后在OpenGL環境中建立場景進行船舶的運動仿真。仿真場景有著較好的感觀效果,給人以真實性,同時系統有著較好的可控性。對船舶運動仿真的進一步研究有著重要的作用。

1 引言

虛擬現實即VR (Virtual reality )技術,它是在現代科學技術如計算機圖形學,圖像處理與識、計算機仿真技術、人機接口技術、實時分布處理技術、數據庫技術、多媒體技術、多傳感器技術和人的行為學研究等的基礎上發展起來的一門交叉科學技術。虛擬現實技術有三個基本特征[1] ,他們分別是沉浸感( Immersion) ,交互性( Interaction)和想象( Imagination) 。目前虛擬現實系統可分為四個層次:桌面式,沉浸式,增強式和網絡分布式。本文是基于桌面式的仿真。

國內外船舶仿真模擬器都有了較大的發展,如挪威,英國,美國,日本等都已經建立的較為完善的船舶模擬系統,并且已廣泛應用于航海教育和船員培訓之中,并在港口與航道的工程設計和方案論證等領域中得到了廣泛的應用。采用高性能的PC機,將虛擬現實技術用于船舶仿真系統的開發,已成為模擬器研究與開發的主流,該系統可達到實用、安全、高效和低費用的目的。本文將虛擬現實技術應用于船舶運動的實時動態仿真中,該系統可將船舶運動情況,以三維圖像形式表現出來,不僅極大地增強了用戶與系統的交互友好性,而且為進一步開發船舶運動模擬器奠定了堅實的基礎。

2 船舶運動的數學模型

船舶的運動模型有很多種,從最初的單點運動模型即1896年克雷洛夫首先提出了船舶在規則波上的運動方程,該方程實際上是質點振動方程[2] 。

哈斯金特應用格林定理構造出由于船體存在和運動引起的擾動速度勢,并推導了點源格林函數的表達式。按邊界條件的提法,最終得到求解速度勢的積分方程,并用“窄船理論”進一步解出此方程[3] ??莆囊豢藙诳品蛩够脱趴刹?提出的切片理論也使耐波性理論得到了迅速發展,使得在船舶設計階段可以對各種方案進行比較。切片理論有可以分為二維切片,二維半切片和三維切片。本文采用高速細長法(二維半切片法)來構建船舶得運動模型。

當船舶以航速U 在深水規則波中迎浪前進,建立隨物體平動的直角坐標系o - xyz, oxyz平面與靜水面重合, ox軸與U同向, oz軸垂直向上??紤]流場穩態解,速度勢可寫為:

 

其中Φs為定常波勢, ( x, y, z) 為不定常勢。在線性假設下, Φ ( x, y, z) 可以寫成:

 

式中Φj ( j = 1 ~ 6) 表示船體以j態單位振幅運動的輻射勢,ξj 為其振幅; A為入射波波幅, Φ0 和Φ7為單位波幅的入射波勢和繞射勢。輻射勢Φj ( j = 1~ 6) 和繞射勢Φ7 在流體域中要滿足拉普拉斯方程,在自由面滿足有航速的線性自由面條件, 在物面的平均位置處滿足船體表面的法向不可穿透的條件。在無窮遠處滿足有適當的輻射條件。

求解Φj ( j = 1 ~ 6) 和繞射勢Φ7 完全滿足上述的定解條件的解,就是三維有航速的船舶定解問題。

為了求解上述船舶的定解問題, 結合高速細長船體的流動特性和幾何特性,可以用二維半理論來求解。假設航速較高, 滿足船前無波的條件, 此時Brard數:流場沿縱向的變化不大,在船體的各剖面內滿足二維的拉普拉斯方程。這是常規的二維切片法。同時在線性的自由位置處,流場的解滿足三維有航速的自由條件,在一定的假設下輻射勢Φj ( j = 1 ~ 6) 和繞射勢Φ7 構成如下定解問題:

 

這就是被稱為高速細長體理論,由于流場的控制方程是二維的自由面條件事三維的因此也被稱為二維半理論。我們用二維時域邊界積分方程的方法來求解,從頭到尾逐步求解具體的參見文獻[4]由此可以得到一系列的狀態值,把其作為表格的形式保存備用。

3 仿真

目前虛擬現實技術中, 較為常用的軟件VRML, OpenGL, Cult3D, MutiGen, Vega, CooL3D等。由于OpenGL 軟件有著場景環境渲染方面和交互式編程的優勢與建模中過于復雜的不足,本文采用OpenGL軟件和3D相結合共同完成船舶的建模與仿真。硬件構成,配置較好的個人PC機,有條件的可以購買立體頭盔,立體眼鏡等。本文只基于桌面層次的系統。

3. 1 船舶模型的建立

由于OpenGL 的建模功能較弱,采用3D max來建立船舶的三維模型。3DsMAX軟件是一種具有很強三維建模技術的軟件,應用也十分廣泛。3D中輪船的建模有很多種方法,如放樣,面片,NURSBS等[5] 。本文采用得是盒子建模法。盒子建模指的是對基本的長方體,圓柱體,球體等進行編輯成型的方法。事先收集一下輪船的設計圖紙,這樣對船的尺寸會更加準確,在編輯各個面時會更加自如。

首先建立半個船頭。先建立一個長方體,大小要與事先設計好的船尺寸成比例,把它轉換成可編輯多邊形,用快速切割的方法把長方體按照船頭的各方位視圖進行切割。用編輯頂點的方法對所做的圖形進行調整。用同樣的方法編輯船尾。把船頭和船尾進行合并,刪去中間的端面(為了保證船的大小協調性) ,斷開船頭與船尾,從船頭出拉伸復制出船身至船尾處,用焊接點的方法使得形成一個完整的半個船面。再對它進行光滑處理得到圖1。

 
圖1 船體的建模

這只是半個船體,用對稱的方法進行復制,并對其各點進行焊接修改,可以得到一個完整的船體。船的上層結構可以加上安全護欄,雷達等設備,可以自行設計,但在尺寸上要注意一致性,使得整體完整,美觀。本文的建模結果如圖2所示。最后可以對圖像添加材質和貼圖進行渲染,使得船體顯得更加真實美觀。

 
圖2 船的模型

3. 2 海面模型的建立

海面背景得建立有兩種方法。一種是平面法,建立一個平面,并對其使用波浪效果和噪波效果,生成海面和波浪;同時再海面的前方與之垂直建立一個平面作為天空,使用貼圖并設置燈光攝像機等對整個場景進行渲染。這樣就建成了一個簡單的海面場景[6] ?;蛘呓⒁粋€半球體構成天空然后對其進行渲染形成海天的場景。本文采用后一種建模形式。

3. 3 船體在OpenGL中的動態仿真

OpenGL實際上是一種圖形與硬件的接口。與其他圖形程序設計接口不同,OpenGL提供了十分清晰的圖形函數,他不要求開發者把三維物體模型的數據寫成固定的數據格式。開發者不但可以直接使用自己的數據,而且可以用其他不同格式的數據源,如DXF格式文件等。三維圖形軟件包有很多,在交互式三維圖形建模能力和編程方便性上都無法與OpenGL相比[7] 。

一個完整的窗口OpenGL 圖形處理系統的結構為:最底層是圖形硬件,第二層為操作系統,第三層為窗口系統,第四層為OpenGL,第五層為應用軟件。OpenGL是網絡透明的,在客戶機/服務器體系結構中,允許本地或遠程調用。OpenGL 在X窗口,Windows或其他窗口系統下都可以以一個獨立的圖形窗口出現。

本文是在VC ++ 6. 0 開發環境下,創建的一個控制平臺。首先要定義3DS 文件的讀入類CLoad3DS ,這個類主要用于處理3DS文件的各種塊,如對象塊,紋理塊,材質塊等。聲明的部分代碼如下:

//基本塊( Primary Chunk ) ,位于文件的開始

#define PR IMARY 0x4D4D

//主塊(Main chunks)

#define OBJECTIONFO 0x3D3D //網絡對象的版本號
#define VERSION 0x0002 //3ds文件的版本號
#define ED ITKEYFRAME 0xB000  //所有關鍵幀信息的頭部

//對象的次級定義(包括對象的材質和對象)
. . . . . .
//材質的次級定義
. . . . . .

以上的宏定義內容都是3DS文件中各塊的在文件的具體位置,根據這些數據可以讀取3DS文件中的各種數據。

導入大海的場景和船舶,由于在3DS中對船體已經進行了一些渲染,在OpenGL中可以較偏重于于整個場景的渲染。如對燈光的設計,場景的霧化等使其更加具有真實感。指定光源,光照模式它們分別用庫函數void glL ight , void glL ightModle 可以實現;對場景進行霧化可以用函數void glFog. 利用已有的數據,船舶的運動仿真可以用兩種方法來完成。(1)在3DS中按照船的運動情況進行旋轉,用設置關鍵幀的形式設好再引入OpenGL。

(2)直接在OpenGL中用原來的矩陣再乘上一個變換矩陣的形式得到。用庫函數void glRotate ( )和void glTranslate ( ) 來實現。第一種方法雖然在操作上簡單些,但動作不能設計的太多(太占內存)不能完全按照給定的數值來調整,且在OpenGL中不好修改,本文采用第二種方法修改簡單,編程也簡單占用的內存也較小,可以直接利用所給數據進行仿真。運行的結果如圖3,圖4所示。

 
圖3 渲染后船舶運動中的一幀

 
圖4 船舶運動中的一幀

4 結論及展望

本文介紹了虛擬現實技術在船舶仿真中的應用。用高速細長法(二維半方法)建立了船舶的運動模型,并在3DSMAX和OpenGL的環境中較好的實現了在虛擬場景中船舶的動態仿真。該實驗結果有較好的視覺感和真實感,為進一步的研究船舶在不同海況中的運動及全面的仿真打下較好的基礎。

參考文獻

[1]馬利民. 虛擬現實技術及其應用展望[J]. 計算機時代, 2005, (2)

[2]李積德. 船舶耐波性[M]. 哈爾濱:哈爾濱船舶工程學院出版社, 1992: 1~4

[3]劉應中,繆國平. 船舶在波浪上的運動理論[M].上海:上海交通大學出版社, 1987: 1~154

[4]段文祥. 船舶大幅運動非線性水動力[M]. 哈爾濱:哈爾濱工程大學出版社, 1995: 85~105

[5] Ted Boardman 著, 許小榮譯. 3ds max設計藝術[M]. 北京: 清華大學出版社, 2005: 95

[6]騰龍工作室3ds max7中文版建模技術案例精解北京: 科學出版社2005 P129~170

[7]和平鴿工作室. OpenGL三維圖形系統開發于實用技術[M]. 北京:清華大學出版社,重慶大學出版社, 2003: 1~2

 
反對 0舉報 0 收藏 0 打賞 0評論 0
免責聲明
本文為佚名原創作品,作者: 佚名。歡迎轉載,轉載請注明原文出處:http://www.451292.com/news/show-1901.html 。本文僅代表作者個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,作者需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們。
 
更多>同類資訊頭條

入駐

企業入駐成功 可尊享多重特權

入駐熱線:18682138895

請手機掃碼訪問

客服

客服熱線:18682138895

小程序

小程序更便捷的查找產品

為您提供專業幫買咨詢服務

請用微信掃碼

公眾號

微信公眾號,收獲商機

微信掃碼關注

頂部

91中文在线