求解包含时变脉冲载荷的模型

解决方法编号: 1245
标题: 求解包含时变脉冲载荷的模型
平台:
适用于: 所有产品
版本: 所有版本
类别: 求解器
关键字:

问题描述

我正在求解一个瞬态模型,其中的载荷发生瞬时变化,但求解器似乎忽略了载荷的这些变化。如何使求解器正确识别载荷变化时间?

解决方法

背景

许多瞬态问题都通过只包含时间一阶导数的偏微分方程进行建模。这类方程的常见示例包括传热方程和化学物质输运方程,不过,任何抛物型偏微分方程都具有相似的特性:解的瞬态特性在于对载荷变化的响应呈指数衰减。软件的默认特性是假设解在时间上平滑变化。然而,如果对模型施加一个持续时间相对较短的脉冲载荷,除非使用非常严格的求解器容差,否则软件可能会跳过它。

另一方面,如果模型涉及二阶时间导数,比如瞬态电磁波公式、瞬态压力声学公式以及瞬态结构问题,那么解场将呈波型,知识库 1244:求解载荷呈阶跃变化的波型问题对此进行了说明。

解决办法

对脉冲载荷建模的正确方法不是依赖于收紧求解器容差,而是告知求解器载荷发生这种变化的时间。您可以通过事件接口完成该操作。

此接口位于“物理场”列表中:数学 > 常微分和微分代数方程接口 > 事件事件接口包含四个特征:离散状态指示器状态显式事件隐式事件。事件被触发时,默认情况下,它将根据之前的解和新载荷对所有变量进行一致初始化。如果您希望一些(或所有)离散状态、全局变量或场变量发生突变,可以选择将其重新初始化为不同的值。

周期性脉冲热载荷和显式事件

举例来说,在对脉冲热载荷进行建模时,如果您知道载荷变化的时间,则应使用显式事件特征。该特征通常与离散状态特征结合使用,后者用于修改边界条件。您还可以指定事件周期,对定期重复的载荷变化进行建模。如果已施加重复的脉冲热载荷,可以使用两个显式事件:一个在打开时间触发,另一个在关闭时间触发。比如一个脉冲热载荷,持续一秒后关闭,每三秒重复一次。这需要在热载荷打开时触发一个显式事件,关闭时触发另一个事件。这些事件应该每三秒重复一次,并应修改热载荷。热载荷的修改可以通过离散状态特征完成,如下面的屏幕截图所示。您可以通过本页底部的链接下载实现这些特征的样本文件。

离散状态接口

离散状态接口定义一个可在事件触发时发生变化的状态变量。

修改热载荷

离散状态可用于修改热载荷。

触发事件

显式事件重新初始化离散状态以打开载荷。

修改热载荷

显式事件重新初始化离散状态以关闭载荷。

不含事件的周期性脉冲热载荷

如果载荷的脉冲速度相对于仿真时间跨度来说非常快,可以考虑将这个脉冲热载荷近似为循环平均恒定热载荷。例如,如果您要模拟 10W 载荷引起的加热,该载荷持续 100 毫秒,关闭 400 毫秒,并且总仿真时间比脉冲周期长许多倍,那么很可能您不需要显式模拟每个脉冲引起的温度升降。而是用每个周期的载荷总持续时间(100 毫秒)除以总周期时间(本例中为 500 毫秒),得到 2W 循环平均热载荷。这种方法的求解速度要快得多,特别适用于快脉冲,如果您不需要准确捕捉每个脉冲引起的温升,则这种方法尤其适用。

随时间变化的循环平均恒定热载荷(黑线)可以很好地近似快速脉冲载荷(红线)的影响。

条件式脉冲热载荷和隐式事件

当模型中某个未知时间发生的条件(例如在恒温控制情况下)使载荷发生隐式变化时,应使用隐式事件特征。该特征必须与指示器状态特征结合使用,后者定义指示器变量。指示器状态变量用于在指示器状态变量更改符号时,以及隐式事件条件从 false 变为 true 时触发隐式事件。

例如,假设一个模型最初为 20℃,随后被加热至平均温度超过 95℃。在这个时间点,应关闭加热器。如果平均温度降至 90℃ 以下,则应重新打开加热器。如上例所示,离散状态用于控制热载荷,但在这种情况下,初始值设置非常重要。在本例中,其初始设置必须为 1,表示加热器处于打开状态,并将由触发的隐式事件修改。

离散状态接口

离散状态最初设为 1。

为了监视模型中域的平均温度,可以使用平均组件耦合算子(如知识库 913:计算时间和空间积分中所述)以及用于存储平均温度的变量,如下面的屏幕截图所示。

定义变量

定义组件耦合算子和变量。

平均温度变量在指示器状态特征中用于定义两个指示器状态,它们可以触发隐式事件。第一个指示器状态定义 TooHot = AverageTemp-95[degC],第二个定义 TooCold = AverageTemp-90[degC]。请记住,仅当指示器状态更改符号时,才可能触发隐式事件。

定义指示器状态

定义两个指示器状态。

这两个指示器状态在两个不同的隐式事件特征中使用,第一个触发条件为 TooHot>0,当平均温度高于 95℃ 时,状态从 false 变为 true。触发此事件时,ONOFF 离散状态设为零,关闭热载荷。第二个条件在 TooCold<0 条件下触发,当平均温度降至 90℃ 以下时,状态从 false 变为 true,并将 ONOFF 设为 1,重新打开载荷。

隐式事件接口

两个隐式事件用于实现恒温控制。

求解器触发“隐式事件”的精度由“事件容差”控制,如下面的屏幕截图所示。如果您观察到事件条件过高或过低,请减小该值,例如将其改为 0.001。您可以通过下方链接下载实现这些特征的样本文件。

指定事件容差

更改事件容差的位置。

使用事件时的求解器选项

默认情况下,软件仅在“瞬态研究步骤”设置中指定的时间步保存结果。您可能还希望在触发任何显式或隐式事件前后立即存储解。这可以通过修改“瞬态求解器”设置来完成。在“输出”栏中,启用在事件前/后存储解,如下面的屏幕截图所示。

存储解

启用在事件前后存储解的求解器设置。

另请参见:

知识库 1255:减少模型中存储的数据量

知识库 1254:控制瞬态求解器的时间步长

知识库 1240:手动设置变量的缩放比例 知识库 1127:提高非线性瞬态模型的收敛性

相关文件

pulsed_heat_load.mph 748 KB
thermstat_controlled_load.mph 804 KB

免责声明

COMSOL 尽一切合理的努力验证您在此页面上查看的信息。本页面提供的资源和文档仅供参考,COMSOL 对其有效性不作任何明示或暗示的声明。COMSOL 对所披露数据的准确性不承担任何法律责任。本文档中引用的任何商标均为其各自所有者的财产。有关完整的商标详细信息,请参阅产品手册。