结构拓扑优化的发展现状及未来王超中国北方车辆研究所一、历史及发展概况结构拓扑优化是近20年来从结构优化研究中派生出来的新分支,它在计算结构力学中已经被认为是最富挑战性的一类研究工作。目前有关结构拓扑优化的工程应用研究还很不成熟,在国外处在发展的初期,尤其在国内尚属于起步阶段。1904年Michell在桁架理论中首次提出了拓扑优化的概念。自1964年Dorn等人提出基结构法,将数值方法引入拓扑优化领域,拓扑优化研究开始活跃。20世纪80年代初,程耿东和N.Olhoff在弹性板的最优厚度分布研究中首次将最优拓扑问题转化为尺寸优化问题,他们开创性的工作引起了众多学者的研究兴趣。1988年Bendsoe和Kikuchi发表的基于均匀化理论的结构拓扑优化设计,开创了连续体结构拓扑优化设计研究的新局面。1993年Xie.Y.M和Steven.G.P提出了渐进结构优化法。1999年Bendsoe和Sigmund证实了变密度法物理意义的存在性。2002年罗鹰等提出三角网格进化法,该方法在优化过程中实现了退化和进化的统一,提高了优化效率。二、拓扑优化的工程背景及基本原理通常把结构优化按设计变量的类型划分成三个层次:结构尺寸优化、形状优化和拓扑优化。尺寸优化和形状优化已得到充分的发展,但它们存在着不能变更结构拓扑的缺陷。在这样的背景下,人们开始研究拓扑优化。拓扑优化的基本思想是将寻求结构的最优拓扑问题转化为在给定的设计区域内寻求最优材料的分布问题。寻求一个最佳的拓扑结构形式有两种基本的原理:一种是退化原理,另一种是进化原理。退化原理的基本思想是在优化前将结构所有可能杆单元或所有材料都加上,然后构造适当的优化模型,通过一定的优化方法逐步删减那些不必要的结构元素,直至最终得到一个最优化的拓扑结构形式。进化原理的基本思想是把适者生存的生物进化论思想引入结构拓扑优化,它通过模拟适者生存、物竞天择、优胜劣汰等自然机理来获得最优的拓扑结构。三、结构拓扑优化设计方法目前常使用的拓扑优化设计方法可以分为两大类:退化法和进化法。退化法即传统的拓扑优化方法,一般通过求目标函数导数的零点或一系列迭代计算过程求最优的拓扑结构。目前常用于拓扑优化的退化法有基结构方法、均匀化方法、变密度法、变厚度法等。基结构方法(GSA)的思路是假定对于给定的桁架节点,在每两个节点之间用杆件连结起来得到的结构称为基结构。按照某种规则或约束,将一些不必要的杆件从基本结构中删除,认为最终剩下的构件决定了结构的最佳拓扑。基结构方法更适合于桁架和框架结构的拓扑优化。基结构法是在有限的子空间内寻优,容易丢失最优解,另外还存在组合爆炸、解的奇异性等问题。均匀化方法(HA)引入微结构的单胞,通过优化计算确定其材料密度分布,并由此得出最优的拓扑结构。均匀化方法主要应用于连续体的拓扑优化设计,它不仅能用于应力约束和位移约束,也能用于频率约束。目前用均匀化方法来进行拓扑优化设计的有一般弹性问题、热传导问题、周期渐进可展曲面问题、非线性热弹性问题、振动问题和骨改造问题等。变密度法是一种比较流行的力学建模方式,与采用尺寸变量相比,它更能反映拓扑优化的本质特征。通常,单元密度与弹性模量之间的关系采用人为给出的幂函数规律,例如EEn)(或者ECEr)(,亦有采用的有理分式或者E1和E0的组合形式,例如:EE3/23/2)1(2)1(1)(,0013/2010/)1)((1)()(EEEEEEE。目前已有研究将变密度法应用于卧式千斤顶以及磁场等拓扑优化设计中,取得了一定的成效。另外,人们对变密度法的不足加以改进,研究出SIMP法以及能量法则等方法,提高了计算能力及应用水平。变厚度法采用满应力法,进行有限元分析得到的各单元在节点处的Misses相当于应力,将围绕每一节点i的所有单元在节点i处应力的加权平均值作为接点i的应力σi。通过迭代不断改变各节点处的厚度使其应力趋近最大的允许值,达到满应力的设计目的。当节点处的厚度低于事先设定值时,节点即被删除。进化法是一类全局寻优方法,目前常用于拓扑优化的进化法主要有遗传算法、模拟退火算法和渐进结构优化法等。遗传算法(GA)是一种新型的基于遗传进化机理的寻优技术,它通过选择、交叉、变异等过程可使群体性能趋于最佳,从而获得全局最优解。作为拓扑优化设计方法之一,GA主要应用于建筑结构优化方面,如桁架结构优化设计、抗震结构智能优化设计等。近几年出现的改进GA法,如自适应GA的研究和复合型GA,使GA法得到进一步发展。模拟退火算法(SA)的思想源于固体退火过程:固体在加温时,其内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡状态,最后在常温时达到基态,内能减为最小。SA法是最近十年来才应用于拓扑优化的,应用得比较广泛的是桁架的拓扑优化,最近几年将非线性问题转化为多目标SA法的研究也取得一定的进展,SA法适合解决比较复杂的问题。渐进结构优化法(ESO法)的基本概念很简单,即通过将无效的或低效的材料一步步去掉,结构也将逐步趋于优化。可用ESO法优化的结构为桁架、刚架、板壳或三维连续体等,优化的约束条件包括应力、刚度、位移、频率、临界压力及动响应力等。目前ESO法已被成功应用于热应力优化、热传导优化、触应力优化、可变荷载结构优化以及机床床身的优化等。四、拓扑优化设计方法比较1)用于拓扑优化的优化算法比较目前拓扑优化设计方法常采用的优化算法主要有两类:优化准则法(OC)和数学规划法(MP)。拓扑优化中常用的OC法是满应力准则法,其最大的特点是收敛速度快,要求重分析的次数一般跟设计变量的数目关系不大。拓扑优化中常用MP法是移动渐进算法(MMA法)。对单约束拓扑优化问题,算法一般选用优化准则法;对模型中包含多约束情况或多工况的拓扑优化问题,优化准则法的推导过程复杂,计算和更新拉格朗日乘子比较麻烦,这时应优先选用MP法。2)几种主要退化法比较基结构方法中的应力的不连续性会引起奇异最优解现象。基结构方法更适合于桁架和框架结构的拓扑优化。均匀化方法不仅能用于应力约束、位移约束,也能用于频率约束,但其设计变量多,敏度计算复杂,优化后的结构常常含有多孔质材料。变密度法基于各向同性材料,程序实现简单,计算效率高。但是有一点需要说明:它是人为假设的,甚至是基于经验的。3)几种主要进化法比较遗传算法不受初始值的影响,其缺点是搜索时间过长、易发生早熟收敛等;模拟退火算法具有较强的全局搜索能力,但它存在着最后结果可能比中间结果差的问题。渐进结构优化法简单通用,但收敛性较差,且优化过程中误删除单元后不能再恢复,双向拓扑优化法则可以弥补此不足。4)退化法和进化法之间的比较退化法一般通过求目标函数导数的零点或一系列迭代计算过程求最优解,易陷入局部最优解,且要求目标函数有较好的连续性和可微性。进化法既不要求连续又不要求可微,有较强的全局寻优能力,但需要花费较长的时间,而且它们没有固定的理论背景,其收敛性也未被充分证明。5)拓扑优化方法面临的问题拓扑优化的主要困难在于其可行域的奇异性,导致了拓扑优化的全局最优解与局部最优解之间存在很大差异。另外,基于有限元法求解拓扑优化问题,在优化结构中会经常出现棋盘格式、网格依赖性、中间密度材料等数值计算问题。五、实例例如,给定V=60表示在给定载荷并满足最大刚度准则要求的情况下省去60%的材料。图2-1表示满足约束和载荷要求的拓扑优化结果。图2-1a表示载荷和边界条件,图2-2b表示以密度云图形式绘制的拓扑结果。图2-1体积减少60%的拓扑优化示例1、指定要优化和不优化的区域只有单元类型号为1的单元才能做拓扑优化。可以使用这种限制控制模型优化和不优化的部分。例如,如果要保留接近圆孔部分或支架部分的材料,将这部分单元类型号指定为2或更大即可:…ET,1,SOLID92ET,2,SOLID92…TYPE,1VSEL,S,NUM,,1,,2!用这些单元划分的实体将被优化VMESH,ALLTYPE,2VSEL,S,NUM,,3!用这些单元划分的实体将保持原状VMESH,ALL…用户可以使用ANSYS的选择和修改命令控制单元划分和类型号定义。2、定义和控制载荷工况可以在单个载荷工况和多个载荷工况下做拓扑优化。单载荷工况是最简便的。要在几个独立的载荷工况中得到优化结果时,必须用到写载荷工况和求解功能。在定义完每个载荷工况后,要用LSWRITE命令将数据写入文件,然后用LSSOLVE命令求解载荷工况的集合。例如,下面的输入演示如何将三个载荷工况联合做一个拓扑优化分析。…D,10,ALL,0,,20,1!定义第一个载荷工况的约束和载荷NSEL,S,LOC,Y,0SF,ALLSELLSWRITE,1!写第一个载荷工况DDEL,SFDEL,NSEL,S,LOC,X,0,1D,ALL,ALL,0NSEL,ALLF,212,FXLSWRITE,2!写第二个载荷工况…LSWRITE,3!写第三个载荷工况…FINISH/SOLUTIONTOPDEF,10,3!定义优化的参数LSSOLVE,1,3,1!在拓扑优化前做所有三个载荷工况求解…3、定义和控制优化过程拓扑优化过程包括两部分:定义优化参数和进行拓扑优化。用户可以用两种方式运行拓扑优化:控制并执行每一次迭代,或自动进行多次迭代。ANSYS有三个命令定义和执行拓扑优化:TOPDEF,TOPEXE和TOPITER。TOPDEF命令定义要省去材料的量,要处理载荷工况的数目,收敛的公差。TOPEXE命令执行一次优化迭代。TOPITER命令执行多次优化迭代。a、定义优化参数首先要定义优化参数。用户要定义要省去材料的百分比,要处理载荷工况的数目,收敛的公差。命令:TOPDEFGUI:MainMenuSolution-Solve-Topologicalopt注——本步所定义的内容并不存入ANSYS数据库中,因此在下一个拓扑优化中要重新使用TOPDEF命令。b、执行单次迭代定义好优化参数以后,可以执行一次迭代。迭代后用户可以查看收敛情况并绘出或列出当前的拓扑优化结果。可以继续做迭代直到满足要求为止。如果是在GUI方式下执行,在TopologicalOptimization对话框(ITER域)中选择一次迭代。命令:TOPEXEGUI:MainMenuSolution-Solve-Topologicalopt下面的例子说明了如何在拓扑优化中每次执行一次迭代:…/SOLUTIONTOPDEF,25,1!移去25%体积并处理一个载荷工况SOLVE!执行第一次应力分析TOPEXE!执行第一次拓扑优化迭代FINISH/POST1!进入后处理器PLNSOL,TOP0!画出优化结果*GET,TIPSRAT,TOPO,,CONV!读取拓扑收敛状态*STATUS,TOPSTAT!列表/SOLUTIONSOLVE!执行第二次应力分析TOPEXE!执行第二次拓扑优化迭代FINISH/POST1…TOPEXE的主要优点是用户可以设计自己的迭代宏进行自动优化循环和绘图。在下一节,可以看到TOPITER命令是一个ANSYS的宏,用来执行多次优化迭代。c、自动执行多次迭代在定义好优化参数以后,用户可以自动执行多次迭代。在迭代完成以后,可以查看收敛情况并绘出或列出当前拓扑形状。如果需要的话,可以继续执行求解和迭代。TOPITER命令实际是一个ANSYS的宏,可以拷贝和定制(见APDLProgrammer’sGuide)。命令:TOPITERGUI:MainMenuSolution-Solve-Topologicalopt下面的例子说明了如何使用TOPITER宏执行多次迭代:…!定义并写第一个载荷工况LSWRITE…!定义并写第二个载荷工况LSWRITE…!定义并写第三个载荷工况LSWRITE…TOPDEF,80,3,.001!80%体积减少,3个载荷工况…0.001为收敛公差/DSCALE,,OFF!关闭形状改变/CONTOUR,,3!每次显示3个轮廓数值TOPITER,20,1!最大20次迭代