基于VB和MATLAB混合编程下的弹性地基梁分析
2010-04-14同霄张笑
同霄 张笑
1 Active X对象的创建
1.1 基本概念
1)Active X是一门生成、使用和集成组件的技术。
2)OLE:传统上,软件开发工具是始终如一的,即使能与其他工具交换组件并能实施一些变化,其交换和变化也是微小的。编程环境是独立于其他应用程序的“孤岛”。随着OLE的引入,软件的开发方法从面向过程转化为面向对象。
1.2 控制器获取自动化对象的一般过程
用CreateObject()函数生成要引用的应用程序,与OLE自动化服务器联系,其语法如下:
Set AppObject=CreateObject(Class,ServerName)
Class是服务器应用程序在注册表中注册的名称。
MATLAB的Class名为“Matlab.Application”。ServerName是可选的,是生成对象的网络服务器名,可以由用户自己定义。如果服务器应用程序在另一机器上,则还要指定生成Class的机器名。如果服务器应用程序安装在机器computer上,则下列语句生成Matlab的新实例:
Set Matlab=CreateObject(“Matlab.Application,”“computer”)
1.3 利用自动化技术控制MATLAB
1)Execute方法。
调用Matlab,执行一条由字符串组成的Matlab命令,同时返回一个字符串,该字符串表示了命令的执行情况,其语法为:
Result=Matlab.Execute(“Command”)
2)GetFullMatrix方法。
Call GetFullMatrix(
[in]BSTRName,
[in]BSTRWorkPlace,
[inout]SAFEARRAY(double)*pr,
[inout]SAFEARRAY(double)*pi)
该函数从指定的MAT LAB工作空间中获取一维或二维数组。Name指定MATLAB中的矩阵变量名,Workspace指定Matlab工作区,*pr指VB程序中的实部数组,*pi指VB程序中的虚部数组。
3)PutFullMatrix方法。
Call PutFullMatrix(
[in]BSTRName,
[in]BSTRWorkPlace,
[inout]SAFEARRAY(double)*pr,
[inout]SAFEARRAY(double)*pi)
该函数将VB程序中的一维或二维数组传送到MATLAB中的矩阵变量中。
2 弹性地基梁的分析
弹性地基梁根据荷载作用点离梁两端的距离分为无限长梁、半无限长梁和有限长梁。在集中力或集中力偶下无限长梁和半无限长梁的弯矩表达式为:
集中力作用下无限长梁的弯矩计算公式:
集中力偶作用下无限长梁的弯矩计算公式:
集中力作用下半无限长梁的弯矩计算公式:
集中力偶作用下半无限长梁的弯矩计算公式:
其中,F,M0分别为集中力和集中力偶的大小;x为地基梁上一点到集中力或集中力偶作用点之间的距离;λ为弹性特征;式(1),式(2)为无限长梁荷载作用点右半部分的弯矩计算公式,根据其对称性得到其左半部分的结果。
3 程序的思路
程序主要思路如图1所示,先判断弹性地基梁的类型,而后将数据传递到MATLAB工作空间中进行计算,绘制弯矩图,剪力、挠度、转角和弯矩一致。
4 具体实例
图2为程序的主界面。
第一步先判断弹性地基梁的类型,如图3所示,点击对应按钮。
第二步选择相应的类型及受力方式,并进行计算,计算界面和弯矩图如图4所示。
5 结语
本文将VB和MAT LAB进行无缝连接,将它们各自的优点结合在一起,绘制出简单的弯矩图,为条形基础、十字交叉基础的分析提供平台。本文采用了VB6.0编制可视化程序,程序界面友好,给用户带来很大方便,数据信息的输入、计算过程和结果展示均在界面上进行,易于用户理解。
[1] 张德丰.MATLAB与外部程序接口的编程[M].北京:机械工业出版社,2009.
[2] 毛涛涛,王正林,王 玲.精通MATLAB GUI设计[M].北京:电子工业出版社,2008.
[3] 曾建军,李世航,王永国,等.MATLAB语言与数学建模[M].合肥:安徽大学出版社,2005.
[4] 刘彬彬,高春艳,安 剑.Visual Basic技术方案宝典[M].北京:人民邮电出版社,2008.
[5] 薛彦科技.Visual Basic编程高手[M].北京:北京大学出版社,2000.