MATLAB与VC+混合编程在系统仿真中的应用.pdf
《MATLAB与VC+混合编程在系统仿真中的应用.pdf》由会员分享,可在线阅读,更多相关《MATLAB与VC+混合编程在系统仿真中的应用.pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3 0 卷第7 期2 0 0 7 年7 月重庆大学学报(自然科学版)J o u m a lo fC h o n g q i n gU n i v e r s i t y(N a t u r a lS c i e n c eE d i t i o n)V 0 1 3 0N o 7J u l 2 0 0 7文章编号:1 0 0 0 5 8 2 x(2 0 0 7)0 7 0 0 2 6 0 4M A T L A B 与V C+混合编程在系统仿真中的应用陶桂宝,郭少波(重庆大学机械工程学院,重庆4 0 0 0 3 0)摘要:通过讨论M A T L A B 与V C+之间的接口方案,介绍了M A T
2、 C O M 与M A T L A B 的m 文件的链接方式以及M A T c 0 M 的使用方法和技巧,以单自由度振动系统为对象,通过对有阻尼状态下的振动模型的分析,对仿真算法进行了混合编程。仿真结果表明:系统仿真的执行速度得到了提高。关键词:系统仿真;M A T L A B;V c+;单自由度振动;阻尼中图分类号:T P 3 1 1 1;T P 3 9 1 9文献标志码:AM A T L A B 是美国M A T H w O R K S 公司自2 0 世纪8 0 年代中期推出的数学软件,它集数值分析、矩阵运算、信号处理和图形显示于一体,是建立在向量数组和矩阵的基础上,具有简洁的人机界面、丰
3、富的图形用户界面G u I 开发功能和极高的编程效率的数学工具,受到越来越广泛的重视和应用,但是这些功能只能在它本身所提供的平台上使用,且具有代码执行速度慢、安全保密性差的特点u j。V C+是M i c r o s o f t 推出的可视化编程环境,它是目前综合性最高、最强大、也是最复杂的软件开发工具之一,应用极为广泛,在工程计算方面和M A T L A B 相比,编程就显得复杂得多呤j。把两者相结合,无疑是一种有效的编程方法,将给应用程序系统本身及其开发带来很好的改善。通过混合编程,可以大大提高代码的执行速度以及安全保密性。本文介绍V c 调用M A T L A B 的主要方案,并就单自由
4、度振动系统,采用了混合编程方式,在脱离M A T L A B 环境条件下实现V c+对m 文件调用,从而在V C 环境下实现系统振动仿真的方案1。1M A T L A B 与V c+混合编程接口根据M A T L A B 是否运行,一般将M A T L A B 与V c接口分为2 大类:需M A T L A B 在后台运行的混合编程接口和可以脱离M A T L A B 环境运行的独立应用程序接口 4 I。第1 类,需M A T L A B 在后台运行的混合编程接口:M E x 文件、e n g i n e 应用程序和M A T 文件。由于V c 的内存管理及类库函数比c 更加灵活方便,因此,对
5、这3 种接口方式在V c 中的实现,主要基于内存管理和类库函数应用方面。第2 类,可以脱离M A T L A B 环境运行的独立应用程序接口M c c 和M A T c 0 M 编译器。M c c 是M A T L A B 中经过优化的编译器。使用M c c,用户可将M A T L A B 数学库、图形库和界面的M A T L A B 程序转化为独立于M A T I A B 的E x E 应用程序和D L L 动态链接库。M A T C O M 是M A T H w O R K S 公司推出的第一个由M A T L A B 到c+的编译开发软件平台,其最后版本为M A T c o M 4 5,
6、其集成调试编译环境为M I D E V A。通过M A T c O M 连接M A T L A B 的m 文件有以下3 种方法:1)经过简单设置后,由M I D E V A 将m 源文件转化为C C+,然后添加到M S V C 工程中。2)由M I D E V A 直接生成E x E 文件,然后在V C 中通过s h e l l 调用。这种方法简单方便,但运行时出现一个控制台窗口,而且由于V C 和M A T L A B 之间不能交互,通用性差,仅适用于V C 调用M A T L A B 实现图形显示的场合。3)通过V i s u a lM A T c 0 M 工具条,使用A d d i n,
7、这种方法提供了一个M A T L A B 和V C 直接集合的途径,而且可以快速集成m 文件到V c 工程中创建独立的收稿日期:2 0 0 7 一0 3 一1 4基金项目:重庆市自然科学基金资助项目(c s T s,2 0 0 6 B B 3 0 1 5)。作者简介:陶桂宝(1 9 6 7),男,重庆大学副教授,博士,主要从事机电一体化、汽车电子、网络化制造等方面的研究,(E m a i l)曲t a o c q u e d u c n 万方数据第7 期陶桂宝,等:M a n a b 与V C+混合编程在系统仿真中的应用2 7c C+应用程序、C、M E x、D L L,在调试过程中可以查看矩
8、阵变量的值,可直接修改m 源文件而不是修改生成的c c+文件。因此,本文中单自由度系统的振动仿真采用A d d i n 方法实现。2 有阻尼单自由度自由振动系统机械振动是工程中常见的物理现象。广泛地说,各种机器设备及其零部件和基础,都可以看成是不同程度的弹性系统,机械振动就是在一定的条件下,振动体在其平衡位置附近所作的往复性的机械运动J。实际中的振动系统是很复杂的,为了便于分析研究和使用数学工具进行计算,需要在满足工况要求的条件下,把实际的振动系统简化为力学模型。机械振动分析方法很多,对于简单的振动系统,可以直接求解其微分方程的通解。由于计算机进行数值计算非常方便,所以振动的微机仿真是一种最直
9、接的方法。由于振动模型中尤其是多自由振动很方便用矩阵微分方程来描述,所以,M A A B 语言在振动仿真中体现出十分优越的特性1。图1 所示为考虑了阻尼的单自由度振动系统模型。图l 振动系统模型其运动微分方程为,版+c 正+后石=0 令去=2 n,告=:,则茹+2 n 互+:戈=o,其通解为石=e 一“(c l e 丹+c 2 e 一丹),式中c。、c:为积分常数,由振动初始条件确定。(2)(3)令旦=占,称为相对阻尼系数或阻尼率。则式(3)“可写为互=e 一“一(c e。一s 2 1+c,e 一 2 1)。(4)由此可似讨论阻尼对系统的自由振动将会产生的影响。1)当时s l 时,称为强阻尼状
10、态此时,式(4)可写为茗=c l e“石2 1 一+c 2 e”玉1 协,(8)K+(占+石j l 可)2。舸一+(一占+占2 一1)缈。2。占2 13)当s=1 时,称为临界阻尼状态由于8=旦=l,n=。,则有“c。=2 m。=2 m 告=2 五m,(9)这里c。为临界阻尼状态下的阻尼系数,称为临界阻尼系数,显然它是系统本身所具有的特性之一。由s2 未2 磊丢及c c=2 砌。,有8 詈。也就是说,相对阻尼系数(阻尼率)s 反映了系统的实际阻尼与临界阻尼的关系。在临界阻尼状态下,有戈=e 一(c1+c 2 t),(1 0)其中c。=,c:=+。显然,在这种状态下不能形成振动。3 应用3 1
11、根据式(7)、(8)、(1 0)编写如下程序f u n c t i o nv b t l(m,c,k,x 0,v 0,t f)m 为质量;c 为阻尼;k 为刚度;X 0 为初始位移;、,0 为万方数据重庆大学学报(自然科学版)第3 0 卷初始速度;t f 为仿真时问;w n 为固有频率;A 为振动幅度;p h i为初相位9 1 0 b a lw nAp h iw n=s q r t(k m);t=0:t 1 0 0 0:t f:i fz 1A=s q n(、,0+z 术w n 丰X 0)“2+(】c o=I:w d)“2)w d 乞);p h i=a t a n 2(x 0 木w d,z 木w
12、 n 木x 0);x=A 术e x p(一z 半w n 木t)木s i n(w d 术t+p h i);e l s ei fz=la l=x 0:a 2=v 0+w n 木x 0:x=(a 1+a 2 术t)木e x p(一w n 木t);e l s ea 1=(一v 0+(一z+s q r t(z 2 1)半w n 木x 0):l:w n:l:x o)2 w n s q r t(z 2 1);a 2=(v 0+(z+s q n(z 6 2 1)水w n 木)e 0)2 w n s q r t(z 2 1);x=e x p(一z 木w n;l:t):l c(a 1 木e x p(w n 术s
13、q r t(z“2 1),I ct)+a 2 爿ce x p(w n:I cs q r t(z 2 1)水t);e n de n dp l o t(t,x),g r i d;】d a b e l(时间(s);y l a b e l(7 位移);t i t l e(7 位移相对时间的关系);3 2 创建V c 工程“v i b r a t i o n”运行V i s u a lc+并创建v i b r a t i o n 工程,选取M F cA p p w i z a r d(e x e)。在l o c a t i o n 编辑框中输入欲创建过程的保存路径,在P r o j e c tn a m
14、 e 编辑框中输入工程名“v i b r a t i o n”,注意要选取“D i a l o gb a s e d”。3 3 转换m 文件“v b t l m”运行s u a lC+,改变文件类型为A d d i 1 1 s(d 1 1),选定M A T C o 1 4 5 b i n M v c i d e d l l,确定。在V i s u a lC+的开发环境中可以看到s u a lM A r I O M 工具条,单击s u a lM 舡o M 工具条上的m+图标,选择保存过的M A l f I A B 文件v b t l m 进行转换。此时在F i l e e w 标签中多了m f
15、i l e s、C+f i l e sc r e a t e df r o mm f i l e s、M 删x 和E x t e m a lD e p e n d e n c i e s 等文件夹。在相应的文件夹下增加了v b t l m、v b t l h、v b t l c p p、v 4 5 0 l v 1 i b 和-z 训i b h 等文件,这表明m 文件转化成功。在“v h t l h”文件中添加头文件“啪t l i b h,。3 4 创建如图2 所示的对话框界面。并按表1 设置各控件属性。表l 控件属性图2 对话框界面1)添加头文件i n c l u d e”v b t l h”
16、i n c l u d e”m a i b h”2)在v i b r a t i o n D l g c p p 中添加如下声明e x t e mM mw n;e x t e mM mA;e x t e mM mp h i;3)为I D c B u l T r O N c o m 添加响应代码v o i dC T e s t 4 D l g:0 n B U T T O N c o m()7 r 0 D 0:A d dy o u rc o n t r 0 1n o t i f i c a t i o nh a n d l e rc o d eh e r ed o u b l ex l,)【2,)
17、【3,x 4,)【5,x 6;U p d a t e D a t a(T R U E);x 1=(d 伽b】e)mm;也=(d 删e)邺;)【3=(d 洲e)m _ k;x 4=(d o u b l e)m 如;x 5=(d o u b l e)m v 0;x 6=(d o u b l e)m j f;C W n d 木p v t b l=(C W n d 木)G e t D l g I t e m(I D C s T A T I C s i m u);M mp l o t h a n d l=w i n a x e s(p 汕1 一 m-h W n d);万方数据第7 期陶桂宝,等:M a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB VC 混合 编程 系统 仿真 中的 应用
限制150内