如何将COMSOL与MATLAB联合【超详细,一网打尽】 您所在的位置:网站首页 matlab需要哪些基础组件 如何将COMSOL与MATLAB联合【超详细,一网打尽】

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

2024-07-16 10:18| 来源: 网络整理| 查看: 265

如何将COMSOL与MATLAB联合

文章目录 如何将COMSOL与MATLAB联合 前言一、背景二、使用步骤1. 找到 COMSOL Multiphysics 5.5 with MATLAB2. **双击COMSOL Multiphysics 5.5 with MATLAB** 三、在matlab上控制comsol——示例有个捷径就是如果不知道想要实现的具体语句是什么的时候,**可以先在comsol实现一遍,然后在另存为.m文件。这样就可以在matlab上打开你另存的文件,找到你想要找的语句指令。** 加快计算速度结语

前言

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

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

一、背景 COMSOL 5.5MATLAB 2019aWin 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/8尽可能的将mph文件的大小降低设置单机多核并行计算模式 在这里插入图片描述 结语

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有