胡文華,曹仁贏,溫澤之,劉劍鋒
(華東交通大學(xué) 電氣與自動化工程學(xué)院,南昌 330013)
得益于傳感器、微處理器、通信以及新材料等技術(shù)領(lǐng)域的飛速發(fā)展,并應(yīng)用于四旋翼飛行器上,使四旋翼飛行器具有體積小、靈活度高、結(jié)構(gòu)簡單、性能可靠的特點(diǎn),現(xiàn)已在各行各業(yè)得到深入的應(yīng)用。例如農(nóng)業(yè)領(lǐng)域:無人機(jī)農(nóng)作物監(jiān)測、數(shù)據(jù)采集,無人機(jī)農(nóng)藥噴灑除害;能源領(lǐng)域:輸電線路無人機(jī)巡檢[1],石油和天然氣管道設(shè)備檢測;公共安全領(lǐng)域:在突發(fā)事件中,無人機(jī)可大范圍監(jiān)控和搜索,迅速傳遞現(xiàn)場情況;媒體領(lǐng)域:采用無人機(jī)攝影,為記者、攝影師提夠獨(dú)特的視角;軍事領(lǐng)域:無人機(jī)參與戰(zhàn)場勘察、火力支援、目標(biāo)跟蹤等;除此之外,無人機(jī)還在環(huán)境評估、交通調(diào)控、基礎(chǔ)設(shè)施建設(shè)、物流、家庭娛樂方面有著廣泛的應(yīng)用。在此背景下,研發(fā)具有高可靠性、高精度、控制迅速的四旋翼飛行器控制系統(tǒng)是工業(yè)界和學(xué)術(shù)界都廣泛關(guān)注的課題。
PID控制[2-4]技術(shù)是工業(yè)生產(chǎn)過程中應(yīng)用最廣,也是最成熟的控制技術(shù)。對于線性系統(tǒng),PID控制能達(dá)到較好的控制品質(zhì)且參數(shù)整定難度小、計(jì)算量不大。然而,對于欠驅(qū)動、強(qiáng)耦合、非線性、多變量的四旋翼飛行器,采用常規(guī)的PID參數(shù)整定方法則計(jì)算量復(fù)雜,不能獲得最優(yōu)的控制參數(shù),難以滿足飛行器設(shè)計(jì)需求。由此,在實(shí)際工程中往往采用各種改進(jìn)PID[5-7]控制技術(shù),其中就有基于粒子群優(yōu)化(PSO)算法的PID控制技術(shù),然而對于四旋翼飛行器的復(fù)雜控制系統(tǒng)以標(biāo)準(zhǔn)PSO算法改進(jìn)的控制技術(shù)存在陷入局部最優(yōu)和收斂速度慢的問題。
本文采用動態(tài)粒子群算法設(shè)計(jì)四旋翼飛行器的PID控制器。該方法既有標(biāo)準(zhǔn)PSO不需要人工調(diào)整參數(shù),粒子群自動尋優(yōu)的優(yōu)點(diǎn),又有效避免了標(biāo)準(zhǔn)PSO會陷入局部最優(yōu)的缺點(diǎn)以及為避免陷入局部最優(yōu)增加粒子群數(shù)量和迭代次數(shù),導(dǎo)致收斂速度慢與計(jì)算量大的問題。
通過四旋翼飛行器的動力學(xué)[8]與運(yùn)動學(xué)方程以及歐拉定理建立了四旋翼飛行器的數(shù)學(xué)模型[9-10]:
(1)
式中:x、y、z為四軸飛行器地理坐標(biāo)系下的空間坐標(biāo)系的坐標(biāo)位置;φ、θ、ψ分別是機(jī)體相對于參考坐標(biāo)系(地理坐標(biāo)系)的翻滾角、俯仰角、偏航角;Ix、Iy、Iz分別為飛行器繞x、y、z軸的3個(gè)轉(zhuǎn)動慣量;g為飛行器所受重力加速度;m為飛行器整機(jī)質(zhì)量;u1、u2、u3、u4為系統(tǒng)控制量,它與4個(gè)旋翼的轉(zhuǎn)速關(guān)系如下:
(2)
式中:kt表示飛行器旋翼的升力系數(shù);kd表示飛行阻力系數(shù);Ω1、Ω2、Ω3、Ω4分別表示飛行器無刷直流電動機(jī)[11]調(diào)控的4個(gè)旋翼轉(zhuǎn)速。
PSO是計(jì)算智能領(lǐng)域除了遺傳算法[12]、蟻群算法[13]、魚群算法[14]之外的一種群體智能優(yōu)化算法[15]。PSO中的每個(gè)粒子都有n個(gè)維度,代表所需解決問題的一組可能解,通過與其他粒子相互作用以及適應(yīng)度函數(shù)不斷更新自身,以及整個(gè)群體的狀態(tài)信息從而找到問題的最優(yōu)解。
假設(shè)在n維空間中,粒子群由m個(gè)粒子組成,Xi=(xi1,xi2,…,xin)表示第i個(gè)粒子在n維空間的位置,也即一組潛在解;vi=(vi1,vi2,…,vin)表示第i個(gè)粒子的速度;Pi=(pi1,pi2,…,pin)表示第i個(gè)粒子在迭代過程中保留的歷史最優(yōu)值;Pg=(pg1,pg2,…,pgn)表示整個(gè)粒子群的歷史最優(yōu)值。
粒子群中的每個(gè)粒子在迭代過程中通過自身歷史最優(yōu)值和群體最優(yōu)值按下式更新自身在空間中的速度和位置:
(3)
(4)
式中:ω為慣性權(quán)重;d=1,2,…,n;i=1,2,…,m;c1、c2為加速度因子,其值大于零;r1、r2是分布于[0,1]區(qū)間上的隨機(jī)數(shù);k為當(dāng)前迭代的次數(shù)。為避免粒子群在解空間內(nèi)盲目搜索,通常會設(shè)置粒子位置和速度的上限和下限。
ω體現(xiàn)了粒子繼承先前速度的能力,Shi提出了線性遞減慣性權(quán)重,
ω(k)=ωmax-k(ωmax-ωmin)/Tmax
(5)
式中:Tmax為最大迭代次數(shù);ωmax、ωmin分別為最大和最小的慣性權(quán)重值。較大的慣性權(quán)重值有利于全局搜索,而較小的慣性權(quán)值則更有利于局部搜索。
通過分析式(5)可知,迭代過程中ω呈線性遞減,初期慣性權(quán)重值大,全局搜索能力強(qiáng),符合早期需要粒子探索能力的要求,而后期慣性權(quán)重值小,有利于粒子收斂于全局最優(yōu)值。但這樣的方法存在一定的問題。① 若粒子群前期就搜尋到較優(yōu)點(diǎn),則希望粒子快速收斂于全局最優(yōu)點(diǎn),但初期慣性權(quán)重值ω較大,減慢了粒子的收斂速度;② 迭代后期,因?yàn)棣刂饾u減小,使得全局搜索的能力降低,粒子群缺乏多樣性,易陷入局部最優(yōu)。
通過分析式(3)可知,越靠近最優(yōu)解的粒子,其式(3)右邊后兩項(xiàng)越趨近于零,其速度越取決于ω。綜上,提出改進(jìn)慣性權(quán)重策略的方法:讓靠近最優(yōu)點(diǎn)附近的部分粒子在最優(yōu)點(diǎn)周圍搜索,而不承擔(dān)大范圍的搜索,賦予其較小的ω,而讓遠(yuǎn)離最優(yōu)值的粒子承擔(dān)大范圍的搜索,賦予其較大的ω,因此ω的值不僅會隨著迭代次數(shù)變化,而且會因?yàn)椴煌W优c最優(yōu)值之間距離遠(yuǎn)近的改變而發(fā)生變化。故設(shè)計(jì)思路是:一方面粒子ω會隨著迭代次數(shù)增加而減少;另一方面ω會因?yàn)榱W优c全局最優(yōu)點(diǎn)距離遠(yuǎn)近而動態(tài)變化[16]。
設(shè)Lki表示第k次迭代后粒子i與當(dāng)前最優(yōu)粒子的距離(全局最優(yōu)粒子除外);Lkimax表示粒子i經(jīng)過k次迭代后的最大Lki;Lkimin表示粒子i經(jīng)過k次迭代后的最小Lki,則有:
ω隨距離大小的關(guān)系
(6)
ω隨迭代次數(shù)而遞減的關(guān)系
(7)
式中,Tmax為最大迭代次數(shù)。
結(jié)合上述兩種因素,由式(6)和(7)可得:
(8)
式中,a、b為常數(shù),a可取0.45。
由于慣性權(quán)重的引入,在迭代次數(shù)逐漸增長的過程中,最優(yōu)粒子的控制度會不斷得到強(qiáng)化,使得整個(gè)粒子群多樣性逐漸下降,容易陷入局部最優(yōu)。故引入雜交變異,在連續(xù)h代迭代過程中,若全局最優(yōu)點(diǎn)一直未變化,表明粒子群很可能陷入了局部最優(yōu)。為使種群多樣性提高,此時(shí)可從m個(gè)粒子中選取較優(yōu)的q個(gè)粒子(包括最優(yōu)粒子)的歷史最優(yōu)位置,與新產(chǎn)生的粒子隨機(jī)雜交,從而改變最優(yōu)粒子的前進(jìn)方向和速度,以進(jìn)入其他區(qū)域搜索,尋找新的個(gè)體極值,
Pnew(xi)=cPselect(xi)+(1-c)Pcurrent(xi)
(9)
式中:Pnew為新產(chǎn)生的粒子;Pselect為選取的較優(yōu)粒子;Pcurrent為當(dāng)代新產(chǎn)生的粒子;c為[0,1]之間的隨機(jī)變量。
(1)初始化粒子群各個(gè)粒子的位置和速度,根據(jù)適應(yīng)度函數(shù)值選擇粒子個(gè)體歷史最優(yōu)和全局最優(yōu);
(2)計(jì)算各個(gè)粒子與當(dāng)前全局最優(yōu)位置的距離,得到Lkimax,Lkimin,由式(8)更新下次迭代各粒子的ω;
(3)根據(jù)式(3)、(4)更新每個(gè)粒子的位置和速度并計(jì)算適應(yīng)度值;
(4)若該粒子當(dāng)前適應(yīng)度值比其歷史最優(yōu)值好,則當(dāng)前值取代歷史最優(yōu)值;
(5)若該粒子歷史最優(yōu)值比全局最優(yōu)值好,則替代全局最優(yōu)值;
(6)判斷是否滿足雜交條件即連續(xù)h代全局最優(yōu)值保持不變,是則執(zhí)行第(7)步,否則執(zhí)行第(8)步;
(7)從m個(gè)粒子中選取q個(gè)較優(yōu)粒子根據(jù)式(9)雜交產(chǎn)生新粒子,替換舊粒子,再執(zhí)行第(2)步;
(8)判斷是否滿足終止條件,是則輸出全局最優(yōu)點(diǎn),否則執(zhí)行第(2)步。
(1)根據(jù)四旋翼飛行器的數(shù)學(xué)模型,在MATLAB/Simulink中搭建四旋翼飛行器仿真模型,如圖1所示(以四旋翼飛行器高度和3個(gè)姿態(tài)角控制為例)。
圖1 四旋翼飛行器仿真模型
(2)在MATLAB中編寫動態(tài)粒子群算法程序代碼,通過Rastrigrin測試函數(shù)重復(fù)運(yùn)算,結(jié)果如圖2所示,證明了其算法的準(zhǔn)確性。
圖2 Rastrigrin測試函數(shù)
將其與四旋翼飛行器仿真模型中的PID控制器相結(jié)合,如圖3所示。圖中誤差性能指標(biāo)定義為:
(10)
(3)設(shè)置四旋翼飛行器參數(shù)和動態(tài)粒子群算法初始化參數(shù)。四旋翼飛行器參數(shù)如下:m=0.75 kg,l=0.25 m,Ix=19.68 g·m2,Iy=19.68 g·m2,Iz=3.93 g·m2。
圖3 動態(tài)粒子群算法PID控制器
動態(tài)粒子群算法初始化參數(shù)如下:維度=3,ωmax=0.9,ωmin=0.4,c1、c2=2,粒子群規(guī)模=50,迭代次數(shù)=50,粒子速度范圍=[-1,1],Kp、Ki、Kd=[0,50],最小適宜度值=0.01。
(4)仿真結(jié)果分析。以高度為例,設(shè)置了懸停高度為4 m。高度變化曲線如圖4所示。
圖4 高度變化曲線
迭代次數(shù)誤差適應(yīng)度值變化曲線如圖5所示。
圖5 誤差適應(yīng)度值變化曲線
采用動態(tài)PSO,Kp、Ki、Kd參數(shù)優(yōu)化隨迭代次數(shù)變化如圖6所示,標(biāo)準(zhǔn)PSOKp、Ki、Kd參數(shù)變化如圖7所示。
圖6 動態(tài)粒子群Kp、Ki、Kd優(yōu)化曲線
圖7 標(biāo)準(zhǔn)粒子群Kp、Ki、Kd優(yōu)化曲線
由圖4~7仿真結(jié)果證明,動態(tài)粒子群算法相比于標(biāo)準(zhǔn)粒子群算法,其對四旋翼飛行器高度控制不僅超調(diào)量更小,控制更精確,而且收斂速度更快,對于實(shí)際復(fù)雜飛行控制系統(tǒng)它的控制將更迅速,更有效率。
本文在對標(biāo)準(zhǔn)PSO研究的基礎(chǔ)上,對PSO進(jìn)行改進(jìn)優(yōu)化,用以對四旋翼飛行器的飛行姿態(tài)和位置進(jìn)行控制,通過Simulink搭建飛行器仿真模型,證明了基于動態(tài)PSO的PID控制技術(shù)能更好的避免陷入局部最優(yōu),實(shí)現(xiàn)更精準(zhǔn)控制,同時(shí)其收斂速度更快,提高了飛行控制系統(tǒng)設(shè)計(jì)的效率,對以后用于更復(fù)雜的飛行器模型或需要對更多參數(shù)整定的控制方法具有重要的參考價(jià)值。