許諾,黃浪塵,張誠(chéng),趙曉瀚
(湖南工業(yè)大學(xué)電氣與信息工程學(xué)院,湖南株洲 412007)
為適應(yīng)國(guó)際貿(mào)易的旺盛需求,海上運(yùn)輸行業(yè)發(fā)展迅速,《智能船舶發(fā)展行動(dòng)計(jì)劃(2019-2021 年)》將船舶自主航行避碰技術(shù)列為需要著重提升的關(guān)鍵智能技術(shù)之一。為減少碰撞事故、保障航行安全,對(duì)于船舶避碰算法的研究逐漸成為航海安全領(lǐng)域的熱點(diǎn)方向[1-2]。
陽明霞[3]將北斗衛(wèi)星通信系統(tǒng)應(yīng)用于船舶航線規(guī)劃中,利用北斗衛(wèi)星確定出當(dāng)前航向中的安全區(qū)域,再應(yīng)用Dijkstra 算法規(guī)劃航跡,實(shí)驗(yàn)結(jié)果證明了該應(yīng)用具有更優(yōu)的魯棒性。曾勇[4]等提出了一種基于粒子群-遺傳(PSO-GA)的混合優(yōu)化算法,利用該算法搜索最佳轉(zhuǎn)向角度與航行時(shí)間,最終證明PSOGA 算法PSO 或GA 算法相比,具有更好的尋優(yōu)效率。倪生科[5]等將遺傳算法與非線性規(guī)劃方法相結(jié)合,考慮避碰路徑的安全、平滑度、長(zhǎng)度因素,建立避碰目標(biāo)函數(shù),通過仿真證明了算法的可行性與必要性。馬文耀[6]等利用遺傳算法結(jié)合人工魚群算法規(guī)劃船舶避碰路徑,對(duì)人工魚執(zhí)行交叉、變異操作,選擇最優(yōu)個(gè)體,迭代產(chǎn)生最優(yōu)解,對(duì)不同會(huì)遇場(chǎng)景進(jìn)行仿真,得到安全經(jīng)濟(jì)的避碰路徑。崔瑾娟[7]在遺傳算法中引入粒子群算法機(jī)制,對(duì)遺傳算法的選擇、交叉和變異過程提出改進(jìn),避免算法過早陷入局部極值,仿真結(jié)果表明,由改進(jìn)算法得到的避碰路徑安全性高、搜索時(shí)間少。
根據(jù)《國(guó)際海上避碰規(guī)則》,將會(huì)遇場(chǎng)景分為對(duì)遇、交叉、追越三種情況[8]。如圖1 所示,P1 為對(duì)遇,P2 為右側(cè)交叉,P3 為追遇,P4 為左側(cè)交叉。當(dāng)來船位于P1、P2 時(shí),即本船與來船會(huì)遇場(chǎng)景為對(duì)遇與右側(cè)交叉時(shí),按照《國(guó)際海上避碰規(guī)則》,本船應(yīng)該采取避碰措施。
圖1 會(huì)遇場(chǎng)景與對(duì)應(yīng)角度
本船在確定需要啟動(dòng)避碰操作時(shí),每隔t秒調(diào)整一次航向,共調(diào)整k次,假設(shè)船速為v,則產(chǎn)生一條長(zhǎng)度為vkt的避碰路徑。來船保持勻速直線航行,在每個(gè)時(shí)間點(diǎn)記錄本船與來船的空間位置,計(jì)算在該條避碰路徑上兩船的最小距離dmin,ds為兩船的安全距離,在保證dmin<ds的前提下,不斷迭代尋優(yōu),找到偏航距離和平滑度最優(yōu)的避碰路徑。
在該模型中,粒子群優(yōu)化算法初始隨機(jī)生成n個(gè)粒子,每個(gè)粒子都是由k個(gè)偏航角度θ組成的一個(gè)實(shí)數(shù)序列,代表一條潛在的避碰路徑。式(1)表示第t代第i個(gè)粒子的偏航角度序列[9]:
設(shè)置規(guī)劃空間為1 000 m×1 000 m 的二維海平面,約束條件為本船與來船在避碰過程中的任意時(shí)刻都保持安全距離ds,優(yōu)化對(duì)象為避碰過程結(jié)束后本船的偏航距離以及避碰軌跡的平滑度。建立適應(yīng)度函數(shù)f作為評(píng)價(jià)避碰路徑優(yōu)劣的指標(biāo),該文綜合考慮了安全代價(jià)fs、距離代價(jià)fd、角度代價(jià)fa。
1)安全代價(jià)。當(dāng)避碰路徑上兩船最小距離dmin大于預(yù)設(shè)的安全距離ds時(shí),認(rèn)為該路徑是安全的,可以不考慮安全代價(jià);當(dāng)dmin<ds時(shí),該路徑有碰撞風(fēng)險(xiǎn),應(yīng)將安全代價(jià)fs設(shè)置為無窮大,避免選取該路徑作為避碰路徑。fs如式(5)所示:
2)距離代價(jià)。若(xn,yn)為本船在避碰路徑終點(diǎn)時(shí)的北斗定位位置坐標(biāo),(x0,y0)為不進(jìn)行避碰操作時(shí)原始航跡在該時(shí)刻的坐標(biāo),則可將偏航距離作為該避碰路徑的距離代價(jià)。fd如式(6)所示:
3)角度代價(jià)。對(duì)一條避碰路徑,應(yīng)使其盡量平滑,偏航角度變化率盡可能小,以降低航行能耗和減少偏航操作。角度代價(jià)fa定義為在一條避碰路徑上,所有相鄰偏航角度差的絕對(duì)值的總和。fa如式(7)所示:
綜合上述三個(gè)方面,可以得到適應(yīng)度函數(shù)f如式(8)所示,式中k1、k2為比例系數(shù),用于調(diào)節(jié)距離代價(jià)與角度代價(jià)的權(quán)重。
傳統(tǒng)粒子群優(yōu)化算法對(duì)于所有粒子設(shè)置固定的控制參數(shù),沒有側(cè)重性,不利于種群多樣化[10-15]。該文從縱向與橫向兩個(gè)角度對(duì)粒子群優(yōu)化算法的控制參數(shù)進(jìn)行動(dòng)態(tài)調(diào)整,使不同時(shí)期的不同粒子側(cè)重于執(zhí)行最適合該粒子的尋優(yōu)任務(wù),避免全局搜索與局部搜索對(duì)控制參數(shù)取值的競(jìng)爭(zhēng),使兩種搜索能力同時(shí)得到提升。
根據(jù)前期保持較大慣性權(quán)重w,后期逐漸降低w值的策略,該文采用余弦衰減的慣性權(quán)重調(diào)整方法,將由迭代次數(shù)影響下的慣性參數(shù)wt作為t的函數(shù),wt如式(9)所示:
粒子群在每次迭代過后,計(jì)算粒子的適應(yīng)度值,除去適應(yīng)度值為無窮大的粒子后,在其余粒子中找出最大適應(yīng)度值fmax,最小適應(yīng)度值fmin,并計(jì)算出平均適應(yīng)度值-f。則由適應(yīng)度值影響下的慣性參數(shù)wf為f的函數(shù),wf如式(10)所示:
綜合考慮迭代次數(shù)t與適應(yīng)度值f對(duì)慣性參數(shù)w的影響,w如式(11)所示,式中α、β為比例系數(shù),用于調(diào)節(jié)t與f對(duì)w的影響程度。
在動(dòng)態(tài)調(diào)整w的基礎(chǔ)上,計(jì)算自我認(rèn)知參數(shù)c1、社會(huì)認(rèn)知參數(shù)c2[16]。設(shè)初始c1=2.0、c2=0.5,最終c1=0.5、c2=2.0;wmax=0.9,wmin=0.4。利用待定系數(shù)法得到c1、c2關(guān)于w的線性方程組如式(12)所示:
步驟1:初始化粒子群。隨機(jī)生成n個(gè)粒子的偏航角度序列和變角速度序列,設(shè)置最大迭代次數(shù)為Tmax。
步驟2:根據(jù)迭代次數(shù)計(jì)算wt,根據(jù)適應(yīng)度值計(jì)算wf,再由式(11)得到慣性權(quán)重w,由式(12)得到認(rèn)知參數(shù)c1、c2。
步驟3:將控制參數(shù)w、c1、c2代入式(3),計(jì)算下一次迭代的變角速度序列。
步驟5:根據(jù)式(8)計(jì)算該代粒子的適應(yīng)度值,更新個(gè)體最優(yōu)解、全局最優(yōu)解gbest。
步驟6:判斷算法是否達(dá)到最大迭代次數(shù),若沒有則轉(zhuǎn)到步驟2,若達(dá)到則結(jié)束搜索。
算法流程圖如圖2 所示。
圖2 算法流程圖
在Matlab2021a 平臺(tái)上進(jìn)行仿真測(cè)試,將改進(jìn)算法與PSO 算法進(jìn)行比較。表1 為3 種要求本船采取避障措施的會(huì)遇場(chǎng)景,表2 為算法參數(shù),其中,PSO 算法參數(shù)取改進(jìn)算法的初始參數(shù)。
表1 會(huì)遇場(chǎng)景參數(shù)
表2 算法參數(shù)
根據(jù)圖3-5 可得表3-4,由表3、4 可知,在適應(yīng)度值上,改進(jìn)算法平均尋優(yōu)結(jié)果為1 457.7,PSO 算法為1 490.4;在迭代次數(shù)上,改進(jìn)算法平均為22 代達(dá)到穩(wěn)定,PSO 算法平均為72 代。由測(cè)試數(shù)據(jù)可知,改進(jìn)算法相較于PSO 算法在尋優(yōu)結(jié)果上具有一定優(yōu)勢(shì),在尋優(yōu)速度上具有顯著優(yōu)勢(shì),平均迭代次數(shù)降低了69.4%,綜合尋優(yōu)效率獲得明顯提升。
表3 適應(yīng)度對(duì)比
圖3 會(huì)遇場(chǎng)景1適應(yīng)度曲線
圖4 會(huì)遇場(chǎng)景2適應(yīng)度曲線
圖5 會(huì)遇場(chǎng)景3適應(yīng)度曲線
表4 迭代次數(shù)對(duì)比
針對(duì)傳統(tǒng)PSO 算法的弊端,提出了相應(yīng)的改進(jìn)策略,從兩個(gè)不同維度對(duì)算法的控制參數(shù)進(jìn)行動(dòng)態(tài)調(diào)整,提高了算法的靈活度。將改進(jìn)算法應(yīng)用于海上船舶避碰模型中,并通過Matlab 進(jìn)行仿真。分析算法規(guī)劃結(jié)果可知,改進(jìn)算法在尋優(yōu)結(jié)果與搜索效率上均優(yōu)于PSO 算法,可以為海上船舶避碰決策提供一定的參考價(jià)值。