如何使用Modelica.Media.Water库计算大气压下的饱和蒸汽密度?
如何用Modelica.Media.Water库获取大气压下的饱和蒸汽密度
在大气压(约101420 Pa)下,需通过Modelica.Media.Water库获取Pv曲线上的饱和蒸汽密度。目前已参考Modelica.Media.Examples.TwoPhaseWater示例实现饱和液体密度的获取,但无法正确获取饱和蒸汽状态及其密度。
自研模型代码如下:
model Example_3 parameter Modelica.Units.SI.Pressure p = 101420; replaceable package Medium = Modelica.Media.Water.StandardWater ; Medium.ThermodynamicState satLiquidState; Medium.ThermodynamicState satVaporState; Modelica.Units.SI.Temperature T_sat; Modelica.Units.SI.Density rho_f; Modelica.Units.SI.Density rho_g; Real nu_f(unit="kg/m3"); Real nu_g(unit="kg/m3"); Medium.SaturationProperties dew "Dew line Properties"; equation satVaporState = Medium.setDewState(dew); T_sat = Medium.saturationTemperature(p); satLiquidState = Medium.setState_pT(p,T_sat); rho_f = satLiquidState.d; nu_f = 1/rho_f; rho_g = satVaporState.d; nu_g = 1/rho_g; end Example_3;
查表参考值:
- 饱和蒸汽:比体积 νg = 1.6941 m³/kg,密度 ρg = 0.5903 kg/m³
- 饱和液体:比体积 νf = 0.001043 m³/kg,密度 ρf = 958.7728 kg/m³
问题分析
原代码中dew变量未被正确初始化,直接调用Medium.setDewState(dew)无法生成有效的饱和蒸汽状态。需要先通过给定压力获取完整的饱和属性,再基于该属性分别设置饱和液体和饱和蒸汽状态。
修正后的代码
model Example_3_Fixed parameter Modelica.Units.SI.Pressure p = 101420; replaceable package Medium = Modelica.Media.Water.StandardWater ; Medium.ThermodynamicState satLiquidState; Medium.ThermodynamicState satVaporState; Modelica.Units.SI.Temperature T_sat; Modelica.Units.SI.Density rho_f; Modelica.Units.SI.Density rho_g; Real nu_f(unit="m3/kg"); // 修正单位:比体积单位为m³/kg Real nu_g(unit="m3/kg"); Medium.SaturationProperties satProps; // 统一使用饱和属性变量 equation // 根据压力获取完整饱和属性 satProps = Medium.saturationProperties_p(p); T_sat = satProps.T; // 从饱和属性中提取饱和温度 // 设置饱和液体状态 satLiquidState = Medium.setSatLiquidState(satProps); // 设置饱和蒸汽状态 satVaporState = Medium.setSatVaporState(satProps); rho_f = satLiquidState.d; nu_f = 1/rho_f; rho_g = satVaporState.d; nu_g = 1/rho_g; end Example_3_Fixed;
关键修正点
- 饱和属性初始化:通过
Medium.saturationProperties_p(p)根据压力获取包含饱和温度、气液两相密度等信息的完整饱和特性。 - 状态设置:分别用
setSatLiquidState和setSatVaporState基于饱和属性生成有效热力学状态,确保气液两相数据准确。 - 单位修正:调整
nu_f和nu_g的单位为m3/kg,匹配比体积的物理定义。
运行修正后的模型即可得到与查表值一致的饱和蒸汽密度和比体积。
内容的提问来源于stack exchange,提问作者SonOfAnton
相关产品推荐
相关产品推荐

