孫田野, 孫 偉,*, 吳建軍
(1. 西安電子科技大學(xué)空間科學(xué)與技術(shù)學(xué)院, 陜西 西安 710071;2. 西北工業(yè)大學(xué)第365研究所, 陜西 西安 710129)
近年來,計算機(jī)、傳感器領(lǐng)域的變化日新月異,使得科技的發(fā)展趨向于智能化、無人化[1],無人機(jī)以其價格低廉、靈活機(jī)動和便攜等特點(diǎn)被普遍應(yīng)用于目標(biāo)跟蹤、資源遙感、電力巡線、環(huán)境監(jiān)測和城市監(jiān)控等領(lǐng)域[2],代替人工執(zhí)行未知領(lǐng)域的探索和危險環(huán)境的排查[3]。但單個無人機(jī)的能力始終有限,存在搜索范圍小、載荷小、功能單一、環(huán)境感知不明顯和作戰(zhàn)半徑小等問題。單個無人機(jī)發(fā)生故障等情況時易導(dǎo)致任務(wù)無法順利完成,因此多無人機(jī)編隊(duì)成為了無人機(jī)發(fā)展的迫切需求和趨勢,無人機(jī)編隊(duì)也成為了各個國家軍事領(lǐng)域發(fā)展的重要任務(wù)[4]。國內(nèi)外在無人機(jī)編隊(duì)控制領(lǐng)域做了大量的探索和研究,著名的包括美國的“小精靈”“拒止環(huán)境協(xié)同作戰(zhàn)”“快速量輕自主”和“集群使能攻擊戰(zhàn)術(shù)”等多個無人機(jī)集群研發(fā)項(xiàng)目[5-6]。
無人機(jī)編隊(duì)的研究主要包括編隊(duì)集結(jié)和編隊(duì)重構(gòu),無人機(jī)編隊(duì)集結(jié)是無人機(jī)編隊(duì)的初始條件,固定翼無人機(jī)與旋翼無人機(jī)在運(yùn)動規(guī)則上有著根本性的差異,固定翼無人機(jī)從開始起飛就保持一定的飛行速度,無法像旋翼無人機(jī)懸停在半空等待其他個體[7],因此固定翼無人機(jī)的集結(jié)更難,目前無人機(jī)編隊(duì)集結(jié)算法主要包括一致性控制算法和仿生算法等[8-9]。一致性控制最開始應(yīng)用于計算機(jī)領(lǐng)域的并行計算,Vicsek等人提出了Vicsek模型,提出“對齊”規(guī)則。種群中個體勻速運(yùn)動,其運(yùn)動狀態(tài)由相鄰個體決定,整個大種群的動態(tài)一致性問題就簡化為多個無人機(jī)狀態(tài)矩陣的穩(wěn)定性問題[10],這樣的優(yōu)勢是將復(fù)雜的多維矩陣問題轉(zhuǎn)換成低維矩陣求解。一致性控制保證了在編隊(duì)中個體出現(xiàn)故障時也能保證整體一致性,但Hu等人指出輸入時延的存在影響系統(tǒng)的穩(wěn)定性,容易導(dǎo)致系統(tǒng)崩潰的情況。仿生算法是近年來流行的無人機(jī)編隊(duì)集結(jié)方法,模擬動物中的種群行為,被應(yīng)用于無人機(jī)編隊(duì)的集結(jié)中[11],例如遺傳算法(genetic algorithm, GA)、蟻群算法、粒子群(particles swarm optimization, PSO)算法和蝙蝠算法[12-14]等,但這些經(jīng)典算法存在計算效率低、容易局部收斂、迭代次數(shù)多等問題,實(shí)際應(yīng)用不多。Bian等人提出一種改進(jìn)差分進(jìn)化(differential evolution, DE)算法,優(yōu)化了種群結(jié)構(gòu),加快了迭代速率,但是隨著編隊(duì)規(guī)模的增加,計算時間較長[15]。Meng等人提出一種Mongkey-King算法,解決了粒子群算法“走兩步退一步”的缺點(diǎn),但是依然存在大規(guī)模編隊(duì)計算效率低的問題[16]。Zhang等人采用改進(jìn)的約束DE算法,考慮了現(xiàn)實(shí)情況下的約束條件,但是在實(shí)際應(yīng)用中,過多的約束條件導(dǎo)致計算量偏大,算法效率低[17]。
本文針對無人機(jī)編隊(duì)在集結(jié)過程中效率低等問題,提出一種改進(jìn)擬仿射類進(jìn)化(improved quasi-affine transformation evolutionary, IQuatre)算法,與分布式模型預(yù)測控制(distributed model predictive control, DMPC)相結(jié)合,通過對編隊(duì)的“現(xiàn)在”和“未來”狀態(tài)的計算,保證了無人機(jī)編隊(duì)整體的穩(wěn)定性和安全性。IQuatre算法保持了DE算法迭代迅速、控制參數(shù)少的特點(diǎn),實(shí)現(xiàn)了無人機(jī)編隊(duì)快速集結(jié)、編隊(duì)整體穩(wěn)定的目的。
在慣性坐標(biāo)系下,不考慮其他外在環(huán)境對無人機(jī)的影響,無人機(jī)的運(yùn)動可以視為其質(zhì)心的三維運(yùn)動[18],使用歐拉方程對運(yùn)動模型進(jìn)行離散化處理,近似為
(1)
預(yù)測控制模型分為預(yù)測模型、動態(tài)時域滾動優(yōu)化和代價值反饋校正,DMPC最早應(yīng)用在工業(yè)過程控制領(lǐng)域內(nèi)[19-20]。DMPC可以將控制系統(tǒng)轉(zhuǎn)化成條件約束問題,通過輸入控制對象的過去狀態(tài)信息,對系統(tǒng)N步之后的控制狀態(tài)進(jìn)行預(yù)測,并且通過反饋校正系統(tǒng)實(shí)時對預(yù)測量進(jìn)行更新和優(yōu)化[21]。
無人機(jī)編隊(duì)的集結(jié)問題可以看作僚機(jī)根據(jù)主機(jī)的位置,不斷去追擊自己期望位置的追擊過程[22]。但是在追擊的過程中,為了避免無人機(jī)發(fā)生碰撞和無人機(jī)編隊(duì)整體性變差,就需要對無人機(jī)編隊(duì)的狀態(tài)進(jìn)行控制和預(yù)測,而DMPC關(guān)于未來N個狀態(tài)的計算完全可以應(yīng)用在對無人機(jī)編隊(duì)控制量的計算上,DMPC和無人機(jī)編隊(duì)相結(jié)合產(chǎn)生的分布式預(yù)測模型很好地解決了無人機(jī)編隊(duì)模型中當(dāng)前最優(yōu)解和無人機(jī)編隊(duì)安全性間的平衡問題[23]。
控制分為集中式和分布式兩種,集中式模型預(yù)測控制只采用一個控制器來求解整個控制系統(tǒng)的控制量,計算量大并且復(fù)雜,因此無人機(jī)系統(tǒng)研究中常用的是DMPC[24]。DMPC針對每一個被控對象都有一個單獨(dú)的控制器,通過關(guān)聯(lián)變量達(dá)到全局約束的目的,從而減小了每次計算的計算規(guī)模,提高求解速度。
在反饋系統(tǒng)中,將控制量和狀態(tài)量作為反饋值,整個系統(tǒng)的運(yùn)動方程轉(zhuǎn)化為單個系統(tǒng)之間相互關(guān)聯(lián),離散化式(1)可以將無人機(jī)的運(yùn)動方程表示為
f(x(n),u(n))=F[f1(x1(n),u1(n)),
f2(x2(n),u2(n)),…,fN(xN(n),uN(n))]
(2)
式中:x(n),u(n)分別代表無人機(jī)在n時刻的狀態(tài)量和控制量。在DMPC框架下,無人機(jī)控制系統(tǒng)的約代價可以轉(zhuǎn)換為各個子系統(tǒng)性能指標(biāo)的加權(quán),式(2)可以改寫為
(3)
(4)
(5)
系統(tǒng)的收斂問題可以簡化為單無人機(jī)優(yōu)化問題:
(6)
Quatre算法的核心是映射函數(shù),隨機(jī)初始化種群的個體,然后再以類似數(shù)學(xué)中映射的函數(shù)關(guān)系(f:x→y),將原有的粒子投射到另一個集合中去,再通過適應(yīng)度函數(shù)進(jìn)行個體優(yōu)異判斷,保留符合要求且性能優(yōu)異的個體,不斷地重復(fù)迭代,直至滿足收斂條件或最大迭代次數(shù),最后留下的個體被認(rèn)為是最佳變量[25-26]。Quatre算法與其他算法相比,其優(yōu)勢在于Quatre算法在種群的變異演化過程中,僅需要一個空間矩陣M和步長c,不需要設(shè)置其他類似于DE算法的變異率等參數(shù)[27],并且Quatre算法個體間的關(guān)系更緊密,在變量空間中具有良好的搜索和尋優(yōu)能力。
(7)
式中:c是差分矩陣的系數(shù)因子(將Xr1-Xr2的結(jié)果視為差分矩陣)。選擇矩陣M是自動生成的矩陣,從Mtemp下三角矩陣一步步變換而來,具體變化如下所示:
(8)
轉(zhuǎn)換有兩個步驟,第一步是在Mtemp中隨機(jī)排列每個D維行向量的元素,第二步是隨機(jī)交換矩陣Mtemp中的行向量,即可得到交換矩陣M。
若個體bi的坐標(biāo)位置為bi=[bi,1,bi,2,…,bi,D],并且種群中存在ps個個體,那么種群矩陣即為B=[b1,b2,…,bps]T,Bgbest,G表示全局最佳個體矩陣,每一個行向量的值都是bgbest向量,Bgbest,G代表種群B的第G代最佳個體,也是前G代的最佳個體。下式給出了種群矩陣和全局最佳個體矩陣的定義:
(9)
以經(jīng)典DE算法的角度來看,可以將B視為突變體Vm的矩陣。
Quatre算法相較于其他算法結(jié)構(gòu)更加簡單,更少的控制參數(shù)使得只需要在粒子演化過程中設(shè)置一個步長c[28]。將Quatre算法與PSO算法、DE算法進(jìn)行對比,實(shí)驗(yàn)結(jié)果表明,Quatre算法性能更好,并且在實(shí)際規(guī)模比較大的模型中尤為顯著,迭代速率快,收斂性能好。但是Quatre算法也存在DE算法的通病。迭代后期,Quatre依然容易陷入局部優(yōu)化,導(dǎo)致最后獲得的最優(yōu)解參數(shù)并非全局最優(yōu)[29-30]。
本文在Quatre算法和DMPC模型的基礎(chǔ)上,提出了IQuatre算法。DMPC模型下Bn temp的N代預(yù)測信息中包含下一時刻B(n+1)temp的最優(yōu)控制信息,即上一時刻的最優(yōu)個體bgbset包含了下一時刻b(g+1)best的部分最優(yōu)片段。在生成新種群Btemp之前,將前一時刻具有最優(yōu)方向的個體bgbest替換到新種群中,在新種群中隨機(jī)選擇bk和bk+1兩個個體,比較代價值Fi(n),并替換新種群中表現(xiàn)不佳的個體,可以提高種群迭代趨向于最優(yōu)方向的概率,提高算法的收斂速度,具體的種群優(yōu)化可表示如下:
Bctemp=[b1,b2,…,bk,bk+1,…,bn]
(10)
Bctemp=[b1,b2,…,bgbest,bk+1,…,bn]
(11)
主要流程表述如下。
步驟 1設(shè)置初始化參數(shù),包括步長c和變換矩陣M。
步驟 2生成合適大小的初始種群B1。
步驟 3根據(jù)式(7),生成包含N代預(yù)測的新種群[B1,B2,…,Bn],得到當(dāng)前種群的最優(yōu)個體bgbest和N代預(yù)測值[b2,b3,…,bn]。
步驟 4將N代預(yù)測值代入模型,得到當(dāng)前最優(yōu)個體的代價值bgbest,判斷結(jié)果是否達(dá)到最大迭代次數(shù),或判斷式(3)求得的代價值是否滿足設(shè)定的收斂條件,滿足則跳到步驟6,不滿足則進(jìn)行步驟5。
步驟 5將pbest代入種群B2,隨機(jī)選取兩個個體bk和bk+1,替換代值高的個體bk,形成新的初始種群B1,跳回步驟3。
步驟 6輸出最優(yōu)控制量bgbest。
為了驗(yàn)證本文提出的IQuatre算法的有效性,在Matlab2020軟件環(huán)境下進(jìn)行仿真驗(yàn)證。在仿真實(shí)驗(yàn)1中,分別采用經(jīng)典GA算法、PSO算法、DE算法、Pro-DE算法、Quatre算法和IQuatre算法對5架無人機(jī)編隊(duì)快速集結(jié)進(jìn)行了對比仿真實(shí)驗(yàn);在仿真實(shí)驗(yàn)2中,為了驗(yàn)證本文提出的IQuatre算法對于多編隊(duì)控制的適用性,對15架無人機(jī)編隊(duì)集結(jié)進(jìn)行了仿真;在仿真實(shí)驗(yàn)3中,為了驗(yàn)證本文提出的IQuatre算法對于編隊(duì)控制的整體性,對25架無人機(jī)編隊(duì)多種路徑下的編隊(duì)飛行進(jìn)行了仿真驗(yàn)證,本文所有無人機(jī)均為固定翼無人機(jī)。
5架無人機(jī),依次間隔5 s起飛,在空中集結(jié)成一個“人”字形編隊(duì),前后左右分別相距100 m,如圖1所示。分別采用GA、PSO算法、DE算法、Pro-DE算法、Quatre算法和IQuatre算法進(jìn)行編隊(duì)的起飛集結(jié)仿真,對比不同算法的實(shí)驗(yàn)結(jié)果。
表1為無人機(jī)約束參數(shù)取值范圍,考慮到無人機(jī)存在失速和失控的風(fēng)險,無人機(jī)的最低速度設(shè)定在30 m/s,最高速度不超過50 m/s,無人機(jī)的俯仰角不低于45°,不高于135°,無人機(jī)航向角速度和俯仰角速度均不超過15°。
表1 無人機(jī)約束參數(shù)Table 1 Unmanned aerial vehicle constraint parameters
各個算法的初始參數(shù)設(shè)置取自參考文獻(xiàn),具體參數(shù)如表2所示。圖2為不同算法的5架無人機(jī)編隊(duì)集結(jié)軌跡圖。從圖2可以看出,采用IQuatre算法的無人機(jī)編隊(duì)集結(jié),減少了2號和5號無人機(jī)出現(xiàn)的上下波動情況,較其他傳統(tǒng)DE算法、GA算法、PSO算法提升更加明顯;通過對比無人機(jī)編隊(duì)集結(jié)后的軌跡圖可以看出,采用IQuatre算法的模型,集結(jié)完成后的穩(wěn)定性更好,較原始Quatre算法無人機(jī)最大位置誤差減少了0.42 m。表3為不同算法5架次、15架次、25架次無人機(jī)編隊(duì)集結(jié)計算時間。由表3可以看出,IQuatre算法較Quatre算法至少有約3.4%的提升,較傳統(tǒng)的DE算法、GA算法和PSO算法提升明顯。從表4可以看出,無人機(jī)編隊(duì)集結(jié)完成后,IQuatre算法的最大位置誤差最小為1.62 m,較原Quatre算法提升了0.45 m,較5號無人機(jī)位置誤差表現(xiàn)最優(yōu)的PSO算法提升了0.33 m,無人機(jī)編隊(duì)的穩(wěn)定性更高。圖3為不同算法的平均迭代次數(shù),從圖3可以看出IQuatre算法較其他算法迭代速度更快,大約有5.2%的提升。從圖4第5架無人機(jī)位置誤差圖可以看出,IQuatre算法收斂速度與其他算法相當(dāng),但I(xiàn)Quatre算法誤差更小、更穩(wěn)定。
表2 各算法基礎(chǔ)參數(shù)設(shè)置Table 2 Basic parameters setting of each algorithm
表3 不同算法的多無人機(jī)編隊(duì)集結(jié)計算時間Table 3 Calculation time of multi-unmanned aerial vehicle formations with different algorithms s
表4 不同算法5號無人機(jī)最大位置誤差Table 4 Maximum position error of unmanned aerial vehicle 5 with different algorithms m
通過對不同算法無人機(jī)編隊(duì)各實(shí)驗(yàn)數(shù)據(jù)對比可知,IQuatre算法提高了無人機(jī)編隊(duì)集結(jié)過程的穩(wěn)定性,在保證無人機(jī)編隊(duì)內(nèi)機(jī)間安全距離的前提下,提高了模型迭代速度,極大地減少了計算量和計算時間。
為了驗(yàn)證本文提出的IQuatre算法對于多編隊(duì)無人機(jī)集結(jié)的適用性,增加無人機(jī)個數(shù)。15架無人機(jī)分成3個編隊(duì),依次間隔5 s起飛,前后左右相距100 m,各個小編隊(duì)在空中集結(jié)呈“人”字形,3個小編隊(duì)組成一個大的“人”字形,編隊(duì)隊(duì)形如圖5所示,對無人機(jī)編隊(duì)的起飛集結(jié)進(jìn)行仿真,分析多編隊(duì)情況下IQuatre算法的適用性。
圖6為不同算法15架無人機(jī)編隊(duì)集結(jié)軌跡圖,從圖6可以看到,采用6種算法的編隊(duì)集結(jié)模型基本完成了編隊(duì)集結(jié),但從圖6(a)可以看到,采用IQuatre算法的編隊(duì)集結(jié)穩(wěn)定性更好,有效地減少了其他算法中出現(xiàn)的無人機(jī)小幅度上下波動的情況,這與仿真實(shí)驗(yàn)1中5架無人機(jī)編隊(duì)集結(jié)的情況一致。采用IQuatre算法的集結(jié)模型,在編隊(duì)集結(jié)成形后,無人機(jī)最大期望位置誤差減少到1.7 m,較其他算法提升明顯。圖7為編隊(duì)1與編隊(duì)3距離,從圖7可以看出,編隊(duì)1和編隊(duì)3保持穩(wěn)定的距離,符合期望目標(biāo)。圖8為15號無人機(jī)期望位置誤差圖,在300 s處,無人機(jī)期望位置誤差基本收斂至0,并一直保持在期望位置。
表5為不同算法無人機(jī)編隊(duì)集結(jié)成型后最大位置誤差表,從表中可以看到,采用IQuatre算法的15架無人機(jī)編隊(duì)集結(jié)后最大期望位置誤差為1.7 m,遠(yuǎn)小于其他算法,證明了本文提出的IQuatre算法提高了多無人機(jī)編隊(duì)集結(jié)的穩(wěn)定性。
表5 不同算法無人機(jī)編隊(duì)集結(jié)成型后最大位置誤差表Table 5 Maximum position error of unmanned aerial vehicle after formation assembly with different algorithms m
在仿真實(shí)驗(yàn)1的基礎(chǔ)上,通過對比不同算法15架無人機(jī)編隊(duì)集結(jié)的軌跡圖和位置誤差等實(shí)驗(yàn)數(shù)據(jù)可知,IQuatre算法提高了無人機(jī)編隊(duì)集結(jié)過程的穩(wěn)定性,在多編隊(duì)的情況下依然適用。
為了驗(yàn)證本文提出的IQuatre算法在復(fù)雜路徑中的可行性,改變編隊(duì)的飛行路徑,25架無人機(jī)分成5個編隊(duì),依次間隔5 s起飛,前后左右相距100 m,各個編隊(duì)在空中集結(jié)呈“人”字形,5個小編隊(duì)組成一個大的“人”字形,具體編隊(duì)隊(duì)形如圖9所示。25架無人機(jī)集結(jié)完成后,整個編隊(duì)按照1號無人機(jī)半徑326 m的“s” 形和1號無人機(jī)半徑3 100 m的圓形路徑飛行,通過無人機(jī)編隊(duì)在復(fù)雜路徑上的航跡和誤差對比,分析IQuatre算法的優(yōu)劣。
圖10為25架無人機(jī)從編隊(duì)集結(jié)到編隊(duì)做“s”形和圓形變軌的所有軌跡圖,從圖10可以看出,25架無人機(jī)飛行軌跡基本與主機(jī)的運(yùn)動軌跡吻合,整體飛行軌跡符合預(yù)設(shè)編隊(duì)隊(duì)形,不存在無人機(jī)交叉碰撞的情況。圖11為去除軌跡后部分時間節(jié)點(diǎn)圖,從圖11可以看出,編隊(duì)隊(duì)形集結(jié)完畢后,無論是直線運(yùn)動還是曲線運(yùn)動,無人機(jī)編隊(duì)整體隊(duì)形沒有打亂,始終保持預(yù)設(shè)的“人”字形編隊(duì)。圖12為編隊(duì)3和編隊(duì)5之間最外圍無人機(jī)間的距離圖。從圖12可以看到,整個大編隊(duì)內(nèi)部的兩個小編隊(duì)間距離保持穩(wěn)定,沒有碰撞發(fā)生,始終保持固定的編隊(duì)隊(duì)形。圖13是25號無人機(jī)的期望位置誤差圖,從圖13可以看到,最外圍的25號無人機(jī)在250 s左右時完全追上整個編隊(duì),在追上1號主機(jī)后基本保持在期望位置,無人機(jī)偏離預(yù)期位置的最大誤差不超過8 m。
在仿真實(shí)驗(yàn)1和仿真實(shí)驗(yàn)2的基礎(chǔ)上,通過25架無人機(jī)編隊(duì)多種路徑的仿真實(shí)驗(yàn),驗(yàn)證了本文提出的IQuatre算法確實(shí)能夠完成無人機(jī)編隊(duì)的快速集結(jié),性能較其他算法更加優(yōu)異,編隊(duì)更加穩(wěn)定,在保證編隊(duì)安全的前提下,保持了編隊(duì)的整體性。
本文針對無人機(jī)編隊(duì)集結(jié)的穩(wěn)定性問題進(jìn)行了研究分析,基于DMPC和IQuatre算法建立了無人機(jī)的運(yùn)動模型,利用滾動優(yōu)化的數(shù)學(xué)模型提高了無人機(jī)編隊(duì)的穩(wěn)定性和安全性。首先通過5架無人機(jī)編隊(duì)的集結(jié)實(shí)驗(yàn),對比IQuatre算法與其他5種算法的無人機(jī)集結(jié)情況,驗(yàn)證了本文提出的IQuatre算法的有效性。相比其他算法最外層無人機(jī)的位置誤差,IQuatre算法能夠提高無人機(jī)編隊(duì)集結(jié)的穩(wěn)定性;然后增加無人機(jī)編隊(duì)數(shù)量,驗(yàn)證了本文提出的DMPC和IQuatre算法在多編隊(duì)情況下依然能夠保持編隊(duì)穩(wěn)定;最后通過25架無人機(jī)復(fù)雜路徑下的編隊(duì)集結(jié)與跟隨仿真實(shí)驗(yàn),驗(yàn)證了本文IQuatre算法在復(fù)雜路徑下能夠?qū)崿F(xiàn)編隊(duì)的穩(wěn)定集結(jié)。
IQuatre算法與Quatre算法、Pro-DE算法、GA算法、DE算法和PSO算法對比實(shí)驗(yàn)的數(shù)據(jù)表明,IQuatre算法較原Quatre算法減少了5.2%的平均迭代次數(shù),減少了計算量,在計算時間方面節(jié)約了4.6%,較原Quatre算法最外層無人機(jī)位置誤差提升了最少0.45 m,與其他算法對比最少提升了0.33 m。實(shí)驗(yàn)數(shù)據(jù)表明,基于DMPC與IQuatre算法的無人機(jī)編隊(duì)集結(jié)方法提高了編隊(duì)集結(jié)的穩(wěn)定性,為無人機(jī)編隊(duì)集結(jié)提供了新的方法。