我对Modelica还是陌生的,但我没有太多经验,但是我当然有基本知识。我正在尝试为微流体网络建模。该网络由两个水源和油源组成,由两个阀门控制。两种介质的流在一个交汇处相互作用,然后进入一个罐或腔室。我不在乎混合物的流体性质,因为这不是我的目的。我的问题是如何在一个系统组件(如Tjunction或一个水箱)中重新声明两个中等包装(水和油),以模拟该系统。在我的真实模型中,这两种介质不相遇,因为每种介质在不同的时间通过通道。
我在此消息上附加了模型。这是链接。 https://www.dropbox.com/s/yq6lg9la8z211uc/twomediumsv2.zip?dl=0
感谢您的帮助。
答案 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;
质量分数向量X
在PartialMedium
中定义,在OilWaterMixture
中必须定义它具有两个元素。
同样,由于您实际上将不使用混合属性,而仅使用质量分数矢量{0,1}
或{1,0}
,因此简单的线性混合方程式就足够了。
当您在各个组件中使用OilWaterMixture
时,错误日志将告诉您它们需要哪种介质功能。因此,您可能不需要扩展PartialMedium
中的所有部分函数。