Search Results for “后处理” – COMSOL 博客 - //www.denkrieger.com/blogs 发布博客 Tue, 08 Oct 2024 15:24:57 +0000 en-US hourly 1 https://wordpress.org/?v=5.7 提升带通滤波器器件仿真效率的方法 //www.denkrieger.com/blogs/methods-that-accelerate-the-modeling-of-bandpass-filter-type-devices //www.denkrieger.com/blogs/methods-that-accelerate-the-modeling-of-bandpass-filter-type-devices#comments Wed, 17 Jul 2024 22:19:03 +0000 http://cn.staging.comsol.com/blogs?p=172851 在频域有限元法设计品质因子高的带通滤波器类 RF 器件时,可能会遇到需要设置多个频率采样点以更准确地描述通带的情况。RF 器件仿真中包含的频率采样点的数量与求解时间成正比,即频率分辨率越高,求解时间就越长。 COMSOL Multiphysics® 软件的附加产品 RF 模块提供了2种强大的仿真方法,可以帮助提高这类器件的仿真效率。

编者注:这篇博客最初发布于 2016 年 7 月 4 日。现已更新,以反映软件的后处理新功能。

2 种 RF 仿真方法简介

在今天的博客中,我们将讨论 2 种仿真方法:渐近波形估计(AWE)法和频域模态(FDM)方法。这两种方法都旨在帮助用户解决采用超精细频率分辨率,或通过常规的 频域 研究运行超宽带仿真时,求解时间过长这一常见问题。当涉及描述具有单一谐振或无谐振的平滑频率响应时,AWE 方法非常有效。而 FDM 方法则适用于快速分析多级滤波器,或者目标通带内有多个谐振的大量元件的滤波器。接下来,我们将讨论这两种方法的典型设置和应用场景。

需要说明的是,AWE 和 FDM 方法几乎都不依赖于所选的频率步长。您可以自由地减小频率步长的值,获得分辨率良好的结果绘图,而不会出现明显的速度减慢或额外的内存消耗。不过,这种做法也存在缺点:降低频率步长值可能会影响最终解中保存的数据量。在本文末尾的数据管理部分,我们将给出能显著减小输出文件大小的建议。

请注意,在使用精细分辨率进行 AWE 或 FDM 计算之前,最好先使用较粗的频率分辨率运行一个初步的 特征频率 和常规的 频域 仿真。这可以帮助您快速地估算谐振位置,总体了解系统的频率趋势,包括实际通带和所需的频率分辨率。

AWE 方法促进降阶模拟

AWE 是一种先进的降阶模拟技术,由于其数值特征和数学算法技术性太强,我们在此不过多赘述,只演示如何在 RF 模块中使用此方法。 自 COMSOL Multiphysics 6.2 版本开始,软件新增了有一个专门的 自适应频率扫描 研究步骤,可以实现 AWE 方法。使用此功能时,需要指定目标输出的频率范围,并选择一个表达式用于对AWE 算法进行误差估计。该方法求解器可执行快速频率自适应扫描,默认情况下,使用 Padé 近似。

COMSOL Multiphysics UI 显示了模型开发器,并突出显示了自适应频率扫描研究,展开了相应设置窗口中的研究设置和物理和变量选择部分。

自适应频率扫描 研究设置。使用查看默认的 渐近波形估计( AWE) 表达式。

在模拟谐振电路,尤其是包含许多频率点的带通滤波器类器件时,AWE方法非常有用。例如,COMSOL 案例库中的消失模圆柱腔滤波器模型先运行了一个常规的 频域研究,以 5 MHz 的频率步长对 3.45 GHz 到 3.61 GHz 之间的仿真频率进行初始扫频。

消失模圆柱腔滤波器教程模型 (左) 及其离散频率扫描结果 (右)。谐振频率附近的 S 参数图看起来并不平滑。

假设以更高的频率分辨率再次运行仿真,例如使用100 kHz的频率步长进行扫描,即分辨率提高 50 倍。可以预计,完成仿真所需的时长将提升50倍。但是,在此特定的示例中,使用 自适应频率 扫描研究完成仿真所需的时长几乎与频率扫描仿真所需的相同,并且能获得以100 kHz 频率步长计算的所有因变量解。

求解时间可能会在一定程度上受用户输入的 AWE 表达式的影响。任何模型变量都可以作为 AWE 表达式,只要能生成一个平滑的结果图,如高斯脉冲或平滑的曲线作为频率的函数,但最明显和典型的选择是基于s参数的全局表达式。例如,对于双端口带通滤波器,将S21 的绝对值 (abs(comp1.emw.S21)) 作为 AWE 表达式的输入可以获得非常好的结果。如果 AWE 表达式的频率响应包含无限梯度,例如在单个频率点具有良好阻抗匹配的天线的S11值,完成仿真则需要更长的时间。如果天线损耗可以忽略不计,使用 sqrt(1-abs(comp1.emw.S11)^2) 表达式可能结果更好,且能缩短计算时间。上述表达式是默认的 物理场控制 选项的 渐近波形评估 (AWE) 表达式。作为合理的检查方式,我们始终可以先以较粗的分辨率运行一个频域 扫描,绘制表达式,并选择最平滑的结果。

开始运行 自适应频率 扫描前,需要在研究中设置所需的更精细的频率步长。当仿真完成后,模拟所需时长几乎与离散频率扫描的相同。对比求解出的S参数。由于AWE求解器运行的频率扫描分辨率提高了50倍,因此其频率响应(S参数)结果绘图看起来也更平滑。使用这种方法,不仅可以节省宝贵的时间,还可以获得准确且出色的结果,而且谐振频率的定位也更加准确,如下图所示。如果您对此感兴趣,可以使用相同的分辨率运行一次常规扫描来进行验证,并检查结果是否一致。

 自适应频率扫描 (AWE) 和离散频域仿真计算出的 S 参数图和频率对比图。
分别运行 自适应频率 (AWE) 和离散 频域仿真 计算出的 S 参数图。使用 AWE 方法模拟的结果绘图的分辨率提高了 50 倍。

使用频域模态方法模拟电路谐振

无源电路的带通频率响应由多个谐振组合而成,因此 FDM 方法是提升其仿真效率的最佳选择。此方法通常包含两个步骤。特征频率分析是模拟任意形状器件共振频率的关键。从特征频率分析中获得所有必要信息后,就可以在频域模态研究中重复使用。当需要更精细的频率分辨率来更准确地描述频率响应时,这样做能够提升仿真效率,如AWE方法所示。

为了无缝执行 FDM 分析,有几个方面需要注意。一方面,需要过滤掉 特征频率 解中可能存在的所有不需要的非物理低频结果。另一方面,需要考虑目标频率范围内所有可能影响器件性能的物理模式,以获得正确的结果。要满足这两个要求,需要对 特征频率 研究设置进行一些调整(如下方屏幕截图所示)。首先,建议选择 更大的实部 作为 围绕偏移量的搜索方法 的设置。其次,对于 搜索特征频率 设置,最低通带频率可作为一个参考值。最后,必须调整 所需特征频率数 设置(例如根据初步测试),以包含必要的模式数量。

The COMSOL Multiphysics 用户界面显示了模型开发器,突出显示了特征频率,以及相应的设置窗口和研究设置。展开了线性点,物理场和变量选择的值。
为模型添加包含两个步骤的 频域模态 研究,图中突出显示了 特征频率 设置。

让我们来看一个 耦合线带通滤波器教程模型,尝试使用 FDM 方法进行仿真分析。先以 50 MHz 的频率步长对 3.00 GHz 和 4.20 GHz 之间的仿真频率进行扫描,运行一个常规的 频域研究

耦合线带通滤波器教程模型(左)及以 50 MHz 频率分辨率进行离散频率扫描的仿真结果(右)。整个目标通带内的 S 参数图看起来并不平滑。

接下来,运行 频域模态 研究,并按照上文所述设置每个研究步骤。使用分辨率提高了50 倍的频率步长运行研究,并检查结果是否有更优。与 AWE 方法一样,FDM 方法研究得到的 S 参数图看起来更平滑,包含的信息量更大。例如,它显示了最初缺失的所有 S11 参数波纹。如果您对此方法的验证感兴趣,可以运行相同分辨率的常规扫描,并检查结果是否一致。

请注意,特征频率分析包含一个集总端口,作为额外的载荷因子影响仿真,因此计算出的 S 参数的相位与常规频率模型计算的相位不同。计算结果仅和不包含相位的 S 参数值兼容,如以dB为单位的值、绝对值、反射率或透射率。

运行常规的频域仿真扫描和运行频域,模态仿真计算的 S 参数的对比图。
分别由 频域,模态(FDM)和离散 频域 仿真计算出的 S 参数图。使用 FDM 方法计算的结果精度提高了 50 倍。

这与本文的主题并无直接关系,但在最后一张图中,可以看到到特殊的图形标记,它可以突出显示 S11 参数图的所有局部极小值以及 S21 参数图的通带。COMSOL Multiphysics 最近对结果评估功能进行了另一项改进,即从图表中提取交互式结果,将结果的信息性和交互式价值提升到了一个新的水平。

使用精细频率分辨率时的数据管理

如前所述, AWE 或 FDM 方法对如何细化频率扫描并没有真正的限制。不过,如果分辨率真的很高,解中将包含大量数据,从而导致在保存模型文件时,文件大小将大幅增加。在大多数无源RF和微波器件设计中,我们通常只对 S 参数感兴趣,因此在这种情况下,没有必要存储所有的场解。在研究的 在输出中存储 部分选择适当的选项,就可以控制模型保存计算的解。例如,可以只添加包含 S 参数计算边界的一个或多个选择。指定这些边界为 端口 集总端口,与整个仿真域相比,这些选择通常很小,因此总文件大小可以大幅减小。

请注意,在设置端口时,可以在指定选区后单击 边界选择 部分中的 创建选择 图标添加这种显式选择。然后,可以在相关研究步骤的 在输出中存储 部分添加由端口创建的所需的显式选择。

COMSOL Multiphysics 的用户界面显示了模型开发器、频域,模态研究步骤、相应的设置窗口以及图形窗口中的几何。
选择了2个 集总 端口的频域,模态 研究步骤的 在输出中存储 部分。您可以在 图形 窗口中查看这些选择的位置。

案例库中的教程模型

这篇博客介绍了COMSOL 软件中的 2 个强大的仿真功能,可以帮助您更快、更高效地模拟无源 RF 和微波器件。下列为 COMSOL 案例库中的一些相关教程模型,您可以浏览下载,进一步了解这些方法的使用:

文中演示的方法和研究是 通用的,不仅适用于RF仿真,在涉及如声学、力学、微机电系统(MEMS)和波动光学计算中,这些方法也尤其有用。

下一步

了解 COMSOL 中可用于RF和微波仿真的其他专用功能:

]]>
//www.denkrieger.com/blogs/methods-that-accelerate-the-modeling-of-bandpass-filter-type-devices/feed/ 2
批处理扫描功能的优势 //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/ 2
在 COMSOL Multiphysics® 中使用表达式运算符 //www.denkrieger.com/blogs/using-the-expression-operator-in-comsol-multiphysics //www.denkrieger.com/blogs/using-the-expression-operator-in-comsol-multiphysics#comments Thu, 17 Nov 2022 01:16:30 +0000 http://cn.staging.comsol.com/blogs?p=319331 COMSOL 软件中的表达式运算符 节点可以计算任意参数化表达式。你可以在一个模型中添加多个节点,每个节点定义单独的表达式以供使用,或者将表达式定义在不同的几何实体(如域、边界)中使用。

在这篇博客中,我们将介绍表达式运算符 的工作原理,以及在使用 COMSOL Multiphysics® 软件时如何在你的建模项目中使用这项功能。

表达式运算符

表达式运算符 节点是自 COMSOL Multiphysics 5.5 版本起引入的功能,右击模型开发器 中的 全局定义定义 节点,可以从变量实用程序 子菜单(通过选择显示更多选项 对话框中常规 下的变量实用程序 复选框激活)中获得。(当添加到全局定义 下时,表达式运算符 在整个模型中有效)。表达式运算符 节点的设置包括一个定义 部分,可以在其中定义运算符。下面是具体的操作步骤。

步骤 1:输入默认表达式

表达式 字段中,输入默认表达式,该表达式在其选择上定义了表达式运算符(或者在全局定义 下添加时全局定义)。表达式可以包含任何常量、变量、函数和运算符,它们在要计算表达式运算符的上下文中是有效的。此外,它应该至少使用一个输入参数。请注意,默认表达式可以被子选择上的运算符贡献 节点所覆盖。

步骤 2:定义输入参数

表达式 字段下面的表中,定义输入参数。在参数 列中键入参数的名称,并在维度 列中键入用于定义其维度 的单位;在参数类型 列中,从下拉列表中选择表达式 选项(默认设置)或 选项。通过值传递输入参数意味着在将它作为数字插入运算符表达式之前,在调用表达式运算符的上下文中对它进行计算。由表达式传递的参数直接被替换到运算符表达式中。如果将参数作为参数传递给在不同上下文中计算其参数的耦合运算符,这可能会有所不同。例如,在一个参数中传递空间坐标变量时,必须小心,该参数被转发给作为表达式运算符定义一部分的积分 耦合。

步骤 3:输入名称

名称 字段中,为表达式运算符输入一个合适的名称。它将是你在 COMSOL 模型中引用表达式运算符时使用的名称。

表达式运算符的优点

表达式运算符 对各种建模项目和方案都有好处。下面列出了一些具体的内容:

  • 一旦定义表达式运算符并为它确定了描述性名称后,就可以在 COMSOL 模型中使用它来隐藏复杂的数学表达式。这意味着可以用速记的方式书写的表达式代替复杂的表达式。
  • 表达式运算符 节点可以使用运算符贡献 子节点在模型几何图形的不同部分定义不同的表达式。可以将 运算符贡献 子节点添加到组件 节点下定义的表达式运算符 节点。对于每个这样的子节点,可以定义几何实体级别和选择使用它的几何实体。然后,可以在运算符贡献 子节点的表达式 字段中输入新的运算符 表达式。例如,表达式运算符 节点这一功能是解决多层壳接口后处理困难的好工具。对于这类后处理,能够使用单个运算符是有好处的,该运算符可以根据不同的选择扩展为不同的运算符。然后,它作为一个包装器,将合并不同域或其他几何实体上的不同运算符和表达式。
  • 表达式运算符 还可以用来创建混合函数,这些函数混合了本地计算的参数和变量。

表达式运算符与分析函数

你可以把表达式运算符看作是一个参数化的变量,而不是一个分析函数。与分析函数相反,表达式运算符可以定义为仅在某些域中处于活动状态。根据定义,表达式运算符可以使用任何被定义的能计算出结果的表达式。

相反,分析函数应该是其参数的纯函数。由于它的全局性质,分析函数可用于定义模型参数;而表达式运算符不能。

使用表达式运算符的示例

这个示例演示了如何将表达式运算符 节点用于以下两个目的:

  1. 根据表达式运算符的计算位置,将表达式作为参数替换为不同的运算符。在本示例中,它被用于绘制双镜对称。
  2. 通过混合函数混合参数和变量,例如本示例中的运算符 phase(kx,ky)

在这个示例中,固体力学 接口仅在模型几何图形的第一个象限(右上角),也就是单位圆中定义。两个广义拉伸 运算符, yAxisMirror 以及 xAxisMirror,分别为 –x 和 –y 坐标,x 和 –y 坐标提供从源到目标的镜像操作。然后使用三个运算符贡献 子节点定义一个名为 doubleMirror 的表达式运算符,每个子节点分别在第二、第三和第四圆象限中提供双镜像转换 yAxisMirror(expr)xAxisMirror(yAxisMirror(expr)) xAxisMirror(expr)。下图显示了第三象限的运算符贡献 子节点的设置:

COMSOL Multiphysics UI显示操作员贡献设置窗口,几何实体选择和定义部分展开,图形窗口中显示单位圆模型。
第三象限中的 表达式运算符的定义

下图显示了有效 von Mises 应力超过某个极限的区域:

图形窗口的截图显示了在一个圆的模型中超过了应力极限的地方。
超过应力极限的区域绘图。表达式运算符提供的双镜包括整个圆内的解决方案。

由于使用了表达式运算符,我们只需一个简洁的表达式,第一象限计算的解就可以在整个圆中被可视化为双镜图。

对于表达式运算符 的第二种使用方式,在整个几何体中定义了一个叫做 phase 的表达式运算符,并将参数和变量混合在一起,进行局部计算。表达式运算符 被定义为 exp(-i(kx*x+ky*y)),其中,kx 和  ky 是两个输入参数,前者代表波向量的 x 分量,后者代表 y 分量。它们也被定义为表达式,如下图中的设置窗口所示。

表达式运算符设置窗口的截图,其中几何实体选择和定义部分是展开的。
包含两个表达式参数的 phase 表达式运算符的 设置窗口

相位的表达式 等效于使用 COMSOL Multiphysics 语法的数学表达式 。

你可以在曲面图中使用 phase 表达式运算符 来显示具有不同参数值的相位。下图显示相位 kx 设置为 5 ,相位 ky 设置为 20:

图形窗口的截图,显示了一个圆的模型上的相位。
曲面绘图显示了使用 表达式运算符 的相位。

后续步骤

这篇博客解释了什么是表达式运算符 节点,以及如何在 COMSOL Multiphysics 中建模时利用它来发挥自己的优势。我们鼓励你练习使用这个功能来简化和改进你的 COMSOL 模型。如果您对这个主题有任何疑问,请通过以下按钮联系 COMSOL。

延伸阅读

想要了解有关 表达式运算符 节点的更多信息?查看我们的博客文章获取统计信息:计算标准偏差和其他统计数量,其中表达式运算符 用于简化在多个位置中使用的标准偏差的表达式

]]>
//www.denkrieger.com/blogs/using-the-expression-operator-in-comsol-multiphysics/feed/ 2
多物理场拓扑优化的实现 //www.denkrieger.com/blogs/a-practical-implementation-of-multiphysics-topology-optimization //www.denkrieger.com/blogs/a-practical-implementation-of-multiphysics-topology-optimization#comments Fri, 16 Sep 2022 05:52:27 +0000 http://cn.staging.comsol.com/blogs?p=315601 来自 Jabra 的特邀博主 Junghwan Kook 介绍了一个多物理场拓扑优化框架,以及它的优势,并演示了如何使用它。Junghwan Kook 是参考文献 1 的论文作者,其论文中的一些插图被用在了这篇博客中。

这篇博客介绍了一个使用 COMSOL API 接口和 LiveLink™ for MATLAB® 构建的多物理场拓扑优化框架,此内容已在参考文献 1 上发表。文中通过一个可以使用 COMSOL Desktop® 解决的声-结构相互作用 (ASI) 问题对该框架进行了演示。这个框架的优势是它能够解决(当前)与 COMSOL Desktop ® 不兼容的问题。

动机

拓扑优化问题总是使用基于梯度方法来求解,这需要使用伴随灵敏度分析。如果基础方程是稳态的或瞬态的,COMSOL Desktop® 支持求解此类问题。因此,最常见的问题,包括频域问题,都可以解决。对于上述框架,它在某些情况下提供了一些独特的优势。例如,它能够:

  • 将目标或约束与稳态和瞬态求解器相结合
  • 测试自定义优化求解器
  • 支持灵敏度不一致的情况,可使用包括灵敏度过滤或类似的启发方式
  • 在不重新初始化优化求解器的情况下,更改迭代之间的数值参数的值

虽然这些优势可能与学术研究用户最相关,但也有一些优势会吸引所有用户。例如,该框架可以在以下情况下避免冗余计算:

  • 对于扫描问题(例如多个载荷工况),可以避免计算所有扫描参数值的约束灵敏度
  • 对于扫描参数仅影响某些因变量的情况,可以将解限制为除扫描参数的第一个值之外的所有变量

在迭代求解器的背景下,避免一些冗余计算工作可能不太重要,并且上述框架其实增加了计算和工程时间。尽管如此,该框架确实有可能加快上述列出情况的计算速度。

拓扑优化

COMSOL Multiphysics® 软件的功能强大,我们可以利用 LiveLink™for MATLAB® 的功能实现拓扑优化框架,同时利用 MATLAB® 编程环境的易用性和快速实现的优势。

拓扑优化是一种有效的方法,在满足产品性能目标的同时,针对给定的载荷和边界条件,可以在给定的设计空间内优化材料分布。在早期概念设计阶段使用拓扑优化方法,可以取代昂贵且繁琐的设计迭代,以达到最佳设计效果,从而节省时间。尽管在过去几十年里,拓扑优化不断发展并被广泛采用,将拓扑优化应用于新的应用领域(即将拓扑优化与现有软件包不支持的物理过程相结合)仍然具有挑战性。下面列出了开发多物理场拓扑优化算法或程序的几个难点。

  1. 为多物理场问题开发有限元模型
  2. 材料插值和设计变量的参数化
  3. 目标函数和设计灵敏度分析
  4. 后处理和操作拓扑设计结果

上述列出的挑战通常会使普通从业者和研究人员不愿将自己已经发表的一些教学案例和简单框架扩展到多物理场拓扑优化。

这里讨论的拓扑优化算法和程序是使用 COMSOL API 和 LiveLink ™ for MATLAB® 开发的,适合那些希望在多物理场问题中使用拓扑优化设计的用户。

多物理场问题有限元模型的发展

我们可以通过 COMSOL API 使用 模型对象 访问和轻松操作 COMSOL® 模型的所有特征和数据结构,它提供了多种方法让用户可以执行任务,例如创建几何和网格,以及设置和运行操作序列来求解模型。模型对象的结构符合 Java® 编程语言环境,并提供了几种方法来执行有限元分析和优化所需的一系列任务。我们可以使用 LiveLink ™ for MATLAB® 来访问模型对象和实用函数。

采用 ASI 问题的拓扑优化来证明所引入的框架在系统设计多物理场问题方面的有效性(参考文献 1)。两个声域之间的分区结构的设计问题如图 1 所示,该问题被用作求解多个 ASI 拓扑优化的基准问题。我们可以使用拓扑优化来设计分区结构,以使从入口辐射的声压在出口处最小化。

两个声学域之间的一个分区结构的基准拓扑优化问题示意图
图1. 考虑声-结构相互作用的基准拓扑优化问题的示意图。

在示例中,将位移()和压力()作为状态变量 (a 公式 )的混合有限元公式,用于解决 ASI 问题的拓扑优化问题。我们可以对所有结构、声学和完全耦合的 ASI 问题进行模拟,而无需通过更改混合的公式 中的材料属性,来明确构建声学和结构域之间的边界条件。因此,对于结构-声学相互作用问题,公式 有助于实现基于密度的拓扑优化。

COMSOL® 支持混合有限元公式,但该框架不限于软件的物理场接口,因为它还包括来自 MATLAB®编程环境的基于方程的仿真功能。例如,如图 2 所示,图 1 中位移场的域积分项扩展为直观的弱形式(见公式 (A)),我们可以通过弱形式偏微分方程 接口,使用 COMSOL 可解释的语法轻松实现该公式,即

-((test(ux)-test(vy))*G*(ux-vy)+(test(uy)+test(vx))*G*(uy+vx))

+(test(ux)*p+test(vy)*p)+rho*omega^2*(test(u)*u+test(v)*rho*v.

有关在 COMSOL API 中实现弱形式的更多详细信息,请查阅参考文献 2 和 3。此外,我们还可以通过查看图 3 中显示的代码来获得一些灵感,这些代码指示了拓扑优化框架的基本步骤。例如,图 2 中的方程(A)、方程(B)和方程(C)可以使用图 3 所示的模型对象和方法来实现。

一个带有各种标签的方程列表,包括控制方程:直观弱形式,材料插值函数,边界条件:直观弱形式,设计变量场,COMSOL组合有限元系统,目标函数和约束,使用AVM的设计灵敏度
图2. 使用混合的 公式的声-结构相互作用问题弱形式方程,和用于拓扑优化问题所需的一些基本任务。有限元系统方程包括设计变量和状态变量,例如方程  (E);目标函数和约束,例如方程(F和设计灵敏度分析,例如公式(G)。

COMSOL API和MATLAB代码的图像,这对拓扑优化过程很重要
图3. 为拓扑优化过程所需任务选择的 COMSOL API 和 MATLAB® 代码。COMSOL API 语法可以轻松方便地处理所需的任务,无需多行复杂的代码。

设计变量的材料插值和参数化

拓扑优化最终会在设计域中找到一种材料和另一种材料(或空隙)的最佳分布,用于优化目标函数。在 ASI 问题的优化过程中,通过密度 、体积模量 和剪切模量  取与空气和固体材料对应的两个极值之间的值,以得到优化的设计。这些值由具有设计变量场 的材料插值函数引入,如图 2 中的方程(B)所示。

\rho = \rho_\text
{air} + (\rho_\text{solid} – \rho_\text{air}) \gamma
K = K_\text
{air} + (K_\text{solid} – K_\text{air}) (\frac
{\gamma}{1 + (1 – \gamma)p_K})
G = G_\text{air} + G_\text{solid}(\frac {gamma} {1 + (1 – \gamma)p_G})

式中, 是可以控制设计变量场的中间值的参数。使用 COMSOL Multiphysics 中基于方程的仿真,我们可以轻松地将设计变量场作为辅助因变量引入模型中。因此,在设计域中引入了一个额外的控制方程,如图 2 中的方程(D)  所示。在图 3 中看到的代码中,设计域上的域积分项通过设置 test(gamma) 定义,其中设计变量 gamma弱形式偏微分方程 接口中设置为因变量。需要注意的是,设计变量的弱形式偏微分方程 接口从未被求解,而仅用于根据优化程序更新设计变量。

COMSOL® 求解器允许我们使用解耦方法解决部分问题,与此同时修复子集。例如,子集方程 可以求解状态变量场,同时将设计变量的值保持在其初始值。设计变量的值在后续迭代步骤中更新。为了访问和更新组装矩阵,我们利用与设计变量和状态变量相对应的自由度(DOF)列表,它是使用 mphxmeshinfo 函数提取的。这种方法的优点是我们在 MATLAB® 中使用矢量化运算,而不必使用有限元运算,从而提高了代码的可读性和计算性能。由于这种实现方法不依赖于优化器,它可以与任何优化求解器(即任何基于梯度或无梯度的优化器)一起使用。

目标函数和设计灵敏度分析

这里提供的示例中,图2 方程(F)积分形式的目标函数可以使用内置函数 mphint2 进行计算(参见图 3 所示的代码行)。

伴随变量法(AVM)常用于设计灵敏度分析,因为它在计算涉及大量设计变量的系统的设计灵敏度方面具有很高的效率。我们可以使用 mphmatrix 函数轻松构建伴随方程和导数,该函数会提取所需的矩阵和向量并以 MATLAB® 结构格式将它们返回。特别是,在方程(G)中看到的设计灵敏度分析所需的导数项,可以通过指定状态和设计变量的索引直接从组合矩阵中提取,因为设计变量场被视为组合矩阵中的状态变量之一。设计灵敏度分析可以应用于其他问题而无需进行实质性修改。

对生成的拓扑设计进行后处理和操作

LiveLink ™ for MATLAB ® 提供了一种可访问的可视化方法,可以对每次优化迭代的优化分析结果,以及所开发程序的整体操作生成清晰的视图,用于排除和修复优化过程中可能出现的问题。图 4 显示了每次迭代的拓扑设计以及目标函数和体积分数的迭代历史,这些在 MATLAB® 环境中都可以看见。

显示每次迭代的拓扑设计以及目标函数和体积分数的迭代历史的图像
4. 每次迭代的拓扑设计(参考文献 1)以及目标函数和体积分数的迭代历史都在 MATLAB® 环境中可以看见。

在仿真软件中求解多物理场问题,需要从拓扑解中获得各种绘图,来解释优化设计。我们可以将在 LiveLink™ for MATLAB® 环境中开发的最终模型保存在一个 MPH-文件中,该文件包含 COMSOL® 模型对象,包括所有方法和数据结构。保存的解可以在 COMSOL Desktop® 环境中打开,以便在设计工作流程中对产生的拓扑结构进行后处理和操作。然后,我们可以使用模型开发器窗口轻松创建不同的拓扑结果绘图。如图 5 所示,通过使用滤后处理过滤功能,得到了固体和空气之间有明显边界的最终设计。为了显示性能,生成了一个变形结构来说明优化后拓扑设计的受力变形情况。

照片从左到右显示了优化后得到的最终设计、产生的拓扑结构、变形的结构、导入的网格零件以及导入的网格零件创建的用于3D打印和增材制造的2D几何形状
图5. (a)优化后获得的最终设计。(b)使用阈值过滤得到的具有清晰耦合边界的拓扑。(c)具有位移幅值场的变形结构。(d)导入的网格零件。(e)用于 3D 打印和增材制造的导入网格零件创建的 2D 几何图形。所有图均来自参考文献 1.

优化的设计可以导出为 CAD 模型,用于进一步分析和原型制作。将数据集导入 COMSOL Desktop® 后,我们可以使用优化结果创建网格文件和 CAD 文件。几何对象可用于进一步分析,也可导出用于 3D 打印。

使用 COMSOL Desktop® 重现拓扑优化问题

这篇博客深入探讨了使用 COMSOL API 和 LiveLink™ for MATLAB® 进行多物理场拓扑优化,并概述了其他相关的主题,包括有限元和设计灵敏度分析以及后处理。COMSOL API 和 LiveLink ™  for  MATLAB® 使初学者能够使用最少的编程实现高级拓扑优化。由于设计变量场的离散化和灵敏度分析方法不限于特定问题,因此本博客中涵盖的通用框架,能够解决其他类型的拓扑优化问题,而无需大量修改。此外,引入的框架提供了与高级语言相同的开发自由,这并不限制我们研究需要访问优化参数以及数值计算中的一些矩阵和向量的新拓扑优化技术和方法。它还提供了一种有效的方法来解决和修复优化过程中可能出现的问题。

注意:要获得使用 LiveLink ™ for MATLAB® 进行优化的详细描述和代码,请查看参考文献 1。

此外,COMSOL Multiphysics 提供了对用户友好的优化模块插件,使我们能够通过其多物理场和用户定义的偏微分方程求解器来求解拓扑优化问题。使用 COMSOL Desktop ® 进行拓扑优化,我们可以仅使用内置功能重现相同的多物理场拓扑优化问题(见图 6)。该模型使用固体力学(用于优化域)的混合公式选项和压力声学 (用于纯声学域),并结合了优化模块中的最新优化方法和过滤方案。

COMSOL Multiphysics用户界面显示了选择线性弹性材料节点的模型开发器、相应的设置窗口,以及在图形窗口中展示了涉及声学-结构交互问题的拓扑优化的模型。
6. 仅使用内置 COMSOL Desktop ®功能重现相同的多物理场拓扑优化问题。

您可以单击下面的按钮,进入 COMSOL 案例库查看图 6 所示的模型。

关于作者

Junghwan Kook (JK)于 2012 年在韩国光州科技大学(Gwangju Institute of Science and Technology)信息与机电一体化学院获得博士学位。之后,他在丹麦技术大学 (DTU) 机械工程系从事博士后研究。2015—2017 年,任 DTU 电气工程系声微机械系统研究中心助理教授。2017 年至今,他一直在 GN Audio A/S 公司从事科研工作,也就是 Jabra,该公司是工程通信和声音解决方案领域的领先品牌,通过创新为消费者和企业提供支持。他目前的研究兴趣包括多学科设计优化、声学和机械设计的数值方法、声音质量、以及声学和振动声学特性的实验分析。JK 一直使用 COMSOL Multiphysics 建模与仿真真实世界的多物理场系统,为用户提供高质量的解决方案。

参考文献

  1. J. Kook and J.H. Chang, “A high-level programming language implementation of topology optimization applied to the acoustic-structure interaction problem,” Structural and Multidisciplinary Optimization, vol. 64, pp. 4387–4408, 2021.
  2. C. Liu, “Implementing the Weak Form in COMSOL Multiphysics,” COMSOL Blog, 2015; //www.denkrieger.com/blogs/implementing-the-weak-form-in-comsol-multiphysics
  3. C. Liu, “Implementing the Weak Form with a COMSOL App,” COMSOL Blog, 2015; //www.denkrieger.com/blogs/implementing-the-weak-form-with-a-comsol-app

MATLAB is a registered trademark of The MathWorks, Inc. Oracle and Java are registered trademarks of Oracle and/or its affiliates.

]]>
//www.denkrieger.com/blogs/a-practical-implementation-of-multiphysics-topology-optimization/feed/ 1
在 COMSOL® 中计算瞬态声压级 //www.denkrieger.com/blogs/computing-transient-sound-pressure-levels-in-comsol //www.denkrieger.com/blogs/computing-transient-sound-pressure-levels-in-comsol#respond Tue, 13 Sep 2022 06:15:45 +0000 http://cn.staging.comsol.com/blogs?p=314961 对于瞬态声学问题,有不同的声压级度量,一些文献和测量标准中对它们进行了定义。在将瞬态声学仿真的结果与声级计的测量结果进行比较时,或为了使瞬态仿真结果更容易在对数尺度上解释,了解这些指标非常重要。这篇博客,让我们来看看这些不同的指标是什么,何时以及如何计算它们。

定义声压级

对于稳态谐波噪声,声压级()定义为:

\textrm{SPL}= 10\log_{10}{\frac{p_\textrm{rms}^2}{p_\textrm{ref}^2}},

式中, 是均方根(RMS)声压, 是参考声压(例如,空气的参考压力为 20 ,也是 RMS 值)。对于一个复振幅为  的谐波激励:

p_\textrm{rms} = \sqrt{\frac{1}{2}pp^*} = \frac{|p|}{\sqrt{2}},

式中, 表示复共轭。因此, 可以很好的定义稳态噪声,这里的表达式 可用于 COMSOL Multiphysics ® 软件中使用压力声学,频域 接口计算 。接口中内置了几个变量,便于进行结果分析。

对于瞬态噪声,整个时间段() 内的 RMS 声压可以计算为:

p_\textrm{rms} = \sqrt{\frac{1}{T}\int_0^T p(t)^2 dt}

由于此表达式在整个区间内取平均值,因此对于比较区间内随时间变化的水平没有用处。为此,我们可以分析其他指标。在这篇博文中,我们将重点关注:

  1. 使用频域到时域 FFT 研究中的使用窗函数 功能计算瞬态信号的频率权重 声压
  2. 使用时域的卷积计算时间计权声压级
  3. 使用参数扫描计算用户定义时间段内的时均声压级

频率权重

人耳不能平等地感知所有频率的声级。例如,耳朵对 1000 音调的感知比 100 音调的更敏感。为了在分析声音测量时从数学上考虑这种敏感性,引入了A 权重作为 IEC 61672-1:2013 标准的一部分。这一功能可以调整正在分析的噪声,用于补偿频率。

其他权重函数包括:

  • C 权重:这是为了捕捉耳朵的非线性响应,例如高声压级的与频率相关的变化。
  • Z 权重:这是一个平坦的响应,用于表示零权重。

正常频率范围内的这三个函数(A 权重、C 权重和 Z 权重)如下图所示:

显示了蓝色、绿色和红色曲线的线图,分别代表正常频率范围内的A-权重、C-权重和 Z-权重。
A-权重、C-权重和 Z-权重频率加权函数图。

权重函数的选择很大程度上取决于应用。例如,在美国,职业健康与安全管理局(OSHA)和环境保护署都使用 A 权重指标来衡量职业和环境噪声限值。

A 权重增益函数为:

A(f) = 20 \log_{10} {H(f)}
H(f) = \frac
{f_4^2f^2}
{(f^2+f_1^2)(f^2+f_2^2)^
{1/2} (f^2+f_3^2)^{1/2}
(f^2+f_4^2)}\frac{(1000^2+f_1^2)(1000^2+f_2^2)^
{1/2} (1000^2+f_3^2)^{1/2}
(1000^2+f_4^2)}
{f_4^21000^2}

式中, 是频率,常数 。该函数被定义为在 1000 具有 0 增益。稍后,我们将使用参数和解析函数来实现这个函数。

请注意,不同类型的权重内置在倍频带图中。该图可用于后处理所有频域数据。您可以在我们的博客文章“用于声学仿真的倍频带图”中详细了解该图。

时间计权声压级

考虑一个瞬态 A 权重声压 。可以通过以下方式定义瞬时声压级

L_{p_A}(t) = 10 \log_{10}{\frac{p_A(t)^2}{p^2_{ref}}}

但是,这其中存在一些问题。首先,当 = 0 时,结果运算涉及取 0 的对数,所以 未定义。第二个更实际的问题可以追溯到第一次使用声级计的时候。如下面的 3 个并排图像所示,针形指示器会上下移动以显示变化的信号。但是,如果我们根据瞬时声压级的定义来看待这一点,就会出现一个问题:指针来回移动的太快,以至于操作员很难在任何给定时刻看到读数。(参考文献 1)

声级计指示器指针指向40 dB。
声级计指示器指针指向80 dB。
声级计指示器指针指向100 dB。

声级计指针指示器。

为了克服这个问题,我们引入了时间计权声压级 的概念。其定义为:

L_{A \tau}(t) = 10 \log_{10}{\bigg[\frac{1}{\ p_\textrm{ref}^2}\frac{1}{\tau}\int_0^t p_A(\zeta)^2e^{-(t-\zeta)/\tau}d \zeta} \bigg]

在这个表达式中, 是时间常数, 是用于积分的中间变量。参数 的定义是,慢速时间计权为 1s,快速时间计权为 0.125 s。按照这些规格制造的声级计有可供用户使用的慢速和快速时间权重选项。

时间计权声压为:

p_{A \tau} = \sqrt{\frac{1}{\tau}\int_0^t p_A(\zeta)^2e^{-(t-\zeta)/\tau}d \zeta}

让我们来分解这个表达式。该函数是声压函数的平方和指数衰减函数的卷积。卷积将是两个函数相乘和积分的数学运算。在这个过程中,其中一个函数被翻转并沿中间轴移动,在这个例子中是 。假设使用 进行快速时间计权,用 作为声压,当 的瞬间。 将 通过在轴绘制这两个函数,以周期 归一化后进行可视化。

卷积积分中各个函数的图。
卷积积分的被积函数图。

卷积积分中的各个函数(左)和卷积积分的被积函数,在离散时间将它们相乘的结果(右)。

当将两个函数相乘时,剩下用于积分是第三个函数,这个函数只有在由指数函数的当前时间戳计权的时间间隔上为非零。很明显,随着时间的增加,更多的指数函数与压力信号重叠,因此对于这种纯正弦曲线的情况,期望积分会增加到一个点。

回到实际示例中,时间常数有效地减慢了指针移动的速度,因此操作员可以在指针变化时实际读取它。尽管在数字技术之前它的用途是用于声级计,但时间计权声压级今天仍在用于现行标准和声级计。

等效连续噪声级

IEC 61672-1 中还定义了时间平均声压级,也称为等效连续噪声级。它的定义是:

L_{AT} = 10 \log_{10}{\bigg[\frac{1}{p_{ref}^2}\frac{1}{T}\int_{t-T}^T p_A(\zeta)^2d \zeta}\bigg]

平均周期 必须参考测量来指定,但可以代表任何时间。该标准建议声级计采用以下积分时间:T = 10 s、1 min、10 min、30 min、1 h、8 h 或 24 h。在这种情况下没有卷积。这只是一个定义的时间段内的 RMS。

时间平均压力为:

P_{AT} = \sqrt{\frac{1}{T}\int_{t-T}^T p_A(\zeta)^2d \zeta}}

使用短平均周期(以秒或更短周期)被称为 短等效连续噪声级 Leq。这对于减少数据存储和传输很有用,同时对于长时间记录的声音,仍然保持相当高的数据保真度。

示例 1:正弦压力信号

频率权重

在这里,我们展示了一个验证示例,该示例考虑了一个具有恒定振幅和恒定频率的简单正弦波形。这可以使用表达式为 P0*sin(2*pi*fdrive*t)解析 函数来实现。我们将使用参数来定义压力振幅 和驱动频率 。第一步是计算 A 权重信号。我们将使用前面定义的参数为 A 权重添加第二个解析 函数。

COMSOL Multiphysics UI 的特写视图,其中显示了模型开发器,其中 Analytic 2 - 加权函数 (H) 突出显示,相应的“设置”窗口的“定义”部分已展开。
A 权重函数 设置 窗口。

展开了“参数”部分的“频率加权参数设置”窗口的屏幕截图。
频率权重参数 设置窗口。

我们将在全局常微分微分代数方程 接口中添加一个 0 维组件并使用全局方程。

全局方程的设置窗口。
全局方程的设置窗口。

接下来,我们可以依次设置三个研究步骤。首先,瞬态 研究用于求解上图中定义的方程,它有效地将信号存储为一个因变量。接下来,时域到频域 FFT 研究将信号转换到频域。最后一步(也是涉及频率权重的步骤)是使用频域到时域 FFT 研究步骤。在这里,选择使用窗函数 复选框。对于窗函数,选择来自表达式 并插入我们之前定义的解析函数的表达式。

COMSOL Multiphysics UI 的特写视图,显示模型开发器,其中第 3 步:频率到时间 FFT 突出显示,相应的设置窗口扩展了研究设置部分。
频域到时域 FFT 研究步骤的 设置窗口。

研究结果如下所示,放大到几个周期。A 权重压力与原始信号同相,但振幅减小。这种振幅的降低可以通过查看 A 权重频率增益函数曲线来验证,该曲线在 300 显示为 ~-7 。增益可以通过振幅的对数比来计算,即 ,这与曲线一致。

对正弦波形使用频率加权后的结果图。

对正弦波形使用频率加重后的结果图。

时间权重

现在,已经对信号进行了频率权重,接下来我们将计算时间计权声压和时间计权声压级。首先,我们将新计算的值 存储为插值函数,其数据源是一个派生值结果表。这样,我们就得到一个函数 ,用于计算卷积。

已展开定义部分的插值 1 设置窗口的屏幕截图。
插值函数的设置窗口。

为了计算卷积,添加了一个 1 维网格 数据集。使用的表达式如下所示。在表达式中, 是网格定义的积分变量坐标。 是为移动指数权重函数而引入的一个新变量。substval() 中的主要表达式是 integrate(P_A_func(zeta)^2*f(t-zeta),zeta,0,t,1e-8),它定义了 zeta 从 0 到某个变化量的积分 ,积分容差为 1e-8 substval()。用一个当前值  替换 ,这使得卷积可以被计算出来。

折线图设置窗口的屏幕截图,其中展开了数据和 y 轴部分。
用于计算时间计权声压的设置窗口

时间计权声压和声压级的结果如下所示。请注意,必须及时解析信号才能使积分准确。当波形是纯正弦波时,可能会发生一些有趣的事情。首先,随着时间的增加,快速计权声压和快速计权声压级分别接近 RMS 和总声压级。对于纯正弦曲线,可以根据卷积积分的解析解来检查结果,卷积积分可以按部分(多次)积分得出。如果 A 权重压力声压振幅为 ,则解析解为

P_{A \tau} = \sqrt{\frac{P_{0A}^2(4 \tau^2 \omega^2(1 – e^{-t/ \tau})-2 \tau \omega \sin(2 \omega t)-\cos(2 \omega t)+1))}{8 \tau^2 \omega^2 +2}}.

此外,时间常数也可以解释为达到约 63% 等效水平的所需的时间。例如,以 dB 为单位的 63% 是 。所以,在 ,时间计权声压级应比等效声压级低约 2 dB(在这个示例中约为 84-82 dB)。

时间加权压力的结果图。
声级的结果图。

时间计权声压(左)和声压级(右)的结果图。

时间平均

最后一步是计算时间平均声压级。我们将定义参数,包括平均持续时间、平均数以及积分的移动上限和下限。添加了一个新的瞬态研究,其中包含对平均值数量的参数化扫描。这个参数化研究的目标是创建可用于后处理的移动上限和下限。请注意,这里实际上没有解决任何物理场接口问题。

参数设置窗口的屏幕截图。
研究设置窗口的屏幕截图。

用于时间平均计算的 参数(左)和 研究(右)设置窗口。

线图可与参数解数据集一起使用,来绘制时间平均值。在这个图中,解参数 更改为手动,参数选择 更改为全部时间选择 更改为最后。线段将从较低时间跨越到较高时间(x 坐标),表达式(y 坐标)是时间平均声压的计算值 ,并使用 timeint() 算子。

COMSOL Multiphysics UI 的特写视图,其中突出显示了“模型开发器”中的“线段 1”,相应的“设置”窗口中的“数据”、“x 坐标”和“y 坐标”部分已展开。
用于绘制时间平均声压的 线段设置窗口。

在这种情况下,平均时间远大于周期,因此时间平均声压是 RMS 声压。我们可以将所有结果绘制在一起进行比较。

正弦波的压力与时间的关系图。
正弦波的声级与时间的关系图。

正弦波的声压与时间(左)和声压级与时间(右)的结果。

示例 2:变速箱中的噪声

在之前的博客文章中,我们描述了如何对变速箱振动和噪声进行建模。使用这里描述的方法,我们可以对噪声进行后处理并绘制其他有用的指标。首先,我们将从位于坐标处的虚拟麦克风获取随时间变化的声压:

  • x = 0.75
  • y = 0
  • z = 0

该数据被加载并存储在插值函数中。这些指标的计算方法与正弦验证的示例相同。

动态变速箱周围的声压场模型。
动态变速箱周围的声压场。时间 = 0.0020735 s

在这个例子中,我们将使用快速加权常数 。平均周期为 。结果表明,与原始信号相比,A 权重声压被放大。这是因为大部分声能在 1000-3000 频率范围。

齿轮箱噪音的压力与时间关系图。
齿轮箱噪音的声级与时间的关系图。

变速箱噪声的声压与时间(左)和声压级与时间(右)的结果。

这里显示的结果是 A 权重、时间权重和时间平均声压和声压级。这些指标很有用,例如,如果你想使瞬态模拟的结果更容易在对数尺度上解释,将结果与声压级计的测量结果进行比较,或者对瞬态信号将如何被人耳感知感兴趣。

动手尝试

这篇博客,我们介绍了如何计算各种瞬态声学指标,包括频率权重、时间权重和时间平均。这里概述的定义和主要后处理步骤可用于任何瞬态声学仿真。单击下面的按钮,进入 COMSOL “案例库”。尝试自己动手建模:

参考文献

  1. E.H. Berger, The Noise Manual, AIHA, 2003.
]]>
//www.denkrieger.com/blogs/computing-transient-sound-pressure-levels-in-comsol/feed/ 0
用于声学仿真的倍频带图 //www.denkrieger.com/blogs/new-octave-band-plot-for-acoustics-simulations-in-version-5-2 //www.denkrieger.com/blogs/new-octave-band-plot-for-acoustics-simulations-in-version-5-2#respond Fri, 09 Sep 2022 05:32:32 +0000 http://cn.staging.comsol.com/blogs?p=314641 倍频带 图提供了一种简单灵活的方式来表现仿真结果,包括频率响应、传递函数、灵敏度曲线、传输损耗和插入损耗,这在模拟声学应用时非常重要。今天这篇博客,我们来详细了解倍频带图,重点介绍它在 COMSOL 中的各种选项和设置。

编者注:这篇文章最初发布于 2016 1 21 日。现已经更新,用于反映声学模块中提供的新特性和功能。

倍频程的重要性

当讨论倍频程时,通常指的是一个频带,其中高频是低频的两倍。使用这个概念会使对数频率轴上产生等宽的频带。

对于声学和音频工程师来说,通过将信号能量分成倍频程或分数倍频程来表示声学响应,是非常常见的。这种可视化技术与标准中的规范密切相关,例如测量设备的工作方式(如声级计)。从生理学上讲,使用这种表示是源于人耳(通过听觉滤波器)在对数频率尺度上能够过滤和感知声音这一事实。同样,人耳对声音的大小也有对数敏感性,因此使用分贝(dB)来表示声压级。

接下来,您将会看到,绘制倍频带 图比简单地在倍频程中绘制声学响应包括更多的功能。

倍频带 图,一个简单而通用的声学专用图

COMSOL Multiphysics ® 的附加产品——声学模块的倍频带 图包括专用于声学仿真的内置功能,可以帮助表示和分析频域数据。倍频带图是以 dB 为单位自动输出的,并带有多种格式选项。对于绘图的数据,我们可以使用任何全局量,或者轻松地在某一个点处获取它,或者在线、表面或体积上取平均值。

对于图表,我们可以选择结果的表示形式,使它们以频带(倍频程、1/3 倍频程或 1/6 倍频程)或连续曲线的形式呈现。频带形式可以表示频带功率或频带平均功率谱密度(PSD),而连续曲线可以表示 PSD 数据。我们还可以轻松地为响应曲线添加权重,可选择 Z-权重、A-权重、C-权重 或用户定义的权重。对于绘图的输入,可以对其进行修改来表示振幅(例如,压力的绝对值)、功率(例如,端口处入射或出射模式的功率或在一个表面上积分的强度)或者一个通用传递功能。

所有这些选择都可以帮助大大简化后处理。此外,使用这种绘图类型可以更轻松地将结果与测量数据进行比较,测量数据通常以倍频程或 1/3 倍频程给出。

下面的屏幕截图显示了 倍频带 图的用户界面 。下一节,我们将详细解释它的不同选项和设置。

倍频带图的用户界面的屏幕截图。
倍频带图的用户界面(UI)。

不同选项和设置概述

几何实体层

通过几何实体层 下拉菜单,能够选择如何从模型中获取输入数据。如果数据可以直接从模型中的某一个点获取,那么也许在某一特定位置可以测量灵敏度。选择边界,输入数据会被自动平均化。在平均过程中,压力或功率在转换为 dB 标尺之前就被平均化了。例如,当计算仿真耳中的响应时,这种方法很有用。这里,测量麦克风表面上的平均压力很容易被拾取。因此,无需在计算组中设置积分或平均算子,也无需执行表面平均化。

几何实体层 选择也可用于评估全局数量。例如,可以使用外场计算 算子来评估计算域之外的点的压力。

表达式类型

使用表达式类型 选择(在 y 轴数据部分),可以决定如何解释倍频带 图中的输入数据。这里共有三个可用的选项:大小功率传递函数

默认的选项是大小选择 这个选项时,表达式 字段中的输入将被视为复振幅 ,在声学应用中最常见的是压力。然后使用输入的值将声压级评估为

L = 10 \log_{10} \left( \frac{p_\textrm{rms}^2}{p_\textrm{ref}^2} \right)

其中有效声压(RMS)由计算。将参考压力 输入到 参考幅值 字段中,并假定为 RMS 量。在大多数声学接口中,默认值为 phys.pref_SPL 在物理场接口级别的声压级设置中定义。默认值通常为 20 。例如,在定义传递函数时,参考幅值可以设置为入射平面波的 RMS 幅值, ,该平面波的峰值幅值为 ,并且在表达式 字段中的输入值可以是在表面上测量的平均压力。

第二个选项是功率。选择这个选项时,输入到表达式 字段中的绘图的输入值被假定为一个功率 。例如,可以由表面上声学强度的积分来计算该值。其计算公式为

L = 10 \log_{10}\left( \frac{P}{P_\textrm{ref}} \right)

其中参考功率 ,被输入参考功率 字段中。默认为phys.Pref_SWL,其值为

最后一个选择是 传递函数。这时,可以输入用户定义的任何传递函数 和参考水平 。其计算公式为

L = 10 \log_{10}\left( |H| \right)+L_\textrm{ref}

当结果绘制为倍频程、1/3 倍频程或 1/6 倍频带时,输入数据用于对频段内的功率进行积分,具体取决于您选择的形式。

绘制物理量权重

绘图 选项下,有两个下拉菜单提供了不同的数据格式选择,即物理量权重 下拉菜单。

使用物理量 下拉菜单,可以将频域数据绘制为连续功率谱密度频带功率频带平均功率谱密度。频带功率与频带平均谱密度的选择决定了频带功率求和及平均的执行方式。使用不同频段绘图时,可以选择 带类型 作为倍频,1/3 倍频1/6 倍频。最后一个选项仅使用带内数据,可以选择(默认)或取消选择。选择此选项时,只有位于给定频带内的数据点被用于数据的积分和插值。这个选项通常会影响低分辨率数据的结果(即每个频带中只有几个点)。

下图突出显示了三种不同的绘图样式。红色线条表示 1/3 倍频带功率数据,绿色线条表示倍频带功率数据,蓝色实线表示 1/3 倍频带平均功率谱密度(PSD)数据。(可以通过颜色和样式 部分更改条形图的格式。)该图是 扬声器驱动教程模型中的一个修改版本。

图表显示了不同绘图形式的倍频带。
描绘不同绘图形式的图表。

最后,使用权重 选项,可以确定应用于数据的权重。这些选项包括:

  • Z 权重(平面):应用平均权重(默认选项)。
  • A 权重:将 IEC 61672-1 标准 A 权重应用于数据。此权重用于解释人耳的感知响度。
  • C 权重:将 IEC 61672-1 标准 C 权重应用于数据。此权重也可以解释人耳的感知响度,通常是非常响亮的噪声水平。
  • 表达式:用户定义的值或表达式用于权重。在表达式 字段中,输入将增益定义为频率函数 的表达式 freq。以 dB 为单位提供的增益为 20·log10(expression)

下图中的两条曲线表示应用于一个平面的 0-dB 响应的 A-权重 和 C-权重。用户定义的线性加权为 用 1/3 倍频带表示(以红色显示)。

在 COMSOL 中绘制了不同权重选项的倍频带图。
显示不同权重选项的图。

使用 倍频带 图:一个吸收式消声器示例

吸收式消声器教程模型(位于COMSOL案例库中的声学模块 > 汽车文件夹中)使用倍频带 图来描绘消声器系统的传输损耗。在这个版本的模型中,为表达式类型 选择传递函数选项。该图的输入是总入射功率与总出射功率的之比。这些单元是通过使用端口条件 下入射和出射模式的功率内置变量来计算的。

对于纯平面波传播(低于约 2500 Hz),还有另一种方法可以在不使用端口功率变量的情况下绘制传输损耗。为此,需要将几何实体层 设置为边界 并选择出口边界编号 28。在表达式 字段中,输入 p_in(入射平面波的振幅),并在 参考幅值 字段中,输入 sqrt(0.5)*acpr.p_t。由于假设参考是 RMS 值,因此需要 sqrt(0.5) 系数(如下面的屏幕截图所示)。选择 连续功率谱密度 绘图样式并单击 绘图 按钮,就可以得到如下所示的带有衬垫的消声器的结果。

屏幕截图显示了吸收式消声器的倍频带图的设置。
吸收式消声器的 倍频带图的绘图设置。

吸收式消声器的传输损耗图。
吸收式消声器的传输损耗比较图。

拓展资源

除了上面介绍示例模型之外,您还可以在 COMSOL 案例库中找到许多其他使用倍频带 图的教程模型。我们在下方列出了其中的一些教程模型,所有这些模型都可以从 COMSOL 案例库中下载。

参考文献

  1. IEC 61672-1 Electroacoustics — Sound level meters — Part 1: Specifications.
]]>
//www.denkrieger.com/blogs/new-octave-band-plot-for-acoustics-simulations-in-version-5-2/feed/ 0
如何使用空间快速傅里叶变换(FFT)进行光学应用仿真 //www.denkrieger.com/blogs/how-to-use-the-new-spatial-fft-feature-for-applications-in-optics //www.denkrieger.com/blogs/how-to-use-the-new-spatial-fft-feature-for-applications-in-optics#comments Fri, 19 Aug 2022 07:26:45 +0000 http://cn.staging.comsol.com/blogs?p=312551 快速傅里叶变换 (FFT) 是一种有用并且强大的数值方法。COMSOL Multiphysics ® 软件最新 6.0 版本增加了与此方法有关的一项新功能:空间 FFT 特征。在这篇博客中,我们将讨论如何将这一新功能用于光学应用,并展示了一些应用案例。

术语和定义

首先,我们来明确一些术语和定义。需要区分三个术语:傅里叶变换 (FT)、离散傅里叶变换 (DFT) 和快速傅里叶变换。函数 的傅里叶变换由下式定义

\hat{u}(\xi) = \int_{-\infty}^{\infty} u(x)e^{-2\pi i \xi x} dx,

式中, 分别是物理空间和傅里叶空间中的变量。当物理空间变量为时间 时,变量 称为频率。在光学中, 被称为空间频率,通常与波长和焦距成比例(我们将在后面讨论),而 是用于描述感兴趣的光学结构附近位置的物理空间坐标。

在之前的博客:如何在 COMSOL Multiphysics 中实现傅里叶变换如何由计算解实现傅里叶变换中,我们讨论了如何在 COMSOL® 中进行傅里叶变换。我们可以使用一种数值方法,即通过基于辛普森法则的直接数值积分来进行傅里叶变换公式。在这篇博客的稍后部分,我们将其称为“通过数值积分进行的傅里叶变换”。

离散傅里叶变换是傅里叶变换的离散形式,是对一组离散的点进行运算。它在 COMSOL ® 中定义为

\hat{u}(\xi_k) = \sum_{j=0}^{N-1}u(x_j) e^{-2\pi ijk/N}, \ \ \ k=0, \cdots, N-1

快速傅里叶变换是计算 DFT 的一种有效算法。

请注意,傅里叶变换和离散傅里叶变换的定义是最通用的定义,但符号约定与 COMSOL 的波动方程符号约定 不一致,即 。当使用这些符号定义弗劳恩霍夫和菲涅耳衍射公式时,请注意不要弄错。符号不一致性不影响稳态解。

如何使用空间 FFT 特征

接下来,我们将演示如何在光学应用中使用新的 COMSOL® 空间 FFT 特征。可以通过步骤 1 和 2 分别设置和实现 FFT 特征:

  • 步骤1:准备数据集
    • 右键单击数据集 → 更多数据集 添加空间 FFT 数据集(定义傅里叶空间)
    • 选择合适的源数据集作为物理空间,然后进行变换
    • 空间分辨率 设置为手动
    • 采样分辨率 设置为适当的数字
    • 空间布局 中选择使用补零,并将 x 填充 设置为适当的数字
    • 傅里叶空间变量 中选择频率
    • 取消勾选屏蔽 DC
  • 步骤2:使用 fft() 算子绘图
    • 在绘图设置中调整 x 轴数据的空间频率比例

矩形函数示例

矩形函数是光学应用中最常用的函数之一,因为它代表了一个硬边光阑。当存在硬边光阑时,总是涉及矩形函数的傅里叶变换。矩形函数的傅里叶变换可以很容易地通过手动计算,如下所示:

{\rm rect}(x/a)=
\begin{cases}
0 & |x|>a/2 \\
1 & |x|\le a/2
\end{cases}

 

{\mathcal F}[ {\rm rect(x/a)}](f) = a\:{\rm sinc}(\pi f a),

式中, 代表傅里叶变换算子, 是一个常数, 是 sinc 函数。

让我们看看如何在 COMSOL® 中使用新的空间 FFT 特征计算此傅里叶变换。

左侧是模型构建器的屏幕截图,其中选择了 Grid 1D 节点和相应的 Settings 窗口,其中 Data、Parameter Bounds 和 Grid 部分展开。 右侧是模型构建器的屏幕截图,其中选择了 Spatial FFT 节点和相应的 Settings 窗口,其中展开了 Data 和 Transformation 部分。
矩形函数(左)及其傅里叶变换(右)的数据集设置示例。

矩形函数是定义 >函数 下的内置函数。点击创建绘图 按钮,会在结果下的数据库 节点为该函数自动创建一个新数据集。 默认情况下,范围和分辨率也是自动设置的。在进行快速傅里叶变换时,自己控制这些参数很重要。傅里叶空间分辨率由物理空间范围的倒数和物理空间数据的零填充确定。傅里叶空间范围由物理空间范围和傅里叶空间采样数决定。快速傅里叶变换结果的大小因物理空间范围和傅里叶空间采样数而异。下表是快速傅里叶变换参数表达式的汇总,包括与上图中显示的快速傅里叶变换设置对应的参数值。

参数 表达式 示例值
实际上的总范围 2
傅里叶空间采样数 16
补零 8
傅里叶空间总范围 8
傅里叶空间分辨率 1/4
傅里叶变换归一化因子 1/8

进行上述设置后,矩形函数 rect1(x) 如下图所示,其傅里叶变换的绝对值 abs(fft(rect1(x)) 由 FFT 特征计算。傅里叶空间总范围是 = 16/2 = 8,即从 -4 到 4。可以看到傅里叶空间的采样点总数为 = 32。

为什么是 ? 因为在补零中, 零被添加到物理空间数据的两侧。傅里叶空间分辨率为 8/32 = 0.25。在没有归一化的情况下,快速傅里叶变换运算结果因子为 。所以,我们需要将结果乘以 获得一个单位峰值。稍后,我们将对各种公式进行快速傅里叶变换,每个公式都有不同的乘法常数。因此,我们必须将快速傅里叶变换结果归一化。

显示矩形函数的折线图,其中 a = 1(蓝线)及其傅里叶变换的绝对值(红线)
矩形函数 = 1 及其傅里叶变换的绝对值,由快速傅里叶变换和上述设置确定。

在这个示例中,我们有意将采样数设置为较低的数字,以便可以参考前面的公式。不过,仍然可以看到傅里叶变换, 是用一个较好的近似值计算的。使用更加合适的参数,例如 = 3, = 128, = 512,我们可以得到以下理想的结果。将数值积分的傅里叶变换结果叠加以进行比较。当然,这两种方法的结果应该一致!

将矩形函数与 a = 1(蓝线)、其傅里叶变换的绝对值(红线)和数值积分的傅里叶变换(绿线)进行比较的折线图。
=1 时,由高分辨率的快速傅里叶变换确定的矩形函数的傅里叶变换绝对值和由数值积分确定的傅里叶变换绝对值的对比

在光学应用中进行傅里叶变换

现在,我们已经学习了如何为矩形函数(一维解析函数)设置和使用空间 FFT 特征。接下来,我们来看如何在一些实际光学应用示例中使用此特征。

在光学领域,将光电场的时间信号与其光谱(频率或波长)相关联的时频傅里叶变换可能更为大家所熟知。空间傅里叶变换用于从一个平面传播到另一个平面的电场的各种传播(变换)方法。在这个例子中,空间傅里叶变换将一个平面中电场的空间形状与另一个平面中的形状(称为空间频率)相关联。考虑一个入射到平面中扰动上的标量电场或矢量电场的分量,例如一个光圈或透镜,到达另一个平面,例如焦平面或像平面,如下图所示:

光学中传播方法的坐标系示意图。
光学应用中传播(变换)方法的坐标系。

让我们来表征扰动后平面内的电场 。然后,根据不同的目标,使用四种传播方法中的一种来计算了另一个平面的电场 。下表总结了四种方法。这些公式由傅里叶变换的简单相位函数符号 表示。

理论 公式(简单符号) 应用
1. 夫琅禾费衍射理论 夫琅禾费衍射条件下的标量远场——观察者距离衍射物体*很远,用于孔径、光栅和傅里叶光学等应用。
2. 菲涅耳衍射理论 菲涅耳衍射条件**下的标量近场至远场,适用于低数值孔径 (NA) 透镜系统等应用。
3. 角谱法*** 适用于任何系统(例如高数值孔径透镜系统)的严格单向标量场解决方案(不考虑反射)。
4. 部分相干理论(Schell 模型)**** 非干扰或低干扰光源,例如 LED 和太阳光,使用在在夫琅禾费或菲涅耳衍射近似下的互相干函数的 Schell 模型假设。

脚注:

夫琅禾费衍射条件
** 菲涅耳衍射条件
*** 是方向余弦
**** 是部分相干强度, 是相干强度,并且 是互相干函数

夫琅禾费衍射

夫琅禾费衍射公式用于计算满足夫琅禾费条件时,从物体衍射的远场。

以下是完整的公式:

\hat{E}
(x’,y’,L) = \frac{e^{i k L}}{i \lambda L} \iint_{-\infty}^{\infty}E(x,y,0) e^{-i 2\pi (x’ x+y’ y) / (\lambda L)}dxdy

该公式用于计算孔径、光栅的远场和傅里叶光学焦平面内的场(参考文献 1)。该物体是一个具有均匀光照的方形孔径。孔径出口平面的电场是一个二维矩形函数,远场由快速傅里叶变换计算。这会形成一种熟悉的衍射图案,类似于从网状窗帘后面观察路灯时的景象。请注意,我们需要将图中的 x 轴数据缩放为 ,因为空间频率被缩放为 。 通过数值积分使用傅里叶变换计算二维傅里叶变换需要的时间较长,但快速傅里叶变换可以非常快速地完成这项工作。

左侧为方形孔径的图像,右侧为其衍射图案。
方形孔径(左)及其衍射图案(右)。

模拟方形孔径的设置非常简单:

 

菲涅耳衍射

第二个应用,菲涅耳衍射公式,可用于计算远场以及近场干扰。这个近似值的完整公式为:

\hat{E}
(x’,y’,L) = \frac{e^{ikL}}{i\lambda L}e^{ik(x’^2+y’^2)/(2L)}\iint_{-\infty}^{\infty}E(x,y,0)e^{-ik(x^2+y^2)/(2L)} e^{-i 2\pi (x’ x +y’ y)/ (\lambda L)}dxdy

请注意,x 轴数据需要按因子 进行缩放。菲涅耳透镜模型应用了这种方法,通过波动光学,频域 接口计算透镜内部的电场。基于菲涅耳衍射公式通过数值积分进行傅里叶变换计算焦平面中的场。如下图所示,可以在该模型中使用 FFT 特征,并通过数值积分得到与傅里叶变换相同的结果。

显示菲涅耳模型焦平面中的电场模的折线图,宝蓝色线代表积分菲涅耳近似,绿线代表亥姆霍兹方程(ewfd),红线代表亥姆霍兹方程(ewbe)和代表快速傅里叶变换 菲涅耳近似的水线。
菲涅耳透镜模型焦平面中的电场模。FFT 特征用于计算菲涅耳衍射公式,并与其他方法进行比较。

A screenshot of the COMSOL Multiphysics UI showing the Line Graph settings window with the Label of FFT Fresnel Approximation. The Data, y-Axis Data, and x-Axis Data sections are all expanded.
用于菲涅耳衍射公式的 FFT 特征的后处理设置。请注意,y 轴数据是标准化的,x 轴数据是按比例缩放的。

角谱法

第三个应用,角谱法,实现起来有点麻烦,因为它需要进行两次傅里叶变换,由其完整公式可以看出:

\hat{E}(x’,y’,L) = \iint_{-\infty}^{\infty}
A \left(\frac{\alpha}{\lambda},\frac{\beta}{\lambda},0\right) e^{ikL\sqrt{1-\alpha^2-\beta^2}} e^{i2\pi (\alpha x+\beta y) /\lambda} d\frac{\alpha} {\lambda} d\frac{\beta}{\lambda}
,

式中,

A \left(\frac{\alpha} {\lambda},\frac{\beta}{\lambda}
,0\right) = \iint_{-\infty}^{\infty} E(x,y,0) e^{-i2\pi (\alpha x + \beta y)/\lambda} dxdy,

是方向余弦。

在前文提到的博客中,我们介绍了如何模拟大型光学器件;即可以使 用波动光学、频域 接口计算光学元件周围的小域,然后使用 弗劳恩霍夫或菲涅耳衍射公式,或者使用 波束包络 接口模拟整个域。然而,这两种方法仅适用于慢速(低 NA)透镜,因为快速(高 NA)透镜需要大量网格单元,而夫琅禾费和菲涅耳公式无法给出很好的近似值。波矢太陡,波束包络 接口无法对计算域进行网格划分。

模拟大型高数值孔径透镜的唯一方法是使用角谱法(ASM)。这是一种与夫琅禾费和菲涅耳衍射公式属于同一类型的数值传播方法。只要知道一个平面中的场,就可以计算另一个平面中的场。角谱法非常严格,因为它满足亥姆霍兹方程。可以结合波动光学模块使用该方法计算某个域中的场,然后使用角谱法将场传播到更远的平面。

下图中是一个高 NA 透镜 (NA=0.66) 的示例,它比 DVD 拾取透镜快得多。透镜半径为 16μm,后焦距(透镜第二面与焦平面之间的距离)为 10μm。结合使用 几何光学 接口与优化模块,对该透镜头进行了优化,使其在 0.66μm 的波长下具有衍射极限。透镜被特意设计得很小,使波动光学,频域 接口可以计算出严格的解以进行比较。我们将演示如何使用角谱法将场从该透镜的出射面传播到焦平面。

左侧是使用射线光学模块和优化模块设计的高数值孔径透镜模型。 右边是镜头的全波模拟。
使用射线光学模块和优化模块(左)设计的 NA=0.66 透镜。使用 波动光学,频域接口(右)模拟的透镜的全波模拟。注意代表透镜出射平面的线,场从该平面传播到最右边的边缘,即焦平面。

比较菲涅耳衍射公式(蓝线)、亥姆霍兹溶液(粉线)和角谱法(绿线)的高 NA 透镜光斑轮廓线图。
NA=0.66 透镜光斑轮廓模型与使用菲涅耳衍射公式计算的结果比较;由波动光学,频域 接口计算的严格解;和使用角谱法计算的结果。请注意,对于这个透镜,菲涅耳衍射公式不再准确。(为了更好的比较,显示了 11μm 而不是 10μm 处的光斑轮廓。)

为了进行两次傅里叶变换,我们需要将第一次傅里叶变换存储在数据集中。这是因为 fft() 算子只是一个后处理算子,不是可以在物理设置中使用的通用算子,如 integrate算子。目前,在当前版本的 COMSOL Multiphysics 中(在未来版本中,fft() 算子将被提升为通用算子),我们仍然需要在第一次傅里叶变换的物理场设置中通过数值积分来使用傅里叶变换,然后将 fft() 算子用于后处理中的第二次傅里叶变换。边界常微分和微分代数方程分布式常微分方程 节点的接口被定义在透镜出射平面上,通过数值积分傅里叶变换执行第一次傅里叶变换,并将结果存储为函数 ,如下图所示:

模型开发器的屏幕截图,其中选择了分布式 ODE 节点,并展开了相应的设置窗口,其中边界选择、源项、阻尼或质量系数和质量系数部分展开。
使用角谱法时,第一个傅里叶变换的 边界常微分和微分代数方程设置的屏幕截图。请注意,我们通过透镜半径 D/2 对傅里叶空间进行了归一化,进行适当的缩放。

COMSOL Multiphysics UI 的屏幕截图,显示了带有 Line Graph 1 标签的 Line Graph 设置窗口。数据、y 轴数据 和 x 轴数据 部分均已展开。
使用角谱法时,在后处理中进行第二次傅里叶变换的设置窗口屏幕截图。对于第二次傅里叶变换,注意方向余弦 y 轴数据中由归一化的 y 坐标表示,x 轴数据中的归一化因子 1/wl 来自变量的微分 。另请注意,空间频率名称 y2 是在 空间 FFT 数据集中任意选择的。

值得一提的是,第二次傅里叶变换其实就是逆傅里叶变换,但是傅里叶变换的绝对值和逆傅里叶变换到常数之间没有区别。我们已经看到,使用角谱法给出了一个与亥姆霍兹解一样准确的结果,因此可以将这种方法用于其他高 NA 透镜系统,例如大型高 NA 菲涅尔透镜。

结束语

在这篇博客中,我们了解了设置空间 FFT 特征的基础知识,以及如何在一些重要的光学应用中使用此功能的示例。在本系列的下一篇博客中,我们将讨论第四个应用,即部分相干光束计算(使用的公式与文中第三个应用使用的公式相同)。

参考文献

  1. J. W. Goodman, Introduction to Fourier Optics, 3rd ed., Roberts and Company Publishers, 2005.
  2. M. Born and E. Wolf, Principles of Optics, 7th ed., McGraw-Hill, 1968.
  3. A. C. Schell, “A technique for the determination of the radiation pattern of a partially coherent aperture,” IEEE Trans. Antennas Propag., vol. 15, no. 1, pp. 187–188, 1967.
]]>
//www.denkrieger.com/blogs/how-to-use-the-new-spatial-fft-feature-for-applications-in-optics/feed/ 3
从电磁仿真中提取电路 //www.denkrieger.com/blogs/extracting-electrical-circuits-from-electromagnetics-simulations //www.denkrieger.com/blogs/extracting-electrical-circuits-from-electromagnetics-simulations#respond Thu, 14 Jul 2022 06:57:40 +0000 http://cn.staging.comsol.com/blogs?p=308211 电磁学仿真的常见目标之一是提取可用于电路仿真的集总量。阅读本篇博客,你将获得关于如何使用 COMSOL Multiphysics® 软件执行此类任务的逐步说明……

编者注: 这篇博客于2023年1月3日更新,反映了最新的建模功能。

在 COMSOL® 中提取集总量

你可以在 COMSOL® 中使用以下特征和功能,轻松提取用于电路仿真的集总量:

  • 使用稳态源扫描频域源扫描 研究步骤自动提取电阻 R、电感 L 和电容 C
  • 用于存储提取的集总 RLC 矩阵的预定义变量,包括后处理中的自动计算和显示
  • 电路 接口,支持将电路自动导入和导出为 SPICE .cir 文件

本文,我们将重点介绍新的电路提取器 插件。这个插件包含在所有提供 AC/DC 模块的许可证中,如果设置了默认首选项,软件会自动安装电路提取器,也可以按照本文底部提供的链接中的说明手动访问它。

电路提取器插件简介

电路提取器 插件提供了一种简单的方法,可以将电磁仿真结果直接转换为电路 物理场接口,然后转换为 SPICE 文件。支持执行这类提取的物理场接口有:

  • 用于提取电阻的电流 接口
  • 用于提取电容的静电静电,边界元接口
  • 用于提取电阻和电感的磁场,仅电流 接口和 磁场和电场接口

多物理场接口和解可以为相同的提取电路做出贡献。

为了使用电路提取器 插件,必须对感兴趣的物理现象进行稳态源扫描频域源扫描 的求解。求解这类研究时产生的矩阵,随后被用于生成等效电路。求解后,在电路提取器 插件的用户界面上,选择和所需解对应的等效电路 类型和计算组 ,然后按下提取电路 按钮。这样操作后将会打开一个窗口,用于保存提取的 SPICE 文件。下图左侧是一个电路提取器 插件用户界面的示例,右侧是相应的电路图。

电路提取器插件设置窗口的截图,其中扩展了结点矩阵输入和SPICE文件预览部分。
相应的提取的电路图,带有各种标签,带各种标记,包括V3、C3_3、C2_3、V2、C1_3、C2_2、C1_2、V1和C1_1。

左图:在三个端子的静电模型中提取等效电容后,电路提取器用户界面的 设置窗口。右图:提取的电路图。

如果想找到电路提取器 插件并开始使用它,请按照以下三个步骤操作:

  1. 在 COMSOL® 中打开一个空白模型
  2. 单击功能区中的开发工具 选项卡,然后选择插件库
  3. 展开 AC/DC 模块 部分并选中电路提取器 复选框(如下图所示)

COMSOL Multiphysics用户界面显示了选择了电路提取器的插件库。
COMSOL Multiphysics 插件库窗口显示了 电路提取器的位置。

现在,你可以在任何模型上使用电路提取器 插件,而无需重复这个操作。

开始使用电路提取器

在下面的视频中,你将看到正在运行的电路提取器 插件:

 

单击提取电路 按钮后,会发生一些不同的事情:

  • 系统将询问你要将输出的 .cir 文件保存在哪里
  • 保存到 .cir 文件的文本被添加到 SPICE 文件预览部分
  • 模型的第二个组件被创建,存储了提取的电路 物理场

所有这三个操作都将生成相同的电路表示(如下所示):

提取的电路图,带有各种标签,包括V1、R1、L1、K2_1、L2、R2和V2。
提取的电路图。

电路提取器插件还能做什么?

在查看更多示例之前,我们将首先对这个插件进行深入了解,包括如何提取电路以及有哪些选项可以进一步定制。电路提取器 接口提供了一些用于修改电路的选项,例如选择馈电元件类型的选项。如果需要手动添加其他电路元件,还可以决定不闭合导体。

我们已经看到,在运行电路提取器 插件之前,需要对稳态源扫描频域源扫描 研究进行求解。当求解这些研究之一时,会计算模型的包络矩阵。它们的共同大小由在物理层面定义的终端数量决定。这些矩阵的每个非零元素对应于子电路中的一个元件。在这里,矩阵中的行和列的顺序与原始物理场接口中的馈电元件的编号相同。之后,这些编号也将在提取的电路中使用。

该插件扫描计算组内的矩阵。默认输出是磁场,仅电流 物理场接口的输出。那么,如果没有生成默认的输出矩阵,或者已经被删除,或者创建的格式与 SPICE 转换不兼容,会发生什么?对于这些情况,该插件提供了生成矩阵输入 按钮。这个按钮可以从现有的解生成所有可能的集总矩阵。它们在结果 下的计算组 功能中被输出,并可以在插件的集总矩阵 部分作为集总量 使用。

你可以使用集总量 下的下拉菜单来选择研究结果中的哪些矩阵应用于电路提取。根据选择的等效电路模拟,可以使用不同的选项。等效电路 的选项有:

  • 仅电阻 R
  • 仅电感 L
  • 仅电容 C
  • R 和 L(串联,对角化 R)
  • R 和 C(并联,对角化 R)
  • R、L 和 C(并联 C,对角化 R)
  • 阻抗 Z

现在,我们已经了解了该插件的使用情况,并了解了用于自定义电路模型的选项。接下来,我们来看一个案例,该案例侧重于通过将模型的结果与基准解进行比较来验证模型。

案例 1:RL 方波响应验证

使用上一节中的相同模型,考虑:

  • 在电压源 V1 输入一个方波信号:峰值 1 mV,工作周期 50%,频率 1 kHz(如下图所示)
  • 保持电压源 V2 为零,对应于一个短路线圈

我们可以进行完整的有限元 瞬态分析,用于验证在这些假设下,模型产生的结果与提取的电路相同。最好在瞬态仿真 中运行此分析,其中磁场 物理场接口已经求解。(此模拟的模型设置与 E 磁芯变压器教程模型中的设置相同。)

图表显示了施加在下面两个线圈上的电压信号。
在插件简介案例模型和案例 1 模型中分析了 施加到 两个线圈中较低线圈的 电压信号。

当向初级线圈施加方波信号时,自感 RL 响应预计会使产生的初级电流变得平滑。此外,互感效应将在次级线圈上产生电流。

下图比较了两种方法:

  1. 完整的 FEM 瞬态方法,通过 磁场 接口求解
  2. 集总的方法,使用由插件提取的 电路 接口求解

尽管第一种方法求解了大约 30000 个自由度 (DOF),而第二种方法仅求解了 4 个,但两者求解的结果几乎完全一致。

图表比较了由有限元方法(实线)和提取电路模拟(开放电路)产生的两个线圈中的电流。
两个线圈中产生的电流。有限元法(实线)和提取的电路仿真(标记和虚线)的比较。

你可以在 COMSOL 案例库中下载 CircuitExtractor_blog_case1_RL_SquareWaveResponseVerification.mph 文件,查看这个模型。

案例2:电阻网络稳态电流验证

考虑一个求解电阻器网络的稳态研究,其中的几何形状取自教程模型从 ODB++ 存档中导入 PCB 几何并进行网格划分。(阅读博客文章“如何在印刷电路板设计导入 ECAD 几何图形?”了解有关这个几何图形的更多信息。)

预先运行了电流 研究,为最大的金属板供电(在下图中突出显示)。施加了六个源(电压源和电流源的组合),并设置了一个接地。

下图中右下角显示了提取的电阻矩阵。

COMSOL Multiphysics 用户界面显示了选择了电流特征的模型开发器、相应的设置窗口以及图形窗口中的平面电路板模型。
图形窗口中的平面电路板 (PCB) 模型突出显示了运行电流模拟以提取等效电阻网络的金属层。用户界面右下角的表格显示了生成的电阻矩阵。

在下图中,可以看到完整 FEM 方法和提取的电路求解的结果和精确比较。你可以在 COMSOL 案例库下载 CircuitExtractor_blog_case2_ResistorsNetworkStationaryCurrentVerification.mph 文件,查看这个模型。

COMSOL Multiphysics 用户界面显示了模型开发器,选择了全局计算1选项(可在结果部分找到);相应的设置窗口,数据、表达式和数据系列操作部分已经展开;以及图形窗口中的平面电路板模型。
有限元高保真模型的结果与提取电路的结果比较。

案例3:PCB 线圈模型的 RLC 频域提取

在上述案例中,我们分析了仅针对单一物理场提取集总参数,并用于瞬态或稳态研究的示例。此外,我们仅局限于可以轻松进行全使用有限元法仿真的情况。最后一个案例,我们混合了来自不同物理场的集总信息,并使用提取的电路来完成所有部分都使用有限元建模时很难做到的事情。一个特别具有挑战性的案例涉及一个有效的频率扫描,从电感状态一直到电容状态,类似于 PCB 线圈的电感矩阵计算示例中的模型。在这里,我们使用这个例子,并添加一个静电 计算,以计算电容矩阵(如下图所示)。

COMSOL Multiphysics 用户界面显示了模型开发器,选择了导体6 特征;相应的设置窗口,域选择和导体部分已经展开;图形窗口中的12个PCB线圈模型。
模拟的 12 PCB 线圈的几何形状以及提取的电容矩阵。原始教程模型展示了如何在静态域和频域中 提取 RL 矩阵。

案例库中的原始模型包含第一项研究,即求解磁场、仅电流 并返回电阻矩阵 R 和电感矩阵 L,考虑了 12 个线圈之间的电感耦合。此处讨论的修改版本模型中,可以进行第二项研究。本研究求解静电 并返回电容矩阵 C,考虑了相同 12 个线圈之间的电容耦合。

电路提取器 的使用与之前的情况相同,但由于导体之间耦合的 RLC 特性,现在,电路可以预测谐振行为。

使用集总方法,将 PCB 线圈的频率响应从静态范围扫描到千兆赫范围几乎是瞬间完成的:计算 RL 矩阵只需 30 秒,计算 C 矩阵只需 10 秒。可以手动编辑一些外部电路元件,以更好地表示物理连接。在这种情况下,我们假设:

  • 馈电电压在第一个导体上,它是第一行线圈的输入
  • 与第一个线圈平行的其他三个线圈均为开路
  • 使用大电阻闭合了四个线路的每一个输出;功率在这些电阻上被测得

下图显示了当设备运行在非常低的频率下产生的可忽略不计的感应电流到设备开始作为变压器工作时相当大的电流的过渡;然后过渡到 LC 谐振,电流在 400 MHz 左右达到峰值。最后,它达到了一个电容状态,其中电流主要由位移电流引起。

绘图显示了电路中的阻抗和功率传输。
输入端产生的阻抗(实线)和功率传输到四个输出中的两个(虚线)。在400 MHz 附近可以看到 LC 共振

可以通过在 COMSOL 案例库中下载相关的 MPH 文件 CircuitExtractor_blog_case3_ResistorsNetworkStationaryCurrentVerification.mph,来探索这个模型。案例库中还有更多关于具有大电容耦合的类变压器结构的物理特性的案例。如果您对此感兴趣,请查看我们的博客文章“计算变压器等效电路参数”。

结论

在这篇博文中,我们解释了电路提取器 插件的使用,并展示了它如何用于将电磁仿真转换为集总表示。

文中分析了几个案例,还有很多相关的案例你可以在 COMSOL 案例库中下载。你可以检查和修改插件来满足你的特定建模需求。例如,我们最近测试了扩展插件,用来模拟完整的多物理场焦耳热问题。我们决定使用集总电路描述来获取电流,因为如本文中所演示的,使用这种方法仿真速度更快并且具有与有限元法相同的高精度。同时,我们扩展了电路描述,保留了提取的电路空间分布信息。这会产生一个快速、准确的模拟,并考虑空间变化的电流和温度的影响。

下一步

点击此处,了解如何手动访问和开始使用新的电路提取器 插件,然后点击下面的按钮试用本博客中展示的模型:

相关资源

Mentor Graphics 公司根据 ODB++ 解决方案开发合作伙伴一般条款和条件https://odbplusplus.com/design/) 支持实施 ODB++ 格式。ODB++ Mentor Graphics Corporation 的注册商标。

]]>
//www.denkrieger.com/blogs/extracting-electrical-circuits-from-electromagnetics-simulations/feed/ 0
COMSOL® 中的电磁波导模式分析 //www.denkrieger.com/blogs/mode-analysis-for-electromagnetic-waveguides-in-comsol //www.denkrieger.com/blogs/mode-analysis-for-electromagnetic-waveguides-in-comsol#comments Tue, 05 Jul 2022 05:29:25 +0000 http://cn.staging.comsol.com/blogs?p=307281 模式分析是射频和波动光学计算中的一个重要工具,因为它可以研究复杂波导结构的模式特性。在这篇博文中,我将对模式分析进行介绍,并总结在 COMSOL Multiphysics® 软件中进行这类研究所需的物理场接口、研究步骤和后处理设置。我还将演示几个纯模式分析的例子。最后,我将解释如何利用这些结果进一步计算复杂的射频和光波导系统。

目录

  1. 什么是模式分析?
  2. 模式分析时如何设置模型
  3. 模式分析的教程模型示例
  4. 频域波导计算中传播模式的激发或终止
  5. 结论

什么是模式分析?

在分析任意一个三维波导结构时,了解在给定的频率下允许传播哪些类型的电磁波非常重要。波态是由在波导的二维横向截面上被激发的共振模式决定的。模式可以由全局复值传播常数和电场的所有三个分量的空间分布(也称作振型)完全描述。具有恒定横截面的波导中的传输机制可以完全基于这些电磁特性来定义。我们还可以利用这些信息对更复杂结构中的散射特性进行频域研究。

众所周知,分析解只有在文献中可用于一些射频设计,例如同轴线和具有矩形或圆形截面的空心波导。对于其他具有任意形状和材料组合的任何其他配置,包括所有典型的光纤和集成波导,都必须使用数值模式分析。图1 显示了 COMSOL 软件设置 窗口中方程 部分的数值模式分析 的表述。要进行模式分析,需要将给定的频率代入电场的亥姆霍兹方程中,然后以在面外方向传播的波的形式搜索解。为此,我们可以使用有限元方法(FEM)和一个特征值求解器。

注意:模式分析不应与更一般的模态分析相混淆。后者称为特征频率分析,可用于在任何可能维度(包括二维、二维轴对称和三维)的系统中寻找共振或固有模式和特征频率。

我们可以使用 COMSOL Multiphysics 的附加产品—— RF 模块波动光学模块中的特征:用于二维或二维轴对称几何结构的电磁波、频域 多物理场接口和模式分析 研究进行模式分析。

COMSOL Multiphysics UI 显示带有电磁波的模型开发器,选择的频域节点,相应的设置窗口,以及图形窗口中的光波导模型。
图1. COMSOL ® 中光波导的模式分析。电磁波,频域多物理场接口的 设置窗口中的 方程部分显示了这类研究的描述。

进行模式分析时如何设置模型

几何和材料设置

在建立模式分析模型时,首先应该构建波导结构的横截面。我们可以直接制作二维模型,也可以使用横截面操作 缩小三维模型。

然后,可以指定材料属性并将它们分配给相应的几何部分。对于射频模型,通常需要电导率、相对介电常数和相对磁导率。对于波动光学模型,通常需要折射率。COMSOL® 可以自动将材料数据从一种表示形式转换为另一种表示形式。

使用非零电导率、复值相对介电常数和复折射率将会在模型中引入阻尼,这可以在后处理中观察到。

物理场设置

我们的目标是找到一个在面外方向传播的波。为此,可以使用二维中的电磁波,频域 物理场接口,打开物理场接口的设置 窗口,并确保在组件 部分选择了三分量矢量 选项。

模式分析是一个特征值研究,因此不需要使用任何源条件。但是,我们仍然应该定义适当的边界条件,因为它们会对振型以及振型阻尼和泄漏产生影响。请注意,外部边界可以是金属的或开放的。如果使用金属边界,我们可以使用默认的理想电导体阻抗边界条件。为了描述开放边界,我们可以使用散射边界条件完美匹配层

散射边界条件完美匹配层 的默认设置适用于电磁波沿法线方向朝边界移动的情况。这种默认设置对于模式分析来说不是最优的,因为感兴趣的波矢量由与边界相切的传播常数和剩余的法向分量组成。对于散射边界条件, 我们应该手动调整完美匹配层 特征中有效波长的设置,或者启用设置 窗口的模式分析 部分中的从材料波数中减去传播常数 复选框。您可以在微结构光纤中的漏模教程模型的 PDF 文档中的中找到有关如何执行此操作的详细说明。

COMSOL Multiphysics UI显示选择阻抗边界条件节点的模型开发器,相应的设置窗口,以及图形窗口中的同轴电缆模型。
图2. COMSOL ® 中同轴电缆的模式分析。使用 阻抗边界条件可以计算传播和衰减常数。

使用阻抗边界条件、散射边界条件完美匹配层 特征将在模型中引入阻尼。

网格和研究设置

下面的图3 显示了电磁学问题的模式分析 研究设置的一个变体。默认情况下,选择有效模式折射率 变换,这通常是电磁波的最佳选择。通过这样的变换,我们就可以假设有效模式指数(或有效折射率)将被用作模式的说明性特征。

模式分析频率 字段,我们应该输入要查找谐振模式的频率。如下所示,列出的下一个研究设置是模式搜索方法。如果这里选择了手动 搜索,那么应根据模式搜索基准值 字段中的有效折射率和所需模式数 设置初始猜测。求解器将搜索该猜测附近的模式,并在可能的情况下返回不同模式的预期数量。对于区域 搜索,我们应该指定模式的大致数量和复杂有效折射率的区域。

您可能想知道如何为成功的计算做出一个好的初始猜测。这实际上是因人而异的,但如果你使用由芯和包层组成的典型波导结构,我有一个基本建议:在这种情况下,感兴趣的模式具有介于两种材料的折射系数之间的有效模式折射率,而基模折射率最高。因此,在模式搜索基准值 时,将初始猜测值设置为接近芯层折射率可以保证求解器找到基模。换句话说,典型波导结构基模的有效折射率接近于模式能量受限区域的折射率。

我们可以添加参数化扫描,选择任何预定义参数(例如几何尺寸、材料属性或频率)并在指定范围内更改其值。这样,将获得所谓的色散曲线。我们甚至还可以为不同的模式定义截止条件。

COMSOL Multiphysics UI的两个并排屏幕截图,显示了模式分析节点被选中的模型开发器,相应的设置窗口(左)和参数化扫描的设置窗口,研究设置部分被展开(右)。
图3. 模式分析 参数扫描 研究步骤的设置。可以在展开的求解器 配置 部分看到本研究使用了一个 特征值求解器

虽然我们在这里跳过了网格设置并首先选择了研究设置,但是请注意,在模式分析频率 字段中输入的频率值也用于生成物理场控制的网格。默认情况下,软件为每种材料在每个波长使用五个单元。为了获得更好的分辨率,我们可以对网格进行细化。对于二维模型,网格细化不会消耗过多的内存。

后处理和结果解释

接下来,我们来讨论运行模式分析 研究后可以获得的典型结果。

对于每个计算的模式,我们可以绘制局部场或功率流分布。可以选择 x-、y- 或 z- 分量或模值作为表达式。这将使我们能够轻松地定义场分布和偏振。我们还有几个基于每个模式的特征值 lambda 的全局变量,包括传播常数、衰减常数和有效模式折射率。我们可以通过全局计算功能或使用 1D 全局图获得它们的确切数值。下表总结了可用变量的名称和定义:

姓名 表达式 描述 单位
beta imag(-lambda) 传播常数 rad/m
dampz real(-lambda) 衰减常数 rad/m
dampzdB 20*log10-(exp(1))*dampz 对数尺度的衰减 dB/m
neff j*lambda/k0 有效模式折射率 1

对于 TEM(或准 TEM)模式,我们可以通过电流和电压的积分手动计算特征阻抗。详细信息在之前的一篇关于射频分析中数值端口的使用博客文章中进行了讨论。

通常,模式分析的后处理很简单,但在以下情况经常会出现关于结果正确解释的问题:

  • 模式分析是一种特征值研究,因此确切的场大小是相当随意的,只有相对比例才是重要的。在后处理中,我们可以为每种模式执行额外的归一化。
  • 如果两种不同模式的特征值非常接近,那么计算后会得到它们的任意线性组合。
  • 计算的模式只是按有效模式折射率排序的正交解集。由于软件无法检测模式的确切物理场类型,因此它不“知道”,例如第一个模式是 TE11,第六个模式是 TM20。这意味着我们需要通过手动分析场分布来自己识别模式的物理场类型。
  • 参数化扫描 中对每个参数值进行模式排序,因此可以在从一个参数移动到另一个参数时交换模式顺序。为此,最好将色散曲线绘制为一组点而不是一组线。
  • 有些模式可能是非物理的,但我们可以根据它们的场分布文件来识别它们。在这些情况下,分布可能非常参差不齐,或者可能在外部边界附近具有最大值。
  • 有时,模式具有非常小的传播常数(接近于零)和小的有效折射率。我们可以将它们定义为非传播或消逝。如果通过相关的控制参数(例如频率)执行扫描,那么我们可以跟踪这种模式的截止条件。
  • 有效模式折射率可以是复值。我们可以在两种主要情况下获得较大的虚部:如果模式是衰退的,或者如果系统中有一些阻尼源。阻尼可以通过材料属性、具有有限电导率的金属化和/或开放边界引入。

模式分析的教程模型案例

让我们来看一些模型案例,这些模型演示了在 COMSOL® 中进行模式分析的两种不同方法,包括扩展设置和后处理。我们可以在下面的演示中找到有关这些设置的更多信息。

如果您想直接开始自己构建这些模型,可以点击此处下载:电磁波导的模式分析

示例1:同轴电缆的模式分析

我们从一个RF示例开始,计算一个典型同轴电缆的模式。被观察的电缆内半径 r_i= 0.5 mm;外半径 r_o= 3.43 mm;绝缘体相对介电常数, eps_r= 2.4;包含由铜制成的导体部件。我们的目标是在 10 到 20 GHz 的频率范围内定义主 TEM 模式和第一个高阶 TE11 模式的特性。

设置模型非常简单。首先,我们定义没有金属部件的几何形状。然后,为二维域添加通用绝缘体 材料。接下来,在电磁波,频域 接口中,为外部边界设置阻抗边界条件,并为其指定内置 材料。在模式分析 研究步骤中,我们的设置是:模式分析频率 f0所需的模式数量 2,以及模式搜索基准值 sqrt(eps_r)。我们还添加了一个参数扫描 f0 作为参数并以 0.2 MHz 的小步长输入频率范围。

模式分析为每个频率提供两个解。我们可以通过空间分布和全局变量来研究它们。这两个解中,有效折射率最接近 sqrt(eps_r)≈1.55 的那一个就是 TEM 模式。在我们的频率范围内,它有一个单调增长的传播常数和一个低于 1dB/m 的小衰减。另一个具有较小折射率的解是 TE11 模式。它的有效折射率和传播常数在频率范围的开始阶段都非常小;相反,衰减常数非常高。所有这些因素表明,这种模式在频率范围的开始阶段是不传播的。

模拟了同轴电缆模型中 10 GHz 的 TEM 模式。
模拟了同轴电缆模型中 20 GHz 的 TEM 模式。
模拟了同轴电缆模型中 10 GHz 的 TE11 模式。
模拟了同轴电缆模型中 20 GHz 的 TE11 模式。

图4.同轴电缆几种模式的空间分布。图中我们可以看到 10 GHz(左上)和 20 GHz(右上)的 TEM 模式以及 10 GHz(左下)和 20 GHz(右下)的 TE11 模式。表面图绘制了功率流的 Z分量,红色流线表示电场,蓝色表示磁场。注释用于突出显示传播和衰减常数。请注意,10 GHz 的 TE11 模式具有非常小的有效折射率,它是衰退状态的指标。

为了定义截止频率,我们可以创建 emw.betaemw.dampzdB 的全局一维图,并使用 f0 作为 x-轴数据的表达。TE11 曲线在 15.6GHz 附近的急剧突变是对截止条件的良好估计。

图显示 TEM 模式和 TE11 模式的传播常数作为频率的函数图。
TEM 模式和 TE11 模式的衰减常数作为频率的函数图。

图5.传播常数和衰减常数是 TEM 模式和 TE11 模式的频率函数。

对于 TEM 模式,我们还可以评估特性阻抗。TE11 模式的特征阻抗和截止频率值是 COMSOL® 中数值模式分析的良好验证因素,因为我们可以将它们与大家熟悉的解析表达式 进行比较。

示例2:脊型波导的模态分析

让我们继续以波动光学为例,计算一个典型的集成波导的模式。所观察的脊型波导有一个由 制成的芯、由 SiON 制成的上覆层和由 SiO2 制成的下覆层。这些材料的折射率分别为 n_core= 3.48、n_clad_upper= 1.51 和 n_clad_lower= 1.44。我们的目标是在一定的波长下定义所有可能的模式,lda0= 1.55 um;对于固定的芯层高度,h_core= 700 nm;以及不同的芯层宽度值 w_core

与前面的示例一样,为这个案例设置模型也很简单。首先,我们定义了一个几何结构,其中包含芯层、上覆层和下覆层的三个域。然后,我们将它们指定给具有光学特性的材料(如上一段所述)。接下来,在电磁波,频域 接口,我们为外部边界设置散射边界条件,并启用从材料波数中减去传播常数复选框。在模式分析 研究步骤中,设置模式分析频率 f0= c_const/lda0;10 表示所需的模式数量n_core代表模式搜索基准值。我们还添加了参数化扫描 w_core作为参数,并将其从 300 nm 更改为 1000 nm。

模式分析为每个频率得到十个解,我们可以通过空间分布和全局变量来检查它们。我们可以使用箭头或流线来可视化每种模式的偏振并定义其类型- Ey MN 或 Ex MN。上标表示主要偏振方向,第一和第二下标变量分别表示 xy 方向上峰的数量。对于参数 w_core 较大的值,我们还可以观察高阶模式,例如 Ey 22和 Ey 31

模拟显示了芯层宽度为 400 nm 的脊型波导模型的 Ey11 模式。
模拟显示了芯层宽度为 400 nm 的脊型波导模型的 Ex11 模式。
模拟显示了芯层宽度为 1000 nm 的脊型波导模型的 Ex11 模式。
模拟了芯层宽度为 1000 nm 的脊型波导模型中的 Ey21 模式。

图6. 几种脊型波导模式的空间分布。上排是芯宽为 400 nm 的 Ey11 模(左)和芯宽为 400 nm 的 E x11模(右),下排是芯宽为 1000 nm 的 Ex11 模(左)和的芯宽为 1000 nm 的 Ey21 模(右)。表面图是功率流的 Z 分量,黑色箭头代表电场。注释用于突出显示有效模式折射率和传播常数。

我们还可以使用带 w_core*ewfd.k0ewfd.neff 的全局一维图作为x 轴数据 的表达式来获得典型的色散曲线。使用这些图,我们可以跟踪脊型波导中非常复杂的行为。可以定义不同模式发生“交换”的确切点;例如,Ey11 和 Ex11(大约w_core*ewfd.k0= 2)、Ey 21 和 Ex 21(大约 w_core*ewfd.k0= 3.5)等。

显示脊型波导中色散曲线的绘图。
图7. 脊型波导的色散曲线。许多模式“交换”是可见的,例如,E11 和 Ex11w_core*ewfd.k0= 2 附近以及 Ey21 和 Ex21 w_core*ewfd.k0 = 3.5 附近有偏移。

请注意,对于较小的芯宽值,我们还获得了几种有效折射率低于覆层折射率的模式。它们的空间分布表明,能量并不局限于芯内部和周围。我们可以忽略非物理模式,甚至可以通过删除解研究功能将其删除。

其他模型案例

除了上面介绍的两个模型之外,你还可以从 COMSOL 案例库中探索以下示例:

频域波导计算中传播模式的激发或终止

找到传播模式后,我们可能希望在频域分析中在一个波导横截面激发或终止一个或几个传播模式。这样,我们就能够计算复杂电磁设备中的反射和传输特性。使用 COMSOL 软件的 RF 模块或波动光学模块,我们可以进行这些操作。

对于这些类型的建模场景,我们可以使用电磁波、频域电磁波、波束包络 物理场接口。然后,通常会在每个相关模式的每个相关横截面上添加端口边界条件。之后,我们将为每个端口 启用数值 选项。为简单起见,我们将具有此类修改的端口 特征称为数值端口。计算时,对于每个数值端口和频域研究,我们可以结合使用边界模式分析

使用数值端口意味着模式剖面及其传播常数将在边界模式分析 研究步骤中计算,这与模式分析几乎相同。还有一个额外的端口名称 设置,我们应该在其中指定确切的端口名称,并且研究将对此端口 的所有边界进行模式分析。请注意,我们需要为每个端口找到一种确切的模式,因此应该将所需模式数 设置为 1,并在模式搜索基准值 场中输入一个非常准确的有效模式折射率估计值。如果我们对模式特征没有任何先验知识,最好进行初步模式分析并为所有需要的模式定义全局值——这在使用多模态时尤其重要,也可能是在自动化端口的后续设置中。

这个设置非常强大。首先,我们可以直接在三维中使用它而无需创建二维横截面,此外,还可以在二维中将其用于一维端口。其次,在后处理中,我们会收到 S 参数以及设备的反射和透射系数。第三,我们可以为完美匹配层 定义典型波长,或使用直接来自边界模式分析 的传播常数在电磁波、波束包络 物理场接口的波矢量 设置中指定相位。

注意:对于微带线或共面线等射频设备,为了接收 TEM 或准 TEM 模式,数值端口有一些特殊设置。

COMSOL Multiphysics UI显示了选中的边界模式分析节点的模型开发器,相应的设置窗口,以及图形窗口中带有散射体模型的光波导。
图8. 带有散射体的光波导频域分析。这个模型中使用了 4 个数值端口。您可以看到用于终止基本模式的第二个数值端口的 边界模式分析设置窗口。通过初步研究获得有关其有效折射率的信息。

COMSOL 案例库中有几个很好的示例演示了数值端口条件和边界模式分析 研究的使用,例如:

结论

在这篇博文中,我们介绍了如何使用RF模块或波动光学模块在波导结构的横截面中找到谐振模式并获得它们的定性和定量特征,这些特征可用于进一步的全波研究,用于激发或终止这些模式。此外,我们通过模式分析 研究和数值端口查看了模型的典型设置。有了这些信息,我们可以提高RF和波动光学计算的效率。

这里讨论的技术还可以用于研究声学和力学应用中的波行为。有关详细信息,请查看以下模型:具有刚性弹性壁的消声器横截面的模式分析、弹性波在铝板中的传播研究以及航空发动机导管气动声学计算。

下一步

尝试使用电磁波导模式分析教程模型自己对同轴电缆或脊型波导模型进行模式分析:

]]>
//www.denkrieger.com/blogs/mode-analysis-for-electromagnetic-waveguides-in-comsol/feed/ 2
获取统计数据:计算标准差和其他统计量 //www.denkrieger.com/blogs/getting-the-stats-computing-standard-deviations-and-other-statistical-quantities //www.denkrieger.com/blogs/getting-the-stats-computing-standard-deviations-and-other-statistical-quantities#respond Fri, 17 Jun 2022 03:46:37 +0000 http://cn.staging.comsol.com/blogs?p=306731 当你在评估使用 COMSOL Multiphysics ® 软件模拟的设备、系统或进程的性能或特性时,数据集的标准差和平均值等统计量可能很有价值。这篇博客,我们将了解 COMSOL Multiphysics 中用于计算和可视化统计量的函数、绘图和其他工具。

统计学:概述

统计是指计算出表示或显示数据的值和变化的结果。下表列出了 COMSOL Multiphysics 中一些最常见的统计测量值以及它的算子和数据集操作名称:

测量值 参数 算子名称 数据集操作名称
平均值 mean, timeavg 平均值
标准差 stddev 标准差
方差 变量, 方差

下面是对这些统计测量的概述:

  • 平均值算术平均值 (下面等式中的 )是所有数据值的总和除以数据集中数据值的数量。它是一个很有用的值,可以用来表征一些波动量的水平。平均值可能对异常值(即与数据集中的其他值有明显差异的数据值)敏感。一个相关的统计量是中位数,它是将数据集的上半部分与下半部分分开的中间值(如果数据集包含偶数个值,则为两个中间值的平均值)。COMSOL Multiphysics 中的 timeavg 算子可以计算一个时间间隔内随时间变化的表达式的平均值。
  • 标准差 (下面的等式中的 )用于表征数据偏离实际平均值的程度。它是方差 的平方根。与方差不同的是,标准差与数据本身的单位相同。
  • 方差(下面等式中的 Var)用于衡量一组数据值与它的平均值的距离,它的单位是数据的平方。

下面的等式显示了平均值 的定义:

\mu(X)=\frac{1}{n}\sum_{i=1}^nx_i \cdot

下面的等式定义了方差:

Var(X)=\frac{1} {n}\sum_{i=1}^{n}(x_i-\mu)^2

式中, 是要计算的方差(和平均值)的变量, 是的一组取值, 是平均值。方差的定义对于固定总样本是有效的。

在 COMSOL Multiphysics 中, 表示一组固定的值。

标准差 是方差的平方根:

\sigma = \sqrt{\text{Var}}

这些统计公式可以简单的被概括为描述定义在几何实体上的统计量,其中对几何实体的求和被积分所取代,这就是 COMSOL Multiphysics 的计算方法。变量 域上的平均值的积分形式为

\mu(X) = \frac{1}{|\Omega|}\int_\Omega x d\Omega

同样,变量 的方差在 域上可以表示为

Var(X) = \frac{1} {|\Omega|}
\int_\Omega (x-\mu(x))^2 d\Omega

式中, 是域的大小(体积、表面或长度,取决于模型的空间维度)。

接下来,我们将介绍如何在 COMSOL Multiphysics 仿真中使用这些操作和算子。

COMSOL Multiphysics 中的统计量

非局部耦合算子

稍后,我们将看到如何使用内置算子 stddev 计算一个表达式的标准差。在这之前,让我们先看看如何计算一个计算量的平均值,例如在一个域内或沿边界。右键单击感兴趣的 组件 节点下的 定义 节点,然后从非局部耦合 菜单中选择平均值。这样就会创建一个平均算子,默认情况下为 aveop1,在其设置中,首先定义几何实体层(例如边界),然后定义要计算的平均值的边界(或其他几何实体,取决于所选的实体层)。我们还可以用相同的方式添加算子来计算积分、最大值和最小值。

我们可以在模型中和后处理过程中使用我们创建的算子。例如,在流体流动模拟中,可以使用在出口边界定义的平均算子来计算平均流出速度。为此,我们在结果 部分的派生值 下的全局计算 节点,添加一个类似aveop1(spf.U) 的表达式,然后点击计算。在瞬态模拟中,每个输出时间的平均速度就会出现在一个表格窗口中。

表格窗口的截图,显示了瞬态模拟中每个输出时间的平均速度。
一个 表格窗口,包含每个输出时间的平均速度值。

我们可以使用非局部耦合算子计算标准差或方差两次:一次是计算平均值,一次是计算标准差或方差。例如,使用我们在流体流动示例中为出口边界定义的平均算子 aveop1,使用全局计算 节点和表达式 sqrt(aveop1((aveop1(p)-p)^2)) 计算标准偏差,该表达式实现了上述边界上压力标准偏差的方程。

使用表达式运算符简化

上述表达式 sqrt(aveop1((aveop1(p)-p)^2)) 有点长,所以如果我们想在几个地方使用它,可以定义一个表达式运算符 来简化它。首先,需要在显示更多选项 对话框的常规 部分下启用变量实用程序。然后,右键单击组件 下的定义 节点时出现的变量实用程序 子菜单添加一个表达式运算符 节点。在表达式运算符 节点的设置中,我们定义了一个算子,例如 stdop1,使用与上述类似的表达式,但其输入参数由我们选择,例如 pin,如下图所示:

设置窗口的截图,显示了表达式运算符节点的几何实体选择和定义部分。定义部分中的表达式设置为sqrt(aveop1((aveop1(pin)-pin)^2))。
表达式运算符节点的 设置 窗口,为标准差定义一个简化的算子 stdop1

然后,我们可以在后处理中使用这个算子,键入 stdop1(p) 而不是 sqrt(aveop1((aveop1(p)-p)^2))

派生值

出于后处理目的,我们可以添加体积平均表面平均值线平均值 节点,可以通过右键单击派升值 节点然后从平均值 子菜单中选择其中一个选项来实现。我们可以为积分最大值最小值 定义类似的节点。

时间序列和参数扫描的转换

例如,在使用点计算 特征计算来自瞬态、参数化或特征值解决方案的数据时,我们可以对系列数据应用以下操作之一:

  • 平均值
  • 积分
  • 最大值或最小值
  • 均方根 (RMS)
  • 标准差
  • 方差

每个操作都提供一个输出,它可以是参数扫描值中的平均值或瞬态模拟中某个点的量的标准偏差。

内置算子

在计算和绘制 COMSOL Multiphysics 仿真结果时,我们可以访问大量物理场专用变量以及内置的物理和数学常数、函数和算子。我们可以将它们直接输入到任何表达式 字段中,也可以单击添加表达式替换表达式 按钮(可在结果功能的表达式 部分工具栏中找到)。下面屏幕截图显示了 COMSOL Multiphysics®6.0 版本中积分和统计信息 中可用的算子:

COMSOL Multiphysics 6.0 版本中集成和统计类别的可用算子的截图。
可用于积分和统计的算子。

这里有一个特别算子 stddev,我们可以用它来计算表达式的标准偏差。可以使用达式 stddev('comp1.aveop1',p) 来计算上述相同出口边界压力下的标准偏差,这是一种比上一个标准偏差表达式中使用的对平均运算符的嵌套调用更直接、更有效的语法。请注意,这里给出的组件和运算符名称只是示例,在您的模型中可以使用其他名称。

一个标准差和平均值的例子

作为示例,我们来计算圆柱绕流模型的几个瞬态统计值,该模型可在软件案例库中的流体动力学 文件夹中找到。我们将计算以下值:

  1. 模拟的所有时间步长的计算域中压力的平均值和标准差
  2. 在所有时间步长上计算的出口边界点处速度的平均值和标准差

经过长圆柱体的不稳定流动,不可压缩流模型,显示了速度场和粒子运动。
圆柱绕流模型的默认绘图,显示了模拟结束时间(7s)的速度场和粒子运动。

域内和出口边界压力的平均值和标准差

为了计算域内的压力的平均值和标准差,首先添加一个平均值 非局部耦合节点,例如 aveop2,并在域中定义它(这个几何结构中只有一个域)。计算解后,我们可以在结果 部分的派生值下添加一个全局计算 节点,使用表达式 aveop2(p) 计算平均压力。然后,所有从时间选择 列表中选择的时间的平均压力将显示在表格 窗口中。(默认是包括所有时间步长)如果要计算所有时步的平均压力,从数据序列运算 部分中的转换 列表选择平均值。对于平均压力的平均值,这时输出的是一个单个标量数。对于每个时步的标准偏差,使用表达式 stddev('comp1.aveop2',p)(或上述任何其他选项)。

stddev 算子的参数不一定要是平均值。作为替代,比如我们可以传递给它一个积分耦合算子,它仍然会计算平均值的正确标准差。我们还可以将它与 timeavg 算子结合使用,用于产生与在其他地方获得的相同结果,方法是使用类似 stddev('timeavg',t1,t2,expr) 的表达式对时间序列进行数据运算,其中 t1t2 分别是开始时间和停止时间,expr 是计算该时间间隔内时间平均值的表达式。例如,为了将沿出口边界的每个点的压力的时域标准差绘制为从 6s 到 7s 的时间平均值,可以使用 stddev('timeavg',6,7,p) 表达式。

设置窗口的截图,显示了线图节点中打开的各部分,包括数据、选择、y 轴数据和 x 轴。
线结果图的 设置窗口,其时域标准差表达式为从 6s 到 7s 的时间平均值。

相应的绘图显示了压力的标准偏差在出口边界的中间最小。

一个y轴标记为'stddev('timeavg',6,7,p)', x轴标记为'弧长(m)'的线图。
出口边界处时域标准差的 线结果图。

出口速度的平均值和标准差

如果我们想在所有时步上计算出口边界中点的平均值和标准偏差,就必须首先确定该点的速度。可以使用两种方法执行此操作:

  1. 在输出边界中间的几何结构中添加一个点,即使创建几何结构时不需要它
  2. 添加一个切割点数据集(在本例中为二维截点),然后在数据集的设置中定义截点的坐标

要计算中点处的速度,请使用点计算 节点并选择已经定义的点或使用二维截点 数据集作为输入数据集(取决于为点数据选择的方法)。例如,使用 spf.U,作为速度大小的表达式。在数据系列运算 部分,选择平均值,然后选择标准差,每次选择后单击设置 窗口顶部的计算,可以获得模拟中的所有时间步出口中点处速度大小的平均值和标准偏差(单位均为 m/s)。

表格窗口的截屏显示了平均速度大小和相同数量的标准偏差。
表格窗口,显示了相同数量的平均速度大小和标准偏差。

直方图

直方图可用于说明某些数据的形状和分布。COMSOL Multiphysics 中的绘图工具包括以下类型的直方图:

  1. 直方图 (一维和二维图),显示数量如何在几何体(即网格体积)上分布。在一维直方图中, x 轴表示数量的值(作为区间的数量或值的范围),y 轴表示每个区间中总单元体积的计数。
  2. 表直方图(一维和二维图),类似于直方图,基于来自表或计算组的数据。
  3. 矩阵直方图(仅限二维图),当有一个预计算的矩阵并希望将它可视化为二维直方图时,可以使用它。

对于直方图表格直方图,我们可以选择是要指定直方图中的 bin 数量,还是要指定直方图 bin 的限制范围。对于任何一个二维直方图,我们添加一个高度表达式 子节点来绘制沿 z 轴的 bin 大小,如下面的三维直方图所示。

三维矩阵直方图中计算的应力循环模型。
疲劳分析中的循环计数-基准模型,矩阵直方图显示计算的应力循环。

不确定性量化和统计

使用 COMSOL Multiphysics 的附加产品不确定性量化模块,可以直接在输出表组中访问与不确定性量化仿真相关的统计数据。例如,对于使用非自适应高斯过程代理模式的不确定性传播(UP)分析,可以使用下列 4 个表:

  1. QoI 置信区间 表,其中每个关注量 (QoI) 包含一行,列表示平均值、标准差、最小值和最大值,后面是 90%、95% 和 99% 可能性的置信区间。
  2. UP 预测 QoI 表,其中包含蒙特卡罗采样点的 QoI 的代理模型预测值。
  3. UP 预测标准差 表,其中包含蒙特卡罗采样点的代理模型预测标准差。这可以看作是内置的代理模型误差估计。
  4. 最大熵 表,其中包含最大相对标准差,每个 QoI 一个。

当使用自适应高斯过程代理模型时,4 个对应的自适应结果表也被添加到输出表组中。它们包含所有适应步骤的结果信息。

下一步

接下来,你可以在自己的仿真模型中尝试其中一些统计工具;你可以获得感兴趣的变量或参数的变化和特征的统计值并对它们进行量化。如果你对这个主题有任何疑问,请点击下面的按钮联系 COMSOL。

]]>
//www.denkrieger.com/blogs/getting-the-stats-computing-standard-deviations-and-other-statistical-quantities/feed/ 0