建模工具和定义 – COMSOL 博客 - //www.denkrieger.com/blogs 发布博客 Tue, 25 Apr 2023 02:52:35 +0000 en-US hourly 1 https://wordpress.org/?v=5.7 如何在 COMSOL® 中使用最大似然法进行参数估计 //www.denkrieger.com/blogs/how-to-use-maximum-likelihood-for-parameter-estimation-in-comsol //www.denkrieger.com/blogs/how-to-use-maximum-likelihood-for-parameter-estimation-in-comsol#respond Fri, 13 May 2022 07:10:57 +0000 http://cn.staging.comsol.com/blogs?p=302801 参数估计很少有醒目的插图,但往往对获得准确的材料数据,从而获得准确的模拟结果起着重要作用。它涉及最小化测量的实验结果与模型中的相应数据之间的差异。有时你可能需要结合几个实验的数据,就需要设置适当的权重,使所有的实验都能为估计的材料参数贡献信息。最大似然参数估计提供了一种根据客观标准自动选择权重的方法,以便从实验中提取最大数量的信息。

使用最小二乘法避免手动调整

最小二乘法是最大似然参数估计的一种特殊情况,它是基本参数估计的一个很好的起点,因此是一种很受欢迎的方法。COMSOL Multiphysics® 软件内置支持最小二乘法。

在这篇文章中,我们将演示如何利用最大似然参数估计来帮助避免为给定问题手动调整权重。

图中,蓝线表示杨氏模量相对误差,它是下降的,绿线表示泊松比相对误差,它是倾斜的
在这个示例中,两个参数的相对误差取决于为两组测量选择的权重。因此,准确地确定这两个参数需要在两个权重之间找到一个很好的折衷方案。

数据采样时的概率和统计

对于一个概率密度函数 ,在一定范围内 对一个数据点进行采样的概率 ,以积分的形式给出

P=\int_a^bf(x)dx.

在这种情况下,我们只考虑测量点 周围的无穷小的范围 ,所以概率变为

P=f(x)dx.

从这个意义上说,概率密度函数与由 给出的概率之间存在直接关系。(为方便起见, 可以省略。)

带有测量误差的标准差、无穷小范围和概率标记的钟形曲线,其中概率用红色突出显示。
可以通过对概率密度函数进行积分来计算对某个值进行采样的概率。

最小二乘目标和最大似然参数估计

可以考虑模拟和实验之间的不同差异来源。在下面的例子中,我们将考虑来自实际测量的正态分布的不确定性,因此测量值 的概率变为

g(x-x^e,\sigma)=\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-x^e)^2}{2\sigma^2}},

其中, 是测量误差的标准偏差, 是平均值。对于 次测量,我们可以将联合似然计算为乘积

P=\prod_i^n g(x_i,x_i^e,\sigma) = \prod_i^n \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x_i-x_i^e)^2}{2\sigma^2}}.

我们可以取似然的对数来避免乘积和任何相关的数值计算困难。作为替代我们得到一个总和,类似于最小二乘目标:

\log(P) &=& \sum_i^n \log\left(\frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x_i-x_i^e)^2}{2\sigma^2}}\right) \\
&=& \sum_i^n\left( -\frac{(x_i-x_i^e)^2}{2\sigma^2}-\log\left(\sigma\sqrt{2\pi}\right)\right)\Leftrightarrow \\
-\log(P) &=& n\log\left(\sigma\sqrt{2\pi}\right) + \frac{_1}{^2}\sum_i^n\frac{(x_i-x_i^e)^2}{\sigma^2}.

在某种意义上,我们可以说 在最小二乘目标中起到了权重的作用。因此,为了使可能性最大化,我们需要使方程的右边最小化,并且不用考虑 的取值,当平方差的和取最小值时,方程右边就会出现最小值。如果不同的测量结果集合中的 值也不同,就不能得出同样的结论。接下来,我们来看这样一个例子。

拉伸试验的最大可能性

通常通过压缩试验来估计材料的泊松比,但为了便于演示,我们以一个使用拉伸试验来估计泊松比和杨氏模量的示例来说明。我们通过测量下图所示试样的拉伸力和径向收缩来实现。

一个显示拉伸测试应力的模型,末端是紫色的,箭头指向外面,中心是红色的。

该图显示了拉伸试验的应力。力和中心径向位移被测量并表示为拉伸量的函数。

力和位移测量数据之间存在大约 10 个数量级的差异(SI 单位),所以使用常规的最小二乘法,我们需要调整最小二乘目标的权重来获得两个材料参数的准确结果。然而,我们可以通过两个测量误差 的标准差作为控制,使用最大似然法自动计算出最佳权重,即:

P_F &=& \prod_i^ng(F_i-F_i^e,\sigma_F) \quad \mathrm{和} \quad P_r = \prod_i^n g(r_i-r_i^e,\sigma_r) \\
P &=& P_F P_r \Leftrightarrow -\log(P)=-\log(P_f)-\log(P_r).

COMSOL Multiphysics 内置的最小二乘法目标法,让使用自定义目标来解决最大似然参数估计问题变得相当简单。COMSOL 案例库中提供的使用最大似然法进行参数估计模型,通过添加正态分布的噪点数据来生成合成数据。该模型在这些数据的基础上恢复材料参数和标准差,由此产生的力和径向位移如下图所示。

一个图显示了两条相交的线,蓝色的点是半径变化,蓝色的线是恢复的半径变化,绿色的点是力,绿色的线是恢复的力。
噪点数据和优化模型行为被绘制为拉伸量函数。两次测量都有 37 个数据点。

该模型能够将材料参数恢复到 0.1%-0.5% 的准确度和 6% 左右的标准差,预计准确度会随着测量次数的增加而增加。

在这篇博文中,我们只介绍了符合正态分布的噪点数据并且其标准差不变的情况,但最大似然参数估计还可以扩展到适合更多且更通用的情况,并且提取和估计信息时也能够保证数据的一致性和最优性。

自己尝试

单击下面的按钮,进入 COMSOL 案例库,自己尝试使用最大似然法进行参数估计模型。

更多资源

您还可以通过下面这些模型来探索更多参数估计的示例:

查看以下资源,了解有关参数估计的更多信息:

]]>
//www.denkrieger.com/blogs/how-to-use-maximum-likelihood-for-parameter-estimation-in-comsol/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 撰写,于 2014 3 19 日发布。现在已经更新,以反映新增的后处理功能。

全能的视图节点

在 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 Multiphysics 中浏览用户界面。

]]>
//www.denkrieger.com/blogs/the-graphics-window-effective-beautiful-postprocessing/feed/ 0
在控制系统模型中添加一个全状态空间反馈控制器 //www.denkrieger.com/blogs/add-a-full-state-space-feedback-controller-to-a-control-system-model //www.denkrieger.com/blogs/add-a-full-state-space-feedback-controller-to-a-control-system-model#respond Tue, 23 Mar 2021 05:51:43 +0000 http://cn.staging.comsol.com/blogs?p=307911 反馈控制系统理论中运用了全状态反馈的概念,使配置系统的所有闭环节点成为可能。极点对应于系统的动态行为,因此将它们配置在一个期望的位置可能非常有趣。在 COMSOL Multiphysics® 软件中,我们可以使用状态空间控制器插件为系统模型添加一个全状态空间反馈控制器。这篇博客,我们简要回顾了全状态反馈,描述了如何使用该插件,并演示一个示例。

关于全状态反馈

全状态反馈假设系统的闭环动力学在形式上可以表示为

\dot{\boldsymbol{x}} = \boldsymbol{A}\boldsymbol{x}+\boldsymbol{B}u\,,
\boldsymbol{y}= \boldsymbol{C}\boldsymbol{x} + \boldsymbol{D}u.

如果 ,只要系统是可控 的,我们就可以通过求解特征方程来任意配置系统的极点。

使用插件实现状态空间反馈控制器

使用插件,我们能够在模型中实现一些功能。从 5.6 版本开始,COMSOL Multiphysics 提供了一个状态空间控制器插件,可以配置闭环系统的极点。

有关控制器插件的另一个示例,请参阅博客文章:如何使用 PID 控制器插件模拟控制系统

屏幕截图显示了状态空间控制插件的设置,包括方程,可观察量的数量,变量部分展开。
状态空间控制器插件的 设置窗口

我们可以先定义所需系统的观测变量的数量,矩阵 ,矢量 ,初始条件,以及在复平面中配置极点的位置。然后使用插件创建一个新的零维模型组件,该组件使用全局方程 定义反馈控制器。信息 部分提到了相关的组件,以及创建控制器后如何访问输出变量。控制变量可以用作

下面介绍一个如何使用插件的示例。

力对双质量-阻尼-弹簧的示例

以一个描述质量为 的质点的系统为例, 一侧连接到带有弹簧和阻尼器的墙壁上,另一侧用弹簧和阻尼器连接到第二个质量为 的质点。第二个质量点又受到一个力 的作用,为了达到平衡,这个力需要被控制。

含不同零件的质量阻尼弹簧系统示意图,用作实现状态空间反馈控制器的示例。

该系统由以下方程描述,这些方程是牛顿第二运动定律的实例,使用点符号表示时间导数:

m_{1}\ddot{\tilde{x}}_{1} = k_{2}(\tilde{x}_{2}-\tilde{x}_{1})+c_{2}(\dot{\tilde{x}}_{2}-\dot{\tilde{x}}_{1}) – k_{1}\tilde{x}_{1} – c_{1}\dot{\tilde{x}}_{1},
m_{2}\ddot{\tilde{x}}_{2} = F – k_{2}(\tilde{x}_{2}-\tilde{x}_{1})-c_{2}(\dot{\tilde{x}}_{2}-\dot{\tilde{x}}{1}),

式中, 是两个弹簧的弹簧常数, 是两个阻尼器的阻尼常数, 用于描述两个质点与其各自平衡位置的偏差。

引入四个新变量,,我们得到一个系统形式为

\dot{\boldsymbol{x}} = \boldsymbol{A}\boldsymbol{x}+\boldsymbol{B}u\,
\boldsymbol{y}= \boldsymbol{C}\boldsymbol{x},

其中,

\boldsymbol{A} = \begin{pmatrix}
0 & 1 & 0 & 0\\
-(k_{1}+k_{2})/m_{1}& -(c_{1}+c_{2})/m_{1} & k_{2}/m_{1} & c_{2}/m_{1}\\
0 & 0 & 0 & 1\\
k_{2}/m_{2} & c_{2}/m_{2} & -k_{2}/m_{2} & -c_{2}/m_{2}
\end{pmatrix} \text{ 和 } \boldsymbol{B} = \begin{pmatrix}
0 \\
0\\
0\\
1/m_{2}
\end{pmatrix}.

在这种情况下,控制变量 是力, 是单位矩阵。我们将常量定义为参数,如下所示。

显示状态空间控制器的不同常数被定义为参数的表格。
常量的定义。

我们现在可以使用状态空间控制器插件来配置闭环系统的极点。假设我们想要四个实极点,都为-0.5。由于我们有四个可观察量,设置如下所示的插件。


双质量阻尼器系统的状态空间控制器设置。

选择初始条件,使得第一个质量块开始于负 方向 1.3 m,速度为 0.2 m/s,第二个质量块从静止开始,从它的平衡点向正 方向 1.3 m。

单击创建 后,会收到以下消息。

通知窗口的截图,描述状态空间控制器的输出变量。
状态空间控制的输出变量的描述。

现在,我们可以运行研究,假设质量点在平衡状态下相距 3 米,我们可以绘制变量 ,以看到它们位置的时间演变。因为 是两个质量点的平衡位置的距离,所以当两个质量点相距 3 米时,质量 2 与质量 1 的平衡位置的距离是

绘制状态空间控制器中两个质量在研究的前 25 秒内的位置的折线图,质量 1 显示为蓝色,质量 2 显示为绿色。
25 s 内两个质量点的位置,此时所有极点都位于 -0.5

我们还可以绘制作用力,它可以通过控制变量 访问,得到以下绘图。

在研究前25秒,控制变量在状态空间控制器中的位置的线形图,用蓝色线表示,在第5秒有一个尖锐的峰值。
在模拟的前 25 s绘制控制变量,此时所有极点都位于 -0.5

假设我们对上述系统的稳定时间不满意。从控制理论来看,如果我们将极点进一步配置在负实平面中,预计稳定时间会减少。如果我们按照上面的程序,将所有极点配置在-1 而不是 -0.5,就可以获得下面的位置图。

在研究的前15s内,绘制状态空间控制器中极点位置的线形图.
15s 的位置图,此时所有极点都位于 -1

此外,我们还可以得到如下所示的受控力图。

COMSOL Multiphysics 模拟的前 15s 状态空间控制器中被控制的力的线图。
前 15 s 的受控力图,此时所有极点都位于 -1

正如预期的那样,系统稳定得更快。

在状态空间控制器插件中,还可以在复平面中配置极点。复极点总是以复共轭对的形式出现。

状态空间控制器插件的设置窗口,在变量部分修改设置以包括2个复杂的极点。
具有两个复极点的状态空间控制器设置。

这个结果会产生如下图所示的位置和控制信号图。

用蓝绿线绘制的状态空间控制器中两个实极点位置的图。
状态空间控制器系统中两个实极点控制信号的线图。

两个实极点分别位于 -0.5 和两个复极点位于 -1+2i -1-2i 的位置图(左)。两个实极点(-0.5)和两个复极点(分别为 -1+2i -1-2i)的控制信号图(右)。

极点配置

从上一节的模拟可以看出,系统的行为会发生巨大变化,具体取决于闭环系统的极点配置的位置。很难找到关于极点配置如何影响任意系统的一般描述。但是,如上所述,可以说配置连续系统的极点应该会使稳定更快,但可能会导致更大的控制信号。使用状态空间控制器插件,您可以轻松评估各种极点配置的系统行为。

]]>
//www.denkrieger.com/blogs/add-a-full-state-space-feedback-controller-to-a-control-system-model/feed/ 0
分形、噪声和状态变量 //www.denkrieger.com/blogs/fractals-noise-and-state-variables //www.denkrieger.com/blogs/fractals-noise-and-state-variables#respond Tue, 05 Jan 2021 02:45:26 +0000 http://cn.staging.comsol.com/blogs?p=246211 今天我们将为您介绍 COMSOL Multiphysics® 软件中一个强大的工具——状态变量。你将学习如何用它们生成分形,例如著名的芒德布罗集合(Mandelbrot set),也就是所谓的分形噪声。生成分形不是状态变量的最典型应用。但是,这篇博客文章提供了一种有启发性、有见地并且有趣的方式,可以帮助你更多地了解如何使用状态变量、复数算法和随机数。

什么是分形?

广义上讲,分形是指物体在不同尺度上表现出某种形式的自相似性。这听起来可能很抽象,但是分形模式实际上广泛存在于自然界中——无论你是否注意过,你都可能遇到过它们。

例如,蕨类植物会显示出分形模式。下图中所示的每个蕨叶由较小的分支或细分,即所谓的 羽状叶pinnae组成,它们沿着主茎生长,并显示出与主叶本身相似的模式。单个羽状叶又由较小的细分(细齿)组成,在某些蕨类植物中,细齿 可细分为更小的部分。

A photograph of real, green fern leaves.
An image of a computer-generated Barnsley fern leave with part of the repeating structure zoomed in on and highlighted.

自然界真实的蕨叶和计算机合成的 Barnsley 蕨。

数学对应体的发现是受自然界中发现的植物图案启发的,即Barnsley 蕨。蕨叶的这种数学表示可以在具有迭代功能的计算机上生成,这个迭代功能只需要几行代码就能完成。生成的图像类似于蕨叶,就像真实的蕨叶一样,它由细分形状组成,这些细分形状与主叶片本身相似。实际上,Barnsley 蕨经常会无限细分为较小的自相似形状,而真实蕨类植物中的自相似性仅能保持几个水平。

分形除了具有吸引人的外观外,还具有各种实际应用,例如分形单极天线和超材料研究。另一个应用是计算机生成图像,例如在计算机游戏中模拟自然物体,像风景、云彩、树木或其他植物。在这篇博文的后面部分,我们将展示如何使用分形模式生成看起来逼真的景观图像。

芒德布罗集合

也许最著名的一个分形是芒德布罗集合。简而言之,它是由一个简单的迭代函数产生的一组复数。如果将复数插入到某个迭代函数中,且绝对值经过多次迭代后不会发散,则将其视为集合的一部分。要检查一个数是否是集合的一部分,我们只需要将它插入下面的公式中就可以了:

z_\textrm{n+1} = z_\textrm{n}^2 + c \qquad \textrm{其中} \qquad z_0 = 0

例如,我们可以尝试用数字 代入。第一次迭代产生 ),第二次迭代产生 ),第三次迭代产生 ),等等。在这种情况下,绝对值 似乎发生了发散,所以, 不属于芒德布罗集合。

在 COMSOL Multiphysics® 中计算芒德布罗集合

实际上,在 COMSOL Multiphysics 中计算芒德布罗集合非常简单。为此,我们创建了一个二维几何,可以将其理解为一个复平面。每个点 在这个平面上代表一个复数 ,我们可以将这些点插入迭代方程中。我们必须跟踪之前的结果 ,来计算下一个数  。

对于从之前的计算步骤中跟踪数据的情况,状态变量 特征是一个方便的工具。在状态变量 特征中,我们可以根据需要定义尽可能多的变量。在计算芒德布罗集合时,我们定义了两个变量,分别是 zn aura

A screenshot of the State Variables feature Settings window with the State Components section expanded.
定义状态变量。

在任何给定的迭代步骤以及复平面中的任何给定点,第一个状态变量跟踪当前的值。我们在 初始值 列中对 zn 进行初始化。该更新表达式 是我们的迭代函数,通过这个函数我们将结果 zn 的平方从之前的迭代中添加到。我们还添加了另一个名为 aura 的状态变量,并将字段初始化为零,存储所需的迭代次数,直到 zn 的绝对值大于 2。

可以证明, 最终会发散,如果 在某些迭代步骤中。如果我们对这些函数进行两次迭代求解并绘制结果图,我们将看到芒德布罗集合出现,如下面动画所示。

芒德布罗集合及其经过 25 次迭代计算的“光环”。

黑灰色形状代表复数,是芒德布罗集合(变量 zn)一部分。在每次迭代中,我们都更接近实际作为集合一部分的数。不同的灰色阴影表示绝对值 zn。对于一些初始值,迭代函数不会收敛到单个值,而是会在不同的值之间跳转,在动画中,它看起来有点像光源被打开和关闭。芒德布罗集合外的彩色字段表示光环,它指示发散的速度。越接近芒德布罗集合的边界,在绝对值大于2之前越需要进行多次迭代。

A view of a Mandlebrot set approaching its boundary, with 300 iterations of spiral structures shown in lighter and lighter colors and surrounded in purple.
螺旋结构位于中心位置,使用 300 次迭代计算得出。图像的宽度为0.01,高度为0.00666。

分形噪声

现在我们已经了解了分形和状态变量的要点。接下来,我们来看看分形在计算机生成图像领域中更实际的应用。更具体地说,我们将研究如何使用所谓的分形噪声来模仿逼真的纹理。这项技术实际上已在 COMSOL Multiphysics 中用于实现各种材料的逼真可视化,这将在后面讨论。分形噪声的另一个常见应用是在计算机游戏中以程序的方式生成看起来自然的地形。

我们使用噪声创建一个人造景观。这里,我们将噪声理解为一些随机值。换句话说,我们正在寻找一个函数,即 noise(x, y),该函数以两个坐标作为参数并返回一个伪随机数。结果被解释为给定位置处的地形高度。使用 COMSOL Multiphysics 中的随机 函数,我们可以创建白噪声(详可参看这篇博客文章:从概率分布函数中抽取随机数)。如果将结果绘制在 xy 平面上,这些数将随机且独立地从一个坐标跳到下一个增量。显然,这看起来与现实世界中的任何景观都不一样,因此我们需要一种更好的方法。

A grayscale visualization of white noise that has uniform distribution.
白噪声分布均匀。值在一些最小值和最大值之间随机跳跃。

佩林噪声

我们正在寻找一个产生随机值的噪声函数,同时该函数不应显得“太随机”而应显得自然一些。相邻点之间应该有一些连贯性。由 Ken Perlin 开发的佩林噪声是一种特殊的噪声形式,它允许我们为给定坐标生成伪随机值,并且噪声值从一个点到相邻点的过渡是平滑的。这种“平滑的随机性”看起来更像自然界中发现的模式。

Three side-by-side images showing how to generate 2D Perlin noise, with the grid definition on the left, absolute value in the center, and interpolated noise on the right.
生成二维佩林噪声:(a)网格定义。红色箭头是随机生成的梯度矢量(按 0.5 缩放以更好地显示)。蓝色箭头从周围的网格指向某个位置。(b)使用左下梯度矢量的第一个点积的绝对值。灰度表示介于 0 (黑色)和 1(白色)之间的值。(c)内插噪声。

生成佩林噪声涉及上面概述的几个步骤。第一步,将 xy 平面划分为单元正方形网格点。在每个网格点处,生成一个长度为 1 的伪随机矢量,该矢量也称为梯度矢量(红色箭头)。与一个点关联的四个周围的梯度矢量 只是伪随机的,因为当我们在同一点重新计算噪声时,它们应该始终相同。利用梯度矢量,我们可以开始计算位于平面内任何位置的某个点的噪声值 。对于这个给定的点,计算梯度矢量之间的四个点积,以及从网格指向所选点自身的位置矢量(蓝色箭头)。

d_\textrm{i} = \mathbf g_\textrm{i} \cdot (\mathbf x – \mathbf x_\textrm{gi}) \qquad \textrm{其中} \qquad i = 1,2,3,4

四个点积可以解释为梯度对所选点处的噪声水平的影响。梯度矢量 以及位置矢量 之间的点积,会达到最大值,当两个矢量指向同一个方向时;而当两个矢量相互垂直时会达到最小值。生成佩林噪声的最后一步是计算四个点积的加权平均值并返回插值。这涉及精巧选择的平滑步长函数和线性插值,可确保我们在自己的域上获得平滑过渡。有关如何计算佩林噪声的更多详细信息,请参见 参考文献1

分形噪声

上面我们生成的佩林噪声具有非常平滑的过渡,并且可能看起来不像大多数现实世界中的地形那样。在该地形中,我们通常会发现更多局部不规则性,可能是来自山丘或较小的岩石。我们该怎么模拟呢?一个解决方案是叠加不同的噪声八度,这就是分形概念起作用的地方。基本上,我们会以更高的频率产生更多的噪声,换句话说,在相同的距离内会产生更多的峰谷。就像音乐中一样,频率每倍频增加一倍。降低高频噪声的幅度,并将其添加到基本噪声中。原则上,我们可以添加任意数量的噪声八度。因此,我们不再只调用一次函数 noise(),而是多次调用该函数,然后将结果与调整后的幅度相加。

h(x, y) = \sum_{j=0}^N \frac{\texttt{noise}(2^j x, \ 2^j y)}{\texttt{scale}(j)}

如果我们将  解释为我们景观的高度,第一次迭代()得出具有大的、明确特征(例如山脉)的地形的第一个平滑近似值;第二次迭代可能来自更多的当地丘陵和洼地;第三次迭代可能来自单个巨石和岩层;等等。

A view of four lines: 1D fractal noise on the top and the first three frequencies of Perlin noise underneath.
一维分形噪声(顶线)。以下是佩林噪声的前三个频率,这些频率加在一起后,就形成了顶部的线。

产生分形噪声涉及计算和叠加不同频率的噪声。在 COMSOL Multiphysics 中进行此操作时,再次方便地使用状态变量,因为我们要“记住”以前所有频率的合成噪声。以下动画表示二维高度图,其中,随着每个级别的高频噪声的出现,地形中越来越多的细节出现,该噪声被添加到基本噪声中。

我们可以在物理模拟环境中使用随机化的表面几何形状,例如,需要模拟表面粗糙度或不均匀的材料。在之前的博客文章中,我们展示了一种通过叠加具有变化幅度和频率的三角函数来创建随机表面几何形状的不同方法,以及从图像或文本文件创建任意几何形状的方法。

通过使用噪声改善材料外观

你是否知道我们还可以在绘图中添加分形噪声来改善 COMSOL Multiphysics 中的材质外观?从 5.6 版本开始,材料具有特殊的可视化选项。某些内置材料类型,例如生锈的钢、皮革和水,会使用单纯噪声创建更逼真的纹理。单纯噪声与佩林噪声相似,并且也由 Ken Perlin 开发。你可以自己调整噪声参数以获得所需的效果。

The COMSOL Multiphysics Model Builder with a visualization of a shallow water equation model in the Graphics window.
海啸冲上莫奈山谷海滩的复杂三维模型中利用单纯噪声可视化水。

A wrench model with a rusty steel surface visualized via Simplex noise.
使用 Simplex 噪声可视化具有生锈钢表面的扳手的应力和应变模型。

自己尝试

想不想自己尝试模拟文中讨论的芒德布罗集合或佩林噪声?单击下面的按钮访问MPH文件,就可以动手操作了~

参考文献

  1. K. Perlin, “Improving Noise”, New York University, 2002. https://mrl.cs.nyu.edu/~perlin/paper445.pdf.

扩展阅读

阅读下面相关博客文章,了解有关分形、噪声和状态变量的更多信息:

 

]]>
//www.denkrieger.com/blogs/fractals-noise-and-state-variables/feed/ 0
圣诞老人在派送礼物过程中遇到挑战 //www.denkrieger.com/blogs/the-north-pole-models-product-distribution-challenges-for-the-holidays //www.denkrieger.com/blogs/the-north-pole-models-product-distribution-challenges-for-the-holidays#comments Fri, 18 Dec 2020 03:39:44 +0000 http://cn.staging.comsol.com/blogs?p=241691 今天的文章作者来自于我们规模最大、历史最悠久的客户。这家客户非常著名,总部位于北极圈内,大多数时候人们可能会忘记他们的存在,但他们一直在留意着我们。他们一直拥有完美的客户满意度,但今年由于特殊原因,他们对圣诞季的产品配送任务有些顾虑……接下来,让我们一起了解 COMSOL 与这个来自北极圈的特殊客户的故事吧!

一个非常特殊的技术支持问题

随着年末的来临,我们的精灵团队正在礼物工厂中努力工作,为所有的小朋友和大朋友们准备各种玩具和礼物。您也许会认为我们是一个非常传统的组织,实际上我们的产品一直在使用最先进的技术,例如,我们的生物发光研究成果可以帮助圣诞老人照亮夜行的道路。

多年以来,我们一直使用 COMSOL Multiphysics® 软件进行产品研发。最近,我们使用 COMSOL Multiphysics 5.6 最新版本中的新功能解决了一个技术难题。

几天前,圣诞老人的太太克劳斯夫人很急切地找到我。她告诉我,由于疫情原因,圣诞老人今年一整年都待家里社交隔离,一不留神就吃了太多的饼干,胖了一大圈。克劳斯夫人担心今年圣诞老人可能会因为太胖而无法钻进所有的烟囱,造成一些礼品无法派送。她很友善地为我们提供了圣诞老人近期的照片,以及其他详细参数。

A sketch of Santa above a chimney on a white sheet of paper with the dimensions labeled.
一个典型的问题描述。

我们意识到,这个问题可能会导致我们的礼品派送工作发生严重的中断,需要立即采取行动。说实话,这对我们来说并不是一项常规任务,所以我们联系了 COMSOL 技术支持部门,并询问他们如何最好地解决这个问题。一向乐于助人的 COMSOL 技术工程师立即向我们提供了一些有用的资源,并助我们一臂之力。

模拟圣诞老人

我们可以使用 COMSOL 5.6 版本中结构力学模块的新功能——动态接触功能来分析这个问题,另外还可以通过这篇文章(如何利用一个附加组件将图像转换为几何模型)介绍的方法直接将圣诞老人的照片导入 COMSOL 软件中。同时,我们还可以通过虚拟实验快速获取材料属性。只要做好了这些准备,我们就可以创建一个模型来模拟在派送礼物过程中,圣诞老人通过烟囱的场景。

The COMSOL Multiphysics user interface with the Contact settings open and a mesh of Santa Claus in the Graphics window.
我们正在检查网格,来来回回检查了好几遍。

下面,让我们来看看模拟结果…

 

太好了,圣诞老人可以通过!

圣诞快乐!

看到仿真的结果,克劳斯夫人非常高兴,并感谢所有精灵们的努力工作——无论是在北极为大家精心制作礼物的精灵,还是在 COMSOL 技术支持团队中为用户提供帮助的精灵。

最后,COMSOL 祝大家圣诞快乐,平安健康,并祝 2021 年万事如意!

关于作者

Winter Frost 是圣诞老人工作室的高级精灵工程师,专门负责拐杖糖的产品派送和形状优化。

]]>
//www.denkrieger.com/blogs/the-north-pole-models-product-distribution-challenges-for-the-holidays/feed/ 2
借助仿真实现声呐系统的快速原型设计 //www.denkrieger.com/blogs/keynote-video-rapid-prototyping-for-sonar-systems //www.denkrieger.com/blogs/keynote-video-rapid-prototyping-for-sonar-systems#respond Tue, 15 Dec 2020 06:47:37 +0000 http://cn.staging.comsol.com/blogs?p=242701 借助多物理场仿真技术,诺斯罗普·格鲁曼公司(Northrop Grumman Corporation,NGC)快速完成了声呐系统的创新设计和实现。Lauren Lagua 是 NGC 水下系统部门声呐集成团队成员之一,她在 2020 年北美 COMSOL 用户年会的主题演讲中,讨论了如何使用 COMSOL Multiphysics® 软件在声呐系统开发中进行快速原型设计。文中摘录了她的一些演讲内容,并附加了完整的视频演讲,欢迎浏览。

视频演讲:NGC 如何使用 COMSOL Multiphysics® 进行快速原型设计

 

NGC 的快速原型设计流程

在 NGC 公司,工程师遵循着快速原型设计的流程,该流程包括四个部分,其中前三个部分经常重复多次:

  1. 原型设计
  2. 原型制造
  3. 测试与设计验证
  4. 最终设计的制造

Lauren Lagua表示,在该流程的每一个环节都使用了多物理场仿真技术。

原型设计

在为声呐系统设计换能器(Tonpilz 型压电换能器案例模型)时,工程师会通过测试不同的参数设置,来了解如何最好地实现项目的总体目标。他们可能会尝试测试材料(例如新的压电材料)、几何形状和频率等参数。Lauren 团队使用 COMSOL Multiphysics 的 压力声学固体力学静电电路 接口,确定了不同的参数变化如何影响其设计。

在测试新材料时,团队经常缺少供应商提供有关材料属性的所有必要信息。因此,他们使用 COMSOL Multiphysics 评估已有信息测试材料属性,并将评估结果与 COMSOL 模型进行比较来估计材料性质。

COMSOL 用户年会PPT演示的屏幕截图,显示了换能器设计示例。
主题演讲的屏幕截图,显示了换能器设计中使用的材料。

原型制造

NGC 团队在建立好模型并运行之后,会在整个原型制造过程中执行一系列测试,并将其与模拟结果进行比较。有时结果会不匹配,例如模型中可能缺少物理场。有时,Lagua能够在原型中发现制造问题。例如,当将压电材料黏合到背衬基板时,可能会出现气泡或黏合不良等问题。

Lagua 对导致问题的原因进行了假设,并在 COMSOL Multiphysics 中模拟了其假设。通过将模型结果与原始原型的假设进行比较,Lagua 能够快速对制造问题进行故障排除并纠正。

测试和验证

准备好原型后,NGC 团队将对其电气和声学特性进行系统级测试。

电气测试包括阻抗测试和电容测量。

在声学方面,NGC 公司使用了最先进的声学测试设备。该设备是私营企业最大的测试池,直径为 15 米,可容纳约 1500 立方米水,并用红木衬砌,以建造一个理想的宽带声学测试环境(模仿开放水域环境)。声学测试池用于测量声呐换能器中的发射电压响应,远场电压灵敏度和辐射方向图。该设备的测试结果将被反馈回模型中,并进行验证模型,或者在必要时进行调整。

Northrop Grumman Corporation公司的声学测试池的照片
声学测试池。图片由 Northrop Grumman Corporation 提供。

一旦设计通过了快速原型设计流程的前三个阶段,就可以一次又一次地快速迭代它们,直到准备好制造出最终设计版本为止。

微型无人水下飞行器的声呐

在 Lagua 的主题演讲中,她以 NGC 公司的一个项目为例说明了如何借助仿真快速实现声呐系统的原型制造。该项目成功使用 COMSOL Multiphysics 软件实现了快速原型设计。μSAS™ 系统是一种用于微型无人水下飞行器的双侧侧扫声呐。这些小型飞行器的直径约为 0.15 米,并已经预先编制了任务编程。

主题演讲的屏幕截图,展示了使用COMSOL Multiphysics设计的声纳系统。
主题演讲的屏幕截图展示了 μSAS™ 系统。

由于设备的规模小,因此对尺寸、重量和功率有严格的设计限制。Lagua 的目标是在小型设备中开发出尽最佳的声呐,同时还可节约能源。最后,NGC 团队设计了一种在两侧均带有声呐的设备,该设备可实现干涉测量过程。这意味着该微型无人水下飞行器的声呐系统可以插入 3D 图像。

设计、原型制作、测试和验证

借助 COMSOL Multiphysics 软件,NGC 公司团队能够快速进行设计、原型制作、测试和验证,有时甚至仅需要一周时间!正如 Lagua 在演讲中提到的那样:“ COMSOL 推动了 NGC 公司的设计、创新和进步,对我而言也是如此。”

了解有关 Lagua 在 Northrop Grumman 公司使用仿真和快速成型和缩短产品开发周期的更多信息,请观看本文开头的主题演讲视频。

μSAS 是 Northrop Grumman Corporation 的商标。

]]>
//www.denkrieger.com/blogs/keynote-video-rapid-prototyping-for-sonar-systems/feed/ 0
如何从命令行运行 COMSOL Multiphysics® //www.denkrieger.com/blogs/how-to-run-comsol-multiphysics-from-the-command-line //www.denkrieger.com/blogs/how-to-run-comsol-multiphysics-from-the-command-line#comments Wed, 09 Dec 2020 02:18:33 +0000 http://cn.staging.comsol.com/blogs?p=244561 你知道如何从命令行运行同一个模型文件的多种工况并自动导出数据吗?我们只需要在 COMSOL Multiphysics® 软件的用户界面(UI)中进行少量准备工作,就可以使用方法来扩展模型文件,在方法中通过命令行自动实现许多模型的设置和计算。下面,我们来看看如何操作……

从模型写出数据

以在 COMSOL® 软件介绍中使用的模型——母线板教程模型 为例来演示如何操作这一工作流程。该模型具有多个需要研究的参数化输入以及需要得到的输出。

首先,将模型中的一些数据写入硬盘。我们的模型已经建立了多个绘图,包括其中的一个温度场。右键单击此特征,然后选择 添加要导出的图像 选项,将获得结果 > 导出 > 图像 特征,其设置如下面的屏幕截图所示。在这些设置中,键入输出文件名。请注意,我们还可以根据需要调整图像布局 设置。我们可以添加一些类似的特征,并导出其他类型的数据,包括动画、网格信息等。如果要一次性写出所有这些数据,请右键单击导出 分支,然后选择全部导出 选项。

A screenshot of the COMSOL Multiphysics model tree with the Results node opened to the Export branch and the image export settings opened.
屏幕截图显示了结果中的导出分支,此处用于导出图像文件。

我们还可以提取一些标量值。在结果 分支下添加计算组 特征,并添加任意数量的派生标量值。例如,对所有域中的损耗进行 积分 并计算最高温度。在 计算组 设置中,还可以指定文件名,如下所示。

A screenshot of the Evaluation Group node opened to the settings that specify writing numerical data to a file.
该屏幕截图显示了 计算组,将数据组合并写到文件中。

最后,结合计算组导出 特征,我们可以从模型中写出任意数量的数据。现在,让我们看看如何进一步实现自动化操作。

通过模型方法自动操作

我们需要 Microsoft® Windows™ 操作系统来使用模型方法,因为我们将使用 App 开发器 功能。单击功能区中的 App 开发器 按钮,或使用键盘快捷键 Control + Shift + A,将进入下图所示的界面。此处我们需要做的是在方法 分支中添加一个新方法,并为其命名,例如,my_method,但是先不添加任何内容。通过左上方的按钮或键盘快捷键 Control + Shift + M 返回到模型开发器。

The Application Builder zoomed in and open on a blank Method Editor window for writing a method to run COMSOL Multiphysics from the command line.
建立了一个方法的 App 开发器屏幕截图。

回到模型开发器,添加方法调用。右键单击全局定义,然后转到方法调用 子菜单,我们将在其中看到我们刚刚创建的方法。添加并确保更改标记 字段。通常,我们可以使用与App开发器中相同的名称。我们可以在下面的屏幕截图中看到方法调用 特征具有三个按钮:

  1. 运行
  2. 停止
  3. 编辑方法

编辑方法 按钮是一个快捷方式,可以便于切换到 App 开发器,一旦我们需要在方法中添加代码时就可使用此功能。

A screenshot of a Settings window showing how to add a call to a method in the Model Builder.
在模型开发器中添加方法的调用,使我们能够运行和编辑该方法。

如果对编程不是很熟悉,那么我们可以执行以下操作:方法包含代码片段,其中每行代码包含在模型上的某种修改或操作。有 2 种方法可以从模型开发器中提取这些代码片段。

第 1 种方法是转到开发工具 选项卡,然后单击录制方法。接着,我们可以在模型开发器中执行一系列完整的操作,直到单击停止录制 按钮。相关代码将保存到新方法中。

在第 2 种方法中,右键单击模型树中的特征,并且(在大多数情况下)我们将看到作为代码复制到剪贴板 子菜单。在模型的研究 分支上进行尝试,其中一个选项是运行。选择此选项可将用于运行的代码片段复制到剪贴板。转到方法编辑器并粘贴(Control + V)以查看代码:

model.study(“ std1”).run();

第 2 种方法比较简单,因此我们在这篇博客文章中使用了此方法。

A screenshot of the export settings with a menu expanded and the option Copy as Code to Clipboard selected.
复制用于运行模型树的特定节点的代码。

我们可以添加更多代码来自动执行数据提取。我们已经设置了将数据写到硬盘的功能,现在只需要在我们的方法中包括这些功能的运行即可。右键单击导出 特征,然后在运行命令中再次使用作为代码复制到剪贴板,如上所示。将其粘贴到我们的方法中,然后对计算组 重复此操作。完整的方法应如下所示:

model.study(“ std1”).run();
model.result().export().run();
model.result().evaluationGroup(“ eg1”).run();

由于我们正在通过方法写入硬盘,因此我们可能还需要更改一些默认的安全首选项。进入文件菜单 > 首选项 > 安全性,并允许访问所有文件的文件系统。此设置显示在下面的屏幕截图中。否则,我们将只能写入临时 和 App 文件 位置,此部分通过文件菜单 > 首选项 > 文件进行指定。

A screenshot of the Preferences window opened to the Security options.
如果需要,修改安全性首选项以允许方法写入文件。

现在,当我们运行此方法时,将重新求解整个模型,并将新的数据和图像文件写出到硬盘。最后一步是从命令行完成所有操作,完全不使用用户界面。

从命令行运行

保存此修改后的文件,将其命名为 my_file.mph,然后退出 COMSOL Multiphysics 用户界面。打开 Windows 命令提示符,然后导航到包含模型文件的目录。确保将 COMSOL® 可执行文件的路径添加到 PATH 环境变量中,然后输入以下命令:

comsolbatch -inputfile my_file.mph -pname tbb,Vtot -plist“ 1 [cm]”,“ 10 [mV]”-methodcall my_method -nosave

此命令将打开模型,并通过 -pname-plist 变元的组合使用修改模型中的两个全局参数。当前情况下,参数 tbb 会更改母线板的厚度, Vtot 为所施加的电压。

我们自定义的方法将被调用(通过 -methodcall 变元),实现运行模型并写出数据。附加的可选变元 -nosave 表示不保存模型文件。有关此处所使用的和所有其他可选变元的完整详细信息,请参见《COMSOL Multiphysics 参考手册》中的 COMSOL 命令部分。

现在,修改模型和写出数据的整个过程都已经简化为一个命令了。

我们还能做什么?

当然,我们在这里所做的只是一个非常简单的示例,以演示运行模型和写出数据的自动化过程。其实我们还可以做很多工作。基本上我们可以将所需的任何代码放入模型方法中。例如,可以放入以下代码:

另外,值得一提的是,我们还可以使用另一种工作流程实现许多相同的数据提取,即通过作业序列功能 (此功能不需要使用方法)。

最后,需要说明的是,我们可以同时并行运行多个不同的批处理作业,当我们拥有一台配置大内存和内核的计算机时,这种方法尤其有效。

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

]]>
//www.denkrieger.com/blogs/how-to-run-comsol-multiphysics-from-the-command-line/feed/ 2
通过符号微分加速模型收敛 //www.denkrieger.com/blogs/accelerating-model-convergence-with-symbolic-differentiation //www.denkrieger.com/blogs/accelerating-model-convergence-with-symbolic-differentiation#comments Thu, 29 Oct 2020 06:51:41 +0000 http://cn.staging.comsol.com/blogs?p=240481 你是否知道 COMSOL Multiphysics® 软件内置了一个符号微分求解器,在设置和解决非线性问题时会自动启用?此功能可确保软件在求解此类模型时具有很高的可靠性,但也要付出一些代价。今天,我们将通过几个不同的示例演示此功能,并研究其优点和弊端。

利用符号微分求解简单的非线性问题

让我们从一个相对简单的、单自由度的非线性问题(隐式方程)开始:

T=Q/(1+T^2/100)

其中,  表示系统的集总温度, 代表热载荷,上式当中的分母 代表系统热导率。

要求解参数 的不同值,我们可以通过阻尼牛顿法找到非线性问题的解,该方法可以通过在 COMSOL Multiphysics 中写残差来完成:

r(T)=T-Q/(1+T^2/100)

然后将其输入全局方程 接口,如下截图所示。

COMSOL Multiphysics中的全局方程式界面的屏幕截图,其中包含用于求解非线性方程式的残差。
用于求解非线性方程的全局方程接口。

如下图所示,我们可以针对一系列不同的 值来求解此方程。

绘制具有单自由度的非线性问题的解的图。
单自由度非线性问题的解。

为了便于说明,我们在下图中画出了 取值范围内和选定值 的残差。零交叉处的点是上图的解。

绘制不同Q值的残差的图形,它表示非线性问题中的热负荷。
不同参数 值的残差图。与零交叉的  值就是非线性方程的解。

我们还画出了相同范围 的和 值下的残差的对应导数(雅可比矩阵)。

绘制不同热负荷Q值时残差导数的图。
不同 值的残差的导数图。

我们看到,随着 值的增加,雅可比矩函数非线性增强。我们也可以(对于这种简单情况)手动写出其导数:

\frac{\partial r(T)}
{\partial T}=1+\frac{2TQ}{100(1+T^2/100)^2}

请记住,软件能够自动通过符号微分获得此导数,并在牛顿步骤中使用它。

可以看出,正是残差第二部分的分母使该表达式有些复杂(回忆下,该项可以被认为是系统的热阻)。事实证明,如果我们愿意,可以忽略该项,通过 nojac() 算子包裹分母的该项:

R(T) =(T – Q/nojac(1+T^2/100))

并修改全局方程,如下截图所示。

COMSOL Multiphysics 中的“全局方程式设置”窗口演示了如何使用nojac()运算符。
屏幕截图显示了如何使用 nojac() 算子。

结果,符号微分求解器将忽略 nojac() 算子中的所有内容。也就是说,该算子中的项对雅可比矩阵没有贡献。关于 的残差导数现在简化为:

\frac{\partial r(T)}{\partial T}=1

通过检查我们可以看到,这种简化的导数仅是 为低值时的一个很好的近似。但是求解器不能对所有的 值,都收敛到解。因此,我们通过避免获取某些项的导数(在这种情况下非常小)使问题变得更简单了,但是在某些情况下会使问题无解。

在 COMSOL Multiphysics® 中使用 nojac() 算子

我们考虑一下可以使用 nojac() 算子的其他几种方式。

如果我们将全局方程写为:

R(T) = nojac(T – Q/(1+T^2/100))

那么导数将恰好为零,并且这个问题根本无法求解,因此这种情况并无不有趣。

我们还可以尝试将 nojac() 仅应用于一个项:

R(T) = T – Q/(1+nojac(T)*T/100)

现在,我们的导数是:

\frac{\partial r(T)}

{\partial T}
=1+\frac{TQ}

{100(1+T^2/100)^2}

该导数非常接近于精确的残差,并且至少在这种情况下,即使采用雅可比矩阵公式的这种近似值,求解器将收敛于所有的 值。尽管计算成本没有下降,但这里值得注意的一点是,我们可以将 nojac() 算子应用于残差项的任何子集。

那么,到目前为止我们学到了什么?

  1. 您可以使用 nojac() 算子来忽略对雅可比矩阵产生贡献的项
  2. 忽略项将影响非线性求解器的收敛
  3. 忽略项可减少计算模型的大小

但是,在这个小例子中,最后一点并不是很明显。

减少大型非线性模型的大小

现在让我们看一个更大的三维模型。我们求解了一个边长为 1cm 的正方体上的传热问题,并在此部分上应用了一个极细 网格,从而我们获得了一个较大的模型;自由度大约为 300 万。

带有参数标记的传热问题示意图。
一个用于研究极细网格的简单传热问题的示意图。

我们还将材料特性定义为温度的函数,并使用类似于我们已经看到的材料特性,通过用户自定义的表达式来定义材料的导热系数:

(1+(T[1/K])^2/100)[W/m/K]

可以直接在物理场接口中完成此操作,如下截图所示。

固体传热界面的“设置”窗口具有手动定义的导热系数设置。
手动将导热系数定义为温度的函数。

当我们使用所有默认设置解决此问题时,该模型将需要用阻尼牛顿法进行四次迭代来求解。整个过程需要大约 135s 的计算时间,并且在一台典型的台式计算机上使用超过 12GB 的内存。在求解过程中,我们还会在日志中收到一条消息,内容为:

找到非对称矩阵。

该消息是材料属性中与温度相关项的结果。也就是说,材料属性中的非线性项使雅可比矩阵不对称,因此该模型将需要更多的内存来求解。现在让我们将整个材料属性表达式包裹在 nojac() 算子中:

nojac(1+(T[1/K])^2/100)[W/m/K]

重新运行该模型,我们看到该模型仍会收敛,需要大约 10GB 内存求解,但现在需要五次默认阻尼牛顿法迭代。也就是说,内存需求下降了,但是收敛的迭代次数却增加了。最有趣的是,执行求解时间为 125s,比以前少了一点!为什么会这样?求解器需要更多的迭代来收敛,但是每次迭代花费的时间更少,因为雅可比矩阵是对称的,需要处理的数据更少。

因此,在这种情况下,尽管需要更多的迭代才能收敛到解,但使用 nojac() 算子既可以减少运行求解时间,又可以减少所需的内存!还要注意,因为使用更新的材料特性表达式,仍然可以正确评估材料特性本身,所以我们能够收敛于相同的解,

避免非局部耦合项

再看最后一个示例:如下图所示,压碎包含可压缩气体的薄壁容器。可以使用结构力学模块中可用的公式进行建模。

包含可压缩气体并承受外部载荷的薄壁储罐模型,演示如何使用符号微分来加速模型收敛
装有可压缩气体并施加有外部压碎载荷的薄壁容器。

通过利用对称性,我们可以将模型缩减为完整模型的1/8。我们施加近似于压碎的分布载荷,以及代表内部可压缩气体的压力载荷。为了表示可压缩气体,类似于在充气超弹性密封条压缩示例中所做的,我们使用了计算变形容器体积的方法。也就是说,通过使用积分耦合算子,我们在容器的整个表面上施加均匀的压力载荷,并且该压力是基于整个容器的变形来计算的。

这种非局部耦合的作用是,容器每个部分的变形都会影响压力,而压力会影响到各处的变形,因此我们的雅可比矩阵变得非常密集。使用默认的极细网格设置求解此问题时,该模型将花费大约 12GB 的内存和 400s 的时间来求解此具有约 22000 个自由度的模型。

“面载荷设置”窗口显示修改后的压力作为对破碎罐模型的输入
屏幕截图显示了压碎容器模型中修改后的压力。

但是,通过简单的将 nojac() 算子包裹到我们所施加的压力上,我们就可以忽略非局部耦合,从而降低内存需求和求解时间。这样,我们只需要 3GB 的内存和 10s 即可收敛到相同的解!

结论

默认情况下,COMSOL 软件将始终采用精确的雅可比矩阵,因为这可以提供最大的收敛可能性。通常,我们宁愿牺牲一些时间和内存来获得尽可能可靠的解。但是,我们确实有能力和灵活性来忽略雅可比矩阵中的选定项。如果要使用此功能,我们必须显式修改材料属性,修改基本的控制方程或在模型内编写自己的变量表达式,因此这是一个有点高级的用户功能。

当然,使用此功能将近似于雅可比矩阵,这有时会减慢甚至阻止收敛,因此在这种情况下请不要使用它。但是,如果模型应用 nojac() 算子时确实收敛,收敛于完整雅可比矩阵计算相同的解,并且可能会使用更少的时间和内存,那么在构建复杂的多物理场模型时,这是一个很好的特性。

]]>
//www.denkrieger.com/blogs/accelerating-model-convergence-with-symbolic-differentiation/feed/ 4
对超弹性材料应用损伤演化定律 //www.denkrieger.com/blogs/implementing-a-damage-evolution-law-for-a-hyperelastic-material //www.denkrieger.com/blogs/implementing-a-damage-evolution-law-for-a-hyperelastic-material#respond Tue, 08 Sep 2020 03:27:22 +0000 http://cn.staging.comsol.com/blogs?p=290431 今天的特邀博主是来自Lightness by Design Björn Fallqvis,他分两部分讨论了超弹性材料的分析方法,首先通过搭接剪切试验估计超弹性材料参数,随后建立了一个损伤模型来验证材料的软化行为。本文为第二部分内容,您可以点击此处阅读第一部分内容。

损伤模型的数学背景

为了建立超弹性材料的损伤模型,我们用一个损伤变量来修改应变能密度函数 ;也就是说,应变能密度现在被定义为 。根据定义, 表示未损伤的状态; 时,材料完全断裂。可以注意到,这与习惯上统一减去损伤变量的定义不同,但却是等效的。演化定律也可以写成这样的形式,尽管符号发生了变化。

根据之前定义的演化定律(参考文献1),我们使用下列方程对损伤演化的速率形式进行模拟:

\dot{\omega} =-\beta \omega e ^{(\frac{b \omega \psi}{RT})},

其中, 是材料参数。

该方程的物理基础是阿累尼乌斯定律(Arrhenius’ law),该定律指出反应速率(在本文中是指化学交联的断裂)是一个指数,表述为:

k=Ae^{(\frac{-E_b}{RT})}

其中, 是反应速率常数, 是每个化学反应的指数前因子, 是通用气体常数, 为绝对温度, 为反应活化能(交联势阱的深度)。

如果要考虑由于施加变形而产生的额外能量,上式则可以改写为:

k=Ae^{(-\frac{E_b-b\omega\psi}{RT})} = Ae^{(-\frac{E_b}{RT})}e^{(\frac{b\omega\psi}{RT})} = \beta e ^{(\frac{b\omega\psi}{RT})}.

反应速率 是交联键断裂的速率,假设损伤率与它成正比。此外,我们推测,损伤率与材料的当前状态 成正比,材料状态指材料在某时刻能够断裂的交联键数目。以此我们推导出在本小节中定义的第一个演化定律,如图 1 所示(参考文献 2)。参数 b 可以看作是用于破坏交联键的应变能(单位浓度)的一部分。

示意图显示了交联分子的结合状态。
图1. 交联分子的结合状态。为了在加载状态下逃离势阱,断裂键所需的能量为 。图片来自参考文献 2

内部耗散 必须大于或等于零才能在热力学上有效,根据下列方程:

D_{int}=\frac{1}{2}\mathbf{S}:\mathbf{\dot{C}}-\mathbf{\dot{\psi}}=\frac{1}{2}\mathbf{S}:\mathbf{\dot{C}}-(\frac{\partial\psi}{\partial\mathbf{C}}:\mathbf{\dot{C}}+\frac{\partial\psi}{\partial\omega}\dot{\omega})=-\frac{\partial\psi}{\partial\omega}\dot{\omega}\geq0.

可知,此演化定律是有效的,但有以下限制:

在 COMSOL Multiphysics® 中模拟损伤模型

由于损伤演化定律是一阶微分方程,因此可以在 COMSOL Multiphysics® 软件中通过插入黏性域的常微分方程对象(如图 2 所示)轻松定义。将初始值 设置为 1 (无损伤)。参考温度设置为 20°C (293 K)。

COMSOL Multiphysics 中分布式 ODE 节点的设置窗口的屏幕截图。

用于为模型中的损伤演化定义域 ODE 的字段的屏幕截图。
图2.损伤演化的域 ODE 定义。

上一篇博文中所述,超弹性材料定义中使用了损伤变量“omeg”,并且 被定义为解变量,如图 3 所示。

显示 ODE 中应变能密度函数的已定义变量的屏幕截图。
图3. ODE 定义中使用的应变能密度函数的定义。

根据之前的描述进行优化设置,不同的是现在最小二乘目标选择了更多的点进行优化。同时,添加了两个新的损伤模型参数作为控制变量,如图4所示。

COMSOL Multiphysics 中优化设置的屏幕截图,包括损伤演化定律。
图4.设置优化,包括损伤演变。

在初始分析中,我们选择使用 2、6、10 和 13.5 mm 处的点。在第二次分析中,我们使用了所有点,将来自初始分析中的优化值作为起点。呈现的参数值(和结果)取自第二次分析的所有数据点。

结果:优化有损伤的超弹性模型的材料参数

优化参数和力-位移曲线

损伤模型的初始和优化材料参数,见表 1。

缩放参数 初始值 [-] 优化值 [-] 损伤参数 初始值 优化值
9.980 10.62 3.27e-2 [1/s] 4.24e-2 [1/s]
0.366 0.403 4.81e-4 [m 3 /mol] 4.12e-4 [m 3 /mol] = 0.41/M
0.260 0.203
 
最小二乘目标 [N2]
121570

该分析的力-位移曲线如图 5 所示。

显示有损伤的超弹性材料模型的力-位移曲线的图。
图5.有损伤的超弹性模型的力-位移曲线。

尽管实验数据和模型预测值之间存在一些差异,但在较大的应变下存在明显的软化,并且损伤演变描述了材料的软化行为。参数 是每个交联浓度的分数,并且对于每摩尔浓度 ,大约有 41% 的总应变能用于断裂交联键。

应变率依赖性

根据演变速率形式,演化定律捕捉到了应变率效应。为了比较,前面的分析以 130 mm/min 的末端位移速率运行,如图 6 所示。

绘制超弹性模型的变形率影响的图表。
图6. 变形率的影响。

较高的变形率意味着损伤发生的时间和机率较少。这也适用于阿累尼乌斯定律,它给出了每单位时间内发生化学反应的概率,这里是指交联分离。

滞后和材料循环

下面,我们使用表 1 中定义的材料参数进行分析。

在软材料中观察到的一个常见现象是滞后。即由于材料中的能量耗散,加载和卸载路径不重合,表现为应力-应变曲线在每个周期中的变化,并且通常在一定程度的软化(或硬化)后趋于稳定。本文提出的损伤模型捕获了滞后现象,如果我们在分析中还包括卸载,则滞后很明显。见图 7。

超弹性材料模型的滞后曲线图。
图7. 滞后曲线。卸载与加载以相同的速率发生。

为了进一步说明,我们将指定的 7.5 mm 末端位移指定为正弦波,频率为 0.25/s (即 4 秒为一个完整周期)。5 个初始周期的力-位移曲线如图 8 所示。

五个初始周期的滞后曲线图。
图8. 5 个初始周期的滞后曲线。

可以观察到明显的软化,并且加载-卸载路径不重合。根据损伤率曲线的定义方程(这里即指原始形式),最后滞后曲线没有稳定。如果我们施加一个相同频率的 6000 N 正弦力,也可以看到这一点。在图 9 中,末端位移不断增加。

绘制恒定幅度的正弦力的位移的图表。
图9.等幅正弦力的位移。

在图 10 中,材料的位移出现在时间 1、13、25 和 37s。

1 秒时材料中的位移图。
模拟结果显示材料在 13 秒时发生位移。
材料模型中 25 秒时的总位移结果图。
模拟时间为 37 秒时材料位移的可视化。

图10. 循环过程中 1、13、25 和 37s 的位移。

如果希望在循环后实现材料曲线的稳定,我们可以通过使用指数衰减函数修改损伤率方程来实现:

\dot{\omega}=
\begin{cases}
\-\beta \omega e^{(\frac{b \omega \psi}{RT})},\qquad \qquad \qquad \qquad \quad \omega > \omega_t\\ -\beta \omega e^{(\frac{b \omega \psi}{RT})}e^{({-\omega_{t,rate}|\omega-\omega_t|})}, \quad \omega \leq \omega_t
\end{cases}

其中, 是材料损伤状态的阈值,低于该阈值不应发生损伤。

系数  控制损伤率衰减到阈值以下的速度。这种形式是需要的,因为简单地在阈值以下将速率设置为零会导致不连续收敛问题。使用与图 8 相同的分析,但是 ,循环滞后曲线如图11所示。

具有不同损伤参数的五个初始循环的滞后曲线图。
图11. 5 个初始循环的滞后曲线,其中

现在可以在第二个循环中看到材料响应明显稳定。

所述损伤演化定律具有三个参数( 只能设置为 1000),并包含以下效应:

  • 滞后性
  • 单调加载期间的材料软化/破裂
  • 循环材料软化
  • 应变率相关性
  • 蠕变性

结论和最终想法

在今天的博客中,我们展示了如何结合使用 COMSOL Multiphysics 中的固体力学优化 接口,通过搭接剪切试验确定材料参数。通过直接对用户定义的应变能函数进行修改,任何基于速率的损伤定律都可以用类似的方式轻松实现。

我们还看到,用于优化的点数以及我们使用的点会影响结果。在初始值相同的情况下,对所有数据点进行优化会导致曲线拟合不佳。如前所述,每隔一个点优化的最终值被用作第二次分析中的初始值。记录力最高的数据点也包含在第二次分析中,用于略微改善拟合。对于均匀分布的点更容易优化,因此如果曲线的最小二乘拟合存在问题,可以尝试选择较少的大致均匀分布的点来获得良好的初始参数值。

由于操作简单,本文演示的损伤演化法非常具有吸引力。它建立了施加的变形(应变)率和应力,循环和单调软化以及蠕变效应之间的关系。

材料响应曲线的稳定性已被证明可以通过包括损伤演变的阈值来复制。这可以被认为是一个渗透阈值,并且交联网络已经被破坏到这样一种程度,以至于聚合物链之间没有足够的连接性来完全转移交联之间的机械载荷并破坏它们。其他变形模式控制宏观特性,例如长丝缠结和熵刚度。包含阈值主要被用在材料将被循环的应用中。对于单调加载,材料将在足够大的变形下断裂(例如本博客系列中的测试模型),两种机制之间的区别是模糊的,损伤定律可用于现象学意义。

另一个阈值定义可以是应变能密度,尽管这并不容易被用于微观结构的物理表示,并且选择阈值并不简单。

对于某些类别的材料,例如生物组织,我们还希望实现可逆的黏弹性行为。这可以通过用将超弹性参数中的等容第一不变量替换为弹性对应式,并为黏性变形指定演化定律(参考文献2)。最终,我们得到一种具有不同时间尺度的可逆和不可逆变形的材料参数。

由于演化速率表达式中存在温度变量,热效应可以包含在损伤模型中。但这主要是恒温下的蠕变应用中需要考虑的,因为材料参数也可以预期取决于此。

关于作者

Björn Fallqvist 是 Lightness by Design 公司的一名顾问,从事基于数值分析的产品开发工作。他于 2016 年获皇家理工学院博士学位,致力于开发用于捕捉生物细胞机械行为的本构模型。主要研究兴趣是材料表征领域,专长是和使用各种材料模型捕捉物理现象。

参考文献

  1. B. Fallqvist, M. Kroon, “Constitutive modelling of composite biopolymer networks”, Stockholm: Journal of Theoretical Biology, vol. 395, 2016.
  2. B. Fallqvist, M. Kroon, “A chemo-mechanical constitutive model for cross-linked actin networks and a theoretical assessment of their viscoelastic behaviour”, 2, Stockholm: Biomechanics and Modeling in Mechanobiology, vol. 12, 2013.
]]>
//www.denkrieger.com/blogs/implementing-a-damage-evolution-law-for-a-hyperelastic-material/feed/ 0
通过搭接剪切试验估计超弹性材料参数 //www.denkrieger.com/blogs/estimating-hyperelastic-material-parameters-via-a-lap-joint-shear-test //www.denkrieger.com/blogs/estimating-hyperelastic-material-parameters-via-a-lap-joint-shear-test#comments Thu, 03 Sep 2020 00:38:44 +0000 http://cn.staging.comsol.com/blogs?p=290081 今天的特邀博主是来自Lightness by Design 公司Björn Fallqvist,他讨论了超弹性材料分析的不同方法,包括搭接剪切试验和损伤模型。

本系列博文分两部分,本文为第一部分,介绍了一个简单的搭接接头剪切测试,用于确定聚合物的材料参数。第二部分文章将提出一个基于物理学的材料损伤演化规律。

背景介绍

许多软材料,尤其是橡胶和生物组织,它们的应力和应变之间的关系不是线性的,即使在小载荷下也是如此。这些聚合物材料的微观结构导致了它们的非线性行为。例如,在生物聚合物网之类的材料中,聚合物链是缠结在一起的,并且经常交联。宏观材料产生的响应取决于几种不同的机制,其中一种是由热交换引起的细丝滑动、细丝拉直产生的熵刚度和交联刚度(以及粘黏)。

聚合物类材料这种复杂的行为,导致我们经常使用的理想化线弹性材料模型是无效的,因此必须采用不同的建模方法。通常,我们选择超弹性模型来进行建模,模型中的应变能量密度函数用于表征材料的状态和相关的应力。

COMSOL中有多种超弹性函数可供选择的,无论哪种函数,分析都涉及确定至少一个材料参数。这些参数需要通过实验确定,我们之前的一篇博客文章对此进行了详细描述(参考文献1)。然而,通常不同变形状态的数据要么无法获取,要么获取成本很高。

简单的搭接剪切试验可用于确定聚合物的材料参数,接下来我们将对这种方法进行介绍。

超弹性材料建模

假设存在一个应变能量密度函数,我们可以使用此函数对超弹性材料进行建模:

\psi = \psi(\mathbf{F})

该函数是变形状态的函数,用变形梯度 表示。

通过将 与右 Cauchy-Green 张量 进行微分,可以得到第二 Piola-Kirchhoff 应力 ,然后将其转换为所需的应力状态。

\mathbf{S} = 2 \frac {\partial \psi}{\partial \mathbf{C}}.

一般来说, 可以是控制各种机制的任意数量的内部变量的函数,例如,黏弹性行为和损伤。唯一的要求是这些变量必须满足热力学普遍性规律;即,耗散能必须大于或等于零。

通常, 是一个包含许多材料参数的表达式,具体取决于模型的复杂性。在这篇文章中,我们使用了 Yeoh(参考文献2)提出的模型,它包含三个项:

\psi=c_1 (I_1-3)+c_2 (I_1-3)^2+c_3 (I_1-3)^3

其中,, 是材料参数,是右 Cauchy-Green 张量的第一主不变量 ()。

许多超弹性材料表现出不可压缩的特性。在计算上, 被分成等容和体积部分:

\psi=c_1 (\widehat{I_1}-3)+c_2 (\widehat{I_1}-3)^2+c_3 (\widehat{I_1}-3)^3+K/2(J-1)^2

的第一不变量 被其等容对应项取代。最后一项取决于体积模量 和雅可比 (即,右 Cauchy-Green 张量的第三主不变量)。为了模拟不可压缩性,为 分配一个足够高的值(通常约为剪切模量的 1000 倍)。

进行搭接剪切试验

使用放置在两个较硬的矩形条之间的样品进行搭接剪切试验。试验设置如图 1所示。

带有标签的搭接接头剪切试验示意图。
1. 搭接剪切试验。

将两个板水平拉开直到试样破裂,记录力-位移曲线。在这篇博文中,我们分析了一个黏合剂样品。

黏合性能

本文中用作示例的实验数据由 Lindhe Xtend AB 提供,在此表示感谢。Lindhe Xtend 开发了具有独特的侧向灵活性的假肢 Xtend Foot。侧向灵活性在所有表面上都具有完美的平衡性和稳定性,能让用户在户外和不平坦的地面上移动时获得更大的信心。它减少了用户对跌倒的恐惧,增强了他们自由行走的愿望,并提高了假肢使用者的生活质量。

Xtend Foot 的相关测试数据如下:

  • 黏合剂厚度:3mm
  • 试样和板的宽度:25mm
  • 板厚:5mm
  • 黏合剂试样长度:5mm
  • 测试温度:20°C
  • 位移速率:13mm/min

图 2为所记录力-位移曲线。

显示粘合剂材料的力-位移曲线的图。
2. 黏合剂的力位移曲线。

我们选择使用紫色曲线作为测试的基础。在更严格的分析中,我们可以确定一条平均曲线,但对于方法演示,一条曲线就足够了。该曲线表现出初始硬化和由于材料破裂而导致的软化。我们选择了一些点来优化,见表1。

位移 [mm] 力 [N]
2 577
4 1289
6 2230
8 3224
10 4060
12 4225
13.5 3150

1. 选定的数据点。

计算模型

几何模型

模型的几何结构是在 COMSOL Multiphysics® 软件中使用相关坐标的块几何工具构建的,见图 3。

显示搭接剪切测试模型几何的节点列表的屏幕截图。
搭接剪切试验模型几何示意图。

3. 模型的几何结构。

对这些块进行分区以便于划分网格。由于几何和载荷沿试样和板的长度方向对称,因此只需建立一半模型。

网格

如图4所示,优化方案中的网格特意进行了粗化。

搭接剪切试验模型的网格,从粗到细。
4. 模型网格。

通过扫掠建立外部板域和黏合剂域,连接到黏合剂的板域是用自由四面体网进行网格划分。因为这里我们寻找材料参数的结果是反作用力,所以粗网格是可以接受的。研究黏合剂中的详细应力/应变状态需要进行进一步的细化。

材料模型

板比黏合剂硬得多,可以认为是刚性的。在这里,我们对其施加了钢的材料特性(杨氏模量 210GPa,泊松比 0.3,密度 7850kg/m3)。Yeoh 模型的超弹性参数 , 均设置为 0.1MPa。在材料模型公式中,使用了比例因子来执行简单的优化方案。在 COMSOL Multiphysics 中,材料参数和缩放因子 ,  和  被定义为参数。

为了便于后续建立损伤模型,我们在超弹性材料定义中使用了用户定义的应变能函数,见图5。

用于定义超弹性材料的设置窗口的屏幕截图。
5. 超弹性材料定义。

变量“omeg”用于修改应变能密度,稍后我们将对其进行解释。目前,

边界条件

由于模拟了一半的试样和板,因此沿中心平面应用了对称条件,如图 6 所示。

搭接剪切试验的超弹性模型的设置和图形窗口,应用了平面外对称条件。
6. 对称条件(平面外)。

指定试样的一端为固定约束,另一端指定为与时间相关的位移的函数,如图 7 所示。

超弹性模型板端面的固定位移图像。
板端面上规定位移的设置和边界条件。

7. 板端面的边界条件。固定约束(左)和指定位移(右)。

研究类型和优化设置

由于损伤模型是基于速率形式的常微分方程建立的,因此使用瞬态研究进行求解。对于超弹性模型,稳态研究就足够了。

对现有的材料数据进行优化,需要我们定义在每个时间步长上所施加的与位移相对应的反作用力。因此,我们必须对指定的位移设置启用弱约束,并将其合并到表面上,如图 8 所示。第二个原因是我们只对几何的一半进行了建模。

显示如何为指定位移启用弱约束的屏幕截图。
显示如何在规定位移的表面上启用积分的屏幕截图。

8. 优化反作用力的定义。

接下来,我们定义一个具有全局最小二乘目标的 优化 节点,见图 9。

COMSOL Multiphysics 中优化节点设置的屏幕截图。
9. 优化设置。

由于我们使用瞬态求解器进行求解,因此必须使用图 7 中定义的变形率将表 1 中的位移转换为第一列中的时间。对纯超弹性模型的第一次分析,我们仅使用前三个点,因为下一篇博客里对软化过程需要更复杂的分析。

最后,我们定义一个瞬态研究并插入一个优化 节点,见图 10。

优化节点的设置窗口的屏幕截图,包括时间相关研究的选项。
10. 研究步骤中优化 节点的定义。

我们对三个比例因子进行了优化,它们参与对超弹性材料模型定义中材料参数的缩放作用。唯一的限制是 必须是非负的,因为它会缩放剪切模量。为了在求解过程中跟踪缩放参数的值,可以方便地定义它们的全局变量探针。这样就会把它们储存在探测表中以进一步使用。

要定义一项使用优化参数分析的研究,只需要创建一个新研究并将求解的变量值设置为之前的解,如图 11 所示。

使用优化参数值时的研究设置屏幕截图。
11. 使用优化的参数值设置分析。

结果:网格的位移和影响

变形图与所选的材料参数无关,如下图 12 所示,用于直观的显示分析结束时的状态。

搭接接头剪切试验模型的模拟结果,显示变形。
12. 分析结束时模型的变形。

如前所述,网格会影响应变状态。我们还对精细化模型进行了分析(没有损坏),如图 13 所示。

具有精细网格的搭接剪切试验模型。
13. 细化的模型网格。

图 14 显示了第四个数据点 (8 mm) 处的黏合剂域中的第一主应变。

模拟结果显示粘合剂域中未精化的第一主应变。
超弹性材料模型的粘合域中细化的第一主应变。

14. 黏合剂域中的第一主应变,未精细化(左)和精细化后(右)。

可以看出,细化模型中的应变值要高得多,未细化模型中没有明显的梯度变化。分析过程中应变的最大值如图 15 所示,显示反作用力是为了表明网格细化不会影响它的值。

粘合域的细化和未细化网格模型的最大主应变和反作用力图。
15. 黏合剂域中的最大主应变和反作用力。未细化和细化的网格结果。

结果:优化超弹性模型的材料参数

材料参数及其优化后参数的总结,如表2 所示。

缩放参数 初始值 [-] 优化值 [-]
7 6.56
0.09 0.34
0.03 -0.0072
最小二乘目标 [N2]
1.28e-14

2. 初始和优化缩放和材料参数;无损伤。

产生的力-位移曲线如图 16 所示。

显示超弹性材料模型的力-位移曲线的图。
16. 超弹性模型的力位移曲线。

可以看出,在材料软化之前,Yeoh 模型预测结果与试验数据具有极好的一致性。

敬请关注

接下来的博文中,我们将为材料提出基于物理学的损伤演化定律,该定律容易实施,并结合了材料软化(单调和循环加载)、蠕变和循环过程中滞后曲线的稳定。

敬请关注本系列博客的第 2 部分内容。

关于作者

Björn Fallqvist 是 Lightness by Design 公司的一名顾问,从事基于数值分析的产品开发工作。他于 2016 年获皇家理工学院博士学位,致力于开发本构模型以捕捉生物细胞的机械行为。他的主要专业兴趣是材料表征领域,专长是使用各种材料模型描述物理现象。

参考资料

  1. C. Kumar, “通过各种超弹性材料模型对测量数据进行拟合“, COMSOL Blog, 2015.
  2. O.H. Yeoh, “Some forms of the strain energy function for rubber”, Rubber Chemistry and Technology, 5, vol. 66, pp. 754–771, 1993.
]]>
//www.denkrieger.com/blogs/estimating-hyperelastic-material-parameters-via-a-lap-joint-shear-test/feed/ 2