通常,您的中型模型可以用 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 等方法,可能还有更多选项。