Name | Description |
---|---|
DewPointTemperature_pWat | Model to compute the dew point temperature of moist air |
HumidityRatio_pWat | Humidity ratio for given water vapor pressure |
MassFraction_pTphi | Return steam mass fraction as a function of relative humidity phi and temperature T |
ToDryAir | Block to convert absolute humidity from [kg/kg total air] to [kg/kg dry air] |
ToTotalAir | Block to convert absolute humidity from [kg/kg dry air] to [kg/kg total air] |
VaporPressure_TDP | Model to compute the water vapor pressure for a given dew point temperature of moist air |
VaporPressure_X | Water vapor pressure for given humidity ratio |
WetBulbTemperature | Model to compute the wet bulb temperature |
Examples | Collection of models that illustrate model use and test models |
BaseClasses | Library with base classes for psychrometric classes |
Dew point temperature calculation for moist air above freezing temperature.
The correlation used in this model is valid for dew point temperatures between 0 degC and 200 degC. 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.Blocks.Interfaces.BlockIcon (Basic graphical layout of input/output block).
Type | Name | Description |
---|---|---|
output RealOutput | p_w | Water vapor partial pressure |
input RealInput | T | Dew point temperature [K] |
block DewPointTemperature_pWat "Model to compute the dew point temperature of moist air" extends Modelica.Blocks.Interfaces.BlockIcon;Modelica.Blocks.Interfaces.RealOutput p_w "Water vapor partial pressure"; Modelica.Blocks.Interfaces.RealInput T(final quantity="ThermodynamicTemperature", final unit="K", min = 0, displayUnit="degC") "Dew point temperature"; equation p_w = Buildings.Utilities.Psychrometrics.BaseClasses.dewPointTemperature(T=T); end DewPointTemperature_pWat;
Block to compute the humidity ratio for a given water vapor partial pressure. of moist air.
If use_p_in is false (default option), the p parameter is used as atmospheric pressure, and the p_in input connector is disabled; if use_p_in is true, then the p parameter is ignored, and the value provided by the input connector is used instead.
Extends from Buildings.Utilities.Psychrometrics.BaseClasses.HumidityRatioVaporPressure (Humidity ratio for given water vapor pressure).
Type | Name | Default | Description |
---|---|---|---|
Boolean | use_p_in | true | Get the pressure from the input connector |
Pressure | p | 101325 | Fixed value of pressure [Pa] |
Type | Name | Description |
---|---|---|
input RealInput | p_in | Atmospheric Pressure [Pa] |
output RealOutput | XWat | Species concentration at dry bulb temperature |
input RealInput | p_w | Water vapor pressure [Pa] |
block HumidityRatio_pWat "Humidity ratio for given water vapor pressure" extends Buildings.Utilities.Psychrometrics.BaseClasses.HumidityRatioVaporPressure;Modelica.Blocks.Interfaces.RealOutput XWat(min=0, max=1, nominal=0.01) "Species concentration at dry bulb temperature"; Modelica.Blocks.Interfaces.RealInput p_w(final quantity="Pressure", final unit="Pa", displayUnit="Pa", min = 0) "Water vapor pressure"; output Modelica.SIunits.MassFraction X_dryAir(min=0, max=1, nominal=0.01, start=0.001) "Water mass fraction per mass of dry air"; equation X_dryAir * (1-XWat) = XWat; ( p_in_internal - p_w) * X_dryAir = 0.62198 * p_w; end HumidityRatio_pWat;
Block to compute the water vapor concentration based on pressure, temperature and relative humidity.
If use_p_in is false (default option), the p parameter is used as atmospheric pressure, and the p_in input connector is disabled; if use_p_in is true, then the p parameter is ignored, and the value provided by the input connector is used instead.
Extends from Buildings.Utilities.Psychrometrics.BaseClasses.HumidityRatioVaporPressure (Humidity ratio for given water vapor pressure).
Type | Name | Default | Description |
---|---|---|---|
Boolean | use_p_in | true | Get the pressure from the input connector |
Pressure | p | 101325 | Fixed value of pressure [Pa] |
replaceable package Medium | Modelica.Media.Interfaces.Pa... | Medium model |
Type | Name | Description |
---|---|---|
input RealInput | p_in | Atmospheric Pressure [Pa] |
replaceable package Medium | Medium model | |
input RealInput | T | Temperature [K] |
input RealInput | phi | Relative humidity (0...1) |
output RealOutput | X[Medium.nX] | Steam mass fraction |
block MassFraction_pTphi "Return steam mass fraction as a function of relative humidity phi and temperature T" extends Buildings.Utilities.Psychrometrics.BaseClasses.HumidityRatioVaporPressure; replaceable package Medium = Modelica.Media.Interfaces.PartialCondensingGases "Medium model";public Modelica.Blocks.Interfaces.RealInput T(final unit="K", displayUnit="degC", min = 0) "Temperature"; Modelica.Blocks.Interfaces.RealInput phi(min = 0, max=1) "Relative humidity (0...1)"; Modelica.Blocks.Interfaces.RealOutput X[Medium.nX](min = 0, max=1) "Steam mass fraction"; protected constant Real k = 0.621964713077499 "Ratio of molar masses"; Modelica.SIunits.AbsolutePressure psat "Saturation pressure"; parameter Integer iWat(min=1, fixed=false) "Index for water substance"; initial algorithm iWat :=1; for i in 1:Medium.nXi loop if Modelica.Utilities.Strings.isEqual(Medium.substanceNames[i], "Water") then iWat :=i; end if; end for; algorithm psat := Medium.saturationPressure(T); X[iWat] := phi*k/(k*phi+p_in_internal/psat-phi); //sum(X[:]) = 1; // The formulation with a sum in an equation section leads to a nonlinear equation system X[if iWat == 1 then 2 else 1] := 1 - X[iWat]; end MassFraction_pTphi;
Block that converts humidity concentration from [kg/kg total air] to [kg/kg dry air].
Extends from Modelica.Blocks.Interfaces.BlockIcon (Basic graphical layout of input/output block).
Type | Name | Description |
---|---|---|
output RealOutput | XiDry | Water vapor concentration in [kg/kg dry air] |
input RealInput | XiTotalAir | Water vapor concentration in [kg/kg total air] |
block ToDryAir "Block to convert absolute humidity from [kg/kg total air] to [kg/kg dry air]" extends Modelica.Blocks.Interfaces.BlockIcon;Modelica.Blocks.Interfaces.RealOutput XiDry "Water vapor concentration in [kg/kg dry air]"; Modelica.Blocks.Interfaces.RealInput XiTotalAir "Water vapor concentration in [kg/kg total air]"; equation XiDry = XiTotalAir / (1-XiTotalAir); end ToDryAir;
Block that converts humidity concentration from [kg/kg dry air] to [kg/kg total air].
This block may be used, for example, to convert absolute humidity that is received from EnergyPlus to [kg/kg total air], which is the convention used by Modelica.Media.
Extends from Modelica.Blocks.Interfaces.BlockIcon (Basic graphical layout of input/output block).
Type | Name | Description |
---|---|---|
output RealOutput | XiTotalAir | Water vapor concentration in [kg/kg total air] |
input RealInput | XiDry | Water vapor concentration in [kg/kg dry air] |
output RealOutput | XNonVapor | Mass fraction of remaining substances |
block ToTotalAir "Block to convert absolute humidity from [kg/kg dry air] to [kg/kg total air]" extends Modelica.Blocks.Interfaces.BlockIcon;Modelica.Blocks.Interfaces.RealOutput XiTotalAir "Water vapor concentration in [kg/kg total air]"; Modelica.Blocks.Interfaces.RealInput XiDry "Water vapor concentration in [kg/kg dry air]"; Modelica.Blocks.Interfaces.RealOutput XNonVapor "Mass fraction of remaining substances"; equation XiTotalAir = XiDry / (1+XiDry); XNonVapor = 1 - XiTotalAir; end ToTotalAir;
Dew point temperature calculation for moist air above freezing temperature.
The correlation used in this model is valid for dew point temperatures between 0 degC and 200 degC. 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.Blocks.Interfaces.BlockIcon (Basic graphical layout of input/output block).
Type | Name | Description |
---|---|---|
input RealInput | p_w | Water vapor partial pressure |
output RealOutput | T | Dew point temperature [K] |
block VaporPressure_TDP "Model to compute the water vapor pressure for a given dew point temperature of moist air" extends Modelica.Blocks.Interfaces.BlockIcon;Modelica.Blocks.Interfaces.RealInput p_w "Water vapor partial pressure"; Modelica.Blocks.Interfaces.RealOutput T(start=278.15, final quantity="ThermodynamicTemperature", final unit="K", min = 0, displayUnit="degC") "Dew point temperature"; equation p_w = Buildings.Utilities.Psychrometrics.BaseClasses.dewPointTemperature(T=T); end VaporPressure_TDP;
Block to compute the water vapor partial pressure for a given humidity ratio.
If use_p_in is false (default option), the p parameter is used as atmospheric pressure, and the p_in input connector is disabled; if use_p_in is true, then the p parameter is ignored, and the value provided by the input connector is used instead.
Extends from Buildings.Utilities.Psychrometrics.BaseClasses.HumidityRatioVaporPressure (Humidity ratio for given water vapor pressure).
Type | Name | Default | Description |
---|---|---|---|
Boolean | use_p_in | true | Get the pressure from the input connector |
Pressure | p | 101325 | Fixed value of pressure [Pa] |
Type | Name | Description |
---|---|---|
input RealInput | p_in | Atmospheric Pressure [Pa] |
input RealInput | XWat | Species concentration at dry bulb temperature |
output RealOutput | p_w | Water vapor pressure [Pa] |
block VaporPressure_X "Water vapor pressure for given humidity ratio" extends Buildings.Utilities.Psychrometrics.BaseClasses.HumidityRatioVaporPressure;Modelica.Blocks.Interfaces.RealInput XWat(min=0, max=1, nominal=0.01) "Species concentration at dry bulb temperature"; Modelica.Blocks.Interfaces.RealOutput p_w(final quantity="Pressure", final unit="Pa", displayUnit="Pa", min = 0) "Water vapor pressure"; output Modelica.SIunits.MassFraction X_dryAir(min=0, max=1, nominal=0.01, start=0.001) "Water mass fraction per mass of dry air"; equation X_dryAir * (1-XWat) = XWat; ( p_in_internal - p_w) * X_dryAir = 0.62198 * p_w; end VaporPressure_X;
Given a moist are medium model, this component computes the states of the medium at its wet bulb temperature.
For a use of this model, see for example Buildings.Fluid.Sensors.WetBulbTemperature
Extends from Buildings.BaseClasses.BaseIcon (Base icon).
Type | Name | Description |
---|---|---|
RealSignal | TDryBul | Dry bulb temperature [K] |
RealSignal | p | Pressure [Pa] |
RealSignal | TWetBul | Wet bulb temperature [K] |
RealSignal | Xi[Medium.nXi] | Species concentration at dry bulb temperature |
RealSignal | phi | Relative humidity (at dry-bulb state) in [0, 1] |
model WetBulbTemperature "Model to compute the wet bulb temperature" extends Buildings.BaseClasses.BaseIcon; replaceable package Medium = Modelica.Media.Interfaces.PartialCondensingGases "Medium model";Medium.BaseProperties dryBul "Medium state at dry bulb temperature"; Medium.BaseProperties wetBul(Xi(nominal=0.01*ones(Medium.nXi))) "Medium state at wet bulb temperature"; ObsoleteModelica3.Blocks.Interfaces.RealSignal TDryBul( start=303, final quantity="ThermodynamicTemperature", final unit="K", min = 0) "Dry bulb temperature"; ObsoleteModelica3.Blocks.Interfaces.RealSignal p( final quantity="Pressure", final unit="Pa", min = 0) "Pressure"; ObsoleteModelica3.Blocks.Interfaces.RealSignal TWetBul( start=293, final quantity="ThermodynamicTemperature", final unit="K", min = 0) "Wet bulb temperature"; ObsoleteModelica3.Blocks.Interfaces.RealSignal Xi[ Medium.nXi] "Species concentration at dry bulb temperature"; ObsoleteModelica3.Blocks.Interfaces.RealSignal phi "Relative humidity (at dry-bulb state) in [0, 1]"; protected parameter Integer iWat(min=1, fixed=false) "Index for water substance"; initial algorithm iWat :=1; for i in 1:Medium.nXi loop if Modelica.Utilities.Strings.isEqual(Medium.substanceNames[i], "Water") then iWat :=i; end if; end for; equation dryBul.p = p; dryBul.T = TDryBul; dryBul.Xi = Xi; wetBul.phi = 1; wetBul.p = dryBul.p; wetBul.h = dryBul.h + (wetBul.X[iWat] - dryBul.X[iWat]) * Medium.enthalpyOfLiquid(dryBul.T); TWetBul = wetBul.T; phi = dryBul.phi; end WetBulbTemperature;