王一奇,余紅英
(中北大學(xué),太原 030051)
四旋翼是一種以遠(yuǎn)程控制或者機(jī)內(nèi)程序控制的飛行器[1],多年來(lái)一直是航空領(lǐng)域的研究熱點(diǎn)。在過(guò)去15年里,無(wú)人航行器開始用在空中、海上、太空、地面各種軍事以及民用任務(wù)中,受到人們的高度重視。近年來(lái)我國(guó)的四旋翼發(fā)展步伐也逐漸加快[2],有很多企業(yè)完成了四旋翼飛行器的商業(yè)化,如大疆、小米等[3]。
四旋翼的小巧靈活使它擁有很好的反監(jiān)視、反偵查能力。與常規(guī)的飛行器相比,四旋翼飛行器更加經(jīng)濟(jì),并且具有較高的能源利用率。目前,四旋翼在飛行時(shí)間上仍有不足,但隨著新型材料工藝和微電子傳感器工藝的不斷進(jìn)步,這一難關(guān)終將被攻克。四旋翼在眾多領(lǐng)域中都占據(jù)一席之地,但仍然有許多技術(shù)不成熟,目前主要研究的方向集中在以下幾個(gè)方面:四旋翼飛行器的PID控制;四旋翼飛行器相關(guān)傳感器以及新材料工藝的開發(fā)[4];動(dòng)力與能源。
四旋翼本質(zhì)上是一個(gè)欠驅(qū)動(dòng)系統(tǒng),它擁有6個(gè)自由度,因此四旋翼飛行器的控制一直是一個(gè)難點(diǎn)[5]?,F(xiàn)在常見(jiàn)的控制算法有非線性控制、模糊控制以及PID控制[6],其中非線性控制能夠較好地進(jìn)行四旋翼飛行器姿態(tài)控制,但因?yàn)榉蔷€性控制器對(duì)模型的準(zhǔn)確度要求比較高,而四旋翼飛行器的一些參數(shù)無(wú)法精確地測(cè)量得到,所以對(duì)于模型準(zhǔn)確度要求不高、擁有較強(qiáng)適應(yīng)能力的PID控制器在四旋翼控制上得到了廣泛的應(yīng)用。
在D維空間中搜索目標(biāo),由n個(gè)粒子組成的一組粒子,每個(gè)粒子是D維矢量,它的空間位置表達(dá)式為xi=(xi1,xi2,…,xiD),i=1,2,…,n。每個(gè)粒子在指定空間中的位置是受控對(duì)象優(yōu)化問(wèn)題的解決方案[7]。第i個(gè)粒子的飛行速度是D維空間矢量,記為vi=(vi1,vi2,…,viD);具有最佳適應(yīng)值的第i個(gè)粒子的位置被記錄為個(gè)體的歷史最佳位置,記為pi=(pi1,pi2,…,piD);整個(gè)粒子群的最優(yōu)位置被記錄為全局歷史最佳位置,記為pg=(pg1,pg2,…,pgD),粒子群的進(jìn)化方程可寫成:
vij(t+1)=vij(t)+c1r1(t)[pij(t)-xij(t)]+
c2r2(t)[pgj(t)-xij(t)]
(1)
xij(t+1)=xij(t)+vij(t+1)
(2)
式中:下標(biāo)j定義為粒子的第j維;下標(biāo)i定義為粒子i;t定義為第t代;c1,c2為加速常量,通常在(0,2)間取值;r1和r2是算法生成的0~1之間的隨機(jī)數(shù)。從式(1)和式(2)可以看出,c1為調(diào)節(jié)飛向其最佳位置的粒子的步長(zhǎng)[8],c2為調(diào)節(jié)粒子飛入全局最佳位置的步長(zhǎng)[9]。
基本粒子群算法的流程如下:
(1) 初始化粒子組的值,并給每個(gè)粒子一個(gè)隨機(jī)的初始值[10]。
(2) 根據(jù)目標(biāo)返回性能指標(biāo),計(jì)算每個(gè)粒子的當(dāng)前適應(yīng)度值。
(3) 對(duì)每個(gè)粒子,將其適應(yīng)值與歷史最佳適應(yīng)值進(jìn)行比較。
(4) 對(duì)于每個(gè)粒子,對(duì)比它的適應(yīng)值和整體粒子群到達(dá)的最優(yōu)位置的適應(yīng)值,如果其得到優(yōu)化,那么把它的適應(yīng)度值作為群體最優(yōu)[11]。
(5) 根據(jù)式(1)和式(2)計(jì)算粒子的速度和位置。
(6) 如果達(dá)到足夠好的解決方案或操作達(dá)到最大迭代次數(shù),則結(jié)束,否則轉(zhuǎn)到步驟(2)。
在參數(shù)優(yōu)化問(wèn)題中有一個(gè)性能指標(biāo)函數(shù)。不同的目標(biāo)函數(shù)可以清晰地反映系統(tǒng)的質(zhì)量,具有計(jì)算簡(jiǎn)單的優(yōu)點(diǎn)。當(dāng)然,選擇不同的目標(biāo)函數(shù)會(huì)導(dǎo)致同一系統(tǒng)的不同優(yōu)化結(jié)果[12]。
目標(biāo)函數(shù)的選擇分為兩種:一種是基于系統(tǒng)輸出響應(yīng)特性的特征目標(biāo)函數(shù);另一種是誤差類型的目標(biāo)函數(shù),它將預(yù)期響應(yīng)與實(shí)際響應(yīng)之間的差異函數(shù)作為目標(biāo)函數(shù)。誤差類型目標(biāo)函數(shù)本質(zhì)上是對(duì)特征目標(biāo)函數(shù)的數(shù)學(xué)分析,因此誤差類型目標(biāo)函數(shù)可以表現(xiàn)出系統(tǒng)的性能。
誤差絕對(duì)值積分型目標(biāo)函數(shù)的表達(dá)式:
(3)
這種優(yōu)化方法有許多優(yōu)點(diǎn):加入絕對(duì)值的方法解決了正負(fù)問(wèn)題,e(t)在過(guò)程中的缺點(diǎn)得到了糾正;加了時(shí)間權(quán)重t之后,還可以基本消除過(guò)程后期發(fā)生的錯(cuò)誤。因此,本文選擇誤差絕對(duì)值積分型目標(biāo)函數(shù)進(jìn)行參數(shù)優(yōu)化。
由四旋翼數(shù)學(xué)模型可知[13],輸出響應(yīng)都是二階導(dǎo)數(shù),因此在被控對(duì)象后加二次積分,可以得到X軸位移,Y軸位移,Z軸高度,滾轉(zhuǎn)角φ,俯仰角θ,偏航角ψ的輸出響應(yīng)。通過(guò)四旋翼的運(yùn)動(dòng)方程可知,對(duì)四旋翼建模所需的參數(shù)包括:質(zhì)量、機(jī)臂長(zhǎng)度(軸距)以及四旋翼的三軸轉(zhuǎn)動(dòng)慣量。同時(shí)為了更完整地建立四旋翼飛行器的模型,將陀螺效應(yīng)也考慮進(jìn)去。由于實(shí)驗(yàn)條件的限制,不能對(duì)所有的飛行器參數(shù)進(jìn)行測(cè)量,但參考并選取了不失一般性的參數(shù),仍然可以驗(yàn)證控制器的對(duì)比分析,并得出正確的結(jié)果[14]。故采用如表1所示參數(shù),其中重力加速度取g=9.8 m/s2。
表1 四旋翼飛行器參數(shù)
將建好的四旋翼數(shù)學(xué)模型寫入到model faction模塊中,使用臨界比例法來(lái)確定初始的PID參數(shù)[15],得到各通道的PID參數(shù)如表2所示。
表2 仿真參數(shù)取值表
在Simulink仿真環(huán)境下運(yùn)行,實(shí)現(xiàn)四旋翼PID控制的粒子群優(yōu)化的流程圖如圖1所示。
圖1 與Simulink結(jié)合的粒子群算法
依照粒子群優(yōu)化算法流程編寫程序,由于存在4個(gè)輸入量,即使用了4個(gè)PID控制模塊,故需要分別對(duì)4個(gè)PID模塊的參數(shù)進(jìn)行粒子群算法優(yōu)化。在原有四旋翼飛行器模型基礎(chǔ)上分別衍生出4個(gè)模型,它與原有模型相同,只是每個(gè)模型分別返回高度、滾轉(zhuǎn)角、俯仰角、偏航角的性能指標(biāo)。
在Simulink環(huán)境下仿真,將粒子群算法生成的參數(shù)Kp,Ki,Kd分別賦值給4個(gè)PID模塊,使用sim命令直接運(yùn)行對(duì)應(yīng)模塊,得到性能指標(biāo)。
編寫算法程序,在MATLAB軟件中運(yùn)行算法代碼,以俯仰角控制為例,運(yùn)行優(yōu)化俯仰角響應(yīng)的程序,得到仿真結(jié)果如圖2和圖3所示。
依次得到優(yōu)化后的各PID參數(shù)如表3所示。
設(shè)置優(yōu)化后的參數(shù),再次運(yùn)行模型,對(duì)比2次仿真結(jié)果,比較優(yōu)化前后的圖形如圖4所示。
圖2 俯仰角響應(yīng)最優(yōu)個(gè)體適應(yīng)值
圖3 俯仰角響應(yīng)PID參數(shù)
KpKiKdZ605434φ305.630θ301.530ψ30430
(a) Z軸高度
(b) 滾轉(zhuǎn)角
(c) 俯仰角
(d) 偏航角
通過(guò)分析仿真結(jié)果發(fā)現(xiàn),Z軸高度響應(yīng)的系統(tǒng)超調(diào)量由優(yōu)化前的31%降低到11%,穩(wěn)態(tài)誤差由5.2%升到5.6%,幾乎為零,超調(diào)時(shí)間1.54 s,幾乎無(wú)變化;滾轉(zhuǎn)角超調(diào)量由優(yōu)化前的15.1%升高到16.4%,穩(wěn)態(tài)誤差由2.6%降到1.7%,幾乎為零,超調(diào)時(shí)間由0.8 s降到0.1 s;俯仰角超調(diào)量由優(yōu)化前的14.2%升高到15.8%,穩(wěn)態(tài)誤差由2.8%降到2.3%,幾乎為零,超調(diào)時(shí)間由0.9 s降低到0.1 s;偏航角超調(diào)量由優(yōu)化前的14%升高到15%,穩(wěn)態(tài)誤差由2.9%降低到1.7%,幾乎為零,超調(diào)時(shí)間由1.0 s降低到0.2 s。結(jié)果表明,粒子群算法對(duì)PID控制系統(tǒng)有一定的優(yōu)化作用。
本文提出了采用粒子群優(yōu)化的四旋翼PID控制,通過(guò)粒子群優(yōu)化算法對(duì)PID參數(shù)進(jìn)行優(yōu)化,優(yōu)化后響應(yīng)時(shí)間短、超調(diào)量小,取得了較好的效果。但本文還存在一些不足,如不能直接使用粒子群對(duì)Simulink模型進(jìn)行優(yōu)化。主要原因?yàn)樵谀P椭杏蠸-Function模塊,運(yùn)行時(shí)需要調(diào)用m函數(shù),使得系統(tǒng)的運(yùn)行時(shí)間較慢,而且在進(jìn)行粒子群優(yōu)化時(shí)需要多次迭代,使粒子群優(yōu)化需要的時(shí)間更長(zhǎng)。