伴随拓扑优化模型

拓扑优化模型用于确定域主题内材料的最佳分布。可将此模型与拓扑物理模型和伴随模型结合使用来执行拓扑优化。

此模型及其求解器使用基于伴随的灵敏度演变定义材料分布的水平集方程,来处理具有约束的单目标优化问题。启用此模型后,它会自动计算拓扑物理模型使用的材料分布。另请参见:拓扑物理模型

优化器的目的是改变材料分布 χ ,以最小化(或最大化,如果选择这样做)目标。优化基于改进水平集方程,如下所示:

1. EQUATION_DISPLAY
ϕ τ + F ϕ = S
(5124)

其中, τ 为伪时间, F 为两相之间的交界面速度, S 为水平集函数的源项。

ϕ 为水平集变量,其值介于 -1(次相 - 实体)和 1(主相 - 流体)之间。关联的材料分布 [ 0 , 1 ] 通过水平集变量的双曲正切函数进行定义:

2. EQUATION_DISPLAY
χ = 0.5 × ( 1 + tanh ( ϕ δ ) )
(5125)

其中, δ 用于控制交界面的厚度,并在代码中设为 0.056。

优化的搜索方向基于两个物理量进行计算:
  • 拓扑导数 ( L χ ) ,其中, L 为由 Eqn. (5132) 给出的拉格朗日。
  • ADAM(自适应矩估计的缩写)更新规则会向迭代间的方向提供动量,有助于避免局部极小值(或最大值)。公式如下所示:
    3. EQUATION_DISPLAY
    m k + 1 = β 1 m k + ( 1 β 1 ) L χ
    (5126)
    4. EQUATION_DISPLAY
    ν k + 1 = β 2 ν k + ( 1 β 2 ) ( L χ ) 2
    (5127)
    5. EQUATION_DISPLAY
    v ¯ = m k + 1 ν k + 1 + ϵ
    (5128)

其中,常数 β 1 用于确定应用于搜索方向的动量数量。值越小,优化器越能够根据梯度变化快速更改方向,但也会增加过早陷入局部最优的可能性。 ϵ 是一个很小的值,用于防止分母为零。

常数 β 2 用于确定步长在优化过程中的衰减速度。接近 1 的值可确保优化器顺利达到最终结果,但同时可能降低收敛速度。

β 1 β 2 的默认值分别为 0.5 和 0.75,这两个值是这些竞争因素之间的合理折衷。这样设置还可提供一定程度的自然步长衰减,以确保优化器在优化过程中采用较小的时间步。

为了帮助选择步长(实际上为 τ 的增量),交界面的速度等于按体积与面积的比例进行缩放的搜索方向:
6. EQUATION_DISPLAY
F i = V i v i ¯ k | A k |
(5129)

其中, V i 为网格单元的体积, k | A k | 为网格单元的面网格面积的总和。

源项同时与来自 ADAM 的搜索方向成比例。其公式如下所示:

7. EQUATION_DISPLAY
S i = ω ( 1 s i g n ( ν i ¯ ) ϕ ) ν ¯ i
(5130)

其中, ω 为用户自定义常数源强度。如果停用模型中的允许孔形成,则将忽略此项 ( ω = 0 )。实际上,当 ω = 0 时,固体材料必须在域中的现有边界或固体材料的初始部分上形成。当 ω > 0 时,固体腔可以出现在优化域中的任意位置。

如果将这些规则应用于源项 S i 和交界面速度 F i ,则优化器可以使用较大的步长来驱动优化(默认值为 10),与问题尺度或灵敏度值无关。

拓扑优化求解器可以处理约束问题:
8. EQUATION_DISPLAY
min i m i z e f ( x ) s u b j e c t t o c i ( x ) 0 , 0 i m
(5131)

其中 f ( x ) 为伴随目标, c i 为约束,m 为约束总数。

约束通过增广拉格朗日法进行处理,以将约束优化问题转换为无约束问题。要执行转换,将引入拉格朗日函数,其中原始目标函数已增强以考虑约束。

增广拉格朗日函数设定如下:
9. EQUATION_DISPLAY
L ( x , λ ) = f ( x ) + i ψ ( c i , λ i k , μ )
(5132)

其中 λ i 为拉格朗日乘数, k 表示优化迭代。

10. EQUATION_DISPLAY
ψ i ( c i , λ i , μ ) = { λ i c i + μ 2 c i 2 i f c i 0 λ i c i o t h e r w i s e
(5133)

其中, μ 为惩罚参数。每次迭代后,拉格朗日乘数估计更新如下:

11. EQUATION_DISPLAY
λ i k + 1 = max ( 0 , λ i k + μ c i )
(5134)

还可以扩展上述增广拉格朗日函数以包含等式约束。

为了确保对拉格朗日函数进行适当的比例缩放,可通过目标和约束各自的最大灵敏度值将二者归一化:

12. EQUATION_DISPLAY
f ^ ( x ) = f ( x ) min ( 1 , 100 / d f d x max )
(5135)
13. EQUATION_DISPLAY
c ^ ( x ) = c ( x ) min ( 1 , 100 / d c d x max )
(5136)