Modelica.Media.R134a错误

Modelica.Media.R134a错误,modelica,dymola,fluid-dynamics,Modelica,Dymola,Fluid Dynamics,Modelica标准库3.2.1中包含了制冷剂R134a的型号,但它似乎不能与Modelica.Fluid一起正常工作。在一个带有一个dynamicpe的简单示例中,它会导致以下错误: A calculation of two-phase properties with input of pressure and temperature is not possible. Please use setState_dTX or setState_phX instead. The stack of f

Modelica标准库3.2.1中包含了制冷剂R134a的型号,但它似乎不能与Modelica.Fluid一起正常工作。在一个带有一个
dynamicpe
的简单示例中,它会导致以下错误:

A calculation of two-phase properties with input of pressure and temperature is not possible.
Please use setState_dTX or setState_phX instead.
The stack of functions is:
setState_pTX_Unique15
setState_pTX_Unique15(101325, 293.15, {1.0}, 0)
use\T\u start
为false。这里有什么问题?怎么解决呢?

短暂性脑缺血发作

更新:

所选的状态是h和p,应该是这样。pTX调用的参数似乎是所选介质的默认值


PartialStaggeredFlowModel
使用
中等密度pTX
中等状态pTX
,但将它们更改为相应的phX函数并不能解决问题。

这里的问题是您对热力学状态的选择。如信息所示,不能使用压力和温度作为热力学状态的两相介质

作为一个简单的例子,考虑水/冰。如果你测量温度,因为它是冻结,你会看到,当混合物是“泥”(包含液体和固体),温度将保持不变。所以知道温度不足以知道系统的真实(热力学)状态,因为我们不能用这些信息计算液体和固体的相对分数。解决方案是使用压力和焓(如错误信息所示)作为热力学状态


我对
Modelica.Media
Modelica.Fluid
库了解不够,无法告诉您如何更改热力学状态的选择。但我怀疑你会在其中一个库的文档中找到答案。

这里的问题是你对热力学状态的选择。如信息所示,不能使用压力和温度作为热力学状态的两相介质

作为一个简单的例子,考虑水/冰。如果你测量温度,因为它是冻结,你会看到,当混合物是“泥”(包含液体和固体),温度将保持不变。所以知道温度不足以知道系统的真实(热力学)状态,因为我们不能用这些信息计算液体和固体的相对分数。解决方案是使用压力和焓(如错误信息所示)作为热力学状态


我对
Modelica.Media
Modelica.Fluid
库了解不够,无法告诉您如何更改热力学状态的选择。但我怀疑您会在其中一个库的文档中找到答案。

解决方案已经在我的更新中
PartialStaggeredFlowModel
使用
Medium.density\u pTX
Medium.setState\u pTX
。用
Medium.density_phX
Medium.setState_phX
替换它们可以避免pT问题。一开始它不起作用的原因是我忘了更改对未修改类的引用

其他Modelica.Fluid-components也存在同样的问题,例如,泵型号基于
PartialPump
,也使用
介质密度\u pTX


感谢您的贡献。

解决方案已在我的更新中
PartialStaggeredFlowModel
使用
Medium.density\u pTX
Medium.setState\u pTX
。用
Medium.density_phX
Medium.setState_phX
替换它们可以避免pT问题。一开始它不起作用的原因是我忘了更改对未修改类的引用

其他Modelica.Fluid-components也存在同样的问题,例如,泵型号基于
PartialPump
,也使用
介质密度\u pTX


感谢您的贡献。

非常感谢您的回答。我看到了错误信息所暗示的热力学问题,但我不明白它为什么会发生。当我设置参数
use\T\u start
false时,模型应该使用h而不是T作为初始值,但它似乎仍然在某处调用pTX。对于两相水,不会出现这种错误。还有什么提示吗?非常感谢你的回答。我看到了错误信息所暗示的热力学问题,但我不明白它为什么会发生。当我设置参数
use\T\u start
false时,模型应该使用h而不是T作为初始值,但它似乎仍然在某处调用pTX。对于两相水,不会出现这种错误。有进一步的提示吗?你可能在使用pT源吗?在您的模型中的某个地方,调用
setState\u pT
density\u pT
会发生,并且
Modelica.Media.R134a
无法使用pT输入(请查看
setState\u pT
函数)。但是,如果没有模型的完整示例/副本,很难说调用发生在何处。正如我所说,该模型只包含一个DynamicPie(和系统),没有任何源或其他附加组件。如果您使用Dymola,还有两个想法:尝试“使用过的类”按钮或使用Simulation setup->在.mof文件中生成平面Modelica代码列表。然后搜索
\u pT
。或者将
setState\u pT
函数中的断言更改为
level=AssertionLevel.warning
并查看发生了什么。感谢您的建议。特别是“生成平面Modelica代码列表”的提示非常有用。正如我在更新中已经怀疑的那样,问题出在
PartialStaggeredFlowModel
中。您是否使用pT源代码?在您的模型中的某个地方,调用
setState\u pT
density\u pT
会发生,并且
Modelica.Media.R134a
无法使用pT输入(请查看
setState\u pT
函数)。但是,如果没有模型的完整示例/副本,很难说调用发生在何处。正如我所说的,该模型只包含一个DynamicPE(和系统),没有任何来源或其他附加组件。如果需要,还需要两个想法