Name | Description |
---|---|
FixedApproach | Cooling tower with constant approach temperature |
YorkCalc | Cooling tower with variable speed using the York calculation for the approach temperature |
Examples | Collection of models that illustrate model use and test models |
Correlations | Package with correlations for cooling tower performance |
BaseClasses | Package with base classes for heat exchanger models |
Model for a steady state cooling tower with constant approach temperature.
By connecting a signal that contains either the dry bulb or the wet bulb temperature, this model can be used to estimate the water return temperature from a cooling tower. For a more detailed model, use for example YorkCalc.mo.
Extends from Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.PartialStaticTwoPortCoolingTower (Cooling tower with variable speed).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
TemperatureDifference | TApp | 2 | Approach temperature [K] |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp_nominal | Pressure [Pa] | |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
Temperature_degC | TWatIn_degC.start | 35 | Water inlet temperature [degC] |
Temperature_degC | TWatOut_degC.start | 28 | Water outlet temperature [degC] |
Temperature_degC | TAirIn_degC.start | 25 | Air dry-bulb inlet temperature [degC] |
Assumptions | |||
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
MassFlowRate | m_flow_small | 1E-4*m_flow_nominal | Small mass flow rate for regularization of zero flow [kg/s] |
Diagnostics | |||
Boolean | show_V_flow | false | = true, if volume flow rate at inflowing port is computed |
Initialization | |||
AbsolutePressure | p_a_start | system.p_start | Guess value for inlet pressure [Pa] |
AbsolutePressure | p_b_start | p_a_start | Guess value for outlet pressure [Pa] |
Flow resistance | |||
Boolean | from_dp | true | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | TAir | Entering air dry or wet bulb temperature |
model FixedApproach "Cooling tower with constant approach temperature" extends Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.PartialStaticTwoPortCoolingTower;parameter Modelica.SIunits.TemperatureDifference TApp(min=0) = 2 "Approach temperature"; equation Q_flow = m_flow * (Medium.specificEnthalpy(Medium.setState_pTX(port_b.p, TAir+TApp, inStream(port_b.Xi_outflow)))-inStream(port_a.h_outflow)); end FixedApproach;
Model for a steady state cooling tower with variable speed fan using the York calculation for the aproach temperature.
This model uses a performance curve for a York cooling tower to compute the approach temperature. If the fan control signal is zero, then the cooling tower operates in free convection mode. In the current implementation the fan power consumption is proportional to the control signal raised to the third power. Not yet implemented are the basin heater power consumption, the water usage and the option to provide a fan efficiency curve to compute the fan power consumption. Otherwise, the model is similar to the one that is implemented in the EnergyPlus building energy simulation program.
EnergyPlus 2.0.0 Engineering Reference, April 9, 2007.
Extends from Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.PartialStaticTwoPortCoolingTower (Cooling tower with variable speed).
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | PartialMedium | Medium in the component | |
Real | fraFreCon | 0.125 | Fraction of tower capacity in free convection regime |
Real | yMin | 0.3 | Minimum control signal until fan is switched off (used for smoothing) |
Nominal condition | |||
MassFlowRate | m_flow_nominal | Nominal mass flow rate [kg/s] | |
Pressure | dp_nominal | Pressure [Pa] | |
Temperature | TAirInWB0 | 273.15 + 25.55 | Design inlet air wet bulb temperature [K] |
Temperature | TApp0 | 3.89 | Design apprach temperature [K] |
Temperature | TRan0 | 5.56 | Design range temperature (water in - water out) [K] |
MassFlowRate | mWat0_flow | 0.15 | Design water flow rate [kg/s] |
Power | PFan0 | 275 | Fan power [W] |
Initialization | |||
MassFlowRate | m_flow.start | 0 | Mass flow rate from port_a to port_b (m_flow > 0 is design flow direction) [kg/s] |
Pressure | dp.start | 0 | Pressure difference between port_a and port_b [Pa] |
Temperature_degC | TWatIn_degC.start | 35 | Water inlet temperature [degC] |
Temperature_degC | TWatOut_degC.start | 28 | Water outlet temperature [degC] |
Temperature_degC | TAirIn_degC.start | 25 | Air dry-bulb inlet temperature [degC] |
Assumptions | |||
Boolean | allowFlowReversal | system.allowFlowReversal | = true to allow flow reversal, false restricts to design direction (port_a -> port_b) |
Advanced | |||
MassFlowRate | m_flow_small | 1E-4*m_flow_nominal | Small mass flow rate for regularization of zero flow [kg/s] |
Diagnostics | |||
Boolean | show_V_flow | false | = true, if volume flow rate at inflowing port is computed |
Initialization | |||
AbsolutePressure | p_a_start | system.p_start | Guess value for inlet pressure [Pa] |
AbsolutePressure | p_b_start | p_a_start | Guess value for outlet pressure [Pa] |
Flow resistance | |||
Boolean | from_dp | true | = true, use m_flow = f(dp) else dp = f(m_flow) |
Boolean | linearizeFlowResistance | false | = true, use linear relation between m_flow and dp for any flow rate |
Real | deltaM | 0.1 | Fraction of nominal flow rate where flow transitions to laminar |
Type | Name | Description |
---|---|---|
FluidPort_a | port_a | Fluid connector a (positive design flow direction is from port_a to port_b) |
FluidPort_b | port_b | Fluid connector b (positive design flow direction is from port_a to port_b) |
input RealInput | TAir | Entering air dry or wet bulb temperature |
input RealInput | y | Fan control signal |
model YorkCalc "Cooling tower with variable speed using the York calculation for the approach temperature" extends Buildings.Fluid.HeatExchangers.CoolingTowers.BaseClasses.PartialStaticTwoPortCoolingTower;parameter Modelica.SIunits.Temperature TAirInWB0 = 273.15+25.55 "Design inlet air wet bulb temperature"; parameter Modelica.SIunits.Temperature TApp0 = 3.89 "Design apprach temperature"; parameter Modelica.SIunits.Temperature TRan0 = 5.56 "Design range temperature (water in - water out)"; parameter Modelica.SIunits.MassFlowRate mWat0_flow = 0.15 "Design water flow rate"; parameter Modelica.SIunits.Power PFan0 = 275 "Fan power"; parameter Real fraFreCon(min=0, max=1) = 0.125 "Fraction of tower capacity in free convection regime"; parameter Real yMin(min=0.01, max=1) = 0.3 "Minimum control signal until fan is switched off (used for smoothing)"; Modelica.SIunits.Temperature TApp(min=0, nominal=1) "Approach temperature"; Modelica.SIunits.Temperature TAppCor(min=0, nominal=1) "Approach temperature based on manufacturer correlation"; Modelica.SIunits.Temperature TAppFreCon(min=0, nominal=1) "Approach temperature for free convection"; Modelica.SIunits.Temperature TRan(nominal=1) "Range temperature"; Modelica.SIunits.MassFraction FRWat "Ratio actual over design water mass flow ratio"; Modelica.SIunits.MassFraction FRAir "Ratio actual over design air mass flow ratio"; Modelica.SIunits.Power PFan "Fan power"; protected parameter Modelica.SIunits.MassFraction FRWat0(min=0, start=1, fixed=false) "Ratio actual over design water mass flow ratio at nominal condition"; parameter Modelica.SIunits.Temperature TWatIn0(fixed=false) "Water inlet temperature at nominal condition"; parameter Modelica.SIunits.Temperature TWatOut0(fixed=false) "Water outlet temperature at nominal condition"; parameter Modelica.SIunits.MassFlowRate mWatRef_flow(min=0, start=mWat0_flow, fixed=false) "Reference water flow rate"; Modelica.SIunits.Temperature dTMax(nominal=1) "Maximum possible temperature difference"; public Correlations.BoundsYorkCalc bou "Bounds for correlation"; Modelica.Blocks.Interfaces.RealInput y "Fan control signal"; initial equation TWatOut0 = TAirInWB0 + TApp0; TRan0 = TWatIn0 - TWatOut0; // by definition of the range temp. TApp0 = Correlations.yorkCalc(TRan=TRan0, TWB=TAirInWB0, FRWat=FRWat0, FRAir=1); // this will be solved for FRWat0 mWatRef_flow = mWat0_flow/FRWat0; equation // range temperature TRan = Medium.temperature(sta_a) - Medium.temperature(sta_b); // fractional mass flow rates FRWat = m_flow/mWatRef_flow; FRAir = y; TAppCor = Correlations.yorkCalc(TRan=TRan, TWB=TAir, FRWat=FRWat, FRAir=max(FRWat/bou.liqGasRat_max, FRAir)); dTMax = TWatIn_degC - TAirIn_degC; TAppFreCon = (1-fraFreCon) * ( TWatIn_degC-TAirIn_degC) + fraFreCon * Correlations.yorkCalc(TRan=TRan, TWB=TAir, FRWat=FRWat, FRAir=1); TApp = Buildings.Utilities.Math.Functions.spliceFunction( pos=TAppCor, neg=TAppFreCon, x=y-yMin/2, deltax=yMin/2); TWatOut_degC = TApp + TAirIn_degC; PFan = y^3 * PFan0; end YorkCalc;