江衍煊 黃 煥
(1.福建船政交通職業學院 福州 350007)
(2.福建交通職業技術學院航海技術研究所 福州 350007)(3.廣東海洋大學 湛江 524000)
?
基于Runge-Kutta設計運動船舶數學模型*
江衍煊1,2黃煥3
(1.福建船政交通職業學院福州350007)
(2.福建交通職業技術學院航海技術研究所福州350007)(3.廣東海洋大學湛江524000)
摘要為便于將海上船舶避碰問題利用計算機進行研究,需要把船舶的運動特點用數字形式進行模擬,把風、流和浪等問題一起討論并尋找最合適的數學表達式模擬出船舶航行的狀態,這樣才便于研究海上船舶避碰的問題。現以六面體船舶為典型特征來進行研究,疊加了矢量風、流和浪的數學表達式,并利用高階Runge-Kutta推導微分方程進行高精度仿真船舶海上航行的特征,并建立相應的數學模型以便于討論船舶避碰問題。
關鍵詞建模; 仿真; 六面體; 算法
Movement Ship Model Design Based on Ronge-kutta
JIANG Yanxuan1,2HUANG Huan3
(1. Fujian Chuanzheng Communications College, Fuzhou350007)
(2. Navigation Technology Research Institution, Fujian Chuangzheng Communications College, Fuzhou350007)
(3. Guangdong Ocean University, Zhanjiang524000)
AbstractIn order to facilitate the research for preventing collsions at sea, it can be studied via computers, which involves digital simulation of ship motion characteristics, considerations of wind, current and waves, as well as the layout of the most appropriate mathematical expressions to simulate the ship moving state. Based on the typical features of hexahedral ship, this paper researches superposing vector wind, current and waves, precisely simulating the characteristics of ship’s navigation at sea by high-order Runge-Kutta differential equation, establishing corresponding mathematical model, studies the prevention of ships’s collisions at sea.
Key Wordsmodeling, simulation, hexahedron, algorithm
Class NumberTP391.9
1引言
為了能夠利用計算機仿真船舶的航行狀態,在考慮到船舶在水中的運動會受到多方面的影響下,目前把船體的運動狀態和受力考慮成六面體進行研究[1],研究船舶所受到周圍各種作用的影響而建立相應的數學模型并用微分方程表示。
2影響船體運動的因素
2.1水的作用
船舶航行會受到空氣和水的作用,水面下存在水的阻礙作用,主要由基本阻力、摩擦阻力以及興波阻力組成。基本阻力是靜水時對運動船體所產生的阻礙作用,摩擦阻力是船體對水運動時,水的粘性所產生的阻力。興波阻力是船舶對水運動時產生船舶興波,該興波將沿著船體周圍所導致受到的壓力發生了變化而產生的阻礙作用。若船舶首尾線與流向存在交角時,流速和靜水船速的合成速度將使船舶向水流來向相反一舷運動的效果[3]。
2.2風的作用
船舶在航時水面以上部分將所受到風的影響,若頂風船舶就會減速,反之若順風則船速會減速;風向與首尾面斜交或者垂直則船舶受到風的影響會朝著下風漂移,船舶受到影響后船首將向上風或下風偏轉[11]。
3船舶數學建模
3.1模型的選取
研究船舶運動的核心內容是為了船舶避碰,建立船舶的數學模型就是把復雜的船舶運動用數學公式進行近似和簡化表達,但也不能太過于簡單導致無法充分描述系統的主要性能,所以建立數學模型要盡量降低復雜度,同時盡可能提高精度。模型的設計必須包括風、浪、流的干擾,且帶有非線性的船舶數學模型,才能比較真實地模擬出船舶運動的實際狀況[1]。
設船舶的位置[x0y0]T引入六自由度的簡潔線性數學模型方程,則其狀態變量為:x(6)=[vrΔφδx0y0],速度平衡方程:
(1)
其中r為預設航向,Δφ為航向偏差,δ為輸入舵角。因風浪對船舶漂移速度v及船首轉向角速度r影響以及海浪對船舶位置的改變,若流為恒速,那就會直接影響船舶位置和速度的變化,而不會影響航向,得到的速度平衡方程為[1]
其中:Vc為流速度,γc為流向。
3.2流的影響
用Norrbin簡潔的非線性表達非線性力、力矩的流體動力表達式[2]:
其中,
式中C為橫流系數,在自動舵控制的閉環系統研究中應用數學模型取值0.3~0.8之間。
3.3風力的干擾
式中Cγ(γR)、CN(γR)為風力和風力矩系數,經計算得出風力系數如表1所示。

表1 風力系數表(wind coefficient)
通過插值法查表求得CN(γR)的值,n為表中序號,由式n=floor(γR/10)進行浮點數取整獲得當前數的最大整數。ρA為空氣密度值,C為表中n對應的風力系數值,AL是人工輸入的船舶水線面上側投影面積,或者由船舶尺寸參數進行估算,VR為相對風速,VT為絕對風速,γR為風弦角。同樣通過插值法查表可求得CN(γR)的值。
uR=-VTcos(αWIND-φ)-u
vR=-VTsin(αWIND-φ)-v
其中αWIND,ψ變動范圍為0~360°,γR變動范圍為0~±180°,風向相對從右舷來時γR>0。大氣湍流形成的脈動風可以看作類似白噪聲的形式,則該標準差與VT的平方成正比,如下式[6]:
3.4波浪的影響
任何一短時刻的波浪可以看成固定頻率、周期和波高的規則波,假設船舶是規則的六面體,得到波浪的計算式:
其中k代表波浪數,T為周期,L為波長,ξ(t)表示波浪在坐標系原點處的振蕩,s(t)為波浪面在原點出的斜率,這里的ξ是沿著波浪傳播的方向。
4仿真算法
研究船舶自動避碰不僅需要研究避碰算法還需要研究船舶航行的數學模型,只有數學模型與船舶實際在航相一致才能充分利用計算機進行仿真,以便研究船舶的避碰。將船舶運動的數學模型轉換成計算機編程模塊,所以在進行編程之前必須將其數字化、離散化。在考慮編程之前,必須選擇合理恰當,并且算法簡單,最重要的是精度要高的策略[6]。
4.1船舶擬人智能避碰決策(PIDVCA)
PIDVCA是進行自動推理、定量計算、分析,避碰決策的智能化很強,對復雜海況的避碰時增加了大量的選擇性,導致在決策查找能力方面必然需要處理巨大數據量,因此對計算機數據處理速度要求很高,這就降低避碰決策的時效性,導致對物標判斷延誤造成決策失誤而帶來安全隱患。
4.2粒子群優化算法(PSO)
PSO源于人工生命和進化計算理論,算法用的參數較少、簡便易行、較快的收斂速度等優點,但是這種算法搜索精度低,收斂速度慢,時效差。
4.3神經網絡避碰決策模型。
神經網絡是通過學習專家的知識和經驗和調用網絡結點的權系數,并利用數據庫中的專家推理機制,從而實現自動避碰決策過程,這種算法需要大數據的專家推理進行計算,時效性也比較低。
在避碰決策時必須有其無可替代的數學公式的準確性,然而實際航海環境中不僅需要算法的數學準確性更需要結合實際航海規則。不僅需要研究避碰算法還需要研究船舶航行的數學模型,只有數學模型與實際在航相一致才能充分利用計算機進行仿真[7]。
4.4Runge-Kutta算法
為了盡可能模擬船舶的運動狀態,考慮用龍格-庫塔方法進行跟蹤船舶運動,再運用計算機進行仿真,只要龍格-庫塔的階數足夠高,就可以最大限度地模擬出船舶的運動態勢。
龍格-庫塔(Runge-Kutta)方法簡稱R-K法,它是應用于高精度單步跟蹤的一種算法。利用該算法時步長不能太大,否則會導致精度下降。單階的R-K公式的穩定性和跟蹤的精度遠不如高階的R-K公式,所以為了高精度跟蹤船舶的運動狀態需要實時的最優三級二階R-K公式或四級三階R-K公式。獲取Runge-Kutta高階的方法:
例如,某函數y(x)在xi-1處的斜率作為y(x)在[xi-1,xi]上的平均斜率K即:
K=y′(xi-1)=f[xi-1,y(xi-1)]≈f(xi-1,yi-1)
此為一階Runge-Kutta式。函數式為:yi=yi-1+hf(xi-1,yi-1)。

為了讓仿真的計算表達與真實運動的誤差盡量小,應該使用高階Runge-Kutta方法,利用類似插值原理,在相應的區間多取幾個點,取相應點斜率的加權平均值作為平均斜率。構造3階或4階的R-K推斷公式就為了獲取更高精度。四階的公式為
為了提高精度的要求下,采用非線性數學模型,其離散化方法采用數值積分法,并采用四階的RUNGE-KUTTA方法建立的數值仿真模型。利用上式進行推算得到船舶數學模型的四階表達式:
對于類似這種迭代方式的表達式,比較適合使用游標進行計算機計算。
begin
temp:=q;
q:=p;
p:=SPACE[q].next;
SPACE[Q].next:=temp;
Return()
End
利用相關計算機語言編程進行迭代之后計算得到相關數值如表2所示。

表2 計算出的相關數值
5數據模型表示
有了以上的表達式與計算機程序的計算結果之后,在設計船舶仿真時就需要添加對應的風流浪以及舵的作用,才能完整地體現出船舶運動狀態。

圖1 船舶運動參數疊加后情況

圖2 狀態方程設置

圖3 船舶模型的特征性
其中yn代表六自由度船舶模型中狀態初始量,yn+1代表仿真中期望得到的離散化結果,函數代表由數學建模之后由狀態空間模型方程計算出的微分方程,就是把船舶建模與Runge-kutta之間建立了聯系。如圖2所述在船舶部分初始化條件設置之后,就可以顯示出航向與位置,這樣船舶的運動狀態就基本可以確定了。
設計選取六自由度的船舶模型,考慮風、浪以及流對船舶的影響為依據對船舶模型進行了推導,利用四階R-K方程可以高精度地接近船舶運動狀態的特點。
6結語
利用龍格-庫塔算法進行仿真,在數學計算中誤差最小,利用計算機進行仿真時計算量不大,速度比較快。這種模型在船舶仿真過程中,對于涉及多艘船舶互見的運動態勢,該方法在船舶間能夠更精確計算出相關的避碰數據,有利于船舶及早采取行動。
參 考 文 獻
[1] 孫宏放.船舶三自由度仿真平臺設計與預報方法研究[D].哈爾濱:哈爾濱工程大學碩士論文,2006:46-126.
[2] 王鳳軍.船舶避碰仿真平臺設計[D].大連:大連海事大學,2013:66-89.
[3] 葉松,等.海浪干擾對船舶航向影響規律研究[J].艦船電子工程,2015(1):65-67.
[4] 史建,秀.船舶橫搖運動智能控制及其虛擬現實仿真研究[D].大連:大連海事大學碩士論文,2010:42-48.
[5] 汪宏,等.船舶失控撞擊高樁碼頭結構的數值仿真分析[J].水運工程,2015(6):51-55.
[6] 田超.風浪流作用下船舶操縱運動的仿真計算[D].武漢:武漢理工大學碩士論文,2003:66-87.
[7] 吳立金,等.面向船舶軟件的仿真測試平臺研究[J].計算機測量與控制,2015(5):1451-1456.
[8] 邢道奇,龔銘.船舶航向模糊自適應云模型控制[J].船舶,2015(3):42-47.
[9] 蔡新梅.基于UWB技術的船舶避碰系統抗干擾研究[J].艦船電子工程,2015(1):68-70.
[10] 殷虎,陳瑜.虛擬技術在船舶系統設計中的應用研究[J].裝備制造技術,2015(1):228-229.
[11] 田德,等.風能與動力工程專業教學理念研究與實踐[J].風能,2015(1):44-45.
中圖分類號TP391.9
DOI:10.3969/j.issn.1672-9730.2016.02.023
作者簡介:江衍煊,男,碩士,副教授,研究方向:船舶通信導航與自動化。黃煥,男,碩士,講師,研究方向:船舶通信導航及計算機在航海中的應用。
基金項目:福建省教育廳科技項目(編號:JB08275,JB10226)資助。
*收稿日期:2015年8月14日,修回日期:2015年9月30日