通过事件接口实现恒温器

2015年2月19日

一个恒温器是一种感知系统温度并使用此信息来控制系统加热器或冷却器的设备,以使温度接近所需的设定值。尽管有许多不同类型的恒温器,但今天我们将集中在一个基于两个设定点上打开或关闭加热器的恒温器上。这被称为开关或aBang-Bang控制器,可以用事件comsol多物理学中的接口。

恒温器如何工作

让我们考虑一个类似于您在家中的恒温器。虽然有很多不同类型的恒温器,他们中的大多数都使用相同的控制方案:一种监视温度在系统内的传感器,通常距离加热器一定距离。当感应的温度降至所需的下坐标以下时,恒温器会开关加热器。随着温度上升到所需的上设定点,恒温器会关闭加热器。这被称为Bang-Bang控制器。实际上,您通常只有一个设定点,并且有一个偏移或滞后,用于定义上下设定点。

具有不同上下设定值的目的是最大程度地减少加热器状态的开关。如果上下设定点相同,则恒温器将不断循环加热器,这可能导致过早的组件故障。如果您确实想实现这样的控件,则只需要知道传感器的当前温度即可。这可以很容易地在comsol多物理学中进行建模,正如我们在此突出的那样以前的博客文章

另一方面,Bang-Bang控制器更为复杂,因为它确实需要了解系统历史记录。当温度上升到设定点以上或下方时,加热器会改变其状态。换句话说,控制器提供滞后。在comsol多物理学中,可以使用事件界面。

使用事件控制加热器的接口

当使用comsol多物理来求解时间相关模型时事件接口用于在特定点停止时间步长算法,并提供更改变量值的可能性。这些事件发生的时间可以明确或隐式指定。一个显式事件当我们知道有关系统发生变化的时间点时,应使用。我们之前曾在博客上在博客上写过有关此主题的文章对周期热负荷进行建模。一个隐式事件另一方面,发生在未知的时间点,因此需要更多的设置。让我们看一下在下面显示的热模型的上下文中如何完成的。

热系统的示意图。
正在考虑的热系统的草图。

考虑以2D平面建模的实验室芯片设备的简单热模型。一毫米厚的载玻片在一侧有一个加热器,另一侧有一个温度传感器。我们将把加热器视为底部表面一部分分布的1W热载荷,我们将假设顶部表面上有一个很小的热温度传感器。从幻灯片的顶部到周围环境也有自由的对流冷却,以热通量边界条件进行建模。该系统最初在20°C下,我们希望将传感器保持在45°C和55°C之间。

用COMSOL多物理学中的组件耦合定义传感器温度。
组件耦合用于定义变量T_S,传感器温度。

我们需要做的第一件事 - 在使用事件界面 - 如上图所示,通过集成组件耦合和变量来定义传感器点处的温度。之所以这样做的原因是在这一点上进行温度,t_s,可用事件界面。

事件界面本身与Comsol多物理学中的任何其他物理接口一样添加。它可以在数学> ODE和DAE接口分支。

离散状态接口的屏幕截图。
离散状态接口用于定义加热器的状态。最初,加热器正在打开。

首先,我们使用事件定义一组的接口离散变量,时间不连续的变量。这些适合在这里进行建模/关闭条件。这离散状态上面显示的界面定义了一个变量,加热器,这乘以施加的热负荷固体中的传热问题。该变量可以是一个或零,具体取决于系统的温度历史记录。初始条件是一种,这意味着我们正在使用加热器开始模拟。重要的是,我们在此处设置适当的初始条件。它是这个加热器根据模拟过程中的传感器温度而更改的变量。

事件接口中的两个指标状态。
指标状态在里面事件界面取决于传感器温度。

触发更改加热器可变,我们需要首先介绍两个指标状态。目的指标状态是定义将指示何时发生事件的变量。定义了两个指示变量。这向上指标变量定义为:

T_S -55 [DEGC]

随着传感器温度上升到55°C以上,从阴性到正的平稳。同样,指示器变量将从45°C下的负变量顺利进行。我们将要触发更改加热器这些指标变量更改符号,变量。

重新定性加热器变量。
加热器变量在事件界面。

我们使用隐性事件接口,因为我们不知道这些事件会在发生这些事件的时间,但是我们确实知道要在什么条件下改变加热器的状态。如上所示,两个隐式事件功能用于将加热器的状态重新定位为零或一个,具体取决于何时向上指标变量分别大于或小于零。当逻辑条件变为真时,将触发事件。一旦发生这种情况,瞬态求解器将停止并重新启动新初始化加热器可变,用于控制施加的热量,如下所示。

屏幕截图,描绘了使用加热器变量来控制施加的热量的屏幕截图。
加热器可变控制施加的热量。

在解决此模型时,我们可以对求解器设置进行一些更改,以确保我们具有良好的准确性并仅保留最重要的结果。我们将要在总计30分钟的时间内解决该模型,我们只能在求解器采取的时间步骤中存储结果。这些设置如下所示。

时间依赖性求解器的研究设置。
时间依赖性求解器的研究设置将总溶液时间从0-30分钟设置为0-30分钟,相对公差为0.001。

我们需要在设置中为时间依赖的求解器做出一些更改。这些更改可以在解决方案之前首先右键单击学习分支,选择“显示默认求解器”,然后进行下面显示的两个更改。

对默认求解器设置的修改图像。
修改默认求解器设置。事件公差将其更改为0.001,并且要存储的输出时间设置为求解器采取的步骤。

当然,与任何有限元仿真一样,我们将需要研究溶液的收敛,因为精制了网格并使求解器的公差更加紧密。代表性仿真结果在下面突出显示,并证明了如何在上下设定点之间保持传感器温度。另外,观察到求解器在每个事件后立即采取较小的时间步长,但是当解决方案逐渐变化时,较大的时间步骤。

图表说明加热器如何打开和关闭以保持设定点之间的传感器温度。
加热器打开和关闭以保持传感器温度之间的设定点之间的温度。

概括

我们在这里证明了如何使用隐式事件来停止和重新启动求解器以及控制模型的变量。这使我们能够对磁滞(例如恒温器)进行建模系统,并以最低的计算成本进行模拟。


评论(15)

发表评论
乐动体育app
加载...
Vishwas Nesarikar
Vishwas Nesarikar
2015年4月29日

嗨,沃尔特,
您可以让此型号文件可供下载吗?
谢谢
Vish

沃尔特·弗莱
沃尔特·弗莱
2015年4月30日

你好维斯瓦斯,

如果您在尝试遵循本文中的说明时遇到困难,请联系支持团队,我们可以协助。

阿杜·西里尔(Adoh Cyrille)
阿杜·西里尔(Adoh Cyrille)
2020年5月27日

嗨,沃尔特,
如果我想保持恒定温度,示例20-120摄氏度持续5分钟,然后120摄氏度为5至8 mn,我该怎么做。ttat有可能吗?

嗯
2015年6月19日

您好,我试图做类似的事情来加热组织。一切顺利,除了几个周期之后,模拟停止了一个错误,说“最后一个时间步骤没有融合”。这是在我预期的模拟结束之前很久。无论如何是否有要克服的?谢谢你。

伊恩·欣

嗯
2015年6月19日

你好,

我试图做类似的事情来加热组织。一切顺利,除了几个周期之后,模拟停止了一个错误,说“最后一个时间步骤没有融合”。这是在我预期的模拟结束之前很久。无论如何是否有要克服的?谢谢你。

伊恩·欣

沃尔特·弗莱
沃尔特·弗莱
2015年6月22日

亲爱的伊恩·欣,

如果您在尝试遵循本文中的说明时遇到困难,请联系支持团队,我们可以协助。

哈里·斯科特
哈里·斯科特
2015年6月24日

嗨,为教程欢呼。

我正在使用示例之后的明确事件实现脉冲热源。结果看起来不错……除了..我注意到Comsol在每个显式事件中都两次计算同一时间步骤。这是正常的,还是我错过了什么?

沃尔特·弗莱
沃尔特·弗莱
2015年6月24日

您好哈利,值得将这个问题和一个示例文件发送给COMSOL支持,因为否则很难发表评论。

清楚郭
清楚郭
2015年11月4日

嗨,沃尔特,

是否有可能找到从0到55 oC的加热时间?我喜欢将其用于设计加热器。

谢谢。

清楚

沙希德·艾哈迈德(Shahid Ahmed)
沙希德·艾哈迈德(Shahid Ahmed)
2016年4月12日

嗨,沃尔特,

我运行了通过事件接口实现恒温器的模拟,它可以很好地与上下温度条件一起工作,但是,如果在加热端之间需要浸泡200 s的浸泡时间,则如何将加热终止时间链接到冷却开始时间。时间和冷却开始时间。我已经尝试了使用点ODE的变量加热器,它无效。您在这方面的帮助将不胜感激。

谢谢,
沙希德

沙希德·艾哈迈德(Shahid Ahmed)
沙希德·艾哈迈德(Shahid Ahmed)
2016年4月12日

嗨,沃尔特,

我错过的另一件事是冷却过程涉及水流流过腔,而不是您示例中实现的对流空气冷却。

问候,
沙希德

Yangguang OU
Yangguang OU
2016年10月20日

嗨,沃尔特:

我同意上面的评论者之一 - 您可以在应用程序库中提供此模型吗?这真的很有帮助。

谢谢!

凯蒂·费尔克拉夫(Caty Fairclough)
凯蒂·费尔克拉夫(Caty Fairclough)
2016年10月20日

嗨,清,沙希德和杨古,

感谢您的评论以及您对此博客文章的关注!对于您的问题,我建议您与我们的支持团队联系。

在线支持中心://www.dvdachetez.com/support
电子邮件:support@comsol.com

最好的,

AntónioLopes
AntónioLopes
2020年7月13日

嗨,沃尔特,很棒的帖子。对我有很多帮助。
我想知道是否可以进行明确的事件来更改变量,例如给定仿真时间的t(t)= t+常数。我的言语可以控制事件模块创建的触发器的数量有关模拟时间吗?如果我只想在达到即时t = 2s时只想更改变量,而我不想再重复(非周期性事件或一次瞬时事件)。
或者,如果我需要,请仅重复3次或创建一个逻辑语句,以识别自变量t(time)并在上面作用?
先谢谢了。

AntónioLopes

沃尔特·弗莱
沃尔特·弗莱
2020年7月13日 comsol员工

你好安东尼奥,
是的,您可以这样做,并添加其他事件和一些逻辑。作为一些灵感,另请参阅以下帖子:
//www.dvdachetez.com/blogs/control-current-and-woltage-sources-with-the-acdc-module/
//www.dvdachetez.com/blogs/how-to-implement-a-delay-in-your-thermostat-simulation/

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