許諾,黃浪塵,張誠,趙曉瀚
(湖南工業大學電氣與信息工程學院,湖南株洲 412007)
為適應國際貿易的旺盛需求,海上運輸行業發展迅速,《智能船舶發展行動計劃(2019-2021 年)》將船舶自主航行避碰技術列為需要著重提升的關鍵智能技術之一。為減少碰撞事故、保障航行安全,對于船舶避碰算法的研究逐漸成為航海安全領域的熱點方向[1-2]。
陽明霞[3]將北斗衛星通信系統應用于船舶航線規劃中,利用北斗衛星確定出當前航向中的安全區域,再應用Dijkstra 算法規劃航跡,實驗結果證明了該應用具有更優的魯棒性。曾勇[4]等提出了一種基于粒子群-遺傳(PSO-GA)的混合優化算法,利用該算法搜索最佳轉向角度與航行時間,最終證明PSOGA 算法PSO 或GA 算法相比,具有更好的尋優效率。倪生科[5]等將遺傳算法與非線性規劃方法相結合,考慮避碰路徑的安全、平滑度、長度因素,建立避碰目標函數,通過仿真證明了算法的可行性與必要性。馬文耀[6]等利用遺傳算法結合人工魚群算法規劃船舶避碰路徑,對人工魚執行交叉、變異操作,選擇最優個體,迭代產生最優解,對不同會遇場景進行仿真,得到安全經濟的避碰路徑。崔瑾娟[7]在遺傳算法中引入粒子群算法機制,對遺傳算法的選擇、交叉和變異過程提出改進,避免算法過早陷入局部極值,仿真結果表明,由改進算法得到的避碰路徑安全性高、搜索時間少。
根據《國際海上避碰規則》,將會遇場景分為對遇、交叉、追越三種情況[8]。如圖1 所示,P1 為對遇,P2 為右側交叉,P3 為追遇,P4 為左側交叉。當來船位于P1、P2 時,即本船與來船會遇場景為對遇與右側交叉時,按照《國際海上避碰規則》,本船應該采取避碰措施。

圖1 會遇場景與對應角度
本船在確定需要啟動避碰操作時,每隔t秒調整一次航向,共調整k次,假設船速為v,則產生一條長度為vkt的避碰路徑。來船保持勻速直線航行,在每個時間點記錄本船與來船的空間位置,計算在該條避碰路徑上兩船的最小距離dmin,ds為兩船的安全距離,在保證dmin<ds的前提下,不斷迭代尋優,找到偏航距離和平滑度最優的避碰路徑。
在該模型中,粒子群優化算法初始隨機生成n個粒子,每個粒子都是由k個偏航角度θ組成的一個實數序列,代表一條潛在的避碰路徑。式(1)表示第t代第i個粒子的偏航角度序列[9]:
設置規劃空間為1 000 m×1 000 m 的二維海平面,約束條件為本船與來船在避碰過程中的任意時刻都保持安全距離ds,優化對象為避碰過程結束后本船的偏航距離以及避碰軌跡的平滑度。建立適應度函數f作為評價避碰路徑優劣的指標,該文綜合考慮了安全代價fs、距離代價fd、角度代價fa。
1)安全代價。當避碰路徑上兩船最小距離dmin大于預設的安全距離ds時,認為該路徑是安全的,可以不考慮安全代價;當dmin<ds時,該路徑有碰撞風險,應將安全代價fs設置為無窮大,避免選取該路徑作為避碰路徑。fs如式(5)所示:
2)距離代價。若(xn,yn)為本船在避碰路徑終點時的北斗定位位置坐標,(x0,y0)為不進行避碰操作時原始航跡在該時刻的坐標,則可將偏航距離作為該避碰路徑的距離代價。fd如式(6)所示:
3)角度代價。對一條避碰路徑,應使其盡量平滑,偏航角度變化率盡可能小,以降低航行能耗和減少偏航操作。角度代價fa定義為在一條避碰路徑上,所有相鄰偏航角度差的絕對值的總和。fa如式(7)所示:
綜合上述三個方面,可以得到適應度函數f如式(8)所示,式中k1、k2為比例系數,用于調節距離代價與角度代價的權重。
傳統粒子群優化算法對于所有粒子設置固定的控制參數,沒有側重性,不利于種群多樣化[10-15]。該文從縱向與橫向兩個角度對粒子群優化算法的控制參數進行動態調整,使不同時期的不同粒子側重于執行最適合該粒子的尋優任務,避免全局搜索與局部搜索對控制參數取值的競爭,使兩種搜索能力同時得到提升。
根據前期保持較大慣性權重w,后期逐漸降低w值的策略,該文采用余弦衰減的慣性權重調整方法,將由迭代次數影響下的慣性參數wt作為t的函數,wt如式(9)所示:
粒子群在每次迭代過后,計算粒子的適應度值,除去適應度值為無窮大的粒子后,在其余粒子中找出最大適應度值fmax,最小適應度值fmin,并計算出平均適應度值-f。則由適應度值影響下的慣性參數wf為f的函數,wf如式(10)所示:
綜合考慮迭代次數t與適應度值f對慣性參數w的影響,w如式(11)所示,式中α、β為比例系數,用于調節t與f對w的影響程度。
在動態調整w的基礎上,計算自我認知參數c1、社會認知參數c2[16]。設初始c1=2.0、c2=0.5,最終c1=0.5、c2=2.0;wmax=0.9,wmin=0.4。利用待定系數法得到c1、c2關于w的線性方程組如式(12)所示:
步驟1:初始化粒子群。隨機生成n個粒子的偏航角度序列和變角速度序列,設置最大迭代次數為Tmax。
步驟2:根據迭代次數計算wt,根據適應度值計算wf,再由式(11)得到慣性權重w,由式(12)得到認知參數c1、c2。
步驟3:將控制參數w、c1、c2代入式(3),計算下一次迭代的變角速度序列。
步驟5:根據式(8)計算該代粒子的適應度值,更新個體最優解、全局最優解gbest。
步驟6:判斷算法是否達到最大迭代次數,若沒有則轉到步驟2,若達到則結束搜索。
算法流程圖如圖2 所示。

圖2 算法流程圖
在Matlab2021a 平臺上進行仿真測試,將改進算法與PSO 算法進行比較。表1 為3 種要求本船采取避障措施的會遇場景,表2 為算法參數,其中,PSO 算法參數取改進算法的初始參數。

表1 會遇場景參數

表2 算法參數
根據圖3-5 可得表3-4,由表3、4 可知,在適應度值上,改進算法平均尋優結果為1 457.7,PSO 算法為1 490.4;在迭代次數上,改進算法平均為22 代達到穩定,PSO 算法平均為72 代。由測試數據可知,改進算法相較于PSO 算法在尋優結果上具有一定優勢,在尋優速度上具有顯著優勢,平均迭代次數降低了69.4%,綜合尋優效率獲得明顯提升。

表3 適應度對比

圖3 會遇場景1適應度曲線

圖4 會遇場景2適應度曲線

圖5 會遇場景3適應度曲線

表4 迭代次數對比
針對傳統PSO 算法的弊端,提出了相應的改進策略,從兩個不同維度對算法的控制參數進行動態調整,提高了算法的靈活度。將改進算法應用于海上船舶避碰模型中,并通過Matlab 進行仿真。分析算法規劃結果可知,改進算法在尋優結果與搜索效率上均優于PSO 算法,可以為海上船舶避碰決策提供一定的參考價值。