水平集(level set)的基本思想是将界面看成高一维空间中某一函数ψ(称为水平集函数)的零水平集,同时界面的演化也扩充到高一维的空间中。我们将水平集函数按照它所满足的发展方程进行演化或迭代,由于水平集函数不断进行演化,所以对应的零水平集也在不断变化,当水平集演化趋于平稳时,演化停止,得到界面形状。
其中,t表示时间。
x是水平集设计变量,
是水平集函数,
是作用域,D是设计空间,?Ω?Ω是作用域的边界。0水平集函数表示作用域的边界。
一般使用符号距离函数进行初始水平集函数的构建。符号距离函数为设计空间内任意点处到边界的最小距离,且如果该点在区域边界内部,值为正;在边界外部,值为负;在边界上,值为0。详细信息参见维基百科Signed distance function。根据初始水平集函数确定的水平集范围,进行材料的初始分布。
如果拓扑优化设计的目标是在给定最大体积的情况下,最小化J,则构建的拉格朗日函数如下[1]:
其中,
是优化目标函数,
是给定的等式约束,
和
是两个拉格朗日系数,更新策略为[2]:
其中,权重系数α∈(0,1)α∈(0,1)
拓扑敏感度指当增加一个无限小的空时,元素点处的目标函数的变化程度[3]。示意图如图1所示[4]。
图1 拓扑敏感度示意图
拓扑敏感度计算方法如式所示
3.4拉格朗日函数的元素敏感度
元素敏感度指增加一个元素后,元素点处的目标函数的变化程度。
根据元素敏感度和拓扑敏感度确定每一个元素点处的更新速度,进行水平集函数的更新。
其中,
为元素敏感度,根据3.4节方法进行计算。
是拓扑敏感度,根据3.3节方法进行计算。为水平集符号函数。计算方法如下:
使用一阶格式法[5]进行的计算。
Step 1:使用符号距离函数法进行初始水平集函数的构建,并确定初始材料分布;
Step 2:根据设计目标和体积约束构建拉格朗日函数
Step 3:计算每一元素的拓扑敏感度和元素敏感度
Step 4:根据3.5节方法进行水平集函数的更新
Step 5:根据新的水平集函数确定新的材料分布和新的拉格朗日函数
Step 6:收敛性分析。如果收敛,优化结束;不收敛,从Step 2循环。
- 基于水平集法进行拓扑优化的开拓性论文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:Allaire, G., et al. (2004). “Structural optimization using sensitivity analysis and a level-set method.” Journal of Computational Physics 194(1): 363-393.
- Matlab代码:Challis, V. J. (2010). “A discrete level-set topology optimization code written in Matlab.” Struct Multidisc Optim 41: 12.
- 水平集方法介绍: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