如何使用Dymola命令window中的函数?

How to use functions in the command window of Dymola?

我正在使用Dymola,并尝试在命令window中使用Modelica标准库提供的功能,但似乎无法使用它们,而且我无法声明变量也属于特定类型。我想知道我可以在 Dymola 的命令 window 中使用的命令是否存在某种限制。我应该在哪里找到所有允许的命令?

我尝试使用Modelica.Media中的一些函数,似乎输入变量超出范围,但我尝试了很多次和不同的单位系统。我发现我不能在命令window中声明压力类型的变量,但是Modelica.Media.Water.IF97_Utilities.h_pT()要求我需要提供pressureenthalpy类型的变量,这是我不能在命令 window?

中使用此功能的原因吗
Modelica.Media.Water.IF97_Utilities.h_pT(1e6,800,1)
Failed to expand Modelica.Media.Water.IF97_Utilities.h_props_pT(
  1000000.0, 
  800, 
  Modelica.Media.Common.IF97BaseTwoPhase(
    phase = 1, 
    region = 1, 
    p = 1000000.0, 
    T = 800.0, 
    h = 9.577648835649013E+20, 
    R = 461.526, 
    cp = 1.8074392528071426E+20, 
    cv = -3.7247229288028774E+18, 
    rho = 5.195917767496603E-13, 
    s = 1.2052984524009106E+18, 
    pt = 645518.9415389205, 
    pd = 6.693617079374418E+18, 
    vt = 357209983199.2206, 
    vp = -553368.7088215105, 
    x = 0.0, 
    dpT = 645518.9415389205
  )).
Failed to expand Modelica.Media.Water.IF97_Utilities.h_pT(1000000.0, 800, 1).

问题是您给函数的输入无效。根据您提供的屏幕截图和日志,Dymola 似乎没有为此提供错误消息。我在 OpenModelica 中尝试过并得到:

Modelica.Media.Water.IF97_Utilities.h_pT(100e5, 500e3)
[Modelica 4.0.0/Media/Water/IF97_Utilities.mo:2245:9-2246:77] Error: assert triggered: IF97 medium function g5: input temperature (= 500000 K) is higher than limit of 2273.15K in region 5

通过使用限制内的值,它 returns 一个值:

Modelica.Media.Water.IF97_Utilities.h_pT(100e5, 1e3)

假设输入有效,似乎存在与在 Dymola 中以交互方式评估某些媒体功能特别相关的问题(因为它们不应在模型中评估)。它将在 Dymola 2022x 中得到纠正。

临时解决方法是先设置标志 Advanced.SemiLinear = false;,然后:

Modelica.Media.Water.IF97_Utilities.h_pT(1e6,800,1)
 = 9.577648835649013E+20

(我不确定该公式在该地区的有效性如何。)

但请记住在翻译和模拟任何模型之前设置 Advanced.SemiLinear = true; - 特别是使用媒体功能的模型。