在 Comsol Multiphysics 中,有没有办法在解决方案中发生某些事情时更改参数值?

计算科学 康索尔
2021-12-21 06:58:28

我开始学习 Comsol Multiphysics 作为我硕士学位建模课程的一部分。目前,我们正在对带有火花隙的电路进行建模,这给我带来了一些问题。

我正在使用定义了一些全局方程的 0D 域,并且我想将火花隙建模为具有非常高电阻(10^8 欧姆)的电阻器,除非电阻器两端的电压超过击穿电压 U_break - 发生这种情况时,我想使用 1 kOhm 的值作为火花隙的电阻 1 ms,然后返回高值。

我可以在不切换电阻的情况下运行模拟,第一次找到电压超过 U_break 的位置,下一次运行模拟时只需手动输入开关点 - 但我想对一个改变方式的变量进行参数扫描建立电压需要很长时间。

在 Matlab 中,您可以使用“事件”函数,只要满足条件就会导致某些事情发生(通常只是终止集成,但您也可以做其他事情)。是否可以在 Comsol Multiphysics 中做类似的事情?如果是这样,怎么做?

1个回答

袖手旁观,这应该是可能的。COMSOL 中提供了事件处理功能。在达到某个电压时通过重新初始化来更改参数值应该不是问题。有一个使用事件的示例模型演示了如何整合身体的温度。使用显式事件将积分定期重置为零。这和你的物理学不同,但原理是一样的。我建议您联系 support@comsol.com 并询问型号 id 14191。

在特定时间后将值改回来有点困难,但应该可以通过一个额外的方程来实现,该方程将时间和事件发生后的积分整合在一起,否则为零(这也需要重新初始化)。

问候 Niklas Rom(COMSOL 员工)