曾 惜,楊金鐸,王 冕,張 羿
(貴州電網有限責任公司 貴陽供電局,貴州 貴陽 550001)
當前無人機技術快速發展,為了更好地發揮無人機的優勢并智能精準獲取無人機工作區域的圖像和視頻,必須研究無人機群協同工作調度管理系統。無人機調度是指在多個任務和多個條件制約時,對多架無人機執行飛行任務的航線規劃和調度[1-3]。合理安排無人機任務序列可以提高無人機執行任務的效率。隨著無人機任務數量的增加和飛行環境的日益復雜,為無人機調度搭建管控平臺并進行數學建模調度算法研究是非常重要的。
蟻群算法目前在無人機任務調度和規劃中已得到廣泛應用,其具有并行性和正反饋機制的特點,可以運用網絡的啟發信息得到收斂解。此外,蟻群算法可以很容易求解各種組合優化問題,為本文的無人機調度研究提供成熟的理論支持[4,5]。目前大多利用無人機地面站來對無人機進行控制,它能監視無人機的位置和狀態等信息,并且能夠發出控制無人機飛行與執行任務的命令。為了實現一個地面站同時控制多架無人機,需要設計一種可以進行遠程管理與控制的調度平臺。
在確定調度中心位置和執行任務點位置的前提下,將無人機派往任務點執行任務。在調度方案設計中,設定每個任務點的任務只能被一架無人機執行,每架無人機能夠開展多個任務點的工作,但需要限制其飛行的距離。在飛行時應考慮執行任務的優先級、飛行區域地貌以及禁飛區域等事宜,最終的優化設計目的是讓調度方案發揮最大的指揮執行效果[6]。
無人機調度結果的效益評價角度眾多,文中主要根據無人機執行任務的效果收益和消耗代價進行評價,以收益盡可能大、付出代價盡可能小為目標。無人機調度算法求解的最終目標為無人機完成任務同時規劃出執行的任務序列,令目標函數達到最大,其表達式為:

式中,w1為收益權重,w2為航程代價權重,w3為風險代價權重,R為收益效率,C1為航程代價,C2為風險代價[7]。
收益效率的計算公式為:

式中,xij為決策因子,rj為任務j的優先級,Pj為任務j被分配執行時任務的完成時效,lj為任務j的作業里程數,T為調度方案的總執行時間,V為常量[8]。
在調度中,同一個任務只能由一臺無人機執行一次,無人機調度的約束條件公式為:

無人機正常工作時,會遇到眾多不利于安全飛行的因素。如何消除不安全因素的威脅是亟待解決的問題,因此在方案制定時,在規劃空間里要表示清楚所有存在的安全威脅,以獲得威脅區信息,進一步分析得到最合適的路徑。用圓形區域表示禁飛區等威脅區域,圓的半徑r代表威脅源的影響距離,圓心O代表威脅源。離圓心越近,威脅越大,而且各個威脅區域之間互不干涉。模型圖設計如圖1所示。

圖1 無人機威脅區域模型圖
目前無人機調度求解主要有兩種算法,分別是精確算法和啟發式算法。由于精確算法是采用龐大的計算量來獲得最優解,因此并不適用于無人機調度。而啟發式算法可以解決計算量大的問題,非常適合用來求解調度問題。啟發式算法的流程為先獲取無人機調度的初始解,然后運用優化策略進行局部擾動,為了搜索獲得更優的解,需經過多次循環,一直到搜索到最優解為止。由于蟻群算法具有組織性、魯棒性以及正反饋機制優勢,其在任務中可較快的搜索到更優解,因此主要針對蟻群算法展開研究。
1.2.1 蟻群算法概述
相關研究表明,螞蟻能釋放一種信息素。受信息素的吸引,螞蟻可以發現一條蟻穴到食物的最短路徑。這樣螞蟻往返的時間就會減少,同樣的時間內,留在路徑上的信息素會增加,較短路徑上的螞蟻也會隨之增加。在正反饋的作用下,可確定出最優路徑。對螞蟻覓食過程的仿真模擬是該算法的核心,其關鍵是人工螞蟻對已經訪問的節點不會重復,還能根據反饋信息調整,意識性較強。
1.2.2 蟻群算法求解無人機調度問題
對于無人機調度,一只螞蟻代表一個可行解。無人機從基地起飛,按照約束條件選擇任務,完成首次任務后進行下一項任務,直至沒有符合約束條件的任務為止,這樣就得到了一個無人機的航線。再出動另一架無人機,重復上述步驟,完成所有的任務,就獲得了一條完整的路徑。選擇任務點時,在任務點集allowk中放入符合約束條件的任務點,再從allowk中根據相應規則選擇,規則如下。
首先,選擇信息素矩陣τ,將τ=ones(n,n)初始化,n代表的是任務集合的總數。
其次,啟發信息矩陣η,η中的元素為ηij=rj/dij,其中rj為任務j的優先級,dij為任務i到任務j的距離。
再次,在可選任務點集allowk中放入t時刻符合約束條件的任務點,求解t時刻對應的allowk中各任務點的狀態轉移概率P,公式為:

式中,α為信息素的重要度,β為可見度的重要度。
最后,按照偽隨機比例規則,選擇下一個要執行的任務點。
1.2.3 蟻群算法求解調度問題的算法步驟。
(1)將算法中的α、β信息素矩陣以及聚類算法與遺傳算法的各個參數初始化,放置m只螞蟻在無人機出發點[9];
(2)任務j由無人機續航時間t、任務優先級以及禁飛區域等約束條件確定,將其放入可選任務集allow中;
(3)按照偽隨機比例規則,進行下一個要執行的任務點;
(4)對還沒有執行的任務點集合to_visit進行更新;
(5)若allow不為空,則跳至執行步驟(3),選擇下一個任務點,否則執行下一步;
(6)若to_visit不為空、allow為空,表示尚有任務未被執行,但剩下的任務點均不符合約束條件,則返回步驟(2),直到to_visit為空后再進行下一步;
(7)記錄每只螞蟻所獲得的調度路線和目標函數值,求得最優解;
(8)采用混合聚類技術判斷,并依據螞蟻狀態對α、β值進行調整;
(9)迭代次數I加1;
(10)若I 無人機管控平臺設計時要思考各個方面的技術需求,當無人機接收到上傳的航線信號后,開始起飛執行任務,平臺需要對無人機的實時位置、飛行速度、航線、飛行姿態、電池的電壓以及GPS狀態等進行管控。為了同時管理大量無人機,需要在平臺上進行注冊。 無人機平臺的需求包括兩個方面。一是該平臺可完成無人機注冊,可查看無人機資料信息;二是該平臺可實現航線任務的管理。通過無人機平臺預先設定好航線,然后上傳到無人機。當無人機執行任務時,平臺可對無人機的航跡,飛行姿態、電池電壓、GPS狀態以及實時報警等信息進行實時監控,同時具備存儲功能,可以記錄飛行數據。為了實時播放和回放航拍視頻,該平臺需具備視頻播放、可實現發送起飛或降落等指令的功能。 根據無人機任務需求,從功能結構上將無人機管理控制平臺劃分為用戶登錄、無人機管理、航線管理、視頻管理以及指令控制5個模塊。 用戶登錄模塊是系統的首要環節,通過輸入用戶名和密碼傳輸至后臺服務器進行校對。 無人機管理模塊主要包含無人機注冊和信息查看,注冊內容有名稱、產品序列號、型號、身產日期以及管理人員信息等。無人機信息查看可以用表格的形式表示,可以對每條信息編輯或刪除,并且可以查詢出需要查找的無人機。 視頻管理包含實時視頻管理與歷史視頻管理,可以切換1個畫面、2個畫面、4個畫面、9個畫面或者16個畫面,可任意調取歷史視頻進行查看。 航線管理有3個子模塊,分別是預設航線、上傳航線以及下載航線。通過在地圖上畫線,設定航線,可以進行保存和上傳。通過蟻群算法求解無人機調度問題之后,獲得無人機的調度路線,將路線描繪在地圖上,形成無人機的航線。 無人機控制指令有起飛、懸停、繼續飛行、降落、返航以及巡航等,每個指令均是基于UDP協議的Socket通信進行的。UDP是通過在通信實例兩端各搭建一個Socket對象實現收發數據報的。DatagramSocket對象是基于UDP協議的Socket,使用DatagramPacket可以代表DatagramSocket進行數據報的發送和接收[10,11]。 本文在無人機調度算法的研究中使用了蟻群算法,提高了算法的計算速度和搜索水平,實現無人機調度問題最優解。但是研究的調度問題是靜態的,實際的任務點可能會出現動態變化,這也是未來需要深入研究的重要課題。此外,多種型號無人機的調度問題需要加入到約束條件中。未來需要加強對無人機調度與管控平臺充分結合的研究,實現直接在平臺中計算得到無人機調度方案,根據結果選取適合的航線,使無人機調度系統優勢更加明顯,能夠更高效地完成任務。2 無人機的管控平臺
2.1 平臺功能結構設計
2.1 用戶登錄
2.2 無人機管理
2.3 視頻管理
2.4 航線管理
2.5 指令控制
3 結 論