Modelica模型中偏微分方程时间导数项的离散化

Modelica模型中偏微分方程时间导数项的离散化,modelica,dymola,Modelica,Dymola,我试图用Modelica来离散一个偏微分方程模型,但我被困于如何离散时间导数项 如下面的屏幕截图所示,这是热传导PDE模型的典型方法,它使用der运算符,而不是离散时间导数项。 我想做的是离散方程中的所有导数项,包括时间导数,但我不确定如何表示Q(t+Δt)-Q(t),因为我不知道Modelica中是否有一种机制允许我使用不同时间点变量的值 我的问题是: 可以对时间导数项进行离散化吗 对它没有简单的支持 一种简单的可能性是使用der(Q)=(Q(t+Δt)-Q(t))/Δt基本上给出了行的方法

我试图用Modelica来离散一个偏微分方程模型,但我被困于如何离散时间导数项
如下面的屏幕截图所示,这是热传导PDE模型的典型方法,它使用
der
运算符,而不是离散时间导数项。

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

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


对它没有简单的支持

一种简单的可能性是使用
der(Q)=(Q(t+Δt)-Q(t))/Δt基本上给出了行的方法

要使用它,您必须将等式从
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作为积分方法(或在更高级的情况下使用synchronous with solverMethod=“ExplicitEuler”)
  • 当样本(Δt,Δt)时,手动写入
    ,然后Q=pre(Q)+Δt/Δx*…