我正在尝试使用 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 - 在 Modelica 模型中离散化 PDE 的时间导数项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65793866/