结果与可视化 – COMSOL 博客 - //www.denkrieger.com/blogs 发布博客 Mon, 28 Oct 2024 12:27:01 +0000 en-US hourly 1 https://wordpress.org/?v=5.7 通过参数扫描追踪特征模态 //www.denkrieger.com/blogs/tracking-eigenmodes-over-parameteric-sweeps //www.denkrieger.com/blogs/tracking-eigenmodes-over-parameteric-sweeps#comments Tue, 13 Aug 2024 03:12:37 +0000 http://cn.staging.comsol.com/blogs?p=372831 特征频率分析是数值仿真工具包中不可或缺的一部分。线性系统的特征模态通常具有明显的定性特征,并在如频率等参数范围内以不同的方式演变。我们经常被问到,是否有办法对这些随参数范围变化的特征模态解集进行追踪和分类。这篇博客,我们将演示如何使用 COMSOL Multiphysics® 软件中的模态重叠积分法来实现这一目标。

特征模态和重叠积分

小测验:为下一代通信系统设计光缆,优化桥梁设计以尽量减少不必要的机械共振和优化客厅的声学布局,这三者有什么共同之处?

对于上述每一个场景,我们都必须充分了解系统的特征模态。特征模态及其相关特征值(也称为固有频率)描述了线性系统对外部激励的响应方式,因此在设计中起着至关重要的作用。在一些应用中,例如射频通信腔滤波器扬声器驱动器,我们希望能最大程度地耦合一个或多个特征模态,而在其他应用中,这些共振模态的耦合可能会导致灾难性后果,如桥梁坍塌。

当在参数扫描过程中调整系统参数,如工作频率或几何尺寸时,特征模态和频率自然会发生变化。然而,这些模态通常会保持定性相似性。让我们来看一个简单的示例,像鼓或克拉尼板振动表面一样的二维椭圆形薄膜的波动方程。

模型显示了含固定边界的5个椭圆形,代表二维薄膜的波动方程的特征模态。

具有固定边界的椭圆形薄膜的二维波动方程的前 5 个特征模态解。

特征频率研究显示了前 5 个特征模态,其位移大小如上图所示。现在,假设我们要对椭圆域的垂直高度进行参数扫描。

y轴上的特征频率(Hz)和x轴上的椭圆域的垂直高度(cm)的图形,产生5条线的绘图,每条线用不同的颜色表示,并均略微向下倾斜。
图中显示了前 5 个模态的特征频率与椭圆域垂直高度的关系。请注意,在高度为 10 cm 时,模态 2 和模态 3 ,模态 4 和模态 5 之间的简并,而此时椭圆域是圆形的。

前 5 个模态的特征频率如上图所示。请注意,当垂直高度为 10 cm 时,模型域是圆形的。这导致模态 2 和 3 之间,模态 4 和 5 之间的简并。事实上,过了简并点,模态 2 和 3 就会在特征值图中互换阶次。这种模态交叉行为在许多特征频率研究中都很常见。当这些模态的阶次发生变化时,如何在特征值图中追踪它们呢?要回答这个问题,让我们仔细观察其中的一个模态。

显示两个椭圆形状的模型,代表模态 2 的特征频率,一个在 8 cm 测量 ,另一个在 12 cm 测量。

参数范围两个端点处的模态 2。

高度为 8 cm 和高度为 12 cm 时的模态 2 如上图所示。通过肉眼就可以明显观察到这两个模态的相似性。我们可以用模态重叠积分来量化这种相似性:

M(i,j) \equiv \frac{|\int u_i \cdot u_j^* \, dV|^2}{(\int u_i \cdot u_i^*\, dV)(\int u_j \cdot u_j^*\, dV)}

 

变量 代表两个任意的特征模态解。这个方程的关键部分在于分子:在两种模态之间进行 内积 。分母将重叠度的值归一化,使其介于 0 和 1 之间。

一个模态与其自身的重叠度为 0,因为它们是相互正交的。对于参数值不同的模态,只要模态在性质上相似,M 接近 1。例如,上述两个模态的重叠度 M = 0.95,证实了我们的直观识别。两个不相似的模态的重叠度接近 0。

利用这一度量标准,我们可以通过对重叠值施加一定的阈值,来建立模态匹配方案。这可用于色散图中过滤或分组模态,甚至在模型方法的帮助下自动生成模态轮廓动画。接下来,让我们看看如何将这一策略应用到多个不同的物理学科。

示例 1:光学各向异性波导

在上一篇关于如何模拟光学各向异性介质的博客中,我们研究了光学各向异性波导的横向模式。这些模式可以按照电场的主要方向以及横向平面上振幅最大值的数量进行分组。 模式的一些示例如下图所示。

显示三个正方形的模型代表了光学各向异性波导的前三个特征模式。
光学各向异性波导中前 3 个 特征模式。

由于波导的主要目标是控制光流,因此了解这些传播模式的行为至关重要。在每个频率下,每个模式都有一个相关的有效折射率,该折射率决定了它们的传播速度、有效波长以及衰减程度(如果模型中存在损耗)。我们使用色散图来绘制有效折射率随频率变化的曲线。

表示折射率与频率的色散图,显示了7条线绘图,每条线的颜色都是不同的,并且都在增加(一些作为曲线,一些作为直线)。

波导的色散图如上所示。由于存在大量的模式交叉,因此有必要对特征模式进行分类,以便正确标记。

在模式分析研究的原始输出中,没有以任何有意义的方式有效折射率进行分组或排序,因为求解器没有这些模式的先验知识。我们采用重叠积分计算方法,按模态轮廓对这些特征值进行分类。现在,由于每个有效指数值都与特定的 模式相关联,因此我们可以轻松地使用滤波器和绘图选项在绘图图例中为每个模式着色和标注。请注意,这种方法能够正确解析多模式交叉以及特征值非常接近的模式,例如 模式的交叉。

示例 2:旋转叶片的特征频率

深入理解风力涡轮机叶片或电动汽车电机等旋转部件的共振模态,对于稳定性分析或最大限度减少噪声和振动等应用至关重要。我们来看 COMSOL应用库中的一个基本示例:旋转叶片的基本特征频率模型

当矩形叶片以越来越大的角速度旋转时,预计会出现两种主要的竞争现象:应力刚化和旋转软化。前者由于离心效应产生的静态应力场使叶片变硬,从而对固有频率产生向上的影响。后者则由于运动的径向放大而使叶片软化,导致对固有频率的向下影响。这些效应的平衡在坎贝尔图中得到了最好的体现,即固有频率与旋转角速度的关系图。

特征频率(Hz)在 y 轴上,角频率(rad/s)在 x 轴上的图形,产生了 7 个 &#039模型&#039的线条绘图,以不同的颜色表示,均有不同程度的向上倾斜。
旋转叶片的坎贝尔曲线图。请注意,模态 2 和 5 的特征频率明显增加。

上图是前 7 个特征模态的坎贝尔曲线图。总体而言,我们观察到固有频率呈上升趋势,这表明应力刚化起了很大作用。这在模态 2 和 5 中更为明显,在所研究的参数范围内,这两个模态的特征值急剧上升,并超过了其他模态的特征值。前 6 个模态的位移和应力如下图所示。

显示了6个矩形的模态的2排绘图,每排3个,分别代表旋转叶片的6个特征模态。

旋转叶片的前 6 个特征模态。

在更复杂的系统中,坎贝尔图中的固有频率可能更多,既有上升趋势,也有下降趋势。了解这些趋势并将其可视化,对于确定如临界转速等至关重要。通过模态重叠积分,可以轻松地对这些模态集的行为进行分类和追踪。

示例 3:带弹性壁的消声器特征模式

多物理场仿真在内燃机消声器的设计中发挥重要作用。除了模拟空气中的压力波外,还必须考虑空气与消声器外壳之间的相互作用,从而可以更加准确地模拟整个频率范围内的传输曲线。

声-结构相互作用的其中一种效应是引入更多的共振模式,这一点可以通过两个相关的示例来说明:消声器中的特征模式带弹性壁消声器中的特征模式。我们来详细探讨后一个模型。在一定频率范围内对消声器横截面进行模式分析,以确定模式轮廓及其相应的截止频率。

图中 y轴为面外波数 (1/m), x 轴为频率 (Hz),显示了包括平面波模式在内的5种模式的不同颜色的曲线图。
带弹性壁的消声器色散图。除平面波模式(蓝色)外,由于空气与消声器壁之间的声-结构相互作用,还存在许多其他模式集。使用模式重叠积分法跟踪了其中的一个子集。

上面的色散图绘制了部分模式及其传播常数与频率的关系。显然,数据集中的趋势很可能与不同的模式系列相对应。例如,平面波模式形成了一条贯穿整个频率范围的对角直线。通过应用重叠积分,我们可以确认平面波模式的预期行为,并追踪整个频率范围内的其他几个模式。模式轮廓图如下所示。

模型显示了

上图显示了带弹性壁的消声器中的部分模式轮廓。

借助模型方法,我们甚至可以自动生成整个频率范围内的模式演变动画。

在模型方法的帮助下,在整个参数范围内对模式 3 的演变进行追踪并用动画演示。

上面的动画演示了模式 3 如何从接近其截止点的 160 Hz 急剧变化到研究的上限 400 Hz,过程中还跨越了其他几个特征模式。在模态重叠积分的帮助下,追踪单个模式集的演变变得更加容易。

下一步

在这篇博客中,我们演示了如何使用模态重叠积分方法在特征频率研究中追踪和分类模态。请点击下面的按钮进入 COMSOL 学习中心,了解相关内容:

此外,这篇博客中讨论的模型可在 COMSOL 案例库中下载:

扩展阅读

]]>
//www.denkrieger.com/blogs/tracking-eigenmodes-over-parameteric-sweeps/feed/ 2
使用 LaTeX 为仿真结果的绘图标题添加数学表达式 //www.denkrieger.com/blogs/using-latex-to-add-mathematical-expressions-to-plot-titles //www.denkrieger.com/blogs/using-latex-to-add-mathematical-expressions-to-plot-titles#respond Tue, 16 Jan 2024 02:24:53 +0000 http://cn.staging.comsol.com/blogs?p=355431 如果能将数学表达式添加到仿真结果图的标题中,是不是很棒?从 COMSOL Multiphysics® 软件的 6.2 版本开始,我们就可以使用 LaTeX 来实现这一功能了!LaTeX 是一种用于数学和科学排版的高质量文档编写系统。在 6.2 版本中,你还可以轻松创建多行绘图标题。这篇博客,我们将讨论这一新功能。

关于 LaTeX

LaTeX 支持对复杂数学表达式进行综合排版,并能呈现出丰富的视觉效果。以前版本的 COMSOL Multiphysics® 支持在报告中使用 LaTeX 片段,随着 6.2 版本扩展支持的引入,现在我们也可以使用数学内容来丰富绘图标题了。

LaTeX 系统包含大量用于创建数学表达式的元素,包括:

  • 希腊字母和其他特殊字符,包括统一码字符
  • 数学符号和运算符
  • 分隔符和空格
  • 数学函数名称
  • 分数和根号的特殊数学排版
  • 如上标、下标、上划线、下划线和斜体等文本和字体元素

COMSOL Multiphysics Reference Manual 包含所有支持的 LaTeX 命令列表。所有命令均以反斜线开头。例如,\alpha 用于表示

为绘图标题添加 LaTeX 片段

使用 LaTeX 在绘图标题中添加数学表达式非常简单。具体过程如下:

  1. 设置 窗口中找到绘图组或绘图的 标题 部分。
  2. 在标题设置中,从 标题类型 列表中选择 手动
  3. 标题 框中,添加带有一个或多个 LaTeX 片段的文本。

要在 标题 框中添加 LaTeX 命令,请用 \[\] 或者 /$/$ 将它们括起来,以调用以下两种 LaTeX 模式之一:

  1. 在 LaTeX 数学表达式前后使用 \[\] 来调用 显示 数学模式。调用显示数学模式会使数学表达式占用更多的垂直空间,但不会像标准 LaTeX 的显示数学模式那样新增一行。
  2. 在 LaTeX 数学表达式前后使用 /$/$ 来调用 内嵌 数学模式。内嵌数学模式是指以标准 LaTeX 格式内嵌在文本中,表述更加简洁。这种简洁的表达方式可能不太适合大型数学表达式。

反之,你也可以将 LaTeX 命令的一部分转换为不同的模式类型,比如你想混合使用 LaTeX 格式类型,但又不想拆分和重写表达式。例如,要将 LaTeX 命令从内嵌数学模式转换为显示数学模式,可以使用特殊命令 \displaystyle\textstyle 将显示数学模式转换为内嵌数学模式。

下面我们将列举一些示例,了解如何在绘图标题中添加方程和其他数学表达式。

数学表达式示例

添加磁场方程

在绘制使用 COMSOL Multiphysics® 计算场方程得到的解时,在绘图标题中包含这些方程可能很有用。我们将使用 AC/DC 模块案例库中的 海底电缆 8a—电感效应三维 模型作为示例来说明。这个案例使用 磁场 接口,求解磁势 A 及其分量。求解的方程包括:

\nabla \times \textbf{H} = \textbf{J}\\
\textbf{B} =\nabla \times \textbf{A}\\
\textbf{J} = \sigma\textbf{E} + j\omega\textbf{D} + \textbf{J}_{e}\\
\textbf{E} = -j\omega\textbf{A}.

要在 COMSOL Desktop® 中创建类似的多行绘图标题,只需使用 Enter 或 Return 键(具体取决于你的键盘)在每个表达式后另起一行即可。在本例中,输入的标题如下:

Magnetic field equations:
\[\nabla \times \textbf{H} = \textbf{J}\]
\[\textbf{B} =\nabla \times \textbf{A}\]
\[\textbf{J} = \sigma\textbf{E} + j\omega\textbf{D} + \textbf{J}_{e}\]
\[\textbf{E} = -j\omega\textbf{A}\]

这个标题有一些特点值得注意:

  • \nabla 命令创建一个 nabla 符号 ()。
  • \textbf 命令使文本以粗体字体显示,表示矢量。
  • _(下划线)符号使后面的字符以下标形式出现。
  • 由于在 标题 中输入了 4 个换行符,因此标题显示为 5 行。
  • 这些方程是在显示数学模式下编写的,不过在这个示例中,显示数学模式和内嵌数学模式并无明显区别。

在下图中,你可以看到表达式如何作为标题显示的。

标题为磁场方程的海底电缆的三维电感效应图。
以磁场方程为标题的海底电缆电感效应绘图。

添加函数极限

极限 表达式是一种需要一定垂直空间的数学表达式,它描述了数学函数在其函数参数接近某个极限时的值。这种极限在微积分课程中很常见,可以参考下面的示例来表述:

证明 都等于1/2.

第二个极限表达式在数学上很容易实现:使分子 为 0,就会得到 0.5 的值,符合预期。第一个极限表达式比较棘手,因为使分子和分母中的 都为 0 会导致一个未定义的 0 除以 0。不过,当 无限接近 0 时,函数值接近一个定义明确的数字。在数学上,可以使用 洛必达法则,即两个函数的商的极限与这些函数导数的商的极限相同。利用微积分中的微分法则,可以看出第二个极限表达式的分子和分母分别是第一个极限表达式的分子和分母的导数,因此第一个极限表达式的值也是 1/2。在下图所示的 COMSOL Multiphysics® 绘图中,我们将两个函数绘制在一个以接近 0 的值为起点的区间内。从图中可以明显看出,当函数参数接近 0 时,两个函数值都接近 0.5。

要添加图片中的标题,请使用以下文本:

Show that \[\lim_{x\to 0}{\frac{e^x-1}{2x}} \textrm{ and} \lim_{x\to 0}{\frac{e^x}{2}}={\frac{1}{2}}\]

以下是关于这个标题的一些注意事项:

  • 只使用了一个使用显示数学模式的数学表达式片段。要使 “and” 以罗马字体显示为正常文本,需要使用 \textrm 命令。另一种方法是使用两个数学表达式,并在表达式之间用空格将“and”括起来。
  • LaTeX 中的 \lim\frac 命令分别表示创建一个极限和一个分数。极限下标中的 \to 命令是指向右的箭头。
  • 带有下标 的极限占用了一些垂直空间,因此最好使用带有 /[\] 的显示数学模式。如果使用内嵌数学模式,下标箭头就不能位于 下方,如图所示:

数学表达式的屏幕截图。

为了使这个特殊的标题在使用内嵌数学模式时看起来更美观,可以使用 \displaystyle 命令将 \lim_{x\to 0} 部分括起来,将其转换为显示模式: \displaystyle{\lim_{x\to 0}}。这样,它看起来就会像下图中的所示标题一样。

使用数学表达式作为绘图标题的一维绘图。
该绘图使用了包含数学表达式的标题,表明该表达式的结论与绘图是一致的,因为当 x 接近 0 时,两条曲线都接近 0.5。

结束语

这篇博客,我们列举了几个示例来说明如何在绘图标题中使用 LaTeX 来增强数学表达式。我们还讨论了如何创建多行绘图标题。你可以使用任何 LaTeX 命令,没有限制地在绘图标题中加入方程和其他数学内容。希望这些示例能为你在自己的仿真项目中创建绘图标题带来灵感。

]]>
//www.denkrieger.com/blogs/using-latex-to-add-mathematical-expressions-to-plot-titles/feed/ 0
批处理扫描功能的优势 //www.denkrieger.com/blogs/the-power-of-the-batch-sweep //www.denkrieger.com/blogs/the-power-of-the-batch-sweep#comments Thu, 18 May 2023 22:44:00 +0000 http://cn.staging.comsol.com/blogs?p=170991 你有没有过通宵运行大量参数化扫描,第二天早上发现仍未完成求解的经历?在等待最后几个参数收敛的时候,你可能希望先查看已经计算出的参数解。批处理扫描 功能是解决上述问题的有效方法,计算好的参数化解会自动保存为文件,便于打开进行可视化及结果评估。

编者注: 这篇博客最初发表于 2016 年 2 月 2 日,为呈现软件的新特征和新功能,对其进行了更新。

批处理扫描:大多数仿真分析的有效解决方案

在上一篇博客中,我们探讨了批处理扫描中任务并行的附加值。这篇文章,我们将讨论批处理扫描的另一个重要功能:在求解过程中检索参数化扫描的解。使用批处理扫描可以随时检索部分解,即使在求解器无法求解某些参数时,也可以这样做。当所研究的问题中每个参数的解都独立于其他所有参数的解时,就适合采用批处理扫描。

在求解器扫描过程中,希望查看部分解的情况很多,例如:

  • 当基于表格中的输入数据扫描时,你发现求解表格中列出的一部分数值所需的时间格外长,但无法判断具体是哪些值。这时,你希望能查看尽可能多参数的解,来判断是否需要中止求解过程,或者在所有扫描完成之前开始分析结果。
  • 你用数学表达式描述某一材料属性或边界条件,结果却得到某些参数的非物理解。
  • 你用 C 语言或 FORTRAN 语言编写了一个有关定义复杂材料的外部函数,但未检查所有的输入数据,结果某些参数值的输出数据出现了异常。
  • 你正运行参数化扫描,其中一个参数为几何尺寸,但参数尺寸的范围定义得过大。当你意识到这一点时,求解已经运行了很长时间,所以不希望停止。

如果你在以上任何一种情况中运行批处理扫描,每个参数都能在一个单独的进程中求解,这个进程可以独立开始和停止。求解完成的参数值都被存储为一个.mph 文件,你可以在求解过程中打开任何数量的文件进行查看。在下面的示例中,你将了解如何将探针结果保存到文本文件中。

静电传感示例

为了演示批处理扫描,我们使用 COMSOL Multiphysics® 案例库中的 电传感器示例模型来展示批处理扫描的操作。此模型展示了如何通过在盒的边界施加电位差,获得盒内的图像信息。模型计算的表面电荷结果取决于盒内物体的介电常数,该结果也可用于判断例如盒内是否存在物体,甚至可以帮助确定物体的形状。电阻抗断层成像案例中也采用了类似的技术进行医疗诊断,但使用的是交流电。

电传感器模型中盒外的表面电荷。
盒外的表面电荷。

屏幕截图显示了盒内待检测的物体。
盒内待检测的物体。

原示例模型中将物体厚度拉伸为 0.8 米。本文示例中,物体厚度被拉伸为 0.5 米。

参数化扫描的输入数据

假设有一组包含十个样本物体,这些样本形状相同但由具有不同介电常数的材料制成。我们要探究的是检测物体及其形状的能力,不管物体由什么材料制成。十个样本的介电常数值已存储在内插表 int1 中。实际上我们不会使用这个表格进行任何插入操作,而是把它作为一种存储和调用表格值的简便方法。(在这里,我们可以将内插方法从默认的 线性内插 改为 最相邻内插,但在本示例中结果不变。)

模型开发器中的介电常数表格。
介电常数的表格。

现在用全局参数 sn(样本编号的英文缩写)对这个样本集添加索引。

使用全局参数对样本组添加索引。
作为全局参数的样本编号参数 sn 。

此模型在材料节点下定义了三种材料。材料3表示盒内的星形物体,材料 2表示其他物体。材料 1对应盒内物体周围的空气。我们通过适当调用材料3材料属性中定义的内插表 int1,来改变星形物体的介电常数,使用的语法为 int1(sn)。请注意,这里无需考虑单位,因为介电常数是无量纲。

星形物体的介电常数。
通过参数 sn 在表格中索引得到的星形物体的介电常数。

探测表面电荷

为了监测星形物体上方的表面电荷,我们在盒子上表面的 x = 1.5,y = 1.5,z = 1.0 位置处定义了一个边界点探针。为了快速定义此位置,我们可以单击物体上表面的一个大致位置,然后在 设置 窗口中手动调整坐标值。

所研究物体上方的边界点探针。
研究物体上方的边界点探针

至于点探针表达式,我们选择用变量名 es.nD 和单位 nC/m^2 来表示表面电荷的大小(模值)。

点探针表达式设置窗口的近视图
单位为 nC/m^2 的表面电荷的 点探针表达式

稍后,我们会将此探针的输出写入文本文件。为此,单击 更新结果。此操作会生成 派生值表格项

边界点探针设置中的更新结果按钮
探针的 更新结果 按钮

在 COMSOL Multiphysics® 中设置批处理扫描

默认情况下,软件不会显示批处理扫描选项。可以在模型开发器的工具栏选择 显示更多选项 来启用该选项。在 显示更多选项 对话框选择 研究>批处理和集群

显示更多窗口中打开的批处理和集群研究
在模型开发器中的 显示更多选项 菜单激活 的高级研究选项

如果右键单击 研究 节点,可以在列表中选择 批处理扫描 (单次运行,选择 批处理,而不是 批处理扫描)。

 COMSOL Multiphysics中的批扫描菜单选项。
研究 菜单中选择 批处理扫描

在如何定义扫描范围方面,批处理扫描与参数化扫描相似。在这里,我们使用整数 1 到 10 来定义参数 sn 扫描时的步长。

扫描的参数范围。
批处理扫描的参数范围。

批处理扫描 模型树 设置 窗口的 批处理设置 栏中包含了用于控制结果的设置。

在批量扫描设置窗口中展开的批量设置部分的屏幕截图。
控制批处理扫描的设置。

默认文件名为 batchmodel.mph,用于自动创建一个 MPH 文件序列,其中的每个文件对应于扫描中的每个参数。可以更改文件名,不过此处演示的示例仍保留此文件名,生成的 MPH 文件名将分别为 batchmodel_sn_1.mphbatchmodel_sn_2.mph,……,batchmodel_sn_10.mph。稍后,我们会探讨这其中的每个文件为何是一个可以单独打开并执行后处理的完整的模型。

扫掠前 部分有两个选项:清除网格和清除解。我们清除了这两个复选框,因为只有在执行远程集群计算或云计算时,这两个选项才真正有用,并希望通过网络传递的文件尽可能小(只有使用网络浮动许可证时才能这样做)。

在扫描过程中 部分有两个选项:同步解同步累积探针表同步解 将存储的所有文件中的结果从开始仿真时收集到“主模型” MPH 文件中,最终结果与运行参数化扫描的结果极其相似。在这个示例中,选择清除这个复选框是因为我们假设只对查看单个结果感兴趣。此外,如果扫描的范围过大,收集全部结果可能会消耗大量时间和内存。保持选中 同步累积探针表 状态,表示对探针的输出结果进行累积,与完整的求解信息相比,收集这种信息非常轻松。

扫掠后部分中,我们勾选输出模型到文件复选框,确保自动保存的 MPH 文件包含(每个参数的)解,同时会增加磁盘空间。

在下一节,将 群集计算 设置更改为 用户控制。然后,将 目录 更改为 C:\COMSOL。这就是存储所有批处理文件的位置。

如果你有网络浮动许可证,并且希望使用远程安装的 COMSOL 软件执行这一计算,可以使用 指定服务器路径 选项。本文我们只讨论包括单用户许可证在内的 COMSOL 所有许可证类型都能使用的功能。

将探针数据保存到文件

为了将探针数据保存到文件,我们不能使用常规的探针表,而是使用一种特殊的 累积探针表。第一步是手动添加一个探针表,即右键单击 结果 下的表格 节点,将表格名称改为 保存的探针表。稍后,我们会通过批处理扫描在其中写入累积探针表的数据。当需要将异步生成的数据在表格中按照一定的顺序排列时,就可以使用累积探针表。请记住,一般来说,我们不清楚不同的参数对应的解应该按照什么顺序排列,而累积探针表帮我们解决这一难题。

屏幕截图显示了如何添加保存的探针表
手动添加保存的探针表。

在保存的探针表设置中,将 存储表 设置改为 模型和文件中。在本示例中,我们将探针结果保存到 C:\COMSOL\results.txt。如果扫描的数量过于庞大,则可能需要提高 最大行数 的值(这通常适用于需要大量扫描的情况或瞬态解)。

保存的探针表设置的屏幕截图。
保存的探针表设置。

批处理扫描 设置的 求解时输出 一栏中,将 输出表 改为 保存的探针表。这就是我们的累积探针表。

突出显示具有批处理扫描的模型开发器,并展开具有求解时输出部分的相应设置窗口。
保存的探针表 用作 累积探针表

运行批处理扫描

现在,可以单击 计算 启动批处理扫描。求解过程中,图形窗口下的信息窗口显示一个 外部进程 窗口。

外部进程窗口屏幕截图
外部进程窗口

通过外部进程窗口,我们可以了解正在运行的批处理进程及其状态的概况。在本文示例中,共有十个这样的进程,分别对应扫描中的每一个参数。

在这个阶段,大部分的用户界面不能交互,但可以单击进度条左侧的脱离作业,重新获得对用户界面的控制。

脱离作业选项
脱离作业 选项

使用脱离作业后,就看不到进程状态的实时更新了,不过这时可以对各个进程执行操作。

屏幕截图显示了脱离作业后外部进程窗口。
脱离作业后的 外部进程 窗口。

此时,我们可以停止所有进程,或者单击某一行来停止该进程,甚至可以单击表中状态为 完成 的进程,在另一个 COMSOL Desktop 窗口中打开它。在新打开的窗口中,我们可以执行任何可视化操作或后处理任务,这些任务通常需要在模型中运行。

外部进程窗口的打开文件选项。
选择一个完成的外部进程,单击 打开文件,即可在一个新的 COMSOL Desktop 窗口中显示结果。

单击 外部进程 窗口左上角的 附加作业,就可以重新显示进程状态的实时更新。

屏幕截图显示了外部进程窗口的附加作业选项。
外部进程 窗口附加作业。

探针结果文件

我们可以使用 Notepad 等文本编辑器打开包含探针输出的 results.txt 文件。

探针结果近图
包含边界点探针结果的 results.txt 文本文件。

我们也可以在求解过程中查看这个文件,从而在全部参数都完成收敛之前快速浏览结果。不仅是批处理扫描可以这样做,对于常规的参数化扫描,在表格保存为文件后也可以在求解过程中查看。

使用批处理扫描功能时需要考虑的其他因素

性能

如果扫描中每次计算速度都很快,并且不需要很大的内存,如上文中的示例所示,批处理扫描所需的计算时间会比常规的参数化扫描的时间长。因为采用批处理扫描时,每个参数都会启动一个 COMSOL Multiphysics 进程。对于每一个计算要求都较高的参数扫描,这个额外启动进程的时间相对较短,可忽略不计。

参数错误处理

假设我们调用的是用户定义的外部 C 语言函数,而不是内插表;同时假设我们在 C 代码中犯了一个编程错误,导致一个或几个参数在扫描时出现分段错误。这种情况下,我们仍然可以浏览 C:\COMSOL 目录(或者指定保存 .mph 文件的目录),打开其中的文件执行可视化及后处理,甚至进一步的计算工作。

在上文示例中,演示此类错误的一个简单方法是将其中的一个介电常数值设为零,然后启动批处理作业。介电常数为零意味着我们向求解器提供了一个定义模糊(甚至是异常)的方程(类似于 0 = 1),此时会显示一条错误消息,提示求解器找不到出错参数的对应解。同样地,仍可以打开保存的 .mph 文件并执行后处理。如果更正了表格,将介电常数改成非零,就可以重新运行批处理作业并且不会收到错误消息。请注意,如果错误一直存在,则对 外部进程 窗口附加作业时始终会提示错误。此时,仍会更新累积探针表中与其他参数对应的项。更正错误后继续运行扫描,对外部进程窗口附加作业后就可以再次访问该窗口了。

管理多核处理

如果你有一台多核计算机,这是现代电脑的常见配置,就可以更改 批处理 的相关设置,控制批处理扫描中可运行的并发进程数,以及每个进程可用的内核数。假设你使用的是六核机器,那么可以将 并发作业数改为三,将 内核数 改为二。这样设置后,可以并行求解三个参数,每个求解器进程可使用两个内核,所以对于上面的示例,仿真时间减少了一半。

如果所运行的仿真中每个参数的计算量都很少,可以增加并发作业的数量,使其与计算机的内核数相同。对于计算量较大的问题,应该保持并发作业数为一,以充分利用求解器的多核处理能力。

多核批处理设置。
批处理设置中的并发作业数和内核数。

请注意,也可以在批处理扫描 节点研究扩展 一栏下控制并发作业数。这种情况下,软件会用实际内核数除以并发作业数,自动计算出“内核数”。(要实现自动计算,请不要勾选 批处理 设置下的 内核数 复选框,就不会使用以灰色显示的数字 1。)

批处理扫描和 App 开发器

借助 App开发器,我们可以在用于构建 App 的模型中使用 批处理扫描 节点。此时,App 充当批处理扫描的“驱动”,且无法在 外部进程窗口中看到相关信息。也无法在该窗口中看到保存的 .mph 文件,就像此 App 根本没有用户界面。运行结束后,我们可以打开这些文件进行传统的模型后处理工作。如果需要更灵活地创建可使用 批处理扫描 的App,可以使用一个内置的方法来包含 批处理扫描 ,详细请参考 Programming Reference Manual。(注意,在这里使用“录制代码”工具的作用很有限,因为在生成录制的代码时会与实时运行的批处理命令冲突。)

批处理扫描 vs 集群扫描

COMSOL Multiphysics 的所有许可证类型都可以使用 批处理扫描 功能。如果你有网络浮动许可证,则还可以使用 集群扫描 这一附加功能。这两个扫描功能很相似,不过 集群扫描 选项多了远程计算和集群配置等设置。集群扫描功能可以将大量扫描分散到一个(很可能是大型的)集群上。这种做法可以显著提高效率,因为独立扫描(也称作易并行计算)所涵盖的范围通常很广。如果你已熟练掌握了批处理扫描,那么运行集群扫描也不是什么难事。

下一步

想亲自动手尝试模拟这篇博客中讨论的模型吗?欢迎进入 COMSOL 案例库,下载示例模型:

拓展阅读

阅读 COMSOL 博客,了解更多关于批处理扫描和集群扫描的文章:

]]>
//www.denkrieger.com/blogs/the-power-of-the-batch-sweep/feed/ 4
在 COMSOL® 中计算和可视化卫星轨道 //www.denkrieger.com/blogs/computing-and-visualizing-satellite-orbits-in-comsol //www.denkrieger.com/blogs/computing-and-visualizing-satellite-orbits-in-comsol#respond Wed, 09 Mar 2022 09:55:10 +0000 http://cn.staging.comsol.com/blogs?p=294211 COMSOL Multiphysics® 软件常用于求解涉及偏微分方程 (PDE) 场解的问题,但也可以求解常微分方程 (ODE)。例如,我们可以通过求解牛顿第二定律来解决卫星绕行星运动的问题。求解这个方程非常简单,我们可以结合使用 COMSOL 软件的求解功能与结果呈现功能,制作一些非常漂亮的可视化效果图。接下来,让我们了解更多内容!

计算卫星轨道

在对绕地球运行的卫星进行建模时,我们可以先写出卫星受到的引力表达式

\mathbf{g}= -\nabla \phi

其中, 是一个势函数。

我们将使用以地球为中心的笛卡尔坐标系。考虑到地球略呈非球形这一事实,使用以下表达式来表示势能:

\phi = \frac{\mu_{\oplus}}{r}+\frac{J_2} {r^3}P_2\left( z/r\right)

其中,地球的标准引力参数 是地球中心到卫星的距离, 是地球位势模型的球谐展开式的第二项, 是第二个勒让德多项式

势能中的第二项解释了地球赤道隆起并导致了卫星进动

我们可以使用 COMSOL Multiphysics 中内置的一个数学函数—— legendre() 函数写出势能表达式。还可以使用内置算子 sum() 在势能函数中包含高阶项,但在本文的这个例子中它们非常小,所以忽略了这些项。

如果假设卫星上只有引力,那么卫星位置的控制常微分方程可以写为:

\mathbf{\ddot{x}- g} = 0

求解这个方程需要位置的初始条件 和速度 。卫星的位置通常以开普勒轨道单元的形式给出。对于一般的椭圆轨道,由偏心率 ,半长轴 ,交角 ,升交点经度 以及近心点角 定义一个椭圆。真正的近点距离 定义了开始时沿该椭圆的位置。升交点的经度、倾角和近点角对应于 Z-X-Z 真欧拉角,我们可以使用 COMSOL Multiphysics 中的 旋转坐标系 特征完成定义。当定义好坐标系后,如下图所示,它提供了一组九个矩阵分量,可以通过这个坐标系转换。

COMSOL Multiphysics UI的特写视图显示了突出显示旋转系统功能的模型生成器,以及相应的设置窗口,其中旋转和原点部分已展开。
旋转坐标系特征的屏幕截图。

例如,如果我们将初始真近点角 , 赋于升交点(当卫星向上穿过赤道时),就可以通过更多的数学计算来计算卫星在轨道平面中的初始位置和速度。然后,我们可以使用变换矩阵的分量来获得全局坐标系中相对于行星中心的初始位置。由此,我们有了完整的模型定义,并准备好设置常微分方程并对其进行求解。

我们可以使用 全局常微分方程和微分代数方程 接口并输入全局坐标系中位置的方程,如下面的屏幕截图所示。简单地把 t 到加到要求解的变量就会得到时间导数,加两次就会得到二阶时间导数,因此表达式 X_stt 等价于加速度矢量的 x 分量。另一方面,当处理诸如引力势之类的表达式时,是通过 d() 算子完成微分的,所以 d(Potential,X_s) 是引力的 x 分量。

COMSOL Multiphysics用户界面的特写视图显示了突出显示全局方程式1的模型生成器,以及相应的设置窗口,其中展开了全局方程式和单位部分。
求解关于行星中心的卫星位置的 常微分方程。注意变量和方程的单位是如何设置的。

COMSOL Multiphysics用户界面的特写视图显示了突出显示全局方程式1的模型生成器,以及相应的设置窗口,其中展开了全局方程式和单位部分。
求解该位置的常微分方程需要定义半径和引力势的表达式。

这组方程和常微分方程可以用任何类型的瞬态求解器求解,但无论哪种类型,我们都需要研究相对容差。根据其他建模需求,可能首选默认的 BDF 求解器,因为它还允许:在瞬态求解期间隐式触发方程中的变化。

可视化轨道

当求解决了方程,我们就可以绘制卫星的位置和高度随时间的变化,我们可能还想绘制轨道上的航天器可视化图像。为此,接下来我们看看如何使用一些结果可视化功能。假设我们有一个代表我们的航天器的 CAD 模型,如下图所示。图中还显示了一组矢量,用于定义面向速度和面向天底的方向。正如已通过 旋转坐标系 特征所描述的,这两个单位矢量的叉积平行于轨道平面的法线。

航天器的简单CAD模型,以及指示速度方向和最低点方向的矢量。
航天器的简单 CAD 模型,显示了其在轨道上是如何定向CAD 坐标系的矢量。

在绘制航天器之前,我们要做的第一件事是创建地球的可视化图像。为此,我们可以使用参数化表面 数据集,根据纬度和经度写出球体的表达式。

COMSOL Multiphysics UI的特写视图,显示模型生成器,突出显示参数化曲面数据集,以及相应的设置窗口,其中数据、参数和表达式部分已展开。
参数化表面 数据集,可用于生成简单的基于形状的表达式,例如球体。

我们现在可以使用 图像 绘图功能来显示映射到数据集的图像。由于参数化表面是根据纬度和经度设置的,因此可以将使用等量矩形投影的图像映射到其上,如下图所示。

COMSOL Multiphysics UI 的特写视图显示了模型生成器,其中图像节点高亮显示,相应的设置窗口中的数据、文件和映射部分展开。
参数化表面 数据集上绘制的图像数据。

接下来,我们可能还想绘制轨道路径。这可以通过 点轨迹 图类型来完成,它允许我们输入轨迹数据和航天器随时间的位置,并沿着其路径绘制一条线。此外,标注 绘图类型允许我们评估和绘制沿路径变化的表达式。

卫星绕地球运行的轨道和速度信息图。
使用点轨迹和标注绘图工具来可视化卫星轨道和速度信息,以及相对于地面站的速度。

最后,我们来绘制一个航天器绕地球运动的比例可视化图。这可以通过变换三维 数据集来完成,该数据集允许根据一组基本向量和平移向量适当地缩放和重新定向航天器的一般转换类型。简单来说,就是我们只使用定义速度和最低点方向的向量以及垂直于轨道平面的向量来重新定位航天器围绕地球的方向,如下所示。

COMSOL Multiphysics 用户界面的特写视图,显示模型生成器,突出显示 Transformation 3D 数据集,以及相应的设置窗口,其中数据和转换部分已展开。
变换三维 数据集可用于重新定向数据集。

 

宇宙飞船在地球轨道上的动画。

结束语

本文我们演示了如何求解计算卫星绕行星运动的常微分方程。在引力势函数中包含更多项以查看它们的贡献非常简单,并且可以将额外的力添加到常微分方程来解释大气阻力和其他导致轨道衰减的因素。

或者,为了简化问题,我们可以用随时间变化的位置显式方程的替换这个常微分方程。不过,无论我们如何计算该轨迹,都可以使用结果功能来创建各种有趣且有用的可视化效果。

动手尝试

单击下面的按钮,进入 COMSOL “案例库”,尝试自己建立轨道上的航天器模型:

NASA Goddard Space Flight Center Image by Reto Stöckli (land surface, shallow water, clouds). Enhancements by Robert Simmon (ocean color, compositing, 3D globes, animation). Data and technical support: MODIS Land Group; MODIS Science Data Support Team; MODIS Atmosphere Group; MODIS Ocean Group Additional data: USGS EROS Data Center (topography); USGS Terrestrial Remote Sensing Flagstaff Field Center (Antarctica); Defense Meteorological Satellite Program (city lights).

]]>
//www.denkrieger.com/blogs/computing-and-visualizing-satellite-orbits-in-comsol/feed/ 0
在 COMSOL Multiphysics® 中创建纹影图像 //www.denkrieger.com/blogs/creating-schlieren-type-visualizations-in-comsol-multiphysics //www.denkrieger.com/blogs/creating-schlieren-type-visualizations-in-comsol-multiphysics#respond Thu, 17 Feb 2022 04:20:49 +0000 http://cn.staging.comsol.com/blogs?p=293341 流体流动计算仿真中存在的一个问题是实验相关问题。尽管我们在 COMSOL 中可以很容易地生成漂亮的三维可视化数值结果,但将这些结果与实验结果进行比较通常比较困难。纹影成像是一种实验技术,它可以生成一组含三维流场的二维图片。事实上,在 COMSOL Multiphysics® 软件中也可以很容易地创建这种成像图。下面,我们来了解更多详细内容。

纹影成像的背景

纹影成像技术的历史可以追溯到很远,甚至可能早于书籍记载。古代穿越沙漠和海洋的旅行者们都非常熟悉海市蜃楼的原理,例如海市蜃楼 颠倒的帆船等物体的遥远幻影(这可能是导致Flying Dutchman这类寓言产生的原因)。发生这些现象是因为光线在穿过不同密度的空气时会轻微弯曲。这种原理可能在1000 年前就以某种形式被人们所理解,但直到最近 500 年左右,人类才开发出这种实验技术

虽然纹影成像方法有很多变化,但基本操作原理非常简单。流体(或固体)内的任何温度或压力变化都会导致密度局部变化,而密度会影响折射率。对于大气,折射率 与密度 满足 Gladstone-Dale 关系:

n-1 = G\rho

对于可见光, 约为 0.23 cm3/g。

需要注意的是,上面的表达式只是一个简单的起点,我们可以使用更完整的表达式,对于气体混合物和反应流,还有更复杂的表达式。开发纹影成像实验方法的目的是捕捉到流体中这些密度变化的气流中光学图像。

纹影成像设置图,显示光源和焦点,以及显示流量的红线和箭头。
纹影成像设置。

典型的纹影成像实验装置如上图所示。此装置有两个透明的窗口,例如围绕风洞的两侧有一个流场。我们首先假设流场没有变化。在一侧有一个光源,以及一些提供均匀照明的光学元件(透镜或镜子)。通过几何光学方法,我们将这种光视为一组穿过流场的平行光,然后让它们通过另一组将光线聚焦到图像平面上的光学元件。

图中显示了不同角度的灰色条带红线,刀口靠近中心,挡住了一半光线。
焦点处未受干扰的光线。用刀刃挡住一半的光,并忽略边缘处的衍射。

但是我们要知道,所谓的焦点不是一个单一的点。光不能被聚焦到一个点上;聚焦光束总会有一些有限的半径。你可以通过了解电磁波相关知识来理解这个内容。

但是,对于本文而言,我们只需要了解一个关键点,就是放置在焦点处的障碍物会遮挡一部分光。这已经足够保持这个几何光学方法了。如果我们在焦点处放置一个刀刃(实验上通常是剃须刀片),就可以阻挡全部光线的一半,但仍然可以获得完整的图像,尽管光强只有一半。为了便于理解,我们可以考虑将每条光线看作具有一定的有限厚度,如上图所示。

一个淡黄色的椭圆形,两边有蓝色和黑色的柱子,注解和红线显示光线的方向。
折射率略有变化的区域会稍微改变光线的方向,但不会改变它们在出射平面上的位置。

现在,我们来考虑当流动中存在密度变化时会发生什么。我们已经知道折射率是密度的函数,所以在示意图中引入一个小的折射率变化,看看会发生什么。上图显示了光线的关键行为。跳过整个推导,我们仅强调以下几点:

  1. xy 平面中折射率的变化将导致光束在沿 z 方向传播时非常轻微地改变方向(角度)
  2. 假设当光线通过实验域时,光线在 xy 平面中的位置变化可以忽略不计

也就是说,在位置 (x,y) 进入域的任何光线都将离开其在xy平面中的原本位置,但会朝着稍微不同的方向前进。接下来,我们看这对焦点有什么影响。正如我们在下图中看到的那样,折射率的变化会稍微扰乱光线,因此稍微多一点(或稍微少一点)的光线会被刀刃遮挡。这在图像平面上显示为亮区和暗区,并形成基本操作原理。

这是一幅扰动光线的插图,带有不同角度的交叉灰条和红线,以及刀口。
焦点处的扰动光线。对于以略微不同的角度入射的光线,刀刃阻挡的光量不同。

刀刃可以旋转到平行于 x 轴或 y 轴,或者可以被针孔光束挡板代替,每个挡板都会产生不同的明暗图案。纹影图像中的这些亮带和暗带对应于流动域中的以下积分:

障碍物类型 方程
平行于 x 轴的刀刃
平行于 y 轴的刀刃
针孔遮挡板

事实证明,这些积分在 COMSOL Multiphysics 中实现起来非常简单。

在 COMSOL® 软件中创建纹影图像

在创建图像之前,我们需要先介绍计算流体动力学的一个相关知识:如何处理可压缩流体 。简单来说,出于数值建模的原因,我们经常假设流体具有恒定的密度。从流动模型的角度来看,这是完全合理的。小于约 1% 的密度变化可能不会对速度场或压力场的解产生太大影响,但会显著改变折射率。因此,如果在假设密度不变的情况下对流动进行建模,例如使用布辛涅斯克近似时,请确保使用压力场(如果计算了温度场)对空间密度的变化进行后评估。对于大气空气,宜采用理想气体定律,但请确保这里使用的是绝对压力而不是表压。

一旦我们在建模空间中建立了密度变化的表达式,就可以用它来计算折射率分布以及折射率在一个或两个方向上的导数。为此,我们使用了内置的微分算子。例如,如果密度表达式是变量 rho,我们可以将 x 导数作为 d(rho,x)。我们现在只需要沿流动的方向对该表达式进行积分,并将它们绘制到平行于流动的平面上。为此,我们使用了广义投影算子,我们甚至可以投影到流动域之外的边界上,如果我们希望使用比存在于流动域边界上的网格更精细的网格来评估该算子,这将是非常有利的。

我们还需要考虑当流动中有不透明障碍物时会发生什么。在这种情况下,我们不想用上面的任何一个积分进行求解。我们可以使用从 COMSOL Multiphysics 6.0 版开始提供的CAD 导入模块设计模块,或 LiveLink™ 产品中提供的工作平面 投影 功能,将任何障碍物的轮廓投影到光学出射平面边界上,并且只评估非阴影表面上的积分。

一个盒子的三维模型,里面有一架蓝色的纸飞机,以及显示盒子周围流动的线条。
使用 工作平面投影 功能,将几何图形的轮廓投影到平面上。

在我们的建模中使用这些技术,可以制作与纹影成像设置的实验结果相关的图。下图是围绕一个物体的高马赫数流模拟,这与 含凸起流道中的超音速三维教程模型中演示的类似。同样的技术也可以用于声学模型的结果可视化研究中。

一个3D模型,描绘了风洞中的一架蓝纸飞机。
通过 广义投影 算子创建的与超音速风洞流道模型的纹影成像相关的图像。

下一步

想了解有关 COMSOL 软件中 CFD 建模功能的更多信息吗?请联系我们!

]]>
//www.denkrieger.com/blogs/creating-schlieren-type-visualizations-in-comsol-multiphysics/feed/ 0
图形窗口:高效又美观的后处理功能 //www.denkrieger.com/blogs/the-graphics-window-effective-beautiful-postprocessing //www.denkrieger.com/blogs/the-graphics-window-effective-beautiful-postprocessing#respond Tue, 01 Feb 2022 03:09:22 +0000 http://cn.staging.comsol.com/blogs?p=305101 COMSOL Multiphysics® 软件中的 图形 窗口和 图形 工具栏可用于简单直接地对结果进行常规后处理,只要您了解这些功能背后的原理和更高级的技巧,就可以操控相机和视角,创建出高质量的视觉效果,获得既美观又包含各种信息的视图。

编者注:这篇博客最初由 Lexi Carver 撰写,发布于 2014319日。现在已经更新,以反映新增的后处理功能。

全能的视图节点

在 COMSOL 软件中,通过鼠标点击和移动 图形 窗口以及 图形 工具栏按钮对几何视图进行直接处理的方法有很多。所有的视图改变都会显示在 视图 节点中,包括一般视图和照明选项,环境遮挡视觉效果;环境、透明度和剪裁设置。

COMSOL Multiphysics 中的模型开发器窗口和图形窗口的截图。在模型开发器窗口中选择了视图节点,并显示了一些设置,包括环境光遮蔽复选框。图形窗口显示了无人机拓扑优化模型的结果。
选择了 视图 节点的 模型开发器 窗口,显示了为模型添加阴影的 环境光遮蔽 复选框等视图设置。图形 窗口显示了无人机机身拓扑优化模型的仿真结果。

光、相机和操作

COMSOL 中有多方法可以操控相机来获得更吸引人和信息丰富的视图。比如,您可能希望在查看一个较大模型的同时,放大模型中一个小关注点;或者你的模型可能具有高纵横比。在这些情况下,操控相机有助于显示模型中重要的部分。

超音速喷射器的模型。它的入口在前景中,出口在后景中。

曲轴网格,它的网格单元在前景中可见。

一个超音速喷射器,前景中的入口是我们的一个关注点,后景中的出口也可以看见(左)。曲轴的网格,前景中可以看到网格单元,但仍保持完整的模型(右)。

所有称职的摄影师(不管是业余的还是专业的)都知道,光照对于任何一张显像良好的图像都非常重要。但是使用 COMSOL Multiphysics 工作时就不一定需要了解这些,通常软件默认的照明设置就足够了。当然,照明确实有助于在正确的场景中展示模型。以下图中万圣节主题的南瓜模型为例,我们可以使用软件中的各种照明功能在镂空的南瓜中创建出蜡烛产生的独特的黄光。

A model of a jack-o'-lantern with a distinct yellow glow inside of it.

南瓜内的黄色点光源产生了黄色光晕,使用软件内置的 环境光遮蔽 特征可以添加阴影。

你可能会想:这些效果都很好,但我还想看到一些能显示实际物理场的结果。下图中的模型使用 COMSOL 6.0 版本软件传热模块的新功能,模拟了一个用火炉加热的房间内的表面对表面辐射。热量通过辐射传递到周围的表面,再经传导扩散到家具中。模型中添加了一个照明特征以突出显示模型表面辐射热通量的可视化效果。有关照明特征和相机功能,请阅读 COMSOL 学习中心的文章 使用图形窗口,了解更多详细内容。

一个用火炉加热的房间表面辐射热通量的模型。
由火炉加热的房间内表面的辐射热通量。

隐身特效:隐藏实体

我们一直在讨论如何修改 视图 节点,来突出模型(和仿真结果)中关注点的方法。视图 节点的另一个用处是能够在预处理和后处理中隐藏一些几何实体。同样,这个功能可以直接从 图形 工具栏访问,不过操作此功能获得的结果却是通过 视图 节点访问的。隐藏实体是大多数仿真中使用的一种技术,因为很多情况下,一些重要的结果会被壁挡住而无法看到。在下面的三个示例中,如果我们不隐藏一些不关注的部分,就无法查看结果。您可以阅读 COMSOL 学习中心的文章如何选择几何,了解如何使用隐藏功能。

  • 电力变压器的木结构中的损耗分布,其中隐藏了部分木结构和两个线圈的一半,以看到更多内部结构。
    电力变压器的木结构中的损耗分布,其中隐藏了部分木结构和两个线圈的一半结构,从而可以看到更多内部结构。
  • 室内音乐厅模型中的射线声学仿真。为了看到仿真结果,天花板、前墙和近墙都被隐藏起来了。室内音乐厅模型中的射线声学仿真。视图中隐藏了天花板、前壁和近侧壁,以查看仿真结果。
  • 风力发电机复合材料叶片表层(部分被隐藏了)和翼梁的von Mises应力分布。
    风力发电机复合材料叶片表层(部分被隐藏)和翼梁的 von Mises 应力分布。

结语与后续步骤

要了解如何使用文中讨论的特征和更多用户界面功能,请查看 COMSOL 学习中心的课程,了解如何在 COMSOL Multiphysics 中浏览用户界面。

]]>
//www.denkrieger.com/blogs/the-graphics-window-effective-beautiful-postprocessing/feed/ 0
如何计算 CAD 几何文件的投影面积 //www.denkrieger.com/blogs/how-to-compute-the-projected-area-of-a-cad-file-in-comsol //www.denkrieger.com/blogs/how-to-compute-the-projected-area-of-a-cad-file-in-comsol#comments Thu, 20 Jan 2022 03:02:49 +0000 http://cn.staging.comsol.com/blogs?p=289861 你有没有遇到过想要计算 CAD 几何文件的投影面积的时候?这在很多情况下都很有用,例如快速估计空气动力阻力。如果你只需要计算几个方向上的投影面积,有好几种方法可以做到;但是,如果你想计算所有可能方向上的投影面积怎么办?今天,我们将介绍一种计算和使用这类数据的有效方法。

几种简单的方法

假设有一个复杂的 CAD 几何图形,我们首先要考虑的是:这个几何图形沿特定方向的投影面积是多少?有几种方法可以做到这一点?第一种方法,我们可以使用广义投影算子。这种方法需要围绕整个几何图形绘制一个框,如果想要获得良好的分辨率,就必须进行非常精细的网格划分。由于在整个域上进行网格划分和积分的成本很高,这种方法可能非常耗时。第二种方法是 COMSOL 6.0 中的新功能,即三维模型投影功能。这个新功能可以使我们在空间中绘制工作平面并将三维 CAD 几何文件投影到该工作平面上,然后直接测量这些投影的面积。这种基于 CAD几何文件的方法要快得多,并且不需要任何网格划分,但是需要使用 COMSOL 软件的CAD 导入模块设计模块或 LiveLink™ 产品。如果我们想要计算沿多个不同任意方向的投影面积,上述这两种方法都比较繁琐。

CAD 文件的投影面积由通用投影操作符(左)和设计模块的投影功能(右)确定。
确定投影面积的两种方法: 使用 广义投影 算子,其结果取决于网格(左);使用 投影功能,在一组工作平面上创建投影表面(右)。

一种更通用的方法

相比对 CAD 几何文件划分体网格或添加其他 CAD 操作,我们可以利用投影区域的定义,即:

A_{projected}= \int_A \cos\left( \beta \right) dA

其中,对于那些沿视线方向可见的表面, 是视线与表面法线之间的夹角。

对表面进行积分很容易,但是如何评估项 ?事实证明,当使用无限距离 外部辐射源照射时,我们可以通过 表面对表面辐射 接口获得该项。计算这个项只需要部分面网格,而非体网格。使用此接口甚至不需要求解表面到表面的辐射,因为这种带有阴影的入射外部通量是作为预处理步骤计算的。因此,我们可以简单地对所有表面上的外部通量进行积分,然后除以标称入射通量,就可以得到在 外部辐射源 接口中输入的任何方向的投影面积。由于默认使用四阶高斯积分,因此可以使用相当粗的网格。

显示外部辐射源功能的设置窗口的屏幕截图。
外部辐射源特征可用于设置几何体的光照以计算投影面积。

通过入射通量确定的投影面积,如使用外部辐射源功能预先计算的那样
对通过 外部辐射源 特征预先计算的入射通量进行积分可以获得投影面积。注意机翼的阴影。

在所有方向上提取和使用投影面积数据

通常,我们需要从各个方向提取投影区域。现在我们可以简单地对任何感兴趣的入射方向重新计算上述积分,但计算成本将非常高。

相反,想象物体周围有一个球体,并在该球体上选择有限数量的方向来照射目标。在这些有限的方向集之间,我们可以在整个球体表面上使用线性内插法。但是,在选择这些方向之前,值得一提的是,投影区域将关于通过周围球体中心的任何平面对称。本文中使用的 CAD 几何图形关于中平面对称,所以利用这两个对称性,只考虑位于空间正 xy 象限的四分之一球体就可以了。

接下来,进行以下步骤:

  1. 创建几何,利用 CAD 零件的对称性,用有限数量的点定义观察方向
  2. 计算沿这些方向的投影横截面积
  3. 将数据插值到所有中间方向
  4. 提取这些数据

首先,我们创建一个非常特殊的几何图形,如下图所示。该几何图形看起来像一个四分之一球体的网格,它是通过首先单独创建一个单位球体的一部分的网格,导出该网格,然后将其导入模型的第二个 组件 来创建的。导入的设置是这样的,表面网格的每个单元都是一个单独的表面,每个节点都是一个几何点。该表面位于空间的正 xy 象限。

导入设置的屏幕截图(左)和一个网格,其中每个元素代表一个不同的面(右)。
导入设置的网格,使每个单元代表不同的面。

这些点中的每一个都将代表一个采样方向,我们将评估其投影面积。在这些点之间的每个三角形块上,我们将使用线性有限元基函数对区域进行线性插值,以便可以从任何入射角近似投影区域。

为此,我们在四分之一球模型的所有表面上添加 系数形式偏微分方程接口,将离散化设置为线性,并将因变量的名称设置为 AREA

设置窗口的屏幕截图,显示了用于实现插值的系数形式边界 PDE 接口
设置 系数形式偏微分方程接口将实现插值。

在这个接口中,我们将对几何中的所有点施加 逐点约束 特征,这样就可以对问题进行完全约束,因为所有的节点点都是几何点。这些设置的最终效果是所有其他物理设置都无效,并可以保留它们的默认值。我们将得到每个曲面拐角处的约束节点值之间的线性插值解。

设置窗口的屏幕截图,显示了系数形式边界 PDE 界面中的逐点约束特征。
对模型上的所有点施加 逐点约束特征。

由于需要在每个点设置离散观察方向的投影面积,因此我们使用了以下约束表达式:

AREA-nojac(if(dom==INDEX,comp1.intop1(rad.Gext/1[W/m^2]),AREA))

展开这个表达式,它设置了 AREA每个点的值。首先,整个表达式必须等于 0,因此 AREA 被设置为等于 nojac() 算子的表达式。这个算子意味着其中的表达式没有增加雅可比贡献,有关这个运算原理的更多详细信息,请参阅关于通过符号微分加速模型收敛的博客文章。在这个算子中是 if(logical expression, true, false)语句。这个语句以逻辑表达式 dom==INDEX 开头。每个几何对象(域、边界、边或点)都有一个与之关联的唯一整数:它的域索引 dom。在我们即将进行的研究中,将对这个几何图形中所有点的全局参数 INDEX 进行辅助扫描。

在扫描期间,当逻辑表达式的计算结果为假时,AREA 变量保持不变。当逻辑表达式为真时,得到投影面积,即截获通量除以入射通量的积分。积分算子 comp1.intop1() 被定义在我们的第一个组件中,覆盖 CAD几何文件的所有暴露表面。但是,当计算这个积分时,第一个分量中的 外部辐射源 特征如何得出与第二个分量中的点相关联的方向?我们在第二个分量中的所有点上使用第二个积分耦合变量,并在外部辐射源 方向场中使用它:

comp2.intop2(x[1/m]*(dom==INDEX))

解读这个表达式的方法是:评估第二个组件中的所有点,即 x 位置(或 y-或 z 位置),然后乘以 (dom==INDEX),结果将是 0 或 1。也就是说,我们将仅对当前索引的点评估朝向该点的光照矢量,如下面的屏幕截图所示。

显示组件 1 的外部辐射源功能的设置窗口的屏幕截图。
在第一个组件中,入射辐射方向是根据第二个组件中的几何定义的点位置来设置的。

接下来,我们要扫描索引变量的所有值,我们通过包含辅助扫描的稳态研究步骤 来完成。在这项研究中,我们不需要求解表面到表面的辐射,因为入射通量是一个预处理步骤。

设置窗口的屏幕截图,显示包含辅助扫描的固定研究步骤。
扫过索引变量将获得投影面积。

由于只有扫描中的最后一个值包含所有结果,因此我们可以弃除最后一个解之外的所有内容。这可以通过 组合解 研究步骤完成,如下面的屏幕截图所示。

显示组合解决方案功能的设置窗口的屏幕截图,该功能用于保留扫描中的最后一个解决方案。
使用 组合解 特征仅保留扫描中的最后一个解。

接下来,为了举例说明如何使用这些数据,我们用一个具有 瞬态 步骤的研究来说明。在该研究中,我们将根据与飞机轴对齐的球坐标系在球体表面上追踪一个点,并且向上定义 角。

CAD 模型和投影区域,由一组点表示。
CAD 模型和沿离散方向的投影区域,由一组点表示,以及在一个表面上的插值。沿着在该表面上追踪的一条线的场值可以通过球坐标系上的 广义拉伸算子进行评估。

设置窗口显示常规拉伸操作符。
通过广义拉伸 算子从球体表面的插值数据中提取数据。

对于球坐标系,要从该球体上的任意位置提取数据,我们可以将广义拉伸算子 用作动态探针,通过输入目标映射 表达式的变量,来说明解对称性。

结束语

有多种方法可以计算 CAD几何文件的投影面积。在本文介绍的三种方法中,使用 广义投影 算子的计算成本最高,因为它在一个域上集成并且需要在周围域中使用精细的网格。因此,只有在不能使用其他两种方法时才使用它。第二种方法是基于 CAD 的操作,即使用 投影 特征。虽然这种方法简单、准确并且不需要划分网格,但需要手动设置每个投影方向。最后一种方法,使用 表面对表面辐射 接口是最复杂的设置,但在重用数据以进行进一步的基于方程的建模方面,提供了极大的灵活性。点击下方按钮,下载关于此方法的教程模型文件:

 

]]>
//www.denkrieger.com/blogs/how-to-compute-the-projected-area-of-a-cad-file-in-comsol/feed/ 1
北极精灵使用仿真助推圣诞老人飞行 //www.denkrieger.com/blogs/the-north-pole-uses-simulation-to-help-santa-take-flight //www.denkrieger.com/blogs/the-north-pole-uses-simulation-to-help-santa-take-flight#comments Tue, 21 Dec 2021 07:50:50 +0000 http://cn.staging.comsol.com/blogs?p=285011 今天,我们欢迎一位特邀博主的再次到来,他同时也是 COMSOL 多物理场仿真软件的忠实用户 ! 这位博主来自北极工坊的精灵工程师团队。这群精灵工程师正在北极的一个舒适的工作室中忙碌地工作着,负责为他们的上级提供工程上的技术支持,而这位上级正忙于为世界各地的小朋友和大朋友们传递快乐。现在就让我们来看看在过去的一年里他们都经历了哪些技术挑战吧!

精灵工程师团队遇到的新的工程挑战……

在去年的 12 月,我们精灵工程师团队遇到了一个棘手的问题:礼物派发中可能出现的困难(详情参见:圣诞老人在派送礼物过程中遇到了挑战)。我们当时使用 COMSOL Multiphysics 模型迅速解决了这个问题。从那之后,我们就成为 COMSOL 软件的忠实用户,开始更加频繁地使用 COMSOL 软件帮助我们解决各种工程问题。

今年我们遇到的最大挑战之一,是圣诞老人希望我们建造一个新的拐杖糖火箭,用于升级他的雪橇。如果设计合理,这种配置的火箭在高海拔地区可以明显提升雪橇的速度。然而在去年的一整年里,圣诞老人在家里又吃了更多的曲奇饼干,所以我们必须重新设计雪橇的连接部件,以确保其具有合理的工程强度。设计草图如下图所示。

A line drawing of Santa in a sleigh with candy-cane rockets.
我们遇到的最大挑战就是工程设计图。

我们的设计目标是确保新的圣诞雪橇结构稳定,同时也希望我们的设计富有奇幻的节日美感。我们从最近这篇关于衍生式设计的博文中获得了灵感,使用了 COMSOL 软件中的设计模块来模拟各种可能的设计。

Four different sleigh designs.
不同的雪橇设计。

在选择了一个雪橇设计并对它进行仔细打磨后,我们还必须考虑它在所有运行阶段可能发生的情况,比如当圣诞老人驾驶雪橇飞入极地偏心轨道时,是否能安全行驶。在飞行过程中,雪橇会被多个地面卫星接收站追踪,但我们担心这些组织可能无法识别新的火箭设计和热特征。经过讨论,我们认为最好还是向我们的同事发送一份新雪橇在轨道上的可视化图像。于是,我们基于 COMSOL 的方程建模功能,求解了管理太空飞行的常微分方程,然后使用 6.0 版本软件中新的后处理工具生成了新雪橇在轨道内的飞行轨迹动画。

北极上空一切正常 !

正如你所看到的,我们的团队再次战胜了挑战!圣诞老人对新的雪橇设计非常满意,并表示明年他会尽量少吃点儿饼干。

最后,在北极辛勤工作的精灵们向所有 COMSOL Multiphysics 用户送上他们最美好的节日祝福!

关于作者

Winter Frost 是圣诞老人工坊的高级精灵工程师,专长于产品派送、轨道力学,以及拐杖糖火箭的形状优化。

]]>
//www.denkrieger.com/blogs/the-north-pole-uses-simulation-to-help-santa-take-flight/feed/ 1
在 COMSOL Multiphysics® 中曲线拟合解数据 //www.denkrieger.com/blogs/curve-fitting-of-solution-data-in-comsol-multiphysics //www.denkrieger.com/blogs/curve-fitting-of-solution-data-in-comsol-multiphysics#comments Tue, 27 Jul 2021 07:16:18 +0000 http://cn.staging.comsol.com/blogs?p=277461 在 COMSOL Multiphysics® 软件中求解一个模型后,我们可能希望将解数据拟合到在仿真域中定义的一组函数中。在之前的博客中,我们解释了如何将离散试验数据拟合为曲线。今天,我们将考虑对连续的解数据进行拟合。然后,我们将介绍正交性的概念,并解释如何将解数据拟合到一组正交函数中,从而简化为一种简单、方便的后处理操作。

曲线拟合的好处

在上一篇关于拟合离散试验数据的博客文章中,我们解释了如何将曲线拟合用于随后的仿真工作。例如,如果我们使用原始实验数据直接定义材料属性,那么数据中的统计波动会使求解器更难以收敛。此外,将离散数据拟合到平滑函数可以获得该函数的高阶导数,而尝试对原始数据进行数值微分可能会产生很大干扰,并且容易出错。

显示原始实验数据的图,可视化为黑点,拟合三次多项式,可视化为红色曲线
将原始实验数据(黑点)拟合为三次多项式(红色曲线)。

对 COMSOL Multiphysics® 模型中之前研究的解数据进行曲线拟合,会怎么样?一个直接的好处就是数据压缩。如果我们可以找到与完整解具有良好一致性的线性函数组合,就可以通过共享几个函数系数的值描述来自完整解的大部分信息。(请注意,对于数据压缩,没有放之四海而皆准的方法;在 COMSOL 知识库中,减少模型中存储的解数据量一文介绍了其他几种方法,例如使用探针表和选择)。

此外,对连续解数据进行曲线拟合可以方便地估计解的高阶空间导数。COMSOL® 软件中的许多物理场接口使用了由分段拉格朗日多项式组成的有限元离散化,默认情况下,这些多项式通常是二阶的。在这种情况下,导数不一定是连续的,三阶或高阶导数总是零。

最小二乘拟合概述

首先,我们来了解一下简单最小二乘拟合的基本数学原理。在用 Ω 表示的某个模拟域(或边界或边)中,假设COMSOL Multiphysics® 模型已经求解了场变量 u。我们的目标是通过将其视为一组预定义函数的线性组合来近似 u 在该域上的值,

u(\mathbf{r}) \approx \sum_{i=1}^N c_i f_i(\mathbf{r})

其中,fi 是一组已知函数,ci 是必须求解的系数。

确定这些未知系数的常用方法,是求 u 和它的近似值之差 L2 范数,

\int_\Omega \left(u(\mathbf{r})-\sum_{i=1}^N c_if_i(\mathbf{r})\right)^2\textrm{d}\Omega

然后,找到对应于这个 L2 范数的局部最小值的ci

在 Ω 内的局部极小值处,未知系数的导数必须等于零,

\frac{\partial}{\partial c_j}\left[\int_\Omega \left(u(\mathbf{r})-\sum_{i=1}^N c_if_i(\mathbf{r})\right)^2\textrm{d}\Omega\right]=0

这里,我们使用下标 j 来避免与求和符号混淆。

假设积分号下的所有函数都可导,应用链式法则可以将它简化

2\int_\Omega \left(u(\mathbf{r})-\sum_{i=1}^N c_if_i(\mathbf{r})\right)\left(-f_j(\mathbf{r})\right)\textrm{d}\Omega=0

约掉系数 2,交换积分和离散求和的顺序,得到

\sum_{i=1}^N c_i \int_\Omega f_i(\mathbf{r}) f_j(\mathbf{r}) \textrm{d}\Omega = \int_\Omega u(\mathbf{r})f_j(\mathbf{r})\textrm{d}\Omega

最终得到的结果是一组有 N 个系数未知的 N 维线性方程组。例如,如果有三个多项式,就可以把这个结果写成矩阵形式,

\begin{aligned}
&\begin{bmatrix}
A_{11} & A_{12} & A_{13}\\
A_{21} & A_{22} & A_{23}\\
A_{31} & A_{32} & A_{33}
\end{bmatrix}
\begin{bmatrix}
c_1\\
c_2\\
c_3
\end{bmatrix}
=
\begin{bmatrix}
B_1\\B_2\\B_3\\
\end{bmatrix}\\
&A_{ij} \equiv \int_\Omega f_i(\mathbf{r})f_j(\mathbf{r})\textrm{d}\Omega
\qquad B_{j} \equiv \int_\Omega u(\mathbf{r})f_j(\mathbf{r})\textrm{d}\Omega
\end{aligned}

因此,求解这个方程组的未知系数需要计算 次积分(注意左边的矩阵是对称的,即 fifj 的积分等于 fifj 的积分)和一组 N 个线性代数方程的解。

在下一节我们将看到,如果定义相应的函数 fi,使它们在我们尝试拟合解数据的区域中正交,那么系数i 的计算就会大大简化。

正交函数简介

在讨论正交性的概念时,必须注意给出的定义不要过于狭窄。一般而言,如果 ,属于一个向量空间的两个不同向量, uv 在内积 下是正交的,那么内积的确切定义可以根据向量空间而改变。

由于我们讨论的是在 n 维实坐标空间()的某个区域 Ω 上,一个空间变化的解向量对一组函数 f1(r),f2(r),…fN(r) 的曲线拟合,因此可以得到更具体的表达式,并将这些函数的内积定义为

\langle f_i,f_j\rangle \equiv \int_\Omega f_i(\mathbf{r})f_j(\mathbf{r})w(\mathbf{r})\textrm{d}\mathbf{r}

式中,w(r) 为某个尚未定义的权函数,对于 Ω 中的所有 r,限制为:w(r) > 0。

例如, 和  在内积下正交。

\langle f_i, f_j \rangle \equiv \int_{-\pi}^{\pi}f_i(x)f_j(x)\textrm{d}x

也就是说,Ω 的区域是一维区间 ,权函数可以简单的表示为 w(x)=1。我们可以通过计算下列积分来证明这些函数的正交性

\begin{aligned}
\int_{-\pi}^\pi (1)^2 \textrm{d}x &= 2\pi \qquad \int_{-\pi}^\pi (\sin x)^2 \textrm{d}x = \pi \qquad \int_{-\pi}^\pi (\cos x)^2 \textrm{d}x = \pi \\
\int_{-\pi}^\pi (1)(\sin x) \textrm{d}x &= 0 \qquad \int_{-\pi}^\pi (1)(\cos x) \textrm{d}x = 0 \qquad\int_{-\pi}^\pi (\sin x)(\cos x) \textrm{d}x = 0\\
\end{aligned}

事实上,我们可以进一步扩展这个概念,并将看到函数 等在同一个内积下也是正交的。这些三角函数的正交性是傅立叶级数展开的基础。

正交函数的最小二乘拟合

现在,让我们利用对正交函数的了解,重新审视线性最小二乘拟合问题,正如我们之前所看到的,该问题将简化为求解系数 ci 的集合,使得

\int_\Omega \sum_{i=1}^N c_i f_i(\mathbf{r}) f_j(\mathbf{r}) \textrm{d}\Omega = \int_\Omega u(\mathbf{r})f_j(\mathbf{r})\textrm{d}\Omega

现在,假设函数 fi 都是在内积下是正交的

\langle f_i, f_j \rangle \equiv \int_\Omega f_i(\mathbf{r})f_j(\mathbf{r})\textrm{d}\Omega

你可能已经注意到了一些技巧:在谈到 n 维向量空间的内积时,我们在内积的定义中使用了微分元 dΩ,但是 dΩ 将根据我们选择的坐标系(如笛卡尔坐标系、圆柱极坐标系、球极坐标系等)而采用不同的表达形式。我们在后面的示例中也将看到,为了最大程度的方便,我们可以选择一组在内积下正交的函数,其权函数等于所用坐标系的雅可比行列式。

由于函数的正交性,所有的非对角线项在 矩阵的左边消失了,N 个方程组现在只是一组 N 个表达式的集合,可以直接得到 ci 的值

c_i = \frac{\int_\Omega u(\mathbf{r})f_i(\mathbf{r})\textrm{d}\Omega}{\int_\Omega f_i(\mathbf{r})^2\textrm{d}\Omega}

如果选择将这些函数规一化,以使上述表达式的分母为 1,我们就会得到看起来更简单的表达式

c_i = \int_\Omega u(\mathbf{r})f_i(\mathbf{r})\textrm{d}\Omega

因此,将解数据拟合到一组 N 个函数的任务已经简化为计算 N 个不同的积分。在 COMSOL® 软件中,我们可以轻松定义积分 耦合,来计算在任何区域、边界、边或几何点集合的积分。(我们甚至不需要在定义积分 耦合后重新运行研究,只需单击更新解即可。)

在接下来的部分,我们将研究一个更真实的示例: 将镜子的变形拟合到一组 Zernike 多项式。

泽尼克多项式

光学中最常用的一个正交函数是泽尼克多项式,它是圆的径向坐标和平面角的函数,

Z_n^m(\rho,\theta) = N_n^m R_n^{|m|}(\rho)M(m\theta)

式中,

  • ρ 是径向坐标()
  • θ 是方位角 ()
  •  是归一化项
  •  是径向项
  •  是子午项或方位项
  • n 是径向指数 ()
  • m 是子午线或方位角指数(对于给定的 n,)

需要注意的是,对于如何定义泽尼克多项式以及如何解释其指数,有几种不同的标准格式。COMSOL Multiphysics® 中使用的函数定义使用两个独立的指数来描述函数的径向和方位角相关性,符合 ANSI 和 ISO 标准(参考文献 1、2)。泽尼克多项式通常是针对单位圆定义的,但可以通过将 ρ 替换为 ρR (尽管这会影响归一化)来定义任何其他半径为 R 的圆。

下面列出了部分泽尼克多项式。

表达式 通用名
平移
垂直倾斜
水平倾斜
斜散像差
散焦
垂直散光
斜三叶像差
垂直慧差
水平慧差
水平三叶像差
斜四叶像差
斜次阶散光像差
初阶球差
垂直次阶散光像差
水平四叶像差

选择归一化项,以使

\int_0^{2\pi}\int_0^1 Z_n^m(\rho,\theta)Z_p^q(\rho,\theta)\rho\textrm{d}\rho\textrm{d}\theta=\pi\delta_{n,p}\delta_{m,q}

如果两个下标相等,则 Kronecker delta δ 等于 1,否则为 0。

与我们之前的术语保持一致,泽尼克多项式在权函数 下的单位圆上是正交的。在笛卡尔坐标和圆柱极坐标 之间转换时,权函数 ρ 可以很方便的与雅可比行列式完全匹配。

泽尼克多项式广泛用于光学领域。如果你曾经拜访过眼科医生,那么可能听说过“散光”()或“慧差”()之类的术语,而“近视”和“老花眼”只是“散焦”()的不同表述。

一个图形显示了 21 个图的金字塔,将泽尼克多项式可视化到五阶
高达五阶的泽尼克多项式图。

用泽尼克多项式表示变形镜

最后,让我们用所学的知识来做一个例题。示例中的几何体是一个侧面和底部固定的平面柱面镜,上表面可以自由变形。透镜被均匀加热后产生热应力,并导致镜面的表面膨胀。

代表未变形镜子的短圆柱几何体
未变形镜(左)和变形镜(右)的几何形状。

我们希望计算最适合拟合变形表面镜位移场的泽尼克多项式系数。如以下屏幕截图所示,为了完整起见,我们将包括所有四阶泽尼克多项式,尽管只有径向指数为 0 的项(平移 ,散焦  和球差 ) 由于位移场的对称性而发挥了重要作用。为了对位移与每个泽尼克多项式的乘积进行积分,在变形表面上定义了一个积分 耦合。然后使用一些变量 节点来定义每个泽尼克多项式与解向量的乘积的积分,从而确定相应的泽尼克系数的值。

最后,我们绘制出位移场 w 在从镜面中心向外径向延伸的切线上的面外分量,并将其与泽尼克多项式的线性组合进行了比较。下图显示了平移、散焦和球差的单独组合,并将它们的线性组合与位移场进行了比较。可以看出,解与泽尼克多项式拟合的一致性相当好,并且可以通过引入高阶项(如 )进一步优化。

COMSOL Multiphysics 中比较位移场的线图,蓝色显示,泽尼克多项式拟合紫色,活塞为绿色,散焦为红色,球差为青色
位移场(蓝色)与泽尼克多项式拟合(紫色)的比较。分别显示了平移(绿色),散焦(红色)和球差(青色)。

结论

曲线拟合是一种消除实验数据中的统计噪声的工具,它也可以应用到模型求解本身,并且效果很好。将解数据拟合到一组预定义函数,尤其是正交函数中,提供了一种快速、方便的数据压缩方法。

下一步

点击下方按钮,进入 COMSOL 案例下载页面下载示例的mph 文件,尝试自己动手模拟这篇博客中讨论的模型。

参考文献

  1. ISO 24157:2008: Ophthalmic optics and instruments — Reporting aberrations of the human eye, International Organization for Standardization, Geneva, Switzerland. Amendment 1, ibid., 2019.
  2. ANSI Z80.28-2017: American National Standard for Ophthalmics — Methods of Reporting Optical Aberrations of Eyes. American National Standards Institute, Alexandria, VA.

 

]]>
//www.denkrieger.com/blogs/curve-fitting-of-solution-data-in-comsol-multiphysics/feed/ 2
如何将 COMSOL 图像链接到 Microsoft® PowerPoint® 演示文稿中 //www.denkrieger.com/blogs/how-to-link-comsol-graphics-to-microsoft-powerpoint //www.denkrieger.com/blogs/how-to-link-comsol-graphics-to-microsoft-powerpoint#respond Fri, 16 Jul 2021 08:20:17 +0000 http://cn.staging.comsol.com/blogs?p=302671 你在 COMSOL Multiphysics® 中创建过可以在 Microsoft® PowerPoint® 演示文稿中使用的图像吗?如果你有过这种经历,可能需要时不时更新这些图像,也就是说,你必须创建全新的图像并替换到演示文稿中。这个过程既枯燥又耗时,幸运的是,现在你可以使用 COMSOL PowerPoint® 接口快速地处理和更新图像引用了。

COMSOL Microsoft® PowerPoint® 接口

除了将 COMSOL Multiphysics® 仿真结果自动生成 Microsoft® PowerPoint® 演示文稿之外,COMSOL PowerPoint® 接口还可以将 COMSOL 图像链接到 Microsoft® PowerPoint® 演示文稿中。

使用 COMSOL 安装程序安装 COMSOL PowerPoint® 接口后,你就可以使用功能区的工具栏来处理和更新 PowerPoint® 中的 COMSOL Multiphysics® 链接图像。当图像需要更新时,无论是在模型中重新计算结果、更改的图像标题,还是在幻灯片中重新缩放图片后增大字体,都很耗时并且需要大量的手动调整。但是,从 COMSOL Multiphysics 5.5 版本开始,使用功能区接口就可以更轻松快捷地执行这些任务。

借助 COMSOL PowerPoint® 接口,你可以在 COMSOL Desktop® 中创建链接图像并将它们插入到打开的 PowerPoint® 应用程序中。链接图像包含对其源模型文件和特征节点的引用,并且该引用将与已保存的 PowerPoint® 演示文稿一起存储,因此无论是否打开 COMSOL Multiphysics® 窗口,都可以根据需要更新图像。图像引用中还存储了不同的图像视图和布局设置。视图设置也可以被存储和锁定,或在需要时更新为当前视图。

图像引用可以在不同的模型开发器节点中创建,例如:

  • 结果图
  • 网格
  • 几何

图像引用甚至可以包含对当前节点的引用,例如,网格或几何构建序列。这些设置将与图像引用一起被存储,可以被更改,并且图像也可以在 PowerPoint® 中更新。

图像引用的记录簿也会自动更新,以便于在 PowerPoint® 演示文稿中更新和跟踪图像引用,该演示文稿可以包含来自多个不同 COMSOL Multiphysics 模型的图像。在过去,记录这些图像可能是一项非常有挑战性的任务,尤其是在包含多个引用图像时!

在 COMSOL Multiphysics® 中创建链接图像

为了将 PowerPoint® 的图像与 COMSOL Multiphysics 模型源节点的引用链接起来,可以在 COMSOL Desktop® 中生成一个图像,并将 PowerPoint 设置为目标。图像本身的生成方式与 剪切板文件 的图像相同。COMSOL Multiphysics 中生成图像的方法有两种:

  1. 图像快照 窗口
  2. 图像导出

图像快照 窗口可以为 PowerPoint® 生成链接图像,我们可以在 目标 设置中的 PowerPoint 选项从图形 工具栏访问该窗口。当前的图像布局 设置将与生成的链接图像一起被存储,但后续可以在 PowerPoint® 中更改和更新。

COMSOL Multiphysics 中“图像快照设置”窗口的屏幕截图。

也可以在 目标 设置中的 PowerPoint® 选项,通过图像导出为 PowerPoint® 生成链接图像。图像布局 设置将与生成的链接图像一起被存储在这里,也可以在 PowerPoint® 中更改和更新。

模型生成器的屏幕截图,左侧的图像设置打开,目标设置为 PowerPoint,右侧的图形窗口中显示母线模型。

插入链接图像

为 PowerPoint® 创建图像后,就可以将它粘贴到打开的 PowerPoint® 应用程序中。这可以通以下几种不同的方式来完成:

  • 在键盘上使用 CTRL + V
  • 选择 粘贴 按钮
  • 从 PowerPoint® 内的 COMSOL 功能区选项卡上的剪贴板 库控件中选择生成的图像

PowerPoint 应用程序的屏幕截图打开,功能区上的剪贴板选项展开以显示 7 个不同的模型图像。

从 PowerPoint® 中更新链接图像

图像引用被插入到 PowerPoint® 中后,就可以根据引用的节点和模型编辑和更新引用。PowerPoint® 中的 COMSOL 功能区选项卡包含用于更新演示文稿中所有引用图像的更新所有图像按钮,以及用于仅更新选定图像引用的更新图像 按钮。

PowerPoint 应用程序的屏幕截图以编辑模式在幻灯片放映中打开,左侧有 4 个幻灯片缩略图,一张打开的幻灯片带有两个模型图像。

无论是否在 COMSOL Desktop 中打开引用模型,都可以更新链接的图像。如果模型在 COMSOL Desktop® 中打开,就可以通过交互方式不停地在 COMSOL Multiphysics® 中更改和在 PowerPoint® 中更新图像。例如,当找到适合 PowerPoint® 演示文稿的设计和布局的正确视图时,或者尝试多种图形设置后直到找到最适合通过演示文稿传达的结果时,这个功能可能会非常有用。

 

如果在 COMSOL Desktop 当前未打开模型的情况下更新图像,图像更新则通过 COMSOL Multiphysics 服务器完成。默认的服务器设置将在后台打开本地 COMSOL Multiphysics 服务器,无需任何额外的用户交互,但也可以自定义设置,例如,使用远程 COMSOL Multiphysics 服务器。

选定链接图像后,就可以使用 PowerPoint® 中的 COMSOL 图像 功能区选项卡。COMSOL 图像 选项卡包含用于更新、锁定、删除和更改 功能区部分中引用的模型和节点的控件。在 图像布局 部分,你可以更改图像的图像和布局设置。

PowerPoint 应用程序的屏幕截图打开,COMSOL Image 功能区选项卡在顶部菜单栏中展开。

还可以编辑或删除图像引用,右键单击链接图像,可以从在 COMSOL 菜单中更新或锁定图像。
PowerPoint 应用程序的屏幕截图打开,COMSOL 图像功能区选项卡在顶部菜单栏展开,下拉菜单在右侧的图像上展开。

使用编辑引用 窗口,可以更改链接图像的引用节点或模型。可以引用的节点显示在模型树中。对于几何和网格序列,也可以选择当前构建步骤和源节点。

辑参考窗口的屏幕截图,其中模型和节点部分打开以显示界面树和用作源按钮。

其他有用的命令

从更新中锁定图像

当链接图像达到所需的状态时,可以使用更新所有图像 按钮将其锁定以防止更新。链接图像的视图(例如,缩放比例和视角)也可以在更改和更新其他图像和布局设置时被锁定和保留。

通过选定图像并选择 锁定图像 功能区按钮,可以从更新中锁定或解锁图像。通过选中图像并选择 COMSOL 图像功能区选项卡上的锁定视图 复选框,就可以锁定或解锁视图。

使用命令行工具批量更新 PowerPoint® 演示文稿

通过命令行工具 comsolpowerpointbatch.exe,你可以在不打开 PowerPoint® 应用程序的情况下更新保存的包含链接图像的 PowerPoint® 演示文件。这个工具可以使用单个命令更新单个或多个 PowerPoint® 演示文稿文件。命令行工具 comsolpowerpointbatch.exe 已安装并在与 comsol.exe 相同的安装文件夹运行。

命令提示符窗口的屏幕截图,其中键入了用于运行 PowerPoint 演示文稿的批量更新的命令行。
你可以通过运行命令 comsolpowerpointbatch.exe -help,显示 comsolpowerpointbatch.exe 工具的可用参数。

快速复制或创建其他链接图像

在 PowerPoint® 中复制、创建和编辑链接图像的一种快速方法是选定链接图像,然后选择 CTRL + C,再选择一次或多次 CTRL + V。这样,可以使用与复制图像相同的链接设置创建多个唯一链接图像引用,但可以更改和更新每个图像的链接设置,以便快速创建对其他模型节点或其他图像设置的引用。

多个引用模型和记录簿

PowerPoint® 文件菜单上的 COMSOL 选项卡包含引用服务器首选项 选项卡,用于管理演示文稿中包含的参考资料以及访问服务器设置和接口首选项。

使用引用 视图,你可以将引用保存记录簿上,轻松地在 PowerPoint® 演示文稿中概述和管理引用。

PowerPoint 应用程序的屏幕截图打开并显示 COMSOL 选项卡,其中包含参考、服务器和首选项选项,以及参考节点和参考模型的列表。

更多资源

 

Microsoft 和 PowerPoint 是 Microsoft Corporation 在美国和/或其他国家地区的注册商标或商标。

]]>
//www.denkrieger.com/blogs/how-to-link-comsol-graphics-to-microsoft-powerpoint/feed/ 0