找回密码
 立即注册
查看: 348|回复: 0

学习心得——Comsol 之优化

[复制链接]
发表于 2022-12-12 08:27 | 显示全部楼层 |阅读模式
引言

首先,接上一篇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 软件进行设计优化。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 22:51 , Processed in 0.090861 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表