# .Buildings.Fluid.HeatExchangers.CoolingTowers.YorkCalc

## Information

Model for a steady-state or dynamic cooling tower with variable speed fan using the York calculation for the approach temperature at off-design conditions.

#### Thermal performance

To compute the thermal performance, this model takes as parameters the approach temperature, the range temperature and the inlet air wet bulb temperature at the design condition. Since the design mass flow rate (of the chiller condenser loop) is also a parameter, these parameters define the rejected heat.

For off-design conditions, the model uses the actual range temperature and a polynomial to compute the approach temperature for free convection and for forced convection, i.e., with the fan operating. The polynomial is valid for a York cooling tower. If the fan input signal `y` is below the minimum fan revolution `yMin`, then the cooling tower operates in free convection mode, otherwise it operates in the forced convection mode. For numerical reasons, this transition occurs in the range of `y ∈ [0.9*yMin, yMin]`.

#### Fan power consumption

The fan power consumption at the design condition can be specified as follows:

• The parameter `fraPFan_nominal` can be used to specify at the nominal conditions the fan power divided by the water flow rate. The default value is 275 Watts for a water flow rate of 0.15 kg/s.
• The parameter `PFan_nominal` can be set to the fan power at nominal conditions. If a user does not set this parameter, then the fan power will be `PFan_nominal = fraPFan_nominal * m_flow_nominal`, where `m_flow_nominal` is the nominal water flow rate.

In the forced convection mode, the actual fan power is computed as `PFan=fanRelPow(y) * PFan_nominal`, where the default value for the fan relative power consumption at part load is `fanRelPow(y)=y3`. In the free convection mode, the fan power consumption is zero. For numerical reasons, the transition of fan power from the part load mode to zero power consumption in the free convection mode occurs in the range `y ∈ [0.9*yMin, yMin]`.
To change the fan relative power consumption at part load in the forced convection mode, points of fan controls signal and associated relative power consumption can be specified. In between these points, the values are interpolated using cubic splines.

#### Comparison the cooling tower model of EnergyPlus

This model is similar to the model `Cooling Tower:Variable Speed` that is implemented in the EnergyPlus building energy simulation program version 6.0. The main differences are

1. Not implemented are the basin heater power consumption, and the make-up water usage.
2. The model has no built-in control to switch individual cells of the tower on or off. To switch cells on or off, use multiple instances of this model, and use your own control law to compute the input signal `y`.

#### Assumptions and limitations

This model requires a medium that has the same computation of the enthalpy as Buildings.Media.Water, which computes

h = cp (T-T0),

where h is the enthalpy, cp = 4184 J/(kg K) is the specific heat capacity, T is the temperature in Kelvin and T0 = 273.15 Kelvin. If this is not the case, the simulation will stop with an error message. The reason for this limitation is that as of January 2015, OpenModelica failed to translate the model if `Medium.temperature()` is used instead of `Water.temperature()`.

#### References

EnergyPlus 2.0.0 Engineering Reference, April 9, 2007.

## Revisions

• August 26, 2021, by Baptiste Ravache:
Renamed parameter TWatIn0 to TWatIn_nominal.
• January 16, 2020, by Michael Wetter:
Refactored model to avoid mixing textual equations and connect statements.
• December, 22, 2019, by Kathryn Hinkelman:
Corrected fan power consumption.
This is for issue 1691.
• November 3, 2016, by Michael Wetter:
Corrected wrong type for `FRWat0`, as this variable can take on values that are bigger than 1.
This is for issue 567.
• January 2, 2015, by Michael Wetter:
Replaced `Medium.temperature()` with `Water.temperature()` in order for the model to work with OpenModelica. Added an `assert` that stops the simulation if an incompatible medium is used.
• November 13, 2014, by Michael Wetter:
Added missing `each` keyword for `fanRelPowDer`. Added regularization in computation of `TAppCor`. Removed intermediate states with temperatures.
• May 30, 2014, by Michael Wetter:
Removed undesirable annotation `Evaluate=true`.
• October 9, 2013, by Michael Wetter:
Simplified the implementation for the situation if `allowReverseFlow=false`. Avoided the use of the conditionally enabled variables `sta_a` and `sta_b` as this was not proper use of the Modelica syntax.
• September 29, 2011, by Michael Wetter:
Revised model to use cubic spline interpolation instead of a polynomial.
• July 12, 2011, by Michael Wetter:
Introduced common base class for Buildings.Fluid.HeatExchangers.CoolingTowers.YorkCalc and Buildings.Fluid.HeatExchangers.CoolingTowers.FixedApproach so that they can be used as replaceable models.
• May 12, 2011, by Michael Wetter:
Added binding equations for `Q_flow` and `mXi_flow`.
• March 8, 2011, by Michael Wetter:
Removed base class and unused variables.
• February 25, 2011, by Michael Wetter:
Revised implementation to facilitate scaling the model to different nominal sizes. Removed parameter `mWat_flow_nominal` since it is equal to `m_flow_nominal`, which is the water flow rate from the chiller condenser loop.
• May 16, 2008, by Michael Wetter:
First implementation.

Generated at 2024-07-21T18:15:58Z by OpenModelicaOpenModelica 1.23.1 using GenerateDoc.mos