首页/文章/ 详情

用脚本实现对拓扑优化结果体积分数的精确控制

8月前浏览1270
之前的这篇文章10分钟学会拓扑优化(Simlab+Optistruct)中,我们和大家分享了如何快速的用Simlab做一个晶格的拓扑优化,以用于一些轻量化的场景。
观看的人很多,看来大家都会拓扑优化有浓厚的兴趣。但是也有读者朋友反馈到,当他想把优化的晶格用到实际项目中时,发现仿真结果并不是精确的对应到设置的孔隙率的(例如:孔隙率为80%,即体积分数为20%,但实际导出的结果经过测量,只有16%的体积分数)。
如下图所示:
仿真结果,体积分数偏离目标值

我们提供了一个基于TCL语言的脚本 auto_lattice-final.tcl,它利用二分法的迭代搜索逻辑,实现了对最终优化结果体积分数的精确控制。

     

     

     

体积分数=10%        

体积分数=20%        

体积分数=30%        

使用脚本后,体积分数=目标值

*基本原理

这个脚本的核心循环运用二分法来寻找一个合适的 vf 值,以使生成模型的体积逼近目标体积。

  1. 计算中值 vf: 在每次迭代开始时,vf 被计算为当前搜索区间 [min_vf, max_vf] 的中点。

  2. 几何生成与体积测量: 使用这个 vf 值通过 HyperMesh 命令生成对应的几何模型,并测量其体积 vol。

  3. 区间调整:

    • 如果 vol 小于 target_vol,说明当前 vf 值过高(材料去除过多)。此时,将搜索区间的上限 max_vf 更新为当前的 vf。

    • 如果 vol 大于 target_vol,说明当前 vf 值过低(材料去除不足)。此时,将搜索区间的下限 min_vf 更新为当前的 vf。

  4. 收敛判断: 循环继续,直到测量体积 vol 与目标体积 target_vol 的差值在预设容差范围内,或达到最大迭代次数。


*脚本使用说明

运行该脚本需要您已经完成了 OptiStruct 的拓扑优化计算,并获得了 .fem 和 .sh 文件。

步骤一:文件准备

将 auto_lattice-final.tcl与拓扑优化结果文件(.fem 和 .sh 文件)放置在同一个文件夹内。

步骤二:修改脚本文件名(如有必要)

在 auto_lattice-final.tcl开头,找到 set base_name "ECC_03" 一行。如果优化结果文件基础名不是 ECC_03,请修改此处的名称,使其与你的文件名一致。

步骤三:运行脚本

在 HyperMesh 的Tcl 命令窗口中,使用 source 命令运行该脚本:

步骤四:输入目标参数

脚本运行后会弹出一个对话框,请在其中输入您期望的目标体积分数(Target Volume Fraction),例如 0.2

程序将自动开始迭代计算。当控制台输出 Converged successfully! 时,当前加载的模型即为满足您体积分数要求的最终拓扑优化结构。




来源:水木人CAE
ACTLS-DYNAOptiStructHyperMeshSimLab拓扑优化二次开发光学电子爆炸材料控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-12-27
最近编辑:8月前
水木人CAE
硕士 | R&D仿真部门经... 做一个有趣的工程师
获赞 83粉丝 84文章 80课程 9
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈