桂 洲 祖家奎
(南京航空航天大學自動化學院 江蘇 南京 210016)
無人直升機經過二十多年的快速發展已逐步應用于軍用和民用領域,在軍事偵察、攻擊、反恐、電力尋線、目標監控以及農業植保等方面發揮著越來越重要的作用[1]。當前任務的執行是以單架無人直升機系統為主要飛行單元的,然而針對協同復雜任務飛行的新需求,多機編隊飛行控制是當前無人直升機工程應用的迫切需求之一[2]。編隊飛行通常指多架無人機按照一定的編隊方案保持隊形不變或者相對位置在一定范圍內變動的協同飛行,其核心是編隊飛行控制系統的設計與實現,涉及多機通信、協同任務分配、協同航跡規劃、控制律等多個技術細節,是一個約束條件眾多且復雜的問題。此外,多機編隊飛行的技術風險大,從工程實現角度需要基于一套完整的設計和實現手段,而多機編隊飛行仿真系統是降低研制成本、有效控制飛行風險、提高研制效率的重要技術方法。
本文針對某型無人直升機由一站(地面測控站)一機升級到一站多機(最多五機)的工程特殊需求,在原單機航電系統的基礎上,設計和實現了一種系統簡單、開發快速、驗證便捷的多機編隊飛行控制仿真系統,主要包括多機通信、飛控軟件在環(簡稱等效飛控)、直升機模型與飛行視景、地面站軟件等細節。
某型無人直升機為了實現前期多機編隊飛行控制的技術驗證和工程過渡,希望基于現有單機飛控系統且不改動硬件和增加成本的前提下,充分發揮現有測控系統的通信能力,通過飛行控制系統的軟件升級實現某型無人直升機一站最多五機的編隊飛行。其中,其測控系統是固定頻段,不具備擴頻功能,具有全向和定向通信能力,如果采用測控碼分多址體制或頻分多址體制都需要更改測控設備且成本較高。
鑒于上述開發需求和飛控仿真的技術要求,該仿真平臺構建的關鍵是多機通信,本文提出了以地面站為信息交換中心,利用測控的全向廣播模式,基于時分多址和時分雙向通信的方法實現多機分時切換通信。其中,時分多址體制是將測控通信周期劃分為基準時間片,地面控制站與無人直升機在分配到的工作時隙內進行數據通信。系統總體方案如圖1所示。

圖1 多機飛行仿真系統總體結構圖
每一個仿真節點是一臺PC仿真計算機,多節點直接通過hub交換機進行網路通信,每個節點計算機運行包括地面站軟件、數據電臺、等效機載飛控軟件、X-Plane飛行仿真軟件及數據轉發中繼等模塊。
(1) 地面站有兩個作用:無人直升機飛行狀態顯示和指令控制;分時接收多機的狀態信息并發布多機的飛行狀態,即多機飛行信息的轉發。
(2) 數據電臺用于模擬真實的測控通信鏈路,分為地面站收發器和仿真計算機收發器兩個部分。
(3) 等效飛控軟件用于模擬運行機載飛行控制。
(4) X-Plane軟件即直升機模型和視景系統。
(5) 數據轉發中繼實現等效飛控與X-Plane之間的數據轉換。
(6) 交換機用于多個仿真計算機信息以及X-Plane多機模型的信息交換。
1) 多機通信方案。目前,無人機測控系統實現一站多機測控模式的通信技術主要有頻分多址、時分多址、碼分多址、基于相控天線的空分多址和基于數字多波束相控天線等[3-6]。由于相控天線、碼分多址和頻分多址等通信方案需要專用測控設備支持,其實現成本較高、體積重量較大,因此本文采用時分多址測控模式實現較低成本的一站多機通信。使用的通信媒介為數據電臺,如圖2所示,其分為1個基站電臺和3個移動站電臺,其中基站電臺與地面站相連,移動站電臺與無人直升機相連。

圖2 基站和移動站電臺
2) 分時通信邏輯。為了對電臺通信信道進行分配,本文采用了時分多址的方式,通信過程如圖3所示。在每一通信周期內,地面站按照順序分別查詢各個無人直升機的狀態信息,每架無人直升機對當前查詢的ID進行判斷,如果和自己的系統ID相等,則發送狀態信息給地面站,否則不發送。

圖3 TDMA通信周期
3) 通信協議的設計。地面站作為無人直升機編隊飛行的控制中心,需要與各個無人直升機進行數據的發送和接收,因此要設計相應的通信協議及通信方式來保證通信的有效性和準確性。在通信協議上,本文參考了MAVLink協議,根據實際情況進行了相應的修改,數據包格式如圖4所示。測試表明,該協議實現簡單,數據傳輸靈活,可以應用于各種通信場景。其中系統ID用于無人直升機編號,表明該數據包是屬于哪一架無人直升機,從而實現一站多機通信。

圖4 協議結構
為了實現多機軟件在環仿真,本文用C語言在PC機上開發出一款等效的飛行控制系統,開發環境使用Visual Studio 2015,整體結構設計如圖5所示。顯示界面如圖6所示,其中數據區1主要顯示無人直升機姿態信息,數據區2主要顯示當前無人直升機所處模態,數據區3顯示當前無人直升機四通道控制律參數。

圖5 等效飛控結構

圖6 等效飛控監控顯示
為了更好地模擬硬件上飛行控制系統的運行環境,通過在PC機上移植μC/OS-Ⅱ實時操作系統來保證各個控制模塊執行的實時性,主要模塊及功能如下:
(1) 通信模塊。通信分為與地面站和與X-Plane之間的信息交換。由于采用的是一站多機的通信方式,在這種通信方式下,無人直升機僅與地面站進行通信,因此,通信實現相對簡單。在和地面站通信中,本文基于μC/OS-Ⅱ操作系統編寫了兩個任務,一是數據發送任務,二是數據接收任務,即TaskRx()和TaskTx()。在通信方式上,本文采用時分多址的方法[3],實現多無人直升機與地面站的信息交換。
在與X-Plane通信中,由于通信協議和通信方式的區別,設計并實現了一個中繼轉發程序。在等效飛控中使用Model_TaskSim()任務和轉發程序進行通信,其中包括LinkRx()和LinkTx()兩個子任務。
(2) 編隊控制模塊。編隊控制主要完成在多架無人直升機進行的某種隊形排列飛行時,控制每架無人直升機的飛行姿態和軌跡,使得總體編隊隊形保持不變或按照某種要求進行隊形的重組。姿態控制由四個通道組成,分別是總矩、尾槳、橫向和縱向。在實時操作系統μC/OS-Ⅱ中用COL_LawLoopCtrl()、RUD_LawLoopCtrl()、AIL_LawLoopCtrl()、ELE_LawLoopCtrl()四個任務中實現的控制律進行控制。軌跡控制及無人直升機各個飛行模態通過NAV_TaskPlaneFly()、ModeRun()來實現。本文實現的仿真系統主要對基于長機-僚機編隊策略進行研究,因此在控制中有長機和僚機之分。長機控制主要側重于飛行軌跡即按照任務要求生成的航跡進行飛行控制,而僚機主要根據長機位置、姿態等信息進行姿態控制,以保持相應的編隊隊形或對編隊隊形進行調整變換,因此主要涉及對姿態的控制。
為了實現對多無人直升機編隊進行控制以及相關狀態信息的獲取,本文基于Qt開發環境使用C++設計并實現了地面控制站軟件。軟件主界面如圖7所示,多機狀態顯示模塊可以同時顯示最多5架飛機的姿態、位置、飛行模態等信息。

(a) 地面站主界面
遙控面板用于對無人直升機發送各種指令,包括起飛準備、自動起飛、懸停、自動返航等。地圖界面用百度地圖開放的API開發,用于顯示各個無人直升機的位置及飛行軌跡,從而達到更加直觀地顯示編隊效果的目的。
由于采用一站多機的通信方式,地面站作為一個數據通信中心,需要負責同步多架無人直升機的通信序列。在數據鏈路分配采用時分多址方式的情況下,地面站通過定時輪詢的方式與相應的無人直升機進行數據的發送和接收,因此每次在同一時刻只有一架無人直升機與地面站進行通信,這保證了數據傳輸的安全和穩定。
模擬飛行軟件主要為仿真系統提供直升機模型、3D飛行視景,以及對直升機飛行環境進行模擬,例如改變天氣、風速、溫度等[7]。目前使用最多的是開源飛行模擬器Flight Gear。由于本文需要對多架無人直升機進行編隊模擬仿真,因此選用更容易實現多機同時在線仿真的X-Plane模擬飛行軟件。相對于Flight Gear,X-Plane在數據通信、界面設置上簡單明了,對外提供的通信接口實現起來也比較容易。圖8所示為多機設置界面,其中IP地址為其他計算機在局域網中的IP地址,端口默認為49000。通過此設置即可完成多機在線同時仿真,從而實現多機編隊飛行仿真。

圖8 多機設置界面
采用長機-僚機編隊方法,首先建立兩架無人直升機編隊運動模型[8-10]。由于兩機間高度不存在耦合,所以忽略高度影響,假設兩機處于同一水平面內,建立如圖9所示的以僚機速度方向為x軸的固連于僚機的旋轉坐標系xWy,其中長機速度和航向角分別為vL、ψL,僚機對應為vW、ψW,其中ψE為航向角偏差信號。

圖9 編隊相對運動關系
兩機間位置關系可表示為:
(1)
式(1)為非線性方程。應用小擾動和小角度假設,在水平面內,對其進行線性化處理:
(2)
編隊飛行中每架無人機都安裝自動駕駛儀,其一階動力學模型如下:
(3)
式中:τv為無人機速度時間常數;τψ為航向角時間常數;下標c表示控制量。結合式(2)和式(3)得到編隊運動數學模型如下:
(4)
由此可知,編隊飛行中主要控制僚機速度和航向角,從而跟隨長機并保持一定距離即保持與長機相對位置不變。
X-Plane 模擬飛行軟件提供了一個基于UDP通信協議的外部數據接口,其中發送端口默認為49000,應用程序通過此接口可以接受X-Plane中直升機相關的飛行數據,比如姿態、速度、高度、位置等,還可以獲取環境的相關信息。接收端口默認為49005,通過此端口應用程序可以向X-Plane發送四通道控制指令,完成對直升機的控制。X-Plane對外通信的組幀結構如圖10所示,主要包括兩個部分:幀頭和有效數據,其中幀頭為字符串“DATA0”,有效數據由有限組數據構成,每組數據36字節共9個數據,第一位為組號用來標識該組數據表示那種類型的信息。

圖10 中繼轉發的幀結構
由于通信協議的不同,在X-Plane和等效飛控之間通過轉發中繼程序進行數據的轉發,如圖11所示。轉發中繼是基于MFC(Microsoft Foundation Classes)開發的應用程序,實現了兩個數據通信接口,UDP通信用來接收X-Plane中有關無人直升機的飛行數據,并通過串口轉發給等效飛控,等效飛控根據編隊控制要求,產生相應的四通道控制指令,經過轉發中繼,從而實現對X-Plane中的模型飛機進行相應控制,達到編隊效果的目的。

圖11 中繼轉發的通信模式
為了驗證系統的相關設計目標,對系統進行了聯合仿真測試。其測試整體實物圖如圖12所示,圖13為地面站控制界面,圖14為飛行實景仿真界面,經過測試驗證表面,仿真系統可以很好地進行多機編隊飛行的測試,達到了預期設計目標。

圖12 整體實物圖

圖13 地面站

圖14 飛行視景
本文基于X-Plane飛行模擬仿真平臺設計和實現了多無人直升機編隊飛行可視化仿真驗證平臺。 該系統利用X-Plane自帶的直升機模型,開發了等效飛行控制和地面站軟件,實現了對編隊算法效果的可視化仿真。仿真結果表明,該系統實現以簡單、有效、直觀的方式驗證各種編隊策略的實際飛行效果,對多機編隊方法的設計、實現和驗證具有一定的參考價值。