劉 明,華 亮
(1.南通大學(xué) 電氣工程學(xué)院,江蘇 南通 226019;2.南通大學(xué)杏林學(xué)院,江蘇 南通 226236)
隨著海洋產(chǎn)業(yè)的快速興起,動(dòng)力定位系統(tǒng)已經(jīng)成為許多海洋工程船舶不可或缺的系統(tǒng),特別是深海作業(yè)類船舶。動(dòng)力定位船舶一般采用過驅(qū)系統(tǒng),即將系統(tǒng)需求的合力指令合理地分配給各個(gè)推進(jìn)器,故動(dòng)力定位控制系統(tǒng)推力分配問題主要是約束優(yōu)化問題,即在滿足一定合力需求及推進(jìn)器本身物理?xiàng)l件約束的同時(shí),使功率消耗、機(jī)械磨損最小化,避免奇異性等。
目前國(guó)內(nèi)外已有大量科研人員、學(xué)者對(duì)推力分配算法進(jìn)行了深入研究,Winchers 等[1]用推進(jìn)器分組法來解決推力分配的問題;摩根[2]最早提出了分配邏輯法來解決推力分配問題;序列二次規(guī)劃法[3-4]是一種常見的推力分配策略,Johansen 等[5]提出了一種考慮避免奇異性的序列二次規(guī)劃推力分配算法;Fossen[6]通過對(duì)推力分配算法的深入研究指出,偽逆法[7-9]和直接分配法是兩種實(shí)時(shí)性比較強(qiáng)的推力分配算法,但必須解決存在的飽和問題;李新飛[10]把偽逆法和控制量歸一化方法相結(jié)合解決了直接利用偽逆法存在的飽和問題;針對(duì)推力分配過程中尾流造成的推力損失問題,楊世知[11]和吳顯法等[12]提出設(shè)置推力分配禁區(qū)方法進(jìn)行解決;施小成等[13]、徐海洋等[14]提出了組合偏置推力分配算法。這些方法及其改進(jìn)、衍生的方法在一定的條件下很好解決了推力分配問題,然而在綜合考慮推力分配約束、優(yōu)化條件時(shí)尚存在一些困難和問題。近年來,隨著新興的群智能算法的不斷發(fā)展及在工程領(lǐng)域的應(yīng)用,由于該類算法不依賴于對(duì)象問題的特征函數(shù)和解的形式,能有效解決多約束、非線性、多維度的復(fù)雜優(yōu)化問題,故該類方法為推力分配問題的解決尋到了一條新的出路,目前已有部分學(xué)者如喬?hào)|生等[15]對(duì)該類算法在推力分配問題上的應(yīng)用進(jìn)行了初步研究,其本身具備的較大優(yōu)化能力使得其在推力分配問題的處理上具有較好的應(yīng)用前景。
對(duì)于動(dòng)力定位船舶,推力優(yōu)化分配目標(biāo)是使控制器輸出期望的力矩和控制力,除此之外推力分配還要考慮能量損耗、機(jī)械磨損、船舶操縱性等問題。推力分配問題約束條件可以分為期望控制力和力矩的等式約束條件、推進(jìn)器本身物理限制的約束條件。
考慮所述的推力分配目標(biāo)和約束條件,建立推力分配問題的數(shù)學(xué)模型,如下所示:
式(1)中,f∈為各個(gè)推進(jìn)器產(chǎn)生的推力;α∈為各推進(jìn)器的方位角;B(α)為推進(jìn)器的位置構(gòu)造矩陣;S為松弛變量,保證推力分配問題始終有可行解。式(2)中,(lxn,lyn)為第n個(gè)推進(jìn)器在船體坐標(biāo)系中的位置,αn為第n個(gè)推進(jìn)器的方位角。
動(dòng)力定位推力分配單元將推進(jìn)系統(tǒng)需求的合力τc轉(zhuǎn)化為各個(gè)推進(jìn)器產(chǎn)生的力的大小和方位角,滿足如下關(guān)系式:
推力分配等式約束是非線性方程,“能量”最優(yōu)推力分配通常描述為如下形式的非線性推力分配優(yōu)化問題:
為避免復(fù)雜的推力方程求解,S?rdalen 引入了擴(kuò)展推力向量[16]概念,即將推進(jìn)器的推力沿船體坐標(biāo)系下X方向和Y方向分解成縱蕩和橫蕩兩個(gè)相互正交的力:
則式(3)可表示為
式中,
此時(shí)推力分配問題轉(zhuǎn)化為線性等式約束最小化問題:
該線性等式約束最小化問題的廣義逆解可以由拉格朗日乘數(shù)法求?。?/p>
式中,λ為拉格朗日算子。根據(jù)拉格朗日極小值存在條件得
式中,w為各推力的權(quán)重系數(shù),且為正定對(duì)角矩陣。
群體智能優(yōu)化算法是指以模仿大自然中生物群體(而非生物個(gè)體)所能表現(xiàn)出來的分工、協(xié)同合作行為機(jī)制為目標(biāo)的仿生智能優(yōu)化算法,常用的群體智能優(yōu)化算法有粒子群算法[17]、人工蜂群算法[18]、細(xì)菌覓食算法等。為了提高算法的尋優(yōu)能力,一方面可以從算法自身機(jī)制上進(jìn)行改進(jìn),另一方面可以借鑒其它算法的優(yōu)點(diǎn)進(jìn)行相互融合。本文提出的群體智能算法是融合粒子群算法、人工魚群算法、果蠅算法、細(xì)菌覓食算法部分思想,以粒子群算法結(jié)構(gòu)為主體,充分挖掘、發(fā)揮個(gè)體的尋優(yōu)能力,保證群體的全局和局部尋優(yōu)能力。一種群體智能優(yōu)化算法的優(yōu)劣體現(xiàn)在能否具備可靠的快速收斂性,而算法的快速收斂性在執(zhí)行上主要體現(xiàn)為算法的全局和局部尋優(yōu)能力,二者是相輔相成又互為矛盾的統(tǒng)一體。為了提高算法的全局尋優(yōu)能力,本文算法引入了混沌算子、飛蠅算子和濃度算子;為了提高算法的局部尋優(yōu)能力,本文算法一方面采取雙向?qū)?yōu)、窮盡求取種群進(jìn)化方式,另一方面每次迭代選取一定比例的最優(yōu)個(gè)體進(jìn)行局部尋優(yōu)。
算法執(zhí)行的具體步驟描述如下:
(1)初始化種群,其中個(gè)體采用混沌算子進(jìn)行相應(yīng)初始化。
研究表明參數(shù)搜索空間和個(gè)體初始化分散性對(duì)尋優(yōu)結(jié)果具有一定的影響。初始化種群,如果個(gè)體分布較均勻,分散性較好,則能為全局搜索多樣性奠定基礎(chǔ)。
混沌是非常普遍的一種非線性現(xiàn)象,具有隨機(jī)性、遍歷性等特性。運(yùn)用混沌算子進(jìn)行個(gè)體初始化比隨機(jī)初始化更具優(yōu)越性,能夠避免算法陷入局部極值點(diǎn),提高算法全局尋優(yōu)能力。
(2)計(jì)算個(gè)體適應(yīng)度值,計(jì)算全局最優(yōu)值。
(3)采用雙向?qū)?yōu)、窮盡求取法進(jìn)行種群進(jìn)化、個(gè)體更新。
設(shè)個(gè)體X={X1,X2,…,XN} ,每個(gè)個(gè)體最優(yōu)解記做Pibest,全局最優(yōu)解記做Pgbest。種群進(jìn)化步驟如下:
①每個(gè)個(gè)體根據(jù)式(14)進(jìn)行更新:
計(jì)算個(gè)體適應(yīng)值并判別是否得到優(yōu)化,是就執(zhí)行步驟③,否則執(zhí)行步驟②。
②每個(gè)個(gè)體根據(jù)式(15)進(jìn)行更新:
計(jì)算個(gè)體適應(yīng)值并判別是否得到優(yōu)化,是就執(zhí)行步驟④,否則執(zhí)行步驟⑤。
③每個(gè)個(gè)體根據(jù)式(16)進(jìn)行更新:
計(jì)算個(gè)體適應(yīng)值并判別是否得到優(yōu)化,是就根據(jù)式(17)更新c,執(zhí)行步驟③,否則執(zhí)行步驟⑦。
④每個(gè)個(gè)體根據(jù)式(18)進(jìn)行更新:
計(jì)算個(gè)體適應(yīng)值并判別是否得到優(yōu)化,是就根據(jù)式(19)更新c,執(zhí)行步驟④,否則執(zhí)行步驟⑦。
⑤判斷嘗試次數(shù)是否超過設(shè)定值m,是則執(zhí)行步驟⑥,否則執(zhí)行步驟①。
⑥嘗試m次后個(gè)體適應(yīng)度值仍然不能得到改進(jìn)且不是全局最優(yōu),則執(zhí)行隨機(jī)算子,如是全局最優(yōu)則保留當(dāng)前個(gè)體相應(yīng)值。
⑦個(gè)體進(jìn)化結(jié)束,更新全局最優(yōu)值。
(4)選取p1個(gè)最優(yōu)個(gè)體根據(jù)式(20)進(jìn)行局部?jī)?yōu)化:
為了提高局部?jī)?yōu)化能力,式中v1的取值不能太大,每個(gè)個(gè)體根據(jù)式(20)以父代為基礎(chǔ)衍生V1 個(gè)子代,計(jì)算個(gè)體適應(yīng)度值,更新個(gè)體值和全局最優(yōu)值。
(5)選取p2個(gè)最差個(gè)體根據(jù)式(21)進(jìn)行局部?jī)?yōu)化:
為使個(gè)體跳出當(dāng)前不利位置,式中v2的取值不能太小,每個(gè)個(gè)體根據(jù)式(18)以父代為基礎(chǔ)衍生V2個(gè)子代,計(jì)算個(gè)體適應(yīng)度值,更新個(gè)體值和全局最優(yōu)值。
(6)運(yùn)用濃度算子進(jìn)行種群更新。
為了避免在迭代初期大量個(gè)體過于集中在某個(gè)區(qū)域,造成全局尋優(yōu)能力減弱,在算法執(zhí)行初期引入濃度算子(包括距離算子和適應(yīng)度值算子)。
設(shè)第i個(gè)個(gè)體的值為Xi,適應(yīng)度值為Yi,第j個(gè)個(gè)體的值為Xj,適應(yīng)度值為Yj,則以第i個(gè)個(gè)體為中心,與第j個(gè)個(gè)體之間的距離定義為D,且D=‖Xi-Xj‖,同樣適應(yīng)度值之差定義為E,且
距離濃度算子定義為
式中,Dset為設(shè)定的常數(shù)。
適應(yīng)度值算子定義為
式中,Eset為設(shè)定的常數(shù)。
則該算子的執(zhí)行步驟如下:
①判斷當(dāng)前總迭代次數(shù)是否小于iter1,是則執(zhí)行步驟③,初始化i=1,否則執(zhí)行步驟②。
②判斷當(dāng)前總迭代次數(shù)是否小于iter2,是則執(zhí)行④,初始化i=1,否則執(zhí)行步驟⑤。
③運(yùn)用距離濃度算子進(jìn)行種群更新,根據(jù)式(22)和式(24)計(jì)算、判別第i個(gè)個(gè)體是否需要個(gè)體更新。
判別dcu(i)是否大于,是則根據(jù)式(25)進(jìn)行第i個(gè)個(gè)體更新,否則第i個(gè)個(gè)體保持不變。
式中,Xpg為距離濃度低且適應(yīng)值高的個(gè)體。
計(jì)算第i個(gè)個(gè)體的適應(yīng)度值,并進(jìn)行全局最優(yōu)值更新,判別當(dāng)前第i個(gè)個(gè)體是否為種群最后一個(gè)個(gè)體,如是則執(zhí)行步驟⑤,否則i=i+1,執(zhí)行步驟③。
④運(yùn)用距離濃度算子和適應(yīng)度值濃度算子進(jìn)行種群更新,根據(jù)式(22)、式(23)和式(24)計(jì)算、判別第i個(gè)個(gè)體是否需要個(gè)體更新。
判別dfu(i)是否大于,是則根據(jù)式(26)進(jìn)行第i個(gè)個(gè)體更新,否則第i個(gè)個(gè)體保持不變。
計(jì)算第i個(gè)個(gè)體的適應(yīng)度值,并進(jìn)行全局最優(yōu)值更新,判別當(dāng)前第i個(gè)個(gè)體是否為種群最后一個(gè)個(gè)體,如是則執(zhí)行步驟⑤,否則i=i+1,執(zhí)行步驟④。
⑤算法結(jié)束。
(7)判別迭代次數(shù)是否達(dá)到設(shè)定的最大值,是則結(jié)束,否則執(zhí)行步驟(3)。
對(duì)于動(dòng)力定位船舶,一方面根據(jù)當(dāng)前推力需求及權(quán)衡一些性能指標(biāo)來確定推力分配方案,另一方面隨著外界環(huán)境的改變又對(duì)推力分配有著不同的要求,針對(duì)特定的需求,利用監(jiān)督與切換[19],選出當(dāng)前最合適的推力分配方案。
對(duì)于帶監(jiān)督與切換的推力分配器在進(jìn)行推力分配時(shí)有兩個(gè)問題應(yīng)該考慮:首先是如何確定何種推力分配方案為最優(yōu)方案;其次是當(dāng)前推力分配事件至最優(yōu)推力分配事件是否屬于切換事件及切換事件能否發(fā)生。對(duì)于第一個(gè)問題,可以根據(jù)動(dòng)力定位船舶當(dāng)前測(cè)量的信息及推力分配數(shù)學(xué)模型中的部分或全部性能指標(biāo)來決定哪種推力分配方案為當(dāng)前最優(yōu)的任務(wù)分配方案。對(duì)于第二個(gè)問題,一般采用停留時(shí)間切換技術(shù)和滯后切換技術(shù),一方面避免不必要的切換,另一方面避免頻繁的切換帶來推進(jìn)器的抖動(dòng)和機(jī)械結(jié)構(gòu)磨損的增加,甚至導(dǎo)致系統(tǒng)的不穩(wěn)定、失控。
3.2.1 扇區(qū)約束問題
為了避免各個(gè)推進(jìn)器之間的相互干擾,往往對(duì)各個(gè)推進(jìn)器設(shè)置推力禁止產(chǎn)生的區(qū)域,即推力禁區(qū),圖1 為Cybership Ⅲ禁區(qū)設(shè)置示意圖,圖中陰影扇形區(qū)為對(duì)應(yīng)推進(jìn)器的推力禁區(qū),由于采用群智能優(yōu)化算法進(jìn)行尋優(yōu),不需要考慮子扇區(qū)的凸與不凸問題,推力扇區(qū)組合一共被分為了4 個(gè)子扇區(qū)組合,具體如表1所示。
表1 扇區(qū)組合Tab.1 Sector division
圖1 Cybership Ⅲ禁區(qū)設(shè)置示意圖Fig.1 Schematic diagram of Cybership III forbidden zone setting
3.2.2 子扇區(qū)組合應(yīng)用邏輯
推力禁區(qū)的存在使得相應(yīng)的推力分配器的旋轉(zhuǎn)角度不能連續(xù)變化,多個(gè)推進(jìn)器的扇區(qū)被分成若干個(gè)子扇區(qū)的組合,在推力分配及其優(yōu)化時(shí)有時(shí)需要進(jìn)行扇區(qū)切換,即推力分配優(yōu)化問題要解決子扇區(qū)組合應(yīng)用邏輯問題。該問題中監(jiān)督與切換功能的主要任務(wù)是在確保τc-B(α)f滿足一定要求的情況下,降低推進(jìn)器的總功耗,減少推進(jìn)器的機(jī)械磨損,避免奇異現(xiàn)象。
帶監(jiān)督與切換的“雙向窮盡”混群優(yōu)化算法在推力分配優(yōu)化中的應(yīng)用主要通過如下幾個(gè)步驟進(jìn)行迭代求?。?/p>
步驟1:初始化。初始化參數(shù)包括:推進(jìn)器推力大小及對(duì)應(yīng)方位角、合力及合力矩大小、推力系數(shù)矩陣、每個(gè)推進(jìn)器的推力極限值、每個(gè)推進(jìn)器的推力最大變化率、每個(gè)推進(jìn)器的方位角最大變化率、位置構(gòu)造矩陣、功率與推力關(guān)系參數(shù)、式(6)齊次線性方程組的解等等,其中運(yùn)用式(6)的齊次線性方程組的解進(jìn)行初始化是為了能夠確保獲取合理的推力分配解,“雙向窮盡”混群優(yōu)化算法并沒有選取推力及方位角作為個(gè)體,而是選取式(6)的齊次線性方程組的解系數(shù)c1、c2、…、ck為個(gè)體,這樣以式(6)的齊次線性方程組的解為通解,以式(13)的最優(yōu)“能量”為特解便可保證該算法能夠收斂并獲得合理的推力分配解,而且該個(gè)體選擇方法有助于降低個(gè)體維度(例如本文實(shí)例個(gè)體維度可由6 維度降為2 維度)提高算法的實(shí)時(shí)性,對(duì)固定的船舶結(jié)構(gòu)該解的解結(jié)構(gòu)值是固定的,而特解值隨需求合力及力矩大小改變而變化,并采取增量模式求解進(jìn)一步提高算法實(shí)時(shí)收斂性。
步驟2:基于前一個(gè)時(shí)刻的推力分配解(fP,αP),運(yùn)用“雙向窮盡”混群優(yōu)化算法(代價(jià)函數(shù)包括能耗、力與力矩偏差和奇異結(jié)構(gòu))搜索所有子扇區(qū),最終得到最優(yōu)推力分配的解(fbest,αbest)和最優(yōu)推力分配的子扇區(qū)Ibest。
然而,如何運(yùn)用“雙向窮盡”混群優(yōu)化算法獲得最優(yōu)推力分配的解和最優(yōu)推力分配的子扇區(qū)呢?根據(jù)前面推力分配數(shù)學(xué)模型公式可知推力器由于自身的物理?xiàng)l件限制,當(dāng)前時(shí)刻到下一個(gè)時(shí)刻Δt時(shí)間最大旋轉(zhuǎn)角度為ΔαmaxΔt,即如果考慮角度變化率條件約束,則運(yùn)用“雙向窮盡”混群優(yōu)化算法進(jìn)行搜索只能在當(dāng)前子扇區(qū)進(jìn)行部分區(qū)域的尋優(yōu),不能對(duì)所有子扇區(qū)進(jìn)行尋優(yōu),每組子扇區(qū)降低總的能耗效果的好壞就不能被立刻察覺到。此外,如果當(dāng)前子扇區(qū)沒有滿足τc-B(α)f一定需求的解,運(yùn)用“雙向窮盡”混群優(yōu)化算法搜索時(shí),由于推力禁區(qū)的設(shè)置,使得推力器不能獲得可靠的推力分配解,可能最終導(dǎo)致系統(tǒng)的不穩(wěn)定。故運(yùn)用“雙向窮盡”混群優(yōu)化算法獲取最優(yōu)推力分配的解和最優(yōu)推力分配的子扇區(qū)時(shí),其代價(jià)函數(shù)的設(shè)置不用考慮角度變化率約束條件,就能對(duì)整個(gè)子扇區(qū)進(jìn)行搜索尋優(yōu)。
步驟3:依據(jù)停留時(shí)間切換技術(shù)和滯后切換技術(shù),綜合考慮各種因素,確定一個(gè)最適合當(dāng)前推力分配情況的扇區(qū)組合。
雖然步驟2 運(yùn)用“雙向窮盡”混群優(yōu)化算法獲取最優(yōu)推力分配的解和最優(yōu)推力分配的子扇區(qū),但沒有考慮角度變化率這個(gè)條件約束使得所獲取的最優(yōu)推力分配的子扇區(qū)未必是最適合當(dāng)前推力分配情況的扇區(qū)組合。本文通過扇區(qū)切換邏輯來獲取最適合當(dāng)前推力分配情況的子扇區(qū)組合,該計(jì)算邏輯可以用式(27)進(jìn)行表示。Ibest是全局尋優(yōu)獲得的最優(yōu)子扇區(qū)組合;In是當(dāng)前最優(yōu)子扇區(qū)組合;IP是指In之前被選定的最優(yōu)子扇區(qū)組合;t是指IP切換至In時(shí)到現(xiàn)在時(shí)刻為止的時(shí)間;tdts是指停留時(shí)間切換的最小切換時(shí)間;th是為了防止瞬態(tài)干擾導(dǎo)致的切換所設(shè)置的最大返回切換時(shí)間,其取值不大于tdts;JPlim是滯后切換時(shí)需要限制的代價(jià)函數(shù)變化最小值;S(·)是松弛變量累加和;Sdts是松弛變量累加和變化最大值,取值為百分?jǐn)?shù)。
步驟4:根據(jù)選擇的最適合子扇區(qū)組合實(shí)際情況,運(yùn)用相應(yīng)的優(yōu)化算法,最終確定每個(gè)推進(jìn)器的方位角和推力大小。
本文根據(jù)子扇區(qū)組合是否切換以及當(dāng)前子扇區(qū)情況分為三種情況進(jìn)行相應(yīng)推進(jìn)器的方位角和推力大小的求解:
(1)當(dāng)In=inow且Ibest=inow時(shí),inow為當(dāng)前所處的扇區(qū)組合,運(yùn)用“雙向窮盡”混群優(yōu)化算法(代價(jià)函數(shù)包括能耗、力與力矩偏差、方位角變化率和奇異結(jié)構(gòu))求解,根據(jù)所求最優(yōu)角度解再結(jié)合全局最優(yōu)角度解確定最終推進(jìn)器的方位角,最后根據(jù)所求方位角利用雙向窮盡”混群優(yōu)化算法(代價(jià)函數(shù)包括能耗和力與力矩偏差)求得最終推力大小的解。
(2)當(dāng)In=inow且Ibest≠inow時(shí),或者In≠inow且inow不在禁區(qū)時(shí),直接運(yùn)用“雙向窮盡”混群優(yōu)化算法(代價(jià)函數(shù)包括能耗、力與力矩偏差、方位角變化率和奇異結(jié)構(gòu))進(jìn)行推進(jìn)器的方位角和推力大小的求解。
(3)其它情況時(shí),首先確定推進(jìn)器方位角的大小,然后在方位角已知情況下運(yùn)用“雙向窮盡”混群優(yōu)化算法(代價(jià)函數(shù)包括能耗和力與力矩偏差)進(jìn)行推進(jìn)器推力大小的求解。
步驟5:輸出推力分配結(jié)果,并判別此次推力分配是否是最后一次推力分配求解,是則結(jié)束,否則執(zhí)行步驟2。
本文運(yùn)用上述基于“雙向窮盡”混群優(yōu)化算法以及監(jiān)督與切換機(jī)制來對(duì)動(dòng)力定位船舶推力分配問題進(jìn)行優(yōu)化處理,并采用挪威科技大學(xué)仿真船模Cybership III 為對(duì)象進(jìn)行仿真分析,推進(jìn)器的部分參數(shù)如表2 所示,表中Kpt為功率與推力關(guān)系參數(shù),此外兩個(gè)吊艙式全回轉(zhuǎn)推進(jìn)器在1 s 時(shí)間內(nèi)最大旋轉(zhuǎn)角度為10°。
表2 推進(jìn)器的部分參數(shù)Tab.2 Some parameters of thrusters
仿真實(shí)例一:
該實(shí)例的x軸推力需求在前100個(gè)采樣周期始終為1 N,后100個(gè)采樣周期除了在第121個(gè)采樣周期出現(xiàn)突變力-2 N,其它都為2 N,y軸推力和系統(tǒng)力矩都為0,仿真結(jié)果如圖2~5所示。
圖2 各個(gè)推進(jìn)器的推力大小Fig.2 Thrust of each thruster
由已知條件分析可知,如果不考慮奇異結(jié)構(gòu)問題,該推力分配的理想結(jié)果為船艏推力分配器不作用,船尾兩個(gè)推進(jìn)器推力大小相等各占需求推力一半,且推進(jìn)器方位角一致并為0°。由圖2可知船艏推力分配器推力幾乎為0,船尾兩個(gè)推進(jìn)器推力大小相等并接近需求推力一半,達(dá)到了很好的推力分配預(yù)期效果。由圖3可以看出船尾兩個(gè)推進(jìn)器的方位角并不是保持一致為0°,但是幾乎保持正負(fù)對(duì)稱相等,這主要是因?yàn)槟繕?biāo)函數(shù)考慮了奇異結(jié)構(gòu)問題,該項(xiàng)權(quán)值的大小影響推進(jìn)器的方位角大小。由圖4和圖5可以看出期望的推力和力矩幾乎與實(shí)際的推力和力矩重合,它們的偏差幾乎為0,推力分配效果良好。此外在第121個(gè)采樣周期出現(xiàn)突變力情況下,由圖2和圖4可以看出系統(tǒng)能迅速反應(yīng),由于推進(jìn)器本身物理約束條件限制,此時(shí)難以滿足設(shè)定力和力矩存在一定偏差,但是推力迅速降為0,將偏差降為最小,且減少能量損耗,在第122個(gè)采樣周期又能迅速達(dá)到穩(wěn)定狀態(tài),可以避免干擾帶來的影響。結(jié)合4 幅仿真圖可以看出,當(dāng)系統(tǒng)的最優(yōu)扇區(qū)處于當(dāng)前扇區(qū)時(shí),所提算法能很好地在當(dāng)前扇區(qū)進(jìn)行推力分配,即使出現(xiàn)干擾使得干擾最優(yōu)扇區(qū)不在當(dāng)前扇區(qū)時(shí)系統(tǒng)也能很好地處理該問題,防止誤操作的產(chǎn)生。
圖3 各個(gè)推進(jìn)器的方位角大小Fig.3 Azimuth of each thruster
圖4 期望/實(shí)際的推力和力矩Fig.4 Expected/actual thrusts and moments
圖5 期望/實(shí)際的推力和力矩的偏差Fig.5 Errors between expected and actual thrusts and moments
仿真實(shí)例二:
該實(shí)例的x軸推力需求在前100 個(gè)采樣周期始終為1 N,后100 個(gè)采樣周期始終為-1 N,y軸推力和系統(tǒng)力矩都為0,仿真結(jié)果如圖6~9所示。
圖6 各個(gè)推進(jìn)器的推力大小Fig.6 Thrust of each thruster
由已知條件分析可知,該仿真實(shí)例需要船尾兩個(gè)推進(jìn)器從一個(gè)扇區(qū)組合切換到另一個(gè)扇區(qū)組合,而且都要經(jīng)過禁區(qū)。由圖6 和圖7 可以看出,前100 個(gè)采樣周期和仿真實(shí)例一運(yùn)行結(jié)果一樣,由于考慮奇異結(jié)構(gòu)問題,船艏推力分配器不作用,船尾兩個(gè)推進(jìn)器推力大小幾乎相等各占需求推力一半,推進(jìn)器方位角幾乎保持正負(fù)對(duì)稱相等,在101 個(gè)采樣周期時(shí),期望推力發(fā)生巨變,此時(shí)最優(yōu)扇區(qū)組合隨即發(fā)生改變,圖6 中船尾兩個(gè)推進(jìn)器推力大小先是迅速減少至0,然后增加并保持一段時(shí)間后再迅速增加,然后又平滑下降直至穩(wěn)定,這是由于采用了停留時(shí)間切換技術(shù)。從圖7 可以看出,船尾兩個(gè)推進(jìn)器的方位角先是以最快速度通過禁區(qū),達(dá)到新的最優(yōu)扇區(qū)組合后方位角相對(duì)平穩(wěn)達(dá)到新的平衡態(tài)。由圖8和圖9可以看出除了切換過渡過程中外,其它時(shí)間段的期望的推力和力矩與實(shí)際的推力和力矩幾乎都是重合的,它們的偏差幾乎為0,用了大約10 個(gè)采樣周期實(shí)現(xiàn)了大區(qū)域的切換,可見達(dá)到了預(yù)期的目的,推力分配效果理想。由圖6 和圖8 可以看出在最優(yōu)扇區(qū)切換過程中,由于推進(jìn)器本身物理約束條件限制,推進(jìn)器推力變化出現(xiàn)了突變,力和力矩的設(shè)定值和實(shí)際值存在一定偏差,而運(yùn)用本文算法可以使得這些不利因素降低。結(jié)合4 幅仿真圖可以看出,當(dāng)系統(tǒng)的最優(yōu)扇區(qū)不處于當(dāng)前扇區(qū)而需要切換時(shí),所提算法能很好并快速地進(jìn)行切換并保證推力分配最優(yōu)化。
圖7 各個(gè)推進(jìn)器的方位角大小Fig.7 Azimuth of each thruster
圖8 期望/實(shí)際的推力和力矩Fig.8 Expected/actual thrusts and moments
圖9 期望/實(shí)際的推力和力矩的偏差Fig.9 Errors between expected and actual thrusts and moments
仿真實(shí)例三:
前面兩個(gè)實(shí)例對(duì)所提推力分配算法進(jìn)行了“靜態(tài)”測(cè)試,達(dá)到了預(yù)期的效果。為了更好說明該算法的可行性,本實(shí)例將對(duì)所提推力分配算法進(jìn)行“動(dòng)態(tài)”測(cè)試。該實(shí)例推力需求在前100個(gè)采樣周期:x軸1 N 左右隨機(jī)產(chǎn)生,y軸始終為0.5 N,力矩為0;后100 個(gè)采樣周期:x軸-1 N 左右隨機(jī)產(chǎn)生,y軸在0.5 N左右隨機(jī)產(chǎn)生,力矩為0。仿真結(jié)果如圖10~13所示。
圖10 各個(gè)推進(jìn)器的推力大小Fig.10 Thrust of each thruster
由圖10可以看出在前100個(gè)采用周期,由于y軸存在固定期望推力,故船艏推進(jìn)器作用,船尾兩個(gè)推進(jìn)器隨著x軸的變化能同步改變,后100 個(gè)采用周期,由于y軸期望推力發(fā)生了隨機(jī)改變,此時(shí)船尾兩個(gè)推進(jìn)器推力不再同步改變,而且船艏推進(jìn)器不再是一個(gè)定值,但所有推進(jìn)器的推力都沒有發(fā)生失控現(xiàn)象,且變化幅度除了切換時(shí)間時(shí)都比較小。由圖11 可以看出,整個(gè)過程中船尾兩個(gè)推進(jìn)器的方位角變化都很平穩(wěn),說明該算法能盡量減少推進(jìn)器的機(jī)械磨損。由圖12 和圖13 可以看出,盡管給定的推力發(fā)生了隨機(jī)改變,但是期望的推力和力矩幾乎與實(shí)際的推力和力矩除了切換過渡過程中其它時(shí)間段幾乎都是重合的,它們的偏差幾乎為0,同樣用了大約10 個(gè)采樣周期實(shí)現(xiàn)了大區(qū)域的切換,達(dá)到了預(yù)期的目的,推力分配效果理想。結(jié)合4幅仿真圖可以看出,所提算法能實(shí)現(xiàn)推力分配的動(dòng)態(tài)最優(yōu)化。
圖11 各個(gè)推進(jìn)器的方位角大小Fig.11 Azimuth of each thruster
圖12 期望/實(shí)際的推力和力矩Fig.12 Expected/actual thrusts and moments
圖13 期望/實(shí)際的推力和力矩的偏差Fig.13 Errors between expected and actual thrusts and moments
通過以上實(shí)例分析可知,本文所提出的推力分配策略在處理推進(jìn)器推力極限、推力變化率極限、方位角變化率極限、機(jī)械磨損、禁區(qū)限制,奇異性等約束優(yōu)化問題上相對(duì)二次規(guī)劃法和偽逆法等推力分配算法體現(xiàn)出了較大的優(yōu)勢(shì)和靈活性,然而這些優(yōu)勢(shì)的獲取是以相對(duì)犧牲實(shí)時(shí)性為前提的,針對(duì)實(shí)例3,通過20次仿真運(yùn)行,結(jié)果顯示單位采樣周期最大運(yùn)行時(shí)間為0.5633 s,最小運(yùn)行時(shí)間為0.4977 s,平均運(yùn)行時(shí)間為0.5153 s,可見滿足一定的實(shí)時(shí)性要求,然而實(shí)時(shí)性與二次規(guī)劃法和偽逆法等推力分配算法相比仍然處于劣勢(shì),這也是由本文算法本身結(jié)構(gòu)特點(diǎn)決定的。雖然實(shí)時(shí)性上相比較而言處于劣勢(shì),然而可以獲得更加靈活、更好的其它性能,使得該算法具備更好的應(yīng)用前景,而且隨著量子計(jì)算技術(shù)的成熟,該劣勢(shì)會(huì)逐漸降低。
本文研究的基于“雙向窮盡”混群優(yōu)化算法以及監(jiān)督與切換機(jī)制是一種新型的動(dòng)力定位船舶推力分配求解方法,其中“雙向窮盡”混群優(yōu)化算法融合了多種群智能算法的優(yōu)勢(shì),使得該算法在大范圍搜索空間內(nèi)局部及全局尋優(yōu)能力和收斂性更強(qiáng),把該算法和監(jiān)督與切換機(jī)制相結(jié)合使船舶推力分配的全局最優(yōu)解更容易獲得。本文船模Cybership III 實(shí)例“靜態(tài)”和“動(dòng)態(tài)”分析也表明該算法在推力分配過程中能取得較好效果,具有良好的應(yīng)用前景和推廣價(jià)值。