我是modelica的新手,在这方面我没有太多的经验,但我当然掌握了基础知识。我正在尝试建立一个微流控网络模型。该网络由两个阀门控制的两个水和油源组成。两种介质的流动在T形交界处相互作用,然后进入储罐或腔室。我不关心混合物的流体性质,因为这不是我的目的。我的问题是如何在一个系统组件中重新声明两个介质包(水和油),如T结点或一个油箱,以便模拟该系统。在我的真实模型中,这两种媒介不会相遇,因为每种媒介在不同的时间通过这两种媒介。
我将此消息附加到模型中。这是链接。https://www.dropbox.com/s/yq6lg9la8z211uc/twomediumsv2.zip?dl=0
谢谢你的帮助。
发布于 2019-05-24 17:13:23
我不认为你可以在模拟过程中重新声明介质。在您的示例中(不需要混合两种流体),可以创建一个新介质,例如从Modelica.Media.Interfaces.PartialMedium扩展的名为OilWaterMixture的介质。
如果你仔细查看PartialMedium的代码,你会发现它包含了很多partial ("empty")函数,你应该在新的medium模型中填充这些函数。例如,在OilWaterMixture中,对于某个水/油混合物(由质量分数向量X给出),应扩展函数specificEnthalpy_pTX以返回水/油混合物的特定焓。这可以通过将以下模型添加到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中的所有分部函数。
https://stackoverflow.com/questions/56276156
复制相似问题