每页:
搜索

建模工具和定义 博客文章

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

2018年 3月 29日

创建仿真时,通常首先从构建正向模型开始,设定各种输入值,然后查看结果。但是,如果我们已经通过实验或调查得到一组结果(如材料属性),然后想通过仿真找到能得出相同结果的输入数据,该怎么办?本篇博文,我们将通过一个视频教程向您演示如何在 COMSOL Multiphysics® 中使用 参数估计 研究步骤帮助我们建立逆向模型,并求解模型的最佳输入值。 视频教程:在 COMSOL Multiphysics® 中执行参数估计研究   使用参数估计研究步骤进行逆建模 假设我们需要通过仿真得到有一组外部数据(来自实验测量值或参考数据集),我们该怎么做?这时,我们可以使用逆向建模 。顾名思义,逆向建模就是对问题采取逆向建模的方法,即求解的不是输出值,而是输入参数。 为了获得所需的仿真结果,我们可能需要调查或通过实验得到几种模型输入值,例如材料属性。在求解这些输入值时,为了使外部数据和仿真结果非常接近,我们会寻找最优值。很自然,我们想到了使数据之间差值的平方和最小的方法来求解。因此,将问题构建为最小二乘优化问题是一个有效的建模策略。为了简化设置和求解问题的过程,我们可以使用 COMSOL Multiphysics® 软件中的参数估计 研究步骤。 注意:要使用 参数估计 研究步骤,研究的问题必须与时间有关,并且需要具有COMSOL 软件优化模块的许可证。另外,还需要通过一个插值函数或用户定义的参考表达式来引入一组参考数据。请注意,参考数据必须是与时间相关或者是一个单变量函数。 参数估计研究步骤的 “设置”窗口。 参数估计 研究步骤对于各种逆向建模问题(主要是参数估计)非常有用,其目的是估计模型所需输入(即参数)的值,这可以帮助我们深入了解参数的数值大小(以及属性)影响目标函数的方式。 参数估计 功能最典型的用途之一可能是曲线拟合或类似的数据拟合应用。此过程涉及将函数拟合到一系列数据点。函数的拟合是通过估算函数中的系数值来完成的,本质上是将参数化的解析函数拟合到一个数据集合。通过将曲线拟合到一组数据点,我们可以对函数以及无法得到确切数据的区域进行插值。 在本文开头的教程视频中,我们通过一个优化后的 弯头支架教程模型 演示了参数估计的使用。在进行这项研究之前,我们需要正确定义问题…… 在 COMSOL Multiphysics® 中执行参数估计研究 在 COMSOL 中执行参数估计研究通常包括三个主要步骤: 预研究:准备定义,例如参数、变量和函数 研究设置:自定义研究的各项内容并进行计算 后期研究:进行后期处理使结果可视化,比较模拟值和实验结果,并提取最佳的参数估计值 下面,让我们看一下如何完成这些步骤,以及在模型中设置 参数估计 研究步骤时需要考虑的重要因素。 步骤 1:参数估计预定义 在进行参数估计研究之前,我们必须先定义问题。这通常涉及创建参数、函数和变量的组合。首先,我们定义模型的输入参数,它们是需要被估算的值;接下来,通过定义一个参考函数或表达式来引入外部数据;最后,定义一个从仿真结果中提取并评估的输出变量,并将其与测量得到的输出数据进行比较。 在文中开头的视频中,我们对弯头支架进行了瞬态传热分析。然后将传热仿真得到的模拟数据与实验数据进行了比较,该实验数据用于评估材料的热导率值。 在固体传热 节点中,导热系数用 k 表示。因此,我们定义一个名为 k 的参数,输入一个 k 的粗略估计值,并在适当的节点中用它来定义导热系数。 左:用于参数估计研究的参数,包括用于估计导热系数的参数 k。右:在节点(名为实体 1)使用参数 k 定义需要估计的材料属性。 接下来,为了将外部文件中的数据引入到 COMSOL® 软件中,我们创建了一个定义。在本例中,参考数据是一个与时间相关的温度测量值的集合,这些值包含在一个用逗号分隔(CSV)的文件中。通过将 插值 函数添加到模型组件中,然后使用从文件加载 按钮,可以快速轻松地将这些数据输入 COMSOL Multiphysics。数据以表格格式自动导入,第一列为时间,第二列为温度测量值。 通过“插值“ 函数将参考数据引入仿真中”从文件加载”按钮用于将外部文件导入函数。 在单位 部分,我们只需要简单的输入参数(时间)和函数(温度)的相应单位,无需设置函数的 插值和外推 选项,因为研究仅计算函数的自变量或 t 列中明确指定时间点的差值。因此,数据点之间的平滑度和超出数据范围的函数行为设置并不重要。 现在,我们需要定义一个表达式,以从仿真结果中提取温度量(此量随后将与内插函数中的温度测量值进行比较)。我们要提取并用于比较的量是支架右上端表面的平均温度。 由于要获取量(温度)的平均值,因此我们首先在 […]

模型求解完成后如何自动导出图像

2017年 7月 11日

上一篇博客中,我们探讨了如何在研究 节点下设置一系列程序化操作,用于求解模型、将模型保存到文件,以及将数据导出到文件。这篇博客,我们将在此基础上展示在 COMSOL Multiphysics® 软件中求解模型后,如何自动导出完整的图像序列。

如何使用模型方法来加速 COMSOL® 工作流程

2017年 6月 22日

方法不仅可以加快使用“App 开发器”创建仿真 App 的流程。实际上,您可以创建模型方法来自动完成重复的建模操作,从而简化工作流程。

在 COMSOL 中求解模型后,如何使用作业序列保存数据

2017年 6月 21日

这篇操作方法博文面向希望在求解模型后自动执行常见任务的 COMSOL Multiphysics® 用户。 在此处了解如何使用作业序列。

如何在 COMSOL Multiphysics® 中为求解器添加停止条件

2017年 5月 17日

有时,一个仿真运行的时间太久超过了所需的时间,从而使我们无法监控中间结果或有条件地停止运行。这可能会使我们不得不紧紧盯着监视器,随时准备“突袭”。本篇博客,我们将讨论如何在 COMSOL Multiphysics® 软件中自动执行此过程。

如何从命令行以批处理模式运行仿真

2016年 12月 20日

你有没有发现自己在 COMSOL Multiphysics® 软件中创建新模型的速度比在 COMSOL Desktop® 环境中以交互方式启动它们的速度更快?如果在启动下一个模型之前必须等待当前模型完成求解,这听起来并不吸引人。

使用径向基函数进行曲面插值

2016年 3月 8日

你知道吗,你可以使用仿真 App 轻松计算一组点之间的插值?阅读这篇博客了解更多内容,并下载一个演示仿真 App 以获得设计灵感。

使用线性拉伸算子访问非局部变量

2015年 9月 29日

在许多仿真任务中,需要将变量从计算域的一个区域(源)转移到另一个域或组件(目标)。在 COMSOL Multiphysics 中,这种功能是通过定义一个点对点映射(即 拉伸算子),将一组目标点与一组源点相关联来实现的。一旦拉伸算子建立了映射,就可以使用相同的算子从目标访问在源处定义的所有变量。 在域之间映射变量 在许多实际情况中,需要将变量从一个组件或组件的一部分映射到另一个部分。两个子模型的连接就是这样一个实例,例如为湍流模型生成入口边界条件。入口处的边界条件明显影响域内的流体流动。然而,入口处的流动轮廓不像层流那样容易定义。为了产生湍流入口边界条件,可以使用法向流入的辅助模型。然后,需要将出口处的最终速度分布复制到主模型的入口。 效率可能是在域之间映射变量的另一个原因。例如,具有轴对称热边界条件和材料特性的热膨胀。如果结构边界条件不是轴对称的,我们可以通过先执行轴对称热分析,然后将温度从 2D 轴对称域映射到 3D 域进行结构分析以节省时间。 另一种常见的情况是周期性或其他边界条件的实现,其中边界上某个点的量与另一边界上某个点的量相关。例如,在二极管中,p-n 结一端的法向电流密度取决于同一点的电势和结另一端的电势。虽然在 COMSOL Multiphysics 的适当的物理接口中内置了大量这样的边界条件,但是用户有时可能会需要构建自己的边界条件。 以上这些情况都需要将变量从一个域或边界逐点映射到另一个域或边界。今天,我们为您展示将如何构建这些映射。 源和目标之间的映射 映射的思想涉及两个几何实体: 已知变量的源和将使用这些变量的目标。已知在源处的一个量,我们想计算目标域的另一个量。新的量可以与相同,或者是它的一个函数。 我们可以把这个问题分成以下几个步骤: 对于点 xd,想要评估 qd。 识别对应于点 xd 的源点 xs,此坐标变换由下式给出:xs = T(xd)。 提取 qs = qs(xs)。 建立关于变量 qs 的函数:f:qs\rightarrow qd 来计算 qd。 然后得到 qd(xd) = f(qs(T(xd))) 所以,本文的重点是转换 T : xd \rightarrow x_s。 COMSOL Multiphysics 提供了两种耦合算子来指定这种映射: 线性拉伸算子 和广义拉伸算子。线性拉伸算子更容易构建,但它们的用途仅限于仿射变换。广义拉伸算子更通用,但需要更多的精力进行定义。 这里,我们将讨论线性拉伸算子。在下一篇博文中,我们将讨论广义拉伸算子。 在 COMSOL Multiphysics 中使用线性拉伸算子 当源点和目标点通过仿射变换(如平移、缩放、反射、旋转或剪切)相互关联时,COMSOL Multiphysics 提供了一种指定拉伸算子的简单方法:线性拉伸算子。要添加线性拉伸算子,我们可以选择:定义 > 非局部耦合 > 线性拉伸。 线性拉伸算子的基本思想是:如果我们知道线上的两对对应点时,就可以定义两条线之间的仿射变换。类似地,三对非共线点和四对非平面(不超过两个共线)点分别描述2D域和 3D 域的仿射映射。 这和一般的线性系统分析类似。如果我们知道足够数量的基点(或向量)的变换,就可以使用线性叠加来变换每个点(或向量)。将线性拉伸算子视为选择基础及其变换的可视化方式。根据这些信息,COMSOL Multiphysics 自动导出需要应用于任意点(或向量)的映射。 下面,我们将用几个例子来说明这一点。 示例1 第一个算子用于将数据从含有端点1和4的线段映射到含有端点4和5的线段,并保留方向。我们所需要做的就是向 COMSOL Multiphysics 指出哪个点通向哪里,如下图所示。 […]


浏览 COMSOL 博客