ANSYS高级分析技术指南 拓扑优化
第二章 拓扑优化
什么是拓扑优化?
拓扑优化是指形状优化,有时也称为外型优化。 拓扑优化的目标是寻找承受单载荷或多载荷的物体的最佳材料分配方案。这种方案在拓扑优化中表现为“最大刚度”设计。
与传统的优化设计不同的是,拓扑优化不需要给出参数和优化变量的定义。目标函数、状态变量和设计变量(参见“优化设计”一章)都是预定义好的。用户只需要给出结构的参数(材料特性、模型、载荷等)和要省去的材料百分比。
拓扑优化的目标——目标函数——是在满足结构的约束(V)情况下减少结构的变形能。减小结构的变形能相当于提高结构的刚度。这个技术通过使用设计变量(?i)给每个有限元的单元赋予内部伪密度来实现。这些伪密度用PLNSOL,TOPO命令来绘出。
例如,给定V=60表示在给定载荷并满足最大刚度准则要求的情况下省去60%的材料。图2-1表示满足约束和载荷要求的拓扑优化结果。图2-1a表示载荷和边界条件,图2-2b表示以密度云图形式绘制的拓扑结果。
图2-1 体积减少60%的拓扑优化示例
如何做拓扑优化
拓扑优化包括如下主要步骤: 1. 定义拓扑优化问题。 2. 选择单元类型。
3. 指定要优化和不优化的区域。 4. 定义和控制载荷工况。 5. 定义和控制优化过程。 6. 查看结果。
拓扑优化的细节在下面给出。关于批处理方式和图形菜单方式 不同的做法也同样提及。
定义拓扑优化问题
定义拓扑优化问题同定义其他线性,弹性结构问题做法一样。用户需要定义材料特性(杨氏模量和泊松比),选择合适的单元类型生成有限元模型,施加载
2-1
ANSYS高级分析技术指南 拓扑优化
荷和边界条件做单载荷步或多载荷步分析。参见“ANSYS Analysis Procedures Guides”第一、二章。
选择单元类型
拓扑优化功能可以使用二维平面单元,三维块单元和壳单元。要使用这个功能,模型中只能有下列单元类型:
二维实体单元:SOLID2和SOLID82 三维实体单元:SOLID92和SOLID95 壳单元:SHELL93
二维单元用于平面应力问题。
指定要优化和不优化的区域
只有单元类型号为1的单元才能做拓扑优化。可以使用这种限制控制模型优化和不优化的部分。例如,如果要保留接近圆孔部分或支架部分的材料,将这部分单元类型号指定为2或更大即可:
…
ET,1,SOLID92 ET,2,SOLID92 … TYPE,1
VSEL,S,NUM,,1,,2 !用这些单元划分的实体将被优化 VMESH,ALL TYPE,2
VSEL,S,NUM,,3 !用这些单元划分的实体将保持原状 VMESH,ALL …
用户可以使用ANSYS的选择和修改命令控制单元划分和类型号定义。
定义和控制载荷工况
可以在单个载荷工况和多个载荷工况下做拓扑优化。单载荷工况是最简便的。
要在几个独立的载荷工况中得到优化结果时,必须用到写载荷工况和求解功能。在定义完每个载荷工况后,要用LSWRITE命令将数据写入文件,然后用LSSOLVE命令求解载荷工况的集合。
例如,下面的输入演示如何将三个载荷工况联合做一个拓扑优化分析。 …
D,10,ALL,0,,20,1 !定义第一个载荷工况的约束和载荷 NSEL,S,LOC,Y,0 SF, ALLSEL
LSWRITE,1 !写第一个载荷工况 DDEL, SFDEL,
NSEL,S,LOC,X,0,1 D,ALL,ALL,0
2-2
ANSYS高级分析技术指南 拓扑优化
NSEL,ALL F,212,FX
LSWRITE,2 !写第二个载荷工况 …
LSWRITE,3 !写第三个载荷工况 … FINISH /SOLUTION
TOPDEF,10,3 !定义优化的参数
LSSOLVE,1,3,1 !在拓扑优化前做所有三个载荷工况求解 …
定义和控制优化过程
拓扑优化过程包括两部分:定义优化参数和进行拓扑优化。用户可以用两种方式运行拓扑优化:控制并执行每一次迭代,或自动进行多次迭代。
ANSYS有三个命令定义和执行拓扑优化:TOPDEF,TOPEXE和TOPITER。TOPDEF命令定义要省去材料的量,要处理载荷工况的数目,收敛的公差。TOPEXE命令执行一次优化迭代。TOPITER命令执行多次优化迭代。
? 定义优化参数
首先要定义优化参数。用户要定义要省去材料的百分比,要处理载荷工况的数目,收敛的公差。
命令:TOPDEF
GUI:Main Menu>Solution>-Solve-Topological opt
注——本步所定义的内容并不存入ANSYS数据库中,因此在下一个拓扑优化中要重新使用TOPDEF命令。
? 执行单次迭代
定义好优化参数以后,可以执行一次迭代。迭代后用户可以查看收敛情况并绘出或列出当前的拓扑优化结果。可以继续做迭代直到满足要求为止。如果是在GUI方式下执行,在Topological Optimization 对话框(ITER域)中选择一次迭代。
命令:TOPEXE
GUI:Main Menu>Solution>-Solve-Topological opt 下面的例子说明了如何在拓扑优化中每次执行一次迭代: …
/SOLUTION
TOPDEF,25,1 !移去25%体积并处理一个载荷工况 SOLVE !执行第一次应力分析
TOPEXE !执行第一次拓扑优化迭代 FINISH
/POST1 !进入后处理器 PLNSOL,TOP0 !画出优化结果
*GET,TIPSRAT,TOPO,,CONV !读取拓扑收敛状态 *STATUS,TOPSTAT !列表
2-3