Buildings.Fluid.DataCenters.CDUs.LiquidToLiquid

Package with liquid-cooled CDUs

Information

This package contains component models for liquid-to-liquid CDUs.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Fluid.DataCenters.CDUs.LiquidToLiquid.CDU_epsNTU CDU_epsNTU CDU using epsilon-NTU for heat transfer
Buildings.Fluid.DataCenters.CDUs.LiquidToLiquid.Data Data Package with data records for racks
Buildings.Fluid.DataCenters.CDUs.LiquidToLiquid.Examples Examples Collection of models that illustrate model use and test models

Buildings.Fluid.DataCenters.CDUs.LiquidToLiquid.CDU_epsNTU Buildings.Fluid.DataCenters.CDUs.LiquidToLiquid.CDU_epsNTU

CDU using epsilon-NTU for heat transfer

Buildings.Fluid.DataCenters.CDUs.LiquidToLiquid.CDU_epsNTU

Information

Model of a coolant distribution unit (CDU) with with a steady-state, counter-flow heat exchanger that uses the epsilon-NTU correlations.

This model configures the heat exchanger that is used in Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialCDU with a counter-flow heat exchanger that uses the ε-NTU relations, using an instance of Buildings.Fluid.HeatExchangers.PlateHeatExchangerEffectivenessNTU, and hence the heat transfer is calculated with convection coefficients that are a function of the mass flow rate.

See Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialCDU for a description of the CDU model.

Extends from Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialCDU (Partial model for a CDU).

Parameters

TypeNameDefaultDescription
replaceable package MediumPlaPartialMediumMedium in the plant-side component
replaceable package MediumRacPartialMediumMedium in the rack-side component
Generic_epsNTUdat Data record for performance characterization
BooleanaddPowerToMediumtrueSet to false to avoid any power from the pump (=heat and flow work) being added to medium (may give simpler equations)
flowParameterspumpHeadMonotone Actual head of the pump, corrected to impose a minimum descent of the pump curve
Valve controller
SimpleControllercontrollerTypeValBuildings.Controls.OBC.CDL.T...Type of controller for valve
RealkVal1Gain of controller for valve
RealTiVal120Time constant of integrator block of valve controller
RealTdVal0.1Time constant of derivative block for valve controller
Pump controller
SimpleControllercontrollerTypePumBuildings.Controls.OBC.CDL.T...Type of controller for pump
RealkPum1Gain of controller for pump
RealTiPum120Time constant of integrator block of pump controller
RealTdPum0.1Time constant of derivative block for pump controller
Assumptions
BooleanallowFlowReversalPlatrue= false to simplify equations, assuming, but not enforcing, no flow reversal for plant-side medium
BooleanallowFlowReversalRactrue= false to simplify equations, assuming, but not enforcing, no flow reversal for rack-side medium
Advanced
MassFlowRatemPla_flow_small1E-4*abs(mPla_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
MassFlowRatemRac_flow_small1E-4*abs(mRac_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
BooleancheckMediatrueSet to false to disable media consistency check
Flow resistance
Medium 1
BooleancomputeFlowResistancePlatrue=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dpPlafalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistancePlafalse= true, use linear relation between m_flow and dp for any flow rate
Medium 2
BooleancomputeFlowResistanceRactrue=true, compute flow resistance. Set to false to assume no friction
Booleanfrom_dpRacfalse= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistanceRacfalse= true, use linear relation between m_flow and dp for any flow rate
Dynamics
Valve
Booleanuse_strokeTimetrueSet to true to continuously open and close valve using strokeTime from instance dat
InitinitValModelica.Blocks.Types.Init.I...Type of initialization (no init/steady state/initial state/initial output)
RealyVal_start1Initial position of actuator
Pump
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Timetau1Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s]
Booleanuse_riseTimetrueSet to true to continuously change motor speed using risetime from instance dat
RealyPum_start0Initial value of speed

Connectors

TypeNameDescription
FluidPort_aport_aPlaFluid connector aPla (positive design flow direction is from port_aPla to port_bPla)
FluidPort_bport_bPlaFluid connector bPla (positive design flow direction is from port_aPla to port_bPla)
FluidPort_aport_aRacFluid connector aRac (positive design flow direction is from port_aRac to port_bRac)
FluidPort_bport_bRacFluid connector bRac (positive design flow direction is from port_aRac to port_bRac)
input RealInputTSetSet point temperature for water leaving to the IT rack [K]
input RealInputdpSetSet point for static pressure provided by CDU [Pa]
output RealOutputPElectrical power consumed by pump [W]

Modelica definition

model CDU_epsNTU "CDU using epsilon-NTU for heat transfer" extends Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialCDU ( redeclare Fluid.HeatExchangers.PlateHeatExchangerEffectivenessNTU hex( final from_dp1=from_dpPla, final dp1_nominal=dat.dpHexPla_nominal, final linearizeFlowResistance1=linearizeFlowResistancePla, final n1=dat.nPla, final deltaM1=dat.deltaMPla, final from_dp2=from_dpRac, final dp2_nominal=dat.dpHexRac_nominal, final linearizeFlowResistance2=linearizeFlowResistanceRac, final n2=dat.nRac, final deltaM2=dat.deltaMRac, configuration=Buildings.Fluid.Types.HeatExchangerConfiguration.CounterFlow, final use_Q_flow_nominal=true, final Q_flow_nominal=dat.Q_flow_nominal, final T_a1_nominal=dat.TPlaIn_nominal, final T_a2_nominal=dat.TRacIn_nominal, final r_nominal=dat.r_nominal, final nCon1=dat.nConPla, final nCon2=dat.nConRac)); end CDU_epsNTU;