modelCoolingTower

Base class for cooling towers

Extends from Buildings.Fluid.Interfaces.TwoPortHeatMassExchanger (Partial model transporting one fluid stream with storing mass or energy).

Information

Base class for a steady-state cooling tower. The variable TAirHT is used to compute the heat transfer with the water side of the cooling tower. For a dry cooling tower, this is equal to the dry-bulb temperature. For a wet cooling tower, this is equal to the wet-bulb temperature.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitialization (from TwoPortHeatMassExchanger)true= true, use homotopy method
Assumptions
BooleanallowFlowReversal (from PartialTwoPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Nominal condition
Modelica.Units.SI.MassFlowRatem_flow_nominal (from PartialTwoPortInterface)Nominal mass flow rate
Modelica.Units.SI.PressureDifferencedp_nominal (from TwoPortFlowResistanceParameters)Pressure difference
Advanced
Modelica.Units.SI.MassFlowRatem_flow_small (from PartialTwoPortInterface)1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialTwoPortInterface)false= true, if actual temperature at port is computed
Flow resistance
BooleancomputeFlowResistance (from TwoPortFlowResistanceParameters)true=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dp (from TwoPortFlowResistanceParameters)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn (from TwoPortFlowResistanceParameters)2Flow exponent, n=1 for laminar, n=2 for turbulent
BooleanlinearizeFlowResistance (from TwoPortFlowResistanceParameters)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM (from TwoPortFlowResistanceParameters)0.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics › Nominal condition
Modelica.Units.SI.Timetau (from TwoPortHeatMassExchanger)30Time constant at nominal flow (if energyDynamics <> SteadyState)
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamics (from TwoPortHeatMassExchanger)Modelica.Fluid.Types.Dynamics.DynamicFreeInitialType of energy balance: dynamic (3 initialization options) or steady state
Initialization
Medium.AbsolutePressurep_start (from TwoPortHeatMassExchanger)Medium.p_defaultStart value of pressure
Medium.TemperatureT_start (from TwoPortHeatMassExchanger)Medium.T_defaultStart value of temperature
Medium.MassFraction[Medium.nX]X_start (from TwoPortHeatMassExchanger)Medium.X_defaultStart value of mass fractions m_i/m
Medium.ExtraProperty[Medium.nC]C_start (from TwoPortHeatMassExchanger)fill(0, Medium.nC)Start value of trace substances

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a (from PartialTwoPort)Fluid connector a (positive design flow direction is from port_a to port_b)
Modelica.Fluid.Interfaces.FluidPort_bport_b (from PartialTwoPort)Fluid connector b (positive design flow direction is from port_a to port_b)
Modelica.Blocks.Interfaces.RealOutputTLvgLeaving water temperature

Components

TypeNameDefaultDescription
Modelica.Units.SI.MassFlowRatem_flow (from PartialTwoPortInterface)port_a.m_flowMass flow rate from port_a to port_b (m_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp (from PartialTwoPortInterface)port_a.p - port_b.pPressure difference between port_a and port_b
Medium.ThermodynamicStatesta_a (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_a.p, noEvent(actualStream(port_a.h_outflow)), noEvent(actualStream(port_a.Xi_outflow))) else Medium.setState_phX(port_a.p, noEvent(inStream(port_a.h_outflow)), noEvent(inStream(port_a.Xi_outflow)))Medium properties in port_a
Medium.ThermodynamicStatesta_b (from PartialTwoPortInterface)if allowFlowReversal then Medium.setState_phX(port_b.p, noEvent(actualStream(port_b.h_outflow)), noEvent(actualStream(port_b.Xi_outflow))) else Medium.setState_phX(port_b.p, noEvent(port_b.h_outflow), noEvent(port_b.Xi_outflow))Medium properties in port_b
Buildings.Fluid.MixingVolumes.MixingVolumevol (from TwoPortHeatMassExchanger)
Buildings.Fluid.FixedResistances.PressureDroppreDro (from TwoPortHeatMassExchanger)Flow resistance
Modelica.Units.SI.HeatFlowRateQ_flowpreHea.Q_flowHeat input into water circuit

Revisions

  • April 27, 2026, by Michael Wetter:
    Refactored for new cooling tower implementation.
    This is for issue 4567.
  • January 16, 2020, by Michael Wetter:
    Refactored model to avoid mixing textual equations and connect statements.
  • 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.
  • April 7, 2009, by Michael Wetter:
    Changed interface to new Modelica.Fluid stream concept.
  • May 14, 2008, by Michael Wetter:
    First implementation.