<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > VB調(diào)用Matlab在WEDM仿真系統(tǒng)中的應(yīng)用

          VB調(diào)用Matlab在WEDM仿真系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2010-07-08 來源:網(wǎng)絡(luò) 收藏
          基于BP神經(jīng)網(wǎng)絡(luò)的電火花線切割()工藝需要具有工藝數(shù)據(jù)庫(kù)管理、工藝效果預(yù)測(cè)、加工參數(shù)優(yōu)化等設(shè)計(jì)功能。借助的神經(jīng)網(wǎng)絡(luò)工具箱,可以建立良好的工藝效果預(yù)測(cè)模型和參數(shù)優(yōu)化模型,這正是工藝軟件最主要的功能要求。是Windows操作下優(yōu)秀的可視化編程工具軟件,在用戶界面設(shè)計(jì)和快速開發(fā)等方面具有獨(dú)特的優(yōu)勢(shì)。同時(shí),軟件以其強(qiáng)大的科學(xué)計(jì)算功能和開放式開發(fā)思想使其成為當(dāng)前最為流行的仿真計(jì)算工具。綜合兩種開發(fā)環(huán)境各自的優(yōu)勢(shì),可采用混合編程的方法實(shí)現(xiàn)工藝仿真軟件的編程開發(fā)。

          開發(fā)環(huán)境下制定前臺(tái)用戶界面,利用Matlab強(qiáng)大的計(jì)算功能實(shí)現(xiàn)后臺(tái)模型的實(shí)時(shí)仿真。為了實(shí)現(xiàn)前臺(tái)界面與后臺(tái)仿真環(huán)境間的數(shù)據(jù)傳遞,ActiveX自動(dòng)化技術(shù)進(jìn)行VB與Matlab之間的接口設(shè)計(jì),通過建立在VB程序和Matlab仿真環(huán)境之間的ActiveX自動(dòng)化連接,實(shí)現(xiàn)了在VB環(huán)境下對(duì)Matlab仿真命令的,并在VB友好的用戶界面中實(shí)時(shí)顯示仿真結(jié)果。

          1 VB與Matlab間的接口分析

          1.1 VB與Matlab接口形式

          為了能夠充分利用Matlab提供的豐富函數(shù)庫(kù),Matlab本身提供了程序接口API(Matlab application program interface)。因此,VB與Matlab接口設(shè)計(jì)有多種實(shí)現(xiàn)方式。

          (1)借用C++與Matlab的接口,將Matlab的程序文件(*.M)編譯為動(dòng)態(tài)鏈接庫(kù)(*.DLL),VB在代碼中生成DLL中的函數(shù),以實(shí)現(xiàn)算法,便于用戶脫離Matlab環(huán)境使用。由于算法部分采用C++語句,運(yùn)行速度較快,可應(yīng)用于實(shí)時(shí)運(yùn)算。但是這種方法對(duì)開發(fā)者在設(shè)置和編程上都有較高的要求。

          (2)通過使用嵌入VB中矩陣函數(shù)庫(kù)MatrixVB的方法實(shí)現(xiàn)接口。MatrixVB是第三方插件,利用與Matlab相似的函數(shù)、語法嵌入到VB中,可以像使用VB的函數(shù)、命令一樣使用Matlab函數(shù)。這種方法的語法和函數(shù)使用比較簡(jiǎn)單,編程效率很高,幾乎完全可以融入VB語言,特別是對(duì)圖形的處理非常方便,彌補(bǔ)了其他方法在圖形處理上的弱點(diǎn)。但由于它仍然采用解釋執(zhí)行,執(zhí)行效率較低,因此實(shí)時(shí)運(yùn)算難以實(shí)現(xiàn),特別對(duì)于Matlab各類工具箱的尤為困難。

          (3)在Visual Basic中通過調(diào)用Matlab的引擎接口,使用Windows的ActiveX技術(shù)與Matlab進(jìn)行數(shù)據(jù)交互。通過Object.Execute語句在程序中直接使用Matlab提供的函數(shù)庫(kù)和圖形庫(kù)。

          1.2 ActiveX自動(dòng)化技術(shù)

          ActiveX是一種支持組件集成MicroSoft Windows協(xié)議的自動(dòng)化技術(shù),通過ActiveX技術(shù)可以將不同環(huán)境下開發(fā)的組件集成到一個(gè)應(yīng)用程序中;ActiveX同時(shí)又是一種面向?qū)ο蠹夹g(shù),屬于組件對(duì)象模型(COM)的子類。COM為所有的ActiveX對(duì)象定義了對(duì)象模型,每個(gè)ActiveX對(duì)象支持一定的接口,即支持不同的方法、屬性和事件。利用這些方法執(zhí)行相應(yīng)的動(dòng)作,幫助客戶端實(shí)現(xiàn)一定的功能。Matlab支持兩種類型的ActiveX技術(shù):ActiveX控制容器和ActiveX Automation。ActiveX控制容器可以將不同的ActiveX控件集成在一個(gè)應(yīng)用中;而ActiveX Automation是一種允許一個(gè)應(yīng)用程序(客戶端)去控制另一個(gè)應(yīng)用程序(服務(wù)器端)的協(xié)議。在本文中,Matlab是服務(wù)器端,VB是客戶端,通過Automation,客戶端可以執(zhí)行Matlab命令,并與Matlab的工作空間進(jìn)行數(shù)據(jù)交換,以達(dá)到調(diào)用Matlab來訓(xùn)練神經(jīng)網(wǎng)絡(luò)的目的。

          2 ActiveX技術(shù)在接口設(shè)計(jì)中的應(yīng)用

          Matlab ActiveX自動(dòng)化服務(wù)的功能主要包括在Matlab工作空間執(zhí)行Matlab命令,直接對(duì)工作空間進(jìn)行存取矩陣操作等。

          Matlab提供了一個(gè)自動(dòng)化對(duì)象,其外部名稱為Matlab.Application,支持COM技術(shù)。外部程序(如VB)通過COM技術(shù)提供的函數(shù),得到自動(dòng)化服務(wù)器對(duì)象支持的指針,并通過調(diào)用接口函數(shù)控制和使用自動(dòng)化對(duì)象。在VB應(yīng)用程序中,創(chuàng)建了Matlab的ActiveX對(duì)象后,就可以使用這個(gè)對(duì)象所包含的各種方法來實(shí)現(xiàn)對(duì)Matlab的調(diào)用。Matlab.Application對(duì)象含有3種方法,分別是Execute,GetFullatrix和PutFullMatrix。

          (1)BSTR Execute([in]BSTR Command):BSTR表示寬字符串類型,它與VB存儲(chǔ)字符串所采用的數(shù)據(jù)格式相同。該方法接收字符串命令并在Matlab中執(zhí)行,將結(jié)果以字符串形式返回。

          (2)void GetFullMatrix([in]BSTR Name[in]BSTR Workspace,[in,out]SAFEARRAY(douMe)*pr,[in,out]SAFEARRAY(double)*pi):GetFullMatrix方法從指定的工作空間檢索一個(gè)完整的實(shí)型或虛型mxArray,其實(shí)部和虛部被分別存放到2個(gè)單獨(dú)的Double型數(shù)組中??梢岳肎etFullMatrix方法將Matlab中的一個(gè)矩陣變量傳送到VB程序中的一個(gè)一維或二維數(shù)組中。其中,Name指定了Matlab中的矩陣變量名;Workspace指定了該矩陣所在的Matlab工作區(qū);pr指VB程序中的實(shí)部數(shù)組;pi指VB程序中的虛部數(shù)組。

          (3)void PutFullMatrix([in]BSTR Name,[in]BSTRWorkspaee,[in,out]SAFEARRAY(double)*pr,[in,out]SAFEARRAY(double)*pi):PutFullMatrix方法將一個(gè)mxArray放入指定的工作空間。各參數(shù)的含義及調(diào)用方法與GetFullMatrix方法類似。

          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();