鄭 宇,蔡志浩,王隆洪,趙 江,王英勛
(北京航空航天大學自動化科學與電氣工程學院,北京 100083)
無人機(Unmanned Aerial Vehicles,UAVs)技術發展速度快、迭代周期短,尤其是近幾年已經廣泛應用于軍事和民用領域,如偵察、搜救、森林防火和城市測繪等[1-4]。與單架無人機平臺相比,多無人機協同飛行在復雜任務中具有更好的性能,包括協同目標搜索、救援和戰斗等[5-8],并且在檢測、定位和感知方面具有很多優勢,有助于多無人機的任務分配、空中加油、自組織和重構。
多無人機編隊控制的常用方法有一致性理論、主從式策略、基于行為的方法、虛擬結構方法、微分博弈、有限時域控制理論等[9-12]。文獻[13]設計了一種主從式編隊控制算法,其中領導者被隱式地整合到群體中,并且可以受到來自他們群體的導航反饋的影響。文獻[14]基于滑模控制方法,提出了一種分布式多無人機編隊控制方法。當多無人機系統的狀態在滑模表面時,可以在有限時間內實現編隊。文獻[15]提出了基于信鴿分層策略的分布式編隊控制架構,結合信鴿群速度相關、主從交互和分層領導網絡的優點,提出了一種基于高度一致性的控制算法。文獻[16]提出了一種基于虛擬結構和人工勢場方法的避碰控制算法。為了有效地避開障礙物跟蹤運動目標,設計了三維空間的主從控制策略。在文獻[17]中提出了一種分布式編隊控制協議。多無人機系統能夠在有限的時間內實現預期的編隊,并且根據編隊控制的要求可以預先指定編隊構型。
無人機集群技術發展迅速[18-19],其中無人機集群自組網(Ad-hoc)通信系統是一種具有分布式、無中心、自組織、多業務、遠距離、精準定位等顯著技術特點的動態自治性局部區域無線通信網絡。支持集群中成員的動態加入和退出,滿足了無人機集群大規模、高動態情況下的協同通信需求,也適用于解決各種復雜和特殊環境下的網絡通信。自組網技術采用一種不需要基站的對等結構移動通信模式,網絡中所有聯網設備可以在移動過程中動態組網,節點之間通過無線方式互聯,每個節點又同時具有終端和路由器的功能。目前Ad-hoc網絡已經成為移動通信領域研究的重點方向,圖1展示了典型Ad-hoc網絡的結構。

圖1 自組網網絡結構Fig.1 Ad-hoc network structure
有鑒于此,將自組網技術引入到無人機編隊控制中來,實現多無人機的編隊飛行并提高多無人機編隊飛行過程中的實時性、準確性、可靠性和全面性。本文主要研究了無人機組隊控制與防撞策略,主要解決無人機編隊的隊形構建、保持和重構,避障策略以及自組網通信等關鍵技術問題,對推動多旋翼無人機編隊技術的發展具有重要的理論與工程參考價值。
無人機協同編隊技術還沒有進行過實際戰場演練,隨著編隊技術的發展,不斷完善無人機編隊飛行隊形,其隊形需要借鑒有人機的編隊隊形設計經驗。隊形設計完成后,通過地面控制站或者機載計算機的控制來進行戰斗任務的執行,在設計隊形時需要考慮作戰范圍、確保安全距離防止碰撞、增強攻擊與防御、偵察打擊并保護重要目標等,同時還要結合具體的作戰任務對編隊隊形進行調整,并且根據任務需求增減無人機,都是編隊問題中的難點。
根據不同的作戰環境和任務需求,戰機往往組成不同隊形的編隊:平行編隊主要用于搜索目標時擴大搜索范圍;縱向編隊主要用于轟炸、空投、空降以及躲避威脅或者通過狹窄區域;梯形編隊常用于協同對地攻擊;三角形編隊常用于巡航和轟炸;五菱形編隊主要用于保護編隊中的重要目標,如預警機、加油機等;反向圓弧編隊常用于截擊來襲敵機;箭形編隊主要用于突防、空襲敵方重要目標和對敵進行核打擊。在此,主要研究平行編隊、縱向編隊、三角形編隊、梯形編隊和五菱形編隊,這五種隊形在實戰應用中具有重要意義。
為了便于編隊隊形的表述,采用[dxdydz]T來表示2架無人機之間的相對位置關系,其中dx表示縱向距離,dy代表橫向距離,dz表示高度差。本節以5架六旋翼無人機編排了五種編隊隊形,當無人機數目增加時可以根據隊形特點進行擴展。需要注意的是,所設計的隊形只是編隊隊形的示意圖,除緊密編隊飛行外,實際編隊飛行時要按照無人機尺寸、速度以及實際任務進行閾值的調整。
(1)平行編隊(圖2)

圖2 平行編隊隊形圖Fig.2 Parallel formation diagram
平行編隊隊形中,無人機橫向一字排開并且處于同一高度,因此dx=dz=0,dy根據無人機的機載偵查設備的搜索能力來調整。
平行編隊主要用于大面積搜索目標,無人機數量的增加可以明顯擴大搜索范圍,提高作戰效率。地面站控制中心可以安置在地面,也可以通過多旋翼和直升機等飛行器搭載在空中懸停增大發射范圍,可以實時監督編隊飛行狀態和任務執行情況。
(2)縱向編隊(圖3)

圖3 垂直編隊隊形圖Fig.3 Vertical formation diagram
縱向編隊隊形中,無人機縱向一字排開并且處于同一高度,因此dy=dz=0,每架飛機的距離根據當前飛行速度下所需要的安全距離來調整。
縱向編隊主要用于躲避障礙物、轟炸地面目標等任務。當無人機編隊在沒有敵方威脅的山區飛行或者在執行作戰任務需要躲避敵方防空雷達時,可以提高速度快速飛行,一次穿越山峰障礙物,盡快完成轟炸任務,脫離任務區域快速返航。
(3)梯形編隊(圖4)

圖4 梯形編隊隊形圖Fig.4 Trapezoidal formation diagram
梯形編隊隊形中,無人機在同一高度上呈階梯狀分布,dz=0,無人機之間的縱向間距dx和橫向距離dy根據具體的作戰任務進行調整。
梯形編隊主要用于攻擊,這種隊形有利于提高攻擊效率增大完成任務的概率。處于前方的無人機在攻擊目標之后對攻擊效果進行評估,如果需要二次攻擊,處于斜后方的無人機可以進行二次攻擊,否則斜后方的無人機可以繼續執行其他任務。這樣前方的無人機就無需掉頭回來進行二次攻擊,從而節省了無人機寶貴的續航時間。通過地面站接收傳感器傳回的信息,實時監督每架無人機的飛行狀態和任務執行情況,必要時可以直接修改無人機的作戰任務。
(4)三角形編隊(圖5)

圖5 三角形編隊隊形圖Fig.5 Triangle formation diagram

三角形編隊主要用于出航和返航,頭機在編隊最前方為僚機領航,有利于僚機減小燃油消耗,增大航程。為了確保編隊飛行的安全,在編隊到達作戰任務區之前根據作戰任務指揮將三角形巡航隊形變換為其他隊形。
(5)菱形編隊(圖6)

圖6 菱形編隊隊形圖Fig.6 Prismatic formation diagram
五菱形護航編隊隊形中,無人機在同一高度上呈五菱形分布于各個角落,dz=0,編隊飛機之間的距離dx、dy根據飛行時所需要的安全距離來調整。
菱形護航編隊的主要用途為保護重要目標的安全。當編隊遭遇強于自身的空中力量來襲時,無人機在重要目標周圍保護重要目標迅速撤離戰場,無人機要吸引敵方來襲導彈,必要時以機身來阻擋來襲導彈,以最大限度地保護重要目標。
編隊隊形的集結、保持、變換以及避碰是本小節的研究重點,采用地面編隊控制軟件對編隊隊形以及應急措施進行決策和處理。
編隊控制主要包括2個部分:1)隊形集結、組隊與重構(圖7);2)隊形保持(圖8)。

圖7 編隊集結、組隊與重構控制流程Fig.7 Control flow of formation aggregation, construction and reconstruction
隊形集結、組隊與重構的主要流程是:當地面編隊控制軟件收到起飛指令后,飛機會從起飛點飛行至集結點,根據編隊飛機的當前位置和集結點(目標點)來解算出飛機的飛行路徑;到達集結點后等待地面編隊控制軟件發出隊形變換指令,同時生成飛行路徑;編隊飛機在收到指令后,會對各自路徑進行跟蹤,飛向各自被分配的目標點。運動過程中,編隊中的飛機會把狀態信息實時反饋給地面站控制中心,根據反饋信息做出實時調整。編隊飛機到達目標點后,當前任務結束。

圖8 編隊保持控制流程Fig.8 Control flow of formation maintaining
隊形保持的主要流程是:地面編隊控制軟件不斷計算飛機的當前位置,當飛機到達目標點時,代表變換任務結束,飛機在目標點進行位置懸停。每架飛機從起始點到目標點的路徑長度不一樣,這樣就導致了編隊飛機沒辦法同時間到達;同時有的隊形變換會產生路徑交叉點,觸發避障功能也會對到達時間有一定的影響。編隊飛機在到達目標點后,由于會對控制精度誤差進行實時修正,在修正過程中也會實時生成運動路徑,有利于編隊整體隊形的保持。
蟻群算法(Ant Colony Algorithm,ACA)是解決復雜優化組合問題的新型真演化算法,將ACA應用到無人機編隊的路徑規劃中,需要將每一個可能的路徑規劃作為一個節點。要解決這個問題首先要建立多旋翼編隊路徑規劃的數學模型,構建矩陣D∈Dn×n,n代表多旋翼飛機的個數,矩陣D中的每一個Dij都是一個單獨的節點vij,其中i表示隊形重構或隊形集結前的原始位置Si,j表示隊形重構或隊形集結前的新位置Fj,Dij表示從Si飛到Fj所需的代價。矩陣D中有n×n個數值,因此形成的無向圖有n×n個節點,節點之間相互連通。但當Dij被選中時,則i行j列的其他節點將不能再被選擇。因此會有n個不同行不同列的Dij被找到,使得這n個Dij的和最小,即
min∑Dij
(1)
這n個Dij的組合就表示著編隊重構或編隊集結前后每架無人機的位置分配情況。由于本文的對象為多旋翼無人機,機動性強,因此飛機可以從Si按照規劃出的路徑直線飛到Fj。
上文提到,Dij表示由原來保持的編隊位置Si飛向需要構造的編隊隊形位置Fj所需的代價,但是由于剩余目標點受以往選擇的節點所代表的直線的影響,所以本文中的Dij在螞蟻選擇節點后不斷變化。初始時,只考慮燃油代價為Jfuel,ij=Lij,Lij為vij所代表直線的距離,Dij=Jfuel,ij。當螞蟻開始選擇節點后,需要計算剩余節點的威脅代價,將剩余節點的邊與已經選擇的邊分為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)分別為節點vij與已選擇的節點所代表的邊的起點、1/6處、1/3處、1/2處、2/3處、5/6處、終點的距離。綜上所述,vij的選擇代價為J=k1Jthreat,ij+(1-k1)Jfuel,ij,k1值越大表示對威脅代價越重視。若剩余節點與已選擇節點交叉,則將此節點放入禁忌表中,這一步可以杜絕位置分配的路徑交叉問題。
蟻群算法中螞蟻k從節點vij轉到可行節點vlm的狀態轉移概率公式為
(3)
其中,tlm代表節點上的信息素濃度;ηlm=1/clm為啟發函數,clm表示選擇vlm節點的成本。α、β為信息素因子和啟發函數因子,表示了信息素和啟發函數對狀態轉移概率的影響的比重。計算的狀態轉移概率越大則該節點被選中的概率也就越大。
用Nmax表示最大的迭代次數,Nc表示當前迭代次數。利用蟻群算法解決多無人機編隊集結和編隊重構的位置分配問題的具體步驟如下:
1)設置每個節點一樣的信息素t0,把禁忌表置為0。
2)設置算法中的各個參數,將m只螞蟻隨機放置在起點處,當前迭代次數Nc=1。
3)按照上述的狀態轉移概率公式選擇出下一個節點,當螞蟻選中某個節點vij后,則矩陣中i行j列的其他節點將不能再被選擇,因此將這些節點放入禁忌表中。
4)當螞蟻選中某個節點vij后,就更新節點vij上的信息素濃度
tij=(1-ζ)tij+ζt0,0<ζ<1
(4)
其中,ζ是給定參數。當其中某節點被選中后,更新該點的信息素濃度,使其他螞蟻選擇其余節點的概率增加。這樣可以防止出現結果局部最優的結果
5)當所有的m個螞蟻完成n次搜索后,就會出現m種節點組合,每一個組合都是一種分配方案,每種組合都包含不同行不同列的n個節點。然后找出這些解中的最優解則為此次迭代的最優解,記錄下來。
6)尋到此次迭代的最優解后,按照式(5)更新所有節點上的信息素濃度
(5)

7)若規劃完成,則從所有迭代次數的最優解中找到其中的全局最優解,并且記錄下來。
基于ACA的路徑規劃會使編隊飛機的當前位置和目標點之間進行配對,如果目標點數量少于當前位置飛機的數量,那就根據飛機標號從小到大的原則,標號偏小的飛機執行任務,剩余飛機返回集結點待命。當前位置和目標點之間的位置配對就生成了編隊飛機的飛行路徑。由于多旋翼飛機具有可懸停的特性,因此當地面站控制中心發出隊形集結和隊形變換的指令后,編隊中的各架飛機按照所生成的路徑向目標點飛行。因為處在編隊試飛的起步階段,還達不到控制編隊中各架飛機同一時間到達目標點,所有飛機的速度指令是相同的,但最終目標要達到所有飛機同一時間到達目標點,這時候就需要地面站控制中心給編隊中每架飛機都生成相應的控制指令。多旋翼無人機的路徑控制的指令由期望的位移給出,當調節參數一樣時,給出的期望位移可以決定每架飛機追蹤路徑的前進速度。
多旋翼無人機路徑跟蹤有兩種方式:一種是機頭不發生航向偏轉行為,即無頭模式;另一種是機頭朝向下一個目標點飛行的策略,即有頭模式。出于無頭模式可以不發生航向行為再進行運動可以節省時間以及隊形保持整齊度考慮,采用無頭模式直接飛往下一個目標點的飛行策略,此時在排除了航向傾轉行為所消耗的時間后,飛機的前進速度與所選擇的期望位移成正比例關系
Vi=kLi
(6)
則每架無人機到達期望目標點所需時間為
(7)
其中,Di為每架無人機航路的長度,若要使各個無人機同時到達期望位置,則航路越遠的無人機,前進速度就越大。為了避免其余計算的速度指令過大,因此,以航路最遠的無人機為基準選擇其余無人機的期望位移。控制指令計算的流程如下:首先計算各個無人機的航路長度Di(i=1,2,…,n),選擇其中航路最遠的無人機j,其期望位移選擇為Lj。則其余無人機的期望位移為
(8)
在小范圍編隊中,通過合理的任務分配和路徑規劃,很少會出現航跡點重合的現象,當然也會出現雙機或者三機路徑重合需要避障策略來完成任務的情況。在這里引入斥力場函數,通過斥力場函數的大小來決策飛機相遇之后的運動速度和方向。
傳統的斥力場函數
(9)
沒有考慮目標點與飛機的當前位置的相對距離,而且具有目標不可達的問題,從而需要建立一個新的斥力場函數
Urep(q)=
(10)
式中,ρ是2架飛機飛行過程中的最近距離;(X-Xgoal)是觸發條件的飛機與目標點之間的相對距離;ρ0是觸發閾值條件的最小安全距離;η是一個位置增益函數,與之前提出的斥力場函數相比,引入了觸發條件的飛機與目標點之間的相對距離,保證了飛機在觸發避障條件后還能準確地朝目標點飛去,從而保證了不影響其他飛機的航線,引起再次觸發條件。在觸發條件范圍內,斥力場越大,飛機離開觸發區的響應速度和運動速度越快。
在大規模編隊試飛中,在多架無人機相遇的情況下,采用平等策略會增加計算量,在工程上有很大挑戰。這時可以采用以編隊無人機的IP大小排序的基于不平等原則的避障策略(圖9),即IP號大的先離開觸發區域,其余觸發條件的飛機讓出當前IP大的飛機的飛行軌跡,然后IP小的依次離開,直到所有飛機都離開觸發區域,避障策略停止,飛機飛往目標點。經過試飛驗證,即使在小范圍試飛試驗中,使用該不平等原則的避障策略也可以得到很好的避障效果,避免了在試飛試驗中由于策略過多而導致計算量特別大,也降低了系統判斷觸發條件的錯誤率,提高了試飛驗證的效率。

圖9 基于不平等原則的避障策略Fig.9 The flow of obstacle avoidance strategy based on unequal principle
編隊軟硬件均采用模塊化設計的思路,在完成多個多旋翼無人機編隊控制系統的硬件平臺搭建以及編隊控制策略與算法的設計之后,需要通過試飛測試編隊控制系統的可靠性和穩定性。上文所設計的航跡規劃、任務分配以及避碰算法都需要試飛來驗證算法的可行性。編隊飛行控制軟件如圖10所示。

圖10 編隊飛行控制軟件Fig.10 Formation flight control software
整個試飛驗證的任務剖面圖分為:起飛段、集結段、任務完成段、返航段和著陸段,其中任務完成段包括五種隊形的隊形構建飛行、隊形保持飛行、隊形重構飛行,以及待命飛機的進出。圖11所示為五種隊形的編隊飛行試驗任務,其中(a)起飛;(b)集結;(c)水平編隊變換;(d)水平編隊保持;(e)垂直編隊變換;(f)三角形編隊變換;(g)三角形編隊保持;(h)梯形編隊變換;(i)梯形編隊保持;(j)棱形編隊變換;(k)棱形編隊保持;(l)編隊返回集結點并降落。

圖11 五種編隊隊形飛行試驗任務Fig.11 Five formation flight test mission

圖12 心形編隊Fig.12 Heart-shaped formation

圖13 真實場景下飛行效果Fig.13 Actual flight effect
本文以5架六旋翼無人機為研究對象,重點研究了基于自組網策略的多旋翼無人機隊形組成、隊形保持、隊形重構以及飛行過程中的避碰策略:
1)研究了平行編隊、縱向編隊、三角形編隊、梯形編隊和五菱形編隊在實戰應用中具有的重要意義,并分析了隊形組成、保持和重構的過程。
2)研究了基于ACA的多無人機路徑規劃算法,并設計了隊形生成和隊形轉換控制指令。
3)設計了基于不平等原則的多無人機避障策略,該策略根據相對ID大小依次通過避障觸發區域。最后設計了數據閉環的地面編隊控制軟件,并進行真實場景下的試飛驗證,試飛結果表明本文提出的基于自組網策略的多旋翼無人機隊形組成、隊形保持、隊形重構以及飛行過程中的避碰策略具有很好的工程經驗指導。