許鵬鵬,余祥功,夏昊天
(江蘇航運職業技術學院,江蘇南通,226010)
當前,無人機已經在民用、軍用很多領域內得到了廣泛的使用。然而,隨著其使用范圍的持續擴張和所接任務難度的不斷提高,之前使用的對單架無人機的操控策略早已無法滿足各種新需求。單架無人機在執行復雜程度、難度都較高的任務時顯得力不從心,難以保障工作效率及成功率[1]。為了解決單架無人機的不足之處,無人機編隊這一作業形式的研發應運而生。無人機編隊飛行模式主要是將兩架或者兩架以上無人機按照某個指定的編隊構型去執行相關飛行任務,通過編隊飛行能夠順利解決之前單架無人機在執行任時出現的各種問題。面對復雜程度比較高的任務時,通過并行模式,即便隊伍中有一架無人機發生故障,也不會對完成任務造成任何不利影響。此外,在執行單架無人機無法完成的重、大型運輸任務的時候,編隊形式可以借助多架無人機之間的協同合作,在充分發揮小型無人機靈活性特長的同時,更加有效的完成飛行任務。
為滿足飛行任務中所要求的各種變化,多架無人機按照指定的編隊結構去飛行,其中包含設計、保持、重構隊形以及避碰等各環節。在完成隊形設計之后,無人機需要維持隊形結構直至終點,且在飛行過程中需要實現避碰——能夠成功避開途中所遇到的各種障礙或威脅[2]。在進行編隊飛行時,固定好隊形后的關鍵是如何保持住隊形。隊形能否得到保持,將會直接對作業情況和定位的精準程度造成很大影響。當無人機編隊在保持隊形進行固定飛行時,若遇到威脅或障礙就需要進行避碰,隊形也可能會因此需要進行調整才能順利抵達終點、完成飛行任務,即對編隊進行重構。在特定情境下,只有重新構造編隊才能更好地完成任務。因此,多無人機進行編隊飛行時,需充分發揮編隊保持、重構以及避障三大部分的技術[3]。
無人機在飛行過程中會遇到很多障礙和威脅,并因此而影響其飛行軌跡以及任務的完成。為了能夠更符合真實的飛行環境,并對本文中所用算法的有效性進行驗證,本文創建了威脅模型,模擬真實飛行環境展開相關實驗,所創建的障礙物威脅模型如下:

其中:(x,y)指的是地形在xoy軸的投影坐標,z指的是所創建的地形模型的高度,a,b,c,d,e,f,g則表示各個系數,借助這些系數的變化能夠創建出各種不同地形。
最初由Khatib提出來的APF(人工勢能法),可分成斥力勢場和引力勢場兩個部分,主要設計思路是構造障礙物周圍的斥力場以及目標周圍的引力場。按照勢函數下降的方向,在勢場值內反映出障礙物、目標分布和位置信息,并搜尋出安全的路徑。其優勢是:提高實時性、減少計算量。在搜索空間當中,如果以x表示UAV的位置向量,那么引力場、斥力場、復合勢場三個函數如下:

以此類推,每個點的勢場力都能用上述公式計算得出,在合力作用之下,由出發點至終點。這種辦法能夠快速找出到達終點的路徑,然而也有局限性,當終點附近存在障礙物的時候,無人機越接近終點的同時也會越接近障礙物,所受到的斥力也會越大,這時終點將不再是全局中最小的點,會導致無人機無法到達終點。在合力為0的時候,就會生成勢場局部極點,無人機的進一步作業將不能再進行下去。而當障礙物密集存在的時候,無人機哪怕沒有飛入局部極點,其路徑也將發生較為復雜的震與抖動。
因此,APF算法更易于收縮至局部極小點,出現抖動現象和無法到達目標的問題,還會發生下列狀況:
(1)傳統的APF模型未考慮無人機勢力在勢力場內所發生的變化。當目標點靠近障礙物的時候,勢場內就會生成引力,UAV便在引力作用之下朝著目標點移動,然而在此過程當中也會越來越靠近障礙物,無人機距離障礙物越近,便會受到越大的斥力,使其難以到達目標點[4]。倘若無人機與目標點之間有障礙物且二者共線,則按照經典APF算法得知,在無人機移向目標點時,一定會有某個點致使無人機所受到的合力為零并停止前進。
(2)由于引力與斥力所生成的合力突然變化而出現的抖動。當無人機靠近目標點時,障礙物四周的勢場力會使合力出現變化,致使無人機下一個動作的角度發生很大改變,從而出現抖動的情況[5]。無人機如果在運動過程中發生至少持續兩步方向角差θ,且大小在90<θ<180,則表明其出現了抖動。出現抖動情況,即使無人機有時仍可繼續抖動著到達目標點,但其航跡飛行以及執行任務的效果都會受到影響,這種方式并不可行。另外,局部最小點APF法在無人機上的應用,主要是機體與目標點之間生成的引力牽引以及機體與障礙物之間生成的排斥力。機體在引力與斥力的合力作用下進行運動,發生目標點無法到達或抖動情況的時候,機體便極可能停留于局部最小點[6]。飛行環境內有時候會出現密集的障礙物,遇到這種情況,無人機很難繞道此區域到達目標點所在的位置,便需重選一些狹窄通道當作替代路徑。但是,在狹窄通道中,這一點所受到的斥力可能會遠大于目標點的引力,但是由于在經典的APF計算當中無人機的每一步運動都只會受到合力的作用,它就會陷在障礙中難以飛出,排斥力兩邊的力量都會將無人機陷至局部最小點,如圖1所示。

圖1 無人機陷至局部最小點
本文研究的無人機編隊飛行時所使用的結構為leaderfollower,例如:用一架leader及兩架follower構成一個三角形結構的編隊。在leader-follower結構中,編隊內會設置一架無人機為leader(領航者),其余無人機則為follower,都跟著leader進行運動。Follower會參照leader所處位置的變化而調整其飛行方向和位置參數信息。Leader可用于指揮整支編隊飛行的方向,在編隊內可通過leader的位置參數信息計算出follower的預計位置,其他follower也會收到這一信息并飛至其在整個編隊中的擬定位置。如圖2所示,在模擬實驗當中,可以借助于三角形編隊結構以及leader的位置參數信息推算出編隊中其他follower應處的位置參數信息和飛行路徑。

圖2 三角形結構的leader-follower編隊
將編隊內UAV數量設為N,Fc={UAVi|i=1,2,…,N}則可用于表示編隊集合,UAV運動的動態方程就會如下:

式子內:(xi,yi) 代表的是UAV的坐標位置,vi為其速度;t代表采樣的周期;xi代表無人機的航向角;av和ax分別代表速度及航向角時間常數;xic和vic則分別代表著航向角指令及速度指令。
無人機的航跡規劃受到很多因素的制約,例如:機體性能、受障礙物影響的程度以及如何在復雜環境之下安全、準時地從起點到達終點。因此,規劃航跡時必須在考慮以上制約因素的同時規劃出最佳編隊航跡,模擬出既能避免受障礙物影響出現碰撞危險又能很快到達目的地、完成任務的飛行路線[7]。因此,在對無人機進行航跡規劃時,除了路徑的長短,還必須保障其安全性。但是如此就可能出現多個目標,得到多個方案,在缺乏更多驗證信息的時候,難以比較出這些方案中哪個更合適,因此需要找出更多適用方案[8]。當需要實現多重功能和最優效益時,就會出現四個甚至四個以上目標等待優化,有時目標甚至會多達10-15個。隨著目標數量的增加,非支配解在隨機選擇當中所占比例也相應增大,目標向量集則呈指數級增長,使得搜索進展過慢。
在規劃航跡的時候,首先要確保無人機能夠避開障礙物、避免發生無人機之間的碰撞,且在實現航跡約束條件(安全性、長度)的同時,為無人機規劃出一條綜合最佳方案。因此,問題則變成同時為多個目標進行優化,需要針對實際航跡規劃中所遇到的問題創建出相應的模型,并利用NSGA-Ⅱ進化計算方法求解。在符合UAV飛行約束條件的前提之下,兼顧多重指標,同時優化航跡的安全性和長度,以更加有效地規劃航跡。NSGA-Ⅱ進化計算方法的公式如下所示:

在執行上述操作后,可獲得第1代子代,之后再由第2代開始翻倍種群的數量,對父子種群加以合并,快速非支配排序并計算出每一個非支配層個體的擁擠程度,從而選出合適的個體進入下一代。如此反復,直至迭代次數最大并取得最優解集,詳細步驟如圖3所示。

圖3 NSGA-Ⅱ進化計算方法
在航跡規劃過程中,使用頻率最高的三種路徑算法是DEBA、BA和NSGA-Ⅱ。通過仿真得出圖4所示的三維環境之下NSGA-Ⅱ、DEBA、BA的目標函數收斂曲線,對目標函數收斂曲線分析可得出:與路徑規劃仿真一致,以紅色收斂線代表DEBA、藍色收斂線代表BA、黑色收斂線代表NSGA-Ⅱ。特定算法的收斂速度取決于收斂線的斜率,因此NSGA-Ⅱ的收斂性能最佳,DEBA其次,而BA的收斂性能最不理想。相較于BA 和DEBA,NSGA-Ⅱ收斂速度最快,在數十次迭代操作之后,飛行目標函數最后能收斂至一個比較穩定的值,而這個穩定值多用于檢驗性能以及收斂精度。在迭代過程相同的情況下,NSGA-Ⅱ的收斂適應度則比BA和DEBA低,與最小收斂值相對應的是最低能量消耗和最短飛行路徑長度。

圖4 目標函數收斂曲線