问题描述
如何模拟在特定时间大小发生改变的载荷?
我正在求解一个瞬态模型,其中的载荷发生瞬时变化,但求解器似乎忽略了载荷的这些变化。如何使求解器正确识别载荷变化时间?
解决方法
背景
许多瞬态问题都通过只包含时间一阶导数的偏微分方程进行建模。这类方程的常见示例包括传热方程和化学物质传递方程,不过,任何抛物型偏微分方程都具有相似的特性:解的瞬态特性在于对载荷变化的响应呈指数衰减。软件的默认行为是假设解和外加载荷随时间平滑变化。但是,如果外加载荷瞬间发生变化,则应使用事件接口,以便软件能够准确高效地处理这些变化。
另一方面,如果模型涉及二阶时间导数,比如瞬态电磁波公式、瞬态压力声学公式以及瞬态结构问题,那么解场将呈波型,知识库 1244:求解载荷呈阶跃变化的波型问题对此进行了说明。
解决办法
首先,将事件接口添加到模型中。此接口位于“物理场”列表中:数学 > 常微分和微分代数方程接口 > 事件。
对于模拟不断变化的载荷,事件接口可以提供四种不同类型的特征:离散状态、指示器状态、显式事件和隐式事件。事件被触发时,默认情况下,它将根据之前的解和新载荷对所有变量进行一致初始化。如果您希望一些(或所有)离散状态、全局变量或场变量发生突变,可以选择将其重新初始化为不同的值。
周期性脉冲载荷和显式事件
举例来说,在对脉冲载荷进行建模时,如果您知道载荷变化的时间,则应使用显式事件特征。该特征通常与离散状态特征结合使用,后者用于修改边界条件。您还可以指定事件周期,对定期重复的载荷变化进行建模。如果已施加重复的脉冲载荷,可以使用两个显式事件:一个在打开时间触发,另一个在关闭时间触发。
比如一个脉冲热载荷,持续一秒后关闭,该循环每三秒重复一次。这需要在热载荷打开时触发一个显式事件,关闭时触发另一个事件。这些事件应该每三秒重复一次,并应修改热载荷。热载荷的修改可以通过离散状态特征完成,如下面的屏幕截图所示。您可以通过本页底部的链接下载实现这些特征的样本文件。
离散状态接口定义一个可在事件触发时发生变化的状态变量。
离散状态可用于修改热载荷。
显式事件重新初始化离散状态以打开载荷。
显式事件重新初始化离散状态以关闭载荷。
不含事件的周期性脉冲载荷
如果载荷的脉冲速度相对于仿真时间跨度来说非常快,可以考虑将这个脉冲载荷近似为循环平均恒定载荷。
例如,如果您要模拟 10W 载荷引起的加热,该载荷持续 100 毫秒,关闭 400 毫秒,并且总仿真时间比脉冲周期长许多倍,那么很可能您不需要显式模拟每个脉冲引起的温度升降。而是用每个周期的载荷总持续时间(100 毫秒)除以总周期时间(本例中为 500 毫秒),得到 2W 循环平均热载荷。这种方法的求解速度要快得多,特别适用于快脉冲,如果您不需要准确捕捉每个脉冲引起的温升,则这种方法尤其适用。
随时间变化的循环平均恒定热载荷(黑线)可以很好地近似快速脉冲载荷(红线)的影响。
条件式脉冲载荷和隐式事件
当模型中某个未知时间发生的条件(例如在 bang-bang 或恒温控制情况下)使载荷发生隐式变化时,应使用隐式事件特征。该特征必须与指示器状态特征结合使用,后者定义指示器变量。指示器状态变量用于在指示器状态变量更改符号时,以及隐式事件条件从 false 变为 true 时触发隐式事件。
例如,假设一个模型最初为 20°C,随后被加热至平均温度超过 95°C。在这个时间点,应关闭加热器。如果平均温度降至 90°C 以下,则应重新打开加热器。如上例所示,离散状态用于控制热载荷,但在这种情况下,初始值设置非常重要。在本例中,其初始设置必须为 1,表示加热器处于打开状态,并将由触发的隐式事件修改。
离散状态最初设置为 1。
为了监视模型中域的平均温度,可以使用平均组件耦合算子(如知识库 913:计算时间和空间积分中所述)以及用于存储平均温度的变量,如下面的屏幕截图所示。
定义组件耦合算子和变量。
本例中被监视的解变量是平均温度变量,在指示器状态特征中用于定义两个可以触发隐式事件的指示器状态。第一个指示器状态定义 TooHot = AverageTemp-95[degC]
,第二个定义 TooCold = AverageTemp-90[degC]
。请记住,仅当指示器状态更改符号时,才可能触发隐式事件。
定义两个指示器状态。
这两个指示器状态在两个不同的隐式事件特征中使用,第一个触发条件为 TooHot>0
,当平均温度高于 95°C 时,状态从 false 变为 true。触发此事件时,ONOFF
离散状态设为零,关闭热载荷。第二个条件在 TooCold<0
条件下触发,当平均温度降至 90°C 以下时,状态从 false 变为 true,并将 ONOFF
设为 1,重新打开载荷。
两个隐式事件用于实现恒温控制。
求解器触发“隐式事件”的精度由“事件容差”控制,如下面的屏幕截图所示。如果您观察到事件条件过高或过低,请减小该值,例如将其改为 0.001
。您可以通过下方链接下载实现这些特征的样本文件。
更改事件容差的位置。
使用事件时的求解器选项
默认情况下,软件仅在“瞬态研究步骤”设置中指定的时步保存结果。您可能还希望在触发任何显式或隐式事件前后立即存储解。这可以通过修改“瞬态求解器”设置来完成。在“输出”栏中,启用在事件前/后存储解,如下面的屏幕截图所示。
启用在事件前后存储解的求解器设置。
另请参见:
相关文件
pulsed_heat_load.mph | 748 KB |
thermstat_controlled_load.mph | 804 KB |
COMSOL 尽一切合理的努力验证您在此页面上查看的信息。本页面提供的资源和文档仅供参考,COMSOL 对其有效性不作任何明示或暗示的声明。COMSOL 对所披露数据的准确性不承担任何法律责任。本文档中引用的任何商标均为其各自所有者的财产。有关完整的商标详细信息,请参阅产品手册。