modelCoolingTowersWithBypass

Cooling tower system with bypass valve

Extends from Buildings.Fluid.Interfaces.PartialTwoPortInterface (Partial model with two ports and declaration of quantities that are used by many models).

Information

This model simulates parallel connected cooling tower subsystem with a bypass valve.

The bypass valve is controlled to enforce that the leaving condenser water temperature does not drop below the minimum temperature TMin.

By default, the condenser water setpoint is the ambient wet bulb temperature TWetBul plus the approach temperature dTApp.

Inside the model, a cooling tower fan speed controller is also implemented to maintain the condenser water at its setpoint.

Parameters

TypeNameDefaultDescription
Integernum2Number of cooling towers
Modelica.Units.SI.PressureDifferencedpValve_nominalNominal pressure difference of the valve
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.Pressuredp_nominalNominal pressure difference of the tower
RealratWatAir_nominal0.625Design water-to-air ratio
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
Dynamics › Conservation equations
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.FixedInitialType of energy balance: dynamic (3 initialization options) or steady state
Dynamics › Time needed to open or close valve
Booleanuse_strokeTimetrueSet to true to continuously open and close valve
Dynamics
Modelica.Units.SI.TimestrokeTime30Time needed to change valve position from 0 to 1
Heat transfer
Modelica.Units.SI.TemperatureTAirInWB_nominalNominal outdoor (air inlet) wetbulb temperature
Modelica.Units.SI.TemperatureTWatIn_nominalNominal water inlet temperature
Modelica.Units.SI.TemperatureDifferencedT_nominalTemperature difference between inlet and outlet of the tower
Fan
Modelica.Units.SI.PowerPFan_nominalFan power
Control Settings
Modelica.Units.SI.TemperatureDifferencedTApp3Approach temperature
Modelica.Units.SI.TemperatureTMinMinimum allowed water temperature entering chiller
Modelica.Blocks.Types.SimpleControllercontrollerTypeModelica.Blocks.Types.SimpleController.PIType of fan speed controller
Realk1Gain of the tower PID controller
Modelica.Units.SI.TimeTi60Integrator time constant of the tower PID controller
Modelica.Units.SI.TimeTd0.1Derivative time constant of the tower PID controller

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.BooleanInput[num]onOn signal for cooling towers
Modelica.Blocks.Interfaces.RealInputTWetBulEntering air wetbulb temperature
Modelica.Blocks.Interfaces.RealOutput[num]PFanElectric power consumed by fan
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.DHC.Plants.Cooling.Subsystems.CoolingTowersParallelcooTowSysCooling tower system
Buildings.Fluid.Actuators.Valves.TwoWayEqualPercentagevalBypCondenser water bypass valve
Buildings.Fluid.Sensors.TemperatureTwoPortsenTCWSupTemperature sensor
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantTSetBypBypass loop temperature setpoint
Buildings.Controls.OBC.CDL.Reals.PIDWithResetbypValConBypass valve controller
Buildings.Controls.OBC.CDL.Reals.PIDcooTowSpeConCooling tower fan speed controller
Buildings.Controls.OBC.CDL.Reals.SwitchswiOutput the input of higher value
Buildings.Controls.OBC.CDL.Reals.HysteresishysCompare if (TWetBul+dTApp) is greater than TMin
Buildings.Controls.OBC.CDL.Reals.AddParameteraddParAdd approach temperature on top of wetbulb temperature
Buildings.Fluid.FixedResistances.JunctionjunUpstream mixing point of cooTowSys and valByp

Revisions

  • January 2, 2023, by Kathryn Hinkelman:
    Set dp_fixed = 0 for the bypass valve because the pressure drop in this leg will be significantly less than the cooling towers.
    Propagated riseTime for the valve signal filters.
  • November 16, 2022, by Michael Wetter:
    Changed rise time of valve to 30 seconds so that it is the same as the one for the pumps, and set use_inputFilter = false for shut-off valve in cooling tower. This avoids a sharp rise in pressure near t=35 seconds.
  • May 19, 2020 by Jing Wang:
    First implementation.