楊志鋼,孫 鵬
(哈爾濱工程大學(xué) 信息與通信工程學(xué)院 先進(jìn)船舶通信與信息技術(shù)工業(yè)和信息化部重點(diǎn)實(shí)驗(yàn)室,哈爾濱 150001)
海浪模型在諸多領(lǐng)域有著廣泛的應(yīng)用,并且一直是計(jì)算機(jī)圖形學(xué)海浪場(chǎng)景研究的重點(diǎn)之一.海浪模型是整個(gè)海浪仿真的基礎(chǔ),模型建立的優(yōu)劣決定了整個(gè)海浪波動(dòng)的真實(shí)性和實(shí)時(shí)性.通常海浪場(chǎng)景的繪制比較復(fù)雜,且海浪具有真實(shí)性、隨機(jī)性、多變性、廣闊性等特性,針對(duì)海浪的特性,各國(guó)的科研學(xué)者分別從幾何模型模擬、物理模型模擬、海浪譜模擬等方法對(duì)海浪場(chǎng)景進(jìn)行建模.
幾何模型模擬是指根據(jù)經(jīng)驗(yàn)和數(shù)據(jù)總結(jié)得到數(shù)學(xué)方程來(lái)構(gòu)建海浪模型的一種方法.最簡(jiǎn)單的模型是根據(jù)Airy波理論提出的,他假想振幅較小的海浪由一系列正弦波疊加而成,該方法是根據(jù)海浪的波動(dòng)特性以及幾何形狀,結(jié)合函數(shù)使用幾何曲線或者曲面來(lái)描述海浪的特性[1-2].經(jīng)典模型中還包括:Peachy模型[3]、Stokes模型[4]、Gerstner模型[5]等,該類方法的優(yōu)點(diǎn)在于建立海浪模型簡(jiǎn)單,數(shù)學(xué)函數(shù)的解易于求得,形成近似的海浪仿真模型.但由于數(shù)學(xué)函數(shù)簡(jiǎn)單,生成的海浪模型的波動(dòng)比較單調(diào),隨機(jī)性弱,適用于風(fēng)平浪靜、輕輕漣漪的海面仿真.
基于物理模型的模擬方法是通過(guò)物理模型計(jì)算各個(gè)海浪參數(shù)來(lái)模擬海浪內(nèi)部的各個(gè)水粒子的運(yùn)動(dòng)狀態(tài),進(jìn)而生成海浪模型[6-7].該類方法參考的物理模型是流體動(dòng)力學(xué)的Navier-Stokes方程式,該方程式是描述黏性牛頓流體的物理模型,由于其特性和海浪波動(dòng)的特性類似,在進(jìn)行一系列的數(shù)學(xué)近似計(jì)算后,可以模擬出海浪內(nèi)部的水分子的任意時(shí)刻的運(yùn)動(dòng)狀態(tài)[8-9].由于該方法是與海浪內(nèi)部波動(dòng)特性相關(guān),而且詳細(xì)的求解了各個(gè)水分子的運(yùn)動(dòng)狀態(tài).該類方法仿真出來(lái)的海浪細(xì)節(jié)清晰、真實(shí)感強(qiáng),但是參數(shù)求解復(fù)雜、計(jì)算量大,適用于需要處理細(xì)節(jié)但是變化程度低和頻率不高的海浪場(chǎng)景.
海浪譜模擬方法是根據(jù)真實(shí)觀察所得,又根據(jù)數(shù)學(xué)方法總結(jié)而形成的一種方法[10-12].在海洋領(lǐng)域研究學(xué)者的多年觀察和研究下,利用測(cè)量獲得的海浪數(shù)據(jù),通過(guò)統(tǒng)計(jì)方法[13]總結(jié)出了一系列關(guān)于海浪的譜模型,稱為海浪譜[14-15](例如Neumann譜、Pierson-Moskowitz譜、JONSWAP譜),海浪譜具有海浪的外部表現(xiàn)特征,又同時(shí)可以描述海浪內(nèi)部能量分布的特性.該類方法可以表現(xiàn)出海浪的真實(shí)性,盡管其數(shù)學(xué)模型的計(jì)算量也大,但是優(yōu)于物理模型的仿真方法,提高了仿真時(shí)要求的實(shí)時(shí)性和真實(shí)性.
通過(guò)對(duì)以上方法進(jìn)行優(yōu)劣分析,針對(duì)海浪的特性,提出了一種介于幾何模型模擬和海浪譜模擬之間的方法,首先設(shè)計(jì)一組描述波浪的動(dòng)態(tài)方程組,該方程組作為海浪的基本構(gòu)造模型;然后,利用線性疊加函數(shù)方程組將二維函數(shù)擴(kuò)展到三維模擬真實(shí)的海浪場(chǎng)景;最后利用JONSWAP海浪頻譜的輸出進(jìn)行參數(shù)的設(shè)置,利用參數(shù)對(duì)提出的動(dòng)態(tài)方程組進(jìn)行三維控制以達(dá)到動(dòng)態(tài)海浪的模擬.本文方法比簡(jiǎn)單利用海浪方程組疊加進(jìn)行單一海浪模擬更加逼真,且模擬的海浪波動(dòng)更有層次、更緊湊,與物理模型模擬相比復(fù)雜度低且計(jì)算量小.
針對(duì)海浪的幾何構(gòu)造模型,從兩個(gè)方面進(jìn)行選?。阂环矫鎺缀文P湍軌蛎枋鰪臐i漪海面到?jīng)坝亢@说姆抡?;另一方面模型能夠模擬各種海浪強(qiáng)度變化的海浪.
1986年Fournier提出了經(jīng)典的Gerstner模型,從動(dòng)力學(xué)的角度描述了海浪各質(zhì)點(diǎn)的運(yùn)動(dòng),Gerstner模型如式(1)所示:
(1)
圖1 Gerstner擺線方程Figure 1 Gerstner cycloid equation
圖1是海浪的二維擺線圖,而模擬真實(shí)的海浪則需要三維方程組,所以需要將二維方程擴(kuò)展成三維方程組,而在擴(kuò)展過(guò)程還需要針對(duì)海浪的流動(dòng)性進(jìn)行相關(guān)改進(jìn),在將單一波進(jìn)行線性疊加的過(guò)程中,需要處理每個(gè)波長(zhǎng)的方向角,此時(shí)方向角采用余弦函數(shù),這樣在波浪變換過(guò)程中使得幅度由高到低與真實(shí)海浪變換一致,變換后的三維方程組如式(2),式(2)加入了多個(gè)波時(shí)海浪的疊加函數(shù),其中θ為水平面時(shí)海浪的方向角,α為隨機(jī)相位角,z(t)表示高度場(chǎng)疊加函數(shù).
(2)
有了模擬海浪的方程組后,需要獲得振幅、相位、頻率、相位參數(shù)來(lái)對(duì)方程組進(jìn)行控制,進(jìn)而通過(guò)時(shí)間參數(shù)來(lái)對(duì)海浪進(jìn)行實(shí)時(shí)性的模擬,而參數(shù)的選取可以通過(guò)頻譜生成器進(jìn)行生成,例如Neumann譜、Pierson-Moskowitz譜、JONSWAP譜等都可以進(jìn)行參數(shù)的獲取,其中JONSWAP譜是加入了Pierson-Moskowitz的譜參數(shù),不再把風(fēng)速、風(fēng)向作為頻譜參數(shù)進(jìn)行設(shè)置,而采用有效波高和波浪周期作為輸入?yún)?shù)進(jìn)行計(jì)算,在參數(shù)計(jì)算時(shí)更加穩(wěn)定,適用性廣,可以在各種海浪情況下進(jìn)行譜參數(shù)提取,所以本文采用JONSWAP譜,其譜公式如式(3)所示:
(3)
其中式(3)中的各參數(shù)表達(dá)式如下:
χ=exp(-(f/fp-1)2/2σ2)
(4)
(1.094 0.01915lnγ)
(5)
(6)
(7)
其中:f為波浪頻率,fp為譜峰頻率,Tp為譜峰周期,H為有效波高,Th為波浪有效周期,γ為譜峰因子,本文取平均譜峰因子為3.30.
有了海浪譜還需要對(duì)連續(xù)譜離散化,選取符合海浪幅度變化的譜參數(shù),通過(guò)對(duì)JONSWAP海浪譜進(jìn)行參數(shù)提取,利用頻譜參數(shù)對(duì)三維擺線方程進(jìn)行控制,實(shí)現(xiàn)海浪的動(dòng)態(tài)模擬,而頻譜需要選則頻譜能量集中的區(qū)域,在模擬海浪時(shí)更能體現(xiàn)變換程度,且頻譜只需要適量選取即可,能使海浪變換情況復(fù)雜且更加真實(shí),覆蓋范圍更廣且計(jì)算量不大.
實(shí)時(shí)繪制海浪模型時(shí),需要將海浪進(jìn)行三維程序?qū)崿F(xiàn),海浪幾何模型通??梢杂稍S多三角形或者四角形組合而成,本文為了描述海浪細(xì)節(jié)采用三角形結(jié)構(gòu)建海浪模型,三角形個(gè)數(shù)越多組合成的曲面結(jié)構(gòu)越細(xì),仿真出來(lái)的海浪效果真實(shí)性會(huì)較高,但是會(huì)出現(xiàn)計(jì)算量大,實(shí)時(shí)性低等問(wèn)題,所以在仿真時(shí),根據(jù)海浪需求,需要在實(shí)時(shí)性和真實(shí)性之間進(jìn)行平衡,從而設(shè)計(jì)出合理的三角形個(gè)數(shù)和網(wǎng)格結(jié)構(gòu).
本文在進(jìn)行網(wǎng)格設(shè)計(jì)時(shí),采用了正方形拓?fù)渚W(wǎng)格結(jié)構(gòu),運(yùn)用了OpenGL圖形庫(kù)函數(shù)進(jìn)行模擬,以下是形成海浪網(wǎng)格仿真的基本思想:1)獲取整個(gè)海浪的空間位置坐標(biāo)數(shù)據(jù),將其存儲(chǔ)在動(dòng)態(tài)數(shù)值中;2)利用OpenGL對(duì)相鄰三個(gè)空間位置坐標(biāo)點(diǎn)進(jìn)行連接,形成三角形網(wǎng)格,直到整個(gè)正方形拓?fù)渚W(wǎng)格連接完成,得到靜態(tài)的海浪模型結(jié)構(gòu);3)通過(guò)時(shí)間參數(shù)和OpenGL的實(shí)時(shí)緩存功能進(jìn)行空間坐標(biāo)數(shù)據(jù)的更新,實(shí)現(xiàn)動(dòng)態(tài)的海浪模擬.
JONSWAP頻譜的選取直接影響采樣點(diǎn)個(gè)數(shù)的選取,計(jì)算的復(fù)雜度,以及生成不同海浪的真實(shí)性,從有效波高和有效周期兩個(gè)參數(shù)進(jìn)行設(shè)置,本次實(shí)驗(yàn)數(shù)據(jù)設(shè)置了有效波高H=0.05 m,波浪有效周期Th=2.0 s,和有效波高H=0.1 m,波浪有效周期Th=3.0 s兩組數(shù)據(jù)進(jìn)行仿真,得到圖2不同有效波高和波浪有效周期條件下波浪頻率與JONSWAP幅度譜的關(guān)系圖.
從圖2(A)、(B)中可以得出有效波高對(duì)頻譜的幅度值影響較大,有效波高從0.05 m增加到0.1 m,幅度峰值從0.000 57增加到0.001 3,有效波高的微小變化會(huì)對(duì)幅度譜的幅值產(chǎn)生較大改變,由于JONSWAP幅度譜的該特性,可以方便選取幅度參數(shù)值,可以對(duì)不同強(qiáng)度的波浪進(jìn)行模擬,當(dāng)有效波高值越大,海浪波動(dòng)高度越高,海浪浪級(jí)越高.從圖2(C)、(D)離散后的頻譜圖中可以得出,不同波浪周期對(duì)波浪頻率長(zhǎng)度的影響較大,波浪周期越大,波浪頻譜寬度越小,所需采樣點(diǎn)越少,計(jì)算海浪方程組的量減小,此時(shí)已經(jīng)可以模擬出真實(shí)的海浪;相反,波浪周期越小,波浪頻譜寬度越大,所需采樣點(diǎn)越多,計(jì)算海浪方程組的量增加,此時(shí)模擬出的真實(shí)海浪高度細(xì)節(jié)降低.在仿真海浪時(shí)根據(jù)海浪需求進(jìn)行頻譜的選取以及采樣點(diǎn)數(shù)量的選取.
圖2 不同有效波高和波浪周期的JONSWAP幅度譜Figure 2 JONSWAP amplitude spectrum of different effective wave height and wave period
2.2.1 不同頻譜下海浪仿真結(jié)果
在Visual Studio2010對(duì)海浪模型進(jìn)行仿真,利用OpenGL進(jìn)行數(shù)據(jù)處理,將數(shù)據(jù)利用數(shù)組進(jìn)行存儲(chǔ),且將海浪幾何模型利用三角形面繪制出來(lái),仿真了網(wǎng)格的海浪表面.針對(duì)不同頻譜提取出的參數(shù)進(jìn)行仿真,仿真結(jié)果如圖3所示,其中圖3(A)表示有效波高H=0.05 m,波浪有效周期Th=2.0 s,取10個(gè)頻率采樣點(diǎn)時(shí)仿真得到的海浪圖,其中圖3(B)表示有效波高H=0.1 m,波浪有效周期Th=2.0 s,取15個(gè)頻率采樣點(diǎn)時(shí)仿真得到的海浪圖,其中圖3(C)、(D)分別表示有效波高H=0.15 m和H=0.2 m,波浪有效周期,取15個(gè)頻率采樣點(diǎn)時(shí)仿真得到的海浪圖.
從圖3中可以得出,隨著有效波高的增加,仿真得到的海浪波強(qiáng)逐漸增加,從漣漪海面逐漸到有浪的海面,可以仿真模擬不同波浪強(qiáng)度的海浪背景圖,從有效周期可以得出,周期的縮短和采樣點(diǎn)數(shù)量的增加模擬出的海浪逼真程度更高,波浪強(qiáng)度越大,其體現(xiàn)出的逼真程度越明顯,因此在海浪模擬中,可以根據(jù)實(shí)際需求進(jìn)行參數(shù)設(shè)置.
圖3 不同頻譜參數(shù)海浪仿真圖Figure 3 Wave simulation diagram with different spectrum parameters
2.2.2 不同海浪模擬方法仿真結(jié)果
本文在實(shí)驗(yàn)環(huán)境為cpu:Intel(R) Core(TM) i5-4210U,主頻1.70GHz,內(nèi)存4.0GB,操作系統(tǒng)Windows10下各種方法的仿真幀率如表1所示.不同海浪仿真方法仿真出來(lái)的海浪效果如圖4所示,其中圖4(A)、(B)表示幾何模型模擬的海浪仿真圖,圖4(C)、(D)表示物理模型模擬的海浪仿真圖,圖4(E)、(F)表示本文方法模擬海浪的仿真圖.
表1 不同方法的仿真幀率Table 1 Simulation frame rate of different methods
從圖4模擬出的三種海浪仿真圖中,可以得出,幾何模型模擬的海浪圖,網(wǎng)格結(jié)構(gòu)比較單一,不能夠體現(xiàn)出波浪翻涌時(shí)的隨機(jī)性和多變性,適合于模擬風(fēng)平浪靜,沒(méi)有波動(dòng)的漣漪海面場(chǎng)景;物理模型模擬的海浪仿真圖,細(xì)節(jié)結(jié)構(gòu)比較多,波浪出現(xiàn)的隨機(jī)性較強(qiáng),能夠很好的模擬出海浪的各種細(xì)節(jié),但是不適合模擬平靜海面,而且計(jì)算量比較大,每一個(gè)波形都需要進(jìn)行計(jì)算,對(duì)設(shè)備要求較高,在仿真的實(shí)時(shí)性方面較弱;本文方法可以模擬出不同類型的海浪場(chǎng)景,從漣漪海面到?jīng)坝康暮@?,適用領(lǐng)域廣泛,針對(duì)不同場(chǎng)景選擇不同海浪譜進(jìn)行仿真模擬,且本文方法不需要實(shí)時(shí)計(jì)算每個(gè)海浪波形,克服了物理模擬計(jì)算量大的問(wèn)題,提高了海浪模擬的真實(shí)性、隨機(jī)性、多變性、實(shí)時(shí)性,減少了海浪模擬的復(fù)雜度.
圖4 不同模擬方法的海浪仿真圖Figure 4 Wave simulation diagrams of different simulation methods
本文采用了三維方程建模方法,提出了將 Gerstner函數(shù)作為波浪模型與JONSWAP譜相結(jié)合的方法來(lái)實(shí)現(xiàn)動(dòng)態(tài)的海浪建模.選取的方程組Gerstner函數(shù)能夠描述海浪的細(xì)節(jié)和真實(shí)度,并將其擴(kuò)展成三維方程組建立了真實(shí)場(chǎng)景情況下的海浪模型,采用了JONSWAP海浪譜的譜參數(shù)對(duì)海浪模型進(jìn)行控制,實(shí)現(xiàn)了海浪模型的真實(shí)性、多變性、波浪強(qiáng)度可變性、隨機(jī)性、實(shí)時(shí)性的海浪特性模擬.本文提出的方法能夠仿真出不同波浪強(qiáng)度下逼真的海浪場(chǎng)景,適用領(lǐng)域廣,具有較好的應(yīng)用價(jià)值.