張佳龍,閆建國,張普,王奔馳
(1.西北工業(yè)大學(xué)自動化學(xué)院,710129,西安;2.空軍工程大學(xué)航空工程學(xué)院,710038,西安)
相比單機(jī)而言,多無人機(jī)編隊(duì)具有很多顯著的優(yōu)勢,其在軍事領(lǐng)域續(xù)航時間長、作戰(zhàn)半徑大、偵查范圍廣、作戰(zhàn)效率高、搜索能力強(qiáng)等,在民用領(lǐng)域可噴灑農(nóng)藥、航拍、地形勘測以及空中加油等,因此受到很多學(xué)者的關(guān)注,成為研究的熱點(diǎn)[1]。目前,在航跡規(guī)劃[2-4]、協(xié)同編隊(duì)控制、信息共享和融合[5-7]以及避障等方面的研究已取得了一些明顯的成果,但大多數(shù)研究均是基于理論層面展開的,本文主要針對無人機(jī)編隊(duì)避障方面展開理論研究。
無人機(jī)編隊(duì)飛行,安全問題是首要考慮的關(guān)鍵因素之一,避障研究就顯得尤為重要。近年來,針對多無人機(jī)編隊(duì)飛行避障問題已提出許多控制算法,取得了良好的控制效果??刂票苷纤惴ù笾路譃榛趦?yōu)化的方法和基于規(guī)則的方法兩類?;趦?yōu)化的方法采用模型預(yù)測控制(MPC)[8];基于規(guī)則的方法以人工勢場為理論基礎(chǔ)[9-10]。人工勢場方法不僅應(yīng)用于無人機(jī)避障,還拓展到了自適應(yīng)機(jī)器人導(dǎo)航,其基本原理是在設(shè)定的復(fù)合場中人工勢場力沿負(fù)梯度方向移動,本文基于這一原理,提出一種人工勢場避障方法,應(yīng)用于無人機(jī)編隊(duì)控制。本文所提出的基于一致性算法對于單機(jī)和三機(jī)模型同樣簡化處理,主要突出算法無人機(jī)在三維空間中協(xié)同編隊(duì)避障控制方面的優(yōu)勢,確保3架無人機(jī)組成的編隊(duì)能夠收斂于長機(jī)所設(shè)定的運(yùn)動軌跡,同時在編隊(duì)中靠近障礙物內(nèi)側(cè)的無人機(jī)與障礙物保持安全距離,即相對距離誤差收斂到較小的穩(wěn)定值。本文的控制目標(biāo)為3架無人機(jī)構(gòu)成的正三角編隊(duì)隊(duì)形,無人機(jī)之間的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)由已有文獻(xiàn)中的單向連接拓展為雙向連接,一方面每架無人機(jī)安裝有位置和姿態(tài)控制器,長機(jī)在既定的軌跡飛行,將編隊(duì)的飛行信息發(fā)送至兩僚機(jī),僚機(jī)根據(jù)指令快速追蹤長機(jī),形成正三角形編隊(duì),防止與障礙物發(fā)生碰撞;另一方面,運(yùn)用人工勢場的方法模擬電勢場,3架無人機(jī)構(gòu)成三角形編隊(duì),每架無人機(jī)處于動態(tài)平衡,一旦它們之間的相對距離小于平衡狀態(tài)的距離就會發(fā)生排斥,而它們之間的相對距離大于平衡狀態(tài)的距離就會吸引,使得無人機(jī)之間避免發(fā)生碰撞,達(dá)到避障的目的,同時確保編隊(duì)按照既定的隊(duì)形飛行。
文獻(xiàn)[11]中無人機(jī)編隊(duì)僅在水平面按照期望軌跡飛行,沒有在三維空間做編隊(duì)飛行,而本文控制算法能夠有效地在垂直方向避障,比前人提出的算法更加完善和靈活。將本文提出的基于一致性協(xié)同控制算法和應(yīng)用人工勢場的方法應(yīng)用到無人機(jī)編隊(duì)中,能夠同時在水平面和垂直方向進(jìn)行有效避障。
對于多無人機(jī)的協(xié)同編隊(duì)飛行,將一致性算法植入無人機(jī)控制器中[12-14],可有效避免無人機(jī)之間以及無人機(jī)與障礙物之間碰撞。下面采用雙向網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)建立三機(jī)編隊(duì)系統(tǒng)模型。
圖論是多無人機(jī)編隊(duì)建模的數(shù)學(xué)工具,其中包含有向生成樹,在樹形結(jié)構(gòu)雙向拓?fù)渚W(wǎng)絡(luò)連接中,任意兩點(diǎn)之間不產(chǎn)生閉合回路,每個無人機(jī)可以雙向傳輸各自的信息,實(shí)現(xiàn)分層管理。它的優(yōu)點(diǎn)是擴(kuò)充方便、靈活,易推廣到多無人機(jī)編隊(duì),可靠性高。在無人機(jī)編隊(duì)避障過程中,長機(jī)在前,僚機(jī)在后,長機(jī)按照期望的路徑飛行,同時將飛行姿態(tài)和位置指令發(fā)送至僚機(jī),僚機(jī)按照長機(jī)的指令飛行。在此過程中,長機(jī)將飛行指令發(fā)送至僚機(jī),僚機(jī)接收指令調(diào)整姿態(tài)反饋至長機(jī),同時僚機(jī)之間也通過信息交互,保持相對位置不變,這些都是雙向拓?fù)渚W(wǎng)絡(luò)連接,使得避障的可靠性增加。無人機(jī)編隊(duì)雙向網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 無人機(jī)編隊(duì)雙向網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
由圖1可以看出,長機(jī)和兩架僚機(jī)以及僚機(jī)之間的通信均為雙向,即路徑1、路徑2和路徑3都是雙向通信。多無人機(jī)在編隊(duì)飛行、避障以及空中加油過程中,雙向通信有利于無人機(jī)編隊(duì)協(xié)同飛行完成各項(xiàng)任務(wù)。同時,當(dāng)編隊(duì)中無人機(jī)數(shù)目擴(kuò)充到N(N>3)架時,穩(wěn)定性和可靠性均能得到改善。
在3架無人機(jī)編隊(duì)系統(tǒng)執(zhí)行一次作戰(zhàn)任務(wù)過程中,2架僚機(jī)之間、僚機(jī)與長機(jī)之間以及3架無人機(jī)與運(yùn)動障礙物之間均未發(fā)生碰撞,且按照正三角形編隊(duì)飛行,都能夠收斂于時變的預(yù)期軌跡飛行,而時變預(yù)期軌跡由編隊(duì)的隊(duì)形決定,即長機(jī)所設(shè)定的軌跡。3架無人機(jī)構(gòu)成的編隊(duì)系統(tǒng),以長機(jī)為領(lǐng)航,兩僚機(jī)按照長機(jī)發(fā)送的指令追蹤直到集結(jié)為正三角形編隊(duì)隊(duì)形。為了能夠更好地控制無人機(jī)編隊(duì)以正三角形編隊(duì)飛行,做以下兩點(diǎn)假設(shè):
(1)在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,每架無人機(jī)均能夠接受來自長機(jī)發(fā)出的指令,同時兩僚機(jī)之間通訊也是暢通的,除此之外,在三機(jī)編隊(duì)模型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中,任意兩機(jī)之間是雙向聯(lián)系;
(2)長機(jī)的運(yùn)動不依賴任何僚機(jī),即長機(jī)運(yùn)動不受任意一架僚機(jī)的影響,按照設(shè)定的軌跡飛行。
多無人機(jī)編隊(duì)飛行時,為了防止機(jī)群之間以及單機(jī)與障礙物之間發(fā)生碰撞,避障方法顯得尤為重要。本文同時采用“長機(jī)-僚機(jī)”控制策略和人工勢場方法來防止無人機(jī)之間,以及無人機(jī)與障礙物之間發(fā)生碰撞。
在編隊(duì)中,采用“長機(jī)-僚機(jī)”模型可以實(shí)現(xiàn)機(jī)動的靈活性和可控性,其控制模型如圖2所示。長機(jī)獲得地面指揮部發(fā)出的指令后,按照預(yù)期軌跡飛行,兩僚機(jī)保持與長機(jī)的相對距離和方向不變。在編隊(duì)中,考慮數(shù)據(jù)傳輸過載,使用雙向拓?fù)浣Y(jié)構(gòu),而且每架無人機(jī)都被定義,長機(jī)與僚機(jī)以及兩僚機(jī)之間進(jìn)行時效性通訊,這將有效地防止因通訊數(shù)據(jù)過大導(dǎo)致多無人機(jī)之間發(fā)生信息傳輸堵塞的現(xiàn)象。
圖2 “長機(jī)-僚機(jī)”控制模式示意圖
根據(jù)以上分析,詳細(xì)的控制框圖如圖3所示。為了控制無人機(jī)編隊(duì)按照預(yù)期軌跡飛行,提出內(nèi)外環(huán)兼容控制的兩種控制方案。外環(huán)的主要任務(wù)是控制每架無人機(jī)的位置、姿態(tài)、前行速度以及預(yù)期設(shè)定的軌跡?;谕猸h(huán)產(chǎn)生的控制指令,內(nèi)環(huán)接受指令產(chǎn)生舵偏,副翼指令使無人機(jī)按照預(yù)期的高度飛行。本文集中于編隊(duì)控制,避免無人機(jī)之間發(fā)生碰撞,內(nèi)環(huán)不作詳細(xì)討論,外環(huán)采用一致性算法。
圖3 “長機(jī)-僚機(jī)”控制框圖
在無人機(jī)編隊(duì)系統(tǒng)中,由于3架無人機(jī)構(gòu)成正三角形隊(duì)形,兩僚機(jī)與長機(jī)具有對稱性,因此選擇任意一架僚機(jī)(下文簡稱僚機(jī))與長機(jī)作為研究對象,其編隊(duì)飛行避障示意圖如圖4所示。
圖4 編隊(duì)飛行避障示意圖
為了防止無人機(jī)之間發(fā)生碰撞,設(shè)定任意一架無人機(jī)的安全區(qū)域?yàn)橐蚤L機(jī)的質(zhì)心為圓心、r為半徑、Δh為高度的圓柱體范圍。無人機(jī)在各自的安全區(qū)域內(nèi)飛行,如果它們之間的安全區(qū)域發(fā)生重疊,此時應(yīng)該采取規(guī)避機(jī)動,直到避開重疊區(qū)域。垂直方向僚機(jī)和長機(jī)的相對高度h與水平方向它們之間的相對距離lr的關(guān)系為
(1)
(2)
式中:rr、ra分別為機(jī)體坐標(biāo)系和慣性坐標(biāo)系下長機(jī)與僚機(jī)之間的距離;rl、rf分別為長機(jī)、僚機(jī)在機(jī)體坐標(biāo)系中的位置。僚機(jī)與長機(jī)之間的人工勢場為
(3)
式中:Kh∈R是一個正實(shí)數(shù)的增益。由上式可知,如果僚機(jī)與長機(jī)在垂直方向互相遠(yuǎn)離,則人工勢場減小,反之增大;如果僚機(jī)與長機(jī)的安全區(qū)域沒有重疊,則人工勢場為零。
由式(3)可得僚機(jī)與長機(jī)之間的平均勢場為
(4)
由式(4)可知,在多無人機(jī)編隊(duì)中,每架無人機(jī)產(chǎn)生的人工勢場總和為
(5)
針對本文的三機(jī)編隊(duì)系統(tǒng),它們之間的人工勢場總和為
(6)
為防止僚機(jī)與長機(jī)發(fā)生碰撞,提出人工勢場力如下
fcai=-hUc,i∈{1,2,…,N}
(7)
式(7)沒有局部極小值,由于重疊區(qū)域內(nèi)復(fù)合場僅由斥力場組成,其矢量形式如下
fca=-
(8)
人工勢場力沿著負(fù)梯度方向移動,即削弱這種場強(qiáng)作用,因此它的作用是使兩無人機(jī)之間的垂直距離范圍變大,達(dá)到避障的目的。
無人機(jī)編隊(duì)在整個飛行過程中,3架無人機(jī)構(gòu)成的正三角形編隊(duì)隊(duì)形保持固定不變,且它們具有相同的前行速度,共同的姿態(tài),共處于一個平面內(nèi),基于“長機(jī)-僚機(jī)”控制策略和人工勢場避障方法,編隊(duì)系統(tǒng)可以簡化為一個剛性質(zhì)點(diǎn),同時圓柱形障礙物可以簡化為一個圓,則無人機(jī)編隊(duì)系統(tǒng)避障問題可以簡化成一個質(zhì)點(diǎn)繞過一個圓,且不與之相切。不論障礙物是靜止還是運(yùn)動,質(zhì)點(diǎn)與圓的相對關(guān)系要確保是相切或是相離,以避免發(fā)生碰撞,其示意圖如圖5所示。
O表示無人機(jī)系統(tǒng);O1表示障礙物幾何中心;L1、L2分別表示無人機(jī)系統(tǒng)在t1、t2兩個時刻的軌跡圖5 無人機(jī)避障示意圖
無人機(jī)系統(tǒng)與障礙物之間的關(guān)系為
|d-Ro|≥0
(9)
式中:Ro為障礙物的半徑;d為無人機(jī)在軌跡L1上與障礙物中心的相對距離。
地面指揮部控制編隊(duì)滿足式(9)的關(guān)系,即可避免無人機(jī)編隊(duì)與障礙物發(fā)生碰撞,實(shí)現(xiàn)避障目的。
3架無人機(jī)構(gòu)成的編隊(duì)系統(tǒng)組成被控對象,即控制目標(biāo),針對控制目標(biāo)之間在三維空間編隊(duì)飛行的避障,采用控制算法在水平面和垂直方向進(jìn)行有效控制[15]。為了在無人機(jī)之間進(jìn)行有效的避障,采用一致性算法使無人機(jī)編隊(duì)之間在垂直方向采取規(guī)避機(jī)動,而在水平面按照控制指令進(jìn)行正三角形編隊(duì)飛行。本節(jié)主要考慮采用一致性算法在垂直方向且障礙物是運(yùn)動情形下的避障研究。
無人機(jī)在垂直方向編隊(duì)飛行時,可將被控對象分為兩類:一是3架無人機(jī)構(gòu)成編隊(duì)系統(tǒng)作為控制體;二是將無人機(jī)編隊(duì)系統(tǒng)的每架無人機(jī)看成控制對象。應(yīng)用一致性協(xié)同算法實(shí)現(xiàn)控制體的協(xié)同編隊(duì)飛行,保持隊(duì)形不變;應(yīng)用“長機(jī)-僚機(jī)”控制策略實(shí)現(xiàn)每架無人機(jī)集結(jié)后成編隊(duì)飛行。在編隊(duì)中,長機(jī)直接與兩僚機(jī)保持聯(lián)系,發(fā)送當(dāng)前位置和期望位置指令,確保僚機(jī)調(diào)整姿態(tài)和速度,追蹤長機(jī)呈正三角形編隊(duì)。本文控制算法的優(yōu)勢在于,編隊(duì)無人機(jī)拓?fù)浣Y(jié)構(gòu)是雙向連接,它們之間的信息傳遞時效性強(qiáng),可防止因單機(jī)傳輸信息量過載發(fā)生堵塞現(xiàn)象。
無人機(jī)編隊(duì)中,無人機(jī)i的控制律如下式所示
(10)
(11)
本文提出的無人機(jī)編隊(duì)避障控制算法的避障能力如下式所示
(12)
式中:ffromi表示在垂直方向編隊(duì)飛行的控制算法的避障能力;fcai表示人工勢場避障算法的避障能力。
引理假設(shè)多無人機(jī)編隊(duì)系統(tǒng)為由一架長機(jī)和N(≥2)架僚機(jī)構(gòu)成的線性化模型,且滿足假設(shè)(1)(2)??刂扑惴?式(10))中γk為正的增益,且k∈{0,1},同時式(3)中控制參數(shù)kh為正實(shí)數(shù),均滿足每架無人機(jī)。
證明對于每架無人機(jī)應(yīng)用控制算法(式(10)),可以得到下式
(13)
(14)
(15)
(16)
(17)
已知矩陣M,方程(16)可簡化成如下矩陣形式
(18)
式中:IN∈RN×N表示N維單位矩陣;0N∈RN表示N維零向量。
首先求微分方程(18)的解,通過解的特征來研究其穩(wěn)定性。方程(18)對應(yīng)的其次微分方程的解為
(19)
此處構(gòu)建李雅普諾夫函數(shù)V,其由多無人機(jī)(本文為3架無人機(jī))編隊(duì)系統(tǒng)總能量構(gòu)成,表達(dá)式為
(20)
將V對時間求導(dǎo)可得
(21)
由式(7)可得
(22)
聯(lián)立式(21)和(22)可得
(23)
當(dāng)兩架無人機(jī)之間的安全區(qū)域沒有重疊情形下,微分方程(18)的特解可以表示為
(24)
綜上所述,微分方程(18)的通解等于其對應(yīng)的其次方程的通解加上本身的特解。因此,當(dāng)控制增益γk和人工勢場表達(dá)式中Kh選擇合適的正值時,則方程(18)漸進(jìn)收斂于
當(dāng)t→∞
(25)
這是來自長機(jī)指令的收斂結(jié)果,根據(jù)式(25)任意一行元素,可證明在縱向每架無人機(jī)具有的避障能力將會使其收斂于期望的預(yù)定軌跡,構(gòu)成正三角形編隊(duì)。
通過仿真實(shí)驗(yàn)驗(yàn)證所提避障算法的有效性,需要做以下3個方面的假設(shè):
(1)障礙物的運(yùn)動速度和前行的方向是恒定的;
(2)在編隊(duì)飛行中,長機(jī)的姿態(tài)和位置都是通過地面指揮所發(fā)出的指令;
(3)長機(jī)與僚機(jī)之間的通信是同步的。
無人機(jī)的對地速度和障礙物的運(yùn)動速度為56 m/s,每架無人機(jī)的質(zhì)量為90 kg,俯仰角速率的極限值為10 (°)/s,偏航角速率極限值為10 (°)/s;在垂直方向,為了滿足建模和仿真的所有條件,編隊(duì)的控制增益和避障控制參數(shù)分別設(shè)置為γ0=1.5、γ1=3、kh=5.5,每架無人機(jī)的安全區(qū)域圓柱體高度ΔH=3 m、橫截面半徑ΔR=3.5 m。在垂直方向,無人機(jī)之間的高度差小于1.2 m,同時在水平面內(nèi)無人機(jī)之間的相對距離小于10 m,無人機(jī)之間通過植入的算法計(jì)算,進(jìn)行避障。
基于仿真的初始條件和假設(shè),3架無人機(jī)編隊(duì)避障仿真圖如圖6~圖8所示。
圖6 無人機(jī)編隊(duì)與障礙物相對橫側(cè)向距離的變化曲線
圖7 無人機(jī)避障航向角速率的變化曲線
由圖6和圖7可知,運(yùn)動的障礙物以等速定高飛行,它與無人機(jī)編隊(duì)的安全距離為45 m,在剛開始的5 s,無人機(jī)編隊(duì)靠近障礙物,此時無人機(jī)編隊(duì)識別障礙物,啟動避障算法,5~15 s進(jìn)行規(guī)避機(jī)動,15 s之后無人機(jī)編隊(duì)與障礙物在橫側(cè)向保持相對距離為8 m。在此期間,長機(jī)的航向角逐漸減小,為確保避障安全且保持隊(duì)形,兩僚機(jī)的航向角也隨之減小,成功避障后,按照既定的軌跡飛行。
(a)未加入避障算法時間響應(yīng)
(b)加入避障算法時間響應(yīng)圖8 無人機(jī)編隊(duì)中每架無人機(jī)的推力變化曲線
由圖8a可知,為了保證無人機(jī)編隊(duì)飛行信息一致性,3架無人機(jī)構(gòu)成正三角形編隊(duì)系統(tǒng),每架無人機(jī)保持相同的推力指令協(xié)同編隊(duì)飛行;由圖8b可知,加入避障控制算法后,3條曲線相互之間有偏差,且峰值有所不同。這是由于無人機(jī)編隊(duì)遇到障礙物時以長機(jī)飛行軌跡為預(yù)定路徑,兩僚機(jī)追蹤長機(jī),此時長機(jī)必須采取橫側(cè)向偏轉(zhuǎn)和垂直方向升降進(jìn)行避障機(jī)動,而僚機(jī)根據(jù)指令做相應(yīng)的規(guī)避機(jī)動,因此3架無人機(jī)的推力略有差別。
本文使用圖論建立了一種線性化無人機(jī)編隊(duì)模型,提出一種三維空間內(nèi)無人機(jī)編隊(duì)協(xié)同控制避障算法,在滿足建立模型和仿真假設(shè)的條件下,通過仿真實(shí)驗(yàn)證明了所提算法的收斂性和有效性。該算法將三維空間復(fù)雜避障問題簡化為水平面的避障控制和垂直方向控制,在垂直方向無人機(jī)編隊(duì)中的任意兩架無人機(jī)之間的相對高度小于安全避障區(qū)域高度,采用規(guī)避機(jī)動方式避障,在水平面采用人工勢場方法避障。本文只是理論上的研究,并沒有進(jìn)行實(shí)體實(shí)驗(yàn),而實(shí)體實(shí)驗(yàn)涉及大量不可控因素,因此將該算法植入編隊(duì)控制器當(dāng)中應(yīng)用于工程實(shí)踐,是下一步主攻研究課題。