首页/文章/ 详情

【HyperMesh宝典】之“这个结构可以OptiStruct一下吗?”

7月前浏览2633

 本文摘要(由AI生成):

本文主要介绍了Altair OptiStruct优化,包括优化类型、设计变量、优化目标、约束条件等。文章还提到了优化结果可能五花八门,需要工程师解读并做出优秀的设计方案。此外,文章还介绍了如何使用变量关系进行优化,并提到了HyperMesh宝典系列即将结束,方老师正在考虑开设一个优化的专题,专门写如何使用优化技术解决实际问题。


上期我们粗浅涉猎了Altair HyperStudy™优化,这期该聊聊Altair OptiStruct™优化了。

优化的结果应该是五花八门的,不要期望软件给出一个独一无二的最优解,解读优化结果并做出优秀的设计方案是工程师的工作。

子曰:“知之者不如好之者,好之者不如乐之者。” 使用OptiStruct对结构进行优化探索的过程可以说是其乐无穷,不仅可以帮你更好地认识结构,还能产生设计的灵感。本讲主要是从“变量”这个视角来聊OptiStruct优化。

 


优化本质上是种数学算法,无论Altair Compose™、MATLAB、python、EXCEL都内置优化算法。OptiStruct中无论是拓扑/形貌还是形状/尺寸,实际上后台真正的优化变量都是纯数学变量。优化算法只和这些纯数学变量打交道,不同优化类型的差别在于数学变量关联的物理模型属性(单元刚度、网格位置或者厚度等)不同。优化的过程中优化变量的变化带动了有限元模型也发生了相应的变化。


简单的数学模型可以使用Compose把函数的三维曲面画出来,这样一眼就能看出最大值的位置了。帮助文档有个例子展示OptiStruct纯数学优化的例子(模型中有一个单元,那是和优化无关的),有兴趣的可以看看。

当然,HyperStudy更适合完成这类工作。模型在电脑里的位置如下:

C:\Program Files\Altair\2019\demos\hwsolvers\optistruct\examples\box.fem

使用Compose代码绘制图像是很容易的,从绘图开始学Compose也比较有趣(部分函数来自网络)。有时优化问题的最优解只有一个,比如抛物面:

 
 


有时优化问题的解会成对出现,像马鞍面:

 

大部分情况下工程优化问题都会有很多局部最优解,比如下面像喷泉样子的曲面,这时寻找全局最优解就要费点劲了(没有优化算法可以保证帮你找出全局最优解):

 
 

如果响应的非线性程度不高,变量也不是很复杂,响应有可能像下图中的多峰函数:

 
 

高度非线性的优化问题的响应面可能是这样的(通常还要复杂得多):

 
 


以上各图都只是在两个变量 + 一个响应的情况。实际工程问题基本上都有成千上万个变量和响应。既无法绘图说明,也难以直观想象,还是交给OptiStruct优化算法比较靠谱。


以上纯属开场白,方老师一讲到Compose就忘记刹车了,下面正式开始介绍OptiStruct优化相关的内容。

 


拓扑优化


大体来说大部分工程问题的解决有赖于拓扑优化。熟话说:良好的开端是成功的一半。拓扑优化就是那个开端。拓扑优化的结果和优化空间(也就是拓扑优化的变量)的定义有莫大关系。帮助文件中有一个经典例子:

 

设计变量:绿色部分单元

优化目标:最小化柔度

约束:优化区域的体积百分比≤20%

模型中红色部分是非设计区域,而且施加了1、2方向的约束。优化结果如下:

 


不能不说优化结果有种美感,而且是对称的。

也许很多人会感到奇怪,为什么优化结果中没有下图中黄色部分的材料。

 


只能说在工程问题中工程师的直觉经常是靠不住的,尤其是在动力学和高度非线性的领域。

这个例子是考验软件优化算法的一个经典考题,接下来把这个题目略加变化,让它接近工程实际。左侧施加一对力偶,两个工况单独作用。

设计变量:绿色单元

优化目标:最小化体积

约束1:右侧工况下,加载点位移≤2.5

约束2:左侧工况下,加载点位移≤1.5

 

优化结果如下:

 


可以看出右侧的结果变化不大,但是左边的结果却很不相同(因为载荷不同)。可以肯定地说要让设计工程师拍脑袋想出这个匪夷所思的设计是相当有难度的,何况这已经是极简的设计空间在极简载荷工况下的结果。所以,几乎在所有的场合都应该问一下自己:“这个结构可以OptiStruct一下吗?”

 

实际上,这两个载荷工况的作用位置可能互换。这是非常常见的,就像左侧机翼上的载荷也有可能在右侧机翼出现,所以两个机翼应该是对称的。这里我们也施加一个左右对称的制造约束,然后重新进行优化,结果如下:

 


从结果可以看出,左侧的载荷主导了结果。原因何在?看一下两个的柔度值大小就明白了。差了近1000倍。

 


实际工程中还会面临很多其它的考虑,例如某些位置是必须开孔的(比如有一根轴要通过)。对称约束升级为上下对称+左右对称。

 


优化结果变成了这样:

 


以上是二维情况下设计空间变化对优化结果的影响。如果零件是从一块大型厚钢板切出来的,情况大概就是这个样子。但是这种情况实际工程中是比较少见的,更常见的情况是使用加强筋在平板上进行加强,因为这样材料利用效率高很多。

接下来就来做这样的优化。简单起见,这里把两个载荷变成一起作用,设置优化基础厚度1(这部分不参与优化)。

 


优化约束相应调整如下:

设计变量:绿色单元

优化目标:最小化体积

约束1:右侧工况下,加载点位移≤0.08

约束2:左侧工况下,加载点位移≤0.1

优化结果如下:

 


换句话说只需要在图示位置焊接4mm厚度的加强筋即可。

如果是铸造件,使用实体单元进行优化效果更佳。优化结果如下:

 


如果是航空航天等非常在乎重量的行业,可以直接优化出lattice结构,然后通过3D打印制造。

 


局部放大图:

 


这块板子也可以用形貌优化/尺寸优化/自由尺寸优化/形状优化/自由形状优化,具体取决于应用场景、制造水平、成本限制等。


拓扑优化还可以用于确定整个结构的有无,比如焊点的有无或者是整块板的有无。下图中把筋板整体作为设计变量。

 

设计变量:所有筋板

优化目标:最小化柔度

约束1:体积百分比≤0.2

约束2:部分零件的体积≤300000

约束3:小端位移≤1.5

约束4:第5阶模态≥600


关键的设置只有如下一项,其余设置和普通拓扑优化一致。

 


局部的优化结果类似下图:

 


拓扑优化设计空间的构造在复杂3D零件上有时是比较复杂的,除了以前的几何工具之外,2019新界面还提供了几个很好用的工具,赶紧去试一下吧(自带视频帮助,这里就不演示了)。

 
 
 


对于真正复杂的情况,还可以试试Altair Evolve™和其它CAD软件。这些工作和优化本身相比都只能算脏活累活。


形貌优化


汽车、电子和很多其它行业都大量用到钣金件和塑料吹塑件。钣金件的制造特点是既可以通过拉延筋增加刚度也可以通过冲孔减重。

吹塑件一般厚度单一,但是形状可以非常复杂。帮助文件中有个水箱的例子,用带3方向对称的形貌优化一次性得到了最终设计,结果堪称完美。该汽油桶的制造方式为吹塑,优化结果基本上不需要做大的修改。另外,这个设计方案也颇具美感。形貌优化的实际操作很简单,这里略过。

 


形貌优化还经常可以和拓扑优化联合使用,因为实际制造钣金件的时候确实可以既冲出拉延筋又冲出一些孔。如果使用两步法来优化,无论先拓扑再形貌还是先形貌再拓扑的优化效果都没有联合优化的效果好。这里使用相机里面的一个钣金件作为例子说明:

 

优化类型: 拓扑+形貌

设计变量:红色 区域

优化目标: 最小化质量

约束1: 刚度不低于原始设计(测加载点位移)

约束2: 前6阶频率 > 原设计对应频率


另外,还设置了最小成员尺寸和对称约束。

工况:

6个线性静力工况:大孔中心固定,力的位置如下图;

一个模态工况:关心>0.1hz的9阶模态。

 

优化结果如下:

 
 


可以使用Altair HyperMesh™的Ossmooth工具得到比较规则的几何。然后再导入到CAD软件中进行零件设计。


尺寸优化


尺寸优化是最简单的,也是最常用的优化方法之一。具体操作可以看下面这个船舱模型的优化。

设计变量:板厚(离散变量)

优化目标: 质量最小化

约束:应力水平≤300MPa。

 




优化后得到的新尺寸如何赋给原始模型呢?在这里直接导入.prop文件并覆盖原始属性即可。

这个船体模型虽然有限元模型看起来挺庞大,但是从优化操作的层面看其实是很简单的,只是用了一下离散变量。


接下来再看一个模型简单但是优化变量彼此不互相独立的情况。

如果只希望两个属性(比如厚度)永远相同,最简单的方法就是直接在如下面板中关联到同一个变量。

 


如果希望两个变量具有某种线性关系(等差数列、等比数列都是)也很简单,只需要在如下面板中填写

 


优化结果如下:

 


如果希望是更复杂的关系,则需要自己写一个方程。例如希望一块板的厚度是另外两个板的厚度中较厚的一个值。首先,需要创建方程。

 


然后在DLINK2里面设置自变量和因变量

 
 


新的优化结果如下:

 


更加常见的情况是将变量关系用在形状变量或者梁截面变量上,方法类似,本文中不再赘述。


一维单元数量众多时创建变量比壳单元要麻烦一些。可能需要编写脚本。请看下例:

设计变量:所有梁单元的半径

优化目标: 体积最小

约束:中心位移≤15

优化前半径都是0.3,最大位移16.5。

 


优化操作很简单,不过优化建模比较麻烦,所以写了一个脚本实现:

分comp->创建属性->赋属性->创建变量->关联变量和属性

 




【HyperMesh宝典】系列还有3期就结束了。本讲只是揭开了优化的冰山一角,如果大家觉得有必要我们的方老师正考虑开一个优化的专题,专门写怎么使用优化技术解决实际问题。OptiStruct和HyperStudy优化的书也已经在写,预计在明年和大家见面。


来源:Altair澳汰尔
OptiStructHyperMesh非线性形状优化拓扑优化航空航天汽车电子MATLABpython焊接材料钣金曲面Altair
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-03-26
最近编辑:7月前
Altair澳汰尔
澳汰尔工程软件(上海)有限公司
获赞 137粉丝 464文章 737课程 4
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈