基于VB调用ANSYS与MATLAB的电机电磁场计算
- 格式:pdf
- 大小:182.17 KB
- 文档页数:3
ansys与matlab的相互调用ansys与matlab的相互调用网上对于ansys与fortran和c的相互调用说的较多,而对于ansys和matlab的调用说的较少,由于matlab的功能强大,将它与ansys联用可以及方便的解决一些问题。
本人通过网上的搜索内容和自己的实践,总结出ansys与matlab的相互调用经验,现与大家一起分享:1.用ansys调用matlab先将matlab的m文件filename和读取数据都放在ansys工作目录下,在ansys中输入命令/sys,D:\MATLAB701\bin\win32\MATLAB.exe /r filename上面的命令中“D:\MA TLAB701\bin\win32\MATLAB.exe ”为matlab的运行目录,如果matlab 所在的盘符不是这样,需要修改,filename要改成相应的m文件名。
如果想退出matlab回到ansys工作环境,可在matalb最后加上命令"exit"2.用matlab调用ansys!"D:\ProgramFiles\AnsysInc\v100\ANSYS\bin\intel\ansys100.exe" -b -i C:\FRACTURE4.txt -o C:\fra.out命令说明:!即相当于dos的调用命令;"D:\ProgramFiles\AnsysInc\v100\ANSYS\bin\intel\ansys100.exe" 为ansys的运行目录,本人所用的是10.0版本;C:\FRACTURE4.txt 是ansys命令流文件;C:\fra.out是输入文件。
以上路径和文件名在具体操作时需要做具体修改。
关于matlab、ansys数据的相互调用你好:根据你的问题现在我提供以下解决方案按:我们知道在matlab中save('E:\ansys\opt\zs\try\dam.txt','dd','-ascii')!D:\Ansys\v90\ANSYS\bin\intel\ansys90 -b -p ane3fl -i ...E:\ansys\opt\zs\try\yh2.mac -o E:\ansys\opt\zs\try\yh.outload('-ascii','E:\ansys\opt\zs\try\zx.txt')第一行是在对于matlab中数据dd保存为ansys可读的形式。
第二行是调用ansys计算(一共三个路径,第一个是ansys程序的,第二三个分别为输入输出文件的路径) 。
第三行是matlab调用ansys的结果举例:地震波为一个单列的txt文档(不要有时间列,时间间隔假定0.02s)命令流(下面的命令必须用文本读入的方法实现,命令窗无法实现):*DIM,EQ,,6000,1,,, !首先定义一个EQ数组*VREAD,EQ,earthquake,TXT,,,,,,0, !将earthquake.txt读入EQ数组里(e16.0) 用的时候:*DO,EQ,0.02,0.02*6000,0.02 TIME,TM acel,EQ !求解过程...*ENDDOansys中读matlab数据的命令流*dim, xx,, 15,1*VREAD,xx,E:\ansys\opt\zs\try\dam,txt,,ijk,15(15f16.6)写数据的命令流finish/post1!将模态分析结果写入txt文件*mwrite,zx,E:\ansys\opt\zs\try\zx,txt,,ijk,16(16f16.6)*vread和*mwrite的具体解释看看帮助吧还有一个问题是ansys必须是命令流形式,最好保存为mac格式,这样可以直接运行一点有益的补充:1。
Computer Knowledge and Technology 电脑知识与技术本栏目责任编辑:谢媛媛软件设计开发第7卷第23期(2011年8月)基于VB 调用Ansys 和Matlab 软件的分析方法杨媛媛1,梁霭明2(1.广东技术师范学院天河学院计算机科学与技术系,广东广州510540;2.新科集团MDE ,广东东莞523082)摘要:该文论述了VB 调用Ansys 和Matlab 软件进行分析设计的方法,并介绍其联合开发步骤、编程关键及其应用。
关键词:VB ;Ansys ;Matlab中图分类号:TP391文献标识码:A 文章编号:1009-3044(2011)23-5656-02Method of VB Calling Ansys and Matlab in CalculationYANG Yuan-yuan 1,LIANG Ai-ming 2(1.Department of Computer Science and Technology,Guangdong Polytechnic Normal University Tianhe College,Guangzhou 510540,China;2.SAE,MDE,Dongguan 523082,China)Abstract:This paper discusses Method of VB Calling ANSYS and MATLAB in Calculation,and introbute how to develop system,key of program and it's application.Key words:VB;Ansys;MatlabANSYS 软件在工程上的应用相当广泛。
APDL 是ANSYS 的一种专用语言,允许复杂的数据输入,能实现有限元模型的建模、加载、求解和后处理等功能,但APDL 本质上不是具有集成化开发环境的高级语言,其可视化程度差、开发过程不直观,因而给对APDL 语言不熟悉的科技人员利用ANSYS 软件从事参数化建模带来一定的困难[1-3]。
VB调用ANSYS软件的实现*主要思想:VB为ANSYS应用的自动化提供了可视化操作平台,可用于参数化编程等应用。
其基本原理是,VB通过其内部函数shell()函数实现对Windows应用程序的调用。
利用VB向打开的ANSYS程序写入APDL文件,实现对ANSYS的控制。
对ANSYS调用的具体代码及注释:Option Explicit‘变量强制定义控制语句Private Sub Command1_Click()‘进入Command1_Click()事件过程Dim aa‘定义一变量,用来存放shell()函数的返回值,shell带括号时必须有‘变量存放其返回值,不带参数是不需要aa=Shell("C:\Program Files\ANSYS Inc\v110\ANSYS\bin\intel\ANSYS.exe -b -p ane3fl -i shi.txt -o sh.log", 1)‘shell函数调用ANSYS的语句,最关键语句,详解见下文Timer1.Enabled = True‘使用Timer控件,实现对调用结果的检测End SubPrivate Sub Timer1_Timer()If Dir(App.Path & "\file.err") <> "" Then‘App.Path为当前目录路径,语句功能:如果有file.err文件产生,‘则说明VB的shell函数对ANSYS的调用成功。
MsgBox ("ANSYS运行完毕!")End IfTimer1.Enabled = FalseEnd Sub*对语句shell(……,1)的说明:aa=Shell("C:\Program Files\ANSYS Inc\v110\ANSYS\bin\intel\ANSYS.exe -b -p ane3fl -i shi.txt -o sh.log", 1)说明:* 变量aa只是用来存放shell函数的返回值* C:\Program Files\ANSYS Inc\v110\ANSYS\bin\intel\ANSYS.exe 为ANSYS的安装目录。
VB与Ansys及Matlab混合编程计算铝电解槽磁场
杨溢;曹斌;郑莆
【期刊名称】《轻金属》
【年(卷),期】2009()7
【摘要】为了分析、计算铝电解槽磁场,我们讨论了Visual Basic、Ansys、及Matlab各商业软件的特点,提出了利用上述软件混合编程的思路及基本方法,并结合实例演示了他们的应用。
【总页数】5页(P30-34)
【关键词】铝电解槽;磁场;Visual;Basic;Ansys;Matlab;混合编程
【作者】杨溢;曹斌;郑莆
【作者单位】贵阳铝镁设计研究院
【正文语种】中文
【中图分类】TF801.2;TP311
【相关文献】
1.一种基于VB、MATLAB混合编程实现的民用喷气飞机飞行性能计算软件 [J], 李林
2.基于EXE的VB与Matlab混合编程在电力系统计算中的应用 [J], 张龙斌;袁瑶
3.基于VB调用ANSYS与MATLAB的电机电磁场计算 [J], 顿月芹;孔宇
4.Matlab与VB混合编程在弧齿锥齿轮SGM调整卡计算中的应用 [J], 陈兴明;唐进元;雷国伟
5.VB与Matlab混合编程在电力系统短路计算中的应用 [J], 王建元;师旭;师耀林;赵阳
因版权原因,仅展示原文概要,查看原文内容请购买。
2006年第2期┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉!设计分析"#$%&’&(’&’)*#$#┉ """"""""""""""""""""""""""""""""""""""""""""""""基于""""调用""""与"""""""""""""的电机电磁场计算11 收稿日期:2005-04-14改稿日期:2005-09-23基于VB 调用ANSYS 与MATLAB 的电机电磁场计算顿月芹1,孔 宇2(1.清华大学,北京100084;2.山东医学高等专科学校,山东济南250000)Calculation of Electromagnetic Field by Calling ANSYS and MATLAB based on VB DUN Yue -qin 1,KONG Yu 2(1.Tsinghua University ,Beijing 100084,China ;2.Shandong Medical College ,Jinan 250000,China )摘 要:介绍了一种基于VB 调用ANSYS 与MATLAB 进行电磁场计算的方法及其工作过程。
借助VB 实现了可视化参数输入界面,通过调用APDL 语言编写的建模分析程序及MATLAB 的绘图程序实现了电磁场计算的一体化运行,MATLAB 大大增强了图形的处理能力。
最后以分析大气隙永磁电机的三维电磁场为例,证明了该方法的优越性,该方法在很大程度上降低了ANSYS 的使用难度并提高了电磁场设计分析的效率。
关键词:VB ;ANSYS ;MATLAB ;电机电磁场中图分类号:TM301.4+4;TP391 文献标识码:A 文章编号:1004-7018(2006)02-0011-03Abstract :A method of calculation of electromagnetic field by calling ANSYS and MATLAB based on VB is presented in this paper.Its operational process is introduced detailedly.Thevisible interface of inputting parameters is realized with VB.The calculation of electromagnetic field is finished by calling the pro-gram of APDL and the plotting one of MATLAB based on VB.The capability of dealing with figures is improved greatly withMATLAB.The analysis of a PM machine with big air -gap takesan example to validate the advantages of the method.The methoddecreases the difficulty of using ANSYS and increases the effi-ciency of program.Keywords :VB ;ANSYS ;MATLAB ;electric machine elec-tromagnetic field1引 言随着电机设计与分析的发展,有限元在电机电磁场分析中得到了广泛应用。
ANSYS 是目前应用较多的有限元分析软件之一,该软件具有强大的前、后处理功能。
其基本分析过程为:建模、划分网格、加载、求解和后处理[4]。
如果模型参数变化,则要重复执行上述步骤,操作相当复杂。
ANSYS 自带的参数化设计语言APDL 可以实现参数化建模分析,避免了重复操作,但是APDL 不提供图形化界面输入,不熟悉ANSYS 软件的技术人员想轻松使用之并非一件易事。
在电磁场分析方面,ANSYS 软件后处理中得到图形的功能有限,而且当采用三维场进行分析时,存在无法得到磁力线分布的缺陷,与此相比,MATLAB 显示出了灵活的绘图功能[5]。
VB 是目前较流行的应用程序的可视化开发工具[3],在图形用户界面开发方面具有突出的优势[3]。
由于VB 功能强大、易学易用,越来越多的人对VB 与其它软件的集成开发进行了研究[1~2]。
为了解决ANSYS 分析中所存在缺陷,笔者以分析计算电机的三维电磁场为例介绍一种基于VB 开发的ANSYS 和MATLAB 程序调用方法,实现了三者之间的无缝集成,提高了程序的开发效率。
2基于VB 集成开发ANSYS 与MATLAB 2.1基本原理ANSYS 采用参数化建模分析,便于参数的修改。
VB 提供输入参数的可视化界面,由此界面可输入或修改相关参数,这些赋值后的参数被传送到ANSYS 的参数化命令流文件从而构成完整的运行程序,VB 再调用该程序分析电磁场。
之后,VB 调用MATLAB 进行绘图(利用ANSYS 的后处理所得数据)处理。
ANSYS 和MATLAB 经VB 调用后在后台运行程序,程序运行结束再返回到VB 界面,从而用户只需和VB 界面打交道即可进行电磁场的分析及查看后处理结果。
2.2VB 调用ANSYS 实现参数化界面分析文献[4]给出了一种VB 增强ANSYS 前处理能力的方法,其建立模型的命令流文件是通过VB 编程来输入,这无疑增加了VB 编程的工作量,对复杂模型来说更是如此,如果再加上求解和后处理部分难度更大,这在很大程度上掩盖了VB 编程的优点。
与此不同,本文先用APDL 语言编写参数化建模分析命令流文件。
然后通过VB 的读文件和写文件函数对该命令流文件进行操作,只需几行程序即可完成整个调用过程。
用APDL 编写参数化建模分析命令流文件an-sys.dat(此时没有给参数赋值),利用VB 创建可视┉┉!设计分析"#$%&’&(’&’)*#$# ┉┉┉┉┉┉┉┉12化参数输入界面如图1所示,通过VB 编程把这些赋值参数输出到文件input.dat ,然后把命令流文件图1 可视化参数输入界面ansys.dat 也输入到文件input.dat 中赋值参数的后面,这样就组成了完整的调用程序,实现该过程的程序段如下:Dim stra As StringDim lngfilelen As Long ,lngLOF As Long Open "〈VB 〉 input.dat"For Output As #1Print #1,"参数1=";Text1.Text...ˊ输出参数到input.datlngfilelen =FileLen ("〈VB 〉 ansys.dat")Debug.Print "打开文件前的字节数为:";lngfilelen Open "〈VB 〉 ansys.dat"For Input As #2lngLOF =LOF (2)Debug.Print "打开文件后的字节数为:";lngLOF stra =Input (lngfilelen ,#2)Print #1,stra CloseShellAndWait ("〈ANSYS 〉 bin intel ansys70.exe -bi input.dat -o output.dat -p emag")其中:〈VB 〉为VB 的工作目录,上述的文件都要放在此目录中,否则将导致程序运行出错,参数1等为输入到input.dat 文件中的参数,Text1.Text 等则是从VB 界面输入的参数值。
lngfilelen 为输入参数前的ansys 命令流文件的字节数,通过字符串变量stra 将这些字节写入到input.dat 文件赋值参数的后面,这样就为VB 调用ANSYS 做好了准备工作。
通过ShellAndWait 函数以同步运行方式调用input.dat 并在后台运行之,〈ANSYS 〉为ANSYS 的安装目录,an-sys70.exe 要根据安装版本的不同而改变,input.dat 和output.dat 为输入和输出文件,emag 为进行电磁场分析的产品特征码,如果进行其他方面的分析可以到ANSYS 的帮助文档中查找相应的产品特征码。
2.3VB 调用MATLAB 实现图形的可视化VB 可以通过多种接口方法调用MATLAB[2],方案的选取则根据工程应用的不同视具体情况而定。
本文用VB 调用MATLAB 主要是进行图形方面的处理,采用简单有效的函数调用方法,省去了其他插件的安装。
在VB 调用MATLAB 之前,首先要解决的问题是把ANSYS 后处理中的数据导入MATLAB 中。
在编写ANSYS 的运算程序时,把后处理中得到的数据读出并存放到VB 的工作目录中,可由如下命令实现#cfopen ,数据文件名,txt ,〈VB 〉数据存放路径#vwrite ,被读出数据(f10.5)#cfclos其中(f10.5)为被读出数据的格式,可参考FOR-TRAN 语言的数据格式。
然后编写MATLAB 的M 文件,把从ANSYS 后处理中读出的数据文件调入M -文件,之后是绘图命令,MATLAB 中保存所画图形的命令为:saveas (gcf ,ˊ〈VB 〉 图形名.bmpˊ)plot.m 文件也应放在VB 的工作目录中。
这时就可以用Shell 函数调用MATLAB 的M -文件ShellAndWait ("〈MATLAB 〉 bin win32 matlab.exe -minimize -r M -file")其中〈MATLAB 〉为MATLAB 的安装目录,-mini-mize 是让MATLAB 去掉启动画面并以最小化方式启动,-r M -file 是让MATLAB 启动后自动执行M -file 文件,注意这里不带文件扩展名,在M -file 文件的最后调用quit 命令来中止MATLAB 程序,即MATLAB 程序执行完后自动退出。