999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MFC和Vega的導航仿真系統

2009-05-12 03:14:34懷紅旗王愛民
現代電子技術 2009年2期
關鍵詞:系統仿真

懷紅旗 王愛民

摘 要:為了加快艦載海上航行的慣性導航仿真,論述一種基于MFC和Vega開發環境開發虛擬現實仿真系統的方法,并且詳細闡述開發過程,用于開發艦載海上航行仿真系統,通過對陀螺儀和加速度數學模型的建立,完成了慣性器件仿真和艦載航行仿真系統的研究。結果表明該系統能使設計人員很直觀地觀察艦載的航行,航行姿態,同時,采用面向對象的設計方法,遵循軟件的開發規范,驗證了平臺的可行性和有效性,有利于艦載慣性導航仿真的設計,同時對虛擬現實的開發也有很好的借鑒作用。

關鍵詞:虛擬現實;系統仿真;艦載;Vega;MFC;慣性器件

中圖分類號:TN965文獻標識碼:B

文章編號:1004 373X(2009)02 167 04

Navigation Simulation System Based on MFC and Vega

HUAI Hongqi,WANG Aimin

(The School of Instrument Science and Engineering,Southeast University,Nanjing,210096,China)

Abstract:To speed up the inertial navigation simulation of shipborne marine navigation,a method of virtual reality simulation system based on MFC and Vega,and its development process are studied,it is applied to develop shipborne marine navigation.The research on inertial device simulation and shipborne navigation simulation are completed by building gyroscope and accelerated math model.The results show that the navigation of shipborne can be observed by designers,using object-oriented method,the feasibility and effectiveness of platform is verificated.It is useful for developing virtual reality.

Keywords:virtual reality;system simulation;shipborne;Vega;MFC;inertial device

虛擬現實(Virtual Reality,VR)是在信息科學的飛速發展中誕生的,其主要特點是將虛擬現實技術和系統仿真技術完美的結合在一起。其核心是由一些三維的交互式計算機生成的環境組成。這些環境可以是真實的,也可以是想象的世界模型,其目的是通過人工合成的經歷表示信息。有了虛擬現實技術,復雜或抽象系統的概念形成可以通過將系統的各子部件以某種方式表示成具有確切含義的符號而成為可能,從而有助于人們理解和認識所研究系統的本質和動態規律。

1 虛擬航行仿真系統開發環境

隨著虛擬現實仿真技術的不斷發展,虛擬現實仿真開發平臺也得到了飛速的發展。尤其是Multigen-Paradigm公司的實時場景管理和驅動軟件Vega,由于它在實時視景仿真、聲音仿真、虛擬現實及其他可視化領域的廣泛應用,成為現在最流行的虛擬環境開發仿真平臺[1]。這里研究的艦載海上仿真系統是基于MFC和Vega開發環境基礎上開發的。

Vega是在SDI Performer 軟件的基礎之上發展起來的,為Performer 增加了許多重要特性。它將易用的點擊式圖形界面開發環境LynX和高級仿真功能巧妙的結合起來,使用戶以簡單的操作迅速的創建,編輯和運行復雜的仿真應用程序。

Vega是一個類庫,每個Vega類都是一個完整的控制,該控制結構包含用于處理和執行特征等各項內容,它以C語言的API形式出現,為軟件人員提供最大限度的軟件控制的靈活性[2]。

2 基于Windows 平臺上Vega應用程序的基本框架

Vega的函數庫都是基于多線程動態鏈接庫(Mutithread DLL)版本的C運行時庫(Run Time Library ),直接用Windows API進行Vega應用程序的開發是一個非常繁瑣的過程,很多基礎工作(比如窗口的創建,菜單的創建等)都需要自己動手寫,大部分的精力被耗費在應用程序框架的搭建和應用程序界面的設計上,所以利用可視化的應用程序開發工具(Microsoft Visual C++6.0)編寫基于MFC的Vega應用程序是非常有必要的。Vega應用程序編程接口自帶了必須的頭文件和鏈接庫,故首先配置Microsoft Visual C++6.0的環境[3]。步驟如下:

(1) 添加相關路徑,打開Microsoft Visual C++6.0 界面,單擊“Tools”菜單條下的“Options”選項,單擊“Directories”將Vega安裝目錄下的“Include”目錄添加進來,單擊“Show directories for ”下拉選項,選擇“Library files”項把Vega安裝目錄下的“Include”目錄添加進來。

(2) 更改編譯選項,單擊“Project”菜單下的“Settings…”選項,將“Project Options”中的“MLd”,改為“MD”。

2.1 Vega應用程序的基本框架和實現

典型Vega應用程序的框架如圖1所示[3]。

圖1 Vega應用程序框架圖

由圖1可以看出,Vega應用程序可以分成2個主要的階段,首先是Vega系統的靜態描述階段,然后進入Vega系統的動態循環。第一個階段主要為Vega系統的正確運行進行必要的系統配置,包括內存分配,參數設置,Vega類的定義等。而Vega仿真應用程序主要是在Vega動態循環中實現的,故每一個Vega應用程序都包含如下的函數語句:

void main( int argc,char *argv[] )

// init,define,and config the system //

vgInitSys();// initialize Vega//

vgDefineSys( argv[1] );//read in the ADF//

vgConfigSys();//configure Vega//

while(1){

vgSyncFrame ();

vgFrame();

// the simulation code//

}

}

vgSyncFrame()和vgFrame()函數一起決定了Vega進程能夠與設定的幀頻率保持同步,從而能夠保證渲染出流暢的動態視景仿真畫面,再加上相應的控制代碼就可以完成各樣的仿真要求[4]。

2.2 基于MFC的Vega的應用程序開發

首先利用Microsoft Visual C++6.0的應用程序向導生成一個單文檔界面(SDI)應用程序框架[5],然后編輯和修改相應的代碼,實現在視圖框架中顯示Vega的渲染窗口,再添加菜單、工具欄、對話框對Vega窗口的渲染過程進行實時的交互式控制。在采用Cview類和其派生類CVegaView來實現的,并在派生類CVegaView中加入相應的啟動代碼[6]。如圖2所示。

圖2 單文檔應用程序框架基本關系

在定義CVegaView類定義的時候應該加入如下成員函數。

void ownship_update( void );

void Platform2Xyz(const double *pxyz,double *BLH,double *xyz);

void convert2platform(const double *xyz,double *BLH,double *p_xyz);

void BLH2XYZ(const double *earth,double *xyz);

void XYZ2BLH(const double *xyz,double *earth);

void GD(float a[18],float b[12]);//the InertialNavigation function

void WibbASFB(float a[9],float b[7]);//the model of gyro and accelerometer function

void Initial(float a[3],float b[13]);//INS initial function

定義一個全局函數UINT runvegaProc(LPVOID pParam)以此作為啟動Vega線程的入口,在此函數中加入線程的系統的初始化,系統定義,系統配置和vega線程的主循環和調用仿真模型的代碼等。

3 基于Vega海洋模塊模塊的程序設計

Vega海洋模塊提供API標準程序使得主程序能夠確認海浪高度,這樣當與用戶所提供的動態模型結合后,可使得相應的動態模型隨著海浪的波動而波動。在編寫以海洋模塊為基礎的應用程序時,需要在Microsoft Visual C++6.0環境中包含其模塊中的“vgmarine.h”頭文件并鏈接模塊中相應的庫文件到用戶的主程序中。當在Vega仿真程序中調用Vega海洋模塊時,需要調用vgInitMarine()和vgInitFx()對Vega海洋各模塊進行初始化,當調用vgConfigSys()時,配置海洋模塊[2]。

4 慣性導航系統數學模型的研究

由于條件有限,這里沒有實際數據,一種辦法是模擬艦船的航跡,然后計算加速度計和陀螺的輸出,作為仿真的輸入,仿真結果與實際航跡比較,得到誤差曲線,慣導仿真框圖如圖3所示。

圖3 慣導仿真框圖

4.1 慣導仿真框圖

在真實的捷聯慣導系統中,ωb璱b和fb分別是由陀螺儀和加速度計提供的[7]。由于條件的限制,在對捷聯慣導系統進行仿真時,首先建立陀螺儀仿真和加速度計的仿真器[8]。

4.2 陀螺儀仿真器數學模型

(1) 陀螺儀模型[9]需要的輸入量。東向速度γt瓁、北向速度γt瓂、當地緯度φ、當地高度h;航向角ψ、俯仰角θ、橫滾角γ、x軸向角速率ωb璽bx、y軸向角速率ωb璽by,z軸向角速率ωb璽bz。

(2) 陀螺儀模型的理想輸出量。理想角速率陀螺儀測量的是艦體坐標系(b系)相對于慣性坐標系(i系)的轉動角速率在艦體坐標系中的投影ωb璱b。從軌跡數據中,可以得到艦體坐標系相對于地理坐標系(t系)的轉動角速率在艦體坐標系中的投影ωb璽b。通過軌跡數據中的水平速度、緯度、高度可以計算出地理坐標系相對于慣性坐標系的轉動角速率在地理坐標系中投影ωt璱t:通過姿態角可以算出地理坐標系到艦體坐標系之間的轉換矩陣cb璽;ωt璱t乘轉換矩陣cb璽即可得到式ωb璱t,然后,將ωb璱t與ωb璽b相加,就可以得到陀螺儀模型的理想輸出ωb璱b。

(3) 陀螺儀仿真器的數學模型。陀螺儀是敏感載體角運動的元件,由于陀螺儀本身存在誤差,因此陀螺儀的輸出為:

b璱b=ωb璱b+εb(1)

式中,εb為陀螺儀元件的誤差。

4.3 加速度計仿真器數學模型

(1) 加速度計模型的輸入量。加速度計模型所需的輸入量也是取自海浪軌跡數據,具體為:東向速度νt瓁、北向速度νt瓂、垂直速度νt瓃、東向加速度αt瓁、北向加速度αt瓂、垂直加速度αt瓂、航向角ψ、俯仰角θ、橫滾角γ,當地緯度φ,當地高度h。

(2) 加速度計模型的理想輸出量。加速度計感測的量是比力??梢杂孟旅娴氖阶觼斫忉尲铀俣扔嬎袦y的比力與載體相對地球加速度之間的關系:

f=dνdt璸+ω璭pν+2ω璱eν-g(2)

式中,dνdt璸為相對于地球速度在測量坐標系中的變化率;ω璭pν 載體相對于地球轉動所引起的向心加速度;2ω璱eν載體相對于地球速度與地球自轉角速度的相互影響而形成的哥氏加速度;g為地球重力加速度。式中,dνdt璸中的ν可以從海浪軌跡數據中獲得。ω璭p,ω璱e以通過海浪軌跡數據的水平中速度、緯度、高度算出,由上式可算出是地理坐標系下的比力ft。通過姿態角可以算出從地理坐標系到艦體坐標系之間的轉換矩陣cb璽,ft乘上轉換矩陣得到艦體坐標系下的比力ft,ft就捷聯慣導系統中加速度計模型的理想輸出。

(3) 加速度計仿真器的模型。加速度計是敏感載體線運動的元件。由于加速度計本身存在誤差,因此加速度計的輸出為:

b=fb+齜璦(3)

式中,b為加速度計實際測得的比力齜璦為加速度計的誤差。

5 坐標轉換系統

在三維視景仿真中,坐標系是建立算法和三維顯示的基礎,因此,需要首先將不同設備的坐標轉換成一致的坐標系。在仿真中,主要涉及到兩種坐標系,一是空間大地直角坐標;二是WGS84坐標(地心坐標)。

6 艦載海上仿真系統開發

船艦的實時位置信息由地理緯度、經度和海拔高度來確定,采用的是WGS84坐標(地心坐標)。在建立船艦仿真模型時,需要空間大地直角坐標。因此,在進行計算前,需要進行必要的坐標轉換,由地心坐標轉換為空間大地直角坐標[10]。

圖4是作者開發的艦載捷聯慣導仿真系統的主界面,該系統主要模擬艦載海上慣導仿真,同時將陀螺和加速度器的仿真模型,慣性導航算法和虛擬現實模型有機結合。

由于主循環每循環1次虛擬場景就刷新1幀,因此在Vega主循環每循環1次時,首先讀取位置信息,完成坐標轉換;然后完成1次陀螺和加速度數學模型的計算,通過導航算法的處理,得到緯度、經度、高度和姿態信息;最后在通過坐標轉換到平面坐標系,控制艦船的姿態和運行[7]。

圖4 仿真系統的主界面

該系統是基于MFC開發的,所以大大降低了編碼所用的時間,加速了開發效率。由于很好地將Vega的功能嵌入到單文檔應用程序框架中,充分發揮了Vega的強大的視景驅動能力[11]。

7 結 語

給出Microsoft Visual C++6.0和Vega的虛擬現實系統;開發了艦載海上航行仿真系統。該系統使設計人員可以直觀地觀察航行過程和姿態,對于分析陀螺和加速度計模型的設計是否合理,尤其在導航系統算法開發的初步階段具有非常有用的價值。同時對基于Microsoft Visual C++6.0和Vega的虛擬現實開發者也有很好的借鑒作用。

參考文獻

[1]MultiGen-Paradigm Inc.Creating Terrain for Simulations.Version 2.6.

[2]MultiGen-Paradigm Inc.The Multigen Creator Desktop Tutor.Version 2.6.U.S.A.

[3]王乘,李麗軍,周均清,等.Vega實時三維視景仿真技術[M].武漢:華中科技大學出版社,2005.

[4]MultiGen-Paradigm Inc.Multigen Creator User′s Guide.Version 2.6.

[5]候俊杰.深入淺出MFC[M].2版.武漢:華中科技大學出版社,2001.

[6]唐勝景,汪群山,王憲宗,等.基于Visual C++ 和Vega的導彈虛擬飛行仿真系統[J].北京理工大學學報,2007(5):413-416.

[7]以光衢.慣性導航原理[M].北京:航空工業出版社,1987.

[8]趙玉霞.捷聯慣導系統仿真算法的研究及其實現[D].大連:大連理工大學,2005.

[9]董秋泉,肖尚彬,蔡泰信.陀螺系統[M].西安:西北工業大學出版社,1985.

[10]任亮,龍建忠,李華.三維航跡的仿真數學模型及其在Vega環境中的實現[J].計算機仿真,2006(3):59-60.

[11] David Kruglinski.Visual C++技術內幕[M].潘愛民,王國印,譯.北京:清華大學出版社,1999.

作者簡介

懷紅旗 男,1981年出生,碩士研究生。主要研究方向為虛擬現實仿真。

王愛民 男,1968年出生,副教授。主要研究方向為機器人控制技術、臨場感技術、數字信號處理技術。

猜你喜歡
系統仿真
相控陣雷達系統仿真模型研究
基于Flexsim的集裝箱碼頭物流作業系統建模與仿真
物流科技(2016年12期)2017-04-01 03:06:34
油氣儲運專業仿真系統的開發和應用
科教導刊(2016年33期)2017-02-27 11:00:52
重大交通設施項目風險復雜動態交互演化機理與仿真分析
預測(2016年3期)2016-12-29 18:57:28
基于前饋補償的直升機控制律設計與仿真
航空兵器(2016年4期)2016-11-28 21:34:37
基于計算機系統仿真的電力機車模擬駕駛裝置研究
苗圃大棚自動灌溉控制系統的設計
大滯后系統中單神經元PID控制器設計
物聯網技術(2015年5期)2015-07-18 14:04:12
雙饋感應發電機不脫網運行的系統仿真
小型民用風力發電系統最大功率跟蹤策略研究
主站蜘蛛池模板: 一级毛片在线播放免费观看| 国产呦精品一区二区三区下载| 中国精品自拍| 欧美成人区| 亚洲久悠悠色悠在线播放| 男女猛烈无遮挡午夜视频| 亚洲国产精品成人久久综合影院| 国产无码高清视频不卡| 天天色天天综合网| 88av在线看| 久久这里只有精品2| 国产成人a在线观看视频| 在线一级毛片| 99久久免费精品特色大片| 国产精品香蕉在线| 欧美日韩精品在线播放| 婷婷午夜天| 亚洲最大综合网| 亚洲高清资源| 伊人色婷婷| 人妻丰满熟妇啪啪| 国产一区二区三区日韩精品| 欧美综合激情| 国产丝袜无码一区二区视频| 99这里只有精品在线| 亚洲bt欧美bt精品| 欧美精品三级在线| 2020国产精品视频| 国产又黄又硬又粗| 欧美一级大片在线观看| 国产一二三区视频| 欧洲成人免费视频| 成年女人a毛片免费视频| 91视频99| 日韩精品毛片人妻AV不卡| 怡春院欧美一区二区三区免费| 国产一区二区三区在线观看视频| 91国语视频| 久久精品日日躁夜夜躁欧美| 国产精品毛片一区| 亚洲日本在线免费观看| 国产福利不卡视频| 欧美亚洲一区二区三区导航| 国产人成乱码视频免费观看| 国产精品手机在线播放| 国产乱人激情H在线观看| 亚洲美女久久| 91精品伊人久久大香线蕉| 亚洲人成网站色7777| 日韩不卡高清视频| 国模视频一区二区| 国产波多野结衣中文在线播放| 亚洲成人77777| 国产精品视频a| 国产精品免费久久久久影院无码| 亚洲天堂日韩av电影| 九月婷婷亚洲综合在线| 亚洲成人精品在线| 国产一区二区免费播放| 啊嗯不日本网站| 华人在线亚洲欧美精品| 亚洲欧美另类视频| 五月天久久综合| 国产精品视频白浆免费视频| 欧美成a人片在线观看| 午夜在线不卡| 国产午夜一级淫片| 免费AV在线播放观看18禁强制| 久久精品人人做人人爽电影蜜月| 无码日韩人妻精品久久蜜桃| 波多野结衣一区二区三区四区视频 | 草草影院国产第一页| 五月激情婷婷综合| 国产精品第一区| 免费毛片网站在线观看| 国产乱肥老妇精品视频| 巨熟乳波霸若妻中文观看免费| 亚洲国产成人超福利久久精品| 好吊妞欧美视频免费| 亚洲资源站av无码网址| 波多野结衣无码AV在线| 在线免费观看AV|