3

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

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

4

1 回答 1

5

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

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

由于您有一种可以改变相的纯物质,因此您的新介质应从PartialTwoPhaseMedium. PartialTwoPhaseMedium 是部分的,仅定义存在哪些函数,但(大部分)不定义函数的算法。您必须为接口中可用且没有算法的每个函数编写算法才能完全兼容。首先,您应该至少实现一个 setState 函数,例如 setState_ph 函数。然后稍后,实现至少一个 setSat 函数和 BaseProperties。

如果您实现自己的介质,您还可以选择如何对其建模:使用完整的多参数亥姆霍兹能量状态方程、更简单的状态方程(如 Peng-Robinson 或其他三次 EoS)、一些多项式或样条曲线、基于表格TTSE 或 SBTL 等方法,可能还有更多选项。

于 2015-10-02T14:03:48.697 回答