两阶段Modelica媒体示例

时间:2015-10-02 13:30:11

标签: simulation modelica openmodelica

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

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

1 个答案:

答案 0 :(得分:5)

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

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

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

如果你实现自己的媒介,你也可以选择如何建模它:使用完整的多参数亥姆霍兹能量状态方程,一个更简单的状态方程,如彭 - 罗宾逊或其他立方EoS,一些多项式或样条,基于表格的方法,如TTSE或SBTL,可能还有更多选项。