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

?

海洋石油支持船動(dòng)力定位模塊推力分配策略

2022-09-04 03:07:02林文錦張亞東安志辰
關(guān)鍵詞:推進(jìn)器模擬器力矩

林文錦,張亞東,安志辰

(1.中海油服船舶事業(yè)部,天津 300452;2.中海油服船舶事業(yè)部船舶技術(shù)所,天津 300452;3中海油服船舶事業(yè)部船員培訓(xùn)中心,天津 300452)

0 引言

我國在海洋資源開發(fā)領(lǐng)域越來越多地采用具有動(dòng)力定位(dynamic positioning,DP)系統(tǒng)的船舶[1-5],包括科學(xué)考察船、海監(jiān)船、起重鋪管船、海洋鉆井平臺(tái)、起重打撈船、半潛船、救生船、平臺(tái)供應(yīng)船、布纜船、航標(biāo)船、水合物調(diào)查船、多功能海工船等。相較于傳統(tǒng)定位系統(tǒng),動(dòng)力定位系統(tǒng)能夠更好地滿足深海浮式結(jié)構(gòu)位姿保持以及航跡跟蹤等作業(yè)要求。積極開展船舶動(dòng)力定位技術(shù)相關(guān)研究,對(duì)推動(dòng)我國海洋經(jīng)濟(jì)的發(fā)展具有重大的現(xiàn)實(shí)與戰(zhàn)略意義。

推力分配在動(dòng)力定位過程中發(fā)揮著至關(guān)重要的作用,它是連接控制系統(tǒng)和推進(jìn)系統(tǒng)的紐帶,直接決定了船舶上各個(gè)推進(jìn)器將要產(chǎn)生的推力大小和方向。推力分配方法有許多,如:基于廣義逆的推力分配方法[2,6];采用序列二次規(guī)劃算法實(shí)現(xiàn)推力分配策略[4];基于零空間法的推力分配策略[6];基于組合偏置方法的推力分配策略[7];基于遺傳算法的推力分配方法[8]和基于粒子群算法的推力分配策略[9]等。上述推力分配方法中文獻(xiàn)[8-9]是基于群體智能的方法,由于結(jié)果具有一定的隨機(jī)性,因此不便于工程應(yīng)用。文獻(xiàn)[4,7-12]涉及序列二次規(guī)劃、零空間法和組合偏置方法,計(jì)算較為復(fù)雜。本文的研究重點(diǎn)在于實(shí)現(xiàn)動(dòng)力定位模塊中的推力分配子功能,希望選取一種簡單高效的實(shí)現(xiàn)方法,因此,本文選取廣義逆方法作為推力分配方法。

動(dòng)力定位模擬器子功能模塊設(shè)計(jì)與集成,已有多位學(xué)者對(duì)此展開研究并取得了一定的成果。文獻(xiàn)[6]以Visual Studio 2010 為開發(fā)平臺(tái),使用 Direct2D 圖形技術(shù),對(duì) Kongsberg 公司的 K-Pos 動(dòng)力定位系統(tǒng)的自動(dòng)定位功能進(jìn)行仿真;文獻(xiàn)[10]采用C#中WPF技術(shù)完成DP推力分配仿真子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn);文獻(xiàn)[11]采用VB與MATLAB混合編程方式進(jìn)行動(dòng)力定位模擬器仿真界面的搭建。

上述研究成果往往依賴特定的軟件函數(shù)庫或直接將算法寫在后臺(tái)程序之中,這對(duì)功能模塊代碼拓展性及復(fù)用性會(huì)產(chǎn)生一定影響。因此,本文依托動(dòng)態(tài)鏈接庫技術(shù),通過Matlab仿真+代碼轉(zhuǎn)化,配合QT界面設(shè)計(jì),完成推力分配子功能模塊的集成。

1 動(dòng)力定位模塊的組成及原理

船舶動(dòng)力定位是指船舶利用自身的推力裝置產(chǎn)生推力和推力矩,抵消外界風(fēng)、流、浪等作用在船體上的力和力矩,使該船舶維持在某給定的期望位姿。動(dòng)力定位系統(tǒng)主要由測量系統(tǒng)、控制系統(tǒng)、推進(jìn)系統(tǒng)和動(dòng)力系統(tǒng)等部分組成,主要工作是測量系統(tǒng)實(shí)時(shí)獲得船舶的實(shí)際位置和艏向,并將信息反饋給控制系統(tǒng),控制系統(tǒng)計(jì)算得到偏差量,結(jié)合風(fēng)、浪、流等外界環(huán)境干擾,實(shí)時(shí)計(jì)算出驅(qū)動(dòng)船舶移動(dòng)到期望位姿所需的力和力矩,而后推進(jìn)系統(tǒng)通過推力分配策略將所需的力和力矩分配到船舶上的各個(gè)推進(jìn)器,并控制推進(jìn)器產(chǎn)生相應(yīng)的推力,從而完成船舶的控制要求[1]。工作原理圖如圖1所示。

從圖1可以看到,動(dòng)力定位模塊包括動(dòng)力定位相關(guān)的高層控制策略、推力分配策略、底層推進(jìn)器控制策略、信號(hào)處理等關(guān)鍵技術(shù),本文主要針對(duì)其中的推力分配策略進(jìn)行研究。

2 推力分配方法

推力分配算法是動(dòng)力定位推進(jìn)系統(tǒng)的核心,動(dòng)力定位船舶的數(shù)學(xué)模型由船舶運(yùn)動(dòng)學(xué)模型和船舶動(dòng)力學(xué)模型共同組成。對(duì)于動(dòng)力定位船舶而言,由于船速較小,在建立船舶運(yùn)動(dòng)方程的時(shí)候,通常情況下只考慮其中的3個(gè)自由度,即,縱蕩、橫蕩和艏搖,它們隨船坐標(biāo)系和固定坐標(biāo)系的速度轉(zhuǎn)換公式為:

η=R(ψ)v。

(1)

式中:η=[x,y,ψ]T是船舶位置矢量,x,y,ψ分別為船舶在固定坐標(biāo)系下的位置和艏向角;R為坐標(biāo)轉(zhuǎn)換矩陣;v=[u,v,r]T是船舶速度矢量,u,v,r分別代表隨船坐標(biāo)系下的船舶縱蕩、橫蕩和艏搖速度。

在隨船坐標(biāo)系下,水面上的動(dòng)力定位船舶三自由度(縱蕩、橫蕩和艏搖)動(dòng)力學(xué)方程為:

Mv+Dv=τ+RT(ψ)e

(2)

式中:M和D分別表示附加質(zhì)量的慣性矩陣和阻尼矩陣;τ=[τx,τy,τψ]是控制輸入量;偏差e表示未建模的環(huán)境力和力矩。

動(dòng)力定位控制器通過狀態(tài)反饋η和υ計(jì)算船舶所需的三個(gè)自由度推力τc,推力分配單元負(fù)責(zé)將τc轉(zhuǎn)化為各個(gè)推進(jìn)器的控制輸入α和u,滿足如下條件[2]:

τc=T(α)f,f=Ku。

(3)

式中:f表示推進(jìn)器的推力;T(α)為推進(jìn)器布置矩陣;K為推力系數(shù)。

作為推力分配的等式約束,通常將推力分配問題轉(zhuǎn)化為如下非線性最優(yōu)化問題。

(4)

其中:W為正定對(duì)角陣,表示各推力的權(quán)值系數(shù)。

從式(4)可以看出,優(yōu)化目標(biāo)為求推力f最小值,約束條件為合力滿足要求。

為了避免復(fù)雜的非線性,引入擴(kuò)展推力向量的概念,對(duì)于水面船舶的全方位推進(jìn)器,其推力可分解為船體坐標(biāo)系下X方向和Y方向的兩個(gè)分力,序號(hào)為i的全方位推進(jìn)器的擴(kuò)展推力向量可表示為:

(5)

此時(shí),式(3)可線性表示為:τe=Tefe,f=Ku。

其中:Te為推進(jìn)器布置矩陣誤差。此時(shí),推力分配也由非線性優(yōu)化問題轉(zhuǎn)化為帶有線性等式約束的二次最小化問題

(6)

從式(6)中可以看出,此時(shí)優(yōu)化目標(biāo)為求推力fe最小,約束條件同樣為此時(shí)總的合力。應(yīng)用拉格朗日乘數(shù)法可以得到最小化問題的廣義逆解為

在選定船舶類型之后,通過建立船舶的數(shù)學(xué)模型,設(shè)計(jì)高層控制策略,獲得船舶運(yùn)動(dòng)需要的合力和合力矩,發(fā)送給推力分配策略,按照上述流程完成推力分配過程。

3 推力分配功能實(shí)現(xiàn)及仿真結(jié)果

本文將Matlab模塊仿真與代碼轉(zhuǎn)化相結(jié)合,實(shí)現(xiàn)軟件系統(tǒng)功能。Matlab提供Matlab Coder命令允許用戶將特定功能函數(shù)文件轉(zhuǎn)化為C/C++代碼形式文件。該命令僅針對(duì)函數(shù)文件,將偽逆法命名為www.m,并用于代碼生成。利用該函數(shù)的測試代碼文件自動(dòng)獲取該函數(shù)形參數(shù)據(jù)類型,排查文件中語法及鏈接錯(cuò)誤,編譯通過后會(huì)生成該函數(shù).h文件及.cpp文件,形成轉(zhuǎn)化結(jié)果報(bào)告,如圖2所示。通過動(dòng)態(tài)鏈接庫技術(shù)將該函數(shù)進(jìn)行封裝,并用于軟件功能模塊設(shè)計(jì)。

本項(xiàng)目以Visual Studio 2015為開發(fā)平臺(tái),通過Matlab代碼轉(zhuǎn)化實(shí)現(xiàn)數(shù)據(jù)處理與計(jì)算,并利用C++應(yīng)用程序開發(fā)框架QT設(shè)計(jì)仿真界面。引入QML做界面設(shè)計(jì),界面顯示和代碼將更好的得到分離,通過編寫后臺(tái)代碼的方式使控件響應(yīng)不同功能。

完成上述步驟之后,需要將推力分配功能集成。首先根據(jù)特定船舶推進(jìn)器配置及定位需求在Matlab環(huán)境中完成動(dòng)力定位船舶推力分配策略的仿真計(jì)算,并將用于計(jì)算的分配策略以函數(shù).m文件形式留存;然后利用Matlab Coder工具箱將推力分配策略函數(shù).m文件轉(zhuǎn)化為.h以及.cpp文件,并通過動(dòng)態(tài)鏈接庫技術(shù),設(shè)置相應(yīng)API(Application Programming Interface,應(yīng)用程序編程接口),將程序執(zhí)行.cpp文件編譯生成二進(jìn)制文件.dll。在QT界面設(shè)計(jì)語言中,導(dǎo)入相應(yīng)的頭文件及dll,動(dòng)態(tài)加載函數(shù)庫,調(diào)用預(yù)先設(shè)定的API函數(shù),通過計(jì)算得到推力分配結(jié)果數(shù)據(jù),并在界面上進(jìn)行顯示,實(shí)現(xiàn)數(shù)據(jù)交互。推力分配功能模塊集成過程大體如圖3所示。

本文以中海油擁有數(shù)量最多的海洋石油641型船為對(duì)象進(jìn)行推力分配可視化研究,其推進(jìn)器布置如圖4所示。其中:X、Y分別代表船舶縱軸與橫軸方向;#1、#2為全回轉(zhuǎn)推進(jìn)器;#3、#4為槽道式推進(jìn)器,4個(gè)推進(jìn)器布置位置和推力限制如表1所示。

表1 推進(jìn)器配置參數(shù)

需要說明的是,動(dòng)力定位操作員設(shè)置船舶的期望位置,船舶所需的力和力矩基于公式(2)和所設(shè)計(jì)的控制策略算出,之后發(fā)送給推力模塊進(jìn)行推力分配?,F(xiàn)有文獻(xiàn)大多將控制器計(jì)算得出的力和力矩以時(shí)序展現(xiàn),推力分配結(jié)果也按照時(shí)序展現(xiàn),如文獻(xiàn)[12-13]。然而,在實(shí)際的動(dòng)力定位模擬器中,控制器所計(jì)算得出的力和力矩是隱含在軟件中的,推力分配結(jié)果也是顯示某一時(shí)刻的,因此,本文的結(jié)果以圖5和圖6體現(xiàn)。

圖5是動(dòng)力定位模塊操縱軟件實(shí)現(xiàn)某定位功能時(shí)的運(yùn)行效果圖,包括船舶速度變化、艏向顯示以及能源消耗等結(jié)果顯示。

推力分配結(jié)果如圖6所示。圖6左下角為某時(shí)刻的推力分配結(jié)果展示,左上角為推進(jìn)器的推力與最大推力之比,以百分比形式呈現(xiàn),右上角和右下角均為風(fēng)速風(fēng)向信息。通過可視化結(jié)果可以看到,本文提出的功能實(shí)現(xiàn)方案具有可視化界面友好,且算法易于修改的特點(diǎn),所設(shè)計(jì)的推力分配功能能夠?qū)⑼屏娃D(zhuǎn)矩分配到各個(gè)推進(jìn)器,該功能能夠服務(wù)于動(dòng)力定位模塊,最終實(shí)現(xiàn)航海模擬器的升級(jí)。

4 結(jié)語

開發(fā)動(dòng)力定位模塊需要多類功能子模塊相互配合,每個(gè)功能子模塊的開發(fā)均需進(jìn)行仿真驗(yàn)證,從而確保可行性。本文依托動(dòng)態(tài)鏈接庫技術(shù),采用Matlab仿真代碼轉(zhuǎn)化,實(shí)現(xiàn)數(shù)據(jù)處理與計(jì)算,并通過QT完成界面設(shè)計(jì),完成動(dòng)力定位推力分配功能子模塊開發(fā)。在動(dòng)力定位模塊完成定位作業(yè)模擬時(shí),對(duì)控制力向量進(jìn)行實(shí)時(shí)推力分配計(jì)算,并做界面顯示,同時(shí)作為子功能模塊集成于現(xiàn)有的航海模擬器之中進(jìn)行功能測試。

通過仿真的數(shù)據(jù)及集成效果展示,在完成定位作業(yè)模擬過程中,本文使用的推力分配算法可以有效地實(shí)現(xiàn)控制力向量的分解,同時(shí)該模塊在整個(gè)船舶動(dòng)力定位模擬器中能完成預(yù)設(shè)的功能而對(duì)現(xiàn)有航海模擬器不會(huì)產(chǎn)生不良影響。本文提出的推力分配方法,有助于推進(jìn)DP模擬器研究,提高DP模擬器運(yùn)行的穩(wěn)定性。

猜你喜歡
推進(jìn)器模擬器力矩
了不起的安檢模擬器
盲盒模擬器
基于CFD扇翼推進(jìn)器敞水性能預(yù)報(bào)分析
劃船模擬器
發(fā)揮考核“指揮棒”“推進(jìn)器”作用
發(fā)動(dòng)機(jī)阻力矩計(jì)算和起動(dòng)機(jī)介紹
山東青年(2016年12期)2017-03-02 18:22:48
小型力矩電機(jī)波動(dòng)力矩的測量
彈性負(fù)載力矩下舵偏轉(zhuǎn)角度的測量方法
基于D-最優(yōu)化理論的陀螺儀力矩反饋測試法
讓黨建成為信仰播種機(jī)和工作推進(jìn)器
辉县市| 都兰县| 龙游县| 定远县| 大兴区| 望谟县| 弋阳县| 通州市| 黔江区| 廊坊市| 宝丰县| 高州市| 嘉义市| 闻喜县| 光泽县| 神农架林区| 和顺县| 东平县| 射洪县| 吉木萨尔县| 安国市| 喀什市| 静海县| 井陉县| 尼木县| 临沂市| 鸡泽县| 理塘县| 邵武市| 宜兰县| 东阳市| 成都市| 哈尔滨市| 克拉玛依市| 巴中市| 芮城县| 武城县| 普格县| 丁青县| 西和县| 治多县|