modelica - 在 Modelica 模型中离散化 PDE 的时间导数项

标签 modelica dymola

我正在尝试使用 Modelica 来离散化 PDE 模型,但我对如何离散化时间导数项感到困惑。
如下图所示,它是热传导 PDE 模型的典型方法,它使用 der 算子而不是对时间导数项进行离散化。 enter image description here enter image description here

我想做的是离散化方程中的所有导数项,包括时间导数,但我不确定如何表达 Q(t+Δt)-Q(t),因为我不知道如果 Modelica 中有一种机制允许我使用不同时间点的变量值。

我的问题是:
是否可以对时间导数项进行离散化?

enter image description here

最佳答案

没有简单的支持。

一个简单的可能性是使用 der(Q)=(Q(t+Δt)-Q(t))/Δt; 这基本上给出了行的方法,https://en.wikipedia.org/wiki/Method_of_lines

要使用它,您必须重写 Q(t+Δt)-Q(t)=-uΔt/Δx(Q(t,i+1)-Q(t,i))(Q(t+Δt)-Q(t))/Δt=-u(Q(t,i+1)-Q(t,i))//Δx,并将左侧替换为 der(Q) 并在 x 方向上使用正常离散化。

如果您真的希望它像文中那样完全离散化:

  • 按照上述操作并使用具有特定步长的 Euler 作为积分方法(或者在更高级的情况下使用与 solverMethod="ExplicitEuler"同步)。
  • 手动编写when sample(Δt,Δt) then Q=pre(Q)+Δt/Δx*...

关于modelica - 在 Modelica 模型中离散化 PDE 的时间导数项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65793866/

相关文章:

modelica - 如何拥有可更换型的因果连接器?

未在此范围内声明的 Modelica 变量

modelica - Dymola 和 OpenModelica 生成的可执行文件之间的差异

arrays - 如何将模拟结果的多个变量导出到csv?

Modelica:阶跃函数的初始条件

modelica - 理解 dymola 错误消息的问题

real-time - Modelica 模拟期间等待或暂停

modelica - 在翻译时确定 Modelica 模型中特定组件的数量(使用 Dymola)

modelica - 在 Modelica 中为连接器分配特定的连接样式

modelica - 如何在 Modelica 中存储和插入多维、可变大小的数组?