稅 歆,李洪奎
(沈陽理工大學 自動化與電氣工程學院,沈陽110159)
由于單架多旋翼的負載與續(xù)航有限,以及任務(wù)需求逐漸復(fù)雜化與多樣化,通常使用數(shù)架搭載不同傳感器或精密儀器的多旋翼協(xié)同合作完成指定任務(wù)[1]。任務(wù)進行過程中,需要根據(jù)異構(gòu)多旋翼之間的工作分配,規(guī)劃并保持穩(wěn)定的多旋翼編隊隊形[2]。因此研究多旋翼編隊的控制方法十分必要。
目前,最為常用的編隊控制方法為領(lǐng)航-跟隨者,該模式選定某一特殊個體作為長機,其他無人機作為僚機[3]。由于實際運行中存在時變干擾,且長機沒有僚機的位置反饋,將導致時變干擾與系統(tǒng)誤差之間存在積分效應(yīng),因此編隊系統(tǒng)的穩(wěn)定情況將完全取決于長機運行情況與實際環(huán)境的干擾強度。針對該問題有兩種解決途徑:一種是結(jié)合自適應(yīng)理論設(shè)計編隊控制器,并實現(xiàn)動態(tài)反饋[4];另一種是利用虛擬領(lǐng)航者來替代長機的功能,即虛擬領(lǐng)航者方法[5-6]。兩種方法雖然都解決了上述問題,但前者仍然依賴長機的正常運行;而后者雖然不依賴某一特殊個體,但由于編隊控制系統(tǒng)不存在反饋回路,依然無法抵抗時變干擾。
近年來,基于分布式的編隊控制方法逐漸趨于成熟,分布式結(jié)構(gòu)不存在中心化概念,而且個體間存在信息交互[7-9],該方法能有效解決領(lǐng)航-跟隨者方法存在的固有缺陷。李文皓等[10]根據(jù)個體間的相對位置偏差將隊型保持劃分為四種狀態(tài),設(shè)計分布式保持策略算法,將散亂的無人機先組成小編隊后再進一步互相靠近組成大的編隊,最終實現(xiàn)隊形保持。劉華罡等[11]結(jié)合一致性理論調(diào)整了分布式協(xié)調(diào)控制率,利用位置函數(shù)實現(xiàn)編隊內(nèi)不發(fā)生碰撞,同時規(guī)避環(huán)境中的障礙物。但在基于分布式結(jié)構(gòu)的編隊控制方法中,個體只能根據(jù)自身坐標系進行位置反饋值的計算,而個體間的傳感器測量誤差并不一致,這種計算方法會引入相對位置誤差。
為解決上述問題,本文分析了已有的控制方法中所具備的優(yōu)點;結(jié)合其優(yōu)點,設(shè)計相應(yīng)編隊控制系統(tǒng)的整體框架,提出基于相同坐標系的多旋翼編隊的分布式控制方法;最后,通過Matlab仿真軟件驗證本方法的可行性。
根據(jù)單架多旋翼的控制算法[12]可將編隊中多旋翼個體抽象為一個具備控制參數(shù)的質(zhì)點,個體之間的連接可抽象為兩點之間的線段;若個體間通信為全雙工方式,則該線段無方向,否則線段方向與通信方向相同。以四架多旋翼無人機組成的編隊為例,按照該方法建立領(lǐng)航-跟隨者的編隊模型,如圖1所示。
圖1 領(lǐng)航-跟隨者編隊模型
按照侯天浩等[13]提出的多旋翼編隊的通信方式,領(lǐng)航-跟隨者方法屬于完全集中式的組網(wǎng)方式。因此在編隊飛行過程中,領(lǐng)航者L將自身參數(shù)下發(fā)到各個跟隨者F中,各Follower按照預(yù)定隊形修改該參數(shù)并進行飛行控制,從而達到隊形保持的目的。在該編隊模式中,所有個體的期望位置均處于相同的坐標系,因此避免了個體間差異所帶來的測量誤差。
圖2為虛擬領(lǐng)航者V-L編隊模型,其中V-L并不參與編隊飛行,因此不存在依賴問題,但位置計算方式與領(lǐng)航-跟隨者模式相同,因此各跟隨者F依然處于同一參考坐標系。
圖2 虛擬領(lǐng)航者編隊模型
圖3中任意個體與編隊中的一個或多個個體進行通信。如果任意個體間均存在通信鏈路(如圖3a),可稱為完全互通;否則稱為不完全互通(如圖3b);兩者之間的區(qū)別為:完全互通的分布式結(jié)構(gòu)中,所有個體的抗干擾能力完全相同。另外,根據(jù)圖3也可以看出,在分布式模型中即使個體數(shù)量與隊形相同,組網(wǎng)結(jié)構(gòu)并不唯一,若無人機U1出現(xiàn)故障,無人機U2~U4依舊可以按照原定計劃飛行。所以當編隊中某一個體出現(xiàn)故障,通常其余個體能夠繼續(xù)協(xié)同執(zhí)行任務(wù)。
圖3 分布式編隊模型
多旋翼的隊形保持本質(zhì)上是編隊內(nèi)的個體到達所指定的預(yù)期位置。因此,本節(jié)以兩架多旋翼為例,分別說明領(lǐng)航-跟隨者編隊模型與分布式編隊的水平位置計算方法。圖4為領(lǐng)航者模型中,領(lǐng)航者L與跟隨者F1的位置計算示意圖。
圖4 領(lǐng)航者模型位置計算示意圖
圖4所示的領(lǐng)航者模型中,領(lǐng)航者L在地球坐標系OXY下的位置坐標為(XL,YL),根據(jù)預(yù)期隊形,領(lǐng)航者L應(yīng)與跟隨者F1相距(X1,Y1)。所以跟隨者F1位置坐標(XF1,YF1)計算式為
XF1=XL-X1YF1=YL-Y1
(1)
根據(jù)歐式距離可計算實際距離為
(2)
但由于傳感器存在測量誤差(Xe,Ye),此時跟隨者F1實際位置是(XF1+Xe,YF1+Ye),為方便后續(xù)進行誤差項的對比分析,距離P1的平方為
(3)
其中誤差項Pe1為
(4)
在分布式模型中,位置信息不再由領(lǐng)航者L或者虛擬領(lǐng)航者V-L統(tǒng)一下發(fā)至跟隨者F,而是無人機主動獲取相鄰個體的位置信息,進行坐標系轉(zhuǎn)換后作為位置反饋,判斷自身是否達到預(yù)期位置。圖5為分布式模型位置計算示意圖,O2X2Y2為個體U2的機體坐標系,U1在該坐標系下的位置為(ΔX21,ΔY21)時,編隊達到預(yù)期隊形。但實際進行數(shù)據(jù)交互時,U2只能獲取到U1在地球坐標系OXY下的坐標(Xu1,Yu1)。所以若判斷U2相對U1到達隊形預(yù)期位置,應(yīng)滿足條件:
ΔX21=Xu1-Xu2ΔX21=Yu1-Yu2
(5)
圖5 分布式模型位置計算示意圖
但所有多旋翼個體的傳感器均存在測量誤差,分別為(Xe1,Ye1)和(Xe2,Ye2),且假設(shè)個體的測量誤差方向相反,此時誤差最大。X方向的誤差為|Xe1|+|Xe2|,Y方向為|Ye1|+|Ye2|。同樣考慮歐式距離,P2的平方為
(6)
其中誤差項Pe2為
Pe2=2ΔX21(|Xe1|+|Xe2|)+2ΔY(|Ye1|+|Ye2|)+(|Xe1|+|Xe2|)2+(|Ye1|+|Ye2|)2
(7)
假設(shè)所有傳感器測量誤差相同,即
E=Xe=Ye=Xe1=Ye1=Xe2=Ye2
(8)
且領(lǐng)航者方法與分布式方法保持同一隊形,不考慮測量誤差的理論值,則有如下關(guān)系
X=XF1=ΔX21Y=YF1=ΔY21
(9)
此時,式(4)與式(7)的誤差項可化為
Pe1=2XE+2YE+2E2
(10)
(11)
通過公式(10)與公式(11)的對比,明顯發(fā)現(xiàn)分布式模型的位置計算誤差大于領(lǐng)航者模型。原因是計算時坐標系進行了二次轉(zhuǎn)換,引入了額外誤差,所以最終隊形的計算誤差增大。針對該問題,本文結(jié)合虛擬領(lǐng)航者模型的優(yōu)點,在分布式模型中引入虛擬領(lǐng)航者,對坐標系進行統(tǒng)一,減少編隊飛行的誤差。該誤差推導也可用于三維空間中,只需要對應(yīng)加入垂直方向的位置與誤差。
以四架多旋翼進行編隊為例,設(shè)計相同坐標系的分布式編隊結(jié)構(gòu),如圖6所示。
圖6 相同參考坐標系的分布式編隊示意圖
圖6中U1至U4為實際存在的個體;V-L為虛擬個體,該個體在進行隊形保持時位置不發(fā)生改變,而是作為將參考坐標系進行統(tǒng)一的介質(zhì)。任務(wù)執(zhí)行過程中,通過移動參照系的位置(即V-L的位置)實現(xiàn)編隊飛行。
可將分布式模型轉(zhuǎn)換為鄰接矩陣形式。其中設(shè)N=1,2,…,n是有限且非空的節(jié)點集合,所以E∈N×N稱為邊的集合。其中每個節(jié)點代表一個多旋翼個體,節(jié)點i與節(jié)點j允許信息流通,則邊(i,j)存在,此時鄰接矩陣AVL相應(yīng)元素的值為aij=aji=1;若信息無法流通,元素值為aij=aji=0。另外,在鄰接矩陣AVL中,定義對角線元素aii=0。為表示方便,將VL默認為末位個體,圖7為分布式隊形控制系統(tǒng)示意圖。
圖7 分布式隊形控制系統(tǒng)示意圖
圖7所示的模型對應(yīng)的擴展鄰接矩陣AVL為
(12)
若只考慮實際個體,其鄰接矩陣A為
(13)
根據(jù)鄰接矩陣可以計算連接圖的拉普拉斯矩陣
L=[lij]=D-A
(14)
其中度量矩陣D=[dij],dij的算式為
(15)
本文設(shè)計的分布式編隊控制系統(tǒng)由參考控制器、通信鏈路、多旋翼個體三個部分組成;每個多旋翼個體由四旋翼系統(tǒng)與參考共識模塊構(gòu)成。其中參考控制器對整個編隊系統(tǒng)起到引航的作用。對于本系統(tǒng)的虛擬領(lǐng)航者V-L,參考控制器根據(jù)任務(wù)給出的軌跡ξc生成期望距離ξcontr。ξj是與個體具備通信鏈路連接的其他相鄰個體的位置信息,用于作為參考共識模塊和參考控制器的反饋回路。參考共識模塊用于判斷隊形組成是否完畢,給出多旋翼系統(tǒng)所需的飛行路徑點。
任務(wù)管理系統(tǒng)不包含在分布式隊形控制系統(tǒng)中,該系統(tǒng)按照任務(wù)需求規(guī)劃編隊隊形與飛行路徑,并根據(jù)各多旋翼個體的功能分別規(guī)劃偏航角。
圖8 為相同坐標系下的位置計算圖。
圖8 相同坐標系下的位置計算
圖8中,設(shè)定V-L作為預(yù)設(shè)隊形的形心,并將其作為參考坐標系的原點。因此,預(yù)期的位置與形心間的距離為
ξcontr=[XC,YC,ZC]
(16)
式中XC、YC、ZC均為絕對值。第i個多旋翼與原點的距離為
ξi=[|Xi|,|Yi|,|Zi|],i=1,2,3,4
(17)
需要注意,為避免個體位置相近時飛往同一期望位置,可按標號規(guī)定Xi或Yi的正負。ξi值可認為是該多旋翼個體對參考坐標系的相對位置,在分布式控制中作為控制反饋,最終將ξi逐步引導至ξcontr,根據(jù)共識算法的概念,有
(18)
式(18)表示時間t與控制反饋ξi存在積分關(guān)系,系統(tǒng)由4個終端使用通信鏈路組成分布式結(jié)構(gòu),每個終端的分布式線性協(xié)議為
(19)
結(jié)合式(14),可將系統(tǒng)重寫為
(20)
式中:σ(t)=[σ1(t),σ2(t),σ3(t),σ4(t)];L是拉普拉斯變換矩陣。結(jié)合式(19)和式(20),每個多旋翼都可獲取本地可用的信息,并將自身信息提供給其鄰居,提供方法為
(21)
圖9 參考控制器的框架
其中PD控制器算式為
(22)
本文使用Matlab R2018b仿真平臺對所設(shè)計的編隊控制算法進行驗證,以文獻[12]所研究的控制算法與模型搭建多旋翼個體的Simulink仿真模型,并在該模型的基礎(chǔ)上對參考共識模塊與參考控制器進行仿真。為證明當通信鏈路不同時,無人機的編隊控制效果相同,程序使用Matlab內(nèi)置的函數(shù)erdosRenyi隨機生成連通圖,將其作為編隊內(nèi)部的通信鏈路關(guān)系,兩次運行程序生成的連通圖如圖10所示。預(yù)設(shè)隊形為圖8所示的正方形,編隊存在四架多旋翼個體,初始共識參考值為ξcontr=[1,1,0]。
在圖10中,序號5為虛擬的V-L,參考控制器反饋位置ξj選取與V-L相連通的個體序號中最小的值。圖10a中選取序號3的個體速度作為反饋,圖10b則選取序號1的個體。
圖10 兩種不同的編隊通信連接圖
圖11為隊形變化前后的位置示意圖,表明僅在執(zhí)行隊形規(guī)劃時,無人機編隊的隊形保持效果。
圖11 隊形保持效果
對多旋翼編隊設(shè)定相同的初始位置,如圖11a所示;運行程序兩次的結(jié)果均與圖11b相同。圖中菱形代表虛擬領(lǐng)航者V-L的位置,其余點分別對應(yīng)編隊中實際存在的四個個體;兩次運行中,各多旋翼均能準確地落位,最終形成正方形隊形。圖12為無人機編隊按照所規(guī)劃的隊形,沿著期望軌跡實現(xiàn)編隊飛行時,各無人機個體垂直方向的飛行軌跡。
圖12 飛行軌跡
圖12中,實線表示V-L的軌跡。為模擬實際任務(wù)中可能存在的隊形變換,在飛行4s后將XY水平方向的正方形隊形調(diào)整為XZ方向,即共識參考值ξcontr由[1,1,0]轉(zhuǎn)變?yōu)閇1,0,1],用于測試編隊控制的動態(tài)性能;最終于10s左右時,在飛行過程中形成設(shè)定隊形。
圖13為在飛行時進行隊形動態(tài)調(diào)整的結(jié)果。在圖13所示的三維圖形中,其中實線表示虛擬領(lǐng)航者V-L的軌跡,即任務(wù)規(guī)劃中的期望軌跡ξC;圓形點表示多旋翼中每個個體的實際位置。在圖13a中的初始位置時,已經(jīng)完成了隊形調(diào)整;在圖13b中,由于在飛行過程中進行了隊形的動態(tài)調(diào)整,因此與預(yù)期隊形稍有差異。結(jié)合圖12的垂直位置數(shù)據(jù),調(diào)整后的隊形誤差小于10%。
圖13 飛行測試與動態(tài)調(diào)整
結(jié)合領(lǐng)航者模型與分布式模型的優(yōu)點,設(shè)計了基于相同坐標系的編隊控制系統(tǒng),應(yīng)用參考共識算法進行分布式控制。分布式編隊模型誤差較大的原因源于實際環(huán)境中對坐標進行二次轉(zhuǎn)換時引入了兩次誤差。
編隊仿真實驗結(jié)果表明,本文所設(shè)計的控制系統(tǒng)能夠進行隊形保持,同時能夠?qū)崿F(xiàn)飛行過程中隊形重設(shè)與動態(tài)恢復(fù),其誤差小于10%,可以滿足編隊飛行的使用需求。