两阶段Modelica Media示例

Ada*_*dam 3 simulation modelica openmodelica

我正在尝试在OpenModelica中开发一种流动的模拟,该流动具有液体或蒸汽的单一物质.Modelica.Media.Water模型确实有两个阶段,但是非常复杂,并且很难为完全不同的物质重现.我想找一个我可以使用的两相介质的简单例子.有一个部分包TemplateMedium和一个部分包PartialTwoPhaseMedium,但我没有看到任何关于如何编写一个全新的介质的例子,它可以是两个阶段中的任何一个.
如果任何人都可以提供一个简单的例子,或者只是一个最小的属性和方程组的列表,这些属性和方程式作为一个起点非常有用.

为了解决评论中的一些问题:我刚刚开始使用这个模型,所以我试图了解Media模型的构建细节,以及模型中包含的具体内容与必须添加的内容每个新媒体.我使用丙烯,所以有很好的数据.这是CoolProp中包含的媒体之一,因此能够使用ExternalMedia和CoolProp非常有用,但我相信这些还没有与OpenModelica一起使用,来自一些评论和错误报告.

mat*_*tth 5

通常,您的中型模型可以用Modelica编写,也可以重用现有的外部库.编写好的中型模型是很多工作,因此重用现有的库通常是个好主意.这是ExternalMedia(开源)或TILMedia(商业)采用的方法.如果您对开源工作流感兴趣,可将ExternalMedia与Coolprop结合使用是一个合理的决定.所有三个项目OpenModelica,ExternalMedia和CoolProp都接受社区的贡献,所以也许你应该帮助改进这些,而不是编写自己的库.已经有很多工作要做,我不确定当前的状态.编写合格的错误报告(包括重现问题的步骤)也是一种非常受欢迎的贡献方式.

对于某些应用程序,将Medium模型直接放在Modelica中可能会很好.这是Modelica.Media(显然),HelmholtzMedia以及来自XRG或Modelon的商业媒体库(不是100%确定)的方法.还有一些实现,但这些既不是开源也不是商业,只有信息是例如会议论文.您可以查看的示例包括MSL中R134a介质HelmholtzMedia库中的代码.另外,查看ExternalMedia实现可能会有所帮助.
对于不能改变相位的流体,Annex60库中有一些很好的例子.

因为你有一种可以改变相的纯物质,你的新媒体应该延伸PartialTwoPhaseMedium.PartialTwoPhaseMedium是部分的,仅定义了哪些函数,但(大多数情况下)不是函数的算法.您必须为接口中可用的每个功能编写算法,并且没有算法才能完全兼容.首先,您应该实现至少一个setState函数,例如setState_ph函数.然后,实现至少一个setSat函数和BaseProperties.

如果您实现自己的介质,您还可以选择如何对其进行建模:使用完整的多参数Helmholtz能量状态方程,一个更简单的状态方程,如Peng-Robinson或其他立方EoS,一些多项式或样条,基于表格方法和一些更多的选择.您想要最高精度还是最高速度?