本文摘要(由AI生成):
这篇文章主要介绍了自由形状优化的概念、应用场景、算法分类以及具体实例,同时还阐述了自由形状优化与形状优化的区别与联系,并强调了自由形状优化在解决应力集中问题方面的优势。文章首先展示了简单模型并提供了下载链接方便读者实际操作,然后分别从形状优化和自由形状优化两个方面进行了详细阐述,介绍了两种优化算法的不同特点和适用场景,并通过具体实例展示了自由形状优化在解决应力集中问题方面的有效性。
本文模型主要使用如下图所示简单模型:
大家可以先下载模型跟着教程一步一步操作体验。
形状优化与自由形状优化
所谓自由形状是和形状优化比较而言的,自由形状优化节点变形的形式更加自由。进行形状优化的时候需要事先创建形状变量,优化算法的优化对象就是每个形状变量的系数。最终的优化结果只能是原始网格位置与各个形状的线性叠加。
拿下面这张图来说,蓝色内圈是原始网格边界,左图外圈红线是网格变形创建的形状变量的最远处。如果形状变量的范围是 [0, 1],那么最终优化结果的网格位置只能是蓝圈和红圈之间某个位置的一个圆。自由形状优化的每个节点都可以随意运动。
打个比方,形状优化就像计划经济,自由形状优化就像市场经济。
自由形状优化最常用的场景是解决应力集中问题,当然,也可以用于别的场合。
Altair OptiStruct™
自由形状优化算法:
classic 和 vertex morphing
Altair OptiStruct™ 自由形状优化算法分 classic 和 vertex morphing 两类,vertex morphing 方法自由度更大,但是计算量也会随之大幅度增加,而且 vertex morphing 方法目前还是 beta 版本,使用时需谨慎。
对于2D单元:
classic 方法中的变量只能是自由边上的节点。节点可以沿着 2D 单元自由边法向移动。
vertex morphing 方法中的变量可以是任意节点,面内的节点的运动方向是单元法向,外侧节点可以沿着 2D 单元自由边法向移动。
以下动画是一个2D自由形状变量的例子:
对于3D单元:
classic 和 vertex morphing 方法中的节点变量都只能是外表面的节点(自动忽略内部节点),而且都只能沿着外表面的法向运动。
以下动画是 3D 自由形状优化的一个例子:
接下来我们通过具体的例子来说明用法。
例1 内外边界节点优化
(classic 方法)
优化三要素
设计变量 | 内外边界节点 |
目标 | 最小化最大应力 |
约束 | 体积不增加 |
变量节点位置如下图所示,限制四个角点只能沿着y轴方向移动。
01
优化结果
体积 | 最大应力 | |
优化前 | 1.52E+07 | 59.1 |
优化后 | 1.49E+07 | 27.3 |
02
优化迭代动画
03
操作视频
例2 内外边界节点优化
(vertex 方法)
本例中将节点移动的最远距离通过 2D 单元进行限制,这些单元需要设置为 BMFACE 单元类型。
01
优化前的应力分布
02
优化后的应力分布
03
变形结果
04
优化结果
体积 | 最大应力 | |
优化前 | 1.49641E+07 | 29 |
优化后 | 1.74213E+07 | 2.9 |
(对,你没有看错,应力变成了10%!)
例3 实体网格优化
(vertex 方法)
工况和 2D 模型类似,为了应力级别一致修改了力的大小。设置两个表面的节点作为自由形状优化的设计变量。限制边界上的节点只能沿着厚度方向运动。
01
优化前应力
02
优化后应力
03
优化后形状的截面图(1/4模型)
04
优化结果
体积 | 最大应力 | |
优化前 | 2.39E+08 | 30.6 |
优化后 | 2.40E+08 | 17.4 |
05
操作过程
拓展:根据制造要求施加
挤压约束、拔模约束、对称约束
01
挤压约束施加方法
02
自由形状变量
自由形状变量为下图中的节点,左侧箭头为挤压约束方向。限制边界上的节点只能沿着厚度方向运动。
设置好的模型文件为:
freeshape3D_ext_done.hm
03
优化结果
体积 | 最大应力 | |
优化前 | 2.39480E+08 | 30.6 |
优化后 | 2.39792E+08 | 21.7 |
04
优化前的应力
05
优化后的应力
计划和市场都是调节经济的手段,计划经济中可以有市场,形状和自由形状都是优化的手段,自由形状优化和形状优化也是可以同时使用的。
同时创建
形状变量和自由形状变量
比如下图中的零件既希望改变厚度(单一厚度)又希望同时进行变形形状的优化。可以同时创建形状变量和自由形状变量。
01
自由形状变量的节点
02
形状变量
形状变量仅仅是为了改变半径件的厚度。形状变量请参考:
03
优化控制选项
这个例子中的形状变量使用了离散变量,使用默认的优化算法时形状变量可能会不起作用,这时需要加一个优化控制选项:
04
优化结果中
由形状变量导致的形状改变
05
优化结果中
由自由形状变量导致的形状改变
06
操作视频
模型文件:
transport-shackle-start.hm
transport-shackle-done.hm