許夢華
(沈陽旋飛航空技術有限公司,遼寧沈陽,110035)
關鍵字: 無人機;模擬飛行控制系統;Qt5.9.1;軟件結構
隨著航空航天技術幾十年的快速發展,新型舵面控制技術呈現快速發展的趨勢。地面模擬飛行控制系統作為無人機新型舵面技術驗證和評估重要手段,其性能指標、可靠性和安全性就顯得尤為重要。本文所介紹的平臺軟件是基于Qt5.9.1設計,結合地面模擬飛行平臺的硬件結構,以XXX型固定翼無人機的新型舵面技術為對象,操縱員在風洞虛擬飛行試驗和風洞自由飛行試驗兩種場景中,采用地面模擬飛行控制系統中的指揮臺、俯仰操縱臺、偏航/滾轉操縱臺和推力操縱臺實現人機交互式監視、控制,最終完成無人機大氣自由飛初步驗證階段的技術保障。
地面模擬飛行控制系統的硬件結構分為指揮臺,俯仰操縱臺,偏航/滾轉操縱臺,推力操縱臺,各操縱臺自動綁定到固定的網絡地址組合成局域網絡。

圖1 地面模擬飛行控制系統的硬件結構
指揮臺擁有對整套地面模擬飛行控制系統功能配置、模式配置、飛行器參數調節等功能,是其他操縱臺與飛行器通訊連接的接口,由指揮臺可以完成其他操縱臺操縱指令的上傳、飛控狀態向其他操縱臺的分發等工作;俯仰操縱臺主要完成飛行過程中俯仰操作,可以完成所有姿態相關的控制功能;偏航/滾轉操縱臺:主要完成飛行過程中偏航/滾轉操作,用于進行飛機橫向人機交互控制;推力操縱臺:主要完成飛行過程中油門操作,用于進行推力人機交互控制。地面模擬飛行控制系統的硬件結構如圖1所示,可擴展性強、獨立簡潔。
根據XXX型固定翼無人機的新型舵面技術驗證與評估的實際需求,軟件基于Qt5.9.1進行開發,運行在工控機上,運行環境為Win10系統。Qt是一款跨平臺C++圖形用戶界面應用程序開發框架,具備優良的跨平臺性能、良好的面相對象性、易用性和運行速度快等優點,該軟件界面通過UI完成,底層通過C++完成邏輯通信【1】,操縱臺軟件架構圖如圖2所示。

圖2 操縱臺軟件架構
根據操縱臺軟件架構圖,軟件的設計分成以網絡通信、數據采集與顯示2大模塊進行開發。
2.2.1 網絡通信模塊
網絡通信模塊是基于網絡通訊協議實現指揮臺軟件和各操縱臺軟件的通訊,軟件使用Qt中的QUdpSocket類,指揮臺作為服務器端,各操縱臺作為客戶端,它門能夠根據操縱臺自身角色顯示對應的界面。客戶端與服務端通過網絡連接,具有良好的獨立性,不用拘束于顯示器的顯示內容,靈活實現,線路簡潔,如圖3所示。

圖3 網絡結構
(1)通信協議
指揮臺與各操縱臺的通訊采用網絡組播方式發送。發送內容使用JSON字符串格式標記。指揮臺通過數據鏈路(無線通訊),將接收到的飛行器信息封裝成相應的類型,并將封裝好的JSON字符串通過有線發送到組播網絡中,消息自動發送到網絡中的其他監聽操縱臺,不需關心此時是處于風洞虛擬飛還是風洞自由飛。
現約定其通信協議如下表。

表1 通信協議

表2 TYPE 定義類型

飛行器系統狀態(SYSSTATUS)3 位置(POS)經度(LAT) Double,degree緯度(LNG) Double,degree高度(ALT) Float,m空速(AS) Float,m/s地速(GS) Float,m/s相對高度(REL_ALT) Float,m 4席位間心跳包(HEARTBEAT)操縱臺會以1Hz的頻率向組播網絡中發送自己的心跳包,同樣會接收到其他操縱臺的心跳包,其他操縱臺可以判斷此種情況下時候正常工作。序列(SEQ) Int,累加發送,999后自動清零數據鏈路狀況(LINKSTATUS),(指揮臺發送有效)鏈路連接狀況5溫度(TEMPSTATUS) Float,攝氏度電壓(VOLTAGESTATUS)Float,v

表3 指令設計
(2)QUdpSocket類類介紹
UDP(User Datagram Protocol,用戶數據報協議)是一個輕量級的、不可靠的、面向數據報的、無連接的協議。QUdpSocket是QAbstractSocket的一個子類,允許你發送和接收UDP數據報。使用該類最常見的方法是使用bind()綁定到一個地址和端口,然后調用writeDatagram()和readDatagram()/receiveDatagram()來傳輸數據。每當有數據報寫入網絡時,套接字就會發出bytesWritten()信號。每當數據報到達時,就會發出readyRead()信號。在這種情況下,hasPendingDatagrams()返回true。調用pendingDatagramSize()獲取第一個待處理數據報的大小,調用 readDatagram() 或 receiveDatagram() 讀取它【2】。
該機制由協議、本地地址、本地端口、遠程地址、遠程端口5個信息構成,其傳輸速度更快,無需建立連接,實現從Socket建立到傳輸數據完成后管理連接的功能【3】。
①協議指定了Socket所使用的通信協議,一般用TCP或UDP;②本地地址即網絡協議分配給本地主機的地址;③本地端口用以和本地運行的其它程序所區分;④遠程地址即依照網絡分配給遠程主機的網絡地址;⑤遠程端口號用以和遠程主機運行的其它程序所區分。
2.2.2 數據采集與顯示模塊
數據采集與顯示模塊實現各操縱臺實時采集網絡中的數據,采用數字、曲線等形式實時顯示在軟件界面上,并通過醒目的顏色塊提示以消息的形式提示異常情況,便于操縱者及時調整處理。
運用QUdpSocket類,網口接收到數據后,會將數據存入接收緩沖區,并且發出一個信號,因此需要定義一個槽,將其與這個信號相連接,這樣每次網口有新數據到來,我們就可以在槽中通過成員函數readDatagram()將接收緩沖區的數據全部讀出來,接著根據通信協議,對指揮臺發給各操縱臺的一幀數據進行解析,將有效數據顯示到軟件的界面上。
(1)數據流程
指揮臺啟動,檢查硬件設備,包括網絡通信,數據鏈路狀態,顯示任務類型選擇(風洞虛擬飛,風洞自由飛),檢查相應的操縱臺是否連接。當數據鏈路通信完成,則轉發相應數據到對應操縱臺,同時監聽各操縱臺上傳的數據,進行封裝并通過數據鏈路發送到飛行器。各操縱臺啟動過程相似,軟件啟動后檢查面板以及操縱桿的可行性,網絡通信,與指揮臺的連接狀態。一切正常之后,可等待指揮臺發送狀態信息以及向指揮臺發送操縱指令。
(2)界面說明
①操縱臺啟動界面
啟動界面為在指揮臺未能指定操縱臺狀態或者工作狀態時的默認界面,為所有操縱臺共有。當操縱臺隨計算機啟動后自動開啟后,給操縱者提供一定的信息數據,界面布局如圖4所示。

圖4 界面布局
②基礎界面
a.軟件名稱
b.軟件版本
c.網絡狀況
d.硬件狀況
e.上一次的使用時間
f.上一次使用的模式
g.上一次使用的機型
③俯仰操縱臺界面
a.姿態儀表
b.當前場景類型,飛機型號
c.迎角、側滑角
d.地速,表速
④偏航/滾轉操縱臺界面
a.姿態儀表
b.當前場景類型,飛機型號
c.舵面狀態
⑤推力操縱臺界面
a.姿態儀表
b.當前場景類型,飛機型號
c.油門儀表
⑥消息層
a.正在退出系統
b.正在關機
c.正在進入系統
d.正在切換至xx場景
e.正在切換至xx飛機型號
本文對地面模擬飛行控制軟件設計和實現分別進行了系統的描述,詳細介紹了網絡通信協議和軟件界面布局,通過在風洞虛擬飛行試驗和風洞自由飛行試驗兩種場景中的全性能測試,實時監測無人機工作狀況和狀態參數,操縱指揮臺、俯仰操縱臺、偏航/滾轉操縱臺、推力操縱臺,以及故障報警處置功能,為新型舵面技術提供了有效的評估和驗證方式。