我们经常收到关于周期性或脉冲性热负荷的建模问题。也就是一个热负荷在已知时间内反复启用和停用的情况。使用COMSOL Multiphysics 中的事件 接口,我们可以轻松、准确并且高效地对这种情况进行建模。这篇文章,我们将为您介绍这种建模技术,它适用于多种类型的瞬态仿真,在这些仿真中,负荷的变化发生在已知时间内。
编者注:这篇博客于 2022 年 10 月 4 日更新,以反映更新后的建模功能。
瞬态仿真简介
首先,我们先从概念上来简单了解一下在 COMSOL Multiphysics 中求解瞬态问题时使用的隐式时间步进算法。这些算法根据用户指定的容差来选择时步。虽然这允许软件在求解中出现渐变时采取非常大的时间步进,但缺点是使用太宽的容差会跳过某些瞬态事件。
为了理解这一点,我们以一个普通微分方程为例来说明:
其中,强制函数 f(t) 是一个从 t_s 开始,在 t_e 结束的矩形单位脉冲。给定初始条件 u_0=1,我们可以用解析法或数值法在任意时间长度上求解这个问题。
如上图所示,在解析解的图中,当激励函数为零或一时,我们可以观察到解呈指数下降和上升。为了求解这个问题,我们使用默认的瞬态求解器,来看看两个不同相对容差的数值解:
相对容差为 0.2 和 0.01 时的数值解(红点),并与解析结果(灰线)进行了比较。
从上面的图中我们可以看到,非常宽松的相对容差 0.2 并不能准确描述负荷的变化。当设置比较严格的相对容差 0.01 时,得到了合理的解。我们还可以观察到,点的间距显示了求解器所使用的不同时间步进。很明显,在解变化缓慢的情况下,求解器采用了较大的时间步进,而在启用和停用热负荷时采用了较小的时间步进。
然而,如果容差设置得太宽松,当热负荷的宽度变得非常小时,求解器可能会完全跳过热负荷的变化。也就是说,如果 t_s 和 t_e 移动到相互非常接近时,对于指定的容差来说总热负荷太小。当然,我们可以通过使用更严格的容差来缓解这种情况,但还有一个更好的选择。
我们可以通过使用显式事件 来避免收紧容差,显式事件 是一种让求解器知道它应该在一个指定的时间点评估解的方法。从这个时间点向前,求解器将继续像以前一样,直到达到下一个事件。让我们看看上述问题的数值解决方案,在 t_s 和 t_e 时间段内采用显式时间,以 0.2 的相对容差进行求解,这是一个非常宽松的容差:
使用 显式事件时的数值解,即使采用非常宽松的相对容差 0.2,与解析结果相比也相当吻合。在远离事件的位置,要采取大的时间步进。
上图说明,每当启用或停用负荷时,显式事件 功能就会产生一个时间步进。宽松的相对容差允许求解器在解逐渐变化时采取大的时间步进。在事件发生后立即采取小的时间步进,以使解的变化得到良好的求解。因此,我们既能很好地解决热负荷的启停问题,又能采取大的时间步进,使整体计算成本最小。
现在,我们已经介绍了相关的概念,接下来,我们来看看如何实现这些显式事件。
一个传热的例子
我们来看一个 COMSOL Multiphysics 案例库中的例子,并稍作修改以包括周期性热负荷和事件 接口。在硅晶片激光加热例子中,激光被建模为分布式热源,在旋转的硅晶片表面来回移动。
激光热源本身沿着中心线在晶圆上来回穿越,周期为 10s。为了尽量减少加热过程中晶圆上的温度变化,我们希望在热源位于晶圆中心的时候周期性地关闭激光。
为了建立这个模型,首先我们引入一个事件接口,并在其中定义一个离散状态 变量。这个变量的名字是 ONOFF
,它的初始值是 1,如下面的截图所示。
事件接口中的 离散状态屏幕截图。
我们可以使用离散状态 变量来修改代表激光热源的施加热流,如下图所示。
使用 离散状态变量设置施加的热通量边界条件。
到目前为止,我们只是将施加的热负荷乘以一个单位常数。接下来,我们可以使用两个可以改变 ONOFF
变量的显式事件。其中第一个事件将在两秒后触发,并将 ONOFF
状态变量设置为零(停用热负荷)。它将每 5 秒重复一次。第二个事件将在 3 秒后触发,将状态变量转回1(启用热负荷),这也将每 5 秒重复一次。
显示事件设置。第一个事件的作用是停用热负荷。第二个事件在 3s 后开始,作用是将热负荷重新启用。
不必再做其他改动,但我们可能想确保在每个事件被触发之前和之后都能立即得到结果。有两个设置可以确保这一点,如下面的截图所示。首先,需要打开瞬态求解器 的设置 窗口。在输出 部分,可以启用在事件前/后存储解 选项。或者,可以将要存储的时步 下拉设置改为求解器采用的步长。
用于在事件前/后存储解的 瞬态求解器设置。
您可以将这个模拟结果与原始模型进行比较,看看整个晶圆的温度差异。在周期性热负荷下,温度的上升是比较平缓的,任何时间点的温度变化都比较小。
结束语
我们研究了使用事件 接口对周期性热负荷进行建模的问题,并介绍了为什么它能很好地结合精度和低计算量的要求。如果您想了解更多信息,请查阅我们的知识库文章求解包含时变载荷阶跃变化的模型,您还可以用事件 接口做更多的事情。
评论 (0)