斯園園,楊 靜,蒙學昊,朱崇遠,張海濤
(中海油能源發(fā)展采油服務公司 天津 300452)
海浪是在風的推動下在海洋中傳播的短周期波動。一般來說,在風的作用下海洋表面產生的局部無規(guī)則的海浪被稱為風浪。風浪是常見的惡劣航行場景,巨大的海浪、海上風暴漩渦、海洋表面上的強流等給船舶航行增加了諸多風險。這些風險都會導致船體失去平衡、側翻、搖晃,其結果為貨物受損、碰撞暗礁,造成生命財產損失。近年來,海洋氣象服務不斷發(fā)展,海上狀況預報準確率上升,附加的警示功能愈加及時有效,海上安全事故顯著減少,但仍不容小覷、不能放松警惕。
物理學的角度認為風是由于空氣做流體運動產生的??諝鈩恿W中把空氣當作流體,因此,對于空氣流動的風場可以采取光滑粒子流體動力學(Smoothed Particle Hydrodynamics,SPH)的流體模 型[1]建模。但是空氣粒子的密度小,會造成接觸面附近的數值不穩(wěn)定,其次,如果要模擬惡劣海況,需要大量的空氣粒子,如果數量不足,就很難產生足夠的能量。雖然僅拾取海水表面的空氣粒子作為樣本的方法可以為這種情況提供一種解決思路,但其目前僅適合模擬小型不劇烈的空氣場景,對于劇烈的海上風場建模不適用。
在SPH框架中,個別特殊的阻力模型[2]可以廣泛應用到風場模型中??諝夂土黧w之間的相互作用可以用阻力模型來模擬。因為阻力模型屬于外力模型,所以不需考慮空氣粒子的采樣和穩(wěn)定性的影響。但是,阻力的大小與風的接觸面積直接相關,在高風速下,如果空氣中流體粒子的量不足,也不會產生明顯的波浪效果。如果要將它應用在海浪和強風的場景中并產生理想的海浪,需要進行某些改進。借鑒阻力模型,采用基于Perlin噪聲[3]和改進對數風廓線[4-5]的隨機脈沖風場模型,可繞過空氣粒子帶來的問題,最終模擬理想的受大風影響下的海浪場景[6]。
在風場模型[7-8]中,首先確定水平方向上的固定高度href,此點的風速為,該點的風速決定了整個風場的強度。為了能夠建立隨機變化的風場,利用Perlin噪聲在基準風速上加上了無規(guī)則擾動。
Perlin是一種偽隨機的呈梯度的噪聲,噪聲函數假設為Noise(x,y,z),三維空間中的任意一點用(x,y,z)表示,確定立方體晶格的參考點:
若x1=x0+1,y1=y0+1,z1=z0+1,則確定的立方體晶格如圖1所示。
如圖2所示,圖1中正方體的每個頂點都生成 1個偽隨機的梯度向量。從給定的梯度向量列表中選取梯度向量,該表由正方體的中心點到各邊中點的向量組成。梯度向量在Perlin下表示為:(1,1,0),(-1,1,0),(1,-1,0),(-1,-1,0),(1,0,1),(-1,0,1),(1,0,-1),(-1,0,-1),(0,1,1),(0,-1,1),(0,1,-1),(0,-1,-1)。每個頂點梯度向量的偽隨機性使得輸入相同的值都可以獲得同一輸出值。
圖1 Perlin噪聲立方體晶格示意圖 Fig.1 Schematic diagram of Perlin noise cube lattice
圖2 偽隨機梯度向量示意圖 Fig.2 Schematic diagram of pseudo-random gradient vector
正方體內任意隨機點都可以用向量(i,j,k)表示,其中i為正方體上平面和下平面之間的整數值集合i={x0,x1},同理其他2個邊界整數值的集合分別為j={y0,y1},k={z0,z1}。則頂點(i,j,k)的梯度為:
式中:梯度列表用G表示,P表示0~255之間的無重復隨機排列組合。
頂點梯度值的確定可以利用按位運算得到梯度列表的索引,為了防止緩存的溢出,會在實現(xiàn)時重復1次P排列組合,因此,P排列組合的最終長度為512。確定頂點的梯度向量后,需要計算各頂點指向輸入點的距離向量與梯度向量的點積:
式中:d為正方體的頂點點積組成的集合。確定點積集合后,利用插值法,根據點積集合計算每個輸入點對應的噪聲值Noise(x,y,z)。具體計算過程如下:
式中:d為相應的點積分量,插值系數用u、v、w表示。圖3所示為插值計算的示意圖。
圖3 插值計算示意圖 Fig.3 Schematic diagram of interpolation calculation
Perlin噪聲使用如下非線性插值函數:
插值系數為:
為了使Perlin噪聲更自然、更好地產生分形效果,通常使用倍頻對不同頻率和不同振幅的Perlin噪聲 Noise( x,y,z)進行累積計算。表1為倍頻和Perlin噪聲的疊加計算過程和公式。圖4為一維Perlin噪聲示例,圖5為二維情況下的Perlin噪聲示例,倍頻值為8。但在實際應用過程中,過大的倍頻值往往會帶來額外的復雜計算量,對計算結果起到適得其反的效果。因此,應根據實際應用場景合理選擇倍頻值的 取值。
表1 累積計算過程 Tab.1 Cumulative calculation process
圖4 Perlin噪聲示例 Fig.4 Perlin noise example
圖5 二維Perlin噪聲示例 Fig.5 Examples of 2D Perlin noise
將Perlin噪聲帶入SPH框架中,把海水粒子的位置xi作為輸入值對水平風場進行隨機干擾:
當風吹在海水表面時,海水表面的最上層海水粒子受風的影響更大,因此,最上層的海水粒子的速度會更快。然而,由于外力的作用,海水粒子受風的影響將隨著深度的增加而衰減。因此,深層海水粒子的速度也將呈現(xiàn)垂直衰減的趨勢。利用海水粒子受風場影響的速度隨深度衰減的情況,推導了一種新海水粒子速度衰減方程:
在加入風廓線方程后,海水粒子的風速增量既有了隨機性又有了垂直方向上衰減的特性。但在自然界中,風速的作用通常間斷的,因此,考慮其間斷不連續(xù)性,提出了一種脈動風場:
為了驗證隨機脈沖風場的有效性,把隨機脈沖風場放在不同場景中進行了應用測試。圖6為這次風浪場景的設計。該場景中流體粒子數為57.9k,海水 塊和邊界的大小如圖7所示。
圖6 風浪場景設計圖 Fig.6 Design drawing of wind and wave scenarios
在圖6所示場景條件下,以0.005s的時間步長模擬了無風和不同風向、不同風速下的海水粒子運動,模擬結果如圖7~9所示。圖中海水粒子的顏色對應它們的瞬時速度。在沒有風的情況下,海水不受風場的作用,海水的運動范圍相對較小,在此期間海水粒子的速度一般較慢。顏色條和速度值之間的非線性映射為在平靜條件下觀察緩慢的海水粒子創(chuàng)造了有利條件。
圖7顯示了在沒有風的情況下只有重力作用時海面上海水粒子的分布情況。由于只受重力作用,受力較為均勻,海水粒子分布較為對稱整齊,趨勢平緩。圖8和圖9所示為脈沖周期為6s時各種風場條件作用下海面上海水粒子的運動分布。取每個脈沖周期的前0.75s作為脈沖的寬度,風速和風向如圖左上角所注。風力強度控制參數取β=1.5。
圖7 無風條件下的海面 Fig.7 Sea surface under no wind condition
圖8 初始風速為-18.0,0.0,-0.5時的海面 Fig.8 Sea surface at initial wind speeds of 18.0,0.0 and -0.5
圖9 初始風速為-15.0,0.0,-8.0時不同時間點的海面 Fig.9 Sea surface at initial wind speeds of -15.0,0.0 and -8.0 at different time points
通過模擬LNG船舶海上航行時遇到復雜海浪和風浪等應急場景,可以輔助應急與安全處理工作,提升應急反應能力。
基于Perlin噪聲和改進對數風廓線的隨機脈沖風場進行建模,與采用SPH建立的流體模型相比,該模型不需要對空氣粒子進行大量的采樣工作就能實現(xiàn)理想的大風浪場景。根據仿真結果可知,處于海面表面上的高處海水粒子受風的影響較為明顯,加上其他因素影響,此時船體很容易發(fā)生顛簸。低處的海水粒子較為穩(wěn)定,受風場影響較小,較難產生波浪翻轉的效果。該模型易于工程實現(xiàn),能適應更多的空氣場景,具有較強的適用性?!?/p>