You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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;

关键修正点

  1. 饱和属性初始化:通过Medium.saturationProperties_p(p)根据压力获取包含饱和温度、气液两相密度等信息的完整饱和特性。
  2. 状态设置:分别用setSatLiquidState和setSatVaporState基于饱和属性生成有效热力学状态,确保气液两相数据准确。
  3. 单位修正:调整nu_f和nu_g的单位为m3/kg,匹配比体积的物理定义。

运行修正后的模型即可得到与查表值一致的饱和蒸汽密度和比体积。

内容的提问来源于stack exchange,提问作者SonOfAnton

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 15:07:33