0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

VB與Matlab混合編程在WEDM仿真軟件中的應(yīng)用

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-01-15 07:51 ? 次閱讀

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

在VB開發(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ù)傳遞,應(yīng)用ActiveX自動(dòng)化技術(shù)進(jìn)行VB與Matlab之間的接口設(shè)計(jì),通過建立在VB應(yīng)用程序和Matlab仿真環(huán)境之間的ActiveX自動(dòng)化連接,實(shí)現(xiàn)了在VB環(huán)境下對(duì)Matlab仿真命令的調(diào)用,并在VB友好的用戶界面中實(shí)時(shí)顯示仿真結(jié)果。

1 VB與Matlab間的接口分析

1.1 VB與Matlab接口形式

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

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

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

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

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方法類似。

3 VB調(diào)用Matlab在WEDM仿真軟件開發(fā)中的應(yīng)用

基于BP神經(jīng)網(wǎng)絡(luò)的電火花線切割(WEDM)工藝仿真系統(tǒng)主要用于實(shí)現(xiàn)工藝數(shù)據(jù)庫的管理、工藝效果的預(yù)測、加工參數(shù)的優(yōu)化等功能。在VB開發(fā)環(huán)境中調(diào)用Matlab的神經(jīng)網(wǎng)絡(luò)工具箱,是為了建立工藝效果的預(yù)測模型和加工參數(shù)優(yōu)化模型,這是仿真系統(tǒng)的主要功能。建模部分的核心代碼如下:

VB與Matlab混合編程在WEDM仿真軟件中的應(yīng)用

該部分程序的作用是VB把用戶輸入的參數(shù)傳到Matlab空間,在Matlab的空間中利用神經(jīng)網(wǎng)絡(luò)工具箱訓(xùn)練網(wǎng)絡(luò),將結(jié)果輸出。進(jìn)而實(shí)現(xiàn)仿真系統(tǒng)幾個(gè)模型的建模。array 1是訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí)的樣本輸入數(shù)據(jù),包括工件厚度T(單位:mm)、脈沖寬度tON(單位:s)、脈沖間隔tOFF(單位:s)、峰值電流IP(單位:A)、間隙電壓VS(單位:V);array 2是樣本輸出數(shù)據(jù),包括切割速度vw(單位:mm2/min)表面粗糙度Ra(單位:μm)。圖1為線切割工藝仿真系統(tǒng)主控界面,包括加工參數(shù)數(shù)據(jù)庫、系統(tǒng)建模、工藝效果的預(yù)測及參數(shù)優(yōu)化等部分。建立模型時(shí),首先利用數(shù)據(jù)庫中的參數(shù)訓(xùn)練模型,模型訓(xùn)練完成后,便可以對(duì)不同加工參數(shù)所對(duì)應(yīng)的加工效果進(jìn)行預(yù)測,并對(duì)給定材料、厚度條件下的加工參數(shù)進(jìn)行優(yōu)化,給出優(yōu)化結(jié)果。

VB與Matlab混合編程在WEDM仿真軟件中的應(yīng)用

建模所需的樣本數(shù)據(jù)如表1所示,網(wǎng)絡(luò)訓(xùn)練的結(jié)果如圖2所示。

VB與Matlab混合編程在WEDM仿真軟件中的應(yīng)用

為驗(yàn)證模型的正確性,用沒有參與神經(jīng)網(wǎng)絡(luò)訓(xùn)練的驗(yàn)證數(shù)據(jù)檢驗(yàn)?zāi)P?,結(jié)果如表2所示。從仿真結(jié)果可以看出,利用VB調(diào)用Matlab混合編程建立的預(yù)測模型可以反映機(jī)床的工藝規(guī)律,建模是成功的。可以應(yīng)用于實(shí)際生產(chǎn)中。

VB與Matlab混合編程在WEDM仿真軟件中的應(yīng)用

4 結(jié) 語

VB與Matlab混合編程簡單方便,效率高,能夠應(yīng)用于WEDM仿真系統(tǒng)中,以實(shí)現(xiàn)系統(tǒng)功能。缺點(diǎn)是要依托于Matlab平臺(tái),執(zhí)行速度慢,靈活性較差。(現(xiàn)代電子技術(shù) 蘇 軍,孫科峰)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • matlab
    +關(guān)注

    關(guān)注

    179

    文章

    2946

    瀏覽量

    229455
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4717

    瀏覽量

    99998
  • 仿真
    +關(guān)注

    關(guān)注

    50

    文章

    3971

    瀏覽量

    132953
  • PCB設(shè)計(jì)
    +關(guān)注

    關(guān)注

    394

    文章

    4648

    瀏覽量

    84534
  • 可制造性設(shè)計(jì)

    關(guān)注

    10

    文章

    2064

    瀏覽量

    15377
  • 華秋DFM
    +關(guān)注

    關(guān)注

    20

    文章

    3492

    瀏覽量

    4187
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    VC與MATLAB混合編程語音及圖像處理的應(yīng)用

    VC與MATLAB混合編程語音及圖像處理的應(yīng)用 [hide][/hide]
    發(fā)表于 11-25 09:28

    VBMATLAB混合編程的一個(gè)實(shí)例

    ` 看完這個(gè)簡單實(shí)例,可以清楚的知道VBMATLAB是這樣混合編程的。這個(gè)程序是用VB做界面,計(jì)算和繪圖由MATLAB實(shí)現(xiàn)。因?yàn)?/div>
    發(fā)表于 02-28 09:25

    基于labview與matlab混合編程

    求大神解答怎樣編寫一個(gè)VI控制matlab仿真小車前后行走 。。。。。。。。通過SIT混合編程
    發(fā)表于 03-06 14:42

    labview與matlab混合編程

    labview與matlab混合編程
    發(fā)表于 05-13 17:03

    Matlab與VC混合編程

    Matlab與VC混合編程
    發(fā)表于 04-03 16:14

    VB調(diào)用MatlabWEDM仿真軟件開發(fā)中有哪些應(yīng)用?

    VBMatlab間的接口分析ActiveX技術(shù)接口設(shè)計(jì)的應(yīng)用有哪些?VB調(diào)用Matlab
    發(fā)表于 04-22 06:39

    Vb與LabVIEW混合編程的實(shí)現(xiàn)

    Vb與LabVIEW混合編程的實(shí)現(xiàn):使用Vb 開發(fā)測控軟件系統(tǒng)時(shí),對(duì)有關(guān)數(shù)據(jù)信號(hào)顯示、分析和處理等算法實(shí)現(xiàn)起來較復(fù)雜。LabVIEW 圖形
    發(fā)表于 09-21 08:31 ?49次下載

    采用VBMatlab混合編程實(shí)現(xiàn)在WEDM仿真軟件開發(fā)

    基于BP神經(jīng)網(wǎng)絡(luò)的電火花線切割(WEDM)工藝仿真系統(tǒng)需要具有工藝數(shù)據(jù)庫管理、工藝效果預(yù)測、加工參數(shù)優(yōu)化等設(shè)計(jì)功能。借助Matlab的神經(jīng)網(wǎng)絡(luò)工具箱,可以建立良好的工藝效果預(yù)測
    發(fā)表于 07-06 10:24 ?1598次閱讀
    采用<b class='flag-5'>VB</b>與<b class='flag-5'>Matlab</b><b class='flag-5'>混合編程</b>實(shí)現(xiàn)在<b class='flag-5'>WEDM</b><b class='flag-5'>仿真</b><b class='flag-5'>軟件</b>開發(fā)<b class='flag-5'>中</b>的

    Matlab與C混合編程匯總

    接受matlab與C,C++等混合編程的方法案例
    發(fā)表于 01-14 16:09 ?0次下載

    C_與Matlab混合編程BEAM繪制的應(yīng)用_范嬋嬌

    C_與Matlab混合編程BEAM繪制的應(yīng)用_范嬋嬌
    發(fā)表于 03-19 11:26 ?0次下載

    Qt與Matlab混合編程

    Qt與Matlab混合編程
    發(fā)表于 03-27 08:48 ?0次下載

    如何實(shí)現(xiàn)VisualC++與MATLAB接口進(jìn)行混合編程詳細(xì)方法說明

    本文首先論述了VisualC++和Matab混合編程的重要性和優(yōu)點(diǎn),介紹了Visualc++利用Matlab引擎調(diào)用Matab函數(shù)的方法,和在M
    發(fā)表于 07-16 17:09 ?20次下載

    使用MatlabVB混合編程弧齒錐齒輪SGM調(diào)整卡計(jì)算的應(yīng)用資料說明

    述幾種MatlabVB混和編程的方法,比較各自的優(yōu)缺點(diǎn),為使系統(tǒng)能脫離matlab環(huán)境,實(shí)現(xiàn)調(diào)整卡分析計(jì)算的程序化,采用一種基于組件對(duì)象的混合編程
    發(fā)表于 09-16 15:52 ?11次下載
    使用<b class='flag-5'>Matlab</b>與<b class='flag-5'>VB</b><b class='flag-5'>混合編程</b><b class='flag-5'>在</b>弧齒錐齒輪SGM調(diào)整卡計(jì)算<b class='flag-5'>中</b>的應(yīng)用資料說明

    LabVIEW與Matlab混合編程

    LabVlEW 和 Matlab混合編程 ,通過 LabVIEW 專有程序接 口調(diào)用 MATLAB實(shí)現(xiàn)。其 ,LabVIEW 設(shè)計(jì)用戶圖形界面,負(fù)責(zé)數(shù)據(jù)采集;
    發(fā)表于 06-30 08:00 ?16次下載
    LabVIEW與<b class='flag-5'>Matlab</b>的<b class='flag-5'>混合編程</b>

    matlab vsFortran混合編程工具

    matlab vsFortran混合編程工具
    發(fā)表于 06-30 14:51 ?0次下載