搜档网
当前位置:搜档网 › 基于VB调用ANSYS与MATLAB的电机电磁场计算

基于VB调用ANSYS与MATLAB的电机电磁场计算

基于VB调用ANSYS与MATLAB的电机电磁场计算
基于VB调用ANSYS与MATLAB的电机电磁场计算

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.The

visible 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 with

MATLAB.The analysis of a PM machine with big air -gap takes

an example to validate the advantages of the method.The method

decreases the difficulty of using ANSYS and increases the effi-ciency of program.Keywords :VB ;ANSYS ;MATLAB ;electric machine elec-tromagnetic field

1引 言

随着电机设计与分析的发展,有限元在电机电磁场分析中得到了广泛应用。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 String

Dim lngfilelen As Long ,lngLOF As Long Open "〈VB 〉 input.dat"For Output As #1Print #1,"参数1=";Text1.Text

.

..

ˊ输出参数到input.dat

lngfilelen =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 Close

ShellAndWait ("〈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 程序执行完后自动退出。

VB 加载图形的命令为:

Picture1.Picture =LoadPicture ("〈VB 〉 图形名.bmp")

上述过程示于图2的程序运行框图。

图2 程序运行框图

3永磁无刷直流电机的三维电磁场分析

采用本文介绍的方法对一大气隙永磁无刷直流

┉┉┉┉┉┉┉┉

13

电机的三维电磁场进行分析。图3给出了该永磁电机的尺寸,其轴向长度为7.5mm ,永磁材料选用稀土钴永磁体。空载时该电机某一极下的平均气隙磁通密度分布如图4所示,图中轴向位置代表在轴向等距离选取的11条路径,平均气隙磁密由径向取平均值计算所得。大的电机气隙导致很大漏磁,所以图4中气隙磁密平顶部分相对较窄且轴向两端较低。ANSYS 在后处理中只能给出某一位置处的气隙磁通密度曲线,而无法给出空间的气隙磁通密度分布。

图3 电机尺寸图图4 空载时的平均气隙磁通密度分布

4结 语

本文介绍的基于VB 调用ANSYS 与MATLAB 进行电机磁场计算的方法不仅适用于电机电磁场的计算,还可以用于其他电磁机构的电磁场分析,同样还可以用于其它的结构分析或热分析等。开发者的主要任务是用APDL 语言编写分析过程的命令流文件以及MATLAB 的M 文件,从而为一般技术人员提供一个友好的可视化界面,通过对设计参数的简单修改即可完成复杂的有限元分析,这在很大程度上降低了分析难度,加快了设计速度。参考文献

[1] 唐兴伦.ANSYS 工程应用教程-热与电磁学篇[M ].北京:中

国铁道出版社,2003

[2] 清源计算机工作室.MATLAB6.0高级应用-图形图像处理

[M ].北京:机械工业出版社,2001

[3] 李鸿吉.Visual Basic6.0中文版编程方法详解[M ].北京:科学

出版社,2001

[4] 张晋西.用VB 增强ANSYS 前处理能力[J ].计算机应用,

2002,22(3):86~87

[5] 胡智文.在VB 应用程序中集成MATLAB [J ].计算机工程与应

用,2003,(7):

104~106作者简介:孔宇(1972-),男,讲师,主要研究方向为计算机应用,网络管理等。

顿月芹(1980-),女,硕士,主要研究方向为电机、电器的优化设计与CAD 。

为进一步提高本刊的编辑质量,请您对此文在读

者服务卡上圈上数字代码:

有价值,请圈5;

没有价值,请圈6。(上接第10页)

从表1中可以看出,短路比较低时,功率因数很低;同时电机的磁密都很低,符合交流励磁机的特点。利用Maxwell 2D 对该样机的磁场进行分析也达到了预期的结果。参考文献

[1] 陈世坤.电机设计(第二版)[M ].北京:机械工业出版社,1997[2] 上海电器科学研究所.中小型电机设计手册[M ].北京:机械

工业出版社,1995

[3] 湘潭电机厂.交流电机设计手册[M ].湖南:湖南人民出版社,

1978

[4] 何友观.现代中小型同步发电机励磁系统的分析与设计[M ].

北京:机械工业出版社,1988

[5] 王毅.基于数据库管理系统的电机设计集成系统软件开发

[J ].中小型电机,2003,(30)6:23~26

为进一步提高本刊的编辑质量,请您对此文在读者服务卡上圈上数字代码:

有价值,请圈3;

没有价值,请圈4。新型模块化(Cartridge )直接驱动旋转电机技术

大多数直接驱动旋转(DDR )电机所面临的相关挑战是,如果将封闭式或无框架直接驱动旋转(DDR )解决方案应用于传统型伺服电机系统,可能导致相关成本的增加。为了解决这个难题,一种新型直接驱动选择技术已经出现。此种新型技术被称为模块化(Cartridge )直接驱动旋转或Cartridge DDR TM ,该技术将无框架直接驱动旋转(DDR )电机的性能与全框架电机的安装便捷性相结合。

Cartridge DDR TM 电机将一个转子、定子和出厂前完成对准的高分辨率反馈装置集成到一个无轴承外壳中,使Cartidge DDR TM 电机可适应大多数现在轴承系统的嵌入式应用。此外,Cartridge DDR TM 技术不使用传动带或齿轮减速器实现所需系统力矩,方便了电机的安装。Cartridge DDR TM 电机利用一个压紧联轴节,将转子直接连接到客户的机器轴上,并设计了一套可在30min 内实现“即装即用”便捷操作的运输夹头。

除了安装快捷等优点之外,Cartridge DDR TM 电机取消了机械传动组件(传动带和齿轮箱),可大幅提高无维护工作期间的正常运行时间,最低可将噪声降至20dB 。Cartridge DDR TM 电机采用了先进的电磁设计,具有可达50%以上的力矩密度,而工厂对准型高分辨率反馈装置最高精度比传统型直接驱动旋转(DDR )

电机高出50倍。

矩形谐振腔电磁场的FDTD分析和Matlab仿真

矩形谐振腔电磁场的FDTD分析和Matlab仿真 摘要:目前,电磁场的时域计算方法越来越引人注目。这种方法已经广泛应用到各种电磁问题的分析之中。而将Matlab作为一种仿真工具,用于时域有限差分法,可以简化编程,使研究者重心放在FDTD本身上,而不必在编程上花费过多的时间。本课题通过用FDTD方法计算矩形谐振腔电磁场分布,并用Matlab 进行仿真。 关键词:时域有限差分法,Matlab仿真,矩形谐振腔 1.引言 时域有限差分法(Finite-Dfference Time-Domain Method)是求解电磁问题的一种数值技术,是在1966年由K.S.Yee第一次提出的。FDTD法直接将有限差分式代替麦克斯韦时域场旋度方程中的微分式,得到关于场分量的有限差分式,用具有相同电参量的空间网格去模拟被研究体,选取合适的场始值和计算空间的边界条件,可以得到包括时间变量的麦克斯韦方程的四维数值解,通过傅里叶变换可求得三维空间的频域解。时域有限差分法突出的优点是所需的存储量及计算时间与N成正比,使得很多复杂的电磁场计算问题成为可能,用时域有限差分法容易模拟各种复杂的结构,使得用其他方法不能解决的问题有了新的处理方法。 本文主要讨论如何用Matlab语言来编写FDTD的吸收边界条件以及编程时应注意的问题。 2时域有限差分法的基本理论 2.1 时域有限差分法的简介 1966年K.S.Yee首次提出了一种电磁场数值计算的新方法——时域有限差分(Finite-Dfference Time-Domain Method)方法。对电磁场E、H分量在时间和空间上采取交替抽样的离散方式,每一个E(或H)场分量四周有四个H(或E)场分量环绕,应用这种离散方式将含时间变量的麦克斯韦旋度方程转化为一组差分方程,并在时间轴上逐步推进地求解空间电磁场。Yee提出的这种抽样方式后来被称为Yee元胞。 FDTD方法是求解麦克斯韦方程的直接时域方法。在计算中将空间某一样本点的电场(或磁场)与周围格点的磁场(或电场)直接相关联,且介质参数已赋值给空间每一个元胞,因此这一方法可以处理复杂形状目标和非均匀介质物体的电磁散射、辐射等问题。同时FDTD的随时间推进可以方便地给出电磁场的时间演化过程,在计算机上以伪彩色方式显示,这种电磁场可视化结果清楚的显示了物理过程,便于分析和设计。 2.2 FDTD数值计算的优势 FDTD算法,其空间节点采用Yee元胞的方法,电场和磁场节点空间与时间上都采用交错抽样,因而使得麦克斯韦旋度方程离散后构成显示差分方程,相比较宇前面的波动方程求解,计算等到大大简化。由于FDTD采用吸收边界条件的

Y2-160M1-2三相异步电动机电磁设计解读

目录 摘要 ..................................................................... I Abstract................................................................. II 第一章绪论........................................................ - 4 - 1.1 工程背景...................................................... - 4 - 1.2 该课题设计的主要内容.......................................... - 4 - 第二章三相异步电动机................................................ - 6 - 2.1 三相异步电动机结构............................................ - 6 - 2.1.1 异步电动机的定子结构..................................... - 7 - 2.1.2 异步电动机的转子结构..................................... - 8 - 2.1.3 三相异步电动机接线图..................................... - 8 - 2.2 三相异步电动机工作原理........................................ - 9 - 2.3 三相异步电动机的机械特性和工作特性........................... - 12 - 第三章三相异步电机电磁设计......................................... - 14 - 3.1 主要尺寸和空气隙的确定....................................... - 14 - 3.2 定子绕组与铁芯设计........................................... - 14 - 3.2.1 定子绕组型式和节距的选择................................ - 15 - 3.2.2 定子冲片的设计.......................................... - 16 - 3.3 额定数据及主要尺寸........................................... - 17 - 3.4 磁路计算..................................................... - 19 - 3.5 性能计算..................................................... - 22 - 3.5.1 工作性能计算............................................ - 22 - 3.5.2 起动性能计算............................................ - 26 - 第四章电机转动轴的工艺分析......................................... - 28 - 4.1 转动轴的加工工艺分析......................................... - 28 - 4.2 选择设备和加工工序........................................... - 30 - 4.3 成品的最后工序............................................... - 31 - 小结与致谢........................................................... - 32 - 参考文献............................................................. - 33 -

Matlab 在电磁场中的应用 (2)

Matlab 在电磁场中的 应用 专业: 电气信息与自动化 班级:2012级自动化3班 学号:12012242065 学院:物电学院 指导老师:李虹 完成日期:2013年12月15日

Matlab 在电磁场中的应用 摘要 Matlab是美国Mathworks公司于80年代推出的大型数学软件,通过多年的升级换代,现在已发展成为集数值计算、符号计算、可视化功能以及诸多的工具箱为一体的大型科学计算软件,它已广泛应用于科研院所、工程技术等各个部门,并成为大学生、研究生必备的工具软件。 电磁学是物理学的一个分支,是研究电场和电磁的相互作用现象。电磁学从原来互相独立的两门科学(电学、磁学)发展成为物理学中一个完整的分支学科,主要是基于电流的磁效应和变化的磁场的电效应的发现。这两个实验现象,加上麦克斯韦关于变化电场产生磁场的假设,奠定了电磁学的整个理论体系,发展了对现代文明起重大影响的电工和电子技术。 针对电磁场学习理论性强、概念抽象等特点,利用Matlab强大的数值计算和图形技术,通过具体实例进行仿真,绘制相应的图形,使其形象化,便于对其的理解和掌握。将Matlab引入电磁学中,利用其可视化功能对电磁学实验现象进行计算机模拟,可以提高学习效率于学习积极性,使学习效果明显。 本文通过Matlab软件工具,对点电荷电场、线电荷产生的电位、平面上N 个电荷之间的库仑引力、仿真电荷在变化磁场中的运动等问题分别给出了直观形象的的仿真图,形实现了可视化学习,丰富了学习内容,提高了对电磁场理论知识的兴趣。 关键词:Matlab 电磁学仿真计算机模拟 一、点电荷电场 问题描述: 真空中,两个带正电的点电荷,在电量相同和电量不同情况下的电场分布。根据电学知识,若电荷在空间激发的电势分布为V,则电场强度等于电势梯度的

VB和Matlab传递数据

VB和Matlab传递数据 lb107 VB和Matlab传递数据 请问: 我想将m函数文件编译成dll文件,在VB里面输入数据然后调用这个dll进行计算,这样能够实现吗? 有兄弟有相关的例子没?网上VC调用Matlab的例子挺多的,但没有VB调用Matlab的例子。 谢谢指点。 2006-3-5 20:19 taohe Re:VB和Matlab传递数据 VB调用DLL会不会很复杂?总感觉VB属于高级编程语言,在调用DLL方面不会比VC更难才对。根据网上你发现的VC调用MATLAB产生的DLL的例子,大概了解MATLAB产生的DLL,然后在VB中调用,貌似应该顺理成章。 使用VB的话,一个好的方案可能是使用MATLAB产生的COM组件,而不是普通的DLL。在VB中可以很方便地使用这些COM组件。MATLAB的在线帮助有较详细的例子,不妨看看。 2006-3-5 23:01 bainhome Re:VB和Matlab传递数据 前一段儿看了看书,做过两个简单的,下面这个是其中之一(曾发在别的论坛上,转一下),因最近实在是太忙,没有时间研究,所以比较基础,没有更加复杂的Trick 比如将VBtext中的数组作为COM的input、图形绘制等等,VB代码:[code] Private addn As addn.Add Private Sub Command1_Click() Dim x As Double Dim y As Variant x = CDbl(Text1.Text) Call addn.numadd(1, y, x) Text2.Text = y End Sub Private Sub Command2_Click() End End Sub Private Sub Form_Load() Set addn = New addn.Add Form1.Caption = "VB调用MATLAB示例" Text1.Text = 2 End Sub [/code] [code] function y=numadd(x) y=2*x; [/code] COM组件调用格式: [code]call h.func(numout,arg1,arg2,...)[/code] MATLAB中的函数书写格式: [code][out1,out2,out3]=myfunc(arg1,arg2)[/code] 则VB的调用应该为: [code]call object.myfunc(3,out1inVB,out2inVB,out3inVB,arg1inVB,arg2inVB)[/code] “3”指的是输出变量的数目 另外当多个版本的MATLAB在同一PC上时,VB只认其中一个版本产生的COM,不知道是不是环境变量设置的问题。 2006-3-6 09:41 lb107 Re:VB和Matlab传递数据 谢谢楼上二位的指点!! 我的想法也是利用comtool直接将m文件编译成COM组件,然后在VB中调用实现应该是没有问题,但是在交换数据方面肯呢感有点难度,我只想找几个具体的例子看看其调用的根据体过程 谢谢!! 2006-3-6 19:53 taohe Re:VB和Matlab传递数据 [quote][b]lb107 wrote:[/b] 谢谢楼上二位的指点!! 我的想法也是利用comtool直接将m文件编译成COM组件,然后在VB中调用实现应该是没有问题,但是在交换数据方面肯呢感有点难度,我只想找几个具体的例子看看其调用的根据体过程 谢谢!! [/quote] 如果用comtool也就是使用COM组件的话,事情就更好办了。因为进入COM世界后,所有的数据都是VARIANT,而VB和COM是非常亲近的关系,在VB中使用COM比起其他语言比如C++来说显得更为轻松。还得重复一下,matlab的在线帮助上关于COM组件的应用几乎全部是VB作为应用程序例子,不妨看看。2006-3-6 20:05 lb107Re:VB和Matlab传递数据 我的英语不太好 taohe 老师能给一个具体的链接地址吗?? 谢谢 2006-3-6 20:46 taohe Re:VB和Matlab传递数据 你指什么连接地址?我刚才说的在线帮助是matlab安装文档。 本来matlab的公司MathWorks的网站上有每次最新版的matlab的帮助文档连接。不过现在MathWorks网站上的连接好像已经变成新版matlab R2006a的文档了。所以只好看matlab安装后的在线帮助了。 matlab不知你用那个版本的matlab,不管那个版本,在matlab环境中运行doc,然后在出来的帮助文档中寻找相关的话题。如果是matlab6.5.x的话,应该在matlab com builder,如果是matlab7.x的话应该是matlab builder for com。 里面有例子程序,如果VB好的话,应该没有问题的。别怕英文。 可惜我是VB盲,无法给出具体的帮助。 Good luck! 2006-3-6 22:40 lb107 Re:VB和Matlab传递数据 再次谢谢 2006-3-12 21:35 godzilla2000cn Re:VB和Matlab传递数据 如果matlab中生成的图片怎么传到VB里,也就是在VB中用什么控件来接收matlab的fig??? 2006-11-1 19:46 tian7tian 大家好啊! 我现在是将m文件组成com组件,还没搞定呢,总出现错误! 2006-11-8 19:46 jimin 看了bainhome版主的一个例子后,做了个vb调用matlab时隐藏matlab figure 的例子 Private Sub Command1_Click() Dim objMATLAB As Object Set objMATLAB = CreateObject("matlab.application") Dim strEnter As String Dim strCommand As String strEnter = Chr(13) & Chr(10) strCommand = "figure('visible', 'off', 'Units','points','PaperUnits', 'points');" strCommand = strCommand & strEnter strCommand = strCommand & "surf(peaks(25));" strCommand = strCommand & strEnter strCommand = strCommand & "print -dmeta" strCommand = strCommand & strEnter strCommand = strCommand & "close(gcf)" strCommand = strCommand & strEnter objMATLAB.execute (strCommand) imgDraw.Picture = Clipboard.GetData() imgDraw.Refresh Set objMATLAB = Nothing End Sub 2006-11-12 10:42 WaitingForMe Matlab的代码或者窗口, 用combuilder编译以后, 可以直接在VB里面引用. 如果需要移植到其他计算机上, 需要在目标计算机上安装一个虚拟机, 大概8M大小. 2006-11-12 13:59 bainhome [quote]Matlab的代码或者窗口, 用combuilder编译以后, 可以直接在VB里面引用. 如果需要移植到其他计算机上, 需要在目标计算机上安装一个虚拟机, 大概8M大小.[/quote] 前一句话已经基本实现,后一句话不太明白...什么虚拟机?还是java虚拟机吗(自己感觉不像)?请教一下^_^ 2006-11-29 19:23 tian7tian 关于bainhome写的程序,我问个问题,关于 function y=numadd(x) 其中y定义为variant,x定义为double类型;是不是类型是固定的呢? x可以定义为string类型么? 2006-12-11 14:43 tian7tian 有哪位了解的话,有时间的话,给答复一下,谢谢了!! 2006-12-31 01:24 WaitingForMe [quote]原帖由[i]bainhome[/i] 于2006-11-12 13:59 发表 前一句话已经基本实现,后一句话不太明白...什么虚拟机?还是java虚拟机吗(自己感觉不像)?请教一下^_^ [/quote] Combuilder创建的程序,移植到没有安装Matlab的电脑上的时候,需要安装一个什么包,都忘了,这个是Matlab的帮助,自己看帮助吧 MATLAB COM Builder: Overview: Packaging and Distributing the Component 2007-7-20 15:53 shiwenyaboa

圆极化波及其MATLAB仿真-西电电子教案

电磁场与电磁波大作业圆极化波及其MATLAB仿真 专业:信息对抗技术班级:021231 学生姓名: 指导教师:黄丘林

一、引言 电磁波电场强度的取向和幅值随时间而变化的性质,在光学中称为偏振。如果这种变化具有确定的规律,就称电磁波为极化电磁波(简称极化波)。如果极化电磁波的电场强度始终在垂直于传播方向的(横)平面内取向,其电场矢量的端点沿一闭合轨迹移动,则这一极化电磁波称为平面极化波。电场的矢端轨迹称为极化曲线,并按极化曲线的形状对极化波命名,其主要分类有线极化波,圆极化波和椭圆极化波。 二、原理详解 下面我们详细分析圆极化波的产生条件。 假设均匀平面电磁波沿+Z 方向传播,电场强度矢量E 频率和传播方向均相同的两个分量 x E 和 y E ,电场强度矢量的表达式为 -00()(1)()y x x X y y jkz x x y y j j jkz x xm y ym E E E E e E e E e e φ φ-=+=+=+E a a a a a a 电场强度矢量的两个分量的瞬时值为 cos()(2)cos() (3) x xm x y ym y E E t kz E E t kz ωφωφ=-+=-+ 设,,0, 2 xm ym m x y E E E z π φφ==-=± = 那么式(2)式(3)变为 cos()cos() 2 x m x y y y E E t E E t ωφπωφ=+=+m 消去t 得 22 ()()1y x m m E E E E += 此方程就是圆方程。电磁波的两正交电场强度分量的合成电场强度矢量E

的模和幅角分别依次为 (4)sin(t )arctan[](t ) (5)cos(t ) m x x x E E ωφαωφωφ==±+==±++ 由式(4)和式(5)可见,电磁波的合成电场强度矢量的大小不随时间变化,而其余x 轴正向夹角α将随时间变化。因此合成的电场强度矢量的矢端轨迹为圆,故称为圆极化。 三、仿真分析 下面我们用MATLAB 进行仿真分析。 假设电磁波为圆极化波,且沿+z 方向传播,则其电场强度矢量轨迹如下图一所示: x 电场强度矢量 y z 图一 而当固定位置观察圆极化波的矢端轨迹,其结果如下图二:

遗传算法的VB程序【精品毕业设计】(完整版)

遗传算法的VB程序 最近看了下遗传算法,刚看了一点,就觉得手痒,非要把程序编制出来看看效果(我现在总认为那些理论再高深,无法用计算机实现就是空话,呵呵)。下面是我调试了好久的代码,无赖没有学过数据结构&算法,程序写的很差,单效果还是出来了,高兴,和大家共同分享下成果吧。 还是一样,不想说原理,因为这里想搞个公式上去N麻烦。直接给点实际的东西。具体步骤是参考《MATLAB遗传算法工具箱及应用》(西安电子科技大学出版社)16~22页的相关说明编制的,有兴趣的同学可以去看看这本书。 在程序调试成功的同时,郁闷的是工作的事情,现在好多企业久是指名不要研究生,而我又是一个四不象,本专业是热能工程,可我本专业基本上还是本科水平,大部分时间都去自学一些杂七杂八的东西去了,比如人工智能,PLC,自动控制方面,图像处理啊,可又只是懂个皮毛,现在找工作也不知道怎么给自己定位了。有相关经历的同学可要指点我一二哦。 Option Explicit '程序实现功能:用遗传算法求函数的最大值 '作者: laviewpbt '联系方式: 'QQ:33184777 '版本:Version 1.4.0 '说明:复制请保留源作者信息,转载请说明,欢迎大家提出意见和建议 Dim N2(30) As Long '用来保存2的N次方的数据 Dim Script As Object '调用其Eval函数 Public Enum CrossOver OnePointCrossOver '单点交叉 TwoPointCrossOver '两点交叉 UniformCrossOver '平均交叉 End Enum Public Enum Selection RouletteWheelSelection '轮盘赌选择 StochasticTourament '随机竞争选择 RandomLeagueMatches '随机联赛选择 StochasticUniversalSampleing '随机遍历取样 End Enum Public Enum EnCoding Binary '标准二进制编码

电磁场的Matlab仿真.

Matlab 与电磁场模拟 一单电荷的场分布: 单电荷的外部电位计算公式: q φ= 4πε0r 等位线就是连接距离电荷等距离的点,在图上表示就是一圈一圈的圆,而电力线就是由点向 外辐射的线。 MATLAB 程序: theta=[0:.01:2*pi]'; r=0:10; x=sin(theta*r; y=cos(theta*r; plot(x,y,'b' x=linspace(-5,5,100; for theta=[-pi/4 0 pi/4] y=x*tan(theta; hold on ; plot(x,y; end grid on 单电荷的等位线和电力线分布图: 二多个点电荷的电场情况: 模拟一对同号点电荷的静电场 设有两个同号点电荷, 其带电量分别为 +Q1和+Q2(Q1、Q2>0 距离为 2a 则两 电荷在点P(x, y处产生的电势为: 由电场强度可得E = -?U, 在xOy 平面上, 电场强度的公式为: 为了简单起见, 对电势U 做如下变换:

。 Matlab 程序: q=1; xm=2.5; ym=2; x=linspace(-xm,xm; y=linspace(-ym,ym; [X,Y]=meshgrid(x,y; R1=sqrt((X+1.^2+Y.^2; R2=sqrt((X-1.^2+Y.^2; U=1./R1+q./R2; u=1:0.5:4; figure contour(X,Y,U,u grid on legend(num2str(u' hold on

plot([-xm;xm],[0;0] plot([0;0],[-ym;ym] plot(-1,0,'o' , 'MarkerSize' ,12 plot(1,0,'o' , 'MarkerSize' ,12 [DX,DY] = gradient(U; quiver(X,Y,-DX,-DY; surf(X,Y,U; 同号电荷的静电场图像为: 50 40 30 20 10 0-2 2

vb调用matlab的四种方法

一、借助ActiveX部件 Microsoft把所有以COM为基础的技术统称为ActiveX技术。自动化是大多数ActiveX技术的基础,它可使解释性的宏语言(如VB)能够在不了解应用程序实现细节的情况下控制自动化对象。Matlab实现了ActiveX自动化服务支持,在VB下通过ActiveX自动化接口可将Matlab作为Visual Basic语言的一个ActiveX部件调用。 Matlab ActiveX自动化服务的功能主要包括在Matlab工作空间执行Matlab命令,以及直接从工作空间存取矩阵等,下面列出了Matlab自动化服务支持的几个主要方法,其参数和返回值的类型采用ActiveX自动化协议所定义的与语言无关的类型描述: ● BSTR Execute([in] BSTR Command); BSTR表示宽字符串类型,它与VB存储字符串所采用的数据格式相同。该方法接收字符串命令并在Matlab中执行,将结果以字符串形式返回。 ● void GetFullMatrix([in] BSTR Name,[in] BSTR Workspace,[in, out] SAFEARRAY(double)* pr,[in, out] SAFEARRAY(double)* pi); 该方法从指定的工作空间检索一个完整的一维或二维的实型或虚mxArray,其实部和虚部被分别存放到两个单独的Double型数组中。 ● void PutFullMatrix([in] BSTR Name,[in] BSTR Workspace,[in] SAFEARRAY(double) pr,[in] SAFEARRAY(double) pi); 该方法将一个mxArray放入指定的工作空间。各参数的含义及调用方法与GetFullMatrix方法类似。 示例代码如下: 1Dim Matlab As Object ’声明对象 2Dim MReal1(5,5) As Double ’声明存放实部的Double型数组 3Dim MImag() As Double ’声明存放虚部的Double型数组 4Set Matlab=CreateObject(“Matlab.Application”) '初始化对象 5Matlab.Execute(“a=hilb(5)”) '执行Matlab命令 6Call Matlab.GetFullMatrix(“a”,“base”,MReal1,MImag) '将结果分别存入实部、虚部数组 复制代码 二、借助DDE技术 DDE(Dynamic Data Exchange)允许Microsoft Windows应用程序通过交换数据实现彼此间的通信。应用程序间彼此通信要先建立一个DDE会话,对会话进行初始化的应用程序称为客户端(Client),对Client端作出响应的应用程序称为服务器(Server)。图1描述了Matlab 作为服务器时与其他应用程序的通信机制。

三相异步电动机电磁计算

三相电机 额定电压U=380V,f=50HZ,机座号Y132,输出P2=8KW,p=4极 螈 1. 2.芄型号:Y132M 3. 4.蒂输出功率:P N=8KW 5. 6.袂相数:m1=3 7. 8.薇接法: 9. 10.莃相电压:Uφ=380V 11. 13. 14.极对数:p=2 15. 16.定子槽数:Z1=36

17. 18.转子槽数:Z2=32 19. 20.定子每极每相槽数: 21. 22.肂定子外径:D1=21cm D i1=13.6cm 荿定子内径: =0.4mm 蒃气隙长度:δ 转子外径:D2=13.52cm 13.6-0.04*2=13.52cm 转子内径:D i2=4.8cm 定子槽型:半闭口圆底槽 定子槽尺寸:b o1=0.35cm b1=0.67cm h o1=0.08cm R1=0.44cm h12=1.45cm 转子槽形:梯形槽 转子槽尺寸:b o2=0.1cm b r1=0.55cm b r2=0.3cm h o2=0.05cm h r12=2.3cm

23.极距: 24.定子齿距: 25.转子齿距: 26.气隙长度: 27.转子斜槽距:b sk=t1=1.187cm 28.铁芯长度:l=16cm 29.铁芯有效长度:无径向通风道:l ef=l+2δ=16.08cm 30.净铁芯长:无径向通风道:l Fe=K Fe l=0.95*16=15.2cm K Fe=0.95(不涂漆) 31.绕组型式:单层交叉式 32.并联支路数:a1=1 33.节距:1-9,2-10,11-18 34.每槽导线数:由后面计算的数据根据公式计算为: 每极磁通φ1=0.00784wb 波幅系数:K A=1.46 绕组系数:K dp1=0.96

MATLAB与VB混合编程方式简易教程

3.1 MATLAB与Visual Basic 语言的混合编程方式 MATLAB提供了与C/C++、Fortran语言的接口,但没有与Vsiual Basic语言的接口,要想实现MATLAB与Visual Basic的混合编程可以通过以下途径来实现。 1.通过ActiveX方式 一是用Visual Basic开发服务器ActiveX组件,MATLAB作为客户端程序使用,事实上无论是用VB还是VC或者其他语言环境开发的ActiveX组件,对于MATLAB来说集成与调用方式是一样的,一般情况下很容易地将不同环境下开发的用途各异的ActiveX对象集成到一个MATLAB应用中来。其使用方法见第5章关于MATLAB作为ActiveX的客户端使用方法。 二是在VB环境下可以通过ActiveX自动化接口将MATLAB作为Visual Basic语言的一个ActiveX 部件调用。MATLAB ActiveX自动化服务的功能主要包括在MA TLAB工作空间执行MA TLAB 命令,以及直接从工作空间存取矩阵等,我们在第5章中关于MA TLAB作为服务器组件的部分的例子就是以Visual Basic应用程序,以MATLAB作为服务器客户端的。 2.通过动态链接库方式 该种方式是一种间接调用MATLAB命令的方式,借助于C++与MA TLAB的接口,将MATLAB 的程序文件(.M文件)编译为动态链接库(.DLL),VB在代码中与调用其他语言编写的DLL文件一样调用MATLAB中.M 文件生成的动态链接库。这种方法可以脱离具体的MA TLAB环境,运行效率较高。 3.通过嵌入VB的矩阵函数库MatrixVB的方法 MatrixVB是由第三方(mathtools公司)提供的COM组件,包含了大量与MATLAB相似的函数与调用语法,可以加强VB内建数学运算与图形展示功能,在VB程序代码中可以像使用VB自己的函数一样使用MatrixVB的函数,而且可以不依赖于MATLAB的环境在Visual Basic中完成矩阵运算与图形绘制显示等功能,这种方法使用起来简单,编程效率较高。MatrixVB函数库的功能大致可分为8大类(矩阵运算、运算符重载、图形图像处理、最优化运算、多项式、信号处理、随机与统计分析、控制系统)。 除以上3种方式外,我们还可以通过DDE的方式实现VB与MATLAB的数据通信。 3.2 MatrixVB 环境设置 3.2.1 在VB应用中引入MatrixVB

电磁场的Matlab仿真

Matlab 与电磁场模拟 一 单电荷的场分布: 单电荷的外部电位计算公式: 等位线就是连接距离电荷等距离的点,在图上表示就是一圈一圈的圆,而电力线就是由点向外辐射的线。 MATLAB 程序: theta=[0:.01:2*pi]'; r=0:10; x=sin(theta)*r; y=cos(theta)*r; plot(x,y,'b') x=linspace(-5,5,100); for theta=[-pi/4 0 pi/4] y=x*tan(theta); hold on ; plot(x,y); end grid on 单电荷的等位线和电力线分布图: r q 04πεφ=

二多个点电荷的电场情况: 模拟一对同号点电荷的静电场 设有两个同号点电荷,其带电量分别为+Q1和+Q2(Q1、Q2>0 )距离为2a则两电荷在点P(x, y)处产生的电势为: 由电场强度可得E = -?U,在xOy平面上,电场强度的公式为: 为了简单起见,对电势U做如下变换: 。 Matlab程序:

q=1; xm=; ym=2; x=linspace(-xm,xm); y=linspace(-ym,ym); [X,Y]=meshgrid(x,y); R1=sqrt((X+1).^2+Y.^2); R2=sqrt((X-1).^2+Y.^2); U=1./R1+q./R2; u=1::4; figure contour(X,Y,U,u) grid on legend(num2str(u')) hold on plot([-xm;xm],[0;0]) plot([0;0],[-ym;ym]) plot(-1,0,'o','MarkerSize',12) plot(1,0,'o','MarkerSize',12) [DX,DY] = gradient(U); quiver(X,Y,-DX,-DY); surf(X,Y,U); 同号电荷的静电场图像为:

电磁场的matlab仿真实验--m语言1

实验三:等量异号点电荷的电势分布 一、实验目的与要求 1.掌握命令窗口中直接输入语句,进行编程绘制等量异号点电荷的电势分布图; 2.掌握二维网格和三维曲面绘图的语句。 二、实验类型 设计 三、实验原理及说明 这里在命令窗口中直接输入简单的语句进行编程设计。MATLAB有几千个通用和专用 五、实验内容和步骤 (一)建立等量异号点电荷的电势方程

物理情景是oxy平面上在x=2,y=0处有一正电荷,x= -2,y=0处有一负电荷,根据 计算两点电荷电场中电势的分布,由于 (二)利用MA TLAB的函数, 绘制等量异号点电荷的电势分布图 首先选定一系列的x和y后,组成了平面上的网络点,再计算对应每一点上的z值。例如-5:0.2:5,-4:0.2:4分别是选取横坐标与纵坐标的一系列数值,meshgrid是生成数据网格的命令,[x,y]是xy平面上的坐标网格点。z是场点(x ,y)的电势,要求写出z的表达式。这里用到MA TLAB的函数mesh()描绘3D网格图,meshgrid()描绘在3D图形上加坐标网格,sqrt()求变量的平方根。mesh()是三维网格作图命令,mesh(x,y,z)画出了每一个格点(x,y)上对应的z值(电势)。在命令窗口中直接输入简单的语句,如下。 解1

解2

当场点即在电荷处时,会出现分母为零的情况,因此在r里加了一个小量0.01,这样既可以完成计算,又不会对结果的正确性造成太大影响。 另外需要注意的是表达式中的“./ ”、“.^ ”是对数组运算的算符,含义与数值运算中的“./ ”、“.^ ”相同,不同之处是后者只对单个数值变量进行运算,而前者对整个数组变量中的所有元素同时进行运算。 解2为了减少计算量,增加精确度,与先前的示例相比,计算范围由原先的-5

浅谈VB与MATLAB相结合的三种方法

浅谈VB与M AT LAB相结合的三种方法 樊金荣① 黎洪生② 摘 要 本文分别介绍了在VB中调用M atlab的三种方法:利用动态链接库DLL、利用动态数据交换D EE以及利用A ctivex自动化技术。并以具体的例子给出通过这些方法实现了VB的可视化界面与M atlab强大的数值计算和图形显示能力的结合。 关键词 客户 服务器 M atlab DLL DD E A ctivex 技术 一、前言 V isual Basic是由M icro s oft公司开发的在W indow s95 98平台上的一种十分强大和有生命W indow s编程语言之一,具有易学易用、编程简单、程序集成化程度高及界面可视化又能实现大多数W indow s编程目的,因而一经推出就风靡全球然而,VB提供的数学函数及其有限,因而使之在数值计算和图形显得力不人心。M atlab是M ath W o rk s公司开发的一种工程计算语言。用这个交互系统可以解决很多工程计算问题,特别当涉及到矩阵和矢量形式的问题时,M atlab提供了强大的矩阵处理的和绘图功能。显然,将二者结合起来,能实现VB 可视化界面下运用M A TLAB强大的数值计算和图形显示,使VB编更加灵活快洁。 二、采用动态链接库DLL方法 M atcom是一个从M A TLAB到C++的编译器,它可以节省用户的运算时间和内存要求。M ath too ls公司利用M atcom4技术编写了M ideva工具软件,它可以借用C++编译器将M atlab下的M-文件转换为可被VB调用的DLL或独立瓣可执行文件。VB中要使用DLL,必须在VB工程中包含DLL的声明文件(即模块文件),同时还要将DLL放在工程文件所在的目录下。 如下操作可以一个M-文件编译成DLL:启动M atcom4的M ideva,点菜单F ile Comp ile,选要转换的M-文件应该是能作为函数被其他集城环境调用的M-文件,设文件名为m yfile)。编译完成后,在对应的D ebug或R elease目录下,可以找到一些编译生成的文件。VB需要用到的文件有两个。m yfile.dll(DLL文件)m yfile.bas(在VB中声明DLL的模块文件)。事实上,m yfile.dll中的函数并不能直接与VB进行数据交换,它只能通过矩阵数据进行操作。M ah tToo ls提供了一个单独的C++库文件m atlib42.dll(相当VB集成环境与DLL之间的代理,它包含有20多个矩阵句柄操作函数和800多个从M atlab中转换来的矩阵函数)以及相应的模块文件m atlib42.bas。为了在VB中能调用这类DLL,必须将m yfile. bas和m atlib42.bas加入工程中,并将m yfil.dll和m atlib42. dll拷贝到工程所在的目录下。编译后,在VB中的函数名为m yfile-in-out,其中,in和out分别为函数的输入输出参数的个数。注意,在编程时,必须调用m t In it M来初始化库文件,即请求允许使用转换的DLL,并调用m tEx it M来结束这种请求。另外,还要使用其它的矩阵句柄函数来分配、访问和释放矩阵句柄。 这种方式最简单的例子是直接调用m atlib42.dll中提供的inv-2-1来计算矩阵的逆。 二、采用动态数据交换D EE方法 该方法是利用M A TLAB提供的客户 服务器(C lien t Server)功能,VB应用程序作为系统主控,用M atlab作为后台应用程序完成复杂计算任务与绘画功能,M atlab与VB应用程序间通过DD E协议进行数据交换,DD E(D ynam ic D ata Exchange)是一种开放的、与语言无关的、基于消息的协议,它是应用程序通过共享内存进行进程通信的一种形式。 VB应用程序首先通过确定服务器名和主题(top ic)建立与M A TLAB的DD E会话,服务器名和主题唯一地确定作为客户端,M atlab作为服务端,客户端与服务端可以就确定的项目(Ite m)交换数据。关于VB的DD E功能可以参文献。VB应用程序中需指明的M A TLAB的服务器为M atlab,, M A TLAB有Syste m和Engine两个主题,在Syste m主题下可以列出M A TLAB所提供的详细的DD E功能,在Engine主题下可以充分实现M A TLAB的服务功能。利用VB具有的DD E客户端功能,使用M A TLAB的Engine主题支持的三种操作,VB应用程序主河以向M A TLAB传送可执行的命令,从M A TLAB中读取数据以及向M A TLAB中传送数据。 VB为用户提供的支持DD E通信的控件有:窗体(Fo r m)、多文档窗体(M D I Fo r m)、标签(L abel)、文本框(T ex t Box)和图片框(P icture Box)。相应于DD E协议,这些控件提供了完成一次DD E链接需要的属性和事件,以及设置 ① ②黎洪生 武汉理工大学自动化学院 教授 博士生导师 武汉 430070 樊金荣 武汉理工大学自动化学院 硕士 武汉 430070

VB调用Matlab生成的dll完全攻略(混合编程必备)

用VB调用Matlab生成的dll MATLAB 具有强大的运算功能,VB 具有开发界面友好的特点,可以将二者结合,可以开发出脱离MATLAB 环境的VB程序,即利用VB调用Matlab生成的dll。 工具/原料 Microsft Visual Basic 6 Matlab 7.0 步骤/方法 在MA TLAB 系统中的命令输入comtool命令或点击左下角“Start- > MATLAB - > MA TLAB COMBuilder - > MATLAB COM Builder”,启动MATLAB COM Builder。 建立工程,选择菜单“File - > New Project”,设置工程参数。设置的工程名为COM 组件编译后的文件名称,也可以输入新类,点击“Add”建立新类。

点击菜单“Project - > Add File. . . ”,向工程中加入M或MEX文件。 点击菜单“Build - >COM Object. . . ”,状态窗口出现“Standalone DLL build complete.”说明生成dll成功。

注册生成的myfunc_1_0.dll,在VB中引用MWComUtil.dll和myfunc_1_0.dll,就可以像调用里边的函数了!

插入完成后,Visual Basic中的具体调用方法和命令 此时Matlab中定义的函数: function daoju_gonge(z,x,m,ha,c,b) (函数名daoju_gonge) VB调用 1.先对所有的参数进行定义(关键) Private z As Double Private x As Double Private m As Double Private ha As Double Private c As Double Private b As Double Private theDaoju As myDaoju.Daoju (theDaoju 是自己设定的一个VB中的变量,myDaoju 则是由.m文件编译而成的.dll文件文件名,同时也是其中定义的组件名Component name,daoju则是其类名Class name) 2.调用命令 Call theDaoju.Daoju_gonge(z, x, m, ha, c, b) 3.对VB进行初始化 Private Sub Form_Load() Set theDaoju = New myDaoju.Daoju End Sub 注意事项以及相应问题解决 1.在编译dll时,需要机器安装有C或C++编译器,比如安装VC++6.0 2.Matlab启动Comtool工具之前,还需要利用mbuild –setup 命令对compiler(转换器) 设 置,将转换器设置成C++/C语言对应的compiler,而不是Matlab自带的compiler。 Ps:前两条如果没有做到的话,在comtool生成界面往往出错,无法生成dll等相应的文件。 3.如果出现有其他一些小问题,尝试重启Visual Basic或Matlab,再或者重启电脑。 疑难点: 如果对文件进行处理,使其能够在其他电脑上同样实现设定的功能。 可选方案一:文件打包。 Visual Basic打包程序或是Matlab打包程序。

相关主题