陳 林,王恒家,王化明,吳巧瑞
(1.浙江海洋大學東海科學技術學院,浙江舟山 316000;2.浙江海洋大學船舶與機電工程學院,浙江舟山 316022)
船舶航向控制的穩定關系到船舶航行的安全。傳統PID 控制算法具有魯棒性好、控制精度高、可靠性高等特點,直至今天仍被廣泛應用于船舶自動舵的控制。由于船舶的運動具有大慣性、大時滯、非線性等特點,傳統PID 控制算法不能很好的控制船舶的運動,特別在受到外界高頻擾動時容易造成系統動蕩,難以對船舶的航向控制進行準確控制。隨著現代控制理論的發展,出現了許多群體智能優化算法[1-3],將群體智能優化方法與PID 控制算法相結合,來確定PID 的參數,進而提高PID 控制系統的性能。
粒子群優化算法被廣泛應用在參數的尋優問題,通過各粒子之間的信息交流、協作,獲得問題的最優解,將粒子群優化算法應用于船舶航向PID 控制的參數優化問題,可以提高船舶的航向控制性能。但是標準粒子群算法存在早熟、容易陷于局部極值,此后出現了一些改進型粒子群算法。任子武等[4]加入變異算子,對選中的粒子以一定的變異概率進行變異。金翠云等[5]在粒子群優化算法的基礎上,考慮最差位置信息,對粒子的狀態進行更新。南杰瓊等[6]利用隨機擾動正弦來調整粒子的慣性權值,在搜索初期加大粒子群的全局搜索能力。黃洋等[7]利用倒S 型函數對粒子慣性權值的非線性調整。戴文智等[8]采用對數遞減調整粒子的慣性權值。改進型粒子群優化算法提升了粒子在解空間的搜索能力,加快了粒子群優化算法的收斂速度。
綜合分析,本文將隨機擾動正弦調整粒子慣性權值和變異算子組合在一起對粒子群優化算法進行改進,利用改進粒子群優化算法對船舶航向PID 控制的參數進行優化,在得到參數后,仿真船舶在靜水和波浪下的航向運動,并與基于人工整定PID 參數的船舶航向運動進行比較。
船舶在水面上的運動十分復雜,一般需要建立六自由度運動方程才能準確描述船舶的運動狀態。在研究船舶航向自動控制時可以簡化船舶運動模型,僅考慮輸入舵角與航向輸出之間的關系。不考慮舵機特性。本文采用Nomoto 模型作為船舶運動模型,即:

其中,K,T 可通過公式計算得到:

其中,a11,a12,a21,a22,b11,b21計算方法參文獻[9],與航速、兩注間長、船寬、滿載吃水、方形系數、排水量、重心距中心距離、舵葉面積有關。
利用PID 控制算法實現對船舶航向的控制,其系統流程如圖1 所示。由于傳統PID 控制參數一般是經驗確定,在外界環境多變時,控制系統的性能會受到很大干擾,控制精度會下降很大。本文利用改進粒子群優化算法確定PID 算法的3 個參數值,提高PID 控制系統的抗干擾能力和控制精度。優化算法的思想是尋找一組PID 參數值使得控制系統的性能最佳。

圖1 基于PID 控制參數調整的船舶航向控制系統Fig.1 Ship heading control system based on PID control parameter adjustment
目標函數是判斷系統控制性能的強弱的指標。對于船舶航向控制運動,當設定航向與實際航向偏差較大時,沿設定航向的速度分量下降,需要通過控制舵角降低航向偏差,但會增大了航行的阻力。在建立船舶航向控制系統的目標函數時,需要將舵角和航向偏差都考慮在內。采用目標函數[10]如下:

其中,λ 為舵角加權系數。當J 取最小值時,舵角與航向偏差組合值達到最小,船舶具有很好的航向控制性能。
2.2.1 改進粒子群算法
粒子群優化算法(Particle Swarm optimization,PSO)適合于求解函數最優極值問題,函數的變量個數對應著粒子的維度。在D 為搜索空間,設定粒子數目為n,第i 個粒子的位置為xi=(xi1,xi2,…,xiD),第i 個粒子的飛行速度為vi=(vi1,vi2,…,viD)。每次迭代,單個粒子歷史經歷最好的位置稱為個體極值pbest,種群經歷過最好的位置稱為全局最優極值gbest,粒子的位置和速度根據式(3)更新。

w 為慣性權重;c1和c2為加速常數,一般c1,c2∈[0,4];r1,r2為[0,1]區間的隨機數;vid為第i 個粒子在第d 維的速度;xid為第i 個粒子在第d 維的位置。
2.2.2 改進粒子群優化算法
由于粒子群優化算法存在早熟,在求解函數最優極值時,容易陷入局部最優,導致得到的解是函數的局部最優解,而非函數全局最優解。慣性權重的取值影響到粒子群在解空間中的搜索性能。當慣性權重取值較大時,粒子群會在更大范圍的解空間中搜索可能解,全局搜索能力較強;慣性權重取值較小時,粒子群的局部搜索能力較強。本文采用隨機正弦遞減調整慣性權重的值,使得在初期,粒子表現為全局搜索,當獲得全局最優解后,慣性權重迅速遞減,粒子表現為局部搜索,加快算法的收斂速度。慣性權重值隨機擾動正弦遞減的公式[6]表示為:

其中,h=π*iter/2MaxIter,iter為當前迭代次數,MaxIter 為最大迭代次數。
為防止粒子早熟收斂,在調整粒子慣性權重的基礎上,對每個粒子采取概率變異策略,將選中粒子位置轉到解空間的其他區域進行搜索。一般變異概率Pm取0.001~0.1,變異后粒子的位置[4]為:

其中,randn()為均值為0、方差為1 的隨機分布。
船舶航向控制系統PID 參數優化過程實際上是利用改進粒子群算法求解使得式(2)最小值的一組粒子x=(x1,x2,x3),粒子的位置分別對應PID 的3 個參數值。每次迭代,可以得到單個粒子歷史最小值和種群最小值,每個粒子的位置向著這2 個最小值對應的位置方向移動。在迭代結束后可確定得到一組具有最佳位置的粒子,使得式(2)的值在整個迭代過程中最小,粒子的位置分別對應PID 算法的3 個參數,即為優化后的PID 參數值。
參數整定步驟:
Step1:粒子群初始化,設置粒子的數目,迭代次數,粒子飛行的速度限制[Vmin,Vmax],粒子每個維度位置限制[xmin,xmax],每個粒子隨機產生位置x=(x1,x2,x3)和速度v=(v1,v2,v3)。
Step2:根據式(2)計算每個粒子對應的J 值。迭代初期,粒子隨機產生的位置作為各自的個體極值pbest,種群中使得J 值最小的粒子作為全局最優極值gbest。
Step3:由公式(4)計算每個粒子的慣性權重。
Step4:采用式(3)更新粒子的飛行速度vid和位置xid。若粒子的速度vid>Vmax,vid=Vmax;vid<Vmin,vid=Vmin。
Step5:引入變異算子,隨機對粒子的位置變異更新。若rand>Pm,則執行式(5)。
Step6:判斷粒子是否飛離搜索范圍。若xid<xmin,xid=xmin;xid>xmax,xid=xmax。xi1表示KP,xi2表示KI,xi3表示KD。
Step7:由式(2)計算每個粒子的J 值。令單個粒子與各自個體極值比較,更新個體極值pbest;令所有粒子與全局最優極值比較,更新種群的全局最優極值gbest。
Step8:判斷是否迭代次數是否大于最大迭代次數。若不滿足條件,跳至Step3,繼續循環執行,反之跳出循環。
Step9:輸出全局最優解及其對應的粒子的位置,即得到最佳的KP,KI,KD。
利用航向偏差、比例系數、積分系數、微分系數求出輸入舵角,公式為:

其中,KP為比例系數,T1積分時間常數,TD微分時間常數,δ(t)為控制器輸出,e(t)為指定航向角s 與實際航向角φ(t)的偏差。
本文采用“育龍”輪為研究對象,船舶的自身參數[11]:兩柱間長為126 m,船寬為8 m,方形系數為0.681,滿載排水量為14 278.12^3,舵葉面積為18.8 m2,船速為15 kn,重心距中心距離為0.25 m。本文中改進粒子群優化算法參數設置:粒子數目為20;加速常數c1=c2=2;慣性權重的取值wmax=0.9,wmin=0.4;粒子在空間中的飛行速度取值范圍為[-1,1];粒子位置最小設置為 [0,0,0],最大位置為[10,0.1,100];最大進化迭代次數為100 次;最小適應度值為0.1。λ 取0.1。變異概率Pm取0.08。標準PSO 無λ、Pm,其他參數設置與上面保持一致。基于慣性權重隨機正弦遞減PSO、基于變異PSO 是根據上面部分參數設置。機械舵角限制為≤25°。采用MATLAB 軟件編寫改進粒子群優化算法,利用Simulink 仿真工具建立船舶航向控制系統,如圖2所示,圖中KP,KI,KD對應每一個輸入粒子的位置分量,將兩者結合起來實現對PID 控制參數的優化,從而提高船舶航向控制性能。

圖2 基于Simulink 仿真工具的船舶航向控制系統模型Fig.2 Ship heading control system model based on Simulink simulation tool
基于船舶航向控制系統模型,設置指定航向角。在靜水環境下,分別采用標準PSO、基于慣性權重隨機正弦遞減PSO、基于變異PSO 以及本文的改進PSO 對目標函數的J 值進行尋優。算法每次迭代,可以得到粒子群中最小J 值,當J 值趨于穩定且保持不變時,即可得到一組PID 參數使得控制系統控制性能最佳,然后根據PID 航向控制算法調整船舶的航向角到達指定航向角,之后保持船舶的航向角不變。

圖3 優化算法的收斂速度比較Fig.3 Comparison of convergence speed of optimization algorithms
如圖3 所示,隨著迭代次數的增加,采用標準和所有改進粒子群優化算法得到粒子群值最終保持穩定都非常接近,表明所有算法都已收斂,可以確定一組使得控制系統性能最佳的PID 參數。本文改機粒子群優化算法在搜索前期具有更小值,迭代次數在2~16 次時,粒子陷入局部極值,之后便跳出局部搜索,在解空間的其他部分繼續搜索可能解,表現為全局搜索。本文改進的粒子優化算法在迭代次數為17 次時,就已經獲得種群的最小值,且隨著迭代次數的增加,值基本保持不變,表明算法收斂速度很快。與其他粒子群優化算法相比,本文改進粒子群優化算法的具有更快的收斂速度和良好的全局搜索能力。
利用臨界比例法整定PID 控制參數,經過多次測試后確定一組PID 參數,即KP=3,KI=0.002,KD=40,仿真船舶以5 度航向保持直線航行,與采用本文改進粒子群優化PID 算法計算的結果進行對比。圖4 是仿真船舶在靜水條件下航向保持運動時的航向角和舵角變化曲線。

圖4 在靜水條件下船舶航向角與舵角的變化曲線Fig.4 Curve of ship heading angle and rudder angle under hydrostatic conditions
從圖4(a)看出人工整定的PID 參數應用到航向控制系統中,航向角在達到指定航向角后會繼續增加,系統出現超調現象,而改進粒子濾波算法優化得到PID 參數使得控制系統可以很好的控制航向,未出現超調現象。從圖4(b)可以看到通過舵機調整船舶的航向,改進粒子群算法中的舵角擺舵幅度較小,控制效果更好。
波浪對船舶運動影響較大,二階波浪力會導致船舶的航向發生偏離,在研究船舶的航向保持運動時不可忽略。采用白噪聲驅動波浪的傳遞函數來模擬海浪干擾,作為一種干擾舵角疊加到由PID 控制律計算得到的舵角上。采用6 級風作用下典型的二階振蕩環節傳遞函數[8]。傳遞函數為:

波浪條件下各優化算法種群最小J 值迭代對比如圖5 所示:

圖5 各優化算法對比Fig.5 Comparison of convergence speed of optimization algorithms
如圖5 可知,在波浪條件下,本文改進的粒子群優化算法在迭代初期就可以找到較小的值。在迭代次數為18 次時,種群最小值達到最小,且在之后的迭代保持不變,算法已經收斂,即找到一組使得PID 控制系統性能最優的一組參數。與其他優化算法相比較,該改進算法具有較快的收斂速度和全局搜索性能。
圖6 為波浪條件下船舶航向保持運動的航向角與舵角變化曲線,粒子群優化后的PID 參數控制系統在控制航向時未出現超調,且在波浪條件下,可以控制船舶的航向角維持在5°上下,航向角波動幅值比基于臨界比例法的控制系統的航向波動幅值小。受波浪的干擾影響,舵角波動較為頻繁,一般都在±5°之內。
通過改進粒子優化算法可計算得到在不同條件下使得航向控制系統性能最佳的PID 參數值,如表1所示。

圖6 波浪條件下船舶航向角與舵角的變化曲線Fig.6 Curve of ship heading angle and rudder angle under wave conditions

表1 不同環境下改進粒子群優化得到的控制參數值Tab.1 Control parameter values obtained by improved particle swarm optimization under different conditions
本文采用改進粒子群優化算法優化PID 參數,進而提升船舶航向控制系統性能。在目標函數尋優時,分別采用本文改進PSO、標準PSO、基于變異PSO、基于權重正弦調整PSO 四種方法,將得到結果進行對比,表明本文改進PSO 在目標函數尋優時具有更快的收斂速度。分別采用人工整定的PID 參數、本文改進PSO 確定的PID 參數仿真船舶5 度偏航運動,結果表明采用第二種方法不會出現超調,控制效果更好。