同霄 張笑
1)Active X是一門生成、使用和集成組件的技術(shù)。
2)OLE:傳統(tǒng)上,軟件開發(fā)工具是始終如一的,即使能與其他工具交換組件并能實(shí)施一些變化,其交換和變化也是微小的。編程環(huán)境是獨(dú)立于其他應(yīng)用程序的“孤島”。隨著OLE的引入,軟件的開發(fā)方法從面向過程轉(zhuǎn)化為面向?qū)ο蟆?/p>
用CreateObject()函數(shù)生成要引用的應(yīng)用程序,與OLE自動(dòng)化服務(wù)器聯(lián)系,其語法如下:
Set AppObject=CreateObject(Class,ServerName)
Class是服務(wù)器應(yīng)用程序在注冊(cè)表中注冊(cè)的名稱。
MATLAB的Class名為“Matlab.Application”。ServerName是可選的,是生成對(duì)象的網(wǎng)絡(luò)服務(wù)器名,可以由用戶自己定義。如果服務(wù)器應(yīng)用程序在另一機(jī)器上,則還要指定生成Class的機(jī)器名。如果服務(wù)器應(yīng)用程序安裝在機(jī)器computer上,則下列語句生成Matlab的新實(shí)例:
Set Matlab=CreateObject(“Matlab.Application,”“computer”)
1)Execute方法。
調(diào)用Matlab,執(zhí)行一條由字符串組成的Matlab命令,同時(shí)返回一個(gè)字符串,該字符串表示了命令的執(zhí)行情況,其語法為:
Result=Matlab.Execute(“Command”)
2)GetFullMatrix方法。
Call GetFullMatrix(
[in]BSTRName,
[in]BSTRWorkPlace,
[inout]SAFEARRAY(double)*pr,
[inout]SAFEARRAY(double)*pi)
該函數(shù)從指定的MAT LAB工作空間中獲取一維或二維數(shù)組。Name指定MATLAB中的矩陣變量名,Workspace指定Matlab工作區(qū),*pr指VB程序中的實(shí)部數(shù)組,*pi指VB程序中的虛部數(shù)組。
3)PutFullMatrix方法。
Call PutFullMatrix(
[in]BSTRName,
[in]BSTRWorkPlace,
[inout]SAFEARRAY(double)*pr,
[inout]SAFEARRAY(double)*pi)
該函數(shù)將VB程序中的一維或二維數(shù)組傳送到MATLAB中的矩陣變量中。
彈性地基梁根據(jù)荷載作用點(diǎn)離梁兩端的距離分為無限長(zhǎng)梁、半無限長(zhǎng)梁和有限長(zhǎng)梁。在集中力或集中力偶下無限長(zhǎng)梁和半無限長(zhǎng)梁的彎矩表達(dá)式為:
集中力作用下無限長(zhǎng)梁的彎矩計(jì)算公式:
集中力偶作用下無限長(zhǎng)梁的彎矩計(jì)算公式:
集中力作用下半無限長(zhǎng)梁的彎矩計(jì)算公式:
集中力偶作用下半無限長(zhǎng)梁的彎矩計(jì)算公式:
其中,F(xiàn),M0分別為集中力和集中力偶的大小;x為地基梁上一點(diǎn)到集中力或集中力偶作用點(diǎn)之間的距離;λ為彈性特征;式(1),式(2)為無限長(zhǎng)梁荷載作用點(diǎn)右半部分的彎矩計(jì)算公式,根據(jù)其對(duì)稱性得到其左半部分的結(jié)果。
程序主要思路如圖1所示,先判斷彈性地基梁的類型,而后將數(shù)據(jù)傳遞到MATLAB工作空間中進(jìn)行計(jì)算,繪制彎矩圖,剪力、撓度、轉(zhuǎn)角和彎矩一致。
圖2為程序的主界面。
第一步先判斷彈性地基梁的類型,如圖3所示,點(diǎn)擊對(duì)應(yīng)按鈕。
第二步選擇相應(yīng)的類型及受力方式,并進(jìn)行計(jì)算,計(jì)算界面和彎矩圖如圖4所示。
本文將VB和MAT LAB進(jìn)行無縫連接,將它們各自的優(yōu)點(diǎn)結(jié)合在一起,繪制出簡(jiǎn)單的彎矩圖,為條形基礎(chǔ)、十字交叉基礎(chǔ)的分析提供平臺(tái)。本文采用了VB6.0編制可視化程序,程序界面友好,給用戶帶來很大方便,數(shù)據(jù)信息的輸入、計(jì)算過程和結(jié)果展示均在界面上進(jìn)行,易于用戶理解。
[1] 張德豐.MATLAB與外部程序接口的編程[M].北京:機(jī)械工業(yè)出版社,2009.
[2] 毛濤濤,王正林,王 玲.精通MATLAB GUI設(shè)計(jì)[M].北京:電子工業(yè)出版社,2008.
[3] 曾建軍,李世航,王永國(guó),等.MATLAB語言與數(shù)學(xué)建模[M].合肥:安徽大學(xué)出版社,2005.
[4] 劉彬彬,高春艷,安 劍.Visual Basic技術(shù)方案寶典[M].北京:人民郵電出版社,2008.
[5] 薛彥科技.Visual Basic編程高手[M].北京:北京大學(xué)出版社,2000.