您现在的位置:e-works > 智造书屋 > 书籍列表 > ANSYS 12.0有限元分析与范例解析 > 拓扑优化范例解析——弹性梁的拓扑优化分析

第七章 ANSYS高级分析

第四节 拓扑优化范例解析——弹性梁的拓扑优化分析

1.问题描述

图7-23表示一个承载的弹性梁。梁的两端固定,承受两个载荷工况。梁的一个面是用一类单元划分的,用于拓扑优化,另一个面是用二类单元划分的,不做优化。目标是结构柔度能量最小(每一载荷)独立计算,最后的形状使第一类单元的体积减少50%。

1
图7-23  承受两个载荷工况的梁


2.问题分析

本问题是用下列的ANSYS命令流求解的。两个载荷工况定义并用LSWRITE命令写入文件。使用ANSYS选择功能,单元SOLID82通过类型号1和2分别指定优化和不优化部分。TOCOMP命令定义问题有两个载荷工况并用参照名MCOMP,TOVAR将MCOMP定义为目标(TOVAR,VOLUME,CON,50),要求50%体积减少。TOEXE命令在本例中没有使用,代之以用TOLOOP宏命令指定最大迭代次数为12次。

优化执行后,最后的目标(柔度)和约束(体积)的历史被绘图和打印输出,最优加权柔度值由ANSYS数据库(用*GET命令)获得。

3.求解结果

图7-24表示上例的计算结果。这些结果存入top.grph文件便于后续的显示处理。如果是交互的运行ANSYS程序,将/SHOW命令删除以观看每次迭代的结果。

2
图7-24  拓扑优化结果——50%体积减少


图7-25为目标(柔度)和约束(体积)的历史图。优化结果柔度值为0.6E-0.4。

1
图7-25  目标和约束函数历史图


4.命令流文件

/PREP7     !进入前处理器
BLC4,0,0,3,1    !生成实体模型
ET,1,82     !二维实体单元,1号为优化
ET,2,82     !2号不优化
MP,EX,1,118E9    !线性各向同性材料
MP,NUXY,1,0.3
ESIZE,0.05     !较细的网格密度
TYPE,1
AMESH,ALL    !自由矩阵网格划分
NSEL,S,LOC,X,0,0.4   !选择不优化的部分
ESLN
TYPE,2
EMODI,ALL    !定义2号单元
ALLSEL
NSEL,S,LOC,X,0
D,ALL,ALL,0    !在X=0处固定
NSEL,S,LOC,X,3
D,ALL,ALL,0    !在X=3处固定
FORCE=1000    !载荷数值
NSEL,S,LOC,X,1
NSEL,R,LOC,Y,1
F,ALL,FY,FORCE    !定义第一个载荷工况
ALLSEL  
LSWRITE,1    !写第一个载荷工况
FDEL,ALL
NSEL,S,LOC,X,2
NSEL,R,LOC,Y,0
F,ALL,FY,-FORCE   !定义第二个载荷工况
ALLSEL
LSWRITE,2    !写第二个载荷工况
FDEL,ALL
TOCOMP,MCOMP,MULTIPLE,2  !定义拓扑优化的多柔度函数“MCOMP”
TOVAR,MCOMP,OBJ   !定义“MCOMP”作为拓扑目标
TOVAR,VOLUME,CON,,50  !定义“VOLUME”作为拓扑约束,50%体积
TOTYPE,OC    !指定求解方法
TODEF     !初始化拓扑优化过程
/SHOW,topo,grph    !将图形输出到文件(在交互下删除本命令)
/DSCALE,,OFF
/CONTOUR,,2
TOLOOP,12,1    !执行不多于12次迭代
FINISH
TOGRAPH,OBJ    !绘制最后目标(柔度)的历史
TOGRAPH,CON    !打印最后目标(柔度)的历史
TOPRINT,CON    !打印最后约束(体积)的历史
*GET,TITER,TOPO,,ITER   !得到迭代次数
*GET,COMP,TOPO,TITER-1,TOHO !得到最后柔度值