fluid - 在一个系统组件中重新声明两个中包
问题描述
我是modelica的新手,我没有太多的经验,但我当然掌握了基础知识。我正在尝试对微流体网络进行建模。该网络由两个阀门控制的水和油两个来源组成。两种介质的流动在 T 形接头处相互作用,然后进入罐或腔室。我不关心混合物的流动性,因为这不是我的目的。我的问题是如何在一个系统组件(例如 Tjunction 或油箱)中重新声明两个中型包装(水和油)以模拟系统。在我的真实模型中,两种介质不会相遇,因为每种介质在不同的时间通过通道。
我用这条消息附加了模型。这是链接。 https://www.dropbox.com/s/yq6lg9la8z211uc/twomediumsv2.zip?dl=0
谢谢您的帮助 。
解决方案
我认为您不能在模拟期间重新声明媒介。在您的情况下(您不需要混合两种流体),您可以创建一个新的介质,例如称为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
.
推荐阅读
- azure - azure 中的证书( *.p12 , *.cert ) - webjob
- netsuite - 从销售订单到项目履行错误的转换
- python - 什么会导致 /group 路由上的无限重定向?
- javascript - 将php数组转换为javascript数组
- javascript - 向选择的下拉菜单添加手动输入选项
- c++ - 将数组动态分配到带有指针参数的函数中
- ruby-on-rails - Rails - to_param 将斜杠更改为“%2F”,可以覆盖它吗?
- python - 将 settings.py 数据分离出来
- sh - 如何使用 grep --include 多文件扩展名制作脚本
- postgresql - PostgreSQL 事务使用查询结果插入和查询另一个表,然后返回原始查询结果