首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个系统组件中重新声明两个媒体包

在一个系统组件中重新声明两个媒体包
EN

Stack Overflow用户
提问于 2019-05-23 21:17:55
回答 1查看 102关注 0票数 0

我是modelica的新手,在这方面我没有太多的经验,但我当然掌握了基础知识。我正在尝试建立一个微流控网络模型。该网络由两个阀门控制的两个水和油源组成。两种介质的流动在T形交界处相互作用,然后进入储罐或腔室。我不关心混合物的流体性质,因为这不是我的目的。我的问题是如何在一个系统组件中重新声明两个介质包(水和油),如T结点或一个油箱,以便模拟该系统。在我的真实模型中,这两种媒介不会相遇,因为每种媒介在不同的时间通过这两种媒介。

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

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-05-24 17:13:23

我不认为你可以在模拟过程中重新声明介质。在您的示例中(不需要混合两种流体),可以创建一个新介质,例如从Modelica.Media.Interfaces.PartialMedium扩展的名为OilWaterMixture的介质。

如果你仔细查看PartialMedium的代码,你会发现它包含了很多partial ("empty")函数,你应该在新的medium模型中填充这些函数。例如,在OilWaterMixture中,对于某个水/油混合物(由质量分数向量X给出),应扩展函数specificEnthalpy_pTX以返回水/油混合物的特定焓。这可以通过将以下模型添加到OilWaterMixture包来实现:

代码语言:javascript
复制
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中的所有分部函数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56276156

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档