matlab帮助翻译,科学网—"IntroductionToLiveLinkForMATLAB"帮助文档的翻译和个人看法 - 刘铨鸿的博文...

COMSOL 4.3 with MATLAB (for win7)

程序相关的帮助文件可参考如下获取方式:

开始菜单 > COMSOL 4.3 > Documentation > livelink to MATLAB

没找到的话,可以自行下载

以下是启动的一些要点。

1启动 COMSOL 4.3 > File > Client Server > Connect to Server > 填写用户信息

2如果通过合适的安装步骤之后,桌面上就会出现 COMSOL 4.3 with MATLAB,点之;

若链接成功,在启动MATLAB的同时,会出现一个题为“COMSOL 4.3 with MATLAB”的黑框,其中会显示你步骤1的用

户信息;为了保证正常使用,最好改变COMSOL和MATLAB的工作目录,使两者一致,且地址为英文。

3通过 model=ModelUtil.create('Model') 创建一个模型Model。

(由于用COMSOL with MATLAB 完全可以独立建模,所以以下 3 - 5 步骤可不必打开COMSOL。)

4model.name('busbar');

定义model name (这里的 name 定义,只为了后处理使用)

5模型参数定义,几何建模等均可以通过从COMSOL建模后‘另存为 M文件  ’ 的方法,快速获取这些代码,稍微普及一下面向对象的语法就可以读懂其中的设置。值得注意的是,由于 COMSOL 的参数均已字符串的格式读入程序再进行转化的,所以在编写的过程中,无论是变量名,具体数值value等,都用加单括号。

***********************************************

mphgeom 命令用于“显示”所画的几何图形

e.g. mphgeom(model); or mphgeom(model,'geom1');

model 是步骤3 所定义的变量名

****************************************************************************

geom1 = model.geom.create('geom1',3);  (变量名一般在create的方法语句中定义)

... (变量名一般在create的方法语句中定义 这里忽略中间建模部分)

geom1.run; 命令相当于 COMSOL 中的 build all

*****************************************************************************

定义组件的方法

e.g.

sel1 = model.selection.create('sel1');

sel1.set([2 3 4 5 6 7]);

sel1.name('Ti bolts');

************************************************

材料定义一般顺序:

e.g.

mat1 = model.material.create('mat1');

mat1.materialModel('def').set('electricconductivity', {'5.998e7[S/m]'});

mat1.materialModel('def').set('heatcapacity', '385[J/(kg*K)]');

mat1.materialModel('def').set('relpermittivity', {'1'});

mat1.materialModel('def').set('density', '8700[kg/m^3]');

mat1.materialModel('def').set('thermalconductivity', {'400[W/(m*K)]'});

(其中 赋值 中有的用大括号——感觉是允许输入多值,

有的用没有大括号——感觉只允许输入单值)

mat1.name('Copper');

mat1.selection.named('sel1');(引用了上面的组件变量名)

******************************************************************

mphgeom(model,'geom1','facemode','off','facelabels','on');

显示面号

*****************

划分网格一般流程

mesh1 = model.mesh.create('mesh1', 'geom1');

size = mesh1.feature('size');

size.set('hmax', 'mh');

size.set('hmin', 'mh-mh/3');

size.set('hcurve', '0.2');

ftet1 = mesh1.feature.create('ftet1', 'FreeTet');

mesh1.run;

mphmesh(model)

*****************

求解一般流程

std1 = model.study.create('std1');

stat = std1.feature.create('stat', 'Stationary');

ModelUtil.showProgress(true)(显示求解进度条,默认为不显示)

std1.run;

*****************************************************************

后处理一般流程

e.g.1

pg1 = model.result.create('pg1', 'PlotGroup3D');

pg1.feature.create('surf1', 'Surface');

(surface输出及部分设置 少定义了'expr'的属性值 代表取的是默认值)

pg1.feature('surf1').set('rangecoloractive', 'on');

pg1.feature('surf1').set('rangecolormin', '322.6');

pg1.feature('surf1').set('rangecolormax', '323');

mphplot(model,'pg1','rangenum',1)(显示云图 rangenum表示数据范围的显示类型)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

e.g.2

pg2 = model.result.create('pg2', 'PlotGroup3D');

pg2.feature.create('surf1', 'Surface');

pg2.feature('surf1').set('expr', 'jh.normJ');

pg2.feature('surf1').set('rangecoloractive', 'on');

pg2.feature('surf1').set('rangecolormax', '1e6');

pg2.set('title', 'Current density norm (A/m^2)');

mphplot(model,'pg2','rangenum',1);

**************************************************

输出结果一般流程

data1 = model.result.export.create('data1', 'Data');

data1.setIndex('expr', 'T', 0);

data1.set('filename','filepathTemperature.txt');

data1.run;

****************************************************

保存模型一般流程

model.save('/busbar');

(如果不指定目录 则模型默认保存在启动目录

且默认是 mph 文件, 而不是 m 文件)

model.save('/busbar','m');

********************************************

6COMSOL 模型导出到 MATLAB

同时打开 COMSOL 和 COMSOL with MATLAB

打开 COMSOL 已经建立好的模型 > File > Client Server > Export Model to Server

此时需要填一个 Model 的名字,该名字用于在 MATLAB 中提取用

这样,模型就算是保存在 COMSOL 的 server 上了 可以供 MATLAB 调用

在 COMSOL with MATLAB 中通过 e.g. model= ModelUtil.model('Busbar'); 调用

这里 Busbar 就是上述导入 server 时候的 model 名

7MATLAB 模型导入 COMSOL

打开 COMSOL with MATLAB 按步骤5 那样正常建立模型

e.g.

model = ModelUtil.create('ImportExample');

model.geom.create('geom1', 3);

model.geom('geom1').feature.create('blk1', 'Block');

model.geom('geom1').run;

...

打开 COMSOL > File > Client Server > Import Model from Server

在 Model 名字框里输入 MATLAB 建立的 MODEL 名,例如 ImportExample

通过 ModelUtil.tags 命令可以实现查看在 server 里存的模型列表

(注意: 用这种方法导入 COMSOL 之后,如果在 COMSOL 中有所修改,必须反馈到server中,供 MATLAB 调用)

8通过 COMSOL 保存成 m 文件,m 文件一般会保存很多操作的记录,相当一部分是没有用的

所以应该通过 File > Reset History 操作,然后再 保存 m 文件

注意:打开这个模型有两种方法

a 在 COMSOL with MATLAB 命令窗口运行命令 model = busbar; 提取,

其中busbar是 m 文件名 并非模型名字。此导入时,需要先运行整个模型一次。

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

b 在 COMSOL 中,通过上述 6 的方法,把模型“放”到server,然后通过 COMSOL with MATLAB 调用。

上述两种方法的区别在于:方法a,可以说“独立于”COMSOL,因为没有通过server“交接”,但需要单独重新运行程序;而方法b,需要借用server提供接口,但其模型不需要重新求解,可以直接调用使用。

9在 COMSOL with MATLAB 中提取快速提取模型(mph格式)参数和结果

打开  COMSOL with MATLAB

model = mphload('busbar');

(此处的 busbar 是 busbar.mph 中的文件名,软件自动从COMSOL预先设置的目录中搜索该文件,

当然可以指定地址下的mph文件,详情可以看帮助文件 LiveLinkForMATLABUsersGuide 。)

之后可以利用 mpheval,mphinterp,mphglobal,mphint等命令。

10通过

model=mphload('busbar');

mphnavigator

可以看到模型的信息导航

11改变模型参数

方法1

e.g.

model=mphload('busbar');

mphplot(model,'pg2','rangenum',1);

model.param.set('L','18[cm]');

model.sol('sol1').run;

mphplot(model,'pg2','rangenum',1);

(改变后量纲要与改变前的量纲要一致)

方法1'(个人推荐)

e.g.

L0 = 9e-2;

model.param.set('L',L0);

model.geom('geom1').run;

mphgeom(model,'geom1')

方法2

e.g.

友情提示: 通过 mphnavigator 命令得到的 Model Tree 底部有个对变量的 address

通过 copy 可以直接在 MATLAB 中赋予变量/对象名,之后对应添加属性和方法即可。

e.g.

r1 = model.geom('geom1').feature('wp1').geom.feature('r1');

H1 = 0.2;

r1.set('ly', H1);

(mphproperties 可以用来获取模型特征的属性和取值。)

方法3

用字符串的形式改变参数

e.g.

L0 = 0.1;

r1.set('ly',L0)

r2.set('ly',[num2str(L0) '-tbb']);

model.geom('geom1').run;

mphgeom(model,'geom1');

转载本文请联系原作者获取授权,同时请注明本文来自刘铨鸿科学网博客。

链接地址:http://blog.sciencenet.cn/blog-626917-671038.html

上一篇:python 语言在abaqus中的应用总结

下一篇:COMSOL with MATLAB 帮助文件例子

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值