第二章 拓扑优化.docx
《第二章 拓扑优化.docx》由会员分享,可在线阅读,更多相关《第二章 拓扑优化.docx(13页珍藏版)》请在冰点文库上搜索。
第二章拓扑优化
第二章拓扑优化
什么是拓扑优化?
拓扑优化是指形状优化,有时也称为外型优化。
拓扑优化的目标是寻找承受单载荷或多载荷的物体的最佳材料分配方案。
这种方案在拓扑优化中表现为“最大刚度”设计。
与传统的优化设计不同的是,拓扑优化不需要给出参数和优化变量的定义。
目标函数、状态变量和设计变量(参见“优化设计”一章)都是预定义好的。
用户只需要给出结构的参数(材料特性、模型、载荷等)和要省去的材料百分比。
拓扑优化的目标——目标函数——是在满足结构的约束(V)情况下减少结构的变形能。
减小结构的变形能相当于提高结构的刚度。
这个技术通过使用设计变量(i)给每个有限元的单元赋予内部伪密度来实现。
这些伪密度用PLNSOL,TOPO命令来绘出。
例如,给定V=60表示在给定载荷并满足最大刚度准则要求的情况下省去60%的材料。
图2-1表示满足约束和载荷要求的拓扑优化结果。
图2-1a表示载荷和边界条件,图2-2b表示以密度云图形式绘制的拓扑结果。
图2-1体积减少60%的拓扑优化示例
如何做拓扑优化
拓扑优化包括如下主要步骤:
1.定义拓扑优化问题。
2.选择单元类型。
3.指定要优化和不优化的区域。
4.定义和控制载荷工况。
5.定义和控制优化过程。
6.查看结果。
拓扑优化的细节在下面给出。
关于批处理方式和图形菜单方式不同的做法也同样提及。
定义拓扑优化问题
定义拓扑优化问题同定义其他线性,弹性结构问题做法一样。
用户需要定义材料特性(杨氏模量和泊松比),选择合适的单元类型生成有限元模型,施加载荷和边界条件做单载荷步或多载荷步分析。
参见“ANSYSAnalysisProceduresGuides”第一、二章。
选择单元类型
拓扑优化功能可以使用二维平面单元,三维块单元和壳单元。
要使用这个功能,模型中只能有下列单元类型:
二维实体单元:
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
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:
MainMenu>Solution>-Solve-Topologicalopt
注——本步所定义的内容并不存入ANSYS数据库中,因此在下一个拓扑优化中要重新使用TOPDEF命令。
•执行单次迭代
定义好优化参数以后,可以执行一次迭代。
迭代后用户可以查看收敛情况并绘出或列出当前的拓扑优化结果。
可以继续做迭代直到满足要求为止。
如果是在GUI方式下执行,在TopologicalOptimization对话框(ITER域)中选择一次迭代。
命令:
TOPEXE
GUI:
MainMenu>Solution>-Solve-Topologicalopt
下面的例子说明了如何在拓扑优化中每次执行一次迭代:
…
/SOLUTION
TOPDEF,25,1!
移去25%体积并处理一个载荷工况
SOLVE!
执行第一次应力分析
TOPEXE!
执行第一次拓扑优化迭代
FINISH
/POST1!
进入后处理器
PLNSOL,TOP0!
画出优化结果
*GET,TIPSRAT,TOPO,,CONV!
读取拓扑收敛状态
*STATUS,TOPSTAT!
列表
/SOLUTION
SOLVE!
执行第二次应力分析
TOPEXE!
执行第二次拓扑优化迭代
FINISH
/POST1
…
TOPEXE的主要优点是用户可以设计自己的迭代宏进行自动优化循环和绘图。
在下一节,可以看到TOPITER命令是一个ANSYS的宏,用来执行多次优化迭代。
•自动执行多次迭代
在定义好优化参数以后,用户可以自动执行多次迭代。
在迭代完成以后,可以查看收敛情况并绘出或列出当前拓扑形状。
如果需要的话,可以继续执行求解和迭代。
TOPITER命令实际是一个ANSYS的宏,可以拷贝和定制(见APDLProgrammer’sGuide)。
命令:
TOPITER
GUI:
MainMenu>Solution>-Solve-Topologicalopt
下面的例子说明了如何使用TOPITER宏执行多次迭代:
…!
定义并写第一个载荷工况
LSWRITE
…!
定义并写第二个载荷工况
LSWRITE
…!
定义并写第三个载荷工况
LSWRITE
…
TOPDEF,80,3,.001!
80%体积减少,3个载荷工况
…0.001为收敛公差
/DSCALE,,OFF!
关闭形状改变
/CONTOUR,,3!
每次显示3个轮廓数值
TOPITER,20,1!
最大20次迭代。
每次迭代求解并绘出
…结果
每次迭代执行一次LSSOLVE命令,一次TOPEXE命令和一次PLNSOL,TOPO显示命令。
当收敛公差达到(用TOPDEF定义)或最大迭代次数(用TOPITER定义)达到时优化迭代过程终止。
查看结果。
拓扑优化结束后,ANSYS结果文件(Jobname.RST)将存储优化结果供通用后处理器使用。
用户可以使用后面提到的后处理命令。
要得到更详细的信息,请查阅ANSYSCommandsReference或ANSYSBasicAnalysisProceduresGuide第五章。
要列出结点解和/或绘出伪密度,使用PRNSOL和PLNSOL命令的TOPO变量。
要列出单元解和/或绘出伪密度,使用PLESOL和PRESOL命令的TOPO变量。
可以使用ANSYS表格功能查看结果:
ETABLE,EDENS,TOPO
PLETAB,EDENS
PRETAB,EDENS
ESEL,S,ETAB,EDENS,0.9,1.0
EPLOT
要查看最近(最后一次迭代)的收敛情况和结构变形能,使用*GET命令:
*GET,TOPCV,TOP0,,CONV!
如果TOPCV=1(收敛)
*GET,ECOMP,TP0,,COMP!
ECOMP=变形能
*STAT
二维多载荷优化设计示例
在本例中,对承受两个载荷工况的梁进行拓扑优化。
问题描述
图2-2表示一个承载的弹性梁。
梁两端固定,承受两个载荷工况。
梁的一个面是用一号单元划分的,用于拓扑优化,另一个面是用二号单元划分的,不作优化。
最后的形状是单元1的体积减少50%。
图2-2承受两个载荷工况的梁
本问题是用下列的ANSYS命令流求解的。
两个载荷工况定义并用LSWRITE命令写入文件。
使用ANSYS选择功能,单元SOLID82通过类型号1和2分别指定优化和不优化的部分。
TOPDEF命令定义问题有两个载荷工况并要求50%体积减少。
TOPEXE命令在本例中没有使用,代之以用TOPITER宏命令指定最大迭代次数为12次。
/TITLE,A2-d,multiple-loadexampleoftopologicaloptimization
/PREP7
BLC4,0,0,3,1!
生成实体模型(3X1矩形)
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
TOPDEF,50,2!
定义拓扑优化有两个载荷工况
/SHOW,topo,grph!
将图形输出到文件(在交互方式下删除本命令)
/DSCALE,,OFF
/CONTOUR,,2
TOPITER,12,1!
执行不多于12次迭代
FINISH
求解结果
图2-3表示上例的计算结果。
这些结果存入top.grph文件便于后续的显示处理。
如果是交互地运行ANSYS程序,将/SHOW命令删除以观看每次迭代的结果。
图2-3拓扑优化结果——50%体积减少
一些说明
●结果对载荷情况十分敏感。
很小的载荷变化将导致很大的优化结果差异。
●结果对网格划分密度敏感。
一般来说,很细的网格可以产生“清晰”的拓扑结果,而较粗的网格会生成“混乱”的结果。
但是,较大的有限元模型需要更多的收敛时间。
●在一些情况下会得到珩架形状的拓扑结果。
这通常在用户指定很大的体积减少值和较细的网格划分时出现。
很大的体积减少值如80%或更大(TOPDEF命令)。
●如果有多个载荷工况时,有多种方式将其联合进行拓扑优化求解。
例如,考虑有五个载荷工况的情况。
可以选择使用五个单独的拓扑优化分析过程,也可以使用包括这五个工况的一次拓扑优化分析。
还有,也可以将这五个工况合成为一个工况,然后做一次优化。
综合起来,可以有七个不同的拓扑优化求解:
5独立的拓扑优化求解(每个工况一次)
1拓扑优化求解针对五个工况
1拓扑优化求解针对一个联合工况
附加的结果或结果的组合都是可用的。
●结果对泊松比敏感但对杨氏模量不敏感。
但是,随泊松比变化的效果不明显。
●TOPDEF和TOPITER命令中的指定值并不存储在ANSYS数据库中;因此,用户必须在每次拓扑优化时重新指定优化目标和定义。
例题:
(还未做)
/TITLE,2-DTwo-Storyreinforcementproblem-Maximizefundamentalfrequency
A=0.25 !
PrepareModel
B=5
C=0.375
D=8
E=3.75
/PREP7
K,1
K,2,C
K,3,C+A
K,4,B/2
K,5,,E
K,6,C,E
K,7,C+A,E
K,8,B/2,E
KSEL,S,,,5,8
KGEN,2,ALL,,,,A
KSEL,S,,,9,12
KGEN,2,ALL,,,,E
KSEL,S,,,13,16
KGEN,2,ALL,,,,A
ALLSEL
A,1,2,6,5
A,5,6,10,9
A,9,10,14,13
A,13,14,18,17
A,2,3,7,6
A,6,7,11,10
A,10,11,15,14
A,14,15,19,18
A,3,4,8,7
A,7,8,12,11
A,11,12,16,15
A,15,16,20,19
ET,1,82 !
Definetwoelementtyperegions
ET,2,82 !
1-optimizedregion
ASEL,S,,,4,8 !
2-non-optimizedregion
ASEL,A,,,10,12,2
TYPE,2
ESIZE,0.1
AMESH,ALL
ASEL,INVE
TYPE,1
AMESH,ALL
ALLSEL
MP,EX,1,100 !
Materialofstructure
MP,NUXY,1,0.3
MP,DENS,1,1.0D-6
MP,EX,2,100 !
Materialofconcentratedmasses
MP,NUXY,2,0.3
MP,DENS,2,5.0D-6
ASEL,S,,,6,8,2
ESLA,S,1
EMODIF,ALL,MAT,2 !
Defineconcentratedmasses
ALLSEL
LOCAL,11,0,2.5
ARSYM,X,ALL !
Fullmodel
NUMM,KP
NUMM,ELEM
NUMM,NODE
LSEL,S,,,14
LSEL,A,,,45
NSLL,S,1
D,ALL,ALL
ALLSEL
FINISH
TOFREQ,FREQ1,SING,1 !
Definesinglefrequencyfunction(1st)
TOVAR,FREQ1,OBJ !
Defineobjectivefortopologicaloptimization
TOVAR,VOLUME,CON,,14,ACTUAL!
Definevolumeconstraint(upperbound=14)
TOTYPE,SCP !
SelectSCPsolutionapproach
TODEF,0.00001, !
Initializetopologicaloptimizationprocess,
accuracy=0.00001
TOLOOP,40,1 !
Performupto40iterations
FINISH
TOPLOT,1 !
Plotfinalpseudo-densities
TOGRAPH,OBJ !
Graphfinalobjective(1stfrequency)history
TOGRAPH,CON !
Graphfinalconstraint(volume)history
拓扑优化理论及在ANSYS软件中的实现
一.拓扑优化概论:
连续体结构的拓扑优化设计是继结构的尺寸优化设计和形状优化设计之后,在结构优化领域出现的一种富有挑战性的研究方向,它是一种比尺寸优化和形状优化更高层次的优化方法,也是结构优化问题中最为复杂的一类问题。
拓扑优化处于结构的概念设计阶段,其优化结果是一切后续设计的基础。
因而在初始设计阶段需要确定结构的最佳拓扑形式。
拓扑优化的目的是寻求结构的刚度在设计空间最佳的分布形式,或在设计域空间需求结构最佳的传力路线,以优化结构的某些性能或减轻结构的重量。
目前对于拓扑优化的研究主要集中在以下几个方面:
结构拓扑描述方式和材料插值模型;
拓扑优化中结构拓扑描述方式和材料的插值模型非常重要,是一切后续拓扑优化工作的基础。
常用的拓扑描述方式和材料插值模型有均匀化方法、密度法、变厚度法和拓扑函数描述法等。
拓扑优化求解数值算法,新型优化算法在拓扑优化中的应用;
拓扑优化的数值计算方法主要包括有限元法和无网格法,基于成熟的有限元理论的拓扑优化格式简单,便于实现,但在优化过程中常因网格的重分和细化导致计算困难,结构中常出现中间密度材料、棋盘格现象和网格依赖性等问题。
无网格法是最近发展的一种新型数值求解技术,摆脱了有限元繁琐的网格生成过程,从理论上看比有限元法拥有更广阔的应用前景,但目前尚处于发展和完善中。
拓扑优化的特点是:
设计变量多,计算规模大,目标函数和约束函数一般为设计变量的非线性、非单调函数。
目前应用于连续体结构拓扑优化计算的优化算法主要包括两类:
优化准则法和序列凸规划法。
去除优化过程中数值计算不稳定的方法,优化结果的提取和重构;
拓扑优化中经常出现的数值计算问题有:
多孔材料、棋盘格现象、网格依赖性和局部极值问题。
优化结果的提取和应用主要考虑的是如何将优化的结果转化为可用的CAD模型问题,实现CAE和CAD之间的数据共享和交流。
随着拓扑优化理论研究的不断深入,拓扑优化在航空和汽车领域已开始得到初步的应用,主要是通过拓扑优化获得结构的最初拓扑形式,并在最初拓扑形式的基础上进行相关的后续优化设计。
解决的问题范围包括:
线弹性静态结构优化问题、动力优化问题及非线性等复杂情况下的优化问题。
二.ANSYS中拓扑优化相关理论及应用:
ANSYS中拓扑优化技术采用的是均匀化方法,具有优化准则法和序列凸规划两种优化算法。
1.均匀化方法:
均匀化方法是一种经典的拓扑优化方法,有着严密的数学和力学理论基础。
连续体结构拓扑优化的均匀化方法(HomogenizationMethodforOptimization)是Bendsoe等人于1988年提出的。
其基本思想是:
在组成拓扑结构的材料中引入细观结构,以宏观解结构单元模型对设计区域进行有限元离散划分,用周期性细观结构来描述宏观单元,优化过程中以细观结构的几何尺寸作为设计变量,把弹性模量、材料密度等参量表示成细观结构几何尺寸变量的函数。
以细观结构的消长实现材料的增减。
并产生介于由中间尺寸细观结构组成的复合材料,从而实现结构拓扑优化模型与尺寸优化模型的统一。
它将复杂的拓扑优化问题挂靠在低层次的尺寸优化变量问题上来求解,但求解过程中均匀化弹性张量计算非常复杂,且微单元的最佳形状和方向难以确定,结构响应函数的密度求解复杂,优化变量过多,计算效率低等缺点,主要用于拓扑优化理论方面的研究。
2.优化算法:
目前应用于连续体结构拓扑优化计算的优化算法主要包括两类:
优化准则法和序列凸规划法。
优化准则法收敛速度快,计算过程不使用导数信息,但其一般适用于单约束条件下的问题优化,且不同的优化问题需要推导不同的优化准则。
序列凸规划算法包括序列线性规划方法、序列二次规划算法以及移动近似算法,其中移动近似算法(MMA)是目前使用最为广泛的算法之一,能够广泛应用于多约束情况,其计算过程中要使用前一步或多步的计算信息。
3.应用:
ANSYS中的拓扑优化工具可用来解决以下问题:
(1)体积约束下的最大刚度设计:
以柔顺度为目标函数,体积为约束函数;
(2)刚度约束下的最小体积优化:
以体积为目标函数,刚度为约束函数;
(3)体积约束下的最大动刚度设计:
以n阶自振频率为目标函数,体积为约束函数;
(4)以上多种工况的组合优化问题;