行业新闻

基于水平集的拓扑优化方法概述

水平集(level set)的基本思想是将界面看成高一维空间中某一函数ψ(称为水平集函数)的零水平集,同时界面的演化也扩充到高一维的空间中。我们将水平集函数按照它所满足的发展方程进行演化或迭代,由于水平集函数不断进行演化,所以对应的零水平集也在不断变化,当水平集演化趋于平稳时,演化停止,得到界面形状。


\\psi \\left( \\mathbf{x},t \\right)=\\left\\{\\begin{array}{cc}
<0 &{\\mathbf{x}\\in \\Omega}\\\\=0 &{\\mathbf{x}\\in \\partial \\Omega}\\\\
>0 &{\\mathbf{x}\
ot \\in \\Omega }\\\\
\\end{array}
\\right.

其中,t表示时间。

x

是水平集设计变量,

\\psi

是水平集函数,

\\Omega

是作用域,D是设计空间,?Ω?Ω是作用域的边界。0水平集函数表示作用域的边界。

一般使用符号距离函数进行初始水平集函数的构建。符号距离函数为设计空间内任意点处到边界的最小距离,且如果该点在区域边界内部,值为正;在边界外部,值为负;在边界上,值为0。详细信息参见维基百科Signed distance function。根据初始水平集函数确定的水平集范围,进行材料的初始分布。

如果拓扑优化设计的目标是在给定最大体积V_{max}的情况下,最小化J,则构建的拉格朗日函数如下[1]:


L\\left( \\mathbf{x}\\right)=J\\left( \\mathbf{x}\\right)+
\\lambda \\mathbf{x}\\left({V \\mathbf(x)-V_{max}}\\right)+
\\frac{1}{2\\Lambda}\\left({V \\mathbf(x)-V_{max}}\\right)^2

其中,

J\\left(\\mathbf{x}\\right)

是优化目标函数,

V \\mathbf(x)-V_{max}

是给定的等式约束,

\\lambda

\\Lambda

是两个拉格朗日系数,更新策略为[2]:

\\lambda^{k+1}=\\lambda^k+\\frac{1}{\\Lambda^k}\\left({V \\mathbf(x)-V_{max}}\\right)\\Lambda^{k+1}=\\alpha\\Lambda^k

其中,权重系数α∈(0,1)α∈(0,1)

拓扑敏感度指当增加一个无限小的空时,元素点处的目标函数的变化程度[3]。示意图如图1所示[4]。

图1 拓扑敏感度示意图
拓扑敏感度计算方法如式所示

\\delta_{t}L\\left( \\mathbf{x}\\right)=\\lim_{r \	o 0}
{\\frac{L\\left(r\\right)-L}{\\pi r^2}}

3.4拉格朗日函数的元素敏感度

元素敏感度指增加一个元素后,元素点处的目标函数的变化程度。

\	riangle J=u_e^TK_eu_e

根据元素敏感度和拓扑敏感度确定每一个元素点处的更新速度,进行水平集函数的更新。

\\frac{\\partial \\psi}{\\partial t}=-v\\left( \\mathbf{x}\\right) \\left | \
abla \\psi \\right | - \\omega g \\left ( \\mathbf{x}\\right)

其中,

v\\left( \\mathbf{x}\\right)

为元素敏感度,根据3.4节方法进行计算。

g \\left ( \\mathbf{x}\\right)=-sign\\left( \\psi \\left( \\mathbf{x}\\right) \\right) \\delta_{t}L\\left( \\mathbf{x}\\right)

\\delta_{t}L\\left( \\mathbf{x}\\right)是拓扑敏感度,根据3.3节方法进行计算。-sign\\left( \\psi \\left( \\mathbf{x}\\right) \\right)为水平集符号函数。计算方法如下:

sign\\left( \\psi \\left( \\mathbf{x}\\right) \\right)=\\left \\{
\\begin{array}{cc}
-1 & if  \\psi<0\\\\=0 & if  \\psi \\ge 0\\\\
\\end{array}
\\right.

使用一阶格式法[5]进行\\left | \
abla \\psi \\right | 的计算。

Step 1:使用符号距离函数法进行初始水平集函数的构建,并确定初始材料分布;
Step 2:根据设计目标和体积约束构建拉格朗日函数
Step 3:计算每一元素的拓扑敏感度和元素敏感度
Step 4:根据3.5节方法进行水平集函数的更新
Step 5:根据新的水平集函数确定新的材料分布和新的拉格朗日函数
Step 6:收敛性分析。如果收敛,优化结束;不收敛,从Step 2循环。

  1. 基于水平集法进行拓扑优化的开拓性论文1:Michael Yu Wang, X. W., Dongming Guo (2003). “A level-set method for structural topology optimization.” Comput. Methods Appl. Mech. Engrg. 192: 20.
  2. 基于水平集法进行拓扑优化的开拓性论文2:Allaire, G., et al. (2004). “Structural optimization using sensitivity analysis and a level-set method.” Journal of Computational Physics 194(1): 363-393.
  3. Matlab代码:Challis, V. J. (2010). “A discrete level-set topology optimization code written in Matlab.” Struct Multidisc Optim 41: 12.
  4. 水平集方法介绍:https://www.http://youtube.com/watch?v=B9soiDHr9bo&index

[1]Luo, J., Z. Luo, L. Chen, L. Tong and M. Y. Wang (2008). “A semi-implicit level set method for structural shape and topology optimization.” Journal of Computational Physics 227(11): 5561-5581.
[2]Luo, J., Z. Luo, S. Chen, L. Tong and M. Y. Wang (2008). “A new level set method for systematic design of hinge-free compliant mechanisms.” Computer Methods in Applied Mechanics and Engineering 198(2): 318-331.
[3]Deng, S. and K. Suresh (2014). “Multi-constrained topology optimization via the topological sensitivity.” Structural and Multidisciplinary Optimization 51(5): 987-1001.
[4]Masaki Otomori, T. Y., Kazuhiro Izui, Shinji Nishiwaki (2015). “Matlab code for a level set based topology optimization method using a reaction diffusion equation.” Struct Multidisc Optim 51: 1159-1172.
[5]Allaire et al. Structural optimization using sensitivity analysis and a level-set method., 2004(194): 363-393.

题图来源于Google Image Search

平台注册入口