Description: "Package with psychrometric functions"

- Home > Modelica

## Buildings.Utilities.Psychrometrics.Functions

Package with psychrometric functions

### Information

This package contains functions for psychrometric calculations.

The nomenclature used in this package is described at Buildings.UsersGuide.Conventions.

Extends from Modelica.Icons.Package (Icon for standard packages).

### Package Content

Name | Description
--- | ---
Internal | Solve f(x, data) for x with given f
TDewPoi_pW | Function to compute the water vapor partial pressure for a given dew point temperature of moist air
TDewPoi_pW_amb | Function to compute the dew point temperature of moist air for a given water vapor partial pressure
X_pSatpphi | Humidity ratio for given water vapor pressure
X_pW | Humidity ratio for given water vapor pressure
density_pTX | Density of air as a function of pressure, temperature and species concentration
pW_TDewPoi | Function to compute the water vapor partial pressure for a given dew point temperature of moist air
pW_TDewPoi_amb | Function to compute the water vapor partial pressure for a given dew point temperature of moist air
pW_X | Water vapor pressure for given humidity ratio
phi_pTX | Relative humidity for given pressure, dry bulb temperature and moisture mass fraction
saturationPressure | Saturation curve valid for 223.16 <= T <= 373.16 (and slightly outside with less accuracy)
saturationPressureLiquid | Return saturation pressure of water as a function of temperature T in the range of 273.16 to 373.16 K
sublimationPressureIce | Return sublimation pressure of water as a function of temperature T between 190 and 273.16 K
Examples | Collection of models that illustrate model use and test models
BaseClasses | Package with base classes for Buildings.Utilities.Psychrometrics.Functions

## Buildings.Utilities.Psychrometrics.Functions.TDewPoi_pW

Function to compute the water vapor partial pressure for a given dew point temperature of moist air

### Information

Dew point temperature calculation for moist air above freezing temperature.

The correlation used in this model is valid for dew point temperatures between 0°C and 200°C. It is the correlation from 2005 ASHRAE Handbook, p. 6.2. In an earlier version of this model, the equation from Peppers has been used, but this equation yielded about 15 Kelvin lower dew point temperatures.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Pressure | p_w |  | Water vapor partial pressure [Pa]

### Outputs

Type | Name | Description
--- | --- | ---
Temperature | T | Dew point temperature [K]

### Modelica definition

function TDewPoi_pW "Function to compute the water vapor partial pressure for a given dew point temperature of moist air" extends Modelica.Icons.Function; input Modelica.SIunits.Pressure p_w(displayUnit="Pa", min=200) "Water vapor partial pressure"; output Modelica.SIunits.Temperature T "Dew point temperature"; protected constant Modelica.Media.Common.OneNonLinearEquation.f_nonlinear_Data dummy "Dummy argument for nonlinear function solver"; algorithm T := Internal.solve( y_zero=p_w, x_min=200, x_max=400, f_nonlinear_data= dummy); end TDewPoi_pW;

## Buildings.Utilities.Psychrometrics.Functions.TDewPoi_pW_amb

Function to compute the dew point temperature of moist air for a given water vapor partial pressure

### Information

Dew point temperature calculation for moist air between 0°C and 30°C with partial pressure of water vapor as an input.

The correlation used in this model is valid for dew point temperatures between 0°C and 30°C. It is an approximation to the correlation from 2005 ASHRAE Handbook, p. 6.2, which is valid in a wider range of temperatures and implemented in Buildings.Utilities.Psychrometrics.Functions.pW_TDewPoi. The approximation error of this simplified function is below 5% for a temperature of 0°C to 30°C. The benefit of this simpler function is that it can be inverted analytically, whereas the other function requires a numerical solution.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Pressure | p_w |  | Water vapor partial pressure [Pa]

### Outputs

Type | Name | Description
--- | --- | ---
Temperature | T | Dew point temperature [K]

### Modelica definition

function TDewPoi_pW_amb "Function to compute the dew point temperature of moist air for a given water vapor partial pressure" annotation(derivative=BaseClasses.der_TDewPoi_pW_amb); extends Modelica.Icons.Function; input Modelica.SIunits.Pressure p_w(displayUnit="Pa", min=100) "Water vapor partial pressure"; output Modelica.SIunits.Temperature T "Dew point temperature"; protected constant Modelica.SIunits.Temperature T1=283.15 "First support point"; constant Modelica.SIunits.Temperature T2=293.15 "Second support point"; constant Modelica.SIunits.Pressure p1=1227.97 "First support point"; constant Modelica.SIunits.Pressure p2=2338.76 "Second support point"; constant Real a1=(Modelica.Math.log(p2) - Modelica.Math.log(p1)*T2/T1)/(1 - T2/T1); constant Real a2(unit="1/K")=(Modelica.Math.log(p1) - a1)/T1; algorithm T := (Modelica.Math.log(p_w) - a1)/a2; end TDewPoi_pW_amb;

## Buildings.Utilities.Psychrometrics.Functions.X_pSatpphi

Humidity ratio for given water vapor pressure

### Information

Function to compute the water vapor concentration based on saturation pressure, absolute pressure and relative humidity.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
AbsolutePressure | pSat |  | Saturation pressure [Pa]
Pressure | p |  | Pressure of the fluid [Pa]
Real | phi |  | Relative humidity

### Outputs

Type | Name | Description
--- | --- | ---
MassFraction | X_w | Water vapor concentration per total mass of air [1]

### Modelica definition

function X_pSatpphi "Humidity ratio for given water vapor pressure" extends Modelica.Icons.Function; input Modelica.SIunits.AbsolutePressure pSat "Saturation pressure"; input Modelica.SIunits.Pressure p "Pressure of the fluid"; input Real phi(min=0, max=1) "Relative humidity"; output Modelica.SIunits.MassFraction X_w( min=0, max=1, nominal=0.01) "Water vapor concentration per total mass of air"; protected constant Real k = 0.621964713077499 "Ratio of molar masses"; algorithm X_w := phi*k/(k*phi+p/pSat-phi); end X_pSatpphi;

## Buildings.Utilities.Psychrometrics.Functions.X_pW

Humidity ratio for given water vapor pressure

### Information

Function to compute the humidity ratio for a given water vapor partial pressure.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Pressure | p_w |  | Water vapor pressure [Pa]
Pressure | p | 101325 | Total pressure [Pa]

### Outputs

Type | Name | Description
--- | --- | ---
MassFraction | X_w | Species concentration at dry bulb temperature [1]

### Modelica definition

function X_pW "Humidity ratio for given water vapor pressure" extends Modelica.Icons.Function; input Modelica.SIunits.Pressure p_w(displayUnit="Pa", min=0.003, nominal=1000) "Water vapor pressure"; input Modelica.SIunits.Pressure p=101325 "Total pressure"; output Modelica.SIunits.MassFraction X_w( min=0, max=1, nominal=0.01) "Species concentration at dry bulb temperature"; protected Modelica.SIunits.MassFraction x_w(nominal=0.01) "Water mass fraction per mass of dry air"; algorithm x_w := 0.62198*p_w/(p - p_w); X_w := x_w/(1 + x_w); end X_pW;

## Buildings.Utilities.Psychrometrics.Functions.density_pTX

Density of air as a function of pressure, temperature and species concentration

### Information

Function to compute the density of moist air for given pressure, temperature and water vapor mass fraction.

Note that the water vapor mass fraction is in kg/kg total air.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Pressure | p |  | Absolute pressure of the medium [Pa]
Temperature | T |  | Dry bulb temperature [K]
MassFraction | X_w |  | Water vapor mass fraction per unit mass total air [1]

### Outputs

Type | Name | Description
--- | --- | ---
Density | d | Mass density [kg/m3]

### Modelica definition

function density_pTX "Density of air as a function of pressure, temperature and species concentration" extends Modelica.Icons.Function; input Modelica.SIunits.Pressure p "Absolute pressure of the medium"; input Modelica.SIunits.Temperature T "Dry bulb temperature"; input Modelica.SIunits.MassFraction X_w "Water vapor mass fraction per unit mass total air"; output Modelica.SIunits.Density d "Mass density"; protected Modelica.SIunits.SpecificHeatCapacity R "Gas constant (of mixture if applicable)"; algorithm R := Modelica.Media.IdealGases.Common.SingleGasesData.Air.R*(1 - X_w) + Modelica.Media.IdealGases.Common.SingleGasesData.H2O.R*X_w; d := p/(R*T); end density_pTX;

## Buildings.Utilities.Psychrometrics.Functions.pW_TDewPoi

Function to compute the water vapor partial pressure for a given dew point temperature of moist air

### Information

Dew point temperature calculation for moist air above freezing temperature.

The correlation used in this model is valid for dew point temperatures between 0°C and 200°C. It is the correlation from 2005 ASHRAE Handbook, p. 6.2. In an earlier version of this model, the equation from Peppers has been used, but this equation yielded about 15 Kelvin lower dew point temperatures.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | T |  | Dew point temperature [K]

### Outputs

Type | Name | Description
--- | --- | ---
Pressure | p_w | Water vapor partial pressure [Pa]

### Modelica definition

function pW_TDewPoi "Function to compute the water vapor partial pressure for a given dew point temperature of moist air" annotation(derivative=BaseClasses.der_pW_TDewPoi); extends Modelica.Icons.Function; input Modelica.SIunits.Temperature T(min=100) "Dew point temperature"; output Modelica.SIunits.Pressure p_w(displayUnit="Pa", min=100) "Water vapor partial pressure"; protected constant Real C8=-5.800226E3; constant Real C9=1.3914993E0; constant Real C10=-4.8640239E-2; constant Real C11=4.1764768E-5; constant Real C12=-1.4452093E-8; constant Real C13=6.5459673E0; algorithm p_w := Modelica.Math.exp(C8/T + C9 + T*(C10 + T*(C11 + T*C12)) + C13* Modelica.Math.log(T)); end pW_TDewPoi;

## Buildings.Utilities.Psychrometrics.Functions.pW_TDewPoi_amb

Function to compute the water vapor partial pressure for a given dew point temperature of moist air

### Information

Dew point temperature calculation for moist air between 0 degC and 30 degC.

The correlation used in this model is valid for dew point temperatures between 0°C and 30°C. It is an approximation to the correlation from 2005 ASHRAE Handbook, p. 6.2, which is valid in a wider range of temperatures and implemented in Buildings.Utilities.Psychrometrics.Functions.pW_TDewPoi. The approximation error of this simplified function is below 5% for a temperature of 0°C to 30°C. The benefit of this simpler function is that it can be inverted analytically, whereas the other function requires a numerical solution.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | T |  | Dew point temperature [K]

### Outputs

Type | Name | Description
--- | --- | ---
Pressure | p_w | Water vapor partial pressure [Pa]

### Modelica definition

function pW_TDewPoi_amb "Function to compute the water vapor partial pressure for a given dew point temperature of moist air" annotation(derivative=BaseClasses.der_pW_TDewPoi_amb); extends Modelica.Icons.Function; input Modelica.SIunits.Temperature T "Dew point temperature"; output Modelica.SIunits.Pressure p_w(displayUnit="Pa", min=100) "Water vapor partial pressure"; protected constant Modelica.SIunits.Temperature T1=283.15 "First support point"; constant Modelica.SIunits.Temperature T2=293.15 "Second support point"; constant Modelica.SIunits.Pressure p1=1227.97 "First support point"; constant Modelica.SIunits.Pressure p2=2338.76 "Second support point"; constant Real a1=(Modelica.Math.log(p2) - Modelica.Math.log(p1)*T2/T1)/(1 - T2/T1); constant Real a2(unit="1/K")=(Modelica.Math.log(p1) - a1)/T1; algorithm p_w := Modelica.Math.exp(a1 + a2*T); end pW_TDewPoi_amb;

## Buildings.Utilities.Psychrometrics.Functions.pW_X

Water vapor pressure for given humidity ratio

### Information

Function to compute the water vapor partial pressure for a given humidity ratio.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
MassFraction | X_w |  | Species concentration at dry bulb temperature [1]
Pressure | p | 101325 | Total pressure [Pa]

### Outputs

Type | Name | Description
--- | --- | ---
Pressure | p_w | Water vapor pressure [Pa]

### Modelica definition

function pW_X "Water vapor pressure for given humidity ratio" annotation(derivative=BaseClasses.der_pW_X); extends Modelica.Icons.Function; input Modelica.SIunits.MassFraction X_w( min=0, max=0.99999, nominal=0.01) "Species concentration at dry bulb temperature"; input Modelica.SIunits.Pressure p=101325 "Total pressure"; output Modelica.SIunits.Pressure p_w(displayUnit="Pa") "Water vapor pressure"; protected Modelica.SIunits.MassFraction x_w(nominal=0.01) "Water mass fraction per mass of dry air"; algorithm x_w := X_w/(1 - X_w); p_w := p*x_w/(0.62198 + x_w); end pW_X;

## Buildings.Utilities.Psychrometrics.Functions.phi_pTX

Relative humidity for given pressure, dry bulb temperature and moisture mass fraction

### Information

Relative humidity of air for given pressure, temperature and water vapor mass fraction.

Note that the water vapor mass fraction must be in kg/kg total air, and not dry air.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Pressure | p |  | Absolute pressure of the medium [Pa]
Temperature | T |  | Dry bulb temperature [K]
MassFraction | X_w |  | Water vapor mass fraction per unit mass total air [1]

### Outputs

Type | Name | Description
--- | --- | ---
Real | phi | Relative humidity [1]

### Modelica definition

function phi_pTX "Relative humidity for given pressure, dry bulb temperature and moisture mass fraction" extends Modelica.Icons.Function; input Modelica.SIunits.Pressure p "Absolute pressure of the medium"; input Modelica.SIunits.Temperature T "Dry bulb temperature"; input Modelica.SIunits.MassFraction X_w "Water vapor mass fraction per unit mass total air"; output Real phi(unit="1") "Relative humidity"; algorithm phi :=p/saturationPressure(T)*X_w/(X_w + Buildings.Utilities.Psychrometrics.Constants.k_mair*(1-X_w)); end phi_pTX;

## Buildings.Utilities.Psychrometrics.Functions.saturationPressure

Saturation curve valid for 223.16 <= T <= 373.16 (and slightly outside with less accuracy)

### Information

Saturation pressure of water, computed from temperature, according to Wagner et al. (1993). The range of validity is between 190 and 373.16 Kelvin.

#### References

Wagner W., A. Saul, A. Pruss. International equations for the pressure along the melting and along the sublimation curve of ordinary water substance, equation 3.5. 1993. http://www.nist.gov/data/PDFfiles/jpcrd477.pdf.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | TSat |  | Saturation temperature [K]

### Outputs

Type | Name | Description
--- | --- | ---
AbsolutePressure | pSat | Saturation pressure [Pa]

### Modelica definition

function saturationPressure "Saturation curve valid for 223.16 <= T <= 373.16 (and slightly outside with less accuracy)" extends Modelica.Icons.Function; input Modelica.SIunits.Temperature TSat(displayUnit="degC", nominal=300) "Saturation temperature"; output Modelica.SIunits.AbsolutePressure pSat( displayUnit="Pa", nominal=1000) "Saturation pressure"; algorithm pSat := Buildings.Utilities.Math.Functions.spliceFunction( Buildings.Utilities.Psychrometrics.Functions.saturationPressureLiquid(TSat), Buildings.Utilities.Psychrometrics.Functions.sublimationPressureIce(TSat), TSat-273.16, 1.0); end saturationPressure;

## Buildings.Utilities.Psychrometrics.Functions.saturationPressureLiquid

Return saturation pressure of water as a function of temperature T in the range of 273.16 to 373.16 K

### Information

Saturation pressure of water above the triple point temperature computed from temperature according to Wagner et al. (1993). The range of validity is between 273.16 and 373.16 Kelvin.

#### References

Wagner W., A. Saul, A. Pruss. International equations for the pressure along the melting and along the sublimation curve of ordinary water substance, equation 3.5. 1993. http://www.nist.gov/data/PDFfiles/jpcrd477.pdf.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | TSat |  | Saturation temperature [K]

### Outputs

Type | Name | Description
--- | --- | ---
AbsolutePressure | pSat | Saturation pressure [Pa]

### Modelica definition

function saturationPressureLiquid "Return saturation pressure of water as a function of temperature T in the range of 273.16 to 373.16 K" annotation(derivative=Buildings.Utilities.Psychrometrics.Functions.BaseClasses.der_saturationPressureLiquid); extends Modelica.Icons.Function; input Modelica.SIunits.Temperature TSat(displayUnit="degC", nominal=300) "Saturation temperature"; output Modelica.SIunits.AbsolutePressure pSat( displayUnit="Pa", nominal=1000) "Saturation pressure"; algorithm pSat := 611.657*Modelica.Math.exp(17.2799 - 4102.99/(TSat - 35.719)); end saturationPressureLiquid;

## Buildings.Utilities.Psychrometrics.Functions.sublimationPressureIce

Return sublimation pressure of water as a function of temperature T between 190 and 273.16 K

### Information

Sublimation pressure of water below the triple point temperature, computed from temperature, according to Wagner et al. (1993). The range of validity is between 190 and 273.16 Kelvin.

#### References

Wagner W., A. Saul, A. Pruss. International equations for the pressure along the melting and along the sublimation curve of ordinary water substance, equation 3.5. 1993. http://www.nist.gov/data/PDFfiles/jpcrd477.pdf.

Extends from Modelica.Icons.Function (Icon for functions).

### Inputs

Type | Name | Default | Description
--- | --- | --- | ---
Temperature | TSat |  | Saturation temperature [K]

### Outputs

Type | Name | Description
--- | --- | ---
AbsolutePressure | pSat | Saturation pressure [Pa]

### Modelica definition

function sublimationPressureIce "Return sublimation pressure of water as a function of temperature T between 190 and 273.16 K" annotation(derivative=Buildings.Utilities.Psychrometrics.Functions.BaseClasses.der_sublimationPressureIce); extends Modelica.Icons.Function; input Modelica.SIunits.Temperature TSat(displayUnit="degC", nominal=300) "Saturation temperature"; output Modelica.SIunits.AbsolutePressure pSat( displayUnit="Pa", nominal=1000) "Saturation pressure"; protected Modelica.SIunits.Temperature TTriple=273.16 "Triple point temperature"; Modelica.SIunits.AbsolutePressure pTriple=611.657 "Triple point pressure"; Real r1=TSat/TTriple "Common subexpression"; Real a[2]={-13.9281690,34.7078238} "Coefficients a[:]"; Real n[2]={-1.5,-1.25} "Coefficients n[:]"; algorithm pSat := exp(a[1] - a[1]*r1^n[1] + a[2] - a[2]*r1^n[2])*pTriple; end sublimationPressureIce;