鄭 宇,蔡志浩,王隆洪,趙 江,王英勛
(北京航空航天大學(xué)自動化科學(xué)與電氣工程學(xué)院,北京 100083)
無人機(Unmanned Aerial Vehicles,UAVs)技術(shù)發(fā)展速度快、迭代周期短,尤其是近幾年已經(jīng)廣泛應(yīng)用于軍事和民用領(lǐng)域,如偵察、搜救、森林防火和城市測繪等[1-4]。與單架無人機平臺相比,多無人機協(xié)同飛行在復(fù)雜任務(wù)中具有更好的性能,包括協(xié)同目標(biāo)搜索、救援和戰(zhàn)斗等[5-8],并且在檢測、定位和感知方面具有很多優(yōu)勢,有助于多無人機的任務(wù)分配、空中加油、自組織和重構(gòu)。
多無人機編隊控制的常用方法有一致性理論、主從式策略、基于行為的方法、虛擬結(jié)構(gòu)方法、微分博弈、有限時域控制理論等[9-12]。文獻[13]設(shè)計了一種主從式編隊控制算法,其中領(lǐng)導(dǎo)者被隱式地整合到群體中,并且可以受到來自他們?nèi)后w的導(dǎo)航反饋的影響。文獻[14]基于滑??刂品椒ǎ岢隽艘环N分布式多無人機編隊控制方法。當(dāng)多無人機系統(tǒng)的狀態(tài)在滑模表面時,可以在有限時間內(nèi)實現(xiàn)編隊。文獻[15]提出了基于信鴿分層策略的分布式編隊控制架構(gòu),結(jié)合信鴿群速度相關(guān)、主從交互和分層領(lǐng)導(dǎo)網(wǎng)絡(luò)的優(yōu)點,提出了一種基于高度一致性的控制算法。文獻[16]提出了一種基于虛擬結(jié)構(gòu)和人工勢場方法的避碰控制算法。為了有效地避開障礙物跟蹤運動目標(biāo),設(shè)計了三維空間的主從控制策略。在文獻[17]中提出了一種分布式編隊控制協(xié)議。多無人機系統(tǒng)能夠在有限的時間內(nèi)實現(xiàn)預(yù)期的編隊,并且根據(jù)編隊控制的要求可以預(yù)先指定編隊構(gòu)型。
無人機集群技術(shù)發(fā)展迅速[18-19],其中無人機集群自組網(wǎng)(Ad-hoc)通信系統(tǒng)是一種具有分布式、無中心、自組織、多業(yè)務(wù)、遠距離、精準(zhǔn)定位等顯著技術(shù)特點的動態(tài)自治性局部區(qū)域無線通信網(wǎng)絡(luò)。支持集群中成員的動態(tài)加入和退出,滿足了無人機集群大規(guī)模、高動態(tài)情況下的協(xié)同通信需求,也適用于解決各種復(fù)雜和特殊環(huán)境下的網(wǎng)絡(luò)通信。自組網(wǎng)技術(shù)采用一種不需要基站的對等結(jié)構(gòu)移動通信模式,網(wǎng)絡(luò)中所有聯(lián)網(wǎng)設(shè)備可以在移動過程中動態(tài)組網(wǎng),節(jié)點之間通過無線方式互聯(lián),每個節(jié)點又同時具有終端和路由器的功能。目前Ad-hoc網(wǎng)絡(luò)已經(jīng)成為移動通信領(lǐng)域研究的重點方向,圖1展示了典型Ad-hoc網(wǎng)絡(luò)的結(jié)構(gòu)。
圖1 自組網(wǎng)網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Ad-hoc network structure
有鑒于此,將自組網(wǎng)技術(shù)引入到無人機編隊控制中來,實現(xiàn)多無人機的編隊飛行并提高多無人機編隊飛行過程中的實時性、準(zhǔn)確性、可靠性和全面性。本文主要研究了無人機組隊控制與防撞策略,主要解決無人機編隊的隊形構(gòu)建、保持和重構(gòu),避障策略以及自組網(wǎng)通信等關(guān)鍵技術(shù)問題,對推動多旋翼無人機編隊技術(shù)的發(fā)展具有重要的理論與工程參考價值。
無人機協(xié)同編隊技術(shù)還沒有進行過實際戰(zhàn)場演練,隨著編隊技術(shù)的發(fā)展,不斷完善無人機編隊飛行隊形,其隊形需要借鑒有人機的編隊隊形設(shè)計經(jīng)驗。隊形設(shè)計完成后,通過地面控制站或者機載計算機的控制來進行戰(zhàn)斗任務(wù)的執(zhí)行,在設(shè)計隊形時需要考慮作戰(zhàn)范圍、確保安全距離防止碰撞、增強攻擊與防御、偵察打擊并保護重要目標(biāo)等,同時還要結(jié)合具體的作戰(zhàn)任務(wù)對編隊隊形進行調(diào)整,并且根據(jù)任務(wù)需求增減無人機,都是編隊問題中的難點。
根據(jù)不同的作戰(zhàn)環(huán)境和任務(wù)需求,戰(zhàn)機往往組成不同隊形的編隊:平行編隊主要用于搜索目標(biāo)時擴大搜索范圍;縱向編隊主要用于轟炸、空投、空降以及躲避威脅或者通過狹窄區(qū)域;梯形編隊常用于協(xié)同對地攻擊;三角形編隊常用于巡航和轟炸;五菱形編隊主要用于保護編隊中的重要目標(biāo),如預(yù)警機、加油機等;反向圓弧編隊常用于截擊來襲敵機;箭形編隊主要用于突防、空襲敵方重要目標(biāo)和對敵進行核打擊。在此,主要研究平行編隊、縱向編隊、三角形編隊、梯形編隊和五菱形編隊,這五種隊形在實戰(zhàn)應(yīng)用中具有重要意義。
為了便于編隊隊形的表述,采用[dxdydz]T來表示2架無人機之間的相對位置關(guān)系,其中dx表示縱向距離,dy代表橫向距離,dz表示高度差。本節(jié)以5架六旋翼無人機編排了五種編隊隊形,當(dāng)無人機數(shù)目增加時可以根據(jù)隊形特點進行擴展。需要注意的是,所設(shè)計的隊形只是編隊隊形的示意圖,除緊密編隊飛行外,實際編隊飛行時要按照無人機尺寸、速度以及實際任務(wù)進行閾值的調(diào)整。
(1)平行編隊(圖2)
圖2 平行編隊隊形圖Fig.2 Parallel formation diagram
平行編隊隊形中,無人機橫向一字排開并且處于同一高度,因此dx=dz=0,dy根據(jù)無人機的機載偵查設(shè)備的搜索能力來調(diào)整。
平行編隊主要用于大面積搜索目標(biāo),無人機數(shù)量的增加可以明顯擴大搜索范圍,提高作戰(zhàn)效率。地面站控制中心可以安置在地面,也可以通過多旋翼和直升機等飛行器搭載在空中懸停增大發(fā)射范圍,可以實時監(jiān)督編隊飛行狀態(tài)和任務(wù)執(zhí)行情況。
(2)縱向編隊(圖3)
圖3 垂直編隊隊形圖Fig.3 Vertical formation diagram
縱向編隊隊形中,無人機縱向一字排開并且處于同一高度,因此dy=dz=0,每架飛機的距離根據(jù)當(dāng)前飛行速度下所需要的安全距離來調(diào)整。
縱向編隊主要用于躲避障礙物、轟炸地面目標(biāo)等任務(wù)。當(dāng)無人機編隊在沒有敵方威脅的山區(qū)飛行或者在執(zhí)行作戰(zhàn)任務(wù)需要躲避敵方防空雷達時,可以提高速度快速飛行,一次穿越山峰障礙物,盡快完成轟炸任務(wù),脫離任務(wù)區(qū)域快速返航。
(3)梯形編隊(圖4)
圖4 梯形編隊隊形圖Fig.4 Trapezoidal formation diagram
梯形編隊隊形中,無人機在同一高度上呈階梯狀分布,dz=0,無人機之間的縱向間距dx和橫向距離dy根據(jù)具體的作戰(zhàn)任務(wù)進行調(diào)整。
梯形編隊主要用于攻擊,這種隊形有利于提高攻擊效率增大完成任務(wù)的概率。處于前方的無人機在攻擊目標(biāo)之后對攻擊效果進行評估,如果需要二次攻擊,處于斜后方的無人機可以進行二次攻擊,否則斜后方的無人機可以繼續(xù)執(zhí)行其他任務(wù)。這樣前方的無人機就無需掉頭回來進行二次攻擊,從而節(jié)省了無人機寶貴的續(xù)航時間。通過地面站接收傳感器傳回的信息,實時監(jiān)督每架無人機的飛行狀態(tài)和任務(wù)執(zhí)行情況,必要時可以直接修改無人機的作戰(zhàn)任務(wù)。
(4)三角形編隊(圖5)
圖5 三角形編隊隊形圖Fig.5 Triangle formation diagram
三角形編隊主要用于出航和返航,頭機在編隊最前方為僚機領(lǐng)航,有利于僚機減小燃油消耗,增大航程。為了確保編隊飛行的安全,在編隊到達作戰(zhàn)任務(wù)區(qū)之前根據(jù)作戰(zhàn)任務(wù)指揮將三角形巡航隊形變換為其他隊形。
(5)菱形編隊(圖6)
圖6 菱形編隊隊形圖Fig.6 Prismatic formation diagram
五菱形護航編隊隊形中,無人機在同一高度上呈五菱形分布于各個角落,dz=0,編隊飛機之間的距離dx、dy根據(jù)飛行時所需要的安全距離來調(diào)整。
菱形護航編隊的主要用途為保護重要目標(biāo)的安全。當(dāng)編隊遭遇強于自身的空中力量來襲時,無人機在重要目標(biāo)周圍保護重要目標(biāo)迅速撤離戰(zhàn)場,無人機要吸引敵方來襲導(dǎo)彈,必要時以機身來阻擋來襲導(dǎo)彈,以最大限度地保護重要目標(biāo)。
編隊隊形的集結(jié)、保持、變換以及避碰是本小節(jié)的研究重點,采用地面編隊控制軟件對編隊隊形以及應(yīng)急措施進行決策和處理。
編隊控制主要包括2個部分:1)隊形集結(jié)、組隊與重構(gòu)(圖7);2)隊形保持(圖8)。
圖7 編隊集結(jié)、組隊與重構(gòu)控制流程Fig.7 Control flow of formation aggregation, construction and reconstruction
隊形集結(jié)、組隊與重構(gòu)的主要流程是:當(dāng)?shù)孛婢庩牽刂栖浖盏狡痫w指令后,飛機會從起飛點飛行至集結(jié)點,根據(jù)編隊飛機的當(dāng)前位置和集結(jié)點(目標(biāo)點)來解算出飛機的飛行路徑;到達集結(jié)點后等待地面編隊控制軟件發(fā)出隊形變換指令,同時生成飛行路徑;編隊飛機在收到指令后,會對各自路徑進行跟蹤,飛向各自被分配的目標(biāo)點。運動過程中,編隊中的飛機會把狀態(tài)信息實時反饋給地面站控制中心,根據(jù)反饋信息做出實時調(diào)整。編隊飛機到達目標(biāo)點后,當(dāng)前任務(wù)結(jié)束。
圖8 編隊保持控制流程Fig.8 Control flow of formation maintaining
隊形保持的主要流程是:地面編隊控制軟件不斷計算飛機的當(dāng)前位置,當(dāng)飛機到達目標(biāo)點時,代表變換任務(wù)結(jié)束,飛機在目標(biāo)點進行位置懸停。每架飛機從起始點到目標(biāo)點的路徑長度不一樣,這樣就導(dǎo)致了編隊飛機沒辦法同時間到達;同時有的隊形變換會產(chǎn)生路徑交叉點,觸發(fā)避障功能也會對到達時間有一定的影響。編隊飛機在到達目標(biāo)點后,由于會對控制精度誤差進行實時修正,在修正過程中也會實時生成運動路徑,有利于編隊整體隊形的保持。
蟻群算法(Ant Colony Algorithm,ACA)是解決復(fù)雜優(yōu)化組合問題的新型真演化算法,將ACA應(yīng)用到無人機編隊的路徑規(guī)劃中,需要將每一個可能的路徑規(guī)劃作為一個節(jié)點。要解決這個問題首先要建立多旋翼編隊路徑規(guī)劃的數(shù)學(xué)模型,構(gòu)建矩陣D∈Dn×n,n代表多旋翼飛機的個數(shù),矩陣D中的每一個Dij都是一個單獨的節(jié)點vij,其中i表示隊形重構(gòu)或隊形集結(jié)前的原始位置Si,j表示隊形重構(gòu)或隊形集結(jié)前的新位置Fj,Dij表示從Si飛到Fj所需的代價。矩陣D中有n×n個數(shù)值,因此形成的無向圖有n×n個節(jié)點,節(jié)點之間相互連通。但當(dāng)Dij被選中時,則i行j列的其他節(jié)點將不能再被選擇。因此會有n個不同行不同列的Dij被找到,使得這n個Dij的和最小,即
min∑Dij
(1)
這n個Dij的組合就表示著編隊重構(gòu)或編隊集結(jié)前后每架無人機的位置分配情況。由于本文的對象為多旋翼無人機,機動性強,因此飛機可以從Si按照規(guī)劃出的路徑直線飛到Fj。
上文提到,Dij表示由原來保持的編隊位置Si飛向需要構(gòu)造的編隊隊形位置Fj所需的代價,但是由于剩余目標(biāo)點受以往選擇的節(jié)點所代表的直線的影響,所以本文中的Dij在螞蟻選擇節(jié)點后不斷變化。初始時,只考慮燃油代價為Jfuel,ij=Lij,Lij為vij所代表直線的距離,Dij=Jfuel,ij。當(dāng)螞蟻開始選擇節(jié)點后,需要計算剩余節(jié)點的威脅代價,將剩余節(jié)點的邊與已經(jīng)選擇的邊分為6等分,分別選取7個點計算距離,從而計算威脅代價,即
(2)
其中,Jthreat,ij為威脅代價,d(0)(ij-v)、d(1/6)(ij-v)、d(1/3)(ij-v)、d(1/2)(ij-v)、d(2/3)(ij-v)、d(5/6)(ij-v)、d(1)(ij-v)分別為節(jié)點vij與已選擇的節(jié)點所代表的邊的起點、1/6處、1/3處、1/2處、2/3處、5/6處、終點的距離。綜上所述,vij的選擇代價為J=k1Jthreat,ij+(1-k1)Jfuel,ij,k1值越大表示對威脅代價越重視。若剩余節(jié)點與已選擇節(jié)點交叉,則將此節(jié)點放入禁忌表中,這一步可以杜絕位置分配的路徑交叉問題。
蟻群算法中螞蟻k從節(jié)點vij轉(zhuǎn)到可行節(jié)點vlm的狀態(tài)轉(zhuǎn)移概率公式為
(3)
其中,tlm代表節(jié)點上的信息素濃度;ηlm=1/clm為啟發(fā)函數(shù),clm表示選擇vlm節(jié)點的成本。α、β為信息素因子和啟發(fā)函數(shù)因子,表示了信息素和啟發(fā)函數(shù)對狀態(tài)轉(zhuǎn)移概率的影響的比重。計算的狀態(tài)轉(zhuǎn)移概率越大則該節(jié)點被選中的概率也就越大。
用Nmax表示最大的迭代次數(shù),Nc表示當(dāng)前迭代次數(shù)。利用蟻群算法解決多無人機編隊集結(jié)和編隊重構(gòu)的位置分配問題的具體步驟如下:
1)設(shè)置每個節(jié)點一樣的信息素t0,把禁忌表置為0。
2)設(shè)置算法中的各個參數(shù),將m只螞蟻隨機放置在起點處,當(dāng)前迭代次數(shù)Nc=1。
3)按照上述的狀態(tài)轉(zhuǎn)移概率公式選擇出下一個節(jié)點,當(dāng)螞蟻選中某個節(jié)點vij后,則矩陣中i行j列的其他節(jié)點將不能再被選擇,因此將這些節(jié)點放入禁忌表中。
4)當(dāng)螞蟻選中某個節(jié)點vij后,就更新節(jié)點vij上的信息素濃度
tij=(1-ζ)tij+ζt0,0<ζ<1
(4)
其中,ζ是給定參數(shù)。當(dāng)其中某節(jié)點被選中后,更新該點的信息素濃度,使其他螞蟻選擇其余節(jié)點的概率增加。這樣可以防止出現(xiàn)結(jié)果局部最優(yōu)的結(jié)果
5)當(dāng)所有的m個螞蟻完成n次搜索后,就會出現(xiàn)m種節(jié)點組合,每一個組合都是一種分配方案,每種組合都包含不同行不同列的n個節(jié)點。然后找出這些解中的最優(yōu)解則為此次迭代的最優(yōu)解,記錄下來。
6)尋到此次迭代的最優(yōu)解后,按照式(5)更新所有節(jié)點上的信息素濃度
(5)
7)若規(guī)劃完成,則從所有迭代次數(shù)的最優(yōu)解中找到其中的全局最優(yōu)解,并且記錄下來。
基于ACA的路徑規(guī)劃會使編隊飛機的當(dāng)前位置和目標(biāo)點之間進行配對,如果目標(biāo)點數(shù)量少于當(dāng)前位置飛機的數(shù)量,那就根據(jù)飛機標(biāo)號從小到大的原則,標(biāo)號偏小的飛機執(zhí)行任務(wù),剩余飛機返回集結(jié)點待命。當(dāng)前位置和目標(biāo)點之間的位置配對就生成了編隊飛機的飛行路徑。由于多旋翼飛機具有可懸停的特性,因此當(dāng)?shù)孛嬲究刂浦行陌l(fā)出隊形集結(jié)和隊形變換的指令后,編隊中的各架飛機按照所生成的路徑向目標(biāo)點飛行。因為處在編隊試飛的起步階段,還達不到控制編隊中各架飛機同一時間到達目標(biāo)點,所有飛機的速度指令是相同的,但最終目標(biāo)要達到所有飛機同一時間到達目標(biāo)點,這時候就需要地面站控制中心給編隊中每架飛機都生成相應(yīng)的控制指令。多旋翼無人機的路徑控制的指令由期望的位移給出,當(dāng)調(diào)節(jié)參數(shù)一樣時,給出的期望位移可以決定每架飛機追蹤路徑的前進速度。
多旋翼無人機路徑跟蹤有兩種方式:一種是機頭不發(fā)生航向偏轉(zhuǎn)行為,即無頭模式;另一種是機頭朝向下一個目標(biāo)點飛行的策略,即有頭模式。出于無頭模式可以不發(fā)生航向行為再進行運動可以節(jié)省時間以及隊形保持整齊度考慮,采用無頭模式直接飛往下一個目標(biāo)點的飛行策略,此時在排除了航向傾轉(zhuǎn)行為所消耗的時間后,飛機的前進速度與所選擇的期望位移成正比例關(guān)系
Vi=kLi
(6)
則每架無人機到達期望目標(biāo)點所需時間為
(7)
其中,Di為每架無人機航路的長度,若要使各個無人機同時到達期望位置,則航路越遠的無人機,前進速度就越大。為了避免其余計算的速度指令過大,因此,以航路最遠的無人機為基準(zhǔn)選擇其余無人機的期望位移。控制指令計算的流程如下:首先計算各個無人機的航路長度Di(i=1,2,…,n),選擇其中航路最遠的無人機j,其期望位移選擇為Lj。則其余無人機的期望位移為
(8)
在小范圍編隊中,通過合理的任務(wù)分配和路徑規(guī)劃,很少會出現(xiàn)航跡點重合的現(xiàn)象,當(dāng)然也會出現(xiàn)雙機或者三機路徑重合需要避障策略來完成任務(wù)的情況。在這里引入斥力場函數(shù),通過斥力場函數(shù)的大小來決策飛機相遇之后的運動速度和方向。
傳統(tǒng)的斥力場函數(shù)
(9)
沒有考慮目標(biāo)點與飛機的當(dāng)前位置的相對距離,而且具有目標(biāo)不可達的問題,從而需要建立一個新的斥力場函數(shù)
Urep(q)=
(10)
式中,ρ是2架飛機飛行過程中的最近距離;(X-Xgoal)是觸發(fā)條件的飛機與目標(biāo)點之間的相對距離;ρ0是觸發(fā)閾值條件的最小安全距離;η是一個位置增益函數(shù),與之前提出的斥力場函數(shù)相比,引入了觸發(fā)條件的飛機與目標(biāo)點之間的相對距離,保證了飛機在觸發(fā)避障條件后還能準(zhǔn)確地朝目標(biāo)點飛去,從而保證了不影響其他飛機的航線,引起再次觸發(fā)條件。在觸發(fā)條件范圍內(nèi),斥力場越大,飛機離開觸發(fā)區(qū)的響應(yīng)速度和運動速度越快。
在大規(guī)模編隊試飛中,在多架無人機相遇的情況下,采用平等策略會增加計算量,在工程上有很大挑戰(zhàn)。這時可以采用以編隊無人機的IP大小排序的基于不平等原則的避障策略(圖9),即IP號大的先離開觸發(fā)區(qū)域,其余觸發(fā)條件的飛機讓出當(dāng)前IP大的飛機的飛行軌跡,然后IP小的依次離開,直到所有飛機都離開觸發(fā)區(qū)域,避障策略停止,飛機飛往目標(biāo)點。經(jīng)過試飛驗證,即使在小范圍試飛試驗中,使用該不平等原則的避障策略也可以得到很好的避障效果,避免了在試飛試驗中由于策略過多而導(dǎo)致計算量特別大,也降低了系統(tǒng)判斷觸發(fā)條件的錯誤率,提高了試飛驗證的效率。
圖9 基于不平等原則的避障策略Fig.9 The flow of obstacle avoidance strategy based on unequal principle
編隊軟硬件均采用模塊化設(shè)計的思路,在完成多個多旋翼無人機編隊控制系統(tǒng)的硬件平臺搭建以及編隊控制策略與算法的設(shè)計之后,需要通過試飛測試編隊控制系統(tǒng)的可靠性和穩(wěn)定性。上文所設(shè)計的航跡規(guī)劃、任務(wù)分配以及避碰算法都需要試飛來驗證算法的可行性。編隊飛行控制軟件如圖10所示。
圖10 編隊飛行控制軟件Fig.10 Formation flight control software
整個試飛驗證的任務(wù)剖面圖分為:起飛段、集結(jié)段、任務(wù)完成段、返航段和著陸段,其中任務(wù)完成段包括五種隊形的隊形構(gòu)建飛行、隊形保持飛行、隊形重構(gòu)飛行,以及待命飛機的進出。圖11所示為五種隊形的編隊飛行試驗任務(wù),其中(a)起飛;(b)集結(jié);(c)水平編隊變換;(d)水平編隊保持;(e)垂直編隊變換;(f)三角形編隊變換;(g)三角形編隊保持;(h)梯形編隊變換;(i)梯形編隊保持;(j)棱形編隊變換;(k)棱形編隊保持;(l)編隊返回集結(jié)點并降落。
圖11 五種編隊隊形飛行試驗任務(wù)Fig.11 Five formation flight test mission
圖12 心形編隊Fig.12 Heart-shaped formation
圖13 真實場景下飛行效果Fig.13 Actual flight effect
本文以5架六旋翼無人機為研究對象,重點研究了基于自組網(wǎng)策略的多旋翼無人機隊形組成、隊形保持、隊形重構(gòu)以及飛行過程中的避碰策略:
1)研究了平行編隊、縱向編隊、三角形編隊、梯形編隊和五菱形編隊在實戰(zhàn)應(yīng)用中具有的重要意義,并分析了隊形組成、保持和重構(gòu)的過程。
2)研究了基于ACA的多無人機路徑規(guī)劃算法,并設(shè)計了隊形生成和隊形轉(zhuǎn)換控制指令。
3)設(shè)計了基于不平等原則的多無人機避障策略,該策略根據(jù)相對ID大小依次通過避障觸發(fā)區(qū)域。最后設(shè)計了數(shù)據(jù)閉環(huán)的地面編隊控制軟件,并進行真實場景下的試飛驗證,試飛結(jié)果表明本文提出的基于自組網(wǎng)策略的多旋翼無人機隊形組成、隊形保持、隊形重構(gòu)以及飛行過程中的避碰策略具有很好的工程經(jīng)驗指導(dǎo)。