明 浩 祖家奎
(南京航空航天大學(xué)自動(dòng)化學(xué)院 江蘇 南京 210000)
艦載型無人直升機(jī)是在海況環(huán)境下飛行并以海面移動(dòng)的艦艇或船舶為起飛和回收平臺(tái)的,其飛行受到海風(fēng)復(fù)雜環(huán)境影響;其起飛回收受到空間、時(shí)效性、動(dòng)態(tài)性以及精確性等因素的約束[1]。因此艦載型無人直升機(jī)飛行控制要比陸基的控制難度大。為了降低研制成本、減小試飛風(fēng)險(xiǎn),艦載無人直升機(jī)飛行仿真系統(tǒng)的設(shè)計(jì)開發(fā)則尤為重要[2]。
針對(duì)飛行控制仿真驗(yàn)證系統(tǒng),國(guó)內(nèi)外學(xué)者展開了大量研究,多是以常規(guī)陸基飛行仿真的技術(shù)要求開發(fā)的[3-4],尚不能滿足?;h(huán)境和特殊功能要求下的仿真驗(yàn)證。本文針對(duì)某型無人直升機(jī)由陸基型升級(jí)為?;偷募夹g(shù)要求,提出了其飛行控制仿真的系統(tǒng)方案,然后建立了艦船、直升機(jī)運(yùn)動(dòng)學(xué)模型和艦機(jī)仿真通信機(jī)制,并基于桌面端實(shí)時(shí)操作系統(tǒng)設(shè)計(jì)了飛行控制軟件(以下稱“等效飛控”)的整體架構(gòu)。隨后針對(duì)仿真過程中的視景軟件驅(qū)動(dòng)、艦面控制軟件等技術(shù)細(xì)節(jié)給出了具體的實(shí)現(xiàn)方案。最后通過仿真測(cè)試驗(yàn)證了系統(tǒng)的可行性,從而為艦載無人直升機(jī)飛行控制系統(tǒng)的研制奠定了基礎(chǔ)。
為了實(shí)現(xiàn)?;h(huán)境下無人直升機(jī)飛行與起降回收控制,需要艦船與機(jī)載飛控系統(tǒng)進(jìn)行實(shí)時(shí)地信息交換和有效控制,機(jī)載飛控需要實(shí)時(shí)地獲取直升機(jī)與艦船的相對(duì)和絕對(duì)運(yùn)動(dòng)信息,同時(shí)艦船的實(shí)時(shí)搖晃和運(yùn)動(dòng)信息也要傳輸?shù)綑C(jī)載飛控。因此,需要兩套數(shù)據(jù)通信系統(tǒng)來實(shí)現(xiàn)艦/機(jī)信息交換:一是常規(guī)的飛控地面站測(cè)控鏈路;二是艦/機(jī)運(yùn)動(dòng)信息的通信鏈路。此外,還要進(jìn)行艦船運(yùn)動(dòng)建模,并對(duì)地面站軟件、飛行視景軟件以及飛行控制軟件等做出更改。根據(jù)上述技術(shù)需求,提出了如圖1所示的方案,其中X-Plane主要完成對(duì)包括UMH以及著艦干擾等在內(nèi)的仿真模型的動(dòng)態(tài)解算和視景顯示,等效飛控則是實(shí)現(xiàn)無人直升機(jī)導(dǎo)航解算、制導(dǎo)與控制的相關(guān)實(shí)時(shí)運(yùn)算。艦載地面站負(fù)責(zé)接收操作人員指令,并展示著艦軌跡和相關(guān)數(shù)據(jù)。操縱桿提供備份控制通道。在緊急狀況下操作人員可以手動(dòng)控制返航。轉(zhuǎn)發(fā)中繼則是實(shí)現(xiàn)網(wǎng)絡(luò)通信和串口通信之間的轉(zhuǎn)換。
圖1 著艦仿真系統(tǒng)整體架構(gòu)示意圖
2.1 模型建立
(1)
Rotorlib提供了專門的配平/線性化接口。配平操作按高度和速度矢量計(jì)算配平狀態(tài)。
[xtrimutrimytrim]=rltrim(heliH[VxVyVz])
(2)
線性化操作在配平狀態(tài)基礎(chǔ)上按小擾動(dòng)原理獲取增量方程:
[ABCD]=rllinmod(xtrimutrimytrim)
(3)
(4)
式中:狀態(tài)量包括三軸位移、三軸速度、三軸角速率和地面系歐拉角。輸入量包括總距、縱橫向周期變距和尾槳距。
2.1.2 艦船運(yùn)動(dòng)模型艦船基準(zhǔn)運(yùn)動(dòng)模型為:
(5)
式中:us為艦船船舷方向的航行速度,vs為垂直于船舷方向的航行速度,ψS0為船舷航向角。此外采用正弦波疊加的方式近似模擬艦船六自由度擾動(dòng)運(yùn)動(dòng)[5]:
(6)
式中:Yi、ωt、φi分別為各疊加運(yùn)動(dòng)的幅值、頻率和初始相位。
2.2 艦機(jī)通信與信息交換艦機(jī)通信是指等效飛行控制與艦載地面站之間的電臺(tái)通信,通信協(xié)議如圖2所示。其中上行數(shù)據(jù)是用戶發(fā)出的指令例如:艦面起飛、脫離、爬高、艦面跟隨、著艦回收等,相關(guān)指令在500 ms之內(nèi)未收到來自等效飛控的回報(bào),自動(dòng)重新發(fā)送最多3次。否則認(rèn)為艦機(jī)通信失敗。下行數(shù)據(jù)較為龐大,基本涵蓋了大部分UMH和艦船的運(yùn)動(dòng)信息[6]。為了避免占用過多系統(tǒng)資源,采取“快速”、“中速”、“慢速”三種頻率下發(fā)數(shù)據(jù)。例如數(shù)據(jù)更新率較低的經(jīng)緯度、高度等信息采取“慢”幀發(fā)送,發(fā)送頻率1 Hz。而更新率較快的內(nèi)環(huán)姿態(tài)等信息采取快幀發(fā)送,頻率為20 Hz。
圖2 艦機(jī)仿真通信協(xié)議示意圖
圖3 艦機(jī)仿真通信協(xié)議示意圖
2.3 等效飛行控制等效飛行控制軟件根據(jù)艦船和UMH的位姿信息完成導(dǎo)航、制導(dǎo)與控制的解算,實(shí)現(xiàn)對(duì)無人直升機(jī)著艦的精確控制。相當(dāng)于桌面端的虛擬飛行控制計(jì)算機(jī)。軟件開發(fā)平臺(tái)為Visual Studio,開發(fā)語(yǔ)言為C語(yǔ)言。組成模塊間數(shù)據(jù)輸入輸出關(guān)系如圖3所示,各個(gè)模塊之間采用共享內(nèi)存的方式進(jìn)行數(shù)據(jù)交換。每個(gè)模塊都至少包含一個(gè)實(shí)時(shí)循環(huán)運(yùn)算任務(wù),各任務(wù)的頻率、優(yōu)先級(jí)、堆棧大小由表1給出。數(shù)據(jù)融合和導(dǎo)航解算負(fù)責(zé)為制導(dǎo)模塊和控制模塊提供飛行絕對(duì)和相對(duì)位姿信息,數(shù)據(jù)融合兼有濾波和傳感器容錯(cuò)功能。制導(dǎo)模塊分為水平模態(tài)管理和垂直模態(tài)管理,UMH水平模態(tài)包括:懸停、回轉(zhuǎn)、縱飛、橫飛、直飛、轉(zhuǎn)彎、定速跟隨等。垂直模塊包括自動(dòng)起飛、定高跟蹤、自動(dòng)著艦、自動(dòng)回收等模態(tài)??刂坡山馑闳蝿?wù)根據(jù)制導(dǎo)模塊給出的控制指令的同時(shí)采用經(jīng)典的PID控制完成對(duì)縱向、橫向、航向和總距四個(gè)通道變距同步解算,為了防止輸出變距的跳變,同時(shí)進(jìn)行的還有變距軟化。通信模塊由數(shù)據(jù)接收任務(wù)和數(shù)據(jù)發(fā)送兩個(gè)子任務(wù)構(gòu)成,采用查詢方式完成與轉(zhuǎn)發(fā)中繼之間的串口通信。數(shù)據(jù)記錄模塊以數(shù)據(jù)流形式存儲(chǔ)控制參數(shù)和飛行數(shù)據(jù),是整個(gè)飛控軟件的“黑盒子”。
表1 等效控制仿真任務(wù)調(diào)度表
圖4 直升機(jī)和艦船三維視景模型
2.4 著艦視景與數(shù)據(jù)驅(qū)動(dòng)著艦視景軟件接收來自等效飛控的舵面信息,完成動(dòng)態(tài)模型解算和三維視景展示。本文采用的是X-plane 9專業(yè)飛行仿真軟件,其使用葉素法將無人直升機(jī)分割成有限的元素,通過對(duì)這些元素分別進(jìn)行受力分析,結(jié)合飛機(jī)的重心和質(zhì)量等數(shù)據(jù),計(jì)算飛機(jī)的加速度,進(jìn)而可以得出速度和位置等信息[8]。模型解算的速度可以通過Operations&Warnings菜單下的Flight-model選項(xiàng)進(jìn)行設(shè)置,考慮到本文的研究對(duì)象是輕小型無人直升機(jī),所以設(shè)置為每圖形幀3次模型解算[9]。UMH的和艦船的三維視景模型如圖4所示。將兩臺(tái)運(yùn)行X-Plane的計(jì)算機(jī)和等效飛控計(jì)算機(jī)連接到局域網(wǎng)中,其中一臺(tái)負(fù)責(zé)傳輸無人直升機(jī)的運(yùn)動(dòng)信息,另一臺(tái)中將飛機(jī)永久固定于艦艇的飛行甲板的降落點(diǎn)上,間接獲得艦艇的六自由度運(yùn)動(dòng)信息。二者需處于同一機(jī)場(chǎng)附近,雙方通過 Net connects菜單下的IP of Multi-player選項(xiàng)實(shí)現(xiàn)地景共享。同時(shí)將二者的Data Receiver選項(xiàng)均設(shè)置為轉(zhuǎn)發(fā)中繼所在的IP地址以實(shí)現(xiàn)數(shù)據(jù)傳輸。網(wǎng)絡(luò)連接的所有的發(fā)送端口號(hào)設(shè)置為49000,接收端口號(hào)設(shè)置為49005。建立網(wǎng)絡(luò)連接之后,X-Plane可以經(jīng)過轉(zhuǎn)發(fā)中繼向等效飛控軟件周期性發(fā)送飛機(jī)與艦船的狀態(tài)信息,同時(shí)接收來自等效飛控軟件解算出的槳距、油門等信息,上下行通信協(xié)議如圖5所示,其中包同步幀頭為5個(gè)字節(jié),內(nèi)容為“DATA0”。數(shù)據(jù)組標(biāo)簽號(hào)可以從DataIput&Output菜單下查詢到[10],例如俯仰角、滾轉(zhuǎn)角和航向角的標(biāo)簽號(hào)為18,數(shù)據(jù)段占用36個(gè)字節(jié),由該組數(shù)據(jù)按順序依次排列,表2列出了X-Plane中槳距和發(fā)動(dòng)機(jī)的相關(guān)信息。
圖5 X-Plane數(shù)據(jù)交互協(xié)議示意圖
上行舵面標(biāo)簽號(hào)字節(jié)位置范圍縱向周期變距115-8[-1.0,1.0]橫向周期變距111-4[-1.0,1.0]總距391-4[1.5,14.5]槳距394-8[-1.0,1.0]油門251-4[0.0,10.0]
圖6 飛行軌跡加載流程示意圖
2.5 艦面控制軟件艦面控制站是基于Qt圖形界面框架設(shè)計(jì)開發(fā)的,主要完成對(duì)飛行狀態(tài)和著艦過程的直觀展示并接收操作人員的指令發(fā)送給等效飛控。主要包含以下模塊:(1) 數(shù)字地圖顯示模塊:該模塊是基于百度地圖API開發(fā)的,主要用于顯示預(yù)設(shè)航路,當(dāng)前飛機(jī)、艦船的航跡等信息。Qt與Javascript腳本之間的交互過程如圖6所示。軟件運(yùn)行時(shí),首先由QWebview加載JavaScript腳本文件,當(dāng)需要從Qt調(diào)用JavaScript相關(guān)函數(shù)時(shí),使用QWebview自帶的函數(shù)即可實(shí)現(xiàn)。而反向的從JavaScript至Qt的回調(diào),則先將需要回調(diào)的函數(shù)定義為公共槽函數(shù)類型,然后使用該對(duì)象名稱和實(shí)例指針暴露給JavaScript腳本,從而實(shí)現(xiàn)相關(guān)函數(shù)的調(diào)用。(2) 實(shí)時(shí)飛行數(shù)據(jù)顯示模塊:實(shí)時(shí)飛行數(shù)據(jù)顯示功能包含了三個(gè)部分:曲線模塊、平顯模塊、數(shù)值顯示模塊。實(shí)時(shí)數(shù)據(jù)曲線模塊通過開源繪圖曲線類QCustomplot展現(xiàn)高度、速度、以及變距的變化趨勢(shì);平顯模塊采用矢量圖疊加的方式模擬航空儀表盤,將飛行器的高度、垂向速度、地速、姿態(tài)角、航向角等數(shù)據(jù)直觀地呈現(xiàn)出來;飛行狀態(tài)和飛行數(shù)據(jù)幀顯示模塊均采用數(shù)據(jù)表格的形式,采用定時(shí)刷新的方式更新數(shù)據(jù),更新頻率為2 Hz。(3) 著艦控制指令模塊:飛行控制指令模塊用于給機(jī)載飛控發(fā)送控制指令。在遙控面板上包含三類指令信息,分別是:通用指令、功能指令和遙調(diào)指令,當(dāng)用戶按鈕觸發(fā)時(shí),會(huì)觸發(fā)指令發(fā)送消息,相應(yīng)槽函數(shù)會(huì)進(jìn)行數(shù)據(jù)的組幀和串口發(fā)送數(shù)據(jù)。(4) 參數(shù)配置及數(shù)據(jù)記錄模塊:參數(shù)配置模塊是允許用戶通過地面站配置UMH相關(guān)信息,如傳感器安裝位置,控制律參數(shù)等信息。也可以通過文件直接進(jìn)行參數(shù)導(dǎo)入。數(shù)據(jù)記錄模塊則會(huì)記錄地面站接收到的所用數(shù)據(jù),以便數(shù)據(jù)回放模塊重現(xiàn)控制過程。
為驗(yàn)證仿真系統(tǒng)的相關(guān)設(shè)計(jì)目標(biāo),對(duì)系統(tǒng)進(jìn)行了聯(lián)合測(cè)試仿真。系統(tǒng)測(cè)試圖片如圖7所展示,由上至下依次為艦載地面站截圖、視景截圖和系統(tǒng)整體效果圖,經(jīng)過測(cè)試驗(yàn)證表明,仿真系統(tǒng)各項(xiàng)功能正常。達(dá)到了預(yù)期設(shè)計(jì)目標(biāo)。
圖7 系統(tǒng)運(yùn)行實(shí)物圖與界面
本文從需求出發(fā),設(shè)計(jì)了仿真系統(tǒng)的整體框架,建立了著艦仿真系統(tǒng)所需的各項(xiàng)數(shù)學(xué)模型。完成各個(gè)局部子系統(tǒng)的模塊劃分與實(shí)際開發(fā),在μC/OS-II實(shí)時(shí)操作系統(tǒng)桌面端移植的基礎(chǔ)上,完成了等效飛行控制軟件的設(shè)計(jì)開發(fā),基本還原了機(jī)載飛控運(yùn)行環(huán)境與核心功能。在X-Plane的基礎(chǔ)上完成了著艦三維視景的展示和數(shù)據(jù)的交互,最后基于C++圖形用戶界面開發(fā)框架Qt,實(shí)現(xiàn)了艦載地面控制站軟件的開發(fā),并設(shè)計(jì)了相關(guān)通信機(jī)制,完成了各個(gè)設(shè)備之間的實(shí)時(shí)數(shù)據(jù)交換和實(shí)時(shí)仿真測(cè)試。實(shí)現(xiàn)了著艦控制系統(tǒng)導(dǎo)航、制導(dǎo)和控制算法的快速實(shí)時(shí)仿真。達(dá)到了預(yù)期效果,具有一定的工程實(shí)用價(jià)值。
參考文獻(xiàn)
[1] 呂海龍. 基于RTX的無人機(jī)實(shí)時(shí)飛行仿真系統(tǒng)研究[D].南京航空航天大學(xué),2015.
[2] 黃華, 徐幼平, 鄧志武. 基于Flightgear模擬器的實(shí)時(shí)可視化飛行仿真系統(tǒng)[J]. 系統(tǒng)仿真學(xué)報(bào), 2007, 19(19):4421-4423.
[3] 萬(wàn)順飛. 小型無人直升機(jī)前飛段飛行控制技術(shù)研究[D].南京航空航天大學(xué),2016.
[4] 童中翔, 王曉東. 飛行仿真技術(shù)的發(fā)展與展望[J]. 飛行力學(xué), 2002, 20(3):5-8.
[5] 郭署山. 無人直升機(jī)著艦控制技術(shù)研究[D].南京航空航天大學(xué),2010.
[6] 熊鵬飛. 基于HLA架構(gòu)的無人機(jī)飛行仿真系統(tǒng)[D].電子科技大學(xué),2012.
[7] 李華偉, 王家星, 李紅光,等. 基于Creator/Vega Prime的無人機(jī)著艦仿真驗(yàn)證系統(tǒng)設(shè)計(jì)[J]. 中國(guó)電子科學(xué)研究院學(xué)報(bào), 2012, 7(4):374-379.
[8] Clarke S, Papathakis K, Samuel A, et al. NASA SCEPTOR electric concept aircraft power system: X-plane electric propulsion system design and qualification for crewed flight testing[C]// Transportation Electrification Conference and Expo. IEEE, 2016:1-27.
[9] Bittar A, Vitzilaios N I, Rutherford M J, et al. An integrated framework for cooperative ground and aerial vehicle missions utilizing Matlab and X-Plane[C]// Systems Conference (SysCon), 2015 9th Annual IEEE International, 2015: 495-500.
[10] Young Jun Seo,Chan Oh Min,Dae Woo Lee. The Development and Flight Test of Auto-landing System Using X-Plane Simulator[C]// Proceedings of 2011 2nd International Conference on Innovative Computing and Communication and 2011 Asia-Pacific Conference on Information Technology and Ocean Engineering(CICC-ITOE 2011 V2).2011:4.