我正在尝试在 OpenModelica 中开发具有单一物质(液体或蒸汽)的流动模拟。 Modelica.Media.Water 模型确实有两个阶段,但极其复杂,并且很难用完全不同的物质来重现。
我想找到一个我可以使用的两相介质的简单示例。有一个部分包 TemplateMedium 和一个部分包 PartialTwoPhaseMedium,但我没有看到任何关于如何编写可以处于两个阶段中的全新 Medium 的示例。
如果任何人都可以提供一个简单的例子,或者只是所需的最小属性和方程组的列表,那么作为起点将非常有帮助。
针对评论中的一些问题进行解答:
我刚刚开始研究这个模型,所以我试图了解媒体模型的构建方式的细节,以及模型中包含的具体内容以及必须为每个新媒体添加的内容。我使用丙烯,所以有很好的数据可用。这是 CoolProp 中包含的媒体之一,因此能够使用ExternalMedia 和 CoolProp 将非常有用,但从大量评论和错误报告来看,我相信这些还不能与 OpenModelica 一起使用。
一般来说,您的媒介模型可以用 Modelica 编写,也可以重用现有的外部库。编写良好的媒体模型需要大量工作,因此重用现有库通常是一个好主意。这是采取的方法外部媒体(开源)或 TILMedia(商业)。
如果您对开源工作流程感兴趣,ExternalMedia 与Coolprop是一个合理的决定。 OpenModelica、ExternalMedia 和 CoolProp 这三个项目都接受社区的贡献,因此也许您应该帮助改进这些项目,而不是编写自己的库。已经有很多工作正在进行,我不确定目前的状况。编写合格的错误报告(包括重现问题的步骤)也是一种非常受欢迎的贡献方式。
对于某些应用程序,直接在 Modelica 中使用 Medium 模型可能会更好。这是 Modelica.Media(显然)、HelmholtzMedia 以及来自 XRG 或 Modelon 的商业媒体库(对此并非 100% 确定)所采用的方法。还有一些更多的实现,但这些既不是开源的也不是商业的,只有信息例如会议论文。
您可以查看的示例包括来自 MSL 的 R134a 培养基或来自的代码亥姆霍兹媒体库。
另外,查看ExternalMedia 实现可能会有所帮助。
对于不能改变相的流体,有一些很好的例子附件60库.
由于你有一种可以改变相的纯物质,你的新介质应该从PartialTwoPhaseMedium
。
PartialTwoPhaseMedium 是部分的,仅定义存在哪些函数,但(大多数)不定义函数的算法。
您必须为接口中可用的每个函数编写一个算法,并且没有算法才能完全兼容。
首先,您应该至少实现一个 setState 函数,例如setState_ph 函数。
然后,至少实现一个 setSat 函数和 BaseProperties。
如果您实现自己的介质,您还可以选择如何对其进行建模:使用完整的多参数亥姆霍兹能量状态方程、更简单的状态方程(如 Peng-Robinson 或其他三次 EoS)、一些多项式或样条、基于表格诸如 TTSE 或 SBTL 之类的方法以及可能还有更多选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)