李茂林 王勇杰 介 丹
(運城職業(yè)技術(shù)大學(xué)電子信息工程系 山西 運城 044000)
四旋翼飛行器是一類多輸入多輸出的非線性飛行器,具有強耦合性且難以建立精確的數(shù)學(xué)模型[1],傳統(tǒng)的PID控制[2]、魯棒控制[3]和神經(jīng)網(wǎng)絡(luò)控制[4]等控制策略的控制效果均依賴被控對象的數(shù)學(xué)模型,因此針對具有難以建立精確數(shù)學(xué)模型特點的被控對象,傳統(tǒng)的控制策略難以得到最優(yōu)控制效果。此外,四旋翼飛行器在飛行過程中,易受到外界擾動,偏離預(yù)定飛行高度或飛行航線,導(dǎo)致飛行器在飛行過程中對于控制器的抗擾動能力要求極高。因此,針對上述特點,四旋翼飛行器的控制設(shè)計成為了國內(nèi)外研究學(xué)者的研究重點。
古訓(xùn)等[5]提出一種自適應(yīng)滑模控制策略,實現(xiàn)了飛行器的姿態(tài)控制和高度控制,提高了控制精度和響應(yīng)速度。胡文華等[6]提出一種基于改進粒子群算法的自抗擾四旋翼控制策略,該策略針對傳統(tǒng)粒子群算法求解精度不高的問題進行改進,并用于自抗擾參數(shù)整定,提高了控制精度。陳林奇等[7]提出一種雙空間粒子群算法的自抗擾四旋翼控制策略,該策略實現(xiàn)了飛行器到達指令高度的快速無超調(diào),但該策略中粒子群算法難以針對擾動計算出當前有效的控制參數(shù),使得控制器的抗擾動能力不強。Wang等[8]提出一種基于干擾觀測器的四旋翼自適應(yīng)容錯控制,針對外負載擾動具有較強的觀測能力,但該策略的缺點在于系統(tǒng)受到擾動后,再次達到穩(wěn)態(tài)的時間較長。盧凱文等[9]提出一種具有LQR的四旋翼控制策略,該策略較傳統(tǒng)PID控制的控制精度更高,但抗擾動能力較差。
為提高四旋翼飛行器的控制精度和抗擾動能力,本文首先選取非線性自抗擾作為四旋翼飛行器的控制器。其次針對非線性自抗擾控制器參數(shù)難以整定的問題,通過動態(tài)混沌權(quán)重、位置遺棄和多種群策略對蜻蜓算法進行改進,將改進后的蜻蜓算法用于自抗擾控制器參數(shù)的在線整定。最后將優(yōu)化后的自抗擾控制器對四旋翼飛行器進行姿態(tài)控制和高度控制。
設(shè)四旋翼飛行器在地面坐標系下的坐標為OL=(x,y,z),飛行器的俯仰角、滾動角和航向角分別記為α、β和γ。因此定義四旋翼飛行器的動力學(xué)方程的數(shù)學(xué)模型為:
(1)
式中:Ix、Iy和Iz分別為飛行器繞x、y、z三軸的慣性張量;m為飛行器質(zhì)量;U1、U2、U3和U4分別為飛行器高度、俯仰角、滾動角和航向角的系統(tǒng)控制量;g為重力加速度;l表示四旋翼飛機質(zhì)心與機翼中心點的距離。定義飛行器四個旋翼的轉(zhuǎn)速分別為Ω1、Ω2、Ω3和Ω4。因此系統(tǒng)控制量和四個旋翼轉(zhuǎn)速之間關(guān)系的數(shù)學(xué)表達式如下:
(2)
式中:b為升力系數(shù);d為反扭矩系數(shù)。
由式(1)和式(2)可知,飛行器中,航向角、俯仰角和滾動角之間相互耦合,自抗擾控制器可將三通道之間的耦合量作為控制系統(tǒng)中的內(nèi)部擾動,并與外部與擾動一起作為觀測器觀測的總擾動,對總擾動進行觀測和補償。因此可將式(1)和式(2)改寫成與自抗擾控制數(shù)學(xué)模型的相對形式:
(3)
式中:ωi=(ω1,ω2,ω3,ω4)為系統(tǒng)四通道所受外負載擾動;fi為系統(tǒng)內(nèi)部擾動;b1≈m-1,b2≈Ix-1,b3≈Iy-1,b4≈Iz-1。
自抗擾控制器是一類不基于精確數(shù)學(xué)模型且抗擾動能力強的非線性控制器[10]。控制器由微分跟蹤器、擴張狀態(tài)觀測器和非線性反饋控制率三部分構(gòu)成。以航向角為例,設(shè)計航向角自抗擾控制器如下。被控對象可表示為:
(4)
1) 微分跟蹤器的數(shù)學(xué)表達式如下:
(5)
式中:γd為航向角期望輸入;h0為濾波因子;h為步長;r為速度因子,調(diào)節(jié)微分跟蹤器對輸入信號的跟蹤速度;fst()為最速綜合函數(shù),安排系統(tǒng)的過渡過程。
2) 擴張狀態(tài)觀測器的數(shù)學(xué)表達式如下:
(6)
式中:β1、β2和β3為反饋增益參數(shù),決定擴張狀態(tài)觀測器對擾動的觀測和補償效果;z1和z2為被動對象輸入值和其微分信號的觀測值;z3為系統(tǒng)總擾動觀測值;α1通常取0.5;α2通常取0.25;δ通常取0.1。fal()函數(shù)的定義如下:
(7)
式中:e表示系統(tǒng)反饋誤差。
3) 非線性誤差反饋控制率根據(jù)輸入輸出反饋所得誤差和擾動觀測量z3,計算被控對象的最終控制量U4。其數(shù)學(xué)表達式如下所示:
(8)
式中:β11和β12為控制器增益參數(shù),β11越大響應(yīng)速度越快,但會引起系統(tǒng)震蕩,β12越大,系統(tǒng)不易出現(xiàn)超調(diào),但會導(dǎo)致系統(tǒng)調(diào)節(jié)時間過長;α1一般取0.5;α2一般取1.5;b為補償系數(shù)。因此,非線性自抗擾控制器中,待整定參數(shù)為β1、β2、β3、β11、β12和b。
本文將改進的蜻蜓算法在線整定自抗擾控制坐騎參數(shù),并將優(yōu)化的自抗擾控制器對四旋翼飛行器進行姿態(tài)控制和高度控制,進行實驗。系統(tǒng)分為四個獨立回路通道,分別控制高度、航向角、俯仰角和滾動角。設(shè)系統(tǒng)高度的期望輸入為zd、航向角期望輸入為γd、俯仰角期望輸入為αd、滾動角期望輸入為βd。則基于改進蜻蜓算法的自抗擾四旋翼控制系統(tǒng)的控制結(jié)構(gòu)如圖1所示。
圖1 控制結(jié)構(gòu)
蜻蜓優(yōu)化算法[11]在尋優(yōu)過程中會分為靜態(tài)和動態(tài)兩個群體,其中靜態(tài)群體在食物源附近進行小規(guī)模的范圍性搜索,不斷尋找其他獵物,直到找到最優(yōu)食物源,這類行為被稱為捕食行為。動態(tài)群體不斷向最優(yōu)食物源靠近,并沿當前尋優(yōu)路徑進行位置更新,尋找全局最優(yōu)解,這類行為被稱為遷徙行為。按照捕食和遷徙行為,蜻蜓算法主要通過以下五個方面進行迭代尋優(yōu)。
1) 蜻蜓算法在尋優(yōu)過程中,種群中的蜻蜓個體會不斷與相鄰個體進行分離,其數(shù)學(xué)表達式如下:
(9)
式中:Si為第i個個體與其相鄰個體的分離度;N為相鄰個體的數(shù)量;i=1,2,…,NP,NP為種群規(guī)模;xi為蜻蜓個體的位置;xj為相鄰個體的位置,j=1,2,…,N。
2) 蜻蜓個體在尋優(yōu)過程中,位置會不斷發(fā)生改變,并與相近個體進行速度匹配,防止蜻蜓個體脫離群體,其數(shù)學(xué)表達式如下:
(10)
式中:Ai為第i個個體與相鄰個體的速度對齊度;vj為相鄰個體的速度。
3) 蜻蜓種群在尋優(yōu)過程中,會形成一個小集體在尋優(yōu)路徑上進行小范圍尋優(yōu),尋優(yōu)完成后,小集體中的全部個體會向種群聚攏,其數(shù)學(xué)表達式如下:
(11)
式中:Ci為第i個個體與其相鄰個體的聚攏度。
4) 蜻蜓個體會朝最優(yōu)解方向不斷靠近,并在路徑中尋找更優(yōu)質(zhì)的解,其數(shù)學(xué)表達式如下:
Fi=xbest-xi
(12)
式中:xbest為食物源,即當前迭代產(chǎn)生的最優(yōu)解;Fi為食物源對第i個個體的吸引力。
5) 蜻蜓個體在捕獵過程中,會不斷躲避天敵,這種行為的數(shù)學(xué)表達式如下:
Ei=xworst-xi
(13)
式中:xworst為蜻蜓個體的天敵,即當前迭代中的最差解;Ei為第i個個體對天敵的排斥力。
綜合以上五種蜻蜓在捕獵時的行為,定義在蜻蜓算法中,蜻蜓個體的位置更新公式如下:
X(t+1)=X(t)+ΔX(t+1)
(14)
式中:t=1,2,…,Tmax為當前迭代次數(shù),Tmax為最大迭代次數(shù);X(t)為蜻蜓種群中個體的位置;ΔX表示蜻蜓個體的更新步長。ΔX更新公式如下:
ΔX(t+1)=αsSi+αAAi+αCCi+αFFi+
αEEi+ωΔX(t)
(15)
式中:αs為個體的分離權(quán)重;αA為速度匹配權(quán)重;αC為聚攏權(quán)重;αF為食物因子;αE為天敵因子;ω為步長更新權(quán)重。
蜻蜓算法在位置更新過程中,步長更新權(quán)重ω會隨機更改搜索步長,其優(yōu)點在于搜索過程中不會喪失種群多樣性,但缺點在于隨機搜索極大概率會破壞算法全局收斂和局部搜索的平衡性。根據(jù)大量的實驗研究表明,算法在迭代前期,應(yīng)具有較大的搜索步長,擴大種群的搜索范圍,保證全局最優(yōu)解可以包含在解空間范圍內(nèi),提高算法的全局搜索能力。同時大范圍的搜索會使得算法的收斂精度降低,因此算法在迭代后期,應(yīng)縮短搜索步長,減小搜索范圍,使得算法可以在當前最優(yōu)解附近進行精確搜索,提高算法的局部收斂精度。因此本文通過提出一種動態(tài)混沌步長更新權(quán)重對蜻蜓算法的位置更新方式進行改進。改進后的步長更新權(quán)重如下:
(16)
ΔX(t+1)=(αsSi+αAAi+αCCi+αFFi+
αEEi)+ωcΔX(t)
(17)
在蜻蜓個體尋優(yōu)過程中,由于局部極值對其附近個體具有較強的吸引力,動態(tài)群體中的全部個體會向局部極值點不斷靠近,使得個體無法跳出當前位置,導(dǎo)致算法早熟收斂,陷入局部最優(yōu),降低算法的收斂精度。傳統(tǒng)的變異策略,通過使陷入局部最優(yōu)的個體獲得一個較大的擾動力,幫助個體跳出局部最優(yōu),但并不能保證跳出局部最優(yōu)的個體不會再次受到局部極值的吸引,重新陷入局部最優(yōu)。因此本文引入一種新的最差個體位置遺棄策略,對算法中適應(yīng)度值較差的群體進行改進。最差個體位置遺棄是指,若當前個體在同一個位置被搜索Lmax次,且適應(yīng)度值并沒有得到有效的改善,則認為該個體在當前位置陷入局部最優(yōu),算法在之后的若干次迭代過程中,不會對當前位置進行搜索,此位置被標記為遺棄位置,并被生成的新位置所代替,新位置生成的數(shù)學(xué)表達式如下:
Xnew=(1-η(t))Xbest(t)+λ(Xbest(t)-X(t))
(18)
式中:Xnew為遺棄位置后產(chǎn)生的新位置;λ=2-(rand-0.5)×e-0.35t為位置因子,是一個隨機數(shù);Xbest(t)為當前迭代計算所得最優(yōu)個體的位置;η(t)表示第t次迭代時位置更新權(quán)重。η(t)計算公式如下:
η(t)=ηmin+(ηmax-ηmin)×e-0.35t
(19)
式中:ηmax和ηmin為位置更新權(quán)重的最大值和最小值。
本文通過引入最差粒子位置遺棄策略的基本蜻蜓算法進行改進,可以有效避免個體陷入局部最優(yōu),早熟收斂。但新位置生成的條件,是指個體在一個位置被多次搜索到,但適應(yīng)度值并沒有被改善。該策略的優(yōu)點在于,若被搜索到的個體適應(yīng)度值較差,幫助該個體跳出局部最優(yōu),避免算法早熟收斂陷入局部最優(yōu)。缺點在于,若被搜索到的個體適應(yīng)度值較優(yōu),但該位置同樣被搜索多次,且未改變該個體的適應(yīng)度函數(shù)值,說明該個體很有可能為全局最優(yōu)解,若此時將該個體的位置進行遺棄,則會導(dǎo)致算法跳出極值點,難以找到全局最優(yōu)解。因此本文通過多種群策略對算法進行改進,雙種群尋優(yōu)過程如下:
Step1種群初始化后,計算全部種群的適應(yīng)度函數(shù)值,并進行排序。選擇前10%的個體作為一個子種群,記為S1。其余個體作為另一個子種群,記為S2。
Step2在每次迭代過程中,通過動態(tài)混沌慣性權(quán)重對子種群S1中的個體進行位置更新,通過最差粒子位置遺棄策略對子種群S2中的個體進行位置更新。
Step3計算子種群S1和S2中的全部個體的適應(yīng)度函數(shù)值。將種群S2中的個體按照適應(yīng)度函數(shù)值進行排序,并比較子種群S2中前10%的個體與子種群S1中個體的適應(yīng)度函數(shù)值,若優(yōu)于S1中的個體,則進行替換。
Step1蜻蜓種群初始化,包括種群規(guī)模NP、維數(shù)為D、ηmax、ηmin、Lmax、Tmax、種群中全部個體的位置Xi和初始步長ΔX。
Step2計算蜻蜓種群中全部個體的適應(yīng)度函數(shù)值并進行排序,選取前10%的個體作為一個子種群,記為S1。其余個體作為另一個子種群,記為S2。
Step3通過式(9)-式(13)計算Si、Ai、Ci、Fi和Ei。
Step4通過式(10)、式(11)和式(12)對子種群S1中個體的位置和補償進行更新。
Step5通過式(10)、式(11)和式(13)對子種群S2中個體的位置和補償進行更新,判斷是否進行位置遺棄并產(chǎn)生新位置。
Step6計算子種群S1和S2中的全部個體的適應(yīng)度函數(shù)值,并比較子種群S2中前10%的個體與子種群S1中個體的適應(yīng)度函數(shù)值,若優(yōu)于S1中的個體,則進行替換。
Step7判斷是否達到最大迭代次數(shù)Tmax,是則輸出最優(yōu)解,否則返回Step 3。
為了驗證本文所提多種群蜻蜓算法的性能,選取10個國際通用的標準測試函數(shù)進行實驗驗證。其中F1-F5為單峰測試函數(shù),主要驗證算法的收斂速度和全局搜索能力。F6-F10為多峰測試函數(shù),主要驗證算法的局部收斂能力和收斂精度。其中測試函數(shù)的具體信息如表1所示。為了可以更加直觀地表現(xiàn)出多種群蜻蜓算法的尋優(yōu)性能,本文將多種群蜻蜓算法的實驗結(jié)果與雙空間粒子群算法[7]、改進樽海鞘群算法[12]、交叉保優(yōu)粒子群算法[6]的實驗結(jié)果進行對比,為了保證實驗的公平性,四種算法獨立運行50次并對全部實驗結(jié)果去平均值(Ave)、最小值(Min)、標準差(Std)、尋優(yōu)成功率(SR),種群規(guī)模均為100,迭代次數(shù)均為100。具體實驗結(jié)果如表2所示,其中最優(yōu)解用加粗字體表示。四種算法的參數(shù)設(shè)置如下:其中本文所提多種群蜻蜓算法的位置更新權(quán)重的最大值ηmax、最小值ηmin和最大搜索次數(shù)Lmax通過多次數(shù)值仿真實驗所得最優(yōu)取值。
1) 多種群蜻蜓算法:ηmin=0.25,ηmax=0.9,Lmax=5。
2) 雙空間粒子群算法:加速度因子c1=c2=2,慣性權(quán)重ω=0.6,搜索范圍因子r1=0.75,搜索范圍因子r2=0.25。
3) 交叉保優(yōu)粒子群算法:加速度因子c1=2,加速度因子c2=2,慣性權(quán)重最小值ωmin=0.4,慣性權(quán)重最大值ωmax=0.9。
表1 測試函數(shù)
續(xù)表1
表2 測試結(jié)果
續(xù)表2
從表2中可知,對于單峰測試函數(shù)而言,本文所提多種群蜻蜓優(yōu)化算法求解的平均值和最小值最小,說明多種群蜻蜓優(yōu)化算法的全局收斂精度和尋優(yōu)能力要優(yōu)于其他三種算法。同時對于單峰測試函數(shù)F2和F5而言,交叉保優(yōu)粒子群算法和改進樽海鞘群算法均早熟收斂,無法找到全局最優(yōu)解,但多種群蜻蜓算法仍可找到全局最優(yōu)解,說明動態(tài)混沌權(quán)重在尋優(yōu)初期給予算法較大的搜索步長,擴大算法的尋優(yōu)范圍并成功覆蓋了全局極值點。此外隨求解維數(shù)增加,算法求解難度也急劇增加,雙空間粒子群算法、交叉保優(yōu)粒子群算法和改進樽海鞘群算法均很大程度地降低了算法的須有精度,尋優(yōu)成功率也不同程度地降低,但多種群蜻蜓算法的尋優(yōu)成功率均為100%且收斂精度變化不大,說明動態(tài)混沌權(quán)重在迭代后期有效縮短搜索步長,使得算法可以小范圍精確搜索,提高了算法的收斂精度。
對于多峰測試函數(shù)F6-F9而言,本文所提多種群蜻蜓算法求解的平均值和最小值相較其他三種算法而言,同樣最小,僅在測試函數(shù)F10上,雙空間粒子群算法的求解精度要略優(yōu)于本文算法,說明本文所提多種群蜻蜓算法的局部尋優(yōu)能力要優(yōu)于其他三種算法。同樣,隨求解維數(shù)的增加,四種算法的局部搜索能力均有所下降,但本文算法的局部尋優(yōu)精度變化不大,且成功率為100%。值得注意的是,對于測試函數(shù)F7而言,本文算法可以求解到理論最優(yōu)值,說明本文算法在迭代后期通過在極值點附近進行小范圍搜索可以有效提高算法的尋優(yōu)精度。
同時,對于全部測試函數(shù)而言,本文所提多種群蜻蜓算法求解的標準差較其他三種算法而言同樣最小,說明本文算法的尋優(yōu)穩(wěn)定性要強于其他三種算法。隨求解維數(shù)的增加,雙空間粒子群算法、交叉保優(yōu)粒子群算法和改進樽海鞘群算法在求解穩(wěn)定性上表現(xiàn)的能力較差,但本文所提多種群蜻蜓算法求解的標準差變化不大,說明多種群蜻蜓算法對于求解具有復(fù)雜非線性數(shù)學(xué)模型的問題上,具有較強的尋優(yōu)精度和尋優(yōu)穩(wěn)定性。
本文通過多種群蜻蜓算法優(yōu)化后的自抗擾控制器對飛行器進行姿態(tài)控制和高度控制實驗,其中飛行器參數(shù)如表3所示。優(yōu)化后的自抗擾控制器參數(shù)如表4所示。
表3 飛行器參數(shù)
表4 優(yōu)化后的自抗擾控制器參數(shù)
本文選擇ITAE評價指標作為多種群蜻蜓算法的適應(yīng)度函數(shù),該函數(shù)可較好地抑制長時間存在的誤差,是一類具有很好工程實用性和選擇性的控制系統(tǒng)性能評價指標。該指標的輸入為系統(tǒng)期望值和系統(tǒng)輸出值之間的誤差。本文將基于多種群蜻蜓算法求解所得的ITAE評價函數(shù)指標值與雙空間粒子群算法、改進樽海鞘群算法、交叉保優(yōu)粒子群算法求解取得的ITAE評價函數(shù)指標值進行對比實驗,實驗結(jié)果如圖2所示。
(a) 高度評價函數(shù)值
(b) 航向角評價函數(shù)值
(c) 俯仰角評價函數(shù)值
(d) 滾動角評價函數(shù)值圖2 評價函數(shù)對比
可以看出,在迭代初期,本文所提多種群蜻蜓算法求解的評價函數(shù)值下降趨勢最快且范圍最大,說明本文算法相較其他三種算法在迭代前期具有較大的搜索范圍,全局搜索能力更強。評價函數(shù)值下降速度最快說明本文算法的搜索速度最快。此外,在高度ITAE值、航向ITAE值、俯仰ITAE值和滾動ITAE值的求解上,多種群蜻蜓算法分別在23代、34代、33代和33代完成收斂,且ITAE值相較其他三種算法均為最小,到達穩(wěn)態(tài)時間最短。說明本文算法在線整定自抗擾參數(shù)所需時間最短且精度最高。
本文通過優(yōu)化后的自抗擾控制器對飛行器進行姿態(tài)控制和高度控制,實驗結(jié)果如圖3所示。其中高度輸入為5 m,即幅值為5的階躍信號。航線角期望輸入為方波增益為15度的周期性方波,滾動角和俯仰角的期望輸入為方波增益為40度的周期性方波。在實驗過程中,為了對比驗證本文所提改進策略的抗擾動能力,在控制過程中加入白噪聲信號模擬外界擾動。
(a) 高度控制
(b) 航向角控制
(c) 俯仰角控制
(d) 滾動角控制圖3 系統(tǒng)控制對比
可以看出,首先,本文所提改進策略在高度控制和歐拉角控制上,取得的控制精度最高,最大相對誤差分別為0.2%、0.8%、0.93%和0.84%,且可以實現(xiàn)快速無超調(diào)。雖然基于改進樽海鞘群算法的優(yōu)化控制策略在高度控制上,到達指定高度的時間略快于本文所提多種群蜻蜓算法的優(yōu)化控制策略,但存在較大超調(diào),且再次到達穩(wěn)態(tài)的時間要慢于本文所提優(yōu)化策略。此外,在航向角、俯仰角和滾動角的控制上,本文所提優(yōu)化策略很好地對期望輸入信號進行了跟蹤,三個角之間的誤差相差不大,說明優(yōu)化后的自抗擾控制器很好地對三個歐拉角之間的耦合關(guān)系進行了解耦,較大程度地提高了控制精度,減小了飛行器的姿態(tài)控制誤差。其次,加入白噪聲后,本文所提多種群蜻蜓算法的自抗擾優(yōu)化控制策略受擾動影響最小,三個歐拉角受擾動后,最大相對誤差為0.93%、1.1%和0.96%,遠優(yōu)于其他三種優(yōu)化控制策略受到擾動后的控制誤差,說明多種群蜻蜓算法優(yōu)化后的自抗擾控制器相較其他三種優(yōu)化控制策略,具有較高的抗擾動能力。
本文針對四旋翼飛行器姿態(tài)角難以控制的問題,提出一種多種群蜻蜓算法自抗擾控制策略。對控制器參數(shù)難以整定問題,首先通過動態(tài)混沌權(quán)重、最差粒子遺棄和多種群策略對基本蜻蜓算法進行改進,提高算法的尋優(yōu)精度,平衡算法全局局部收斂能力。其次將改進后的蜻蜓算法在線優(yōu)化自抗擾控制器參數(shù)。最后將優(yōu)化后的自抗擾控制器對四旋翼飛行器進行高度控制和姿態(tài)控制,在控制過程中加入白噪聲擾動。實驗結(jié)果表明,多種群蜻蜓算法優(yōu)化后的自抗擾控制策略有效提高了飛行器的控制精度和抗擾動能力。