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

Mar*_*vel 3 modelica dymola

我正在尝试使用 Modelica 来离散化 PDE 模型,但我在如何离散化时间导数项方面遇到了困难。
如下图所示,它是热传导 PDE 模型的典型方法,它使用der算子而不是离散时间导数项。 在此处输入图片说明 在此处输入图片说明

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

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

在此处输入图片说明

Han*_*son 6

没有简单的支持。

一个简单的可能性是使用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*...