張 江 偉
(四川大學電氣工程學院 四川 成都 610065)
由于無人機具有成本低、降低人員傷亡和易于操作等特點[1],近年來受到越來越多的關(guān)注,無論是在軍事領(lǐng)域還是民用領(lǐng)域都有其廣泛的用途。在軍事領(lǐng)域,無人機可以用來進行戰(zhàn)前的監(jiān)視、偵察、預警和干擾敵方通信系統(tǒng)等任務;在民用領(lǐng)域,可用于地質(zhì)勘探、農(nóng)藥噴灑和觀測天氣等任務[2-3]。但是對于一些特定的任務和復雜的環(huán)境,單個無人機可能無法勝任[4]。因此多無人機編隊協(xié)同飛行引起了學者們廣泛的研究興趣。相比單無人機,多無人機編隊有更高的生存率、更大的執(zhí)行任務效率、更好的適應環(huán)境能力和更少的時間消耗[5]。但是,當環(huán)境變化或者任務改變時,就需要變換隊形,即編隊重構(gòu),所以研究一種安全有效的編隊重構(gòu)最優(yōu)控制方法是很重要的[6-7]。
多無人機編隊重構(gòu)問題,可以被描述為給定一組有初始位置的無人機、期望的位置和一系列約束,找到每個無人機的最優(yōu)控制輸入使得多無人機從初始位置到達期望位置,并且滿足所有約束[8]。目前國內(nèi)外對于多無人機編隊重構(gòu)問題已經(jīng)有了很多研究成果。文獻[9]首先提出了編隊重構(gòu)的問題。文獻[10]提出了一種結(jié)合控制參數(shù)化與時間離散化(CPTD)和遺傳算法(GA)的混合算法,并通過改進遺傳算子來尋優(yōu),有效地解決了編隊重構(gòu)最優(yōu)時間控制問題,但是這種混合算法只表明了在二維空間的有效性。文獻[11]把多無人戰(zhàn)斗機編隊重構(gòu)看作一個復雜的全局最優(yōu)控制問題,提出了一種變異策略改進粒子群算法的方法。文獻[12]對多無人機編隊重構(gòu)介紹了一種離散的控制器,該控制器結(jié)合了CPTD方法和鴿啟發(fā)式(PIO)最優(yōu)方法,目的是為無人機找到最優(yōu)的控制輸入。文獻[13]采用了混合粒子群算法和遺傳算法相結(jié)合的方法,利用了粒子群算法和遺傳算法的優(yōu)勢實現(xiàn)了對多無人機編隊重構(gòu)過程中參數(shù)最優(yōu)問題的求解。文獻[14]分析了無人機編隊重構(gòu)任務耦合、避免碰撞和動態(tài)拓撲的特點,提出基于模型預測控制方法對編隊重構(gòu)這一受約束優(yōu)化問題進行求解。文獻[15]基于差分進化(Differential Evolution,DE)算法,提出了一種新穎的滾動時域控制(Receding Horizon Control,RHC)的控制方法,通過在一系列滾動時域上將無人機編隊重構(gòu)全局最優(yōu)控制問題轉(zhuǎn)化為多個局部在線最優(yōu)問題。文獻[16]對無人機編隊重構(gòu)防碰撞進行了分析,采用一種分布式模型預測控制(Distributed Model Predictive Control,DMPC)算法,將編隊重構(gòu)問題轉(zhuǎn)化為在線滾動優(yōu)化問題,又采用了改進的微分進化方法對結(jié)合碰撞約束建立的重構(gòu)代價函數(shù)進行求解。文獻[17]提出了一種分布式魯棒反饋控制方法用于編隊和重構(gòu)控制。文獻[18]設計了一種反推PID(backstepping PID)控制器,對編隊重組問題中的非線性和耦合性有很好的保證。文獻[19]提出了一種快速搜索隨機樹的方法來解決無人機編隊重構(gòu)問題,采用多余節(jié)點去除和過度航跡修正等方法提高了規(guī)劃航跡的可跟蹤性。
目前現(xiàn)有解決多無人機編隊重構(gòu)問題的方法或多或少有些不足。本文以多無人機編隊重構(gòu)問題為研究對象,基于領(lǐng)航-跟隨策略提出一種改進粒子群算法和控制參數(shù)化的方法。首先在三維空間建立了無人機的動力學模型,同時考慮了編隊重構(gòu)的終端狀態(tài)約束、無人機之間的防碰撞約束、通信距離約束、控制輸入約束,并將完成編隊重構(gòu)的時間作為優(yōu)化目標。本文方法主要是為了獲得更好的控制輸入,更加精確地滿足編隊重構(gòu)后的隊形,其中改進的粒子群算法是用來得到一個較好的控制輸入,此時重構(gòu)后的隊形與期望隊形有點差距,之后利用控制參數(shù)化方法把改進粒子群算法得到的控制輸入作為初始控制輸入,此時能得到一個更優(yōu)的控制輸入,重構(gòu)后的隊形與期望一致。
假設在編隊中有N架無人機,并且無人機在無側(cè)滑的情況下飛行,發(fā)動機推力沿飛行速度方向,三維質(zhì)點動力學模型下的無人機運動方程為:
式中:i=1,2,…,N;xi、yi、zi表示無人機的位置坐標;vi為無人機的飛行速度;γi、χi為無人機的俯仰角和航向角;g為重力加速度;Ti、ni、φi分別表示無人機的推力、負載因數(shù)和滾轉(zhuǎn)角;Wi、Di為無人機的重力和阻力。
對于任意一架無人機假設它的狀態(tài)變量為xi(t)=[vi(t),γi(t),χi(t),xi(t),yi(t),zi(t)],控制變量為ui(t)=[Ti(t),ni(t),φi(t)],用狀態(tài)空間模型可表示為:
xi=x0
(3)
N架編隊重構(gòu)的無人機,假設x=[x1,x2,…,xN],u=[u1,u2,…,uN],f=[f1,f2,…,fN]。
假設無人機編隊重構(gòu)的初始時間為t0=0,終端時間t=T,T不是一個給定的值而是需要優(yōu)化的參數(shù)。所以對給定的式(2)和式(3),本文考慮了一個最優(yōu)時間編隊重構(gòu)控制問題。目標函數(shù)可以表示為:
控制輸入u(t)和終端時間T有如下約束:
umin≤u(t)≤umax?t∈[0,T],T>0
(6)
自由終端約束為:
[xi(T)-xl(T)-xi,m]2+[yi(T)-yl(T)-
yi,m]2+[zi(T)-zl(T)-zi,m]2=0
?i≠mi∈{1,2,…,N}
(7)
式中:m表示選取第m架無人機作為領(lǐng)航機(中心飛機),m∈{1,2,…,N};[xi,m,yi,m,zi,m]為終端時刻T第i架無人機相對于中心無人機的期望坐標;自由終端約束是為了保證達到期望的重構(gòu)隊形。
定義任意兩個無人機之間的距離為:
di,j(xi(t),xj(t))=
?i≠ji,j∈{1,2,…,N}
(8)
為了防止編隊中的無人機發(fā)生碰撞,任意兩架無人機之間的距離必須大于安全防撞距離Dsafe,即:
di,j(xi(t),xj(t))≥Dsafe
?t∈[0,T],?i≠ji,j∈{1,2,…,N}
(9)
為了能實現(xiàn)無人機之間的實時通信,任意兩架無人機之間的距離必須小于通信保障距離Dcomm,即:
di,j(xi(t),xj(t))≤Dcomm
?t∈[0,T],?i≠ji,j∈{1,2,…,N}
(10)
由上所述,多無人機編隊重構(gòu)最優(yōu)時間控制問題的數(shù)學模型可以描述為:在式(2)和式(3)下,滿足式(6)、式(7)、式(9)和式(10),尋找一個連續(xù)的控制輸入u(t)和終端時間T使得式(5)成立??蓪⒕庩犞貥?gòu)最優(yōu)時間控制問題表示成如下數(shù)學問題:
這一節(jié)將介紹基于改進粒子群算法和控制參數(shù)化方法求解多無人機編隊重構(gòu)最優(yōu)時間控制問題。首先對粒子群算法做出改進,通過改進后的粒子群算法找到一個較好的編隊重構(gòu)控制輸入,然后將其作為控制參數(shù)化方法的初始控制輸入。下面分別詳細地介紹控制參數(shù)化方法、改進粒子群算法。
(1) Time Scaling方法。由于終端時間T是未知的,為了簡化問題,在這里采用了一種Time Scaling方法將時域從[0,T]變換到了[0,1]。變換方法如下:
(12)
所以狀態(tài)空間模型可變換到如下:
(2) 控制參數(shù)化。在時域[0,1]上,將控制變量等分為p段,控制輸入函數(shù)ui,j(s)(表示ui(s)的第j個輸入,j=1,2,3)可以近似為一個分段常量函數(shù):
式中:sk=k/p,k=0,1,…,p。并且:
控制參數(shù)化的過程可由圖1表示。
圖1 控制參數(shù)化
(3) 連續(xù)狀態(tài)不等式約束的轉(zhuǎn)化。在編隊重組中的連續(xù)狀態(tài)不等式約束,由于它們包含無窮多個約束條件,所以很難處理。采用一種約束專錄結(jié)合局部光滑技術(shù)可以很好地處理這些約束[19-20]。首先,可以將連續(xù)狀態(tài)不等式約束等價為:
(16)
連續(xù)狀態(tài)不等式約束li(x(s))有同樣的等價形式,這里用gi(x(s))為例。然而,式中的min{gi(x(s)),0}是一個不光滑的函數(shù),因此不可微,所以對于每一個連續(xù)狀態(tài)不等式約束都用光滑函數(shù)Li,ε(gi(x(s)))來近似,即:
(17)
式中:ε>0是一個可調(diào)常數(shù)。設:
(18)
經(jīng)過上面的處理約束雖然可微了,但是對于式(18)中的約束規(guī)范(constraint qualifications)不能滿足,因此引入下面的近似:
gi,ε,η(x(s))=-η+gi,ε(x(s))≤0
(19)
式中:η>0。
問題中的約束都轉(zhuǎn)化成了標準的形式,將轉(zhuǎn)化后的問題記為Pε,η,現(xiàn)在給出一種基于梯度的算法來解Pε,η。
第三步:若第二步滿足跳轉(zhuǎn)至第五步,否則轉(zhuǎn)至第四步。
第四步:設η=η/2,轉(zhuǎn)至第一步。
第五步:設ε=ε/10,η=η/10,轉(zhuǎn)至第一步。
當ε≤εmin時,算法終止。
下面給出目標函數(shù)和約束的梯度計算公式。
定理1目標函數(shù)梯度公式:
式中:λ0是下列協(xié)態(tài)方程的解。
λ0(1)=0
(23)
定理2重構(gòu)隊形終端等式約束梯度公式:
式中:λi是下列協(xié)態(tài)方程的解。
定理3目標函數(shù)梯度公式:
(29)
式中:λi是下列協(xié)態(tài)方程的解。
(30)
上述定理的證明類似文獻[20]中的定理5.2.1,在這里略去了定理的證明。綜合而言,編隊重構(gòu)問題轉(zhuǎn)化為了一個最優(yōu)參數(shù)選擇問題,并且還是一個非線性規(guī)劃問題,因此根據(jù)定理1、定理2和定理3可以采用如序列二次規(guī)劃(SQP)逼近的方法來解。
(32)
粒子通過不斷地更新位置和速度以及反復迭代,直到滿足求解要求或者達到最大迭代次數(shù)。
(2) 改進粒子群算法。在粒子群算法中,慣性權(quán)重系數(shù)w對求解性能有很大影響,w取值過大時,算法的全局搜索能力比較強,可以有效跳出局部解;w取值過小時,局部搜索能力較強,算法的求解精度較高,易于陷入局部最優(yōu)。經(jīng)典粒子群算法慣性權(quán)重是一個常值,無法滿足前期全局搜索和后期的局部搜索的動態(tài)要求[21]。因此,本文采用了一種慣性權(quán)重可變化的改進粒子群算法。
(34)
式中:wmax、wmin分別為慣性權(quán)重的最大值和最小值;kmax為最大迭代次數(shù);λ1、λ2分別為算法前期后期所占的比例,0≤λ1<λ2≤1。
在用粒子群算法求解編隊重構(gòu)最優(yōu)時間控制問題時,采用的是罰函數(shù)法來處理約束。
通過上面的描述,基于粒子群算法和控制參數(shù)化方法的多無人機編隊重構(gòu)問題可以分為兩個階段:改進粒子群算法求解階段和控制參數(shù)化方法求解階段。圖2給出了求解流程。
圖2 求解算法流程
上面的求解過程中,改進粒子群算法求解階段是為了給控制參數(shù)化方法求解階段提供一個好的起始點。因為改進粒子群算法求出來的控制輸入不能精確地滿足重構(gòu)后的隊形要求,且控制參數(shù)化方法是一種對初值敏感的方法,所以將它們結(jié)合起來可以很好地避免它們的不足。
本文在MATLAB 2016b中進行仿真,計算機的配置為:Intel酷睿i7- 9750H處理器,主頻2.60 GHz,內(nèi)存16 GB,64位Windows 10操作系統(tǒng)。本文的仿真實驗完成了與經(jīng)典粒子群算法和改進粒子群算法的對比分析,驗證了本文方法的有效性。
仿真中的參數(shù)設置如下:N=5,表示有五架無人機參與編隊重構(gòu);安全距離Dsafe=10 m,通信距離D{comm}=200 m;控制參數(shù)化等分的段數(shù)p=10;選取的粒子數(shù)n=50;迭代的最大次數(shù)kmax=200;學習因子c1=c2=2.01;λ1=0.1、λ2=0.3。假設期望的重構(gòu)隊形為V字形。
圖3、圖4和圖5分別為經(jīng)典粒子群算法、改進粒子群算法、基于粒子群算法和控制參數(shù)化方法的多無人機編隊重構(gòu)過程的三維軌跡,其中:“o”表示無人機的起始位置;“*”表示終端位置??梢钥吹奖疚姆椒芎芎玫赝瓿芍貥?gòu)隊形,改進粒子群算法次之,經(jīng)典粒子群算法不能完成期望隊形重構(gòu)。從三種方法完成編隊重構(gòu)的時間來看,本文方法更有效率,其中經(jīng)典粒子群算法3.754 s,改進粒子群算法4.756 s,基于改進粒子群算法和控制參數(shù)化方法3.577 7 s。
圖3 經(jīng)典粒子群算法編隊重構(gòu)軌跡
圖4 改進粒子群算法編隊重構(gòu)軌跡
圖5 基于粒子群算法和控制參數(shù)化方法的編隊重構(gòu)軌跡
圖6、圖7和圖8分別是經(jīng)典粒子群算法、改進粒子群算法、基于粒子群算法和控制參數(shù)化方法的水平軌跡。可以看出本文方法在水平方向能很好地完成V字形重構(gòu),而且在垂直方向能保證所有無人機在同一平面;相比較而言,改進粒子群算法基本完成V字形和大部分無人機在同一平面;然而經(jīng)典粒子群算法在隊形和保證無人機在同一平面上都無法滿足。
(a) XY平面軌跡 (b) Z軸方向軌跡圖6 經(jīng)典粒子群算法水平軌跡
(a) XY平面軌跡 (b) Z軸方向軌跡圖7 改進粒子群算法水平軌跡
(a) XY平面軌跡 (b) Z軸方向軌跡圖8 基于粒子群算法和控制參數(shù)化方法水平軌跡
圖9、圖10和圖11分別是三種方法的多無人機編隊重構(gòu)過程中任意兩個無人機之間的距離。可以看出,三種方法都能很好地滿足約束,可以實現(xiàn)避免碰撞和保障通信。
圖9 經(jīng)典粒子群算法的任意兩個無人機之間的距離
圖10 改進粒子群算法的任意兩個無人機之間的距離
圖11 基于粒子群算法和控制參數(shù)化方法的 任意兩個無人機之間的距離
本文針對多無人機編隊重構(gòu)最優(yōu)控制問題,給出無人機的動力學模型,考慮了無人機防碰撞約束和保證通信約束,提出一種基于粒子群算法和控制參數(shù)化的方法。通過對經(jīng)典粒子群算法中的慣性權(quán)重動態(tài)的變化,改變粒子群算法前期和后期的搜索能力,提高求解的精度。利用控制參數(shù)化方法對難以處理的連續(xù)狀態(tài)不等式約束進行轉(zhuǎn)化,其中用到了約束轉(zhuǎn)錄結(jié)合局部光滑技術(shù),使得連續(xù)狀態(tài)不等式約束成為易于處理的標準約束形式。本文方法將改進粒子群算法求得的最優(yōu)解作為控制參數(shù)化方法的初始值,從而避免了粒子群算法無法精確完成編隊重構(gòu)和控制參數(shù)化方法對初值敏感的缺點。仿真結(jié)果表明:本文方法能夠很好地解決編隊重構(gòu)最優(yōu)時間控制問題,與其他編隊重構(gòu)算法相比,該算法具有較高的求解精度和效率。