[發明專利]一種基于異構計算的船舶有限時間可達集快速求解方法在審
| 申請號: | 202211091528.5 | 申請日: | 2022-09-07 |
| 公開(公告)號: | CN116304496A | 公開(公告)日: | 2023-06-23 |
| 發明(設計)人: | 鄭凱;王科文;姜毅;王子昕 | 申請(專利權)人: | 大連海事大學 |
| 主分類號: | G06F17/13 | 分類號: | G06F17/13;G06Q10/04;G06F9/50 |
| 代理公司: | 大連東方專利代理有限責任公司 21212 | 代理人: | 魯保良;李洪福 |
| 地址: | 116026 遼*** | 國省代碼: | 遼寧;21 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 計算 船舶 有限 時間 可達集 快速 求解 方法 | ||
1.一種基于異構計算的船舶有限時間可達集快速求解方法,其特征在于:包括以下步驟:
步驟A:利用數值微分方法求解在有限時間內的船舶可達集
步驟A1:確定船舶動態系統模型如下:
式中,X∈Rn為船舶動態系統的狀態向量,為狀態向量X關于時間的導數,Rn代表n維向量空間的實數;U∈Rm為船舶動態系統的控制輸入向量,Rm代表m維向量空間的實數;t為時間變量,即給定控制輸入向量的條件下,船舶的運動狀態隨著時間的變化而發生改變;其中船舶動態系統的狀態向量X=[x,y,z,φ,θ,ψ,u,v,w,p,q,r],x,y,z,φ,θ,ψ,u,v,w,p,q,r分別為船舶在大地坐標系下的橫向位置、縱向位置、垂向位置、橫搖角、縱搖角、艏搖角、前進速度、橫漂速度、升沉速度、橫搖角速度、縱搖角速度和艏搖角速度;對于船舶而言,U=(ui,u0),其中ui為舵角,u0為螺旋槳轉速;a1≤ui≤a2,b1≤u0≤b2,a1和a2分別為ui的下限和上限,b1和b2分別為u0的下限和上限;
步驟A2:基于步驟A1中的船舶動態系統模型,根據當前船舶狀態初始化X中所有變量為0,當輸入向量U在其輸入范圍內為常值時,設定時長為T,運算間隔為Δt,即步長為Δt,采用數值微分方法求解在上述條件下的船舶動態系統模型,得到從初始時刻t0到t0+T的解如下:
pi=(xi,yi,t0+iΔt)i=1,…,n
式中,n為運算間隔總數;
將所有解pi的集合記為一條可達路徑P,表示如下:
P={p1,…,pn}?(2)
步驟A3:根據步驟A2求解一條路徑P的算法,對船舶動態系統的狀態向量X使用同樣的初始輸入條件,輸入向量ui在[a1,a2]中任取N個不同值,u0在[b1,b2]中任取M個不同值,將N×M個不同輸入組合作為船舶動態系統的初始輸入;在T時間內,將N×M個初始輸入分別采取步驟A2的數值微分方法進行求解,得到N×M條路徑,將這些路徑的并集記為船舶可達集R(t):
步驟B:評估CPU處理器和GPU處理器對船舶可達集的運行時間
步驟B1:將步驟A2中船舶運行路徑的數值求解方法,在CPU處理器中采用單線程求解一條可達路徑,運行時間記為T1;
步驟B2:在GPU處理器中采用單線程求解一條可達路徑,運行時間記為T2;
步驟B3:根據步驟B1得到的CPU處理器計算單個線程的運行時間T1和步驟B2得到的GPU處理器計算單個線程的運行時間T2,得到在單個線程運算時CPU處理器與GPU處理器的計算速率比為:
步驟C:分配CPU-GPU計算線程
步驟C1:根據步驟B中得到的CPU處理器和GPU處理器的運行時間,將N×M個初始輸入條件對CPU處理器和GPU處理器進行實時動態分配,動態分配的次數v以及剩余初始輸入條件數S的計算公式如下:
式中,v取整數部分;K×NCPU指的是單次分配給CPU處理器的初始輸入條件數;NGPU指的是單次分配給GPU處理器的初始輸入條件數;
根據以下條件將剩余初始輸入條件數S分配到兩個處理器中運行:
C11、當K×NCPU<NGPU時:
若NGPU<S<(K×NCPU+NGPU),則將NGPU個初始輸入條件分配給GPU處理器,S-NGPU個初始輸入條件分配給CPU處理器運行;
若K×NCPU<S<NGPU,則將S個初始輸入條件分配給GPU處理器運行;
若S≤K×NCPU,則將S個初始輸入條件分配給CPU處理器運行;
C12、當NGPU<K×NCPU時:
若S<K×NCPU,則將S個初始輸入條件分配給CPU處理器運行;
若K×NCPU<S<(K×NCPU+NGPU),則將NGPU個初始輸入條件分配給GPU處理器,S-NGPU個初始輸入條件分配給CPU處理器運行;
步驟C2:在GPU處理器中設置數據緩存數組L1,大小為n×NGPU,用來緩存GPU處理器運行過程中得到的數據;根據步驟C1的分配方式,每一次分配給GPU處理器的NGPU個初始輸入條件分別對應到GPU處理器中的NGPU個線程,在有限時間內將NGPU個線程同時利用步驟A2所述的數值微分方法在NGPU個線程中求解NGPU條可達路徑,求解路徑的所有數據暫存在數組L1中;在每次任務結束后再次分配剩余任務,直至所有任務運行結束;
步驟C3:在CPU中設置數據緩存數組L2,大小為n×K×NCPU,用來緩存CPU處理器運行過程中得到的數據;根據步驟C1的分配方式,GPU處理器運行的同時分配給CPU處理器計算的初始輸入條件數為K×NCPU,采用串行計算的方式,在每一層for循環中利用步驟A2所述的數值微分方法按照順序從第一個初始輸入條件任務開始計算,直到第K個任務運行結束,求解路徑的所有數據暫存在數組L2中;在每次任務結束后再次分配剩余任務,直至所有任務運行結束;
步驟D:在CPU處理器中設置總數據緩存數組L,存儲所有的CPU處理器和GPU處理器計算結果
步驟D1:GPU處理器在每一次分配任務且線程運行結束后,將緩存數組L1中的數據拷貝回CPU處理器總數據緩存數組L中后進行保存,當全部任務運行結束后釋放GPU處理器緩存空間;
步驟D2:CPU處理器在每一次分配任務且運行結束后,將緩存數組L2中的數據拷貝回CPU處理器總數據緩存數組L中進行保存,當全部任務運行結束后釋放CPU處理器緩存空間。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于大連海事大學,未經大連海事大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211091528.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種船載設備網絡拓展方法
- 下一篇:多域SDN中備份控制器部署方法及裝置





