如何将COMSOL与MATLAB联合【超详细,一网打尽】

如何将COMSOL与MATLAB联合


前言

网上搜索教程,发现大部分教程讲得比较初略,或者信息比较分散。本着自己踩过坑就不愿意让别人再踩一遍的原则,写下这篇博文。


提示:以下是本篇文章正文内容,下面案例可供参考

一、背景

  • COMSOL 5.5
  • MATLAB 2019a
  • Win 10

二、使用步骤

1. 找到 COMSOL Multiphysics 5.5 with MATLAB

一般安装comsol时matlab已经有了,那默认创建快捷方式时桌面就会有,
但是碰巧的是桌面上没有,可以在按下方操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果你碰巧装comsol的时候matlab并没有,那么你只需装上matlab之后,在重装上comsol。具体操作如下:
首先确定comsol已关闭,然后
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
选择添加/移除产品和重新安装,然后一路next,不要选择/取消选择任何内容,直到livelink这个界面,选择matlab的安装路径,以我为例就是D:Matlab.。不要把文件夹路径放得过细,comsol会认定为无效路径在这里插入图片描述

具体操作参考这个网页

2. 双击COMSOL Multiphysics 5.5 with MATLAB

输入USERNAME,这个随便输入。然后创建密码,确认一次密码。这个输入的过程中,由于窗体是黑色的,字也是黑色的,所以你会感觉没有输入,其实是输入了。所以你尽管输入就完事了。
如下示例:
在这里插入图片描述
输入结束后,出现matlab弹窗,之后就可以愉快的使用matlab调用COMSOL了。不说了去肝了!!!

三、在matlab上控制comsol——示例

有个捷径就是如果不知道想要实现的具体语句是什么的时候,可以先在comsol实现一遍,然后在另存为.m文件。这样就可以在matlab上打开你另存的文件,找到你想要找的语句指令。

除此之外,comsol自带的官方文档对comsol with matlab也有基础介绍,大家耐心看吧!
下面列出我这几天摸索出来的作为例子吧!如果对你有帮助的话,那就太好了!


注意:利用matlab控制comsol的前提是你的comsol建模过程完成了且结果可信!

  • 首先将你所在的comsol .mph文件所在的文件夹地址加入matlab搜索路径中
  • 然后就是码代码了,下面是一个例子
model = mphopen('test.mph');
% 前期设置
model.param.set('f',string(f)+'[Hz]');
model.param.set('phi', string(theta_i)+'[deg]');
model.param.set('theta_r', string(theta_r)+'[deg]');
model.param.set('a', string(a)+'[m]');
for ii = 1:length(cond)
    model.param.set('t1',string(t(1,ii))+'[m]');
    model.param.set('t2',string(t(2,ii))+'[m]');
    model.param.set('d1',string(d(1,ii))+'[m]');
    model.param.set('d2',string(d(2,ii))+'[m]');
    model.param.set('dx1',string(dx(1,ii))+'[m]');
    model.param.set('dx2',string(dx(2,ii))+'[m]');
    model.study('std2').run;
    % 结果导出
    model.result.export('plot1').set('plotgroup', 'pg3');
    model.result.export('plot1').set('plot', 'glob1');
    model.result.export('plot1').set('filename',string(ii)+'.txt');
    model.result.export('plot1').run;
    sprintf('已完成:%d',ii/length(cond))
end

有几个值得注意的地方:

参数设置时要加单位的,且是字符串格式
这个例子中结果导出是在提前在comsol设置好的
在结果导出的例子可以参照 https://www.jianshu.com/p/91de8f5f78f8

加快计算速度

以我为例,我需要获得20000左右的结果文件,所以需要简化comsol模型、加快comsol的计算速度。下面是具体操作:

  1. 将最大网格设置为工作波长的1/8
  2. 尽可能的将mph文件的大小降低
  3. 设置单机多核并行计算模式
    在这里插入图片描述

结语

欢迎大家来评论区讨论,我的水平有限,大家一起共同进步。另外觉得有帮助的,点个赞呗!

  • 96
    点赞
  • 330
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值