COMSOL与MATLAB联合仿真入门(2)
上次介绍了一下最最基本的东西,起码大体了解了哪个东西是用来干什么的,这样一定程度上会缓解对未知事物的恐惧,觉得学起来也没那么困难,哈哈,至少我是这么觉得。
这次要说的东西还是很基础,入门级的,还是那句话,写这个帖子的目的不是想教多少东西,我自己的水平也不配。只是自己在学习comsol的时候确实网上没有一些入门的或者说基本纲要之类的东西来看,入门起来很困难,搞了半天也不知道要干什么。
所以希望大家看了我这些玩意之后,再去看官方的手册教程,或者网上的一些视频能够不再觉得看不下去。
正题
LiveLink™ for MATLAB能做什么事呢,先说最简单的,就是你在COMSOL上进行的一些列操作,比如添加组件、创建圆柱体、设置圆柱体的半径、创建工作平面、设置边界条件等等等等,都可以在matlab中通过代码来实现,通俗讲就是用matlab在comsol上建模。
但是呢,
用matlab写代码建模很麻烦,所以一般情况下都是先在comsol上完成建模,然后无论是将模型保存成.mph文件,在matlab上用APP中的open打开;还是将模型保存成.m文件直接在matlab上打开,这就要看有什么需求了。
以上说的不是全部用途,是用来作为大体了解的,下面举两个例子。
注意,如果你对comsol建模还不了解的,建议先去学习一下comsol的基本操作,因为这对你理解相关代码有很大帮助。
在学习的时候不用担心研究的东西不同,比如说我是做粒子追踪的,网上教程都是教热传导,电磁场的,没关系,跟着学就行,目的是先懂了大体流程和一些基本用法,其实都差不多的流程。
例1 用matlab在comsol中创建简单的几何
-
打开comsol with matlab
-
在命令行窗口输入
model = ModelUtil.create('Model');
这一步实际对应在comsol中新建一个 空模型 ,这个空模型在matlab中的链接是model。 -
输入
mphlaunch
来启动comsol。此时在matlab中进行的任何操作都可以在comsol看到,这样方便学习。 -
下面的流程其实跟直接用comsol建模的步骤大同小异了,现在我们在空模型中添加组件1
comp1 = model.component.create(‘comp1’, true);
其实这些代码都很好理解,能知道英文单词什么意思就能猜个大概,开头的comp1是组件1在matlab里的名字,model.是在 模型 下创建,component.create是创建组件,后面的参数’comp1‘是在comsol中的名字
输入之前是这样的
运行代码之后成了这样
对比着看就很容易理解了吧。 -
geom1 = comp1.geom.create(‘geom1’, 2);
在 组件1 下创建 二维几何
代码的意思也很好理解,英文单词geom就是几何的意思,后面的参数分别是名字和维度,像创建三维几何只需要把2改成3 -
geom1.create('r1', 'Rectangle');
添加基础矩形,参数r1是名字,rectangle是矩形的意思,执行之后就会发现在 几何1 节点下生成了一个 矩阵1(r1) -
geom1.feature('r1').set('size', [3, 2]);
设置矩形r1的size,令其长3宽2.
运行代码后,下图是在comsol中对应的变化
-
geom1.feature('r1').set('pos', [0, 0]);
设置矩形r1的position,让其角(默认左下角)的位置在(0,0)处。 -
现在就成功构建了一个矩形,如果想看一下可以直接在matlab命令行窗口输入
geom1.run
,也可以去comsol直接点击 构建选定对象
例2 将模型保存成.m文件直接在matlab上打开
打开comsol,不用添加物理场,自行创建一个三维圆柱体,半径设置为0.5m,高设置为2m
文件 -> 压缩历史记录 (这一步是为了避免在直接用comsol建模时一些重复操作之类的影响代码)
文件 -> 另存为
选择.m文件保存。
再打开matlab,打开刚才保存的.m脚本文件,可以看到
14行创建组件1 comp1
16行在组件1下创建三维几何
20,21,22分别是创建圆柱体cyl1,并将其半径r设置为0.5,高设置为2。
结束
以上是一些十分基本的操作,只是用来了解软件,如有错误请以官方手册为准,希望能帮到大家。