学习心得——COMSOL Multiphysics with MATLAB联合仿真及寻优计算

谈谈comsol和matlab联合仿真的学习心得,首先comsol和matlab有API,这个接口封装的界面暂时觉得较大用处是copy里面的变量,而最重要的是笔者觉得是能通过脚本进行寻优等一些计算。这里以一个算例来说——Vacuum Flask。

物理背景

如下图,这是个保温瓶,有三种材料,最里面和最外面是钢,中间是泡沫,而上面的是尼龙软木塞,瓶子里面假设是装满液体保持恒温,同时上方有空气。至于边界条件的设置,里面是恒温,底部是热绝缘,而外层是自然对流的热通量。

三种材料填充

几何设置

这里是导入了个.dxf文件。

 材料设置

此算例的材料都可从内置的材料里选择,三种,钢、泡沫和空气。只有泡沫的导热系数需要自己设置,一个与温度有关的函数,此函数在matlab的脚本里。

物理场设置

重要的一点是,外壳与空气的对流换热系数,这是一个与温度、环境温度和特征长度有关的变量。此变量也调用了matlab脚本里的函数。

 

其它设置

至于网格、求解器都为默认,问题不大。

与matlab的联合

首先是用到的相关函数的脚本需要写好,然后和.mph等相关的文件放在一个文件夹下,注意.m文件的调用需要这些文件的绝对路径都是英文,不然调用不到会报错,然后在模型里调用函数。因为求解器在迭代时需要用到偏导数,因此,函数的偏导数也需要写在脚本里。

偏导数

此外,打通comsol和matlab之间的通讯需要的操作如下步骤(进行以下步骤前建议把所有相关文件放在一个绝对路径是英文的文件夹里):

1.运行COMSOL Multiphysics 5.6 with MATLAB,此时matlab会自动打开,同时也会出现一个matlab的命令窗口;

 2.在matlab打开comsol模型.mph;

3.此时工作区会有model,证明两个软件已经能进行交互了;

 4.可以通过API对.mph进行设置,也可通过matlab对模型进行设置,如果想实时看到.mph里的变化,可以在matlab命令窗口输入命令mphlaunch打开mph模型,这样在matlab进行的修改,就会在comsol里实时看到变化。

其它的一些想法

这里笔者给这个模型想了个寻优的问题:找到一个内层恒温值的临界值让外壳的最大温度不能超过315K,因为这个温度会让人觉得烫手,转化为生活问题就是,这个杯子里面装的液体温度超过多少就会让人觉得烫手。那么,这个问题就可以通过matlab和comsol的联合仿真进行寻优得以解决,我想不用matlab介入,直接用comsol也能解决,欢迎读者交流思路,这里就展示下使用联合仿真用二分法的寻优思路。

1.因为目标函数与自变量是单调的,可用二分法,从外避加个边界探针求最大值;

 2.编写个二分法的脚本,用matlab运行脚本;

 3.结果如下,液体温度超过76.9[degC]时,杯子拿起来就会觉得烫手。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值