国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Vega Prime 的無(wú)人直升機(jī)飛行模擬系統(tǒng)

2023-05-30 02:03:48史永勝夏志超
關(guān)鍵詞:垂尾尾槳飛行數(shù)據(jù)

史永勝,夏志超

(中國(guó)民航大學(xué)航空工程學(xué)院,天津 300300)

無(wú)人直升機(jī)飛行模擬系統(tǒng)可模擬不同的飛行任務(wù),且不受場(chǎng)地和環(huán)境的影響,增強(qiáng)了飛行安全性并降低了成本,對(duì)學(xué)員的培訓(xùn)和教學(xué)工作有重要的意義。另外,其可作為直升機(jī)研發(fā)工作的輔助工具,進(jìn)行試驗(yàn)和仿真驗(yàn)證,縮短研發(fā)周期。因此,對(duì)于無(wú)人直升機(jī)飛行模擬系統(tǒng)的研究是有必要的。楊宏亮[1]以O(shè)SG(open scene graph)為仿真平臺(tái),建立了一種共軸雙旋翼無(wú)人直升機(jī)飛行仿真系統(tǒng),該系統(tǒng)可以實(shí)現(xiàn)直升機(jī)一些飛行動(dòng)作的操縱,但OSG 平臺(tái)缺乏圖形化的界面,需要開(kāi)發(fā)者對(duì)其很熟悉才能實(shí)現(xiàn)需要的功能,對(duì)初學(xué)者很不利,另外系統(tǒng)的視景界面也略顯簡(jiǎn)單。劉澤群[2]開(kāi)發(fā)了一套飛行仿真系統(tǒng),設(shè)計(jì)了串級(jí)LADRC控制器提高飛行控制效果,使用OSG 開(kāi)發(fā)視景系統(tǒng),并調(diào)用Matlab 計(jì)算引擎實(shí)現(xiàn)數(shù)據(jù)傳輸,飛行結(jié)果更精確,但調(diào)用引擎時(shí)數(shù)據(jù)傳輸實(shí)時(shí)性不高。王婷婷等[3]基于STK 軟件進(jìn)行了無(wú)人直升機(jī)作戰(zhàn)任務(wù)推演視景仿真,并完成了實(shí)時(shí)狀態(tài)下的仿真,但僅針對(duì)特定飛行任務(wù),不具備普遍性和通用性。

本文基于Vega Prime 實(shí)時(shí)視景仿真平臺(tái),設(shè)計(jì)了一套某型通用無(wú)人直升機(jī)飛行模擬系統(tǒng),該平臺(tái)具有圖形化的界面,方便用戶開(kāi)發(fā)自己的功能,使用Creator 軟件建立逼真、耗費(fèi)內(nèi)存小的模型文件且可直接被視景系統(tǒng)使用,使用GL Studio 軟件開(kāi)發(fā)出照片級(jí)的三維儀表面板顯示飛行數(shù)據(jù)且可方便地通過(guò)插件實(shí)現(xiàn)與視景系統(tǒng)的嵌合,自主設(shè)計(jì)的用戶數(shù)據(jù)報(bào)協(xié)議(UDP,user datagram protocol)通信接口能實(shí)現(xiàn)飛行仿真數(shù)據(jù)的實(shí)時(shí)快捷傳輸,采用MFC(microsoft foundation classes)框架搭建更為豐富友好的視景界面。該系統(tǒng)可實(shí)現(xiàn)直升機(jī)基礎(chǔ)的飛行操作,也可拓展出任務(wù)和訓(xùn)練模塊,具有很高的實(shí)用價(jià)值。

1 系統(tǒng)配置和方案設(shè)計(jì)

1.1 系統(tǒng)配置

系統(tǒng)配置包括軟硬件配置和編譯環(huán)境設(shè)置。系統(tǒng)的硬件配置為一臺(tái)臺(tái)式計(jì)算機(jī),軟件配置如表1 所示。

表1 軟件配置Tab.1 Software configuration

系統(tǒng)的編譯環(huán)境設(shè)置如下。

1)設(shè)置VS2005 中的Vega Prime 編譯環(huán)境

①設(shè)置使用的字符集為多字節(jié)字符集;②添加附加包含目錄和附加庫(kù)目錄Vega_Prime_2_2_1_VC8/include/vegaprime;Vega_Prime_2_2_1_VC8/include/vsg;C:/Presagis/Vega_Prime_2_2_1_VC8/lib;③添加額外的預(yù)處理器定義NDEBUG;_HAS_INERATOR_DEBUGGIN G=0;_SECURE_SCL=0;_MBCS。

2)設(shè)置Matlab 和VS 的編譯環(huán)境

在Matlab 命令窗口輸入“mex-setup”命令,一直選擇“y”,在列出的本機(jī)已安裝編譯器列表中選擇VS2005 作為默認(rèn)的編譯器。

1.2 方案設(shè)計(jì)

一個(gè)完整的直升機(jī)飛行模擬系統(tǒng)包括飛行仿真模塊、座艙仿真模塊、視景仿真模塊和控制臺(tái)模塊4個(gè)部分[4-5],核心部分是飛行仿真和視景仿真兩個(gè)模塊,決定著系統(tǒng)是否是真實(shí)可用的,本文的系統(tǒng)方案設(shè)計(jì)流程如圖1 所示。

圖1 系統(tǒng)方案設(shè)計(jì)Fig.1 Design of system scheme

1)飛行仿真模塊

分析無(wú)人直升機(jī)各部件和整機(jī)的空氣動(dòng)力特性,在Matlab 中建立非線性動(dòng)力學(xué)模型,并通過(guò)編寫(xiě)UDP接口模塊將解算出的飛行數(shù)據(jù)傳入系統(tǒng)中。

2)座艙仿真模塊

使用GL Studio 儀表開(kāi)發(fā)軟件設(shè)計(jì)得到逼真的直升機(jī)座艙飛行儀表面板,并通過(guò)插件的方式將該面板嵌入視景系統(tǒng)中,實(shí)時(shí)讀取飛行數(shù)據(jù)并顯示。

3)視景仿真模塊

基于Vega Prime 視景仿真平臺(tái),聯(lián)合VS 開(kāi)發(fā)環(huán)境進(jìn)行二次開(kāi)發(fā),包括對(duì)視景仿真線程的管理、數(shù)據(jù)接收端的編寫(xiě)及各種功能類的設(shè)計(jì)等。

4)控制臺(tái)模塊

控制臺(tái)是為了方便用戶和系統(tǒng)進(jìn)交互而設(shè)計(jì)的對(duì)話框界面,用戶通過(guò)該界面實(shí)現(xiàn)對(duì)系統(tǒng)某些特性和功能的操作,界面的設(shè)計(jì)應(yīng)簡(jiǎn)潔友好。

2 系統(tǒng)實(shí)現(xiàn)

2.1 動(dòng)力學(xué)建模

無(wú)人直升機(jī)的空氣動(dòng)力部件包括旋翼、尾槳、機(jī)身、平尾和垂尾[6-7]。以某型無(wú)人直升機(jī)為分析對(duì)象,各部件的力與力矩計(jì)算如下。

1)旋翼的力與力矩

旋翼是直升機(jī)的主升力面和操縱面,假設(shè)來(lái)流為均勻入流,采用動(dòng)量定理分析可得旋翼的拉力為

式中:ρ 為空氣密度(kg/m3);Ωmr為旋翼轉(zhuǎn)速(rad/s);Rmr為旋翼半徑(m);Cla,mr為槳葉升力曲線斜率(rad-1);bmr為槳葉數(shù)目;cmr為槳葉弦長(zhǎng)(m);vjy,mr為垂直于槳葉的空速(m/s);vi,mr為旋翼誘導(dǎo)入流速度,其計(jì)算公式為

根據(jù)文獻(xiàn)[8-9],旋翼?yè)]舞運(yùn)動(dòng)可用兩個(gè)一階微分方程來(lái)表示

式中:as和bs為旋翼縱、橫向一階揮舞角(rad);wp、wq為機(jī)體的滾轉(zhuǎn)和俯仰角速度;τmr為揮舞運(yùn)動(dòng)的時(shí)間常數(shù)(s);A 和B 為縱、橫向揮舞運(yùn)動(dòng)的耦合效應(yīng)(s-1);θcyc1和θcyc2為縱、橫向槳葉揮舞角(rad)。

在機(jī)體坐標(biāo)系中,旋翼的力和力矩為

式中:Fx,mr、Fy,mr和Fz,mr為旋翼在3 個(gè)坐標(biāo)軸上的力(N);ML,mr、MM,mr和MN,mr為旋翼在3 個(gè)坐標(biāo)軸上的力矩(N·m);Kβ為彈性系數(shù)(N·m);Hmr為旋翼槳轂中心到離質(zhì)心的垂向距離(m);Pmr為旋翼總功率(kW)。

2)尾槳的力與力矩

尾槳計(jì)算和旋翼類似,但不考慮其揮舞運(yùn)動(dòng)。

尾槳拉力Ttr和尾槳誘導(dǎo)入流速度vi,tr為

式中物理量與式(2)旋翼類相對(duì)應(yīng)(下標(biāo)tr 表示尾槳的相應(yīng)參數(shù))。

在機(jī)體坐標(biāo)系下,尾槳的力Fy,tr、滾轉(zhuǎn)力矩ML,tr和偏航力矩MN,tr為

式中:Htr為尾槳槳轂中心到質(zhì)心的垂向距離(m);Dtr為尾槳槳轂中心到質(zhì)心的縱向距離(m)。

3)機(jī)身的力與力矩

由于機(jī)身沿縱向?qū)ΨQ,產(chǎn)生的力矩忽略不計(jì),考慮主旋翼下洗流對(duì)機(jī)身的影響,機(jī)身在3 個(gè)坐標(biāo)軸受力為

式中:Sfx、Sfy和Sfz分別為機(jī)體坐標(biāo)系各軸上有效阻力面積(m2);vx、vy和vz分別為機(jī)體坐標(biāo)下各軸上的空速(m/s)。

4)平尾的力與力矩

平尾起著縱向配平和俯仰穩(wěn)定作用,受旋翼下洗流影響。在機(jī)體坐標(biāo)系下,平尾受力的計(jì)算公式為

式中:Cla,hf為平尾升力曲線斜率(rad-1);Shf為平尾面積(m2);vhf為平尾垂向空速(m/s);αst為臨界攻角(rad)。

平尾俯仰力矩為

式中:Dhf為平尾中心到質(zhì)心的縱向距離(m)。

5)垂尾的力與力矩

垂尾在橫向配平和穩(wěn)定中起著重要作用,同樣受下洗流的影響。

在機(jī)體坐標(biāo)系下,垂尾受力的計(jì)算公式為

式中:Cla,vf為垂尾升力曲線斜率(rad-1);Svf為垂尾面積(m2),vvf為垂尾橫向空速(m/s)。垂尾滾轉(zhuǎn)力矩ML,vf和垂尾偏航力矩MN,vf為

式中:Hvf為垂尾中心到質(zhì)心的垂向距離(m);Dvf為垂尾中心到質(zhì)心的縱向距離(m)。

6)直升機(jī)運(yùn)動(dòng)方程

由牛頓第二定律,合外力為

由動(dòng)量矩定理可知,合力矩為

合力與合力矩在機(jī)軸系下各分量為

將式(19)和式(20)分別代入式(17)和式(18)可得無(wú)人直升機(jī)非線性動(dòng)力學(xué)模型。采用S 函數(shù),使用Matlab 的m 語(yǔ)言編寫(xiě)生成可進(jìn)行仿真的Simulink 模塊,流程如圖2 所示。

圖2 動(dòng)力學(xué)模塊編寫(xiě)流程Fig.2 Writing process of dynamic module

2.2 數(shù)據(jù)通信

由2.1 節(jié)建立的非線性動(dòng)力模型求解得到的飛行數(shù)據(jù)需要傳入到視景系統(tǒng)中,以供直升機(jī)模型實(shí)時(shí)讀取。Matlab 和VS 的接口設(shè)計(jì)有兩大類:①VS 調(diào)用Matlab 的計(jì)算引擎、m 文件編譯生成的源文件、頭文件以及DLL 文件;②Matlab 調(diào)用VS 中C/C++語(yǔ)言文件生成的MEX 文件或動(dòng)態(tài)鏈接庫(kù)[10]。

本文采用S 函數(shù)中的C 語(yǔ)言編寫(xiě)UDP 協(xié)議的發(fā)送端,然后將其生成MEX 文件,在視景系統(tǒng)中編寫(xiě)接收端,實(shí)現(xiàn)兩者間的通信,如圖3 所示。

圖3 數(shù)據(jù)傳輸工作流程Fig.3 Workflow of data transmission

發(fā)送端的編寫(xiě)步驟如下:

(1)定義一個(gè)結(jié)構(gòu)體變量,用于存儲(chǔ)動(dòng)力學(xué)模塊輸出的飛行數(shù)據(jù),其成員變量包括空間位置、速度、姿態(tài)角和角速度;

(2)在源文件中編寫(xiě)各個(gè)子函數(shù)部分,如圖4 所示;

圖4 接收端編寫(xiě)流程Fig.4 Writing process at receiving end

(3)將S 函數(shù)模塊名改為和源文件中函數(shù)名一致,使用“mex”命令生成可執(zhí)行文件。

接收端定義相同的結(jié)構(gòu)體變量,并在視圖類的定時(shí)器中接收發(fā)來(lái)的數(shù)據(jù)。需要注意的是動(dòng)力學(xué)模塊的求解器設(shè)置為合適的定步長(zhǎng)。將動(dòng)力學(xué)模塊和通信接口連接起來(lái),即得到直升機(jī)非線性模型的仿真框圖如圖5 所示。

圖5 直升機(jī)非線性模型框圖Fig.5 Block diagram of helicopter nonlinear model

2.3 座艙儀表系統(tǒng)

GL Studio 軟件是一款可創(chuàng)建實(shí)時(shí)的、三維的、照片級(jí)圖形界面的軟件,包括圖形設(shè)計(jì)器和代碼生成器[11],前者擁有幾大工具箱方便用戶設(shè)計(jì)儀表外形,后者通過(guò)編譯代碼實(shí)現(xiàn)需要的功能。該軟件可以生成應(yīng)用程序,單獨(dú)運(yùn)行,也可以生成DLL 文件,嵌入到其他應(yīng)用程序中。一個(gè)完整的儀表項(xiàng)目開(kāi)發(fā)步驟如下:

(1)收集儀表真實(shí)照片,用圖形處理軟件拆分出可動(dòng)部件,置于同一圖層中并生成紋理;

(2)新建一個(gè)儀表項(xiàng)目,打開(kāi)圖形設(shè)計(jì)器,配置儀表屬性,繪制矩形或圓形等基本圖形,導(dǎo)入做好的紋理,將拆分的部件重新按原位置添加到儀表上;

(3)在代碼編輯頁(yè)面定義屬性、方法、回調(diào)、變量,編寫(xiě)相應(yīng)的代碼,以實(shí)現(xiàn)儀表需要的功能;

(4)保存所有操作并生成代碼,調(diào)試并允許。

系統(tǒng)集成了6 大基礎(chǔ)機(jī)械儀表和PFD(primary flight display)、MFD(multi function display)多功能電子儀表,可以實(shí)時(shí)顯示速度、高度、航向、轉(zhuǎn)彎側(cè)滑等信息。運(yùn)行效果圖如圖6 所示。

圖6 直升機(jī)座艙儀表面板Fig.6 Instrument panel of helicopter cockpit

將建好的直升機(jī)儀表項(xiàng)目生成DLL 文件,并在Vega Prime 的用戶界面配置ACF 文件,添加一個(gè)vpGLStudio 實(shí)例,在該實(shí)例操作區(qū)導(dǎo)入儀表DLL 文件,設(shè)置類名與文件名一致,在屬性關(guān)聯(lián)框中,根據(jù)儀表中定義的屬性函數(shù)一一添加對(duì)應(yīng)的VP 屬性函數(shù),即可實(shí)現(xiàn)兩者的屬性關(guān)聯(lián)[12]。

2.4 視景系統(tǒng)

視景系統(tǒng)是基于Vega prime 視景仿真平臺(tái)搭建的,是基于VSG 的實(shí)時(shí)三維視景開(kāi)發(fā)工具[13],支持多種系統(tǒng)運(yùn)行并且兼容C++運(yùn)行庫(kù),內(nèi)部封裝了大量的仿真模塊,同時(shí)也允許用戶定制擴(kuò)展模塊。

Vega prime 應(yīng)用程序最小的運(yùn)行結(jié)構(gòu)包括五大部分:初始化、定義、配置、幀循環(huán)[14]以及關(guān)閉。初始化階段對(duì)應(yīng)用程序運(yùn)行的環(huán)境進(jìn)行檢測(cè)初始化,用戶自己定制的模塊也需要執(zhí)行初始化;定義階段創(chuàng)建和初始化所需的實(shí)例;配置階段對(duì)定義階段的項(xiàng)進(jìn)行系統(tǒng)配置;幀循環(huán)階段進(jìn)行場(chǎng)景圖的更新;最后關(guān)閉階段退出程序運(yùn)行。

在VS 平臺(tái)上使用MFC 應(yīng)用程序進(jìn)行仿真程序的開(kāi)發(fā),只需通過(guò)調(diào)用對(duì)象提供的方法就可實(shí)現(xiàn),避免了大量底層代碼的編寫(xiě),另外還提供了基礎(chǔ)的應(yīng)用程序框架和相關(guān)組件,進(jìn)一步簡(jiǎn)化了開(kāi)發(fā)的難度。在基于MFC 的基礎(chǔ)上,采用多線程技術(shù)[14-17]創(chuàng)建一個(gè)工作者線程單獨(dú)運(yùn)行Vega Prime 應(yīng)用程序,其和主應(yīng)用程序間通過(guò)線程消息實(shí)現(xiàn)通信,系統(tǒng)運(yùn)行框架如圖7所示。

圖7 系統(tǒng)運(yùn)行框架Fig.7 System operation framework

使用AfxBeginThread()函數(shù)創(chuàng)建線程,創(chuàng)建的線程函數(shù)為:

通過(guò)自定義消息和消息處理函數(shù),并在線程運(yùn)行中調(diào)用,以實(shí)現(xiàn)對(duì)用戶操作的響應(yīng)。

3 飛行仿真分析

3.1 靜態(tài)特性分析

靜態(tài)特性分析指當(dāng)直升機(jī)處于飛行平衡狀態(tài)時(shí),各狀態(tài)參數(shù)隨仿真時(shí)間的變化關(guān)系?;谇拔囊呀⒌闹鄙龣C(jī)非線性Simulink 框圖,采用Matlab 配平和線性化工具進(jìn)行分析,根據(jù)飛行狀態(tài)設(shè)定初始的約束值,求得對(duì)應(yīng)的配平點(diǎn)并得到該點(diǎn)處的線性化方程,進(jìn)而研究該狀態(tài)下的飛行特性,下面對(duì)懸停和平穩(wěn)前飛兩種情況分析。

懸停狀態(tài)時(shí),高度為100 m,輸入?yún)?shù)和狀態(tài)參數(shù)初始約束值為0,得到其配平點(diǎn)處的輸入?yún)?shù)值如表2 所示。

表2 輸入信號(hào)Tab.2 Input signals

將表2 的值作為模型的初始輸入值進(jìn)行仿真,得到各狀態(tài)參數(shù)變化曲線如圖8 所示。

由圖8 可以看出,初始0 時(shí)刻,機(jī)體坐標(biāo)軸下各軸向的角速度(ωp,ωq,ωr)、姿態(tài)角(φp,φq,φr)和速度(vx,vy,vz)都為0,高度值為100 m,一段時(shí)間后,角速度經(jīng)過(guò)輕微的變化后重新趨于0,姿態(tài)角、速度和位移(sx,sy,sz)發(fā)生較小的調(diào)整后在新的位置處重新保持平衡,有較好的懸停特性。

平穩(wěn)前飛時(shí),前飛速度保持不變,分別取不同的速度進(jìn)行分析運(yùn)算,得到輸入信號(hào)和姿態(tài)角隨速度的變化曲線如圖9 所示。

圖9 前飛狀態(tài)參數(shù)曲線Fig.9 Parameter curves of forward flight state

由圖9 可知,控制信號(hào)的取值范圍是(-1,1),隨著飛行速度的增大,俯仰信號(hào)值有略微地增大,橫滾信號(hào)值略微減小,尾槳因加裝了鎖尾裝置,基本不變化,總距呈倒馬鞍形狀,對(duì)應(yīng)的俯仰角先增大后減小,俯仰和滾轉(zhuǎn)角變化不大,保持在0 附近。

3.2 動(dòng)態(tài)特性分析

動(dòng)態(tài)特性分析即當(dāng)人為操縱輸入信號(hào)時(shí)直升機(jī)的飛行狀態(tài)實(shí)時(shí)動(dòng)態(tài)改變的過(guò)程,以模擬操縱直升機(jī)起飛到平穩(wěn)飛行過(guò)程為例,得到角速度、姿態(tài)角、速度及位移隨時(shí)間的變化曲線如圖10 所示。

圖10 模擬飛行曲線圖Fig.10 Simulated flight graph

由圖10 可以看出,直升機(jī)各飛行狀態(tài)初始值為0,經(jīng)過(guò)一段時(shí)間的爬升,當(dāng)仿真時(shí)間達(dá)到50 s時(shí),角速度變?yōu)?,姿態(tài)角、速度趨于某一固定值,達(dá)到平穩(wěn)飛行狀態(tài)。

4 結(jié)語(yǔ)

本文分析了無(wú)人直升機(jī)各部件的受力,建立了無(wú)人直升機(jī)非線性動(dòng)力學(xué)模型,通過(guò)二次開(kāi)發(fā)在VS 平臺(tái)搭建了視景系統(tǒng),設(shè)計(jì)接口模塊,實(shí)現(xiàn)了飛行數(shù)據(jù)的導(dǎo)入,并開(kāi)發(fā)了真實(shí)儀表以顯示飛行數(shù)據(jù),最后進(jìn)行了飛行仿真,對(duì)靜態(tài)特性的懸停和平穩(wěn)前飛以及動(dòng)態(tài)特性進(jìn)行了分析驗(yàn)證。結(jié)果表明,建立的無(wú)人直升機(jī)非線性動(dòng)力學(xué)模型能模擬實(shí)際的飛行情況,且仿真過(guò)程中,系統(tǒng)的運(yùn)行畫(huà)面逼真流暢,各儀表也能實(shí)時(shí)顯示直升機(jī)的飛行數(shù)據(jù),達(dá)到了系統(tǒng)設(shè)計(jì)目的,可實(shí)現(xiàn)較為真實(shí)的模擬飛行仿真,可作為實(shí)驗(yàn)教學(xué)的輔助工具。

猜你喜歡
垂尾尾槳飛行數(shù)據(jù)
瘋狂紙飛機(jī)之旅
航空世界(2023年3期)2023-05-01 19:57:24
直升機(jī)的“尾巴”
垂尾方向舵懸掛點(diǎn)螺栓斷裂分析及改進(jìn)
被動(dòng)變弦長(zhǎng)提升變轉(zhuǎn)速尾槳性能
直升機(jī)旋翼干擾對(duì)尾槳?dú)鈩?dòng)噪聲影響的數(shù)值研究
GARMIN1000系統(tǒng)維修平臺(tái)搭建預(yù)研究
淺談飛行數(shù)據(jù)集中處理流程管理
基于廣域信息管理的飛行數(shù)據(jù)服務(wù)設(shè)計(jì)與實(shí)現(xiàn)
民用飛機(jī)垂尾和后機(jī)身連接結(jié)構(gòu)設(shè)計(jì)與研究
直升機(jī)尾槳/尾梁耦合動(dòng)穩(wěn)定性分析
黄骅市| 和平县| 德安县| 耒阳市| 蛟河市| 布拖县| 滨海县| 大化| 新乡县| 哈巴河县| 横峰县| 若羌县| 营口市| 巢湖市| 枣阳市| 蒙自县| 康乐县| 六安市| 三门县| 荔浦县| 合川市| 金寨县| 本溪| 平南县| 紫金县| 乐昌市| 太仓市| 高清| 黎川县| 太仆寺旗| 建德市| 河北省| 西昌市| 连山| 东宁县| 洪雅县| 海晏县| 平安县| 平凉市| 陆河县| 惠东县|