电磁学中的形状优化:第 1 部分

2022年 11月 22日

形状优化可以被用来改善许多不同物理领域的设计。在这篇博客中,我们将重点讨论波动光学中的形状优化。我们将复习 COMSOL Multiphysics® 软件中的形状优化功能,并说明当这些功能被用在波动光学类应用时,可以用它实现什么。

电磁学中的形状优化系列博客内容分为两部分,这是第一篇文章。第二篇文章将重点讨论射频(RF)应用中的形状优化。

参数优化与形状优化

形状优化与基于梯度的优化是兼容的,因为几何形状的变化是通过变形网格实现的。这可能是以较低的单元质量为代价的,从而限制几何形状的变化程度,特别是在三维中。参数优化与基于梯度的优化不兼容,因为几何形状的变化是通过重新划分网格实现的,请看下面的动画演示。

 

参数优化涉及重新划分网格,而形状优化则是对网格进行变形处理。

原则上,参数优化是一种比形状优化更通用的技术,但在实践中,由于它与基于梯度的优化不兼容,导致这个方法很慢。这限制了优化变量的数量,从而限制了设计的自由度。我们可以用参数优化来解决本系列博客中的例子。COMSOL® 确实支持这一点,但是,即使这些例子相对简单,这一方法的计算成本却高得惊人。因此,在很多问题上,形状优化比参数优化更适合。

COMSOL Multiphysics 包括一组内置功能,可以简化形状优化问题的设置。多项式壳 自由形状壳 功能是专门为壳设计的,通常是用在结构力学建模中。然而,大多数问题是在域(而不是壳)上定义的,多项式边界 自由形状边界 功能可以用来优化与这些域相邻的边界。就像它的名称所显示的,我们可以选择以多项式或基于自由偏微分方程(PDE)的方法进行正则化处理。变换 功能将形状变化限制在平移、缩放和/或旋转上。这个功能可以在域和边界上使用。该功能将倾向于改变边界的曲率和点的角度,但通过使用一阶多项式或变换 功能可以保持直线。最后,对称/辊支承 功能可以将边限制在平面上,或者将点限制在二维直线上,请看下面的图片示例。

一幅展示了在一个正方形图形上进行的四种不同类型的形状优化的插图,初始设计直接显示在优化设计的上方。
对于改变一个正方形的上边界,使它接近我们的目标边界(橙色)的问题,图中显示了四种不同类型的形状优化。为了优化第一个图的初始设计,将变换 功能与对称性/辊支承功能相结合使用,可以使上边界在 y 方向上移动。第二个图显示的是同时启用了旋转功能的变换,这需要使用一阶多项式,而不是对称性/辊支承功能。最后两个例子分别展示了多项式和自由形状的方法,两者之间没有什么区别。但是请注意,在这些例子中没有与左边边界相关的特征,因此左上角的点是固定的。

与其他功能相比,变换功能与较少的设计自由度有关,但这在将优化设计转换为 CAD 几何图形方面是一个优势。我们的系列博客将重点讨论 2D 中的形状优化,但所有的功能都可以在 3D 中使用。在下面的章节中,我们将举两个波动光学的例子。

示例 1:过滤

第一个例子考虑设计一个有弯曲的光子晶体。这个晶体由砷化镓制成的支柱组成,并使用了变形功能使柱子的位置可以改变。我们的目标是使波长为 1 µm 的光实现高功率传输,而波长为 1.3 µm 的光实现低功率传输。因此,目标函数的表达式将被最大化处理:

\phi_\mathrm
{filter}= \left. P_\mathrm
{out, 1 µm}
\right/ P_\mathrm
{out, 1.3 µm}

 
优化后的几何形状如下图所示,但由于问题的非直观性,我们很难理解它的工作原理。不过,我们可以再看一下输出边界的功率。可以清楚地看到,优化强调的是较大波长处的功率最小化,所以用最小化目标来表达目标函数可能更好。这将在下一个例子中得到证明。

带有弯曲的光子晶体的初始和优化几何形状的图像。初始设计以灰色显示,优化设计以黑色显示。
显示初始设计(蓝线)和优化设计(绿线)的输出功率,作为波长的函数绘制的线图。

左图:初始设计的几何图形用灰色绘制,优化后的设计用黑色绘制。右图:输出功率与波长的函数关系,优化中考虑了两个波长(以点表示)。

示例 2:分离器

第二个例子也考虑了光子晶体,但这次是用于多路分解。我们想设计一个装置,将两个不同的波长(\lambda_1\lambda_2)路由到两个不同的输出端口,同时隔直其他波长。你可以把隔直和路由 \phi_B\phi_R的目标表达写作:

\phi_R &=& \[\begin{cases}-P^1_\mathrm{out}/P_\mathrm{min},& \text{if } \lambda<\frac{_1}{^2}(\lambda_1+\lambda_2)\\-P^2_\mathrm{out}/P_\mathrm{min},& \text{otherwise}\end{cases}\]
\phi_B &=& (P^1_\mathrm{out}+P^2_\mathrm{out})/P_\mathrm{max}-2

 
其中,P_\mathrm{min}P_\mathrm{max}
 分别是路由和隔直的最小和最大功率。请注意,路由目标的定义取决于它是为 \lambda = \lambda_1 还是为 \lambda = \lambda_2 计算,因此,信号被激励向所期望的输出端口。如果相关的波长达到了所需的功率,则两个目标都等于-1,而如果没有达到所需的功率,则会得到更高的值,所以目标应该是最小化的。这些目标在最小化公式中被结合起来,也就是说,目标被当作几个目标的最大值。一些目标的不同只是因为它们是在不同的波长下计算的,而其他的不同是因为设备的理想行为取决于波长,因此目标的定义也取决于波长。最后的目标表示为:

\phi = \[\max_\lambda \left( \begin{cases} \phi_R & \text{if}\quad 2|\lambda-\lambda_1|<\Delta\lambda\quad\text{or}\quad 2|\lambda-\lambda_2|<\Delta\lambda \\\phi_B & \text{otherwise} %\end{cases}\] \right)

 
如果波长在 \Delta \lambda / 2,将使用路由目标;如果不在 \Delta \lambda / 2,将使用隔直目标。

与第一个例子类似,我们将使用变换 功能来优化光子晶体中支柱的位置。下面的动画说明了优化设计以及 P^1_\mathrm{out}P_\mathrm{out}^2 的情况。电场也是在 \lambda_1\lambda_2 的情况下显示的,每次优化迭代共计算了 14 个波长。

 

电场的 Z 分量被绘制为两个波长,并显示了端口的输出功率。

在这个例子中,我们选择了 P_\mathrm{min}=5P_\mathrm{max},于是产生了下图所示的频谱,但也可以通过改变参数来优先考虑隔直或路由。

显示蓝线;绿线;蓝色,开放方块;绿色,开放方块的图。这些分别代表了电源端口1(重修)、电源端口2(重修)、电源端口1(优化)和电源端口2(优化)的输出端口功率。
在优化(点)中,使用的波长的输出端口功率被绘制出来,并与在变形配置中重新划分网格后的端口功率图相比较。

端口功率在重新划分网格前后存在小的偏差,但只针对少数波长,而且优化结果似乎没有利用数值效应。此外,我们还可以看到,尽管目标只要求在主端口有较高的输出功率,但我们只在副端口得到一个小的输出功率。最后,值得注意的是,在所有的优化迭代中都考虑了每个支柱的位置对每个波长的敏感性。因此,每次迭代都会向优化求解器提供大量高度相关的信息。因此,只需经过 50 次迭代,就有可能找到 234 个控制变量的值。

在选择用于优化的波长时,有一个试验和错误的因素,最后一个例子使用了 31 个波长,这在计算上代价是很高的。计算时间可以通过使用集群来降低,我们将在本系列博客的第二部分中证明这一点,届时我们将研究射频频谱的优化问题。下一篇文章中所有显示的例子都将使用最小化公式与变换多项式边界 功能相结合。

下一步

欢迎下载本博客中介绍的模型,更深入地了解它的设置和结果。

  1. 用于信号滤波的光子晶体的优化
  2. 用于多路分解的光子晶体的优化

评论 (1)

正在加载...
维明 王
维明 王
2022-12-10

good job

浏览 COMSOL 博客