学习心得——Comsol 之优化

本文通过实例介绍如何在COMSOL中实现优化计算,解决一个实际问题:确定杯内液体的温度阈值,以避免手持时感到过热。文中详细介绍了设置过程及选择不同优化算法的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

引言

首先,接上一篇https://zhuanlan.zhihu.com/p/585886012开个头。此算例笔者有个寻优问题:找到一个内层恒温值的临界值让外壳的最大温度不能超过315K,因为这个温度会让人觉得烫手,转化为生活问题就是,这个杯子里面装的液体温度超过多少就会让人觉得烫手。

优化分类

上个博客是采用COMSOL Multiphysics with MATLAB的方式编写matlab脚本使用二分法进行优化,计算出的结果是液体温度超过76.9[degC]时,杯子拿起来就会觉得烫手。这里用comsol自身的优化算法进行计算,不借助于其它软件联合仿真。关于comsol的寻优,如果从建模思路分类有三种:1.在物理场里直接加全局方程(只能算简单的、一个变量);2.在组件里加优化模块+研究里加优化;3.直接在研究里加优化。从优化问题类型来分:1.参数优化;2.形状优化;3.拓扑优化,当然,也可进行参数估计。

全局方程需勾选

全局方程需勾选

物理场和研究里优化

参数估计

comsol自带优化功能解决

这里解决引言里的问题,不借助matlab。

首先,设置个最大值算子。

然后,设置个求外壳最大温度的变量。

然后,设置内壁温度控制变量。

然后,在物理场里把控制变量赋到内壁温度。

然后,组件里添加优化模块并设置全局目标。

然后,在研究里添加优化,选个无梯度的算法Nelder-Mead,同时设置下控制变量的初值和上下限以减少迭代时间。

最后,开始计算。结算结束后派生值里设置全局计算,计算出内壁的温度,结果为76.900[degC]。

至此计算结束,关于各个优化算法下面叙述。

优化算法

根据官方材料,迭代算法分两类,一类是基于梯度的,一类是无梯度的。基于梯度的有:Levenberg-Marquardt、SNOPT、MMA;无梯度的有:坐标查找(南北西东)、Monto-Carlo(随机)、Nelder-Mead(三角形)、BOBYQA(侦察兵带椭圆)和COBYLA。无梯度的鲁棒性强,计算慢;基于梯度的对方程要求高,计算快,至于优化算法的选择,可见官方视频使用 COMSOL® 软件进行设计优化

同时在发布在学习心得——Comsol 之优化 - 知乎

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值