微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Dymola 的命令窗口中使用函数?

如何解决如何在 Dymola 的命令窗口中使用函数?

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

enter image description here

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

Modelica.Media.Water.IF97_Utilities.h_pT(1e6,800,1)
Failed to expand Modelica.Media.Water.IF97_Utilities.h_props_pT(
  1000000.0,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,1).

enter image description here

enter image description here

解决方法

问题是你给函数一个无效的输入。根据您提供的屏幕截图和日志,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

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

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; - 特别是使用媒体功能的模型。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。