国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于CUDA的散貨船穩(wěn)性并行計(jì)算

2017-11-03 16:26王智洲孫霄峰劉春雷李軍翼
艦船科學(xué)技術(shù) 2017年10期
關(guān)鍵詞:水線力臂穩(wěn)性

王智洲,孫霄峰,尹 勇,劉春雷,李軍翼

(大連海事大學(xué) 航海動(dòng)態(tài)仿真和控制交通部重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116026)

基于CUDA的散貨船穩(wěn)性并行計(jì)算

王智洲,孫霄峰,尹 勇,劉春雷,李軍翼

(大連海事大學(xué) 航海動(dòng)態(tài)仿真和控制交通部重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116026)

為提高散貨船配載儀中船舶穩(wěn)性計(jì)算速度,通過(guò)使用CUDA(Compute Unified Device Architecture)對(duì)穩(wěn)性計(jì)算過(guò)程進(jìn)行并行加速。首先基于CGAL(Computational Geometry Algorithms Library)中的切片模塊按肋位縱向切割船體型表面,得到每個(gè)肋位處橫剖面型值數(shù)據(jù);然后對(duì)橫剖面型值數(shù)據(jù)進(jìn)行等距偏移模擬板厚,得到各肋位處的外板數(shù)據(jù);然后將外板數(shù)據(jù)發(fā)往GPU;在GPU中通過(guò)水線面和外板數(shù)據(jù)求解并行計(jì)算雅克比矩陣系數(shù);最后將雅可比矩陣系數(shù)傳回CPU,求解穩(wěn)性方程組。

CUDA;并行計(jì)算;船舶穩(wěn)性;CGAL;配載儀

0 引 言

船舶在外力作用下偏離其平衡位置而傾斜,當(dāng)外力消失后,能自行恢復(fù)到原來(lái)平衡位置的能力,叫做船舶穩(wěn)性[1]。船舶穩(wěn)性是船舶最主要的航行性能之一,是確保船舶安全航行的基本保障。對(duì)于船舶經(jīng)濟(jì)安全的運(yùn)營(yíng)有重要的意義。目前國(guó)內(nèi)的配載儀對(duì)穩(wěn)性的計(jì)算大多基于裝載手冊(cè)數(shù)據(jù),不考慮縱傾的影響,這導(dǎo)致計(jì)算的精度不足。

目前船舶靜水中穩(wěn)性的計(jì)算,主要有4類算法:

第1類是牛頓迭代法。趙曉非[2]、桑松[3]將船舶穩(wěn)性計(jì)算轉(zhuǎn)化為求解優(yōu)化問(wèn)題,成功實(shí)現(xiàn)了在自由縱傾狀態(tài)下船舶的穩(wěn)性曲線計(jì)算方法,運(yùn)用牛頓迭代法將其轉(zhuǎn)化為線性化方程組進(jìn)行求解。孫承猛[4]在此基礎(chǔ)上引入差商代替導(dǎo)數(shù)的思想來(lái)求解雅可比矩陣。牛頓迭代法收斂速度較快,但是該方法需要的船舶參數(shù)較多,特別是在大橫傾狀態(tài)下船舶水線面發(fā)生很大變化,導(dǎo)致求取船舶參數(shù)變復(fù)雜。

第2類是優(yōu)化法。馬坤[5]將自由縱傾下最小功原理的優(yōu)化問(wèn)題釆用非線性規(guī)劃中的懲罰函數(shù)法進(jìn)行迭代求解,對(duì)計(jì)算自由縱傾下的穩(wěn)性問(wèn)題進(jìn)行了簡(jiǎn)化。優(yōu)化法對(duì)于求解參數(shù)的設(shè)定要求較高,若設(shè)置不合理可能造成迭代過(guò)多,收斂緩慢。

第3類是有限元分析法。令波[6]基于船舶三維模型,通過(guò)有限元分析計(jì)算穩(wěn)性。有限元分析法需要?jiǎng)澐执罅康木W(wǎng)格,計(jì)算量較大,實(shí)時(shí)性較差。

第4類是表面元法。程智斌[7]、Radwan[8]采用表面元法計(jì)算船舶的穩(wěn)性。這種方法是把船舶的表面分解成許多小的表面單元,從而算出某傾角下的回復(fù)力矩。表面元法提出用靜壓力解決穩(wěn)性問(wèn)題的新思路,但同時(shí)涉及大量面元的計(jì)算,計(jì)算量大。

考慮到程序的實(shí)時(shí)性,本文選用牛頓迭代法求解船舶穩(wěn)性方程組。目前配載儀的程序?qū)τ诜€(wěn)性的計(jì)算都基于CPU編寫,由于功耗和散熱的限制,單CPU已經(jīng)達(dá)到了4 GHz左右的時(shí)鐘極限[9]。CPU被設(shè)計(jì)用來(lái)運(yùn)行單個(gè)復(fù)雜的運(yùn)算,GPU被設(shè)計(jì)用來(lái)進(jìn)行高密度的簡(jiǎn)單并行計(jì)算。GPU通過(guò)成千上萬(wàn)的線程來(lái)隱藏延遲,實(shí)現(xiàn)高速運(yùn)算,單個(gè)線程的計(jì)算在GPU上運(yùn)行效率很低[10]。CPU的設(shè)計(jì)宗旨是在單個(gè)CPU單元上對(duì)數(shù)據(jù)進(jìn)行處理,而由于GPU上集成了成百上千處理單元,因此GPU并行計(jì)算能力大于CPU?,F(xiàn)在的GPU如GTX 1080有2 560個(gè)CUDA核心,浮點(diǎn)計(jì)算能力為8.9 TFLOPS,而八核心的CPU I7 5960X的浮點(diǎn)計(jì)算能力僅為354 GFLOPS?,F(xiàn)在GPU能夠提供強(qiáng)大的計(jì)算能力,并且具有較高的存儲(chǔ)帶寬。

如今GPU已經(jīng)被大量應(yīng)用于通用計(jì)算領(lǐng)域,如固體力學(xué)計(jì)算、分子動(dòng)力學(xué)計(jì)算、飛行器優(yōu)化設(shè)計(jì)等。如果將牛頓迭代法求解船舶穩(wěn)性方程組的過(guò)程并行化,通過(guò)GPU強(qiáng)大的浮點(diǎn)運(yùn)算并行能力,則可大大加快散貨船配載儀中穩(wěn)性計(jì)算的效率。

1 基于CGAL的船舶數(shù)據(jù)庫(kù)建立

CGAL(Computational Geometry Algorithms Library,計(jì)算幾何算法庫(kù))[11]以C++庫(kù)的形式提供高效、可靠的幾何算法。CGAL提供計(jì)算幾何相關(guān)的數(shù)據(jù)結(jié)構(gòu)和算法,如三角剖分、Voronoi圖、多邊形、幾何處理和凸包算法等。

本文利用CGAL幾何算法庫(kù)中的切片模塊,沿船長(zhǎng)方向依次切割船舶三維型表面,得到船舶每個(gè)肋位處橫剖面的型值數(shù)據(jù)。通過(guò)使用CGAL幾何算法庫(kù)中的切片功能,可得到任意浮態(tài)下船舶橫剖面封閉環(huán)上點(diǎn)的三維坐標(biāo),如圖1所示。x軸船首方向?yàn)檎瑈軸左舷方向?yàn)檎???紤]到船殼版的存在,需要對(duì)船舶每個(gè)橫剖面進(jìn)行大小為平均板厚的等距偏移,來(lái)得到外板數(shù)據(jù),具體的過(guò)程見(jiàn)參考文獻(xiàn)[12]。

2 穩(wěn)性計(jì)算

2.1 船舶穩(wěn)性方程組求解

式中,V為排水體積;XB,YB,ZB為船舶浮心的縱向、橫向和垂向坐標(biāo)。

定義基平面和水線面大圓弧相交頂角α的球面二角形:

船舶由任意浮態(tài),等體積的傾斜某個(gè)指定角度α1時(shí),設(shè)傾斜船舶功的函數(shù)為T,穩(wěn)性求解可以表達(dá)為在約束條件下求函數(shù)T的極值問(wèn)題,函數(shù)T的極值點(diǎn)由下列方程確定:

式中:θ,φ分別為橫傾角和縱傾角;V0為初始排水體積;θ0,φ0分別為初始橫傾角和縱傾角;α0為初始基平面和水線面大圓弧相交頂角。α1為最終水線面和初始水線面夾角。

引入向量表示:

式中:Tm為船中吃水。

使用牛頓法得到線性化方程:

解線性方程組:

式中:δTm,δtanθk,δtanφk為設(shè)置精度。

按照船舶靜力學(xué)原理,式(6)的雅克比矩陣為:

圖1 散貨船SHANDONG REN HE型表面橫剖面示意圖Fig. 1 Molded surface transverse sections of bulk carrier SHANDONG REN HE

式中:S為水線面在基平面上的投影面積;XF,YF,ZF為船舶漂心的縱向,橫向和垂向坐標(biāo);水線面對(duì)Ox軸的面積慣性矩為Ix;水線面面積S對(duì)于通過(guò)該水線面漂心F的橫軸的縱向慣性矩為ILF;S的慣性積為Ixy。

總復(fù)原力臂L為:

2.2 雅克比矩陣系數(shù)計(jì)算

2.2.1 水線面系數(shù)計(jì)算

將船體坐標(biāo)轉(zhuǎn)換到船中后,按照文獻(xiàn)[13]給出的傾斜水線面一般式方程為:

設(shè)水線面左舷曲線為p(x),右舷曲線為s(x)。水線面在基平面上投影的面積S為:

式中:x0,xn分別為船首尾到z軸距離。

漂心F(XF,YF,ZF)的坐標(biāo)為:

水線面對(duì)Ox軸,Oy軸的面積慣性矩Ix,Iy為:

水線面參數(shù)的計(jì)算可以先計(jì)算每個(gè)肋位處微元參數(shù),再通過(guò)梯形積分法沿船長(zhǎng)方向積分求出。類似的,可以用梯形法近似求取其他船舶參數(shù)。

2.2.2 排水體積和浮心的計(jì)算

排水體積

式中AS為距離z軸x處的橫剖面面積。

船舶浮心坐標(biāo)B(XB,YB,ZB)為:

式中:Myoz,Mxoz和Mxoy分別為排水體積對(duì)中站面、中線面和基平面的靜矩;xa,ya,za分別為距z軸x處的橫剖面的形心縱向,橫向和垂向坐標(biāo)。

2.3 基于CUDA的程序設(shè)計(jì)

NVIDIA公司為了推動(dòng)GPU在大規(guī)模高性能計(jì)算領(lǐng)域里的發(fā)展,在2006年11月推出為通用并行計(jì)算開發(fā)的CUDA通用并行計(jì)算架構(gòu),由于它的編程方便與并行性能高的特點(diǎn),充分利用了CPU和GPU各自的優(yōu)點(diǎn),實(shí)現(xiàn)CPU/GPU聯(lián)合執(zhí)行,使得并行計(jì)算得到更快的發(fā)展[10]。

在GPU中,CUDA的并行結(jié)構(gòu)由網(wǎng)格(grid)-塊(block)-線程(thread)的結(jié)構(gòu)組成。其結(jié)構(gòu)如圖2所示。CUDA將問(wèn)題分解成線程塊的網(wǎng)格,每塊包含多個(gè)線程,執(zhí)行相同的代碼。每個(gè)塊可以被分配到任意一個(gè)處理器核心以并行或串行方式執(zhí)行。

圖2 CUDA并行結(jié)構(gòu)示意圖[14]Fig. 2 CUDA structure diagram

CUDA在編譯時(shí),會(huì)將CPU代碼和GPU代碼分開編譯。程序從主機(jī)端的CPU代碼開始執(zhí)行,當(dāng)執(zhí)行到GPU代碼時(shí),調(diào)用內(nèi)核函數(shù),并將代碼切換到GPU。當(dāng)內(nèi)核函數(shù)執(zhí)行完后,設(shè)備代碼被切換到CPU端,繼續(xù)執(zhí)行代碼。

本文用C++語(yǔ)言,使用CUDA 7.5編寫了船舶穩(wěn)性計(jì)算程序,其流程如圖3所示。首先對(duì)所有切割肋位處的橫剖面進(jìn)行等距偏移得到外板的離線數(shù)據(jù);然后將外板的離線數(shù)據(jù)發(fā)送到GPU,在迭代過(guò)程中,外板數(shù)據(jù)一直儲(chǔ)存在顯存中。

由船舶初始浮態(tài)得到船舶初始船中吃水、橫傾角及縱傾角,從而確定初始水線面;依次與水線面求交得到水線面數(shù)據(jù)和水下部分橫剖面數(shù)據(jù);現(xiàn)在船舶數(shù)據(jù)可以分為2個(gè)部分,求解雅可比矩陣的所需的靜水力參數(shù)可以同步并行計(jì)算。

考慮到求解船舶穩(wěn)性方程組的數(shù)據(jù)量很小,不適合使用GPU處理,將GPU中的靜水力系數(shù)值傳回CPU,計(jì)算雅各比矩陣系數(shù)求解穩(wěn)性方程組;若滿足精度要求則輸出該傾角下的復(fù)原力臂值,接著進(jìn)行下一個(gè)傾角的力臂計(jì)算;否則確定新的水線面繼續(xù)迭代。

3 算 例

以散貨船SHANDONG REN HE為例,平均板厚為0.021 m,分別設(shè)計(jì)CPU和GPU處理的程序,計(jì)算回復(fù)力臂值,設(shè)置步長(zhǎng)為5°,計(jì)算區(qū)間0°到80°。根據(jù)計(jì)算結(jié)果繪制復(fù)原力臂曲線。用本文計(jì)算結(jié)果與二維數(shù)值計(jì)算方法的計(jì)算值進(jìn)行對(duì)比,結(jié)果如圖4~圖6所示??梢钥吹皆跈M傾初期2種計(jì)算方法結(jié)果相差較小。在橫傾角超過(guò)60°~70°時(shí),計(jì)算結(jié)果相差較大,主要原因在于在該種載況下,橫傾角已經(jīng)超過(guò)進(jìn)水角,本文的計(jì)算方法已經(jīng)包含艙蓋等船體上部計(jì)算數(shù)據(jù),與二維計(jì)算法計(jì)算結(jié)果相比存在一定誤差。

圖3 穩(wěn)性計(jì)算流程圖Fig. 3 Stability calculation flowchart

圖4 壓載出港穩(wěn)性力臂對(duì)比圖Fig. 4 Comparison of GZ during ballast condition at DEP

圖5 壓載途中穩(wěn)性力臂對(duì)比圖Fig. 5 Comparison of GZ during ballast condition in MID

圖6 壓載到港穩(wěn)性力臂對(duì)比圖Fig. 6 Comparison of GZ during ballast condition at ARR

4 結(jié) 語(yǔ)

本文基于船舶三維型表面模型及CGAL幾何算法庫(kù)中的切片模塊建立了船舶三維基礎(chǔ)數(shù)據(jù)庫(kù),在此數(shù)據(jù)庫(kù)基礎(chǔ)上,通過(guò)CUDA并行加速,實(shí)現(xiàn)了船舶穩(wěn)性的實(shí)時(shí)計(jì)算,可得到如下結(jié)論:1)船舶三維型表面模型來(lái)源于船舶設(shè)計(jì)軟件,是船舶真實(shí)數(shù)據(jù),計(jì)算精度較高;2)以散貨船SHANDONG REN HE為例,對(duì)多個(gè)典型載況進(jìn)行計(jì)算,驗(yàn)證了本文算法的準(zhǔn)確性。

[1]盛振邦, 劉應(yīng)中. 船舶原理[M]. 上海交通大學(xué)出版社, 2003.

[2]趙曉非, 蔡偉科. 船舶穩(wěn)性計(jì)算優(yōu)化方法研究[J]. 中國(guó)造船,1987(02): 88–94.

ZHAO Xiao-fei, CAI Wei-ke, An optimization methodforthe calculation of ships stability curves[J]. Shipbuilding of China,1987(02): 88–94.

[3]桑松, 徐學(xué)軍. 浮式結(jié)構(gòu)物完整穩(wěn)性優(yōu)化計(jì)算原理[J]. 上海交通大學(xué)學(xué)報(bào), 2009(10): 1568–1572.

SANG Song, XU Xue-jun. Optimization calculational Principle on intact stability of floating structures[J]. Journal of Shanghai Jiaotong University, 2009(10): 1568–1572.

[4]孫承猛, 劉寅東. 一種船舶最小穩(wěn)性和自由浮態(tài)計(jì)算的改進(jìn)算法[J]. 中國(guó)造船, 2007(03): 1–4.

SUN Cheng-meng, LIU Yin-dong. An improved algorithm for calculating ship’s minimum stability and free floatation[J].Shipbuilding of China, 2007(03): 1–4.

[5]馬坤, 張明霞, 紀(jì)卓尚, 等. 非線性規(guī)劃法計(jì)算船舶穩(wěn)性[J].中國(guó)造船, 2003(02): 83–86.

MA Kun, ZHANG Ming-xia, JI Zhou-shang, et al. Application of nonlinear programming to calculation of ship stability curve[J]. Shipbuilding of China, 2003(02): 83–86.

[6]令波. 浮性與完整穩(wěn)性的直接計(jì)算法[D]. 武漢:華中科技大學(xué), 2013.

[7]程智斌, 魏建志, 曾宏軍. 計(jì)算破損船舶穩(wěn)性的表面元法[J].海軍工程大學(xué)學(xué)報(bào), 2002(4): 41–44.

[8]RADWAN A M. A different method to evaluate the intact stability of floating structures[J]. Marine Technology and Sname News, 1983, 20(1): 21–25.

[9]COOK S. CUDA programming: a developer’s guide to parallel computing with GPUs[M]. Newnes, 2012.

[10]KIRK D B, Wen-mei W H. Programming massively parallel processors: a hands-on approach[M]. Newnes, 2012.

[11]The Computational Geometry Algorithms Library[EB/OL].[2016-8-19]. http://www.cgal.org.

[12]王智洲, 孫霄峰, 尹勇, 等. 基于三維設(shè)計(jì)數(shù)據(jù)的船舶濕面積計(jì)算[J]. 船舶工程, 2016, 38(05): 5–8.

WANG Zhi-zhou, SUN Xiao-feng, YIN Yong, et al. Ship’s wetted surface calculation based on 3D design data[J]. Ship Engineering, 2016, 38(05): 5–8.

[13]張明霞. 基于NURBS曲面的船舶破艙穩(wěn)性計(jì)算方法研究[D]. 大連理工大學(xué), 2002.

[14]NVIDIA. CUDA programming guide V 7.5[Z]. 2015.

CUDA based bulk carrier stability parallel calculation

WANG Zhi-zhou, SUN Xiao-feng, YIN Yong, LIU Chun-lei, LI Jun-yi
(Key Laboratory of Marine Simulation and Control, Dalian Maritime University, Dalian 116026, China)

This paper designs a method to accelerate calculation progress using the NVIDIA CUDA (Compute Unified Device Architecture). By using the slicing module in CGAL(Computational Geometry Algorithms Library), the offset table was obtained through longitudinally slicing 3D design surface; The shell data were gained by simplification and equidistant offsetting and sent to GPU; Jacobi matrix coefficients were gained parallelly by intersecting water plane and shell data; The Jacobi matrix coefficients were sent to CPU to solve equations. Our results show speed up of 6 to 10 times and the real time performance of the program is improved effectively.

CUDA;parallel computing;ship stability;CGAL;Loading computer

U661.22

A

1672 – 7649(2017)10 – 0040 – 05

10.3404/j.issn.1672 – 7649.2017.10.007

2016 – 09 – 08;

2016 – 10 – 27

863課題資助項(xiàng)目(2015AA016404);海洋公益性行業(yè)科研專項(xiàng)資助項(xiàng)目(201505017-4);中央高校基本科研業(yè)務(wù)費(fèi)資助項(xiàng)目(3132016310)

王智洲(1993 – ),男,碩士研究生,研究方向?yàn)榇办o力學(xué)。

猜你喜歡
水線力臂穩(wěn)性
基于ABAQUS 的飛機(jī)起落架扭力臂拓?fù)鋬?yōu)化分析
主編序
大型船舶水線面視覺(jué)圖像準(zhǔn)確檢測(cè)系統(tǒng)
船舶穩(wěn)性控制系統(tǒng)研究
水面艦船初穩(wěn)性高指標(biāo)要求研究
風(fēng)雨激振中斜拉索表面水線運(yùn)動(dòng)的三維數(shù)值模擬
Association between interleukin-21 gene rs907715 polymorphism and gastric precancerous lesions in a Chinese population
第二代完整穩(wěn)性衡準(zhǔn),未來(lái)新標(biāo)尺
規(guī)?;怆u養(yǎng)殖場(chǎng)水線管理
巧解杠桿平衡問(wèn)題