Buildings.Fluid.HeatExchangers.CoolingTowers.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Fluid.HeatExchangers.CoolingTowers.

Note that most validation models contain simple input data which may not be realistic, but for which the correct output can be obtained through an analytic solution. The examples plot various outputs, which have been verified against these solutions. These model outputs are stored as reference data and used for continuous validation whenever models in the library change.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.Fluid.HeatExchangers.CoolingTowers.Validation.MerkelEnergyPlus MerkelEnergyPlus Validation with EnergyPlus model for Merkel's cooling tower

Buildings.Fluid.HeatExchangers.CoolingTowers.Validation.MerkelEnergyPlus Buildings.Fluid.HeatExchangers.CoolingTowers.Validation.MerkelEnergyPlus

Validation with EnergyPlus model for Merkel's cooling tower

Buildings.Fluid.HeatExchangers.CoolingTowers.Validation.MerkelEnergyPlus

Information

This model validates the model Buildings.Fluid.HeatExchangers.CoolingTowers.Merkel by comparing against results obtained from EnergyPlus.

The EnergyPlus results were obtained using the example file CoolingTower:VariableSpeed, with the cooling tower evaluated as the CoolingTower:VariableSpeed:Merkel model from EnergyPlus.

The difference in results of the cooling tower's leaving water temperature (tow.TLvg and TLvg.EP) during the middle and end of the simulation is because the mass flow rate is zero. For zero mass flow rate, EnergyPlus assumes a steady state condition, whereas the Modelica model is a dynamic model and hence the properties at the outlet are equal to the state variables of the model.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
DensitydenWatMediumWat.density(MediumWat....Default density of water [kg/m3]
PressureDifferencedp_nominal6000Nominal pressure difference of cooling tower [Pa]
VolumeFlowRateVWat_flow_nominal0.00109181Nominal volumetric flow rate of water (medium 2) [m3/s]
MassFlowRatem_flow_nominalVWat_flow_nominal*denWatNominal mass flow rate of water (medium 2) [kg/s]
RealratWatAir_nominal1.61599Nominal water-to-air ratio
TemperatureTAirInWB_nominal18.85 + 273.15Nominal outdoor wetbulb temperature [K]
TemperatureTWatIn_nominal34.16 + 273.15Nominal water inlet temperature [K]
TemperatureTWatOut_initial33.019 + 273.15Nominal water inlet temperature [K]
HeatFlowRateQ_flow_nominal-20286.37455Nominal heat transfer, positive [W]
ThermalConductanceUA_nominal_EP2011.28668Nominal heat transfer, positive [W/K]
PowerPFan_nominal213.00693Nominal fan power [W]
Realr_VEnePlu[:]{0,0.1,0.2,0.3,0.4,0.5,0.6,0...Fan control signal
Realr_PEnePlu[:]{0,0.020982275,0.027843038,0...Fan power output as a function of the signal

Modelica definition

model MerkelEnergyPlus "Validation with EnergyPlus model for Merkel's cooling tower" extends Modelica.Icons.Example; package MediumAir = Buildings.Media.Air "Air medium model"; package MediumWat = Buildings.Media.Water "Water medium model"; parameter Modelica.SIunits.Density denWat= MediumWat.density( MediumWat.setState_pTX(MediumWat.p_default, MediumWat.T_default, MediumWat.X_default)) "Default density of water"; // Cooling tower parameters parameter Modelica.SIunits.PressureDifference dp_nominal = 6000 "Nominal pressure difference of cooling tower"; parameter Modelica.SIunits.VolumeFlowRate VWat_flow_nominal = 0.00109181 "Nominal volumetric flow rate of water (medium 2)"; parameter Modelica.SIunits.MassFlowRate m_flow_nominal= VWat_flow_nominal * denWat "Nominal mass flow rate of water (medium 2)"; parameter Real ratWatAir_nominal = 1.61599 "Nominal water-to-air ratio"; parameter Modelica.SIunits.Temperature TAirInWB_nominal = 18.85+273.15 "Nominal outdoor wetbulb temperature"; parameter Modelica.SIunits.Temperature TWatIn_nominal = 34.16+273.15 "Nominal water inlet temperature"; parameter Modelica.SIunits.Temperature TWatOut_initial = 33.019+273.15 "Nominal water inlet temperature"; parameter Modelica.SIunits.HeatFlowRate Q_flow_nominal = -20286.37455 "Nominal heat transfer, positive"; parameter Modelica.SIunits.ThermalConductance UA_nominal_EP = 2011.28668 "Nominal heat transfer, positive"; parameter Modelica.SIunits.Power PFan_nominal = 213.00693 "Nominal fan power"; parameter Real r_VEnePlu[:] = {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1} "Fan control signal"; parameter Real r_PEnePlu[:] = {0,0.020982275,0.027843038,0.046465108, 0.082729139,0.142515786,0.231705701,0.356179538,0.521817952,0.734501596,1} "Fan power output as a function of the signal"; Modelica.Blocks.Sources.CombiTimeTable datRea( tableOnFile=true, fileName=ModelicaServices.ExternalReferences.loadResource( "modelica://Buildings//Resources/Data/Fluid/HeatExchangers/CoolingTowers/Validation/MerkelEnergyPlus/CoolingTower_VariableSpeed_Merkel.dat"), verboseRead=false, columns=2:10, tableName="EnergyPlus", smoothness=Modelica.Blocks.Types.Smoothness.ConstantSegments) "Reader for \"CoolingTower_VariableSpeed_Merkel.idf\" energy plus example results"; Buildings.Fluid.HeatExchangers.CoolingTowers.Merkel tow( redeclare package Medium = MediumWat, dp_nominal=dp_nominal, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, T_start=TWatOut_initial, m_flow_nominal=m_flow_nominal, ratWatAir_nominal=ratWatAir_nominal, TAirInWB_nominal=TAirInWB_nominal, TWatIn_nominal=TWatIn_nominal, TWatOut_nominal=TWatIn_nominal+Q_flow_nominal/(m_flow_nominal*Buildings.Utilities.Psychrometrics.Constants.cpWatLiq), PFan_nominal=PFan_nominal, yMin=0.1, fraFreCon=0.1, fanRelPow(r_V=r_VEnePlu, r_P=r_PEnePlu), UACor(FRAirMin=0.2)) "Merkel-theory based cooling tower"; Sources.MassFlowSource_T souWat( redeclare package Medium = MediumWat, use_m_flow_in=true, T=328.15, nPorts=1, use_T_in=true) "Water source to the cooling tower"; Sources.Boundary_pT sinWat(redeclare package Medium = MediumWat,nPorts=1) "Water sink from the cooling tower"; Controls.OBC.UnitConversions.From_degC TEntWat "Block that converts entering water temperature"; Controls.OBC.UnitConversions.From_degC TAirWB "Block that converts entering air wetbulb temperature"; Modelica.Blocks.Sources.RealExpression TLvg_EP(y=datRea.y[4]) "EnergyPlus results: cooling tower leaving water temperature"; Modelica.Blocks.Sources.RealExpression Q_flow_EP(y=-1*datRea.y[6]) "EnergyPlus results: cooling tower heat flow rate"; Modelica.Blocks.Sources.RealExpression PFan_EP(y=datRea.y[7]) "EnergyPlus results: fan power consumption"; equation connect(tow.TAir, TAirWB.y); connect(souWat.ports[1], tow.port_a); connect(tow.port_b, sinWat.ports[1]); connect(TEntWat.y, souWat.T_in); connect(datRea.y[2], TAirWB.u); connect(TEntWat.u, datRea.y[3]); connect(souWat.m_flow_in, datRea.y[5]); connect(tow.y, datRea.y[9]); end MerkelEnergyPlus;