Дискретизация производных по времени от PDE в модели Modelica

Я пытаюсь использовать Modelica для дискретизации модели PDE, но я застрял на том, как дискретизировать члены производной по времени.
Как показано на следующем снимке экрана, это типичный метод для модели PDE теплопроводности, в которой используется оператор der вместо дискретизации членов производной по времени. введите здесь описание изображения  введите описание изображения здесь

Я пытаюсь дискретизировать все производные члены в уравнении, включая производную по времени, но я не уверен, как выразить Q (t + Δt) -Q (t), потому что я не знаю, есть ли механизм в Modelica, который позволяет мне использовать значения переменной в разные моменты времени.

Мой вопрос:
Можно ли выполнить дискретизацию с точки зрения производных по времени?

введите описание изображения здесь


person Jack    schedule 19.01.2021    source источник


Ответы (1)


Для него нет простой поддержки.

Простая возможность - использовать 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.

Если вы действительно хотите, чтобы это было точно дискретизировано, как в тексте:

  • Сделайте то же, что и выше, и используйте Эйлера с конкретным размером шага в качестве метода интеграции (или в более сложных случаях используйте синхронный с solverMethod = ExplicitEuler).
  • Напишите вручную when sample(Δt,Δt) then Q=pre(Q)+Δt/Δx*...
person Hans Olsson    schedule 19.01.2021