在Shw directories for下拉菜单中选择Library files,添加MATLAB中的文件夹msvc60(如D:\MATLAB7\EXTERN\LIB\WIN32\MICROSOFT\MSVC60)。
接着选择Projict|Setting菜单,打开项目设置窗口,单击Link选项,在Object/Library modules文本框中添加libmx.lib libeng.lib libmat.lib。
2.3 Visual C++与MATLAB的协作实现自动分析
实现VC与MATLAB之间的协作分析,需要在VC中调用MATLAB引擎。MATLAB引擎的操作是通过启动一个独立于应用程序的进程来实现的。在Windows环境下,应用程序通过组建对象模型(COM)接口与MATLAB进行通信。
MATLAB提供了一个函数库来实现对MATLAB的控制,这个函数库实现的功能主要有:
(1)启动和结束MATLAB进程;
(2)从MATLAB发送和接收数据;
(3)向MATLAB发送命令。
与其他的接口相比,引擎提供的MATLAB功能支持是最全面的,它可以完成任何计算和绘图操作,对所有的数据结构提供完全支持。
表1为引擎库函数及其功能,它可用耒启动MATLAB引擎、完成数据传输及处理等任务。
表1 引擎库函数及其功能 函数 功能 engOpen() 启动MATLAB引擎 engClose() 关闭MATLAB引擎 engEvalString() 该函数向MATLAB发送了一个字符串,由MATLAB来执行 engOutputBuffer() 该函数获取MATLAB命令窗口的文字输出 engGetVariable() 该函数从MATLAB引擎工作空间复制一个变量 engPutVariable() 该函数把变量写入MATLAB引擎的工作空间 双击步骤3.2.1界面的“开始仿真”按钮,把步骤3.1的MATLAB函数通过表1所述的引擎库函数传输到MATLAB引擎中,完成起重机动态特性的自动分析。
编程时要注意:1.要先启动MATLAB引擎,才能使用MATLAB引擎库函数,在程序中一定要加入engClose()关闭引擎函数,以关闭MATLAB引擎;2.利用engPutVariable()函数将VC++的变量写入MATLAB中时,需要把VC++数据转换成MATLAB阵列mxArray;3.要注意从MATLAB引擎中提取出的数据类型,必须把它转换成VC++的数据形式,另外,这个转换后的数据格式并不是VC++里一般的数据格式,使用它的时候要注意;4.在使用VC++语句导出分析数据时,导出的是字符串,而不能是数字类型的,因此把从MATLAB引擎中获取的数据转换成字符型时一定要注意。这些问题的解决方法可以参考其他的资料。
3 自动分析技术的应用
3.1 实例分析一[2]
以铁路货场通用的26tU型门式起重机为对象,主要参数为:起重量Q=26t,跨度L=26m,悬臂长度l=10m,有效悬臂长度l1=10m,起升高度H=10m,起升速度v=12.5m/min,钢丝绳分支数n=8,钢丝绳截面积A=128.14mm2,小车轨距lx=7m,小车质量m2=12450kg,小车架惯性矩I2=2.947×105cm4,小车位置在跨中a=13m,主梁门架质量m=46682kg,两根主梁惯性矩I=4.9513×106cm4。
在图2的对话框中输入参数,进行分析,并导出数据,可得如图3所示的数据报表和图形曲线。
图3 分析数据及图形
3.2 实例分析二[3]
以一台双梁桥机为仿真对象:额定起重量为10t,跨度22.5m起升高度10m,起升速度v=16m/min,主梁桥架质量10t,小车质量2t,钢丝绳支数n=6,钢丝绳截面积A=57.27mm2。主梁惯性矩I=9.0094×105cm4。
在图2的对话框中输入参数,进行分析,并导出数据,可得如图4所示的数据报表和图行曲线。
图4 分析数据和图形
图4 分析数据和图形(接上)
4 结果分析和总结
4.1 结果分析
文献[2]是利用模态分析法来求解起重机的动态响应;文献[3]是利用牛顿迭代法和振型叠加法来求解超越方程和微分方程组,从而得出起动机动态响应;本文中是利用MATLAB的科学计算来求解起重机的动态响应。把图3中的数据与参考文献[2]中的数据进行比较,可以看出两种不同的求解方法得出的结果很吻合;把图6的数据、图7和图8的分析图形与文献[3]进行比较可以看出两者方法所得出的数据、图形很吻合,从而论证了利用MATLAB实现自动分析,并求解起重机动态模型的可行性。
从文献[2]、文献[3]的建模过程中可以看出,任何一种门式、桥式起重机,只要能简化成本文图1所示的模型,都可用该自动分析系统进行求解,并得出门式、桥式起重机的动态数据。
从步骤4的操作和分析的结果可以看出,VC与MATLAB的协作技术封装了门式、桥式起重机动态分析方法,在分析该类起重机模型时具有快速性、易使用性以及分析结果的直观性。
4.2 总结
通过MATLAB编程,可以很好的并且很直观的分析出动态特性的具体情况;Visual C++的可视化界面使对于大部分门、桥式起重机的动态分析的难度大大的降低。这种自动分析技术降低了一般人群对工程问题的分析难度,具有很高的适用性,同时它也加快了对工程问题的分析速度,可广泛应用于科学研究和工程技术中。
参 考 文 献
[1] 胡宗武,阎以诵.起重机动力学[M].北京:机械工业出版社,1988.20~40
[2] 程文明,邓斌,王金诺.小车架为弹性结构时门式起重机的动态特性研究.西南交通大学学报,2001,36(2):144~148
[3] 张玉琴,冯山岭,张淑红.桥式起重机的动力学模型与仿真计算.重庆机械科技.2005(3):1~4
[4] MATLAB7.0 Help 2004.
[5] 苏金明,黄国明,刘波.MATLAB与外部程序接口.北京:电子工业出版社.2004.162~178
[6] 祝效华,廖伟志,黄永安,赵玉心.CAD/CAE/CFD/VPT/SC软件协作技术.北京:中国水利水电出版社,2004.290~291
[7] 郑阿奇.Visual C++实用教程.北京:电子工业出版社.2007
[8] 张平.MATLAB基础与应用简明教程.北京:北京航空航天大学出版社.2001
《廊坊师范学院学报(社会科学版)》
《黑龙江环境通报》
《青岛农业大学学报(社会科学版)》
编辑QQ
编辑联络
