本發(fā)明涉及飛行器控制技術(shù)領(lǐng)域,尤其是涉及一種模擬飛機(jī)的可視化系統(tǒng)的設(shè)計(jì)方法。
背景技術(shù):
直升機(jī)的發(fā)展已有百余年的歷史,其垂直起降、懸停、側(cè)飛等優(yōu)越的低空性能,以及毫不遜色的高空高速性能令其他飛行器望塵莫及。直升機(jī)適于在不同天氣條件和復(fù)雜地面環(huán)境下執(zhí)行各種任務(wù),現(xiàn)已廣泛用于作戰(zhàn)、運(yùn)輸、巡邏、救護(hù)等多個(gè)領(lǐng)域。直升機(jī)技術(shù)已經(jīng)成為航空高技術(shù)的重要組成部分,受到世界各國(guó)的普遍重視。直升機(jī)飛行性能的研究、飛行品質(zhì)的評(píng)估是直升機(jī)研制過(guò)程中不可或缺的重要環(huán)節(jié)。飛行可視化作為一種經(jīng)濟(jì)有效的途徑,利用計(jì)算機(jī)對(duì)直升機(jī)飛行過(guò)程進(jìn)行大量的模型計(jì)算,從中發(fā)現(xiàn)問(wèn)題和缺陷,尋找解決和改進(jìn)的方法。在保證安全的前提下,可視化是測(cè)試新設(shè)備與技術(shù)的最佳手段。飛行可視化平臺(tái)在軍事和民用領(lǐng)域都有廣泛的應(yīng)用,極具研究?jī)r(jià)值。飛行可視化可安全的重現(xiàn)多種人機(jī)失效狀態(tài),有利于研究人員分析和解決相關(guān)難題。這是一項(xiàng)涉及多門(mén)交叉學(xué)科的高、精、尖技術(shù),也是國(guó)防建設(shè)迫切需要的研究?jī)?nèi)容。但現(xiàn)有可視化一般只能提供數(shù)值形態(tài)的計(jì)算數(shù)據(jù),不夠直觀,控制系統(tǒng)中非常見(jiàn)形態(tài)的缺陷很難發(fā)現(xiàn),這有可能成為飛行器的隱患,甚至產(chǎn)生致命的后果。針對(duì)當(dāng)前問(wèn)題,進(jìn)一步建立更加直觀的視景可視化平臺(tái)成為飛行器可視化的一種趨勢(shì)。
Simulink是MATLAB最重要的組件之一,它提供一個(gè)動(dòng)態(tài)系統(tǒng)建模、可視化和綜合分析的集成環(huán)境。在該環(huán)境中,無(wú)需大量書(shū)寫(xiě)程序,而只需要通過(guò)簡(jiǎn)單直觀的鼠標(biāo)操作,就可構(gòu)造出復(fù)雜的系統(tǒng)。Simulink具有適應(yīng)面廣、結(jié)構(gòu)和流程清晰及可視化精細(xì)、貼近實(shí)際、效率高、靈活等優(yōu)點(diǎn),并基于以上優(yōu)點(diǎn)Simulink已被廣泛應(yīng)用于控制理論和數(shù)字信號(hào)處理的復(fù)雜可視化和設(shè)計(jì)。同時(shí)有大量的第三方軟件和硬件可應(yīng)用于或被要求應(yīng)用于Simulink。
Simulink是MATLAB中的一種可視化可視化工具,是一種基于MATLAB的框圖設(shè)計(jì)環(huán)境,是實(shí)現(xiàn)動(dòng)態(tài)系統(tǒng)建模、可視化和分析的一個(gè)軟件包,被廣泛應(yīng)用于線(xiàn)性系統(tǒng)、非線(xiàn)性系統(tǒng)、數(shù)字控制及數(shù)字信號(hào)處理的建模和可視化中。Simulink可以用連續(xù)采樣時(shí)間、離散采樣時(shí)間或兩種混合的采樣時(shí)間進(jìn)行建模,它也支持多速率系統(tǒng),也就是系統(tǒng)中的不同部分具有不同的采樣速率。為了創(chuàng)建動(dòng)態(tài)系統(tǒng)模型,Simulink提供了一個(gè)建立模型方塊圖的圖形用戶(hù)接口(GUI) ,這個(gè)創(chuàng)建過(guò)程只需單擊和拖動(dòng)鼠標(biāo)操作就能完成,它提供了一種更快捷、直接明了的方式,而且用戶(hù)可以立即看到系統(tǒng)的可視化結(jié)果。
Simulink是用于動(dòng)態(tài)系統(tǒng)和嵌入式系統(tǒng)的多領(lǐng)域可視化和基于模型的設(shè)計(jì)工具。對(duì)各種時(shí)變系統(tǒng),包括通訊、控制、信號(hào)處理、視頻處理和圖像處理系統(tǒng),Simulink提供了交互式圖形化環(huán)境和可定制模塊庫(kù)來(lái)對(duì)其進(jìn)行設(shè)計(jì)、可視化、執(zhí)行和測(cè)試。.
構(gòu)架在Simulink基礎(chǔ)之上的其他產(chǎn)品擴(kuò)展了Simulink多領(lǐng)域建模功能,也提供了用于設(shè)計(jì)、執(zhí)行、驗(yàn)證和確認(rèn)任務(wù)的相應(yīng)工具。Simulink與MATLAB緊密集成,可以直接訪(fǎng)問(wèn)MATLAB大量的工具來(lái)進(jìn)行算法研發(fā)、可視化的分析和可視化、批處理腳本的創(chuàng)建、建模環(huán)境的定制以及信號(hào)參數(shù)和測(cè)試數(shù)據(jù)的定義。
當(dāng)前,直升機(jī)的發(fā)展趨勢(shì)朝著高度集成化、穩(wěn)定性、可靠性、自主性以及長(zhǎng)航時(shí)、高速度、大載荷等方向發(fā)展。直升機(jī)飛行可視化系統(tǒng)的研究是在以一套完善的飛行控制系統(tǒng)的基礎(chǔ)上展開(kāi)的,因此,要說(shuō)明飛行可視化系統(tǒng)的需求,就必須先說(shuō)明飛控系統(tǒng)的需求分析。
直升機(jī)飛行控制系統(tǒng)大致有以下的需求:
①直升機(jī)是穩(wěn)定性差、耦合度高的飛行器,不易控制,具有多變量、非線(xiàn)性交耦和柔性結(jié)構(gòu)的動(dòng)力學(xué)特性,需要建立能夠準(zhǔn)確描述直升機(jī)特性的非線(xiàn)性動(dòng)力學(xué)模型;②要求有精確的姿態(tài)控制、自主定點(diǎn)、起飛/著陸、軌跡自主控制(包括預(yù)定航線(xiàn)自主飛行、遙控飛行等任務(wù))。直升機(jī)飛行受氣象環(huán)境影響大,還要求有較強(qiáng)的抗風(fēng)擾動(dòng)能力和準(zhǔn)確的飛行控制;③飛控系統(tǒng)需要滿(mǎn)足控制文件所規(guī)定的與所有外部設(shè)備的接口要求,例如數(shù)字量接口的通訊格式、模擬量比例因子等;④要求有較強(qiáng)的監(jiān)控能力及友好的人機(jī)控制界面。
通過(guò)對(duì)飛行控制系統(tǒng)技術(shù)需求較為深入的理解,并緊密結(jié)合項(xiàng)目實(shí)際需要,對(duì)飛行可視化系統(tǒng)的開(kāi)發(fā)提出如下技術(shù)需求:
①構(gòu)建高置信度的對(duì)象特性模型,包括直升機(jī)非線(xiàn)性動(dòng)力學(xué)模型、發(fā)動(dòng)機(jī)模型、執(zhí)行機(jī)構(gòu)特性模型和傳感器模型等;②開(kāi)發(fā)高性能的解算算法、任務(wù)調(diào)度算法和通訊技術(shù),以滿(mǎn)足實(shí)時(shí)可視化的需求;③可視化系統(tǒng)的外部接口要滿(mǎn)足所有的外部真實(shí)設(shè)備的電氣特性,此外需要一定的通用性和擴(kuò)展性;④可視化系統(tǒng)需要具備視景可視化能力,可以直觀地顯示無(wú)人直升機(jī)飛行狀態(tài),并且可以真實(shí)的反應(yīng)試飛區(qū)域的地理環(huán)境、天氣條件等;⑤簡(jiǎn)化可視化系統(tǒng)整體結(jié)構(gòu)。
根據(jù)上述飛行可視化系統(tǒng)的具體要求,以 FlightGear 飛行模擬器為研究中心,設(shè)計(jì)基于FlightGear 的飛行可視化系統(tǒng)總體結(jié)構(gòu)。針對(duì) FlightGear 飛行模擬器、可視化設(shè)備、飛行控制計(jì)算機(jī),研究主要目標(biāo)如下:
①根據(jù)直升機(jī)飛行特性,借鑒 FlightGear 的直升機(jī)動(dòng)力學(xué)模型建模思想,探索適于實(shí)時(shí)可視化的無(wú)人直升機(jī)簡(jiǎn)化建模技術(shù),提高可視化模型的置信度;②根據(jù)項(xiàng)目需求,對(duì) FlightGear 的視景系統(tǒng)做出改進(jìn);對(duì)飛機(jī)模型的定制、實(shí)際地形的定制以及平顯顯示格式的定制等;③改進(jìn)飛行可視化系統(tǒng),使 FlightGear 飛行模擬器成為可選配的視景可視化接口,實(shí)現(xiàn)無(wú)人直升機(jī)飛行數(shù)據(jù)可視化;④通過(guò)對(duì) FlightGear 輸入輸出接口的研究,將 FlightGear 與可視化設(shè)備有機(jī)結(jié)合,建立串行通訊/網(wǎng)絡(luò)通訊兩種可視化通訊環(huán)境,利用 FlightGear 的直升機(jī)動(dòng)力學(xué)模型和視景系統(tǒng),構(gòu)建模擬飛行可視化系統(tǒng)。
直升機(jī)的垂直起降、機(jī)動(dòng)飛行特性使其在各領(lǐng)域得以廣泛應(yīng)用。但是,直升機(jī)是一個(gè)非常復(fù)雜的非線(xiàn)性系統(tǒng),用實(shí)物進(jìn)行研究不但耗費(fèi)資金,而且又不能確保人生安全。所以,研制直升機(jī)飛行模擬可視化平臺(tái)進(jìn)行模擬飛行研究具有較好的科研和經(jīng)濟(jì)意義。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對(duì)上述問(wèn)題,提供一種運(yùn)行穩(wěn)定性好的模擬飛機(jī)的可視化系統(tǒng)的設(shè)計(jì)方法。
為達(dá)到上述目的,本發(fā)明采用了下列技術(shù)方案:本發(fā)明的一種模擬飛機(jī)的可視化系統(tǒng)的設(shè)計(jì)方法,包括如下步驟:
(1)采用兩臺(tái)PC機(jī)實(shí)現(xiàn),一臺(tái)PC機(jī)運(yùn)行Matlab/Simulink軟件,另外一臺(tái)PC機(jī)上運(yùn)行FlightGear飛行模擬器和客戶(hù)端軟件;
(2)其中,第一臺(tái)PC機(jī)的Matlab/Simulink軟件中運(yùn)行著直升機(jī)的動(dòng)力學(xué)模型和飛行控制器模型,通過(guò)實(shí)時(shí)運(yùn)算,解算出大量的姿態(tài)數(shù)據(jù);Matlab/Simulink解算核心將直升機(jī)動(dòng)力學(xué)模型解算出的六自由度姿態(tài)信息依據(jù)UDP協(xié)議打包,通過(guò)客戶(hù)端實(shí)時(shí)發(fā)送給第二臺(tái)電腦的FlightGear視景軟件予以顯示;
(3)同時(shí),第二臺(tái)PC上運(yùn)行的客戶(hù)端軟件可以經(jīng)由RS232協(xié)議控制模塊傳輸更改后的控制參數(shù)給Matlab/Simulink的控制器模塊,進(jìn)而作用于直升機(jī)的動(dòng)力學(xué)模型,兩臺(tái)PC機(jī)相互配合,共同構(gòu)成整個(gè)可視化回路,得到模擬飛機(jī)的可視化系統(tǒng)。
進(jìn)一步地,在步驟(1)中,通過(guò)串口協(xié)議,從Matlab/Simulink解算核心讀取姿態(tài)數(shù)據(jù)并轉(zhuǎn)發(fā)給客戶(hù)端軟件;為了分析數(shù)據(jù)的方便,客戶(hù)端軟件要分析篩選出其中正確的信息并分別顯示其相對(duì)應(yīng)的波形;根據(jù)軟件客戶(hù)端系統(tǒng)功能的要求,要通過(guò)serialPort類(lèi)中的事件接收方法實(shí)現(xiàn)數(shù)據(jù)讀取,通過(guò)調(diào)用波形顯示控件來(lái)實(shí)現(xiàn)數(shù)據(jù)波形的描繪。
進(jìn)一步地,在步驟(1)中,客戶(hù)端軟件從RS232端口接收PC1電腦解算出的姿態(tài)數(shù)據(jù),通過(guò)調(diào)用FlightGear軟件API接口驅(qū)動(dòng)視景可視化引擎的運(yùn)行;在完成可視化數(shù)據(jù)的三維可視化顯示的同時(shí)也兼顧傳統(tǒng)的數(shù)據(jù)波形顯示;
托選相應(yīng)的控件在軟件界面上,其中波特率的選擇ComoBox控件通過(guò)在其Items屬性上添加集合2400、4800、9600、19200、38400、57600、115200實(shí)現(xiàn)這幾種波特率的選擇;對(duì)于飛行姿態(tài)數(shù)據(jù)顯示框TextBox控件通過(guò)把其ScrollBars屬性改為Vertial實(shí)現(xiàn)數(shù)據(jù)滿(mǎn)屏后的翻滾效果;對(duì)于波形顯示控件我們添加制作好的波形控件的dll文件實(shí)現(xiàn)對(duì)其控件的引用;同時(shí),還有放置3個(gè)定時(shí)器用來(lái)對(duì)波形顯示的不斷刷新。
更進(jìn)一步地,在步驟(1)中,所述的串口打開(kāi)和關(guān)閉:定義botton控件的方法實(shí)現(xiàn)串口的打開(kāi)和關(guān)閉,運(yùn)行客戶(hù)端時(shí),串口和波特率設(shè)置完成后,當(dāng)點(diǎn)擊Open按鈕,串口打開(kāi)此時(shí)按鈕文字變?yōu)镃lose,再次點(diǎn)擊按鈕時(shí)串口關(guān)閉,按鈕文字顯示為Open。
進(jìn)一步地,在步驟(2)中,客戶(hù)端包括四個(gè)TextBox控件和三個(gè)用戶(hù)自添加的三個(gè)波形顯示控件,其中第一個(gè)TextBox控件用來(lái)顯示Simulink發(fā)送過(guò)來(lái)的正確的姿態(tài)數(shù)據(jù)信息/12為數(shù)據(jù),其余三個(gè)TextBox控件Yaw/12位數(shù)據(jù)的前兩位、Pitch/12位數(shù)據(jù)的第三四位、Roll/12位數(shù)據(jù)的第五六位,三個(gè)波形控件則相應(yīng)顯示其波形。
進(jìn)一步地,在步驟(2)中,所述FlightGear視景軟件的視景通信模型采用通信雙方都認(rèn)可的UDP通訊協(xié)議;通過(guò)UDP視景通信模塊,可視化平臺(tái)飛行器/Simulink姿態(tài)解算核心產(chǎn)生的大量姿態(tài)數(shù)據(jù)得以實(shí)時(shí)的傳輸給FlightGear視景可視化軟件,驅(qū)動(dòng)可視化引擎的運(yùn)行。
更進(jìn)一步地,在步驟(2)中,視景可視化的實(shí)現(xiàn)依賴(lài)于第三方三維可視可視化軟件FlightGear的應(yīng)用,所述FlightGear視景可視化軟件將FlightGear飛行模擬器作為視景接口,直觀地顯示直升機(jī)的飛行狀態(tài)。
進(jìn)一步地,在步驟(2)中,客戶(hù)端的數(shù)據(jù)通訊:在PC2機(jī)器上運(yùn)行的客戶(hù)端軟件用于實(shí)現(xiàn)控制器參數(shù)的手動(dòng)改變以及可視化過(guò)程中相關(guān)數(shù)據(jù)的顯示。這些基本功能的實(shí)現(xiàn)都依賴(lài)于RS232通信協(xié)議,通過(guò)串口協(xié)議,從Matlab/Simulink解算核心讀取姿態(tài)數(shù)據(jù)并轉(zhuǎn)發(fā)給客戶(hù)端軟件;一方面,客戶(hù)端軟件調(diào)用FlightGear飛行模擬軟件的API接口,驅(qū)動(dòng)可視化引擎的運(yùn)行,另一方面,相關(guān)數(shù)據(jù)以文本曲線(xiàn)的形式予以輔助顯示。
進(jìn)一步地,在步驟(3)中,所述Matlab/Simulink的控制器模塊包括負(fù)責(zé)穩(wěn)定和控制飛行器的姿態(tài)和航跡運(yùn)動(dòng)的飛控模塊和整個(gè)可視化系統(tǒng)中最主要的解算部分的飛行動(dòng)力學(xué)模塊;飛控模塊通過(guò)與飛行動(dòng)力學(xué)模塊的數(shù)據(jù)通信,計(jì)算并輸出相應(yīng)的舵面控制信息控制飛行器的飛行;同時(shí)在本可視化平臺(tái)中,本模塊還可以通過(guò)RS232通訊協(xié)議從客戶(hù)端軟件接收操作人員手動(dòng)輸入的控制參數(shù)信息,并傳輸給飛行動(dòng)力學(xué)模塊,產(chǎn)生對(duì)飛行器的相應(yīng)控制作用;飛行動(dòng)力學(xué)模塊為一個(gè)六自由度的運(yùn)動(dòng)解算方程,輸入為飛機(jī)3個(gè)不同方向所施加的作用力和力矩,輸出為飛行高度、坐標(biāo)信息以及相應(yīng)的俯仰角,滾轉(zhuǎn)角飛行姿態(tài)參數(shù)。
有益效果:本發(fā)明從程序運(yùn)行情況看,達(dá)到了預(yù)期的效果。經(jīng)過(guò)長(zhǎng)期大量的測(cè)試與驗(yàn)證,運(yùn)行穩(wěn)定性好,使用效果良好。
與現(xiàn)有的技術(shù)相比,本模擬飛機(jī)的可視化系統(tǒng)的設(shè)計(jì)方法的優(yōu)點(diǎn)在于:
(1)本發(fā)明以非線(xiàn)性六自由度飛行模型、對(duì)應(yīng)的飛行器控制器及操縱控制等理論為基礎(chǔ),結(jié)合RS232串口通訊協(xié)議、UPD網(wǎng)絡(luò)通訊協(xié)議、OpenGL三維動(dòng)態(tài)顯示技術(shù),利用FlightGear開(kāi)放平臺(tái)設(shè)計(jì)Matlab/FlightGear模擬飛行研究可視化平臺(tái),構(gòu)建了一個(gè)全功能、全動(dòng)態(tài)、實(shí)時(shí)的三維可視化系統(tǒng),突破了以往建模的諸多局限。
(2)客戶(hù)端軟件從RS232端口接收PC1電腦解算出的姿態(tài)數(shù)據(jù),通過(guò)調(diào)用FlightGear軟件API接口驅(qū)動(dòng)視景可視化引擎的運(yùn)行;在完成可視化數(shù)據(jù)的三維可視化顯示的同時(shí)也兼顧傳統(tǒng)的數(shù)據(jù)波形顯示。
附圖說(shuō)明
圖1為本發(fā)明的總體框圖;
圖2為本發(fā)明的客戶(hù)端軟件主流程圖;
圖3為本發(fā)明的客戶(hù)端軟件外觀圖;
圖4為本發(fā)明的串口打開(kāi)、關(guān)閉流程圖;
圖5為本發(fā)明的接收事件流程圖;
圖6為本發(fā)明的波形顯示流程圖;
圖7為本發(fā)明的客戶(hù)端數(shù)據(jù)通訊框圖;
圖8為本發(fā)明的數(shù)據(jù)通訊模塊框圖;
圖9為本發(fā)明的Simulink控制器可視化圖。
具體實(shí)施方式
以下實(shí)施例僅處于說(shuō)明性目的,而不是想要限制本發(fā)明的范圍。
實(shí)施例1
如圖1所示,本發(fā)明的一種模擬飛機(jī)的可視化系統(tǒng)的設(shè)計(jì)方法,包括如下步驟:
(1)采用兩臺(tái)PC機(jī)實(shí)現(xiàn),一臺(tái)PC機(jī)運(yùn)行Matlab/Simulink軟件,另外一臺(tái)PC機(jī)上運(yùn)行FlightGear飛行模擬器和客戶(hù)端軟件;
(2)其中,第一臺(tái)PC機(jī)的Matlab/Simulink軟件中運(yùn)行著直升機(jī)的動(dòng)力學(xué)模型和飛行控制器模型,通過(guò)實(shí)時(shí)運(yùn)算,解算出大量的姿態(tài)數(shù)據(jù);Matlab/Simulink解算核心將直升機(jī)動(dòng)力學(xué)模型解算出的六自由度姿態(tài)信息依據(jù)UDP協(xié)議打包,通過(guò)客戶(hù)端實(shí)時(shí)發(fā)送給第二臺(tái)電腦的FlightGear視景軟件予以顯示;
(3)同時(shí),第二臺(tái)PC上運(yùn)行的客戶(hù)端軟件可以經(jīng)由RS232協(xié)議控制模塊傳輸更改后的控制參數(shù)給Matlab/Simulink的控制器模塊,進(jìn)而作用于直升機(jī)的動(dòng)力學(xué)模型,兩臺(tái)PC機(jī)相互配合,共同構(gòu)成整個(gè)可視化回路,得到模擬飛機(jī)的可視化系統(tǒng)。
在步驟(1)中,通過(guò)串口協(xié)議,從Matlab/Simulink解算核心讀取姿態(tài)數(shù)據(jù)并轉(zhuǎn)發(fā)給客戶(hù)端軟件;
為了分析數(shù)據(jù)的方便,客戶(hù)端軟件要分析篩選出其中正確的信息并分別顯示其相對(duì)應(yīng)的波形;因此要具備以下功能:1.串口選擇;2.波特率選擇;3.串口打開(kāi)和關(guān)閉;4.接收、篩選數(shù)據(jù)及顯示;5.數(shù)據(jù)量提示以及歸零;6.俯仰角、滾轉(zhuǎn)角、偏航角波形顯示;7.數(shù)據(jù)文本記錄。
根據(jù)軟件客戶(hù)端系統(tǒng)功能的要求,要通過(guò)serialPort類(lèi)中的事件接收方法實(shí)現(xiàn)數(shù)據(jù)讀取,通過(guò)調(diào)用波形顯示控件來(lái)實(shí)現(xiàn)數(shù)據(jù)波形的描繪。因此,客戶(hù)端軟件系統(tǒng)的主流程設(shè)計(jì)如圖2所示。
軟件界面設(shè)計(jì):客戶(hù)端軟件從RS232端口接收PC1電腦解算出的姿態(tài)數(shù)據(jù),通過(guò)調(diào)用FlightGear軟件API接口驅(qū)動(dòng)視景可視化引擎的運(yùn)行;在完成可視化數(shù)據(jù)的三維可視化顯示的同時(shí)也兼顧傳統(tǒng)的數(shù)據(jù)波形顯示;
如下圖3所示,托選相應(yīng)的控件在軟件界面上,其中波特率的選擇ComoBox控件通過(guò)在其Items屬性上添加集合2400、4800、9600、19200、38400、57600、115200實(shí)現(xiàn)這幾種波特率的選擇;對(duì)于飛行姿態(tài)數(shù)據(jù)顯示框TextBox控件通過(guò)把其ScrollBars屬性改為Vertial實(shí)現(xiàn)數(shù)據(jù)滿(mǎn)屏后的翻滾效果;對(duì)于波形顯示控件我們添加制作好的波形控件的dll文件實(shí)現(xiàn)對(duì)其控件的引用;同時(shí),還有放置3個(gè)定時(shí)器用來(lái)對(duì)波形顯示的不斷刷新。
所述的串口打開(kāi)和關(guān)閉:定義botton控件的方法實(shí)現(xiàn)串口的打開(kāi)和關(guān)閉,運(yùn)行客戶(hù)端時(shí),串口和波特率設(shè)置完成后,當(dāng)點(diǎn)擊Open按鈕,串口打開(kāi)此時(shí)按鈕文字變?yōu)镃lose,再次點(diǎn)擊按鈕時(shí)串口關(guān)閉,按鈕文字顯示為Open。流程圖如圖4所示。
客戶(hù)端包括四個(gè)TextBox控件和三個(gè)用戶(hù)自添加的三個(gè)波形顯示控件,其中第一個(gè)TextBox控件用來(lái)顯示Simulink發(fā)送過(guò)來(lái)的正確的姿態(tài)數(shù)據(jù)信息/12為數(shù)據(jù),其余三個(gè)TextBox控件Yaw/12位數(shù)據(jù)的前兩位、Pitch/12位數(shù)據(jù)的第三四位、Roll/12位數(shù)據(jù)的第五六位,三個(gè)波形控件則相應(yīng)顯示其波形。事件接收程序的流程圖如圖5所示。
(a)數(shù)據(jù)的校驗(yàn)
通過(guò)對(duì)模擬飛行的研究Simulink發(fā)送過(guò)來(lái)的有效數(shù)據(jù)為12位,其中前四位數(shù)據(jù)頭固定為A5 5A 12 A1,最后兩位校驗(yàn)位固定為AA AA,而中間即為我們需要的飛行數(shù)據(jù)信息。
(b)數(shù)據(jù)顯示
如果接收到有效的信息,我們這里把他們轉(zhuǎn)化成字符串類(lèi)型再顯示到相應(yīng)TextBox控件。
(c)波形顯示
客戶(hù)端的數(shù)據(jù)通訊:在PC2機(jī)器上運(yùn)行的客戶(hù)端軟件用于實(shí)現(xiàn)控制器參數(shù)的手動(dòng)改變以及可視化過(guò)程中相關(guān)數(shù)據(jù)的顯示。這些基本功能的實(shí)現(xiàn)都依賴(lài)于RS232通信協(xié)議,通過(guò)串口協(xié)議,從Matlab/Simulink解算核心讀取姿態(tài)數(shù)據(jù)并轉(zhuǎn)發(fā)給客戶(hù)端軟件;一方面,客戶(hù)端軟件調(diào)用FlightGear飛行模擬軟件的API接口,驅(qū)動(dòng)可視化引擎的運(yùn)行,另一方面,相關(guān)數(shù)據(jù)以文本曲線(xiàn)的形式予以輔助顯示。詳細(xì)框圖如圖7所示。
這里我們通過(guò)添加dll文件得到波形控件,此波形控件已經(jīng)封裝了波形的顯示方法,我們只需通過(guò)調(diào)用控件的方法即可實(shí)現(xiàn)相應(yīng)波形的顯示,其中我們需要定義定時(shí)器來(lái)不斷的掃描緩沖區(qū)內(nèi)的數(shù)據(jù)信息來(lái)實(shí)現(xiàn)波形繪制和顯示,具體流程圖如圖6所示。
(d)飛行姿態(tài)數(shù)據(jù)的記錄
視景數(shù)據(jù)通訊:所述FlightGear視景軟件的視景通信模型采用通信雙方都認(rèn)可的UDP通訊協(xié)議;通過(guò)UDP視景通信模塊,可視化平臺(tái)飛行器/Simulink姿態(tài)解算核心產(chǎn)生的大量姿態(tài)數(shù)據(jù)得以實(shí)時(shí)的傳輸給FlightGear視景可視化軟件,驅(qū)動(dòng)可視化引擎的運(yùn)行。軟件數(shù)據(jù)通訊模塊框圖如圖8所示。
FlightGear飛行視景軟件的通信模型有著廣泛的通用性,包含了飛行器模型飛行時(shí)需要的所有參數(shù)信息,本方案在進(jìn)行飛行器的三維可視可視化時(shí)只用到部分參數(shù),飛行器可視化的主要參數(shù)如表1所示。
表1
三維視景顯示:視景可視化的實(shí)現(xiàn)依賴(lài)于第三方三維可視可視化軟件FlightGear的應(yīng)用,將FlightGear飛行模擬器作為視景接口,直觀地顯示直升機(jī)的飛行狀態(tài)。視景可視化模塊主要完成以下功能:
1)接收通信模塊傳來(lái)的飛行數(shù)據(jù)。
2)從模型庫(kù)中導(dǎo)入飛行器模型、場(chǎng)景模型、聲音模型,并對(duì)飛行器進(jìn)行姿態(tài)和位置調(diào)整。
3)驅(qū)動(dòng)飛行器3D模型按照飛行數(shù)據(jù)在場(chǎng)景中進(jìn)行模擬飛行。
模型庫(kù)為可視化系統(tǒng)提供飛行模型,包括飛行器模型、場(chǎng)景模型、建筑物模型、聲音模型等,其中飛行器模型最為重要。飛行數(shù)據(jù)模塊中的數(shù)據(jù)來(lái)自Matlab/Simlink構(gòu)建的動(dòng)力學(xué)模型解算出的據(jù)。同時(shí),F(xiàn)lightGear視景可視化軟件的實(shí)現(xiàn)還依賴(lài)于恰當(dāng)?shù)娘w行器3D模型,與對(duì)應(yīng)正確的XML解析文件。首先,使用AC3D三維建模軟件建立正確的飛行器三維模型,以特定的命名規(guī)則命名相關(guān)三維組件,這是三維視景可視化時(shí)產(chǎn)生相應(yīng)動(dòng)作的關(guān)鍵;然后,依據(jù)FlightGear軟件體系下XML配置文件的解析方法,設(shè)計(jì)并編寫(xiě)可視化所需要的XML解析文件;文件包含F(xiàn)lightGear下XML配置平顯系統(tǒng)的方法和飛行器參數(shù)配置,并根據(jù)工程需求做相應(yīng)編輯修改;最后,將建立好的三維模型與XML文件用于視景的可視化。
在步驟(3)中,所述Matlab/Simulink的控制器模塊包括負(fù)責(zé)穩(wěn)定和控制飛行器的姿態(tài)和航跡運(yùn)動(dòng)的飛控模塊和整個(gè)可視化系統(tǒng)中最主要的解算部分的飛行動(dòng)力學(xué)模塊;飛控模塊通過(guò)與飛行動(dòng)力學(xué)模塊的數(shù)據(jù)通信,計(jì)算并輸出相應(yīng)的舵面控制信息控制飛行器的飛行;同時(shí)在本可視化平臺(tái)中,本模塊還可以通過(guò)RS232通訊協(xié)議從客戶(hù)端軟件接收操作人員手動(dòng)輸入的控制參數(shù)信息,并傳輸給飛行動(dòng)力學(xué)模塊,產(chǎn)生對(duì)飛行器的相應(yīng)控制作用;飛行動(dòng)力學(xué)模塊為一個(gè)六自由度的運(yùn)動(dòng)解算方程,輸入為飛機(jī)3個(gè)不同方向所施加的作用力和力矩,輸出為飛行高度、坐標(biāo)信息以及相應(yīng)的俯仰角,滾轉(zhuǎn)角飛行姿態(tài)參數(shù)。設(shè)計(jì)最終圖譜如下如圖9所示。
本發(fā)明中所描述的具體實(shí)施例僅僅是對(duì)本發(fā)明精神作舉例說(shuō)明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對(duì)所描述的具體實(shí)施例做各種各樣的修改或補(bǔ)充或采用類(lèi)似的方式替代,但并不會(huì)偏離本發(fā)明的精神或者超越所附權(quán)利要求書(shū)所定義的范圍。