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