陳 林,王恒家,王化明,吳巧瑞
(1.浙江海洋大學東??茖W技術(shù)學院,浙江舟山 316000;2.浙江海洋大學船舶與機電工程學院,浙江舟山 316022)
船舶航向控制的穩(wěn)定關(guān)系到船舶航行的安全。傳統(tǒng)PID 控制算法具有魯棒性好、控制精度高、可靠性高等特點,直至今天仍被廣泛應用于船舶自動舵的控制。由于船舶的運動具有大慣性、大時滯、非線性等特點,傳統(tǒng)PID 控制算法不能很好的控制船舶的運動,特別在受到外界高頻擾動時容易造成系統(tǒng)動蕩,難以對船舶的航向控制進行準確控制。隨著現(xiàn)代控制理論的發(fā)展,出現(xiàn)了許多群體智能優(yōu)化算法[1-3],將群體智能優(yōu)化方法與PID 控制算法相結(jié)合,來確定PID 的參數(shù),進而提高PID 控制系統(tǒng)的性能。
粒子群優(yōu)化算法被廣泛應用在參數(shù)的尋優(yōu)問題,通過各粒子之間的信息交流、協(xié)作,獲得問題的最優(yōu)解,將粒子群優(yōu)化算法應用于船舶航向PID 控制的參數(shù)優(yōu)化問題,可以提高船舶的航向控制性能。但是標準粒子群算法存在早熟、容易陷于局部極值,此后出現(xiàn)了一些改進型粒子群算法。任子武等[4]加入變異算子,對選中的粒子以一定的變異概率進行變異。金翠云等[5]在粒子群優(yōu)化算法的基礎上,考慮最差位置信息,對粒子的狀態(tài)進行更新。南杰瓊等[6]利用隨機擾動正弦來調(diào)整粒子的慣性權(quán)值,在搜索初期加大粒子群的全局搜索能力。黃洋等[7]利用倒S 型函數(shù)對粒子慣性權(quán)值的非線性調(diào)整。戴文智等[8]采用對數(shù)遞減調(diào)整粒子的慣性權(quán)值。改進型粒子群優(yōu)化算法提升了粒子在解空間的搜索能力,加快了粒子群優(yōu)化算法的收斂速度。
綜合分析,本文將隨機擾動正弦調(diào)整粒子慣性權(quán)值和變異算子組合在一起對粒子群優(yōu)化算法進行改進,利用改進粒子群優(yōu)化算法對船舶航向PID 控制的參數(shù)進行優(yōu)化,在得到參數(shù)后,仿真船舶在靜水和波浪下的航向運動,并與基于人工整定PID 參數(shù)的船舶航向運動進行比較。
船舶在水面上的運動十分復雜,一般需要建立六自由度運動方程才能準確描述船舶的運動狀態(tài)。在研究船舶航向自動控制時可以簡化船舶運動模型,僅考慮輸入舵角與航向輸出之間的關(guān)系。不考慮舵機特性。本文采用Nomoto 模型作為船舶運動模型,即:
其中,K,T 可通過公式計算得到:
其中,a11,a12,a21,a22,b11,b21計算方法參文獻[9],與航速、兩注間長、船寬、滿載吃水、方形系數(shù)、排水量、重心距中心距離、舵葉面積有關(guān)。
利用PID 控制算法實現(xiàn)對船舶航向的控制,其系統(tǒng)流程如圖1 所示。由于傳統(tǒng)PID 控制參數(shù)一般是經(jīng)驗確定,在外界環(huán)境多變時,控制系統(tǒng)的性能會受到很大干擾,控制精度會下降很大。本文利用改進粒子群優(yōu)化算法確定PID 算法的3 個參數(shù)值,提高PID 控制系統(tǒng)的抗干擾能力和控制精度。優(yōu)化算法的思想是尋找一組PID 參數(shù)值使得控制系統(tǒng)的性能最佳。
圖1 基于PID 控制參數(shù)調(diào)整的船舶航向控制系統(tǒng)Fig.1 Ship heading control system based on PID control parameter adjustment
目標函數(shù)是判斷系統(tǒng)控制性能的強弱的指標。對于船舶航向控制運動,當設定航向與實際航向偏差較大時,沿設定航向的速度分量下降,需要通過控制舵角降低航向偏差,但會增大了航行的阻力。在建立船舶航向控制系統(tǒng)的目標函數(shù)時,需要將舵角和航向偏差都考慮在內(nèi)。采用目標函數(shù)[10]如下:
其中,λ 為舵角加權(quán)系數(shù)。當J 取最小值時,舵角與航向偏差組合值達到最小,船舶具有很好的航向控制性能。
2.2.1 改進粒子群算法
粒子群優(yōu)化算法(Particle Swarm optimization,PSO)適合于求解函數(shù)最優(yōu)極值問題,函數(shù)的變量個數(shù)對應著粒子的維度。在D 為搜索空間,設定粒子數(shù)目為n,第i 個粒子的位置為xi=(xi1,xi2,…,xiD),第i 個粒子的飛行速度為vi=(vi1,vi2,…,viD)。每次迭代,單個粒子歷史經(jīng)歷最好的位置稱為個體極值pbest,種群經(jīng)歷過最好的位置稱為全局最優(yōu)極值gbest,粒子的位置和速度根據(jù)式(3)更新。
w 為慣性權(quán)重;c1和c2為加速常數(shù),一般c1,c2∈[0,4];r1,r2為[0,1]區(qū)間的隨機數(shù);vid為第i 個粒子在第d 維的速度;xid為第i 個粒子在第d 維的位置。
2.2.2 改進粒子群優(yōu)化算法
由于粒子群優(yōu)化算法存在早熟,在求解函數(shù)最優(yōu)極值時,容易陷入局部最優(yōu),導致得到的解是函數(shù)的局部最優(yōu)解,而非函數(shù)全局最優(yōu)解。慣性權(quán)重的取值影響到粒子群在解空間中的搜索性能。當慣性權(quán)重取值較大時,粒子群會在更大范圍的解空間中搜索可能解,全局搜索能力較強;慣性權(quán)重取值較小時,粒子群的局部搜索能力較強。本文采用隨機正弦遞減調(diào)整慣性權(quán)重的值,使得在初期,粒子表現(xiàn)為全局搜索,當獲得全局最優(yōu)解后,慣性權(quán)重迅速遞減,粒子表現(xiàn)為局部搜索,加快算法的收斂速度。慣性權(quán)重值隨機擾動正弦遞減的公式[6]表示為:
其中,h=π*iter/2MaxIter,iter為當前迭代次數(shù),MaxIter 為最大迭代次數(shù)。
為防止粒子早熟收斂,在調(diào)整粒子慣性權(quán)重的基礎上,對每個粒子采取概率變異策略,將選中粒子位置轉(zhuǎn)到解空間的其他區(qū)域進行搜索。一般變異概率Pm取0.001~0.1,變異后粒子的位置[4]為:
其中,randn()為均值為0、方差為1 的隨機分布。
船舶航向控制系統(tǒng)PID 參數(shù)優(yōu)化過程實際上是利用改進粒子群算法求解使得式(2)最小值的一組粒子x=(x1,x2,x3),粒子的位置分別對應PID 的3 個參數(shù)值。每次迭代,可以得到單個粒子歷史最小值和種群最小值,每個粒子的位置向著這2 個最小值對應的位置方向移動。在迭代結(jié)束后可確定得到一組具有最佳位置的粒子,使得式(2)的值在整個迭代過程中最小,粒子的位置分別對應PID 算法的3 個參數(shù),即為優(yōu)化后的PID 參數(shù)值。
參數(shù)整定步驟:
Step1:粒子群初始化,設置粒子的數(shù)目,迭代次數(shù),粒子飛行的速度限制[Vmin,Vmax],粒子每個維度位置限制[xmin,xmax],每個粒子隨機產(chǎn)生位置x=(x1,x2,x3)和速度v=(v1,v2,v3)。
Step2:根據(jù)式(2)計算每個粒子對應的J 值。迭代初期,粒子隨機產(chǎn)生的位置作為各自的個體極值pbest,種群中使得J 值最小的粒子作為全局最優(yōu)極值gbest。
Step3:由公式(4)計算每個粒子的慣性權(quán)重。
Step4:采用式(3)更新粒子的飛行速度vid和位置xid。若粒子的速度vid>Vmax,vid=Vmax;vid<Vmin,vid=Vmin。
Step5:引入變異算子,隨機對粒子的位置變異更新。若rand>Pm,則執(zhí)行式(5)。
Step6:判斷粒子是否飛離搜索范圍。若xid<xmin,xid=xmin;xid>xmax,xid=xmax。xi1表示KP,xi2表示KI,xi3表示KD。
Step7:由式(2)計算每個粒子的J 值。令單個粒子與各自個體極值比較,更新個體極值pbest;令所有粒子與全局最優(yōu)極值比較,更新種群的全局最優(yōu)極值gbest。
Step8:判斷是否迭代次數(shù)是否大于最大迭代次數(shù)。若不滿足條件,跳至Step3,繼續(xù)循環(huán)執(zhí)行,反之跳出循環(huán)。
Step9:輸出全局最優(yōu)解及其對應的粒子的位置,即得到最佳的KP,KI,KD。
利用航向偏差、比例系數(shù)、積分系數(shù)、微分系數(shù)求出輸入舵角,公式為:
其中,KP為比例系數(shù),T1積分時間常數(shù),TD微分時間常數(shù),δ(t)為控制器輸出,e(t)為指定航向角s 與實際航向角φ(t)的偏差。
本文采用“育龍”輪為研究對象,船舶的自身參數(shù)[11]:兩柱間長為126 m,船寬為8 m,方形系數(shù)為0.681,滿載排水量為14 278.12^3,舵葉面積為18.8 m2,船速為15 kn,重心距中心距離為0.25 m。本文中改進粒子群優(yōu)化算法參數(shù)設置:粒子數(shù)目為20;加速常數(shù)c1=c2=2;慣性權(quán)重的取值wmax=0.9,wmin=0.4;粒子在空間中的飛行速度取值范圍為[-1,1];粒子位置最小設置為 [0,0,0],最大位置為[10,0.1,100];最大進化迭代次數(shù)為100 次;最小適應度值為0.1。λ 取0.1。變異概率Pm取0.08。標準PSO 無λ、Pm,其他參數(shù)設置與上面保持一致?;趹T性權(quán)重隨機正弦遞減PSO、基于變異PSO 是根據(jù)上面部分參數(shù)設置。機械舵角限制為≤25°。采用MATLAB 軟件編寫改進粒子群優(yōu)化算法,利用Simulink 仿真工具建立船舶航向控制系統(tǒng),如圖2所示,圖中KP,KI,KD對應每一個輸入粒子的位置分量,將兩者結(jié)合起來實現(xiàn)對PID 控制參數(shù)的優(yōu)化,從而提高船舶航向控制性能。
圖2 基于Simulink 仿真工具的船舶航向控制系統(tǒng)模型Fig.2 Ship heading control system model based on Simulink simulation tool
基于船舶航向控制系統(tǒng)模型,設置指定航向角。在靜水環(huán)境下,分別采用標準PSO、基于慣性權(quán)重隨機正弦遞減PSO、基于變異PSO 以及本文的改進PSO 對目標函數(shù)的J 值進行尋優(yōu)。算法每次迭代,可以得到粒子群中最小J 值,當J 值趨于穩(wěn)定且保持不變時,即可得到一組PID 參數(shù)使得控制系統(tǒng)控制性能最佳,然后根據(jù)PID 航向控制算法調(diào)整船舶的航向角到達指定航向角,之后保持船舶的航向角不變。
圖3 優(yōu)化算法的收斂速度比較Fig.3 Comparison of convergence speed of optimization algorithms
如圖3 所示,隨著迭代次數(shù)的增加,采用標準和所有改進粒子群優(yōu)化算法得到粒子群值最終保持穩(wěn)定都非常接近,表明所有算法都已收斂,可以確定一組使得控制系統(tǒng)性能最佳的PID 參數(shù)。本文改機粒子群優(yōu)化算法在搜索前期具有更小值,迭代次數(shù)在2~16 次時,粒子陷入局部極值,之后便跳出局部搜索,在解空間的其他部分繼續(xù)搜索可能解,表現(xiàn)為全局搜索。本文改進的粒子優(yōu)化算法在迭代次數(shù)為17 次時,就已經(jīng)獲得種群的最小值,且隨著迭代次數(shù)的增加,值基本保持不變,表明算法收斂速度很快。與其他粒子群優(yōu)化算法相比,本文改進粒子群優(yōu)化算法的具有更快的收斂速度和良好的全局搜索能力。
利用臨界比例法整定PID 控制參數(shù),經(jīng)過多次測試后確定一組PID 參數(shù),即KP=3,KI=0.002,KD=40,仿真船舶以5 度航向保持直線航行,與采用本文改進粒子群優(yōu)化PID 算法計算的結(jié)果進行對比。圖4 是仿真船舶在靜水條件下航向保持運動時的航向角和舵角變化曲線。
圖4 在靜水條件下船舶航向角與舵角的變化曲線Fig.4 Curve of ship heading angle and rudder angle under hydrostatic conditions
從圖4(a)看出人工整定的PID 參數(shù)應用到航向控制系統(tǒng)中,航向角在達到指定航向角后會繼續(xù)增加,系統(tǒng)出現(xiàn)超調(diào)現(xiàn)象,而改進粒子濾波算法優(yōu)化得到PID 參數(shù)使得控制系統(tǒng)可以很好的控制航向,未出現(xiàn)超調(diào)現(xiàn)象。從圖4(b)可以看到通過舵機調(diào)整船舶的航向,改進粒子群算法中的舵角擺舵幅度較小,控制效果更好。
波浪對船舶運動影響較大,二階波浪力會導致船舶的航向發(fā)生偏離,在研究船舶的航向保持運動時不可忽略。采用白噪聲驅(qū)動波浪的傳遞函數(shù)來模擬海浪干擾,作為一種干擾舵角疊加到由PID 控制律計算得到的舵角上。采用6 級風作用下典型的二階振蕩環(huán)節(jié)傳遞函數(shù)[8]。傳遞函數(shù)為:
波浪條件下各優(yōu)化算法種群最小J 值迭代對比如圖5 所示:
圖5 各優(yōu)化算法對比Fig.5 Comparison of convergence speed of optimization algorithms
如圖5 可知,在波浪條件下,本文改進的粒子群優(yōu)化算法在迭代初期就可以找到較小的值。在迭代次數(shù)為18 次時,種群最小值達到最小,且在之后的迭代保持不變,算法已經(jīng)收斂,即找到一組使得PID 控制系統(tǒng)性能最優(yōu)的一組參數(shù)。與其他優(yōu)化算法相比較,該改進算法具有較快的收斂速度和全局搜索性能。
圖6 為波浪條件下船舶航向保持運動的航向角與舵角變化曲線,粒子群優(yōu)化后的PID 參數(shù)控制系統(tǒng)在控制航向時未出現(xiàn)超調(diào),且在波浪條件下,可以控制船舶的航向角維持在5°上下,航向角波動幅值比基于臨界比例法的控制系統(tǒng)的航向波動幅值小。受波浪的干擾影響,舵角波動較為頻繁,一般都在±5°之內(nèi)。
通過改進粒子優(yōu)化算法可計算得到在不同條件下使得航向控制系統(tǒng)性能最佳的PID 參數(shù)值,如表1所示。
圖6 波浪條件下船舶航向角與舵角的變化曲線Fig.6 Curve of ship heading angle and rudder angle under wave conditions
表1 不同環(huán)境下改進粒子群優(yōu)化得到的控制參數(shù)值Tab.1 Control parameter values obtained by improved particle swarm optimization under different conditions
本文采用改進粒子群優(yōu)化算法優(yōu)化PID 參數(shù),進而提升船舶航向控制系統(tǒng)性能。在目標函數(shù)尋優(yōu)時,分別采用本文改進PSO、標準PSO、基于變異PSO、基于權(quán)重正弦調(diào)整PSO 四種方法,將得到結(jié)果進行對比,表明本文改進PSO 在目標函數(shù)尋優(yōu)時具有更快的收斂速度。分別采用人工整定的PID 參數(shù)、本文改進PSO 確定的PID 參數(shù)仿真船舶5 度偏航運動,結(jié)果表明采用第二種方法不會出現(xiàn)超調(diào),控制效果更好。