modelCDU_epsNTU
CDU using epsilon-NTU for heat transfer
Extends from Buildings.Fluid.DataCenterEquipment.CDUs.BaseClasses.PartialCDU (Partial model for a CDU).
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.DataCenterEquipment.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.DataCenterEquipment.CDUs.BaseClasses.PartialCDU for a description of the CDU model.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.DataCenterEquipment.CDUs.LiquidToLiquid.Data.Generic_epsNTU | dat (from PartialCDU) | Data record for performance characterization | |
| Boolean | addPowerToMedium (from PartialCDU) | true | Set to false to avoid any power from the pump (=heat and flow work) being added to medium (may give simpler equations) |
| Buildings.Fluid.Movers.BaseClasses.Characteristics.flowParameters | pumpHeadMonotone (from PartialCDU) | Actual head of the pump, corrected to impose a minimum descent of the pump curve | |
| Assumptions | |||
| Boolean | allowFlowReversalPla (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for plant-side medium |
| Boolean | allowFlowReversalRac (from PartialFourPort) | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for rack-side medium |
| Nominal condition | |||
| Modelica.Units.SI.MassFlowRate | mPla_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Modelica.Units.SI.MassFlowRate | mRac_flow_nominal (from PartialFourPortInterface) | Nominal mass flow rate | |
| Advanced | |||
| MediumPla.MassFlowRate | mPla_flow_small (from PartialFourPortInterface) | 1E-4*abs(mPla_flow_nominal) | Small mass flow rate for regularization of zero flow |
| MediumRac.MassFlowRate | mRac_flow_small (from PartialFourPortInterface) | 1E-4*abs(mRac_flow_nominal) | Small mass flow rate for regularization of zero flow |
| Advanced › Diagnostics | |||
| Boolean | show_T (from PartialFourPortInterface) | false | = true, if actual temperature at port is computed |
| Boolean | checkMedia (from PartialCDU) | true | Set to false to disable media consistency check |
| Flow resistance › Medium 1 | |||
| Boolean | computeFlowResistancePla (from PartialCDU) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dpPla (from PartialCDU) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearizeFlowResistancePla (from PartialCDU) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Flow resistance › Medium 2 | |||
| Boolean | computeFlowResistanceRac (from PartialCDU) | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dpRac (from PartialCDU) | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearizeFlowResistanceRac (from PartialCDU) | false | = true, use linear relation between m_flow and dp for any flow rate |
| Dynamics › Valve | |||
| Boolean | use_strokeTime (from PartialCDU) | true | Set to true to continuously open and close valve using strokeTime from instance dat |
| Modelica.Blocks.Types.Init | initVal (from PartialCDU) | Modelica.Blocks.Types.Init.InitialOutput | Type of initialization (no init/steady state/initial state/initial output) |
| Real | yVal_start (from PartialCDU) | 1 | Initial position of actuator |
| Dynamics › Pump | |||
| Modelica.Fluid.Types.Dynamics | energyDynamics (from PartialCDU) | Modelica.Fluid.Types.Dynamics.FixedInitial | Type of energy balance: dynamic (3 initialization options) or steady state |
| Modelica.Units.SI.Time | tau (from PartialCDU) | 1 | Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic |
| Boolean | use_riseTime (from PartialCDU) | true | Set to true to continuously change motor speed using risetime from instance dat |
| Real | yPum_start (from PartialCDU) | 0 | Initial value of speed |
| Valve controller | |||
| Controls.OBC.CDL.Types.SimpleController | controllerTypeVal (from PartialCDU) | Buildings.Controls.OBC.CDL.Types.SimpleController.PI | Type of controller for valve |
| Real | kVal (from PartialCDU) | 1 | Gain of controller for valve |
| Real | TiVal (from PartialCDU) | 120 | Time constant of integrator block of valve controller |
| Real | TdVal (from PartialCDU) | 0.1 | Time constant of derivative block for valve controller |
| Pump controller | |||
| Controls.OBC.CDL.Types.SimpleController | controllerTypePum (from PartialCDU) | Buildings.Controls.OBC.CDL.Types.SimpleController.PI | Type of controller for pump |
| Real | kPum (from PartialCDU) | 1 | Gain of controller for pump |
| Real | TiPum (from PartialCDU) | 120 | Time constant of integrator block of pump controller |
| Real | TdPum (from PartialCDU) | 0.1 | Time constant of derivative block for pump controller |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Fluid.Interfaces.FluidPort_a | port_aPla (from PartialFourPort) | Fluid connector aPla (positive design flow direction is from port_aPla to port_bPla) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_bPla (from PartialFourPort) | Fluid connector bPla (positive design flow direction is from port_aPla to port_bPla) | |
| Modelica.Fluid.Interfaces.FluidPort_a | port_aRac (from PartialFourPort) | Fluid connector aRac (positive design flow direction is from port_aRac to port_bRac) | |
| Modelica.Fluid.Interfaces.FluidPort_b | port_bRac (from PartialFourPort) | Fluid connector bRac (positive design flow direction is from port_aRac to port_bRac) | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | TSet (from PartialCDU) | Set point temperature for water leaving to the IT rack | |
| Buildings.Controls.OBC.CDL.Interfaces.RealInput | dpSet (from PartialCDU) | Set point for static pressure provided by CDU | |
| Modelica.Blocks.Interfaces.RealOutput | P (from PartialCDU) | Electrical power consumed by pump |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| MediumPla.MassFlowRate | mPla_flow (from PartialFourPortInterface) | port_aPla.m_flow | Mass flow rate from port_aPla to port_bPla (mPla_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dpPla (from PartialFourPortInterface) | port_aPla.p - port_bPla.p | Pressure difference between port_aPla and port_bPla |
| MediumRac.MassFlowRate | mRac_flow (from PartialFourPortInterface) | port_aRac.m_flow | Mass flow rate from port_aRac to port_bRac (mRac_flow > 0 is design flow direction) |
| Modelica.Units.SI.PressureDifference | dpRac (from PartialFourPortInterface) | port_aRac.p - port_bRac.p | Pressure difference between port_aRac and port_bRac |
| MediumPla.ThermodynamicState | sta_aPla (from PartialFourPortInterface) | if allowFlowReversalPla then MediumPla.setState_phX(port_aPla.p, noEvent(actualStream(port_aPla.h_outflow)), noEvent(actualStream(port_aPla.Xi_outflow))) else MediumPla.setState_phX(port_aPla.p, inStream(port_aPla.h_outflow), inStream(port_aPla.Xi_outflow)) | Medium properties in port_aPla |
| MediumPla.ThermodynamicState | sta_bPla (from PartialFourPortInterface) | if allowFlowReversalPla then MediumPla.setState_phX(port_bPla.p, noEvent(actualStream(port_bPla.h_outflow)), noEvent(actualStream(port_bPla.Xi_outflow))) else MediumPla.setState_phX(port_bPla.p, port_bPla.h_outflow, port_bPla.Xi_outflow) | Medium properties in port_bPla |
| MediumRac.ThermodynamicState | sta_aRac (from PartialFourPortInterface) | if allowFlowReversalRac then MediumRac.setState_phX(port_aRac.p, noEvent(actualStream(port_aRac.h_outflow)), noEvent(actualStream(port_aRac.Xi_outflow))) else MediumRac.setState_phX(port_aRac.p, inStream(port_aRac.h_outflow), inStream(port_aRac.Xi_outflow)) | Medium properties in port_aRac |
| MediumRac.ThermodynamicState | sta_bRac (from PartialFourPortInterface) | if allowFlowReversalRac then MediumRac.setState_phX(port_bRac.p, noEvent(actualStream(port_bRac.h_outflow)), noEvent(actualStream(port_bRac.Xi_outflow))) else MediumRac.setState_phX(port_bRac.p, port_bRac.h_outflow, port_bRac.Xi_outflow) | Medium properties in port_bRac |
| Controls.OBC.CDL.Reals.PID | conVal (from PartialCDU) | Controller for valve | |
| Controls.OBC.CDL.Reals.PID | conPum (from PartialCDU) | Controller for pump | |
| Buildings.Fluid.Interfaces.PartialFourPortInterface | hex (from PartialCDU) | ||
| Fluid.Actuators.Valves.TwoWayEqualPercentage | val (from PartialCDU) | Control valve on chilled water side | |
| Fluid.Movers.SpeedControlled_y | pum (from PartialCDU) | Pump on IT side | |
| Fluid.FixedResistances.PressureDrop | fil (from PartialCDU) | Filter | |
| Fluid.Storage.ExpansionVessel | exp (from PartialCDU) | Expansion vessel | |
| Fluid.Sensors.RelativePressure | senRelPre (from PartialCDU) | Differential pressure sensor | |
| Fluid.Sensors.TemperatureTwoPort | senTemRacSup (from PartialCDU) | Temperature sensor for medium leaving towards IT racks |
Revisions
-
April 29, 2025, by Michael Wetter:
First implementation.