拓扑优化99行代码翻译

发布时间 : 星期一 文章拓扑优化99行代码翻译更新完毕开始阅读

拓扑优化中的99行matlab代码——o.sigmund

摘要这篇文章描述了用matlab语言来简洁的实现在静态负载下符合最小化原理

的拓扑优化。总共只需要输入99行代码,包括优化程序和有限元分析子程序。这99行代码中,其中36行为主程序,12行为基于最优控制器的优化程序,16行为敏度过滤分析,其余35行代码作为有限元分析。实际上,除去注释行以及输出行、有限元分析行,仅有49行matlab代码输入用于解决一个适定的拓扑优化问题。再加上3行补充程序代码,这个程序就可以解决多种负载工况问题。这个代码主要是以教育指导为用,完整的matlab代码在附录中给出,同时也可以在网页http://www.topopt.dtu.dk上下载。 关键词拓扑优化教育最优准则万维网matlab代码

1 简介

文中展示的matlab代码主要是为工程教育所用。学生和在拓扑领域的新手可以在网页http://www.topopt.dtu.dk上下载。这个代码可以用于结构最优化课程学习,学生们可以在多重负载工况、独立网格选择策略、无源场进行扩展应用。另一种可能就是用来激发学生们的直觉来进行最优化设计。研究生可以推测探究在给定边界条件和容量的情况下的拓扑优化并、比较得出最优策略。

在文献中,你可以找到很多处理拓扑优化问题的方法。在一篇Bends?e and Kikuchi (1988)的原创论文中,基于对现存结论的学习,所谓微观结构或均化作用的方法被使用。

均化作用方法在很多文章中都被采用,但它也存在一些缺点,比如对微观结构最优化方法果断的评估与决策很麻烦的,而且结果很难获得如果没有对微观结构进行确定的长度衡量。然而,在这个意义上来说均化作用方法对拓扑优化也是很重要的,它可以在结构的理论分析上提供一定的界限。

拓扑优化的另一种方法叫做“幂律法则”或者SIMP法((Solid Isotropic Material with Penalization) (Bends?e1989; Zhou and Rozvany 1991; Mlejnek 1992))。这里,假设物质性能使恒定不变的同时每个元素是设计区域离散化,变量是元素的相对密度。物质属性在相对物质密度增加到固体材料的物质属性的很多倍时被模板化。

这种方法曾一度引起争议因为它认为没有任何物理材料的属性特征能被幂律法则所描述。然而,Bends?e and Sigmund (1999)最近发表的文章证实只要在单一条件下能量能够满足,幂律法则在物理上就是可行的。为了确认这个结论的存在性,幂律法则必须与周界约束、梯度约束或者过滤技术相结合。这个拓扑优化的幂律法则方法已经应用于多重约束,多属性,多材料的问题中了。

然而,上面提及到的解决方法是基于数学规划法和连续设计变量法,一系列的文章都有涉及到解决拓扑优化的整数问题。Beckers (1999)通过双重途径成功的解决了大规模服从最小化问题,但是其他方法大多基于遗传算法或者其他为了几个元素需要成千上万的函数求值半随机方法,当然这很可能是不切实际的。

除了上述提到的方法外,他们都能解决目标明确的问题,一些减少服从或者目标函数的启发式或直觉的方法也已经被提出来。这些理论都被统称为进化设计理论。除了很容易的理解和运用外,进化性分析方法主要的动机似乎是基于数学或连续变量法“涉及一些微积分应用和数学分析”,并且他们包含“一些复杂问题的数学理论”,反之进化性的方法能很好的应用强大的计算处理技术和自然进化过程中的直觉理念。两件事可以反对他。第一,曾经由于更多的比服从最小化理论复杂的目标被考虑进去。进化论方法自身已经变得非常复杂。第二,正如文中所说,以数学理论为基础的方法解决服从最小化问题很容易实现并且计算处理同样很有效率。不仅如此,基于数学理论的方法很容易扩展解决像非共轭和多物理量的无服从问题以及多约束问题。而用扩展进化方法来处理这些问题似乎更加不可行。

完整的matlab代码在附录中给出,文章剩余部分包括对优化问题的定义和讨论(第2部分),matlab实现的详细解释(第3部分),接着是扩展问题的讨论(第4部分)和最后总结(第5部分)。

2 拓扑优化问题

有许多简化方法都是用来简化matlab的代码。第一,假设设计区域是矩形且被平方有限元离散化。这种情况下,元素的数目和结点就很容易表示(一列一列从左上角开始)并且结构的纵横比通过水平(nelx)和垂直(nely)方向元素比率来确定。

一个拓扑优化问题基于指数定律法,目标是实现最小化,可以如下表示

式中U和F分别表示整体变形和力的向量,K表示整体刚度矩阵,ue和ke分别表示元素的位移矢量和刚度矩阵,x是设计变量的向量,xmin是相对密度的最小向量(非零以避免奇点)N(=nelx * nely)是设计区域离散化的元素数目,p是

)(惩罚因子(通常p=3),Vx(1)

和V0是材料体积和设计区域体积,f (volfrac)为规定

的容积率。

该拓扑优化问题(1)可以用几种不同的方法来解决,如Optimality Criteria(OC算法),Sequential Linear Programming (SLP),Method of Moving Asymptotes (MMA bySvanberg 1987)或者其他的方法。为简单起见,我们这里用标准的OC算法。

根据Bends?e (1995)对设计变量应用启发式的调整法,公式表示为

其中m(移动量)是一个正的移动界限,η (= 1/2)是数值阻尼系数,Be在最优

化条件中表示为

其中λ是拉格朗日乘子,在bi-sectioning algorithm中获得。 目标函数的敏感度被表示为

更多的详细信息将通过最优化准则理论的推导和实现,在文献(e.g. Bends?e 1995).中提到。

为了确保对拓扑优化问题(1)解决方法的存在性,将会介绍一些作为结果的限制条件。这里我们使用过滤技术,需要强调的是这个过滤技术并不能证明方法的可行性,但是通过作者大量应用证明过滤技术在实际中能产生独立性网格。 这个网格独立性滤波器是来修改元素敏度,如下:

这个卷积算子(重量系数)Hf表示为

控制函数dist(e, f)定义为元素中心e到元素中心f的距离。在过滤面积以外卷积算子Hf为0.卷积算子随着元素f的距离成线性减少。除了原始的敏度(4),修改的元素敏度(5)被用于OC算法(3)。

联系合同范文客服:xxxxx#qq.com(#替换为@)