技術(shù)文章
VB與Matlab的混合編程
閱讀:199 發(fā)布時(shí)間:2020-8-135.2 VB與Matlab的混合編程
5.2.1 VB與Matlab混合編程的優(yōu)點(diǎn)
Matlab是集數(shù)值分析、矩陣分析、信號(hào)處理以及圖形處理的高性能的編程軟 件,其計(jì)算以及圖形生成能力較強(qiáng),但是Matlab的可視化界面功能比較弱,不 能及時(shí)的觀(guān)察由于數(shù)據(jù)的變化而導(dǎo)致的參數(shù)以及模型的變化,只能根據(jù)數(shù)據(jù)的變 化被動(dòng)從新運(yùn)行程序求取參數(shù),然后根據(jù)參數(shù)求取模型。
VB具有良好的可視化界面,且編程語(yǔ)言簡(jiǎn)單,程序集中化程度高,易于初 學(xué)者學(xué)習(xí)使用。VB雖然能夠時(shí)時(shí)的觀(guān)察由于數(shù)據(jù)的變化導(dǎo)致參數(shù)以及圖形的改 變,但是其計(jì)算能力以及圖形處理能力較弱,對(duì)于某些復(fù)雜參數(shù)以及圖形,VB
處理起來(lái)比較費(fèi)事,甚至不能夠處理。
VB與Matlab的混合編程是將VB良好的可視化界面與Matlab強(qiáng)大的計(jì)算 能力以及圖形能力結(jié)合起來(lái),利用兩者的優(yōu)勢(shì)來(lái)處理相關(guān)數(shù)據(jù)。這樣既避免了 Matlab界面能力弱的問(wèn)題,又同時(shí)避免了 VB計(jì)算能力以及圖形處理能力弱的問(wèn) 題。兩者的結(jié)合不僅適用于處理靜態(tài)數(shù)據(jù),顯示靜態(tài)模型,還且適用于處理動(dòng)態(tài) 數(shù)據(jù),時(shí)時(shí)更新動(dòng)態(tài)模型。
5.2.2 VB與Matlab混合編程的方法
VB調(diào)用Matlab的方法是通過(guò)ActiveX自動(dòng)化服務(wù)技術(shù)[64][65]。ActiveX是一 種開(kāi)放式的標(biāo)準(zhǔn),是Microsoft以COM為基礎(chǔ)的技術(shù),它允許某個(gè)應(yīng)用程序或 著部件控制其他應(yīng)用程序或者部件的運(yùn)作。Matlab支持ActiveX自動(dòng)化服務(wù)器終 端協(xié)議,可通過(guò)ActiveX自動(dòng)化接口,作為VB語(yǔ)言中的一個(gè)ActiveX部件調(diào)用。 ActiveX部件保留了 VB中的一些普通控件的屬性、方法和事件,使程序員在設(shè) 計(jì)程序時(shí)更加靈活。
在Windows環(huán)境下,通過(guò)以下源代碼可實(shí)現(xiàn)VB與Matlab的無(wú)縫連接:
Dim Matlab As Object '定義 Matlab 對(duì)象
Set matlab = CreateObject("Matlab.Application”)'設(shè)置 Matlab 為自動(dòng)化服務(wù)器 Matlab ActiveX
對(duì)象創(chuàng)建完成后,就可以在VB中對(duì)對(duì)象進(jìn)行操作了。
5.2.1 VB與Matlab混合編程的流程
首先將樣本保存到text文本中,并且命名為kkx_t,在VB中通過(guò)控件以及 相應(yīng)的程序可以直接調(diào)用kkx_t.text中的樣本,并將樣本顯示在用戶(hù)界面中;其 次同時(shí)用戶(hù)通過(guò)用戶(hù)界面中的控件將數(shù)據(jù)樣本以及函調(diào)命令通過(guò)ActiveX自動(dòng) 化接口直接傳送給Matlab,Matlab根據(jù)傳遞過(guò)來(lái)的樣本以及函調(diào)命令直接調(diào)用 相應(yīng)的.M文件,執(zhí)行相應(yīng)的命令;后Matlab將運(yùn)行結(jié)果通過(guò)ActiveX傳遞給 VB,并在用戶(hù)界面中顯示。
本文采摘自“加工中心盤(pán)式刀庫(kù)可靠性試驗(yàn)方法研究”,因?yàn)榫庉嬂щy導(dǎo)致有些函數(shù)、表格、圖片、內(nèi)容無(wú)法顯示,有需要者可以在網(wǎng)絡(luò)中查找相關(guān)文章!本文由伯特利數(shù)控整理發(fā)表文章均來(lái)自網(wǎng)絡(luò)僅供學(xué)習(xí)參考,轉(zhuǎn)載請(qǐng)注明!