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

VB和MATLAB混合編程在井眼軌道設(shè)計上的運用

2016-01-25 07:19:08周志穩(wěn)馬衛(wèi)國
山東科學 2015年4期

周志穩(wěn),馬衛(wèi)國

(長江大學機械工程學院,湖北 荊州 434023)

?

VB和MATLAB混合編程在井眼軌道設(shè)計上的運用

周志穩(wěn),馬衛(wèi)國

(長江大學機械工程學院,湖北 荊州 434023)

摘要:為提高連續(xù)油管鉆井井眼軌道設(shè)計的便捷性,采用基于COM組件的VB和MATLAB混合編程方法,將繪圖的代碼進行封裝,只要即時改變參量數(shù)值,就可得出相應(yīng)的圖形,并可比較不同參數(shù)下圖形的特點。該設(shè)計實現(xiàn)了VB編寫的多個模塊調(diào)用一個MATLAB程序的功能,減少了程序編寫的工作量,提高了程序開發(fā)的效率。

關(guān)鍵詞:Visual Basic;MATLAB;混合編程;井眼;軌道設(shè)計

連續(xù)油管是一種小直徑柔性管柱,作為鉆井管柱在國外已經(jīng)被廣泛應(yīng)用于老井加深和開窗側(cè)鉆鉆井。連續(xù)油管鉆井更適應(yīng)于復(fù)雜結(jié)構(gòu)井和小井眼鉆井,探究其井眼軌道的設(shè)計和控制具有十分重要的指導(dǎo)意義。井眼軌道設(shè)計作為一種鉆井施工的參考,可以知道已鉆井眼軌道是否符合設(shè)計的要求,從而進一步指導(dǎo)待鉆井眼的施工,及時調(diào)整井斜角和方位角,以便準確鉆達目標點[1]。連續(xù)管井眼軌道的設(shè)計與常規(guī)鉆井一樣,可以采用解析法,軌道設(shè)計的關(guān)鍵在于根據(jù)給定的條件求出軌道的關(guān)鍵參數(shù),只要求出此參數(shù),軌道上所有參數(shù)就都可以求出[2],然后根據(jù)所求出的參數(shù)完成井眼軌道的繪制。國內(nèi)外一般使用C#語言結(jié)合OpenGL技術(shù)實現(xiàn)軌跡的繪制,但此種方法編程復(fù)雜,開發(fā)成本高。VB具有良好的可視化功能,但圖形處理和數(shù)值計算能力欠佳。MATLAB具有強大的圖形處理的能力,并且編寫簡單,編程效率高,但可視化界面編寫復(fù)雜[3]。因此,本文采用基于COM組件的VB和MATLAB混合編程方法來解決二維井眼軌道的繪制問題。

1設(shè)計方案

目前,運用得比較多的MATLAB和VB編程方法有:(1)動態(tài)數(shù)據(jù)交換(DynamicDataExchange,DDE)[4];(2)中間文件傳遞方式[5];(3)ActiveX技術(shù)(即Automationserver技術(shù))[6];(4)動態(tài)鏈接庫(DynamicLinkLibrary,DLL)[7];(5)MatrixVB方式[8-9];(6)COM組件技術(shù)[10]。在上述6種方法中,前3種調(diào)用過程較復(fù)雜,并且不能在脫離MATLAB的環(huán)境下運行;Mideva雖然能脫離MATLAB環(huán)境,但已經(jīng)停止發(fā)行;而MatrixVB采用解釋執(zhí)行的方式,因此執(zhí)行效率比較低,難以進行實時處理[11];COM組件不但可以脫離MATLAB環(huán)境,而且實時處理能力強,可移植性好。因此,本文將采用COM組件來實現(xiàn)VB和MATLAB的混合編程。

2基于COM組件的VB與MATLAB接口實現(xiàn)方法

2.1系統(tǒng)環(huán)境要求:

(1)Mircrosoftwindow7系統(tǒng)或MircrosoftwindowsXP系統(tǒng);

(2)MATLAB2010b;

(3)MircosoftVisualBasic6.0;

(4)MircosoftVisualStudio2008ExpressEditions。

2.2M文件轉(zhuǎn)化為DLL組件

首次進行M文件轉(zhuǎn)化DLL操作時,需要配置編譯環(huán)境[12],具體操作如下:在命令窗口輸入mbuild-setup回車,根據(jù)提示信息,選擇MicrosoftVisualC++ 2008編譯器。當窗口中出現(xiàn)Done…字樣時,表示配置成功。然后接著在命令行中輸入deploytool回車,在彈出的deploymentproject頁面中設(shè)置工程的名稱為trajectory1,將下面的目標(Target)選項設(shè)置為genericCOMcomponent(如圖1)。確定后進入deploymenttool界面,選擇工具欄AddFile為工程添加M文件,如需在未安裝MATLAB的電腦中運行,則還需依次進行如下操作:Project-setting-advance選中MCRStartupOption選項,然后進行Project-build操作,生成DLL文件,默認存放于Distrib的文件夾中,文件名為trajectory1_1_0.dll,同時生成的還有src文件夾,最后進行打包發(fā)布即可。

圖1 Depolyment project窗口Fig.1 Depolyment project window

圖2 引用對話框設(shè)置窗口Fig.2 Reference settings window

2.3VB調(diào)用MATLAB

在菜單欄的工具選項卡中選擇引用,彈出引用窗口,在引用框中找到trajectory1 1.0TypeLibrary選項,勾選后單擊確定,添加成功后還需要對組件進行聲明和初始化,其語法結(jié)構(gòu)為:

DimDEAstrajectory1.trajectory1

SetDE=Newtrajectory1.trajectory1

在VB程序中調(diào)用接口函數(shù),其語法結(jié)構(gòu)為:

CallDE.trajectory1(Rz1,Dkop1,St1,Alpha_b1)

在VB創(chuàng)建的工程中引用已經(jīng)生成的DLL文件,實現(xiàn)VB和MATLAB接口的信息傳遞和調(diào)用(如圖2)。

3應(yīng)用實例

以鉆井設(shè)計中最優(yōu)先考慮的剖面類型——“直-增-穩(wěn)”型二維剖面為例,進行具體的說明[13-14]。

3.1二維井眼軌道的設(shè)計及其求解方法

圖3 三段式井眼軌道Fig.3 Three sections borehole trajectory

(1)

Rz(1-cosαb)+Dnwsinαb=St。

(2)

其中,Dt為靶點垂深,m;St為靶點水平位移,m。

本文將在VB中進行計算,計算出的結(jié)果傳遞到MATLAB中進行繪圖,從而實現(xiàn)VB對MATLAB的調(diào)用,由于只要軌道的關(guān)鍵參數(shù)求出,就可對軌道圖形進行繪制,因此只要將關(guān)鍵參數(shù)作為MATLAB的函數(shù)參數(shù),編寫M文件,即可實現(xiàn)及時變參,這樣就可達到在不同條件下的不同情況中繪制軌道圖形的效果。從而本文的6種情況下的軌道圖形的繪制只需調(diào)用一個MATLAB程序,即6種情況可共用一個DLL文件,從而大大減少了程序編寫的工作量,提高了效率。

3.2編寫M文件

運用MATLAB接近數(shù)學表達式的自然化語言進行編程,簡單易行。

M文件的代碼如下:

functiontrajectory1(Rz,Dkop,St,Dmw,alpha_b,Dt)

plot([0 0],[0,-Dkop],′r′)

holdon%繪制直井段

hd=pi/180;

t=acos((Rz-St+Dmw*sin(alpha_b*hd))/Rz);

k=t+pi;

alpha=pi:pi/50000:k;

x=Rz+Rz*cos(alpha);

y=-Dkop+Rz*sin(alpha);

plot(x,y)

holdon%繪制圓弧井段

x1=(St-Dmw*sin(alpha_b*hd)):0.001:St;

y1=(x1-St)*tan(alpha_b*hd+pi/2)-Dt;

plot(x1,y1,′g-′)%繪制穩(wěn)斜井段

legend(′垂直段′,′造斜段′,′穩(wěn)斜段′);

title(′三段式二維井眼軌道′);

xlabel(′水平位移(m)′);

ylabel(′垂深(m)′);

gridon

axisequal

3.3VB程序的調(diào)用

依照前面介紹的VB調(diào)用MATLAB的方法,對生成的DLL文件,在VB工程中進行引用,并且對COM組件進行聲明和初始化,最后實行調(diào)用。圖4為主界面部分,每個子菜單對應(yīng)一種設(shè)計工況(見上文3.1),如圖5所示。在不同參數(shù)條件下的軌道可以同時顯示在界面中(如圖6所示),并且可以將軌道的井深、井斜角和方位角輸出與實鉆的情況進行對比,從而選出最優(yōu)的井眼軌道曲線,為實踐提供參考。在與已知油井數(shù)據(jù)進行對比后,結(jié)果表明與實際情況基本相符。

圖4 三段式井眼軌道系統(tǒng)界面Fig.4 Interface of three sections borehole trajectory

圖5 某種條件下的工作界面Fig.5 Work interface in a certain condition

圖6 不同設(shè)計要求下的軌道形狀的對比Fig.6  Contrast of trajectories for different  requirements

4總結(jié)

本文實現(xiàn)了VB調(diào)用MATLAB所生成的同一DLL組件,對不同參數(shù)條件下的軌道進行繪制,從而減少了編程的工作量,提高了程序編寫的便捷性,節(jié)約了軟件的存儲,較傳統(tǒng)的商業(yè)軟件優(yōu)勢明顯。雖然目前還不能囊括所有的井眼軌道類型,但是可以在此基礎(chǔ)上進一步進行大位移井眼軌道(如拋物線形井眼軌道、懸鏈線形井眼軌道)的設(shè)計,這也是下一步的工作方向和重點。

參考文獻:

[1]劉修善.定向鉆井軌道設(shè)計與軌跡計算的關(guān)鍵問題解析[J].石油鉆探技術(shù),2011,39(5):1-7.

[2]石曉兵,喻著成,陳平.側(cè)鉆水平井、分支井井眼軌跡設(shè)計與控制理論[M].北京:石油工業(yè)出版社.2009.

[3]鐘功祥,王仕強,呂治忠.基于VB與MATLAB混合編程在鉆井泵故障診斷中的應(yīng)用[J].價值工程,2012(3): 192-193.

[4]謝松,周衛(wèi),李文林. 基于VB與MATLAB混合編程的數(shù)據(jù)可視化與數(shù)據(jù)挖掘軟件的研究[J]. 中國中醫(yī)藥圖書情報雜志,2014,38(2):8-11.

[5]孟力力,楊其長.VB調(diào)用Matlab的COM組件實現(xiàn)二者混合編程[J]. 電腦開發(fā)與應(yīng)用,2008,21(6):24-26.

[6]王 麗,遲永濱. 基于VB與Matlab的發(fā)動機外特性曲線繪制[J].小型內(nèi)燃機與摩托車,2013,42(1):38-41.

[7]巫慶輝,龐艷偉. 基于VB與Matlab的磁化曲線實驗教學軟件的開發(fā)[J]. 渤海大學學報:自然科學版;2013,34(2):166-171.

[8]蒙冠杰,蔡益舟,柯年杭.VB與Matlab混合編程的實用方法[J].電腦編程技巧與維護,2014(12):11~12.

[9]孟繁娟,杜永平.Vb和Matlab混合編程方法—MatrixVB[J].計算機技術(shù)與發(fā)展,2008,18(5):76-78.

[10]馬培勇,羅紅潤,周思柱. 基于COM組件的MATLAB和VB混編方法在機械可靠性工程中的應(yīng)用[J]. 計算機應(yīng)用與軟件,2012,29(7): 189-191.

[11]宋廣東,劉統(tǒng)玉,王昌.基于COM組件的VB與MATLAB混合編程實現(xiàn)振動信號處理[J].山東科學,2010,23(1):32-35.

[12]馮旭.在VB開發(fā)環(huán)境中調(diào)用由MATLAB函數(shù)轉(zhuǎn)化的DLL[J].西北民族大學學報:自然科學版;2004, 25(2):65-67.

[13]孫騰飛,高德利,張輝.目標垂深和造斜率不確定條件下的水平井軌跡設(shè)計[J].特種油氣藏,2012,19(4):141-144.

[14]郭鳳超,陶亮,賈曉斌.水平井鉆井管柱力學模型與軟件開發(fā)[J].石油機械,2013,41(7):28-32.

[15]高遠文,魯港.直增穩(wěn)剖面設(shè)計問題的解析解[J].礦探工程,2010,37(1):13-15.

ApplicationofhybridprogrammingwithVB

andMATLABinwelltrajectorydesign

ZHOUZhi-wen,MAWei-guo

(SchoolofMechanicalEngineering,YangtzeUniversity,Jingzhou434023,China)

Abstract∶To improve the convenience of coiled tube drilling trajectory design, we employ COM component based VB and MATLAB hybrid programming method and encapsulate the drawing code.It can draw the corresponding figure and compare the characteristics of different parameters figures,if only parameter value is instantaneously changed.We realize the calling of VB based multiple modules to one MATLAB program, which decreases the workload of program writing and improves software development efficiency.

Key words∶Visual Basic;MATLAB;hybrid programming;well;trajectory design

中圖分類號:TE24;TP311.52

文獻標識碼:A

文章編號:1002-4026(2015)04-0089-05

作者簡介:周志穩(wěn)(1988-),男,碩士研究生,研究方向為先進鉆采技術(shù)。

基金項目:國家科技重大專項(2011ZX05036-006)

收稿日期:2014-11-09

DOI:10.3976/j.issn.1002-4026.2015.04.017

主站蜘蛛池模板: 日本91视频| 一级爆乳无码av| 伊人精品成人久久综合| 美美女高清毛片视频免费观看| 亚洲国产精品日韩专区AV| 色综合狠狠操| 亚洲日本韩在线观看| a毛片在线播放| 亚洲精品中文字幕午夜| 亚洲人成网站18禁动漫无码 | 福利小视频在线播放| 亚洲AV无码精品无码久久蜜桃| 2020久久国产综合精品swag| 日本黄色不卡视频| 久久黄色一级片| 99久久精品无码专区免费| 九九热这里只有国产精品| 欧美一级在线播放| 自拍欧美亚洲| 久久99热这里只有精品免费看| 免费亚洲成人| yy6080理论大片一级久久| 免费无遮挡AV| 国产亚洲精品自在线| 久久综合丝袜日本网| 中文成人在线视频| 熟女视频91| 欧美在线三级| 国产激爽大片在线播放| 国产成人综合欧美精品久久| 欧美中文字幕在线视频| 欧美全免费aaaaaa特黄在线| 激情六月丁香婷婷| 夜夜操国产| 人人看人人鲁狠狠高清| 亚洲欧美不卡| 99九九成人免费视频精品| 5555国产在线观看| 国产经典免费播放视频| 97se亚洲综合在线韩国专区福利| 国产精品美女免费视频大全 | 女人18一级毛片免费观看| 91网站国产| 免费日韩在线视频| 国产麻豆精品久久一二三| 婷婷六月天激情| 91精品国产自产在线老师啪l| 中文无码精品a∨在线观看| 在线另类稀缺国产呦| 色偷偷av男人的天堂不卡| 在线免费a视频| 成人精品区| 91精品在线视频观看| 日韩精品久久久久久久电影蜜臀| 久久精品国产免费观看频道| 青青青视频91在线 | 日韩精品一区二区三区视频免费看| 亚洲天堂视频网站| 美女免费黄网站| 视频一本大道香蕉久在线播放| 欧美亚洲日韩中文| 国产av剧情无码精品色午夜| 精品国产免费人成在线观看| 深爱婷婷激情网| 丁香婷婷久久| av在线手机播放| 亚洲精品无码人妻无码| 国产精品亚洲精品爽爽| 97一区二区在线播放| 午夜老司机永久免费看片 | 播五月综合| 在线99视频| 毛片免费观看视频| 精品一区二区无码av| 久久国产成人精品国产成人亚洲| 欧美国产日韩另类| 国产在线91在线电影| 国产欧美日韩精品第二区| 亚洲h视频在线| 在线a视频免费观看| 国产日产欧美精品| 欧美激情综合一区二区|