張智軒,李 濤,伍鵬飛,趙宏生
(南京信息工程大學(xué)自動(dòng)化學(xué)院,南京 210000)
四旋翼無(wú)人機(jī)由于成本低、機(jī)動(dòng)能力強(qiáng),近年來(lái)被廣泛應(yīng)用于多種場(chǎng)景,例如空中測(cè)繪、空中航拍、農(nóng)業(yè)植保和地面物體跟蹤等。四旋翼飛行控制系統(tǒng)作為四旋翼飛行器的控制中心,如何對(duì)四旋翼飛行器進(jìn)行有效控制是當(dāng)前國(guó)際多旋翼飛行控制領(lǐng)域研究的熱點(diǎn)和難點(diǎn)。姿態(tài)控制是四旋翼飛行控制系統(tǒng)的重要組成部分,是平穩(wěn)飛行的前提。PID控制操作簡(jiǎn)單,可以有效地控制四旋翼無(wú)人機(jī),但其性能對(duì)參數(shù)的依賴較大[1-2],所以參數(shù)的選擇至關(guān)重要。針對(duì)PID參數(shù)整定問(wèn)題的智能優(yōu)化算法有很多,如雞群算法[3]、遺傳算法[4]與粒子群算法[5-6](Particle Swarm Optimization,PSO)等。粒子群算法是一種新興的基于群體智能的啟發(fā)式全局搜索算法、操作簡(jiǎn)單、易于實(shí)現(xiàn)。而PID需要調(diào)節(jié)的參數(shù)只有3個(gè),維數(shù)較少,因此,本文采用PSO算法求得最佳參數(shù)值,并將得到的參數(shù)值應(yīng)用于PID控制器對(duì)四旋翼飛行器的姿態(tài)(翻轉(zhuǎn))和高度控制。
近年來(lái),國(guó)內(nèi)外很多學(xué)者為了提高傳統(tǒng)PID參數(shù)整定技術(shù)的性能,各自利用粒子群算法對(duì)PID的參數(shù)進(jìn)行了改進(jìn)。胡文華等[7]為了解決控制參數(shù)優(yōu)化問(wèn)題,提出了一種變權(quán)重與雜交的粒子群優(yōu)化算法:首先,根據(jù)迭代過(guò)程中粒子群中粒子與全局最優(yōu)粒子間的距離大小動(dòng)態(tài)改變慣性權(quán)重;其次,引入雜交進(jìn)化增加粒子多樣性,避免陷入局部最優(yōu);結(jié)果表明,該優(yōu)化算法對(duì)參數(shù)的整定是有效的,能使四旋翼飛行器的控制品質(zhì)得到保證和優(yōu)化,提升設(shè)計(jì)效率。RAZA等[8]將PSO算法用于上肢康復(fù)機(jī)器人的PID控制驗(yàn)證了PSO算法的有效性和穩(wěn)定性;胡丹丹等[9]將控制器的參數(shù)作為粒子群中的粒子進(jìn)行迭代尋優(yōu),同時(shí)在傳統(tǒng)的PSO算法基礎(chǔ)上參考遺傳算法,對(duì)適應(yīng)度函數(shù)值較差的粒子進(jìn)行交叉保優(yōu),仿真結(jié)果表明,優(yōu)化后的控制器超調(diào)更小,調(diào)節(jié)時(shí)間更短;RONI等[10]采用遺傳算法(GA)和PSO算法對(duì)三相MG系統(tǒng)的PID控制器進(jìn)行優(yōu)化;LI等[11]為了提高船舶跟蹤自動(dòng)駕駛儀的性能,提出了一種基于PSO優(yōu)化的滑模變結(jié)構(gòu)PID控制策略。
本文以X型變距、變轉(zhuǎn)速四旋翼飛行器為研究對(duì)象,考慮到混沌序列擺脫停滯的出色表現(xiàn),首先構(gòu)造Logistic混沌序列代替粒子位置隨機(jī)初始化,其次對(duì)粒子群算法的權(quán)重參數(shù)進(jìn)行改進(jìn),增加了粒子多樣性。比較其他混沌PSO算法,本文改進(jìn)混沌PSO算法避免了算法陷入局部最優(yōu),改進(jìn)了搜索速度和精度,并且構(gòu)造簡(jiǎn)單。在四旋翼PID控制器參數(shù)調(diào)節(jié)的應(yīng)用上,避免了人工調(diào)節(jié)參數(shù)的隨機(jī)性,提高了控制器的可靠性。
為實(shí)現(xiàn)對(duì)小型四旋翼飛行器的有效控制,必須準(zhǔn)確建立其在各種飛行狀態(tài)下的數(shù)學(xué)模型。飛行器在飛行過(guò)程中不僅同時(shí)受到多種物理效應(yīng)[12]的作用(空氣動(dòng)力、重力、陀螺效應(yīng)和旋翼慣量矩等),還很容易受到氣流等外部環(huán)境的干擾。四旋翼飛行器通常有兩種模式,即“十”字型與X型[13]。本文選用X型四旋翼建立動(dòng)力學(xué)模型,建立如圖1所示的慣性坐標(biāo)系E(oxyz)和四旋翼機(jī)體軸坐標(biāo)系B(oxByBzB)。慣性坐標(biāo)系取地球中心為坐標(biāo)原點(diǎn)o,oz軸為沿地球自轉(zhuǎn)軸方向,ox軸為赤道平面和本初子午面的交線,oy軸按右手規(guī)則確定。四旋翼機(jī)體坐標(biāo)系以飛機(jī)重心為原點(diǎn)o,oxB軸為沿飛機(jī)橫軸向右,oyB軸為沿飛機(jī)縱軸向前,ozB軸為沿飛機(jī)立軸(航向軸)向上。
圖1 慣性坐標(biāo)系與機(jī)體坐標(biāo)系Fig.1 Inertial coordinate system and body coordinate system
四旋翼飛行器采用4個(gè)螺旋槳作為驅(qū)動(dòng),螺旋槳對(duì)稱地分布在機(jī)身周圍,其推力可以通過(guò)改變電機(jī)轉(zhuǎn)速來(lái)實(shí)現(xiàn)。四旋翼飛行器可以沿著機(jī)體的3個(gè)軸進(jìn)行旋轉(zhuǎn)或平移運(yùn)動(dòng),因此在每個(gè)軸向上有兩個(gè)自由度。四旋翼飛行器有6種飛行狀態(tài),即垂直運(yùn)動(dòng)、俯仰運(yùn)動(dòng)、滾轉(zhuǎn)運(yùn)動(dòng)、偏航運(yùn)動(dòng)和前、后運(yùn)動(dòng)。
四旋翼飛行器建立合理準(zhǔn)確的動(dòng)力學(xué)數(shù)學(xué)模型,是飛行姿態(tài)精確控制的首要前提。因此,通常對(duì)飛行器進(jìn)行一些合理假設(shè):1)假設(shè)四旋翼飛行器為剛體,結(jié)構(gòu)完全對(duì)稱,將地面坐標(biāo)系視為慣性坐標(biāo)系;2)假設(shè)沒(méi)有其他阻力影響和重力變化,阻力、重力始終保持不變;3)假設(shè)陀螺效應(yīng)和空氣動(dòng)力扭矩效應(yīng)均被抵消?;谝陨霞僭O(shè),四旋翼飛行器模型可簡(jiǎn)化為
(1)
式中:φ,θ,ψ分別為滾轉(zhuǎn)角、俯仰角和偏航角,是機(jī)體相對(duì)于慣性坐標(biāo)系產(chǎn)生的角度;m為四旋翼飛行器的質(zhì)量;Ix,Iy,Iz為飛行器轉(zhuǎn)動(dòng)慣量;g為所在地重力加速度;l為各個(gè)旋翼到機(jī)體坐標(biāo)系原點(diǎn)的長(zhǎng)度;U1~U4為各個(gè)通道的控制量,其表達(dá)式為
(2)
式中:F1,F(xiàn)2,F(xiàn)3,F(xiàn)4為對(duì)應(yīng)電機(jī)的旋翼升力;Ω1,Ω2,Ω3,Ω4為對(duì)應(yīng)電機(jī)的轉(zhuǎn)速;k1,k2分別為四旋翼的升力系數(shù)和阻力系數(shù)。
粒子群算法是一種基于進(jìn)化計(jì)算技術(shù)的優(yōu)化算法,是由魚(yú)群學(xué)和鳥(niǎo)群學(xué)的研究發(fā)展而來(lái)的,由于其參數(shù)簡(jiǎn)單、收斂速度較快,而得到廣泛應(yīng)用。
PSO算法中,每一個(gè)粒子都被視為D維空間中的一個(gè)點(diǎn)[14]。粒子i的位置可以表示為Xi={xi1,xi2,…,xiD};粒子i的速度可以表示為Vi={vi1,vi2,…,viD};粒子i的個(gè)體最優(yōu)解表示為Pi={pi1,pi2,…,piD};粒子i的全局歷史最優(yōu)解為Pg={pg1,pg2,…,pgD}。可更新粒子為
(3)
式中:i為粒子個(gè)數(shù);viD為粒子i在D維空間的速度;xiD為粒子i在D維空間的位置;k為迭代次數(shù);D為粒子的維度;c1,c2為粒子的學(xué)習(xí)因子;ω為粒子慣性權(quán)重;r1,r2為[0,1]之間的隨機(jī)數(shù)。
本文算法的適應(yīng)度函數(shù)選取ITAE誤差準(zhǔn)則,依照此準(zhǔn)則設(shè)計(jì)的控制系統(tǒng)瞬態(tài)響應(yīng)的振蕩性小,且對(duì)參數(shù)具有良好的選擇性。ITAE能夠較好地抑制長(zhǎng)時(shí)間存在的誤差,其值越低,性能越好,其表達(dá)式為
(4)
式中:f為算法適應(yīng)度函數(shù),即ITAE誤差方程;favg為算法適應(yīng)度平均值;fmin為算法適應(yīng)度最小值。
KENNEDY和EBERHART于1995年首次提出原始版本粒子群算法之后,1998年ANGELINE又提出了一種改進(jìn)的粒子群算法,增加了慣性權(quán)重ω這個(gè)新參數(shù)。
慣性權(quán)重對(duì)粒子群算法的性能至關(guān)重要,它負(fù)責(zé)平衡粒子群的全局搜索能力和局部搜索能力。大慣性權(quán)重有助于探索,但會(huì)使粒子長(zhǎng)時(shí)間無(wú)法收斂到一個(gè)點(diǎn);反之,較小的慣性權(quán)重會(huì)使粒子快速收斂,但有時(shí)會(huì)導(dǎo)致局部最優(yōu)。在搜索過(guò)程中,每個(gè)粒子都會(huì)動(dòng)態(tài)地改變其位置,因此,每個(gè)粒子都處于不同的復(fù)雜環(huán)境中,面臨著不同的情況。因此,每個(gè)維度上的每個(gè)粒子在全局搜索能力和局部搜索能力之間存在著不同的權(quán)衡。對(duì)于目標(biāo)函數(shù)值優(yōu)于平均目標(biāo)值的微粒,其對(duì)應(yīng)的慣性權(quán)重因子較小,從而保護(hù)了該微粒,反之,對(duì)于目標(biāo)函數(shù)值差于平均目標(biāo)值的微粒,其對(duì)應(yīng)的慣性權(quán)重因子較大,使得該微粒向較好的搜索區(qū)域靠攏。動(dòng)態(tài)調(diào)整慣性權(quán)重的精細(xì)策略可以提高粒子群算法的性能。本文采用自適應(yīng)動(dòng)態(tài)慣性權(quán)重系數(shù)公式,其表達(dá)式為
(5)
式中,ωmax,ωmin分別為權(quán)重最大值和最小值,ωmax=0.9,ωmin=0.4。
混沌映射可以描述為一個(gè)具有確定性動(dòng)力學(xué)行為的有界非線性系統(tǒng),具有遍歷性和隨機(jī)性,它對(duì)于初始條件和參數(shù)非常敏感。也就是說(shuō),混沌的因果與初值的微小差異不成正比,這就產(chǎn)生了所謂的“蝴蝶效應(yīng)”,即初值的微小變化會(huì)導(dǎo)致多次迭代后解的巨大差異。此外,混沌變量的軌跡可以遍歷整個(gè)搜索空間。本文利用Logistic混沌映射方法生成均勻分布的初始粒子,以提高初始粒子群的質(zhì)量,并在粒子群趨于停滯時(shí)重新初始化一定數(shù)量的粒子。
作為基礎(chǔ)的混沌方法之一,Logistic映射在過(guò)去幾十年中受到了研究者們的廣泛關(guān)注。Logistic映射的分岔圖見(jiàn)圖2,其表達(dá)式見(jiàn)式(6)。
圖2 Logistic映射分岔圖Fig.2 Bifurcation diagram of Logistic equation
Li+1=μLi(1-Li)i=0,1,2,…
(6)
式中:Li表示第i個(gè)混沌變量,Li∈(0,1);初始值L0∈(0,1);μ為常數(shù),也稱為分叉系數(shù),取值為4。
首先生成Li,根據(jù)式(6)更新Li,然后根據(jù)Xi=xi1+Li(xiD-xi1),將混沌序列映射到待優(yōu)化的解空間。
改進(jìn)粒子群算法的流程如下所述。
1) 初始化粒子群,隨機(jī)產(chǎn)生所有粒子的位置和速度,并確定粒子的慣性權(quán)重。
2) 按照粒子群速度與位置公式更新粒子的速度和位置。
3) 將每個(gè)粒子代入仿真模型并計(jì)算對(duì)應(yīng)的ITAE值。
4)計(jì)算所有粒子ITAE值的算術(shù)平均值,取偶數(shù)個(gè)ITAE值小于平均值的粒子直接進(jìn)入下一次迭代。剩余粒子進(jìn)行交叉選擇,生成相同數(shù)量的子代,并與父代一起進(jìn)行排序,取ITAE值更小的一半進(jìn)入下一次迭代。
5) 將每一個(gè)粒子的適應(yīng)值與該粒子所經(jīng)歷過(guò)的最優(yōu)位置的適應(yīng)值進(jìn)行比較,如果更好,則將該粒子作為新的;對(duì)每個(gè)粒子,將其適應(yīng)值與整個(gè)粒子群所經(jīng)歷過(guò)的最優(yōu)位置的適應(yīng)值進(jìn)行比較,如果更好,則將該粒子作為新的;
6) 如果沒(méi)有滿足最終條件(適應(yīng)值小于預(yù)設(shè)閾值或者超過(guò)最大迭代次數(shù)),則返回步驟2);否則,退出算法,輸出尋優(yōu)過(guò)程曲線和最優(yōu)解。
利用改進(jìn)混沌粒子群算法對(duì)PID的3個(gè)參數(shù)進(jìn)行整定,再用整定之后的PID控制器來(lái)控制四旋翼飛行器,得到實(shí)際輸出值與輸入階躍信號(hào)值的差值,通過(guò)計(jì)算ITAE(即函數(shù)適應(yīng)度值)來(lái)判斷是否滿足算法的停止條件,若滿足則計(jì)算過(guò)程結(jié)束,若不滿足則循環(huán)操作,直到得到滿足設(shè)定條件的數(shù)值或達(dá)到最大迭代次數(shù)。改進(jìn)后的PID控制器見(jiàn)圖3。
圖3 改進(jìn)混沌粒子群PID控制器Fig.3 Improved chaotic particle swarm PID controller
本文仿真實(shí)驗(yàn)選取四旋翼飛行器模型,仿真通道選取滾轉(zhuǎn)通道和飛行高度通道。四旋翼飛行器參數(shù)和PSO算法初始化參數(shù)數(shù)據(jù)分別見(jiàn)表1和表2。
表1 四旋翼飛行器參數(shù)Table 1 Parameters of the quad-rotor flight controller
表2 PSO算法初始化數(shù)據(jù)Table 2 Initialized data of the PSO algorithm
本文采用PID控制器對(duì)四旋翼飛行器的姿態(tài)(翻轉(zhuǎn))和高度進(jìn)行控制,在Matlab 2016b中搭建PID四旋翼數(shù)學(xué)模型。
仿真實(shí)驗(yàn)以滾轉(zhuǎn)通道、高度通道為例,周期為0.01 s,滾轉(zhuǎn)角度期望值為0.8 rad(約46°),飛行高度期望值為2 m。仿真結(jié)果分別如圖4~7、表3~4所示。
圖4 四旋翼滾轉(zhuǎn)角性能對(duì)比Fig.4 Performance comparison of quad-rotor roll angle
表3 滾轉(zhuǎn)通道性能指標(biāo)對(duì)比Table 3 Performance comparison of roll channel
從圖4、圖5和表3可以看出,在滾轉(zhuǎn)通道的仿真實(shí)驗(yàn)中,本文算法控制器超調(diào)量明顯小于標(biāo)準(zhǔn)粒子群算法的控制器,其次,調(diào)節(jié)時(shí)間更短,系統(tǒng)仿真驗(yàn)證了本文控制器的可靠性。
圖5 改進(jìn)后滾轉(zhuǎn)通道PID參數(shù)趨勢(shì)Fig.5 PID parameter trend of roll channel after improvement
從圖5可以看出滾轉(zhuǎn)通道PID參數(shù)Kp在第12次迭代后收斂,而Ki和Kd在第2次迭代后就已經(jīng)收斂;從圖7可以看出高度通道PID參數(shù)Kp和Kd在第20次迭代后收斂,而Ki在第4次迭代后就已經(jīng)收斂,由此可以看出參數(shù)的調(diào)節(jié)時(shí)間大大縮短。
通過(guò)分析圖6、圖7和表4的仿真實(shí)驗(yàn)數(shù)據(jù)發(fā)現(xiàn),本文算法下四旋翼無(wú)人機(jī)飛行高度波動(dòng)和超調(diào)明顯小于PSO算法,且調(diào)節(jié)時(shí)間更短,能夠快速升至指定高度,具有良好的性能。
表4 飛行高度通道性能指標(biāo)對(duì)比Table 4 Performance comparison of flight altitude channel
圖6 四旋翼飛行高度性能對(duì)比Fig.6 Performance comparison of quad-rotor flight height
圖7 改進(jìn)后飛行高度通道PID參數(shù)趨勢(shì)Fig.7 PID parameters trend of flight altitude channel
針對(duì)四旋翼PID參數(shù)整定問(wèn)題,本文在原有PSO算法基礎(chǔ)上提出了結(jié)合Logistic混沌序列、自適應(yīng)動(dòng)態(tài)慣性權(quán)重的PSO算法。對(duì)四旋翼飛行器的飛行高度和飛行姿態(tài)進(jìn)行控制,仿真得到的數(shù)據(jù)表明,本文算法在穩(wěn)定性、最終解的質(zhì)量和收斂速度等方面均優(yōu)于標(biāo)準(zhǔn)PSO算法。