首页 文章

两阶段Modelica Media示例

提问于
浏览
3

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

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

1 回答

  • 5

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

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

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

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

相关问题