在一个系统组件中重新声明两个中型软件包

时间:2019-05-23 13:17:55

标签: fluid modelica openmodelica

我对Modelica还是陌生的,但我没有太多经验,但是我当然有基本知识。我正在尝试为微流体网络建模。该网络由两个水源和油源组成,由两个阀门控制。两种介质的流在一个交汇处相互作用,然后进入一个罐或腔室。我不在乎混合物的流体性质,因为这不是我的目的。我的问题是如何在一个系统组件(如Tjunction或一个水箱)中重新声明两个中等包装(水和油),以模拟该系统。在我的真实模型中,这两种介质不相遇,因为每种介质在不同的时间通过通道。

我在此消息上附加了模型。这是链接。 https://www.dropbox.com/s/yq6lg9la8z211uc/twomediumsv2.zip?dl=0

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我认为您无法在仿真过程中重新声明媒体。在您的情况下(不需要两种流体的混合),您可以创建一种新介质,例如从OilWaterMixture开始的Modelica.Media.Interfaces.PartialMedium

如果查看PartialMedium的代码,您会发现它包含许多partial(“空”)函数,应在新的中型模型中填写这些函数。例如,在OilWaterMixture中,您应该扩展函数specificEnthalpy_pTX以返回水/油混合物对特定水/油混合物的比焓(由质量分数矢量X给出) )。这可以通过将以下模型添加到OilWaterMixture包中来完成:

redeclare function extends specificEnthalpy_pTX "Return specific enthalpy"
  Oil = Modelica.Media.Incompressible.Examples.Essotherm650;
  Water = Modelica.Media.Water.StandardWater;
algorithm 
  h_oil := Oil.h_pT(p,T);
  h_water := Water.specificEnthalpy_pT(p,T);
  h := X[0]*h_oil + X[1]*h_water;
end specificEnthalpy_pTX;

质量分数向量XPartialMedium中定义,在OilWaterMixture中必须定义它具有两个元素。

同样,由于您实际上将不使用混合属性,而仅使用质量分数矢量{0,1}{1,0},因此简单的线性混合方程式就足够了。

当您在各个组件中使用OilWaterMixture时,错误日志将告诉您它们需要哪种介质功能。因此,您可能不需要扩展PartialMedium中的所有部分函数。