Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses

Package with base classes for Buildings.Fluid.DataCenters.Racks.Hybrid

Information

This package contains base classes that are used to construct the models in Buildings.Fluid.DataCenters.Racks.Hybrid.

Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).

Package Content

Name Description
Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.Air Air Partial rack model for air-cooled components
Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.AirLiquid AirLiquid Partial hybrid rack model combining liquid-cooled and air-cooled components
Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.PartialAirLiquidRearDoorHex PartialAirLiquidRearDoorHex Partial model for hybrid rack combining liquid-cooled and air-cooled components with a rear door heat exchanger
Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.PartialAirRearDoorHex PartialAirRearDoorHex Partial model for air-cooled rack with a rear door heat exchanger

Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.Air Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.Air

Partial rack model for air-cooled components

Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.Air

Information

This is a partial model of an IT rack with air-cooled components. The air cooling component with integrated fans is based on Buildings.Fluid.DataCenters.Racks.Air.Rack_P.

The model has fluid ports for the air cooling loop. For air cooling, portAir_a and portAir_b serve as the inlet and outlet ports. The input PAir specifies the power consumption for the air-cooled IT equipment. Note that PAir does not include the power to operate the fan, as this is an output of the model.

The model provides two power consumption outputs. The output PAirTot is the total electric power consumed by air-cooled IT, including fan energy. The output PAirFan is the electric power consumed by the fan for air-cooled IT.

This is a partial model because it does not connect the outlet port air.port_b of the air-cooled component to the model output portAir_b. This connection must be made by the model that extends this partial model.

Parameters

TypeNameDefaultDescription
replaceable package MediumAirModelica.Media.Interfaces.Pa...Medium for air cooling loop
Performance data
Genericdatredeclare parameter Building...Performance data
Fan controller
StrategyfanControlBuildings.Fluid.DataCenters....Type of fan control strategy
RealfanSpeed[:, :][0.0, 0.0; 1.0, 1.0]Load and fan speed matrix (1st column normalized IT load, 2nd fan speed), e.g., fanSpeed=[0, 0; 0.5, 0.7; 1, 1])
TemperatureTAirOut_setdat.air.TOut_nominalSet point temperature for rack outlet air [K]
Realk1Gain of fan PI controller
TimeTi60Integrator time constant of fan PI controller [s]
Dynamics
Air cooling
DynamicsenergyDynamicsAirModelica.Fluid.Types.Dynamic...Type of energy balance for air-cooled component: dynamic (3 initialization options) or steady state
TimetauAir2Time constant of air outlet temperature at nominal flow [s]
Initialization
Air cooling
TemperatureTAir_start293.15Start value of air temperature [K]
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal

Connectors

TypeNameDescription
replaceable package MediumAirMedium for air cooling loop
FluidPort_aportAir_aAir cooling inlet port
FluidPort_bportAir_bAir cooling outlet port
input RealInputPAirPower consumed by air-cooled IT [W]
output RealOutputPAirTotElectric power consumed by air-cooled IT, including fan energy [W]
output RealOutputPAirFanElectric power consumed by fan for air-cooled IT [W]

Modelica definition

partial model Air "Partial rack model for air-cooled components" replaceable package MediumAir = Modelica.Media.Interfaces.PartialMedium "Medium for air cooling loop"; replaceable parameter Buildings.Fluid.DataCenters.Racks.Hybrid.Data.AirRearDoorHexPassive.Generic dat "Performance data"; // Air-cooled parameters parameter Modelica.Fluid.Types.Dynamics energyDynamicsAir=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance for air-cooled component: dynamic (3 initialization options) or steady state"; parameter Modelica.Units.SI.Time tauAir=2 "Time constant of air outlet temperature at nominal flow"; parameter Modelica.Units.SI.Temperature TAir_start = 293.15 "Start value of air temperature"; // Fan control parameter Buildings.Fluid.DataCenters.Racks.FanControllers.Types.Strategy fanControl = Buildings.Fluid.DataCenters.Racks.FanControllers.Types.Strategy.Load "Type of fan control strategy"; parameter Real fanSpeed[:,:]=[0.0,0.0; 1.0,1.0] "Load and fan speed matrix (1st column normalized IT load, 2nd fan speed), e.g., fanSpeed=[0, 0; 0.5, 0.7; 1, 1])"; parameter Modelica.Units.SI.Temperature TAirOut_set=dat.air.TOut_nominal "Set point temperature for rack outlet air"; parameter Real k=1 "Gain of fan PI controller"; parameter Modelica.Units.SI.Time Ti=60 "Integrator time constant of fan PI controller"; parameter Boolean allowFlowReversal = true "= false to simplify equations, assuming, but not enforcing, no flow reversal"; // Fluid ports Modelica.Fluid.Interfaces.FluidPort_a portAir_a( redeclare package Medium = MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0)) "Air cooling inlet port"; Modelica.Fluid.Interfaces.FluidPort_b portAir_b( redeclare package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0)) "Air cooling outlet port"; // Control inputs on the left Modelica.Blocks.Interfaces.RealInput PAir(final unit="W", min=0) "Power consumed by air-cooled IT"; // Power outputs on the right Modelica.Blocks.Interfaces.RealOutput PAirTot(final unit="W", min=0) "Electric power consumed by air-cooled IT, including fan energy"; Modelica.Blocks.Interfaces.RealOutput PAirFan(final unit="W", min=0) "Electric power consumed by fan for air-cooled IT"; // Component instances Buildings.Fluid.DataCenters.Racks.Air.Rack_P air( redeclare package Medium = MediumAir, final allowFlowReversal=allowFlowReversal, final dat=dat.air, final energyDynamics=energyDynamicsAir, final tau=tauAir, final T_start=TAir_start, final fanControl=fanControl, final fanSpeed=fanSpeed, final TAirOut_set=TAirOut_set, final k=k, final Ti=Ti) "Air-cooled rack component"; equation connect(portAir_a, air.port_a); connect(PAir, air.P); connect(air.PTot, PAirTot); connect(air.PFan, PAirFan); end Air;

Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.AirLiquid Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.AirLiquid

Partial hybrid rack model combining liquid-cooled and air-cooled components

Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.AirLiquid

Information

This is a partial model of a hybrid IT rack that combines liquid-cooled and air-cooled components. This model integrates two separate cooling technologies in a single rack. The liquid cooling component uses cold plates and is based on Buildings.Fluid.DataCenters.Racks.Liquid.ColdPlateR_P, while the air cooling component with integrated fans is based on Buildings.Fluid.DataCenters.Racks.Air.Rack_P.

The model has separate fluid ports for each cooling loop. For liquid cooling, portLiq_a and portLiq_b serve as the inlet and outlet ports. For air cooling, portAir_a and portAir_b serve as the inlet and outlet ports. Each cooling system has its own input for the electrical power consumption by the IT equipment. The input PLiq specifies the power consumption for the liquid-cooled IT equipment, and the input PAir specifies the power consumption for the air-cooled IT equipment. Note that PAir does not include the power to operate the fan, as this is an output of the model.

The model provides three power consumption outputs on the right side. The output PLiqTot is the electric power consumed by liquid-cooled IT. The output PAirTot is the total electric power consumed by air-cooled IT, including fan energy. The output PAirFan is the electric power consumed by the fan for air-cooled IT.

This is a partial model because it does not connect the outlet port air.port_b of the air-cooled component to the model output portAir_b. This connection must be made by the model that extends this partial model.

Parameters

TypeNameDefaultDescription
replaceable package MediumLiqModelica.Media.Interfaces.Pa...Medium for liquid cooling loop
replaceable package MediumAirModelica.Media.Interfaces.Pa...Medium for air cooling loop
Performance data
Genericdatredeclare parameter Building...Performance data
Liquid cooling
VolumeFlowRateVColPla_flow_nominalsum(dat.liq.theRes.V_flow)/s...Design flow rate of one cold plate for liquid cooling [m3/s]
RealnColPladat.liq.PIT_nominal/(VColPla...Number of cold plates for liquid cooling
Fan controller
StrategyfanControlBuildings.Fluid.DataCenters....Type of fan control strategy
RealfanSpeed[:, :][0.0, 0.0; 1.0, 1.0]Load and fan speed matrix (1st column normalized IT load, 2nd fan speed), e.g., fanSpeed=[0, 0; 0.5, 0.7; 1, 1])
TemperatureTAirOut_setdat.air.TOut_nominalSet point temperature for rack outlet air [K]
Realk1Gain of fan PI controller
TimeTi60Integrator time constant of fan PI controller [s]
Dynamics
Liquid cooling
DynamicsenergyDynamicsLiqModelica.Fluid.Types.Dynamic...Type of energy balance for liquid-cooled component: dynamic (3 initialization options) or steady state
TimetauLiq2Time constant of liquid outlet temperature at nominal flow [s]
Air cooling
DynamicsenergyDynamicsAirModelica.Fluid.Types.Dynamic...Type of energy balance for air-cooled component: dynamic (3 initialization options) or steady state
TimetauAir2Time constant of air outlet temperature at nominal flow [s]
Initialization
Liquid cooling
TemperatureTLiq_start293.15Start value of liquid temperature [K]
Air cooling
TemperatureTAir_start293.15Start value of air temperature [K]
Advanced
Liquid cooling
BooleanlinearizedLiqfalse= true, use linear relation between m_flow and dp for liquid cooling
Assumptions
BooleanallowFlowReversalAirtrue= false to simplify equations, assuming, but not enforcing, no flow reversal for air loop
BooleanallowFlowReversalLiqtrue= false to simplify equations, assuming, but not enforcing, no flow reversal for liquid loop

Connectors

TypeNameDescription
replaceable package MediumLiqMedium for liquid cooling loop
replaceable package MediumAirMedium for air cooling loop
FluidPort_aportLiq_aLiquid cooling inlet port
FluidPort_bportLiq_bLiquid cooling outlet port
FluidPort_aportAir_aAir cooling inlet port
FluidPort_bportAir_bAir cooling outlet port
input RealInputPLiqPower consumed by for liquid-cooled IT [W]
input RealInputPAirPower consumed by air-cooled IT [W]
output RealOutputPLiqTotElectric power consumed by liquid-cooled IT [W]
output RealOutputPAirTotElectric power consumed by air-cooled IT, including fan energy [W]
output RealOutputPAirFanElectric power consumed by fan for air-cooled IT [W]

Modelica definition

partial model AirLiquid "Partial hybrid rack model combining liquid-cooled and air-cooled components" replaceable package MediumLiq = Modelica.Media.Interfaces.PartialMedium "Medium for liquid cooling loop"; replaceable package MediumAir = Modelica.Media.Interfaces.PartialMedium "Medium for air cooling loop"; replaceable parameter Buildings.Fluid.DataCenters.Racks.Hybrid.Data.AirLiquid.Generic dat "Performance data"; // AirLiquid-cooled parameters parameter Modelica.Fluid.Types.Dynamics energyDynamicsLiq=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance for liquid-cooled component: dynamic (3 initialization options) or steady state"; parameter Modelica.Units.SI.Time tauLiq=2 "Time constant of liquid outlet temperature at nominal flow"; parameter Modelica.Units.SI.Temperature TLiq_start = 293.15 "Start value of liquid temperature"; parameter Modelica.Units.SI.VolumeFlowRate VColPla_flow_nominal=sum(dat.liq.theRes.V_flow) /size(dat.liq.theRes.V_flow, 1) "Design flow rate of one cold plate for liquid cooling"; parameter Real nColPla(min=0)=dat.liq.PIT_nominal/ (VColPla_flow_nominal*1000*4200*(dat.liq.PIT_nominal/ (dat.liq.m_flow_nominal*4200))) "Number of cold plates for liquid cooling"; parameter Boolean linearizedLiq = false "= true, use linear relation between m_flow and dp for liquid cooling"; // Air-cooled parameters parameter Modelica.Fluid.Types.Dynamics energyDynamicsAir=Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance for air-cooled component: dynamic (3 initialization options) or steady state"; parameter Modelica.Units.SI.Time tauAir=2 "Time constant of air outlet temperature at nominal flow"; parameter Modelica.Units.SI.Temperature TAir_start = 293.15 "Start value of air temperature"; // Fan control parameter Buildings.Fluid.DataCenters.Racks.FanControllers.Types.Strategy fanControl = Buildings.Fluid.DataCenters.Racks.FanControllers.Types.Strategy.Load "Type of fan control strategy"; parameter Real fanSpeed[:,:]=[0.0,0.0; 1.0,1.0] "Load and fan speed matrix (1st column normalized IT load, 2nd fan speed), e.g., fanSpeed=[0, 0; 0.5, 0.7; 1, 1])"; parameter Modelica.Units.SI.Temperature TAirOut_set=dat.air.TOut_nominal "Set point temperature for rack outlet air"; parameter Real k=1 "Gain of fan PI controller"; parameter Modelica.Units.SI.Time Ti=60 "Integrator time constant of fan PI controller"; parameter Boolean allowFlowReversalAir = true "= false to simplify equations, assuming, but not enforcing, no flow reversal for air loop"; parameter Boolean allowFlowReversalLiq = true "= false to simplify equations, assuming, but not enforcing, no flow reversal for liquid loop"; // Fluid ports Modelica.Fluid.Interfaces.FluidPort_a portLiq_a( redeclare package Medium = MediumLiq, m_flow(min=if allowFlowReversalLiq then -Modelica.Constants.inf else 0)) "Liquid cooling inlet port"; Modelica.Fluid.Interfaces.FluidPort_b portLiq_b( redeclare package Medium = MediumLiq, m_flow(max=if allowFlowReversalLiq then +Modelica.Constants.inf else 0)) "Liquid cooling outlet port"; Modelica.Fluid.Interfaces.FluidPort_a portAir_a( redeclare package Medium = MediumAir, m_flow(min=if allowFlowReversalAir then -Modelica.Constants.inf else 0)) "Air cooling inlet port"; Modelica.Fluid.Interfaces.FluidPort_b portAir_b( redeclare package Medium = MediumAir, m_flow(max=if allowFlowReversalAir then +Modelica.Constants.inf else 0)) "Air cooling outlet port"; // Control inputs on the left Modelica.Blocks.Interfaces.RealInput PLiq(final unit="W", min=0) "Power consumed by for liquid-cooled IT"; Modelica.Blocks.Interfaces.RealInput PAir(final unit="W", min=0) "Power consumed by air-cooled IT"; // Power outputs on the right Modelica.Blocks.Interfaces.RealOutput PLiqTot(final unit="W") "Electric power consumed by liquid-cooled IT"; Modelica.Blocks.Interfaces.RealOutput PAirTot(final unit="W") "Electric power consumed by air-cooled IT, including fan energy"; Modelica.Blocks.Interfaces.RealOutput PAirFan(final unit="W") "Electric power consumed by fan for air-cooled IT"; // Component instances Buildings.Fluid.DataCenters.Racks.Liquid.ColdPlateR_P liq( redeclare package Medium = MediumLiq, final allowFlowReversal=allowFlowReversalLiq, final dat=dat.liq, final energyDynamics=energyDynamicsLiq, final tau=tauLiq, final T_start=TLiq_start, final VColPla_flow_nominal=VColPla_flow_nominal, final nColPla=nColPla, final linearized=linearizedLiq) "Liquid-cooled rack component"; Buildings.Fluid.DataCenters.Racks.Air.Rack_P air( redeclare package Medium = MediumAir, final allowFlowReversal=allowFlowReversalAir, final dat=dat.air, final energyDynamics=energyDynamicsAir, final tau=tauAir, final T_start=TAir_start, final fanControl=fanControl, final fanSpeed=fanSpeed, final TAirOut_set=TAirOut_set, final k=k, final Ti=Ti) "Air-cooled rack component"; equation connect(portLiq_a, liq.port_a); connect(liq.port_b, portLiq_b); connect(portAir_a, air.port_a); connect(PLiq, PLiqTot); connect(PAir, air.P); connect(air.PTot, PAirTot); connect(air.PFan, PAirFan); connect(liq.P, PLiq); end AirLiquid;

Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.PartialAirLiquidRearDoorHex Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.PartialAirLiquidRearDoorHex

Partial model for hybrid rack combining liquid-cooled and air-cooled components with a rear door heat exchanger

Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.PartialAirLiquidRearDoorHex

Information

Partial model of a hybrid IT rack that combines liquid-cooled and air-cooled components with a rear door heat exchanger.

This model extends Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.AirLiquid and adds a partial model for a rear door heat exchanger.

Extends from Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.AirLiquid (Partial hybrid rack model combining liquid-cooled and air-cooled components).

Parameters

TypeNameDefaultDescription
replaceable package MediumLiqPartialMediumMedium for liquid cooling loop
replaceable package MediumAirPartialMediumMedium for air cooling loop
replaceable package MediumReaDooHexModelica.Media.Interfaces.Pa...Medium for rear door heat exchanger coolant loop
PartialRearDoorHeatExchangerreaDooHexredeclare Buildings.Fluid.Da...Rear door heat exchanger
Liquid cooling
VolumeFlowRateVColPla_flow_nominalsum(dat.liq.theRes.V_flow)/s...Design flow rate of one cold plate for liquid cooling [m3/s]
RealnColPladat.liq.PIT_nominal/(VColPla...Number of cold plates for liquid cooling
Fan controller
StrategyfanControlBuildings.Fluid.DataCenters....Type of fan control strategy
RealfanSpeed[:, :][0.0, 0.0; 1.0, 1.0]Load and fan speed matrix (1st column normalized IT load, 2nd fan speed), e.g., fanSpeed=[0, 0; 0.5, 0.7; 1, 1])
TemperatureTAirOut_setdat.air.TOut_nominalSet point temperature for rack outlet air [K]
Realk1Gain of fan PI controller
TimeTi60Integrator time constant of fan PI controller [s]
Dynamics
Liquid cooling
DynamicsenergyDynamicsLiqModelica.Fluid.Types.Dynamic...Type of energy balance for liquid-cooled component: dynamic (3 initialization options) or steady state
TimetauLiq2Time constant of liquid outlet temperature at nominal flow [s]
Air cooling
DynamicsenergyDynamicsAirModelica.Fluid.Types.Dynamic...Type of energy balance for air-cooled component: dynamic (3 initialization options) or steady state
TimetauAir2Time constant of air outlet temperature at nominal flow [s]
Initialization
Liquid cooling
TemperatureTLiq_start293.15Start value of liquid temperature [K]
Air cooling
TemperatureTAir_start293.15Start value of air temperature [K]
Advanced
Liquid cooling
BooleanlinearizedLiqfalse= true, use linear relation between m_flow and dp for liquid cooling
Assumptions
BooleanallowFlowReversalAirtrue= false to simplify equations, assuming, but not enforcing, no flow reversal for air loop
BooleanallowFlowReversalLiqtrue= false to simplify equations, assuming, but not enforcing, no flow reversal for liquid loop
BooleanallowFlowReversalCootrue= false to simplify equations, assuming, but not enforcing, no flow reversal for rear door heat exchanger coolant

Connectors

TypeNameDescription
FluidPort_aportLiq_aLiquid cooling inlet port
FluidPort_bportLiq_bLiquid cooling outlet port
FluidPort_aportAir_aAir cooling inlet port
FluidPort_bportAir_bAir cooling outlet port
input RealInputPLiqPower consumed by for liquid-cooled IT [W]
input RealInputPAirPower consumed by air-cooled IT [W]
output RealOutputPLiqTotElectric power consumed by liquid-cooled IT [W]
output RealOutputPAirTotElectric power consumed by air-cooled IT, including fan energy [W]
output RealOutputPAirFanElectric power consumed by fan for air-cooled IT [W]
replaceable package MediumReaDooHexMedium for rear door heat exchanger coolant loop
FluidPort_aportReaDooHex_aRear door heat exchanger coolant inlet port
FluidPort_bportReaDooHex_bRear door heat exchanger coolant outlet port

Modelica definition

partial model PartialAirLiquidRearDoorHex "Partial model for hybrid rack combining liquid-cooled and air-cooled components with a rear door heat exchanger" extends Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.AirLiquid( redeclare replaceable parameter Buildings.Fluid.DataCenters.Racks.Hybrid.Data.AirLiquidRearDoorHexPassive.Generic dat constrainedby Buildings.Fluid.DataCenters.Racks.Hybrid.Data.AirLiquidRearDoorHexPassive.Generic); replaceable package MediumReaDooHex = Modelica.Media.Interfaces.PartialMedium "Medium for rear door heat exchanger coolant loop"; parameter Boolean allowFlowReversalCoo = true "= false to simplify equations, assuming, but not enforcing, no flow reversal for rear door heat exchanger coolant"; Modelica.Fluid.Interfaces.FluidPort_a portReaDooHex_a( redeclare final package Medium = MediumReaDooHex, m_flow(min=if allowFlowReversalCoo then -Modelica.Constants.inf else 0)) "Rear door heat exchanger coolant inlet port"; Modelica.Fluid.Interfaces.FluidPort_b portReaDooHex_b( redeclare final package Medium = MediumReaDooHex, m_flow(max=if allowFlowReversalCoo then +Modelica.Constants.inf else 0)) "Rear door heat exchanger coolant outlet port"; replaceable Buildings.Fluid.DataCenters.Racks.RearDoorHeatExchangers.BaseClasses.PartialRearDoorHeatExchanger reaDooHex constrainedby Buildings.Fluid.DataCenters.Racks.RearDoorHeatExchangers.BaseClasses.PartialRearDoorHeatExchanger( redeclare package MediumCoo = MediumReaDooHex, redeclare package MediumAir = MediumAir, final allowFlowReversalCoo=allowFlowReversalCoo, final allowFlowReversalAir=allowFlowReversalAir, dat( mAir_flow_nominal=dat.reaDooHex.mAir_flow_nominal, mCoo_flow_nominal=dat.reaDooHex.mCoo_flow_nominal, Q_flow_nominal=dat.reaDooHex.Q_flow_nominal, TAirIn_nominal=dat.reaDooHex.TAirIn_nominal, TCooIn_nominal=dat.reaDooHex.TCooIn_nominal, dpCoo_nominal=dat.reaDooHex.dpCoo_nominal, dpAir_nominal=dat.reaDooHex.dpAir_nominal)) "Rear door heat exchanger"; equation connect(reaDooHex.portAir_a, air.port_b); connect(reaDooHex.portAir_b, portAir_b); connect(reaDooHex.portCoo_b, portReaDooHex_b); connect(reaDooHex.portCoo_a, portReaDooHex_a); end PartialAirLiquidRearDoorHex;

Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.PartialAirRearDoorHex Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.PartialAirRearDoorHex

Partial model for air-cooled rack with a rear door heat exchanger

Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.PartialAirRearDoorHex

Information

Partial model of an air-cooled IT rack with a rear door heat exchanger.

This model extends Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.Air and adds a partial model for a rear door heat exchanger.

Extends from Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.Air (Partial rack model for air-cooled components).

Parameters

TypeNameDefaultDescription
replaceable package MediumAirPartialMediumMedium for air cooling loop
replaceable package MediumReaDooHexModelica.Media.Interfaces.Pa...Medium for rear door heat exchanger coolant loop
PartialRearDoorHeatExchangerreaDooHexredeclare Buildings.Fluid.Da...Rear door heat exchanger
Fan controller
StrategyfanControlBuildings.Fluid.DataCenters....Type of fan control strategy
RealfanSpeed[:, :][0.0, 0.0; 1.0, 1.0]Load and fan speed matrix (1st column normalized IT load, 2nd fan speed), e.g., fanSpeed=[0, 0; 0.5, 0.7; 1, 1])
TemperatureTAirOut_setdat.air.TOut_nominalSet point temperature for rack outlet air [K]
Realk1Gain of fan PI controller
TimeTi60Integrator time constant of fan PI controller [s]
Dynamics
Air cooling
DynamicsenergyDynamicsAirModelica.Fluid.Types.Dynamic...Type of energy balance for air-cooled component: dynamic (3 initialization options) or steady state
TimetauAir2Time constant of air outlet temperature at nominal flow [s]
Initialization
Air cooling
TemperatureTAir_start293.15Start value of air temperature [K]
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal
BooleanallowFlowReversalCootrue= false to simplify equations, assuming, but not enforcing, no flow reversal for rear door heat exchanger coolant

Connectors

TypeNameDescription
FluidPort_aportAir_aAir cooling inlet port
FluidPort_bportAir_bAir cooling outlet port
input RealInputPAirPower consumed by air-cooled IT [W]
output RealOutputPAirTotElectric power consumed by air-cooled IT, including fan energy [W]
output RealOutputPAirFanElectric power consumed by fan for air-cooled IT [W]
replaceable package MediumReaDooHexMedium for rear door heat exchanger coolant loop
FluidPort_aportReaDooHex_aRear door heat exchanger coolant inlet port
FluidPort_bportReaDooHex_bRear door heat exchanger coolant outlet port

Modelica definition

partial model PartialAirRearDoorHex "Partial model for air-cooled rack with a rear door heat exchanger" extends Buildings.Fluid.DataCenters.Racks.Hybrid.BaseClasses.Air( redeclare replaceable parameter Buildings.Fluid.DataCenters.Racks.Hybrid.Data.AirRearDoorHexPassive.Generic dat constrainedby Buildings.Fluid.DataCenters.Racks.Hybrid.Data.AirRearDoorHexPassive.Generic); replaceable package MediumReaDooHex = Modelica.Media.Interfaces.PartialMedium "Medium for rear door heat exchanger coolant loop"; parameter Boolean allowFlowReversalCoo = true "= false to simplify equations, assuming, but not enforcing, no flow reversal for rear door heat exchanger coolant"; Modelica.Fluid.Interfaces.FluidPort_a portReaDooHex_a( redeclare final package Medium = MediumReaDooHex, m_flow(min=if allowFlowReversalCoo then -Modelica.Constants.inf else 0)) "Rear door heat exchanger coolant inlet port"; Modelica.Fluid.Interfaces.FluidPort_b portReaDooHex_b( redeclare final package Medium = MediumReaDooHex, m_flow(max=if allowFlowReversalCoo then +Modelica.Constants.inf else 0)) "Rear door heat exchanger coolant outlet port"; replaceable Buildings.Fluid.DataCenters.Racks.RearDoorHeatExchangers.BaseClasses.PartialRearDoorHeatExchanger reaDooHex constrainedby Buildings.Fluid.DataCenters.Racks.RearDoorHeatExchangers.BaseClasses.PartialRearDoorHeatExchanger( redeclare package MediumCoo = MediumReaDooHex, redeclare package MediumAir = MediumAir, final allowFlowReversalCoo=allowFlowReversalCoo, final allowFlowReversalAir=allowFlowReversal, dat( mAir_flow_nominal=dat.reaDooHex.mAir_flow_nominal, mCoo_flow_nominal=dat.reaDooHex.mCoo_flow_nominal, Q_flow_nominal=dat.reaDooHex.Q_flow_nominal, TAirIn_nominal=dat.reaDooHex.TAirIn_nominal, TCooIn_nominal=dat.reaDooHex.TCooIn_nominal, dpCoo_nominal=dat.reaDooHex.dpCoo_nominal, dpAir_nominal=dat.reaDooHex.dpAir_nominal)) "Rear door heat exchanger"; equation connect(reaDooHex.portAir_a, air.port_b); connect(reaDooHex.portAir_b, portAir_b); connect(reaDooHex.portCoo_b, portReaDooHex_b); connect(reaDooHex.portCoo_a, portReaDooHex_a); end PartialAirRearDoorHex;