胡春洋 胡杰 賈文鵬
(中船航??萍加邢挢熑喂?北京市 100070)
目前航運業(yè)在全球經濟一體化影響下發(fā)展的朝氣蓬勃,由于船舶的自身運動慣性較大,時滯性強,加之在海上航行時,風、流和浪對船舶航行的干擾是無規(guī)律的導致航向不易控制[1]。為解決上述問題,PID 控制算法應運而生。其控制簡單,控制效果好,應用廣泛。但PID 參數整定需要按照方法查各種表,還要根據建立的數學模型做人工調整[2]。這個過程需要反復調整,時間較長,而且最終得到的很可能也不是最優(yōu)的參數[3]。如果輸入的變量很多,那么調節(jié)的可能性組合就會隨之變多,這個工作常常不是非專業(yè)人士所能勝任的[4]。
粒子群優(yōu)化算法可以不需要知道內部原理來調整PID 參數,而且調整的思路是朝著參數最優(yōu)的方向進行,尋優(yōu)速度快,所得結果精度高[5]。但是標準粒子群算法易陷于局部極值,針對此問題,很多學者提出了各種改進型粒子群算法。任子武等[6]在算法中引入變異因子,對每次迭代過程中得到的最優(yōu)粒子進行變異,使其跳出局部最優(yōu);金翠云等[7]考找出每次迭代中位置最差的粒子,對其位置值進行更新,防止陷入局部最優(yōu);南杰瓊[8]利用正弦變化規(guī)律來動態(tài)調整粒子的慣性權值,在搜索初期加大粒子群的全局搜索能力。改進型粒子群優(yōu)化算法的目的都是為提升粒子的全局搜索能力,加快了粒子群優(yōu)化算法的收斂速度為目標。
實際中船舶運動數學模型比較復雜,需要綜合考慮舵機、舵、風、流等因素,得出非線性模型。為簡化計算,便于研究,本文以野本數學模型作為船舶模型進行航向控制研究[9],該模型將復雜的非線性模型化簡為較為簡單的一階數學模型,如式(1)所示。
野本把船舶的轉向運動看成是一個大質量物體的緩慢轉首運動,因此船舶的轉向運動方程可以用一個慣性環(huán)節(jié)來表示,式(1)中T 稱為穩(wěn)定性參數;K 為回轉性參數,這兩個參數可以通過船舶的“Z”形試驗測得。
粒子群優(yōu)化算法(PSO)是一種利用種群進化理念形成的一種計算技術,最初源于對鳥群捕食行為的研究。該算法的核心思想是利用群體中粒子的相互協作,共享信息,不斷趨向食物,從而得到最優(yōu)位置值。
粒子群算法將粒子模擬為鳥群中的鳥,朝著食物前進,不斷更新粒子的速度和位置,粒子間也會進行溝通交流。每個粒子會把自己所經過位置的最優(yōu)值記錄下來,通過和種群中其他粒子的最佳位置值進行對比,得到相對最佳位置值,然后根據該值進行自身的速度優(yōu)化和位置優(yōu)化,繼續(xù)朝著最佳位置前進[10]。在整個過程中,粒子不斷調整自己的位置和速度,去趨向食物所在的方向。粒子通過下面的公式來更新自己的速度和位置。
在公式(2)和(3)中,i=1,2,3……N,N 是此群體中粒子總數;vi是粒子的速度;rand()是介于(0,1)間的隨機數;xi是粒子的當前位置;c1和c2是學習因子;vi的最大值為Vmax(大于0),如果vi>Vmax,則vi=Vmax。公式(2)由三部分相加得到,第一部分為粒子的自身慣性,保留上次的速度值;公式(2)的第二部分為粒子最優(yōu)值,表示粒子已運動過的位置記錄,是目前得到的粒子的位置最優(yōu)值;公式(2)的第三部分為社會因子[11],是整個粒子群中的位置最優(yōu)值,粒子間通過相互交流分享比較,得到了整個種群的最佳位置,代表粒子群的運動方向和趨勢。由于公式(2)易陷入局部最優(yōu),需對其進行改進,改進后如下式所示:
其中,w 為慣性因子,其值為非負。若其值較大,則全局尋優(yōu)能力強,局部尋優(yōu)能力弱;若其值較小,則全局尋優(yōu)能力弱,局部尋優(yōu)能力強。粒子群算法在迭代的過程中部分粒子有時會反向運動,這是由于粒子的慣性速度過大導致的,在迭代點附近,如果慣性因子過大,會導致很長時間無法收斂到一個點,同時也很難找到相比上一次迭代更優(yōu)的解。為了解決該問題,本文采用隨著迭代次數增加減小慣性因子的策略,如下式所示:
式中,i 為當前迭代次數,n 為總代數。將式(5)應用到式(4)中,增強了粒子的全局和局部搜索能力。
同時,繼續(xù)對標準粒子群算法進行改進,將社會因子分解為了兩部分——局部社會因子和全局社會因子,如下式所示:
全局社會因子代表粒子的速度矢量向全局最優(yōu)解方向運動,而局部社會因子則代表該粒子在局部范圍內在朝著最優(yōu)的方向運動,是該粒子一定范圍內的最優(yōu)解,一般這個范圍是固定的,而包含的粒子數量(如果為1,則是粒子本身)不確定。
式(4)和式(6)的區(qū)別在于,式(4)收斂速度快,但是對于多極值問題容易收斂到一個局部最優(yōu)解;式(6)由于要計算局部最優(yōu)解,導致收斂速度相對較慢,但可以很好地解決式(4)收斂到局部最優(yōu)解的問題。
確定參數整定過程中的評價函數,本文選取絕對誤差時間積分(ITAE)指標PID 控制器的性能評價指標,如式(7)所示:
式(7)中,Jmin越小,代表系統性能越好。
基于改進型混合粒子群算法的船舶航向控制原理圖如圖1所示。
圖1:MPSO-PID 控制算法原理圖
由圖1可知,PID 控制算法為:
e(t)為輸入與輸出之間的誤差,ut為控制對象的輸入,t 為時間常數。
對PID 參數的尋優(yōu),就是利用本文提出的算法對式(7)求最小值的過程。其中粒子的位置信息代表PID 三個參數值,尋優(yōu)的過程中,每次迭代都會產生一組最優(yōu)的粒子位置信息,該信息中包含了單個粒子的最優(yōu)值和整個種群的最優(yōu)值,算法的不斷迭代就是尋找最優(yōu)值的過程。在整個尋優(yōu)過程中,當求得式(7)的最小值或達到終止條件時,會產生一個相對位置最佳的粒子,該粒子的位置值即代表了PID 參數的最優(yōu)值。
Step1:初始化粒子群,設置迭代次數,種群大小,飛行速度限值[Vmin, Vmax],位置限值[xmin, xmax];
Step2:將初始化的粒子的位置值作為粒子的最優(yōu)值,計算每個粒子的評價函數值,得到最小的J 值,并將其作為全局最優(yōu)值;
Step3:根據公式(5)計算粒子的權重值,并帶入式(6),計算得到粒子的速度值;
Step4:將式(6)得到的結果帶入式(3)中,得到粒子的位置值,如果粒子的速度vid>Vmax, vid=Vmax;vid<Vmin,vid=Vmin;xid<Xmin,xid=Xmin;xid>Xmax,xid=Xmax;
Step5:更新完粒子的位置和速度值后,將每個粒子的位置值與Step2 中的pbest 比較,從而更新個體最優(yōu)值;將每個粒子的最優(yōu)值與Step2 中的J 值比較,從而更新全局最優(yōu)值。
Step6:判斷是否達到終止條件,否,則跳至Step2,繼續(xù)循環(huán)執(zhí)行,反之跳出循環(huán);
Step7:達到終止條件時,得到全局最優(yōu)粒子,該值的位置值即為全局最優(yōu)PID 參數值。
采用MATLAB 仿真試驗,對本文提出的算法進行驗證。設置系數c1=c2=2,慣性權重取值wmin=0.3,wmax=0.9;粒子的初始位置設置為[0,0,0],最大位置為[30,0.5,120];迭代次數設為100,粒子的飛行速度取值范圍為[-1,1]。選取“育龍”號為研究對象,控制對象的數學模型選取Nomoto 模型:
式中,?表示船舶航向角,δ 表示舵角,T、K 為系統參數,K=0.42,T=261.73,結果如圖2-圖4所示。
圖2:航向控制效果圖
圖3:控制舵角圖
圖4:航向誤差圖
本文采用改進型混合粒子群算法優(yōu)化PID 參數,將尋優(yōu)后的控制效果與手工整定的控制效果進行對比,MPSO-PID 算法跟蹤速度更快,控制精度更高,且無超調,打舵幅度更小,跟蹤誤差更小。證明了該算法的可行性與實際可操作性,無工程經驗人員也可實現良好的控制效果。