modelChillerWSE
Extends from Modelica.Icons.Example (Icon for runnable examples).
Information
Example model of liquid cooled data center that is cooled with an economizer and a chiller.
The figure below shows the schematic diagram.
The IT load is cooled by a propylene glycol loop, which exchanges heat through the CDU with a chilled water supply. A PI controller regulates the chilled water flow rate through the control valve in the CDU in order to track the propylene glycol temperature that is sent to the IT rack. The chilled water is cooled by an economizer -- if the temperatures permit -- and if the water temperature after the economizer is higher than a temperature set point, the chiller is enabled. The chiller tracks a leaving water set point temperature. Note that the control is quite simple, and multiple parallel equipment as is common in data centers is here simplified with one component only.
The model has a parameter dTOffSet which can be used to shift the design temperatures
up or down. This allows to push the model into temperature regimes that need no chiller.
For example, if dTOffSet=0, the chiller never operates, and all cooling is done
through the economizer.
For more detailed chilled water plant controls, see for example
- Buildings.Examples.ChillerPlant,
- Buildings.Applications.DataCenters.ChillerCooled.Examples, or
- the papers by Grahovac et al. (2023) or Wetter et al. (2014).
References
-
Milica Grahovac, Paul Ehrlich, Jianjun Hu and Michael Wetter.
Model-based Data Center Cooling Controls Comparative Co-design.
Science and Technology for the Built Environment, 30(4), P. 394-414, 2023.
doi:10.1080/23744731.2023.2276011. -
Michael Wetter, Wangda Zuo, Thierry S. Nouidui and Xiufeng Pang.
Modelica Buildings library.
Journal of Building Performance Simulation, 7(4):253-270, 2014.
doi:10.1080/19401493.2013.765506.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Power | PRac | 1E6 | Total rack design power |
| Real | fraWSE | 0.6 | Fraction of peak load covered by water side economizer |
| Real | fraChi | 1 - fraWSE | Fraction of peak load covered by chiller |
| Modelica.Units.SI.TemperatureDifference | dTRac_nominal | -5 | Temperature difference rack loop |
| Modelica.Units.SI.TemperatureDifference | dTPla_nominal | -5 | Temperature difference cooling plant loop |
| Modelica.Units.SI.TemperatureDifference | dTTow_nominal | dTPla_nominal | Temperature difference tower water loop |
| Modelica.Units.SI.Temperature | TRacSup_nominal | 273.15 + 45 | Supply coolant temperature to rack at design conditions |
| Modelica.Units.SI.Temperature | TRacRet_nominal | TRacSup_nominal - dTRac_nominal | Return coolant temperature from rack at design conditions |
| Modelica.Units.SI.TemperatureDifference | TApp_nominal | 3 | Approach temperature at heat exchangers |
| Modelica.Units.SI.Temperature | TPlaSup_nominal | TRacSup_nominal - TApp_nominal | Temperature from cooling plant to CDU at design conditions |
| Modelica.Units.SI.Temperature | TPlaRet_nominal | TPlaSup_nominal - dTPla_nominal | Temperature from CDU to cooling plant at design conditions |
| Modelica.Units.SI.Temperature | TTowRet_nominal | TPlaSup_nominal - TApp_nominal | Return temperature from cooling tower |
| Modelica.Units.SI.Temperature | TTowSup_nominal | TTowRet_nominal - dTTow_nominal | Supply temperature to cooling tower |
| Modelica.Units.SI.Temperature | TDryBul_nominal | 273.15 + 36 | Design dry bulb temperature if WSE is used exclusively (with fraWSE=0.9999) |
| Modelica.Units.SI.MassFlowRate | mRac_flow_nominal | PRac/(TRacRet_nominal - TRacSup_nominal)/MediumRac.cp_const | Rack mass flow rate at design conditions |
| Modelica.Units.SI.MassFlowRate | mPla_flow_nominal | PRac/(TPlaRet_nominal - TPlaSup_nominal)/cpChi_default | Cooling loop water mass flow rate at design conditions |
| Modelica.Units.SI.PressureDifference | dpVal_nominal | 20000 | Valve design pressure drop |
| Modelica.Units.SI.PressureDifference | dpHexChi_nominal | 80000 | Heat exchanger design pressure drop on chiller side |
| Modelica.Units.SI.PressureDifference | dPRac_nominal | 60000 | Rack design pressure drop |
| Buildings.Fluid.DataCenterEquipment.Racks.LiquidCooledSinglePhase.Data.OCP_1kW_OAM_PG25 | datRac | Performance data for IT rack | |
| Real | COPc_nominal | 5 | Chiller COP |
| Real | epsWSE_nominal | QWSE_flow_nominal/(min(mWSEPla_flow_nominal*cpChi_default, mWSETow_flow_nominal*cpTow_default)*(TPlaRet_nominal - TTowRet_nominal)) | Effectiveness of water side economizer |
| Modelica.Units.SI.HeatFlowRate | QCon_flow_nominal | (1 - fraWSE)*PRac*(1/COPc_nominal + 1) | Design heat flow rate of condenser |
| Modelica.Units.SI.HeatFlowRate | QWSE_flow_nominal | fraWSE*PRac | Design heat flow rate of economizer |
| Modelica.Units.SI.MassFlowRate | mEva_flow_nominal | mPla_flow_nominal | Nominal mass flow rate at condenser water, sized to circulate all water through it to meet set point when trim chiller is needed |
| Modelica.Units.SI.MassFlowRate | mCon_flow_nominal | -QCon_flow_nominal/dTTow_nominal/cpTow_default | Nominal mass flow rate at condenser water |
| Modelica.Units.SI.MassFlowRate | mWSETow_flow_nominal | -QWSE_flow_nominal/dTTow_nominal/cpTow_default | Nominal mass flow rate at WSE on tower side |
| Modelica.Units.SI.MassFlowRate | mWSEPla_flow_nominal | -QWSE_flow_nominal/dTPla_nominal/cpChi_default | Nominal mass flow rate at WSE on chilled water side |
| Fluid.DataCenterEquipment.CDUs.LiquidToLiquid.Data.Generic_2MW | datCDU | Data record for CDU | |
| Fluid.HeatExchangers.CoolingTowers.Data.DryCooler.Generic | datCooTow | Performance data for cooling tower |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| BoundaryConditions.WeatherData.Bus | weaBus | Weather data bus |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Controls.OBC.CDL.Reals.Sources.Constant | uti | Utilization of hardware | |
| Buildings.Fluid.DataCenterEquipment.Racks.LiquidCooledSinglePhase.ColdPlateR_P | rac | Rack with cold plate heat exchangers, modeled for simplicity as one large rack | |
| Buildings.Fluid.Sources.Boundary_pT | bou | Pressure boundary condition | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senTCDU_a | Chilled water supply temperature | |
| Buildings.Fluid.DataCenterEquipment.CDUs.LiquidToLiquid.CDU_epsNTU | cdu | CDU, modeled for simplicity as one large CDU | |
| Fluid.Sensors.TemperatureTwoPort | senTCDU_b | Outlet temperature | |
| Fluid.Sensors.TemperatureTwoPort | senTRac_a | Rack inlet temperature | |
| Fluid.Sensors.TemperatureTwoPort | senTRac_b | Rack outlet temperature | |
| Controls.OBC.CDL.Reals.Sources.Constant | dpSet | Set point for head | |
| Controls.OBC.CDL.Reals.Sources.Constant | TSetRacIn | Set point for rack inlet temperature | |
| Fluid.HeatExchangers.ConstantEffectiveness | wse | Water side economizer (Heat exchanger) | |
| Fluid.Chillers.Carnot_TEva | chi | Chiller | |
| Fluid.HeatExchangers.CoolingTowers.DryCooler | cooTow | Cooling tower | |
| BoundaryConditions.WeatherData.ReaderTMY3 | weaDat | Weather data reader | |
| Buildings.Fluid.Movers.Preconfigured.SpeedControlled_y | pumEva | Pump chiller evaporator | |
| Buildings.Fluid.Movers.Preconfigured.SpeedControlled_y | pumWSEChi | Pump for water-side economizer | |
| Buildings.Fluid.Movers.Preconfigured.SpeedControlled_y | pumTow | Pump for tower loop | |
| Fluid.Sensors.TemperatureTwoPort | senTWSE_b2 | Chilled water outlet temperature of water side economizer | |
| Fluid.Movers.Preconfigured.SpeedControlled_y | pumCon | Pump for chiller condenser | |
| Fluid.Sensors.TemperatureTwoPort | senTTow_b | Outlet water temperature of tower | |
| Fluid.FixedResistances.Junction | jun1 | ||
| Fluid.FixedResistances.Junction | jun2 | ||
| Fluid.FixedResistances.Junction | jun3 | ||
| Fluid.Sensors.TemperatureTwoPort | senTEvaIn | Chiller inlet temperature to evaporator | |
| Fluid.FixedResistances.Junction | jun4 | ||
| Fluid.FixedResistances.Junction | jun5 | ||
| Fluid.Sensors.TemperatureTwoPort | senTEvaOut | Chilled water outlet temperature of chiller | |
| Fluid.Sensors.TemperatureTwoPort | senTChi_b1 | Cooling tower water outlet temperature of chiller | |
| Fluid.Sensors.TemperatureTwoPort | senTWSE_b1 | Cooling tower water outlet temperature of water side economizer | |
| Buildings.Fluid.Movers.Preconfigured.SpeedControlled_y | pumWSECW | Pump for water side economizer on cooling tower side | |
| Fluid.Movers.Preconfigured.FlowControlled_dp | pumCDU | Pump chilled water circuit | |
| Fluid.FixedResistances.Junction | jun6 | ||
| Fluid.FixedResistances.Junction | jun7 | ||
| Fluid.FixedResistances.Junction | jun8 | ||
| Controls.OBC.CDL.Reals.PID | conTow | Controller for tower fan and pump | |
| Controls.OBC.CDL.Reals.Sources.Constant | TSetEva | Set point temperature for evaporator outlet temperature | |
| Controls.OBC.CDL.Reals.Sources.Constant | pSetChiWatPum | Pressure setpoint for chilled water pump | |
| Controls.OBC.CDL.Reals.Hysteresis | hysChi | Hysteresis for chiller staging | |
| Controls.OBC.CDL.Conversions.BooleanToReal | yPumChi | Control signal for chiller circulation pumps | |
| Fluid.Sources.Boundary_pT | bou1 | Pressure boundary condition | |
| Controls.OBC.CDL.Reals.AddParameter | TOffSet | Offset for set point | |
| Modelica.Blocks.Sources.RealExpression | PFan | Power consumption of tower fans | |
| Modelica.Blocks.Sources.RealExpression | PPum | Power consumption of pumps | |
| Modelica.Blocks.Sources.RealExpression | PChi | Power consumption of chiller | |
| Modelica.Blocks.Sources.RealExpression | PIT | Power consumption of IT | |
| BaseClasses.ElectricalEnergyMeter | EFan | Energy meter | |
| BaseClasses.ElectricalEnergyMeter | EPum | Energy meter | |
| BaseClasses.ElectricalEnergyMeter | EChi | Energy meter | |
| BaseClasses.ElectricalEnergyMeter | EPIT | Energy meter | |
| Modelica.Blocks.Math.MultiSum | EFac | Electricity for facility | |
| Modelica.Blocks.Math.Division | PUE | Power use effectiveness (not taking into account electrical losses) | |
| Fluid.Sensors.TemperatureTwoPort | senTWSEMix | Water temperature cooling tower loop after WSE | |
| Fluid.Actuators.Valves.TwoWayLinear | valByp | Valve for condenser loop bypass | |
| Fluid.Actuators.Valves.TwoWayLinear | valThr | Valve for condenser loop from cooling tower | |
| Fluid.FixedResistances.Junction | jun9 | Junction at condenser loop | |
| Fluid.FixedResistances.Junction | jun10 | Junction at condenser loop[ | |
| Buildings.Fluid.Sensors.TemperatureTwoPort | senTChi_a1 | Cooling tower water inlet temperature of chiller | |
| Controls.OBC.CDL.Reals.PIDWithReset | conPIDCon | Controller for minimum chiller lift | |
| Controls.OBC.CDL.Reals.AddParameter | TLifMin | Minimum lift of chiller | |
| Controls.OBC.CDL.Reals.MultiplyByParameter | invValSig | Invert valve signal | |
| Controls.OBC.CDL.Reals.AddParameter | invValSig2 | Invert valve control signal | |
| Fluid.Sensors.TemperatureTwoPort | senTTow_a | Inlet water temperature of tower | |
| Controls.OBC.CDL.Reals.AddParameter | TOffSetWSE | Offset for set point for WSE control | |
| Fluid.Sensors.MassFlowRate | senMasFloByEco | Mass flow rate sensor in economizer bypass | |
| Controls.OBC.CDL.Reals.PID | conEcoPla | Controller for economizer pump on facility level | |
| Controls.OBC.CDL.Reals.Sources.Constant | zer | Zero as a set point | |
| Fluid.Sensors.MassFlowRate | senMasFlo3 | Mass flow rate sensor | |
| Controls.OBC.CDL.Reals.Limiter | yPumTow | Pump control signal | |
| Controls.OBC.CDL.Reals.Sources.Constant | zer1 | Zero as a set point | |
| Controls.OBC.CDL.Reals.PID | conEcoTow | Controller for economizer pump on tower loop | |
| Controls.OBC.CDL.Reals.Sources.Constant | TSetTowRet | Set point temperature for tower return temperature | |
| Controls.OBC.CDL.Reals.PID | conPumTow | Controller for tower pump | |
| Controls.OBC.CDL.Reals.Subtract | errTFre | Temperature error after free cooling | |
| Controls.OBC.CDL.Reals.Limiter | yFanTow | Tower fan control signal based on economizer leaving temperature | |
| Controls.OBC.CDL.Reals.Max | yTowFan | Fan control signal | |
| Fluid.Actuators.Valves.TwoWayLinear | valRac | Valve for rack flow control | |
| Controls.OBC.CDL.Reals.Sources.Constant | TSetRacOut | Set point for rack outlet temperature | |
| Controls.OBC.CDL.Reals.PID | conVal | Controller for valve | |
| Modelica.Blocks.Math.Gain | PITIn | Power consumption by the IT equipment | |
| Pipe | pipTowIn | Pipe at tower inlet | |
| Pipe | pipTowOut | Pipe at tower outlet | |
| Pipe | pipCDUIn | Pipe at CDU inlet | |
| Pipe | pipCDUOut | Pipe at CDU outlet | |
| Pipe | pipRacIn | Pipe at rack inlet | |
| Pipe | pipRacOut | Pipe at rack outlet |
Contents
| Name | Description |
|---|---|
| Medium for air | |
| Medium for chilled water loop | |
Revisions
-
December 23, 2025, by Michael Wetter:
First implementation.