在 Modelica 模型中离散化 PDE 的时间导数项
Discretizing time derivative terms of PDE in the Modelica model
我正在尝试使用 Modelica 来离散化 PDE 模型,但我对如何离散化时间导数项感到困惑。
如下图所示,它是热传导 PDE 模型的典型方法,它使用 der
算子而不是对时间导数项进行离散化。
我想做的是离散化方程中的所有导数项,包括时间导数,但我不确定如何表达 Q(t+Δt)-Q(t),因为我不知道不知道Modelica有没有机制可以让我使用不同时间点的变量值
我的问题是:
是否可以对时间导数项进行离散化?
没有简单的支持。
一个简单的可能性是使用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 来离散化 PDE 模型,但我对如何离散化时间导数项感到困惑。
如下图所示,它是热传导 PDE 模型的典型方法,它使用 der
算子而不是对时间导数项进行离散化。
我想做的是离散化方程中的所有导数项,包括时间导数,但我不确定如何表达 Q(t+Δt)-Q(t),因为我不知道不知道Modelica有没有机制可以让我使用不同时间点的变量值
我的问题是:
是否可以对时间导数项进行离散化?
没有简单的支持。
一个简单的可能性是使用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*...