如何使用参数估计研究步骤进行逆向建模

2018年 3月 29日

创建仿真时,通常首先从构建正向模型开始,设定各种输入值,然后查看结果。但是,如果我们已经通过实验或调查得到一组结果(如材料属性),然后想通过仿真找到能得出相同结果的输入数据,该怎么办?本篇博文,我们将通过一个视频教程向您演示如何在 COMSOL Multiphysics® 中使用 参数估计 研究步骤帮助我们建立逆向模型,并求解模型的最佳输入值。

视频教程:在 COMSOL Multiphysics® 中执行参数估计研究

 

使用参数估计研究步骤进行逆建模

假设我们需要通过仿真得到有一组外部数据(来自实验测量值或参考数据集),我们该怎么做?这时,我们可以使用逆向建模 。顾名思义,逆向建模就是对问题采取逆向建模的方法,即求解的不是输出值,而是输入参数。

为了获得所需的仿真结果,我们可能需要调查或通过实验得到几种模型输入值,例如材料属性。在求解这些输入值时,为了使外部数据和仿真结果非常接近,我们会寻找最优值。很自然,我们想到了使数据之间差值的平方和最小的方法来求解。因此,将问题构建为最小二乘优化问题是一个有效的建模策略。为了简化设置和求解问题的过程,我们可以使用 COMSOL Multiphysics® 软件中的参数估计 研究步骤。

注意:要使用 参数估计 研究步骤,研究的问题必须与时间有关,并且需要具有COMSOL 软件优化模块的许可证。另外,还需要通过一个插值函数或用户定义的参考表达式来引入一组参考数据。请注意,参考数据必须是与时间相关或者是一个单变量函数。

COMSOL Multiphysics® 中“参数估计设置”窗口的屏幕截图。
参数估计研究步骤的设置窗口。

参数估计 研究步骤对于各种逆向建模问题(主要是参数估计)非常有用,其目的是估计模型所需输入(即参数)的值,这可以帮助我们深入了解参数的数值大小(以及属性)影响目标函数的方式。

参数估计 功能最典型的用途之一可能是曲线拟合或类似的数据拟合应用。此过程涉及将函数拟合到一系列数据点。函数的拟合是通过估算函数中的系数值来完成的,本质上是将参数化的解析函数拟合到一个数据集合。通过将曲线拟合到一组数据点,我们可以对函数以及无法得到确切数据的区域进行插值。

本文开头的教程视频中,我们通过一个优化后的 弯头支架教程模型 演示了参数估计的使用。在进行这项研究之前,我们需要正确定义问题……

在 COMSOL Multiphysics® 中执行参数估计研究

在 COMSOL 中执行参数估计研究通常包括三个主要步骤:

  1. 预研究:准备定义,例如参数、变量和函数
  2. 研究设置:自定义研究的各项内容并进行计算
  3. 后期研究:进行后期处理使结果可视化,比较模拟值和实验结果,并提取最佳的参数估计值

下面,让我们看一下如何完成这些步骤,以及在模型中设置 参数估计 研究步骤时需要考虑的重要因素。

步骤 1:参数估计预定义

在进行参数估计研究之前,我们必须先定义问题。这通常涉及创建参数、函数和变量的组合。首先,我们定义模型的输入参数,它们是需要被估算的值;接下来,通过定义一个参考函数或表达式来引入外部数据;最后,定义一个从仿真结果中提取并评估的输出变量,并将其与测量得到的输出数据进行比较。

在文中开头的视频中,我们对弯头支架进行了瞬态传热分析。然后将传热仿真得到的模拟数据与实验数据进行了比较,该实验数据用于评估材料的热导率值。

固体传热 节点中,导热系数用 k 表示。因此,我们定义一个名为 k 的参数,输入一个 k 的粗略估计值,并在适当的节点中用它来定义导热系数。

参数估计研究中使用的参数表的截图。
定义了估计的材料属性的“固体传热”节点的截图。

左:用于参数估计研究的参数,包括用于估计导热系数的参数 k。右:在节点(名为实体 1)使用参数 k 定义需要估计的材料属性。

接下来,为了将外部文件中的数据引入到 COMSOL® 软件中,我们创建了一个定义。在本例中,参考数据是一个与时间相关的温度测量值的集合,这些值包含在一个用逗号分隔(CSV)的文件中。通过将 插值 函数添加到模型组件中,然后使用从文件加载 按钮,可以快速轻松地将这些数据输入 COMSOL Multiphysics。数据以表格格式自动导入,第一列为时间,第二列为温度测量值。

COMSOL Multiphysics® GUI 的屏幕截图,其中包含导入的参考数据的图表。
通过“插值“ 函数将参考数据引入仿真中”从文件加载”按钮用于将外部文件导入函数。

单位 部分,我们只需要简单的输入参数(时间)和函数(温度)的相应单位,无需设置函数的 插值和外推 选项,因为研究仅计算函数的自变量或 t 列中明确指定时间点的差值。因此,数据点之间的平滑度和超出数据范围的函数行为设置并不重要。

现在,我们需要定义一个表达式,以从仿真结果中提取温度量(此量随后将与内插函数中的温度测量值进行比较)。我们要提取并用于比较的量是支架右上端表面的平均温度。

由于要获取量(温度)的平均值,因此我们首先在 定义 节点下添加一个平均值 组件耦合。然后,选择要获得平均温度的几何形状(即支架右上端的边界)。这里需要注意平均值 组件耦合右边括号中的标记 aveop1,因为它将用于在表达式中定义变量。

肘托几何形状的图像,其中“平均”分量耦合高亮显示。
平均值 组件耦合(以蓝色突出显示)可以帮助我们获取所选择几何边界上量的平均值。

为了比较计算结果和实验结果,我们必须定义一个变量以从模拟结果中提取量。由于我们关注的是几何的特定部分,因此在定义 节点或定义 功能区选项卡下定义了局部变量(全局变量不适合我们的研究,因为 全局定义 节点是全局范围的,并且在整个模型几何中定义、应用或估算表达式。)

定义变量时,将其命名为 Tave,因为我们希望获得平均温度。对于表达式,我们可以输入 aveop1 来调用之前创建的平均值 组件耦合。然后,通过在括号中输入变量 T(用于温度)来指定我们想要的平均值。

用于参数估计的已定义变量的“设置”窗口的截图。
定义的变量,稍后将在“参数估计”研究步骤中使用。

步骤 2:设置并计算研究

现在,我们可以添加并设置 参数估计 研究步骤,其中一些设置已经完成。参考数据和研究步骤选择会自动链接到包含外部数据的插值函数和瞬态研究。

估计在 模型表达式 字段中输入的表达式,并将其与在参考函数中指定的每个时间步的外部数据(即,插值函数变元列的每个时间点)进行比较。因此,此字段是我们输入局部变量 Tave 的地方。

请注意,在下图中模型表达式 字段的语法中,因为参数估计 研究步骤的范围是全局的,所以我们通过在变量名称之前引入组件1来指定局部变量的位置。因此,除非在表达式中指出它们的范围,否则研究步骤不会“看到”在组件内部局部定义的变量。对于全局变量,只需在模型表达式 字段中输入其名称即可。我们可以使用 自动完成 功能,从定义列表中选择并输入自动指定范围的变量。

截图突出显示了 COMSOL Multiphysics® 中自动完成功能的使用。
完成的“参数估计”研究步骤设置的截图。

左:使用“自动完成“功能选择之前定义的局部变量。右:参数估计研究步骤的完整设置屏幕截图。

现在,我们只需要确定要估计的参数并选择优化方法即可。在初始值 列下输入参数的粗略估计值,为参数值添加上下限,并设置 比例 值。应用适当的比例很重要,因为它可能会大大减慢优化求解器的收敛速度或使其完全无法收敛。本文的支架示例可以使用默认值,但可能并不总是合适的(有关更多信息,请阅读《优化模块用户指南》中有关参数估计的章节)。

接下来,我们要选择适当的优化算法并进行计算。不同的方法适用于特定的应用,我们将在视频中将对此进行详细讨论。由于要估计的参数控制着材料属性的值,并且我们希望为该值施加上下边界,因此采用 SNOPT 方法。

步骤 3:比较结果并提取输入值

模型求解完成后,需要进行一些额外的后处理。我们可以通过绘图使结果可视化并比较两组数据,然后提取最佳的用于估算的输入值。为了在单个绘图上查看和比较两组数据,我们添加了一个新的一维绘图组,并在其下包括了两个全局 绘图。一个全局 图显示模拟结果,另一个显示参考数据。

由于我们的插值函数是数据点的集合,因此我们希望它显示为点图。为此,我们更改了数据点的时间选择,以便用插值函数变元列中指定的时间点绘制结果。此外,我们海调整了颜色和样式 部分中的一些设置,以进一步区分两组数据。

“模型开发器”的屏幕快照,带有“图形”窗口,显示了与实验数据相比的模拟结果。
仿真与实验结果的比较。设置窗口中突出显示的部分需要调整,以将实验数据显示为点图。

上图表明模型结果与实验数据非常匹配。现在,我们可以提取支架材料导热系数的最佳值。为此,我们在结果 选项卡下(或 衍生值 节点下)添加一个全局计算 节点。在设置窗口中,我们需要做的就是将 时间选择 选项更新为最后一个,以便我们可以在最后一个时间步中计算该值,因为热导率与时间无关。

“全局评估”节点“设置”窗口的屏幕快照。
全局计算节点的“设置”窗口。

表达式 字段中输入参数 k 后,单击计算 可得到该参数的最佳值。

肘支架中具有最佳导热系数的表格的截图。
导热系数的最佳值。

如上所示,热导率值为 0.27W/(m*K)时提供了与实验数据最匹配的模拟温度结果。

结语

在 COMSOL Multiphysics 中,参数估计 研究步骤可以帮助我们估计仿真中需要输入参数的最佳值。通过估计定义模型各个方面的参数值,我们可以研究那些阻碍或帮助计算结果与外部文件中的数据获得最佳匹配的原因。

参数估计 功能还能够通过简化和加快定义、设置以及求解最小二乘优化问题的过程,解决其他类型的逆建模问题。有关此学习步骤的更多详细信息,请观看本文开头的教程视频,它通过一个简单的示例演示了如何使用此功能。

拓展资源

如果您还想了解有关 COMSOL Multiphysics 中参数估计的更多信息、应用案例以及各种研究步骤设置,请阅读 COMSOL 《优化模块简介》《优化模块用户指南》文档中有关参数估计的章节。

另外,我们还提供了有关参数估计的网络研讨会视频,您可以点击链接至 COMSOL 视频中心观看。(请注意,该网络研讨会使用的是 优化 接口而不是 参数估计 研究步骤。)


评论 (0)

正在加载...
浏览 COMSOL 博客