首页 > 解决方案 > 在空间中离散 PDE 以与 modelica 一起使用

问题描述

我目前正在做一门名为“动态系统建模”的课程,并被赋予了在 modelica 中对具有分布式温度描述的温水箱进行建模的任务。

大部分任务进展顺利,我的小组的任务是将由于浮力效应引起的热通量引入模型。这是我们卡住的地方。

给出的方程是这样的: 给定 PDE

但是我们如何将其离散化为我们可以在 modelica 中使用的东西呢?

我们最终得到的离散化版本是这样的:

(Qd_pp_b[k+1] - Qd_pp_b[k]) / h_dz = -K_b *(T[k+1] - 2 * T[k] + T[k-1]) / h_dz^2

其中 Qd_pp_b 是左侧变量,即热通量,k 是罐的当前切片,T 是切片中的温度。

我们走在正确的道路上吗?还是完全错误?

标签: modelingmodelicaopenmodelica

解决方案


这似乎不是一个微分方程(原样),所以如果没有周围的问题,这是没有意义的。对于二阶导数,您应该始终创建辅助变量,并为每个偏导数创建一个单独的方程。我添加了参数的虚拟值和T[k]. 这是可以模拟的,这和你预期的一样吗?

model test
  constant Integer n = 10;
  Real[n] Qd_pp_b;
  Real[n] dT;
  Real[n] T;
  parameter Real K_b = 1;
equation
    for k in 1:n loop
      der(Qd_pp_b[k]) = -K_b *der(dT[k]);
      der(T[k]) = dT[k];
      T[k] = sin(time+k);
    end for;
end test;

推荐阅读