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