modelEvaporation
Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).
Information
This model computes the water accumulation on the surface of a cooling coil. When the cooling coil operates, water is accumulated on the coil surface up to a maximum amount of water before water starts to drain away from the coil. When the coil is off, the accumulated water evaporates into the air stream.
Physical description
The calculations are based on Shirey et al. (2006).
Parameters
The maximum amount of water that can be accumulated is computed based on the following model, where we used the convention that latent heat removed from the air is negative: The parameter twet defines how long it takes for condensate to drip of the coil, assuming the coil starts completely dry and operates at the nominal operating point. Henderson et al. (2003) measured values for twet from 16.5 minutes (990 seconds) to 29 minutes (1740 seconds). Thus, we use a default value of twet=1400 seconds. The maximum amount of water that can accumulate on the coil is
mmax = -Q̇L,nom twet ⁄ hfg
where Q̇L,nom<0 is the latent capacity at the nominal conditions and hfg is the latent heat of evaporation.
When the coil is off, the water that has been accumulated on the coil evaporates into the air. The rate of water vapor evaporation at nominal operating conditions is defined by the parameter γnom. The definition of γnom is
γnom = Q̇e,nom ⁄ Q̇L,nom,
where Q̇e,nom<0 is the rate of evaporation from the coil surface into the air stream right after the coil is switched off. The default value is γnom = 1.5.
Time dependent calculations
First, we discuss the accumulation of water on the coil. The rate of water accumulation is computed as
dm(t)⁄dt = -ṁwat(t)
where ṁwat(t) ≤ 0 is the water vapor mass flow rate that is extracted from the air at the current operating conditions. The actual water vapor mass flow rate that is removed from the air stream is as computed by the steady-state cooling coil performance model because for the coil outlet conditions, it does not matter whether the water accumulates on the coil or drips away from the coil. The initial value for the water accumulation is zero at the start of the simulation, and set to whatever water remains after the coil has been switched off and the water partially or completely evaporated into the air stream.
Now, we discuss the evaporation of the water on the coil surface into the air when the coil is off. The model in Shirey et al. (2006) is based on the assumption that the wet coil acts as an evaporative cooler. The change of water on the coil is
dm(t)⁄dt = -ṁmax(t) η(t),
where ṁmax(t) > 0 is the maximum water mass flow rate from the coil to the air and η(t) ∈ [0, 1] is the mass transfer effectiveness. For an evaporative cooler,
η(t) = 1-exp(-NTU(t)),
where NTU(t)=(hA)m/Ċa are the number of mass transfer units and Ċa is the air capacity flow rate. The mass transfer coefficient (hA)m is assumed to be proportional to the wet coil area, which is assumed to be equal to the ratio m(t) ⁄ mmax(t). Hence,
(hA)m(t) ∝ m(t) ⁄ mmax(t).
Furthermore, the mass transfer coefficient depends on the velocity, and hence mass flow rate, as
(hA)m(t) ∝ ṁa(t)0.8,
where ṁa(t) is the current air mass flow rate, from which follows that
NTU(t) ∝ ṁa(t)-0.2.
Therefore, the water mass flow rate from the coil into the air stream is
ṁwat(t) = ṁmax(t) (1-exp(-K (m(t) ⁄ mtot) (ṁa(t) ⁄ ṁa,nom)-0.2 )),
where K > 0 is a constant to be determined below and the rate of change of water on the coil surface is as before
dm(t)⁄dt = -ṁwat(t).
The maximum mass transfer is
ṁmax = ṁa (xwb(t) - x(t)),
where xwb(t) is the moisture content of air at the wet bulb state and x(t) is the actual moisture content of the air.
The constant K is determined from the nominal conditions as follows: At the nominal condition, we have m(t) ⁄ mtot=1 and ṁa(t) ⁄ ṁa,nom=1, and, hence,
ṁnom = ṁmax,nom (1-e-K).
Because
ṁnom = - γ Q̇L,nom ⁄ hfg,
it follows that
K = -ln( 1 + γnom Q̇L,nom ⁄ ṁa,nom ⁄ hfg ⁄ (xnom-xwb,nom) ),
where xnom is the humidity ratio at the coil at nominal condition and xwb,nom is the humidity ratio at the wet bulb condition. Note that the ln(·) in the above equation requires that the argument is positive. See the implementation section below for how this is implemented.
Implementation
Potential for moisture transfer
For the potential that causes the moisture transfer, the difference in mass fraction between the current coil air and the coil air at the wet bulb conditions is used, provided that the air mass flow rate is within 1⁄3 of the nominal mass flow rate. For smaller air mass flow rates, the outlet conditions are used to ensure that the outlet conditions are not supersaturated air. The transition between these two driving potential is continuously differentiable in the mass flow rate.
Computation of mass transfer effectiveness
To evaluate
K = -ln( 1 + γnom Q̇L,nom ⁄ ṁa,nom ⁄ hfg ⁄ (xnom-xwb,nom) ),
the argument of the ln(·) function must be positive. However, often the parameter γnom is not known, and the default value of γnom = 1.5 may yield negative arguments for the function ln(·). We therefore set a lower bound on γnom as follows: Note that γnom must be such that 0 < ṁwat,nom < ṁmax,nom. This condition is equivalent to
0 < γnom < ṁa,nom (xnom-xwb,nom) hfg ⁄ Q̇L,nom
If γnom were equal to the right hand side, then the mass transfer effectiveness would be one. Hence, we set the maximum value of γnom,max to
γnom,max = 0.8 ṁa,nom (xnom-xwb,nom) hfg ⁄ Q̇L,nom,
which corresponds to a mass transfer effectiveness of 0.8. If γnom > γnom,max, the model sets γnom=γnom,max and writes a warning message.
Regularization near zero air mass flow rate
To regularize the equations near zero air mass flow rate and zero humidity on the coil, the following conditions have been imposed in such a way that the model is once continuously differentiable with bounded derivatives on compact sets:
- We impose that ṁwat(t) → 0 as m → 0 to ensure that there is no evaporation if no water remains on the coil.
- We impose that ṁwat(t) ⁄ ṁa(t) → 0 as ṁa(t) → 0 to ensure that the evaporation mass flow rate remains bounded at zero air flow rate and that it is symmetric near zero without having to trigger an event.
This is implemented by replacing for |ṁa(t)| < δ the equation for the evaporation mass flow rate by
ṁwat(t) = -C m ṁa2(t) (xnom-xwb,nom),
where C=K δ-0.2 which approximates continuity at |ṁa|=δ. Note that differentiability is ensured because the two equations are combined using the function Buildings.Utilities.Math.Functions.spliceFunction. Also note that based on physics, we would not have to square ṁa, but this was done to avoid an event that would be triggered if |ṁa| would have been used. Since the equation is active only at very small air flow rates when the fan is off, the error is negligible for typical applications.
References
Hugh I. Henderson, Jr., Don B. Shirey III and Richard A. Raustad. Understanding the Dehumidification Performance of Air-Conditioning Equipment at Part-Load Conditions. CIBSE/ASHRAE Conference, Edinburgh, Scotland, September 2003.
Don B. Shirey III, Hugh I. Henderson, Jr. and Richard A. Raustad. Understanding the Dehumidification Performance of Air-Conditioning Equipment at Part-Load Conditions. Florida Solar Energy Center, Technical Report FSEC-CR-1537-05, January 2006.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.DXSystems.Cooling.AirSource.Data.Generic.BaseClasses.NominalValues | nomVal | Nominal values | |
| Modelica.Units.SI.Mass | mMax | Maximum mass of water that can accumulate on the coil | |
| Boolean | computeReevaporation | true | Set to true to compute reevaporation of water that accumulated on coil |
| Advanced | |||
| Modelica.Units.SI.MassFlowRate | mAir_flow_small | 0.1*abs(nomVal.m_flow_nominal) | Small mass flow rate for regularization of zero flow |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.BooleanInput | on | Control signal, true if compressor is on | |
| Modelica.Blocks.Interfaces.RealInput | mWat_flow | Water flow rate added into the medium | |
| Modelica.Blocks.Interfaces.RealInput | mAir_flow | Air mass flow rate | |
| Modelica.Blocks.Interfaces.RealInput | XEvaOut | Water mass fraction | |
| Modelica.Blocks.Interfaces.RealInput | TEvaOut | Air temperature | |
| Modelica.Blocks.Interfaces.RealOutput | mTotWat_flow | Total moisture mass flow rate into the air stream |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Mass | m | Mass of water that accumulated on the coil | |
| Modelica.Units.SI.MassFlowRate | mEva_flow | Moisture mass flow rate that evaporates into air stream |
Contents
| Name | Description |
|---|---|
| Medium model |
Revisions
-
September 4, 2026, by Michael Wetter:
Added missing assignment forXiSatRefOutin branch that is used if the model does not compute evaporation.
This is for #4715. -
April 5, 2023, by Jianjun Hu:
Corrected assertion for the conditiondX_nominal<0and the documentation.
This is for #3322. -
May 7, 2020, by Michael Wetter:
Corrected limits fordX_nominal.
This is for #1933. -
April 13, 2017, by Michael Wetter:
Removed inputTWatthat is not used. -
March 7, 2017, by Michael Wetter:
Set start value and removed max attribute formEva_flowas this can take on zero. -
May 24, 2016, by Filip Jorissen:
Corrected implementation of wet bulb temperature computation. See Annex60, #474 for a discussion. -
January 21, 2015 by Michael Wetter:
Converted print statements to assertions withAssertionLevel.warning. -
June 18, 2014 by Michael Wetter:
Addedfixed=truefor start value ofmto avoid a warning during translation. -
August 21, 2012 by Michael Wetter:
First implementation.