• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MATLAB與VC的魚雷彈道三維可視化的實(shí)現(xiàn)*

      2013-10-16 08:06:32苑秉成張宗波李瑞亮
      艦船電子工程 2013年2期
      關(guān)鍵詞:轉(zhuǎn)數(shù)魚雷階梯

      陳 龍 苑秉成 謝 勇 張宗波 李瑞亮

      (1.海軍工程大學(xué)兵器工程系 武漢 430033)(2.92840部隊(duì) 青島 266405)

      1 引言

      魚雷實(shí)航試驗(yàn)的水下彈道一般通過外場測量獲取,但是需要特定的水域,并在水下布放水聲彈道測量系統(tǒng)。本文以魚雷實(shí)航內(nèi)測記錄器采集記錄的相關(guān)數(shù)據(jù)為基礎(chǔ),綜合應(yīng)用計(jì)算機(jī)技術(shù),設(shè)計(jì)彈道可視化軟件。通過對魚雷航行時(shí)記錄在存儲(chǔ)器上的相關(guān)參數(shù)回放到計(jì)算機(jī)上,經(jīng)分析處理實(shí)現(xiàn)魚雷水下運(yùn)動(dòng)彈道的可視化,解決了無外場測量系統(tǒng)條件下水下運(yùn)動(dòng)彈道的難題。有效提高了魚雷實(shí)航彈道的分析效率,克服了特定水域及設(shè)備的制約[1]。利用VC和MATLAB混合編程開發(fā),而MATLAB的圖形只能輸出在自己的Figure窗口上,無法嵌入到VC的程序界面中,給混合編程應(yīng)用造成了很大的障礙。利用COM組件技術(shù)的窗口嵌入方法,實(shí)現(xiàn)脫離MATLAB環(huán)境的應(yīng)用程序開發(fā)。

      2 魚雷內(nèi)測系統(tǒng)記錄的彈道相關(guān)參數(shù)

      魚雷內(nèi)測系統(tǒng)記錄的參數(shù)主要包括:魚雷總體參數(shù)、動(dòng)力系統(tǒng)參數(shù)、控制系統(tǒng)參數(shù)、自導(dǎo)引信參數(shù),其中與魚雷水下運(yùn)動(dòng)彈道相關(guān)的參數(shù)有:

      1)陀螺組件中的角度變換器的步進(jìn)電機(jī)驅(qū)動(dòng)信號(MPP)

      此信號代表了魚雷的轉(zhuǎn)向指令轉(zhuǎn)換產(chǎn)生的三相脈沖序列,由魚雷控制系輸出到步進(jìn)電機(jī)上,形成如圖1(a)所示的階梯型的信號,階梯的傾斜方向表示魚雷的旋回方向,階梯的寬度表示旋回運(yùn)動(dòng)的回轉(zhuǎn)速率的大小,脈沖發(fā)生一次變化,就表示魚雷回轉(zhuǎn)a°。無疊加高頻信號的脈沖表示,魚雷無捕獲目標(biāo)時(shí)執(zhí)行的初始轉(zhuǎn)向或搜索指令如圖1(a)所示。當(dāng)魚雷處于追蹤目標(biāo)階段時(shí),脈沖信號有高頻信號疊加,如圖1(b)所示。

      圖1 步進(jìn)電機(jī)信號

      記錄的MPP信號中,沒有出現(xiàn)階梯型脈沖,則可認(rèn)為魚雷運(yùn)動(dòng)在水平面的投影是直航的;當(dāng)存在階梯脈沖時(shí),則魚雷發(fā)生了旋回運(yùn)動(dòng),旋回的速率與階梯脈沖的寬度有關(guān),旋回運(yùn)動(dòng)的方向與階梯信號的傾斜方向有關(guān)。直航運(yùn)動(dòng)就是旋回速率為零的運(yùn)動(dòng)。

      2)推進(jìn)器轉(zhuǎn)數(shù)信號(GIE)

      推進(jìn)器轉(zhuǎn)數(shù)信號是由轉(zhuǎn)數(shù)傳感器每n轉(zhuǎn)就輸出一個(gè)電壓脈沖,而魚雷的速度與脈沖的頻率成線性關(guān)系。如圖2所示。

      圖2 推進(jìn)器轉(zhuǎn)數(shù)信號

      3)壓力信號(PRESS)

      由壓力傳感器測得的數(shù)據(jù),可轉(zhuǎn)換成魚雷航行深度數(shù)據(jù)。

      3 魚雷三維彈道的可視化數(shù)學(xué)模型與方法

      魚雷彈道是魚雷航行的軌跡,物理學(xué)上軌跡的計(jì)算就是取速度對時(shí)間的積分。但是在記錄的數(shù)據(jù)中,無法直接獲得速度矢量。魚雷速度的大小,可根據(jù)GIE數(shù)據(jù),根據(jù)式(1),可以得到魚雷航行速度的大小S,根據(jù)壓力數(shù)據(jù)可得到深度隨時(shí)間的變化,在時(shí)間的微分可得到速度在垂直方向的分量ST,這樣根據(jù)勾股定理可計(jì)算出魚雷的速度水平方向的分量So,根據(jù)式(2)可根據(jù)ST,S求出夾角θ,然后求出So。速度解算示意圖如圖3所示。速度公式如下:

      其中N為一定時(shí)間內(nèi)的信號脈沖數(shù),n為出現(xiàn)一個(gè)脈沖代表推進(jìn)器轉(zhuǎn)n轉(zhuǎn),Δt為時(shí)間間隔,單位s,K為經(jīng)驗(yàn)常數(shù),S的單位為kn。

      圖3 速度分解示意圖

      由MPP信號得出魚雷水平的瞬時(shí)回轉(zhuǎn)速率βi,分為直航和旋向運(yùn)動(dòng),直航式(4),旋向運(yùn)動(dòng)式(5),水平航向角的計(jì)算公式如(3)

      其中αi為某時(shí)刻的航向角,α0為初始航向角,單位:弧度;βn為回轉(zhuǎn)速率,單位:1/s。

      其中Xi,Yi分別為某時(shí)刻的水平坐標(biāo),Xi+1,Yi+1分別為下一個(gè)時(shí)刻的水平坐標(biāo),Δt為時(shí)間間隔

      其中Rm為瞬時(shí)曲率半徑。

      利用VC編程實(shí)現(xiàn)對步進(jìn)電機(jī)信號和推進(jìn)器轉(zhuǎn)數(shù)信號的轉(zhuǎn)換計(jì)算。由于魚雷記錄的是采樣后的離散數(shù)據(jù),且都不是連續(xù)變化的,在編程中對數(shù)據(jù)變化上升沿與下降沿的計(jì)數(shù),以及各沿之間的間隔,從而實(shí)現(xiàn)步進(jìn)電機(jī)信號轉(zhuǎn)換成魚雷的回轉(zhuǎn)速率,和推進(jìn)器轉(zhuǎn)數(shù)信號轉(zhuǎn)換成魚雷速度。

      通過以上計(jì)算,依據(jù)彈道可視化模型,得到離散化的彈道坐標(biāo)點(diǎn) (Xi,Yi,Zi),生成數(shù)據(jù)文件。

      4 混合編程

      4.1 COM組件

      組件對象模型(COM,Component Object Model)是微軟提出的以組件為發(fā)布單元的軟件開發(fā)技術(shù)。COM對象用C/S的方式,提供一類應(yīng)用程序接口,允許任何符合標(biāo)準(zhǔn)的程序訪問。COM對象是建立在二進(jìn)制可執(zhí)行代碼的基礎(chǔ)上,因此COM組件對象是語言無關(guān)的,這一特性使得用不同編程語言開發(fā)的組件對象進(jìn)行交互成為可能。MATLAB可以通過MATLAB編譯器和MATLAB COM Builder將MATLAB程序轉(zhuǎn)換為動(dòng)態(tài)鏈接庫形式的COM組件,這些COM組件可以在其他程序中調(diào)用,這是VC和MATLAB混合編程的主要方式[2]。

      4.2 混合編程的實(shí)現(xiàn)

      4.2.1 實(shí)現(xiàn)混合編程的環(huán)境配置

      要成功地實(shí)現(xiàn)混合編程,達(dá)到混合編程的要求并最終作為獨(dú)立的應(yīng)用程序發(fā)布,首先要對MATLAB及VC進(jìn)行環(huán)境的配置。

      對MATLAB編譯環(huán)境進(jìn)行設(shè)置:在MATLAB環(huán)境中運(yùn)行mex setup命令,按屏幕提示選擇有關(guān)選項(xiàng),此處選編譯器為 Microsoft VisualC/C++Version6.0in C:\Program Files\Microsoft Visual Studio,路徑按實(shí)際路徑選擇。然后在MATLAB環(huán)境中運(yùn)行mbuild setup命令,設(shè)置方法同上[3~4]。

      4.2.2 MATLAB中的實(shí)現(xiàn)

      首先建立實(shí)現(xiàn)魚雷三維彈道可視化的M文件其中代碼如下:

      在MATLAB下創(chuàng)建COM組件:

      1)在matlab command window輸入如下命令:?deploytool;

      2)建立deployment project:trshow.prj,確定安裝位置E:\matlab\trshow,選擇目標(biāo):Generic COM Component;

      3)在deployment tool的Build下添加類,將trshow.m文件添加進(jìn)去;

      4)點(diǎn)擊Build生成COM組件,至此COM組件已經(jīng)由MATLAB完成。

      4.2.3 VC下調(diào)用COM組件

      1)將 E:\matlab\trshow\src下的trshow_idl.h、trshow_idl_i.c和mwcomtypes.h文件拷貝到VC建立的工程目錄下。

      2)選擇菜單Project-Settings-屬性頁Link-下拉列表中選擇Input,在“Object/Library modules”編輯框中輸入連接庫文件名:mclmcrrt.lib trshow.lib。

      3)為程序添加頭文件trshow_idl.h、trshow_idl_i.c,mwcomtypes.h頭文件已經(jīng)在trshow_idl.h中有添加。

      4)在按鈕響應(yīng)函數(shù)中添加COM組件的調(diào)用,主要代碼如下:

      MATLAB圖像窗口在VC界面中顯示用函數(shù)Find-Window、SetWindowPos和SetParent,就可實(shí)現(xiàn),其中Find-Window尋找到Windows系統(tǒng)中指定名稱的窗口;SetWindowPos把窗口移動(dòng)到指定的位置;而SetParent函數(shù)改變窗口的父窗口。

      5 實(shí)驗(yàn)結(jié)果

      圖4 三維彈道顯示界面

      通過對魚雷記錄的彈道相關(guān)參數(shù)的研究,建立了魚雷水下運(yùn)動(dòng)彈道可視化模型,并通過VC生成彈道坐標(biāo)文件,運(yùn)用COM組件技術(shù),實(shí)現(xiàn)MATLAB的三維彈道顯示窗口在VC界面中顯示,結(jié)果如圖4所示,此顯示程序保留了MATLAB圖形工具,可實(shí)現(xiàn)彈道的平面投影,如圖5~圖6所示。

      圖5 彈道水平面投影(XOY平面)

      圖6 彈道垂直面的投影(YOZ平面)

      6 結(jié)語

      利用COM組件技術(shù),VC編譯器調(diào)用MATLAB動(dòng)態(tài)鏈接庫,實(shí)現(xiàn)脫離MATLAB環(huán)境的應(yīng)用程序開發(fā),在很大程度上降低了軟件開發(fā)的難度和編碼工作量。VC的文件處理功能強(qiáng)大,支持大量數(shù)據(jù)的分析處理,由MATLAB繪制的3D彈道效果好,將MATLAB圖形窗口嵌入到VC界面中,為彈道的繪制提供了方便,MATLAB的圖形工具為魚雷的彈道提供了便利,提高了編程效率及軟件的可靠性,此繪制方法可實(shí)現(xiàn)數(shù)據(jù)分析處理及數(shù)據(jù)可視化的效果,提高了效率。

      [1]Yuan BingCheng.MODERN HOMINNG TORPEDO TECHNOLOGY.WuHan: NANAL UNIVERSITY OF ENGINEERING,2005.

      [2]牟彧清,王汝霖,李國新.MATLAB與VC接口技術(shù)的研究[J].微計(jì)算機(jī)信息,2006,7(3):275-277.

      [3]劉維.精通 Matlab與C/C++混合程序設(shè)計(jì)[M].2版.北京:北京航空航天大學(xué)出版社,2008.

      [4]董維國.深入淺出MATLAB 7.X混合編程[M].北京:機(jī)械工業(yè)出版社,2006.

      猜你喜歡
      轉(zhuǎn)數(shù)魚雷階梯
      基于計(jì)轉(zhuǎn)數(shù)分辨率的計(jì)轉(zhuǎn)數(shù)引信精確定距方法
      魚雷造反
      軍事島 魚雷人
      齒數(shù)與轉(zhuǎn)數(shù)的關(guān)系
      魚雷也瘋狂
      斜切尾翼彈引信外彈道計(jì)轉(zhuǎn)數(shù)定距原理可行性
      爬階梯
      時(shí)光階梯
      幸福(2016年9期)2016-12-01 03:08:50
      有趣的階梯
      雙轉(zhuǎn)子臨界轉(zhuǎn)數(shù)系統(tǒng)建模與方程的建立
      漠河县| 沁源县| 舞钢市| 溧阳市| 常州市| 兴安县| 县级市| 江油市| 巴中市| 清新县| 杭州市| 芜湖县| 鄂尔多斯市| 闸北区| 施甸县| 德安县| 呼伦贝尔市| 巴青县| 宁海县| 普安县| 方城县| 大庆市| 惠安县| 韩城市| 旺苍县| 茂名市| 肇东市| 肃北| 沂水县| 伊金霍洛旗| 西丰县| 会宁县| 佛坪县| 远安县| 建宁县| 玉门市| 齐河县| 黄龙县| 湘乡市| 慈利县| 汽车|