离散化空间PDE以与Modelica一起使用

时间:2019-10-13 08:56:31

标签: modeling modelica openmodelica

我目前正在上一门名为“动态系统建模”的课程,并承担了在Modelica中用分布式温度描述对暖水箱进行建模的任务。

大多数任务进展顺利,我的小组剩下的任务是将由于浮力效应而产生的热通量引入模型中。这是我们卡住的地方。

给出的等式是这样的: Given 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是层中的温度。

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

1 个答案:

答案 0 :(得分:2)

这似乎不是微分方程(按原样),所以没有周围问题就没有意义。对于二阶导数,应始终创建辅助变量,对于每个偏导数,应始终创建一个单独的方程式。我为参数添加了虚拟值,为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;
相关问题