modelAirLiquid
Extends from Modelica.Icons.Example (Icon for runnable examples).
Information
Example model of a hybrid IT rack with both liquid-cooled and air-cooled components. The model demonstrates the operation of a rack that combines liquid cooling for high-power IT equipment of 633.6 kW using propylene glycol water with 25% mass fraction as the coolant, and air cooling for lower-power IT equipment of 63.36 kW, which is 10% of the liquid-cooled load.
The liquid cooling loop uses a cooler upstream of a variable speed pump. The cooler maintains a constant supply temperature to the rack at 42°C. A control valve regulates the coolant mass flow rate to track a leaving coolant temperature setpoint. The pump is controlled by a PI controller that maintains a constant pressure drop across the rack equal to the design pressure drop. The controller adjusts the pump speed between 10% and 100% to maintain the pressure setpoint.
The IT loads for both cooling systems are specified using different control strategies. The liquid-cooled utilization follows a time-based schedule. The air-cooled utilization is kept constant at 100% throughout the simulation.
The air cooling loop uses simple pressure boundary conditions that allow free circulation of air through the rack component. The air inlet temperature is 30°C and the fan is sized to have a temperature difference across the rack of 10 K, leading a 40°C outlet air temperature.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Units.SI.Power | PLiq_nominal | 48*13200 | Design power for liquid-cooled IT |
| Modelica.Units.SI.Power | PAir_nominal | 0.1*PLiq_nominal | Design power for air-cooled IT |
| Modelica.Units.SI.TemperatureDifference | dTLiq_nominal | 7 | Design temperature difference of liquid coolant |
| Modelica.Units.SI.Temperature | TLiqIn_nominal | 273.15 + 42 | Supply coolant temperature to rack at design conditions |
| Modelica.Units.SI.MassFlowRate | mLiq_flow_nominal | PLiq_nominal/dTLiq_nominal/cpLiq_default | Nominal mass flow rate for liquid cooling at design conditions |
| Modelica.Units.SI.SpecificHeatCapacity | cpLiq_default | MediumLiq.specificHeatCapacityCp(state = MediumLiq.setState_pTX(T = MediumLiq.T_default, p = MediumLiq.p_default, X = MediumLiq.X_default[1:MediumLiq.nXi])) | Heat capacity of liquid coolant |
| Modelica.Units.SI.PressureDifference | dpValve_nominal | 5000 | Nominal pressure drop of fully open valve |
| Buildings.Fluid.DataCenters.Racks.Liquid.Data.OCP_1kW_OAM_PG25 | datLiq | Liquid-cooled rack performance data | |
| Buildings.Fluid.DataCenters.Racks.Air.Data.Generic | datAir | Air-cooled rack performance data | |
| Buildings.Fluid.DataCenters.Racks.Hybrid.Data.AirLiquid.Generic | dat | ||
| Modelica.Units.SI.Temperature | TAirDatHal | 303.15 | Air temperature in data hall |
| Modelica.Units.SI.SpecificHeatCapacity | cpAir_default | MediumAir.specificHeatCapacityCp(MediumAir.setState_pTX(T = MediumAir.T_default, p = MediumAir.p_default, X = MediumAir.X_default[1:MediumAir.nXi])) | Specific heat capacity of air |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Controls.OBC.CDL.Reals.Sources.TimeTable | utiLiq | Utilization of liquid-cooled hardware | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | utiAir | Utilization of air-cooled hardware | |
| Modelica.Blocks.Math.Gain | PITLiq | Power consumption by the liquid-cooled IT equipment | |
| Modelica.Blocks.Math.Gain | PITAir | Power consumption by the air-cooled IT equipment | |
| Buildings.Fluid.DataCenters.Racks.Hybrid.AirLiquid | rac | ||
| Buildings.Fluid.Movers.Preconfigured.SpeedControlled_y | pum | Pump for liquid cooling loop | |
| Buildings.Fluid.Sources.Boundary_pT | bouLiq | Pressure boundary condition for liquid loop | |
| Buildings.Fluid.Sources.Boundary_pT | datHal | Temperature and pressure of air in data hall | |
| Fluid.Sensors.TemperatureTwoPort | senTLiq_a | Liquid inlet temperature to rack | |
| Fluid.Sensors.TemperatureTwoPort | senTLiq_b | Liquid outlet temperature from rack | |
| Fluid.Sensors.TemperatureTwoPort | senTAir_a | Air inlet temperature | |
| Fluid.Sensors.TemperatureTwoPort | senTAir_b | Air outlet temperature | |
| Buildings.Controls.OBC.CDL.Reals.PID | conPI | PI controller for pump speed to maintain constant pressure across rack | |
| Actuators.Valves.TwoWayLinear | val | Valve | |
| Controls.OBC.CDL.Reals.Sources.Constant | TSetRet | Temperature setpoint for return water | |
| Controls.OBC.CDL.Reals.PID | conVal | PI controller for valve to control return temperature | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | dpSet | Pressure drop setpoint across rack | |
| Buildings.Fluid.HeatExchangers.SensibleCooler_T | coo | Cooler to maintain supply temperature | |
| Buildings.Controls.OBC.CDL.Reals.Sources.Constant | TSetCoo | Temperature setpoint for cooler | |
| Fluid.Sensors.RelativePressure | senRelPre | Relative pressure sensor across rack |
Contents
| Name | Description |
|---|---|
| Propylene glycol | |
| Medium for air cooling loop |
Revisions
-
July 14, 2026, by Michael Wetter:
First implementation.