基于方程的建模与时空离散化

2020年9月24日

ComsolMultiphysics®软件的核心优势之一是您可以修改计算模型中的几乎所有表达式。必须谨慎使用此功能,但是您可以用它来做得很好。让我们以翻译的二维(2D)热模型,将一些材料特性设置为零,并观察到这类似于求解1D瞬态模型。然后,我们将看到这如何使某些类型的优化问题容易迅速地实现。

从2个空间维度到1个空间维度和1个时间维度

一个示意图显示了类似于1D瞬态模型的2D固定热模型,该模型说明了时空离散问题。
类似于1D瞬态模型的2D固定热模型的示意图。

让我们考虑一个非常简单的矩形2D传热模型。我们将解决温度的固定(时间不变)传热等式,t,在没有体积加热但有对流术语的情况下,\ Mathbf {U}, 如下:

\ rho c_p \ mathbf {u} \ nabla t + \ nabla \ cdot \ mathbf {k} \ nabla t = 0

在哪里\ rho是材料密度;C_P比热;和\ Mathbf {K}是导热率,在这种情况下是形式的对角线矩阵:

\ Mathbf {k} = \ begin {bmatrix} k_ {xx}&0 \\ 0&k_ {yy} \ end end {bmatrix}

通过扩展所有术语,以更详细的方式写出管理方程是有帮助的:

\ rho c_p \ left(u_x \ frac {\ partial t} {\ partial x} + u_y \ frac {\ partial t} {\ partial y} \ partial y} \ right) + \ frac {\ partial}(k_ {xx} \ frac {\ partial t} {\ partial x} \ right)+ \ frac {\ partial} {\ partial y} \ left(k_ {yy} \ frac {\ frac {\ partial t}} \ right)= 0

现在我们将做一些有趣的事情:我们将假设速度向量纯粹是在+y方向,所以u_x = 0,我们将设置y- 对角线导热率张量的组分为零,k_ {yy} = 0。现在,上述方程式减少为:

\ rho c_p u_y \ frac {\ partial t} {\ partial y} + \ frac {\ partial} {\ partial x} \ left(k_ {xx} \ frac {\ partial t}= 0

在热导率张量中设置一个术语为零似乎很不寻常,但是它给我们带来了有趣的好处,当我们编写1D,瞬态,传热方程而没有体积加热或对流术语时,这将变得显而易见:

\ rho c_p \ frac {\ partial t} {\ partial t} + \ frac {\ partial} {\ partial x} \ left(k_ {xx} \ frac {\ partial t}0

请注意,上面两个方程式中的第一个术语看起来几乎相同,如果正确选择速度项,则两个方程式将相同。因此,现在我们有一些有趣的东西:我们的2D固定模型似乎与1D瞬态模型相同。

实际上,方程是相同的,但是当我们以数字方式解决它们时,有些事情需要注意。首先,在2D域的底部边界上应用固定温度条件类似于瞬态1D情况的初始条件。其次,对于这样的2D模型,有一个映射的网格是有意义的(与y- 轴)和y方向上的元素数量可以将其视为固定的时间步。这与使用的时间域模型完全不同默认情况下自适应时间踏入。2D模型还将(默认情况下)包括数值稳定项这将使两者之间的结果略有不同,除非其中一个模型达到了高水平的网格和耐受性的改进。

下一个问题当然是:我们该怎么办?为了了解这是如何有用的,让我们看一下一个经典的一维传热模型,其中加热了一块材料,如下图所示。尽管它显然很简单,但工程兴趣的许多问题都减少了这种经典案例。当我们从左表面加热材料时,整个材料的全部体积逐渐变化,但不均匀,更热。还可以从左侧进行辐射冷却和一些自由对流,近似为恒定传热系数。

一个说明,显示如何将瞬态加热问题简化为1D模型。
一块材料平板的瞬时加热可以还原为一维模型。

可以通过设置2D矩形域并使用该问题来解决此问题固体和流体中的传热物理接口。在此界面中,您可以应用翻译运动子场所坚硬的功能,温度底部边界的边界条件,热通量地表到接头辐射左侧的特征,以模型对流和辐射冷却,另一个热通量施加热负荷的条件。在时间轴上具有均匀热负荷的样品结果如下所示。

1D材料平板模型和网格中瞬态加热的2D仿真结果。
2D固定模型的样品结果,代表1D平板的瞬态加热。也显示了网格。

现在假设我们要优化此加热过程。Let’s try to vary the imposed heat load over time with the objective that the temperature throughout the entire slab be as close to a target temperature as possible at the end of our simulation time, and also consider a constraint that the peak temperature never gets over a specified limit. By having a 2D version of our 1D slab, it turns out that this optimization problem is quite easy to set up. Let’s find out how!

定义优化问题

密度模型内部的功能拓扑优化分支定义用于定义随着时间的推移控制热通量的变量。此功能定义了一个约束在0到1之间的边界上的字段,代表没有加热和最大加热。该字段的离散化是线性的,这意味着在时间轴上的每个元素上的热载荷可能会变化,因此,热负载可能会在由我们的网格大小确定的时间板上变化y方向。这不是理想的 - 这意味着热负载与我们的时间步骤一样快。相反,我们希望热负载的随时间变化速度慢于我们的离散化。因此,我们需要再迈出一步,那就是引入Helmholtz过滤器。这是一个拓扑优化领域的流行想法,它在过滤设置部分。这滤波器半径需要仅大于网格尺寸,代表平滑时间。此过滤的控制变量字段的名称是dtopo1.theta并乘以入射热通量。

拓扑优化密度模型特征设置窗口的屏幕截图。
屏幕截图拓扑优化密度模型特征,沿着平板的加热侧定义,在整个轴上代表时间。

我们的目标表达式显示在下面的屏幕截图中,这是一个积分探针在顶部边界上(表示最后一次。)集成的表达式基于计算的解决方案,t, 和t_target,我们要达到的温度。通过定义一个目标,该目标是该边界上计算温度和目标温度之间的平方差的积分,我们具有一个可区分的函数,当最终温度尽可能接近目标时,它具有最小的功能。我们目标的名称是comp1.obj,我们将从优化学习步骤。

comsol多物理学中“目标探针”功能的设置窗口的屏幕截图。
屏幕截图客观探测特征,在顶部边界上定义,定义了我们最小化目标的表达式。

我们有一个约束,在优化接口,也就是说:

comp1.constr <1

这个表达,comp1.constr,通过全局变量探针,如上面的屏幕截图所示。该表达式首先为:

\ left(\ left(\ frac {t} {t_ {max}}} \ right)^{p_ {exp}}} \ right)

在加热的边界上,然后采取p_ {exp}- 根。这是p-norm。作为p_ {exp}接近无穷大,该约束将强制执行温度沿加热边界的最高温度不超过最高温度。现在,出于数值原因,p_ {exp}不能无限,并且该约束不能完全满足,但是p_ {exp}足够大,几乎满足了约束。如果p_ {exp}设置了太大,然后我们引入了一个非常非线性的约束函数,该函数会减慢收敛性以及一些可能的数值溢出问题,因此将此值视为模型中的调谐参数。

用于定义约束表达式的探针的全局变量探针设置的屏幕截图。
屏幕快照显示定义约束表达式的探针。

优化学习步骤学习分支,您将其作为一部分优化模块,允许我们引入目标,约束和控制参数。目标和约束可以是全局变量,例如上述探针。让我们看一下这种情况的设置。

设置窗口的屏幕快照,以进行优化研究步骤。
屏幕截图优化学习步骤学习分支,定义优化求解器类型,目标,设计变量和约束。

上面的屏幕截图显示了优化学习步骤学习分支。正是在此功能中,我们定义了优化求解器,目标函数,设计变量和约束。在设置的顶部,我们看到使用了SNOPT求解器。该求解器期望目标函数和约束相对于设计变量而言是可区分的。这最佳公差最大型号评估数量控制求解器将尝试寻找最佳的数量。接下来的三个部分定义了目标功能, 这控制变量和参数,和约束

有了目标函数,设计变量和定义的约束,现在只是解决模型的问题。

图绘制设计变量,过滤设计变量和温度的结果。
设计变量的图,滤波的设计变量和沿轴代表时间的温度。

在模拟的最后一次,将温度与材料平板的目标温度进行比较。
与目标温度(以黑色为黑色)相比,温度(以蓝色为蓝色),表明温度场非常接近1D域上的目标温度。

该模型包括导热率中的材料非线性,大约需要一分钟才能优化上面图中所示的解决方案,该解决方案随时间绘制了平板加热侧的温度,过滤的变量和未过滤的设计变量,以及通过平板横截面的最终温度。特别有趣的是,优化求解器找到了从一开始就导致峰加热的溶液,而热负荷逐渐降低,以免超过峰值温度的约束,然后随着温度场平衡而变为零在整个平板上朝着最佳的距离,最后持续时间增加了加热,以抵消冷却到环境的变化。因此,可以从定性的意义上解释解决方案,但是在没有优化的情况下,很难为特定情况而正确。

在这一点上,您可能会问自己这种方法的优势是什么。实际上,您也可以纯粹在时域解决整个优化问题,那么获得了什么?速度和简单。

通过重新重新安排时空,我们现在解决了一个固定优化问题,该问题要比瞬态优化问题更快。我们还可以使用内置的拓扑优化功能,包括Helmholtz滤波器,从而非常容易设置任意,受限,平滑,强迫函数随着时间的推移。那么,除了某些概念上的复杂性以外,缺点是什么?该技术将使用更多的内存。通过同时求解空间和时间,我们的系统矩阵沿时间轴的网格​​成比例更大,并且必须在模拟之前固定该网格。但是,对于这样的2D模型,即使具有非常精细的网格,内存需求也很小。

具有两个空间维度的模型的内存需求确实会变大,但仍然不高。还通过以下链接显示了这种优化2D模型的情况的示例,并包括电流物理除传热外,还可以随着时间的推移进行优化的焦耳加热。否则,它使用此处开发的相同技术。愉快的建模!

自己尝试

尝试使用时空模型随着时间的推移优化热负荷。单击下面的按钮以访问模型文件。


评论(3)

发表评论
乐动体育app
加载...
吉姆·弗雷斯(Jim Freels)
吉姆·弗雷斯(Jim Freels)
2020年9月25日

您好沃尔特,这是一篇非常有趣的文章,感谢您发布的文章。我打算仔细研究模型以充分理解。我目前有一个问题是横向速度U_Y。您说:“如果我们正确选择速度术语,则两个方程式将是相同的”,这似乎是使这项工作的关键。我在模型文件中发现平移速度等于dy/时间的常数,这两个参数似乎只是y距离除以“瞬态”的总时间。你还能做这个团结吗?如果对U_Y的选择有重要意义,有点困惑。我认为这对我来说也是一个很好的问题,即了解优化模块。

沃尔特·弗莱
沃尔特·弗莱
2020年9月28日 comsol员工

您好吉姆,它进行单位分析,您需要根据总仿真时间和域大小选择U_Y。

劳伦斯·史密斯
劳伦斯·史密斯
2020年10月10日

不错的文章,感谢您的分享。

探索comsol乐动体育赛事播报博客