Buildings.Fluid.DataCenters.CDUs.BaseClasses
Package with base classes
Information
This package contains base classes that are used to construct the classes in Buildings.Fluid.DataCenters.CDUs.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Package Content
| Name | Description |
|---|---|
| Partial model for a CDU | |
| Partial model with four ports | |
| Partial model with four ports and declaration of quantities that are used by CDU models |
Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialCDU
Partial model for a CDU
Information
Model of a coolant distribution unit (CDU) with built in two-way valve on the chilled water side and pump on the IT side as shown in the figure below.
The two fluid streams are separated by a heat exchanger.
On the chilled water side is a two-way valve that controls the mass flow rate to track to set point for the leaving fluid temperature that goes to the IT racks. By default, the controller is configured as a PI-controller. The valve has an equal-percentage opening characteristics. By default, the valve pressure drop is set to the same value as the heat exchanger pressure drop, achieving a valve authority of 0.5. The valve is modeled using an instance of Buildings.Fluid.Actuators.Valves.TwoWayEqualPercentage.
On the IT side is a circulation pump that is controlled to track a set point for the head between the two fluid ports. Note that this head is not the pump head, but rather the head between the fluid ports of the CDU, and hence it takes into account the flow resistance of the heat exchanger. The controller for the pump is configured by default as a PI-controller.
Note that the head, specified through the parameter dpPum_nominal,
is the head of the CDU.
To properly size the pump, set dpPum_nominal to the flow resistance that is
external to the CDU, plus the flow resistance of the heat exchanger dpHex_nominal
and the filter.
The pump is modeled using an instance of Buildings.Fluid.Movers.Preconfigured.SpeedControlled_y.
On the IT side, there is also an expansion vessel, modeled using an instance of Buildings.Fluid.Storage.ExpansionVessel. This component sets a reference static pressure, and if the medium model computes density as a function of temperature during the simulation, it provides a volume for the medium's thermal expansion. Note however that to improve computing performance, the medium Buildings.Media.Antifreeze.PropyleneGlycolWater assumes density as constant during the simulation.
Extends from Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialFourPortInterface (Partial model with four ports and declaration of quantities that are used by CDU models).
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| replaceable package MediumPla | PartialMedium | Medium in the plant-side component | |
| replaceable package MediumRac | PartialMedium | Medium in the rack-side component | |
| Generic_epsNTU | dat | Data record for performance characterization | |
| Boolean | addPowerToMedium | true | Set to false to avoid any power from the pump (=heat and flow work) being added to medium (may give simpler equations) |
| PartialFourPortInterface | hex | redeclare Buildings.Fluid.In... | Heat exchanger |
| flowParameters | pumpHeadMonotone | pumpHeadMonotone(V_flow=dat.... | Actual head of the pump, corrected to impose a minimum descent of the pump curve |
| Nominal condition | |||
| MassFlowRate | mPla_flow_nominal | dat.mPla_flow_nominal | Nominal mass flow rate [kg/s] |
| MassFlowRate | mRac_flow_nominal | dat.mRac_flow_nominal | Nominal mass flow rate [kg/s] |
| Valve controller | |||
| SimpleController | controllerTypeVal | Buildings.Controls.OBC.CDL.T... | Type of controller for valve |
| Real | kVal | 1 | Gain of controller for valve |
| Real | TiVal | 120 | Time constant of integrator block of valve controller |
| Real | TdVal | 0.1 | Time constant of derivative block for valve controller |
| Pump controller | |||
| SimpleController | controllerTypePum | Buildings.Controls.OBC.CDL.T... | Type of controller for pump |
| Real | kPum | 1 | Gain of controller for pump |
| Real | TiPum | 120 | Time constant of integrator block of pump controller |
| Real | TdPum | 0.1 | Time constant of derivative block for pump controller |
| Assumptions | |||
| Boolean | allowFlowReversalPla | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for plant-side medium |
| Boolean | allowFlowReversalRac | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for rack-side medium |
| Advanced | |||
| MassFlowRate | mPla_flow_small | 1E-4*abs(mPla_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
| MassFlowRate | mRac_flow_small | 1E-4*abs(mRac_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
| Diagnostics | |||
| Boolean | show_T | false | = true, if actual temperature at port is computed |
| Boolean | checkMedia | true | Set to false to disable media consistency check |
| Flow resistance | |||
| Medium 1 | |||
| Boolean | computeFlowResistancePla | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dpPla | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearizeFlowResistancePla | false | = true, use linear relation between m_flow and dp for any flow rate |
| Medium 2 | |||
| Boolean | computeFlowResistanceRac | true | =true, compute flow resistance. Set to false to assume no friction |
| Boolean | from_dpRac | false | = true, use m_flow = f(dp) else dp = f(m_flow) |
| Boolean | linearizeFlowResistanceRac | false | = true, use linear relation between m_flow and dp for any flow rate |
| Dynamics | |||
| Valve | |||
| Boolean | use_strokeTime | true | Set to true to continuously open and close valve using strokeTime from instance dat |
| Init | initVal | Modelica.Blocks.Types.Init.I... | Type of initialization (no init/steady state/initial state/initial output) |
| Real | yVal_start | 1 | Initial position of actuator |
| Pump | |||
| Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
| Time | tau | 1 | Time constant of fluid volume for nominal flow, used if energy or mass balance is dynamic [s] |
| Boolean | use_riseTime | true | Set to true to continuously change motor speed using risetime from instance dat |
| Real | yPum_start | 0 | Initial value of speed |
Connectors
| Type | Name | Description |
|---|---|---|
| FluidPort_a | port_aPla | Fluid connector aPla (positive design flow direction is from port_aPla to port_bPla) |
| FluidPort_b | port_bPla | Fluid connector bPla (positive design flow direction is from port_aPla to port_bPla) |
| FluidPort_a | port_aRac | Fluid connector aRac (positive design flow direction is from port_aRac to port_bRac) |
| FluidPort_b | port_bRac | Fluid connector bRac (positive design flow direction is from port_aRac to port_bRac) |
| input RealInput | TSet | Set point temperature for water leaving to the IT rack [K] |
| input RealInput | dpSet | Set point for static pressure provided by CDU [Pa] |
| output RealOutput | P | Electrical power consumed by pump [W] |
Modelica definition
Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialFourPort
Partial model with four ports
Information
This model defines an interface for components with four ports.
The parameters allowFlowReversalPla and
allowFlowReversalRac may be used by models that extend
this model to treat flow reversal.
This model is identical to Buildings.Fluid.Interfaces.PartialFourPort, except that instances have been renamed for use with CDUs.
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| replaceable package MediumPla | Modelica.Media.Interfaces.Pa... | Medium in the plant-side component | |
| replaceable package MediumRac | Modelica.Media.Interfaces.Pa... | Medium in the rack-side component | |
| Assumptions | |||
| Boolean | allowFlowReversalPla | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for plant-side medium |
| Boolean | allowFlowReversalRac | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for rack-side medium |
Connectors
| Type | Name | Description |
|---|---|---|
| replaceable package MediumPla | Medium in the plant-side component | |
| replaceable package MediumRac | Medium in the rack-side component | |
| FluidPort_a | port_aPla | Fluid connector aPla (positive design flow direction is from port_aPla to port_bPla) |
| FluidPort_b | port_bPla | Fluid connector bPla (positive design flow direction is from port_aPla to port_bPla) |
| FluidPort_a | port_aRac | Fluid connector aRac (positive design flow direction is from port_aRac to port_bRac) |
| FluidPort_b | port_bRac | Fluid connector bRac (positive design flow direction is from port_aRac to port_bRac) |
Modelica definition
Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialFourPortInterface
Partial model with four ports and declaration of quantities that are used by CDU models
Information
This component defines the interface for models with four fluid ports and two fluid streams. It is similar to Buildings.Fluid.Interfaces.PartialFourPortInterface, but it has four ports instead of two, and the ports are renamed for CDUs.
Extends from Buildings.Fluid.DataCenters.CDUs.BaseClasses.PartialFourPort (Partial model with four ports).
Parameters
| Type | Name | Default | Description |
|---|---|---|---|
| replaceable package MediumPla | PartialMedium | Medium in the plant-side component | |
| replaceable package MediumRac | PartialMedium | Medium in the rack-side component | |
| Nominal condition | |||
| MassFlowRate | mPla_flow_nominal | Nominal mass flow rate [kg/s] | |
| MassFlowRate | mRac_flow_nominal | Nominal mass flow rate [kg/s] | |
| Assumptions | |||
| Boolean | allowFlowReversalPla | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for plant-side medium |
| Boolean | allowFlowReversalRac | true | = false to simplify equations, assuming, but not enforcing, no flow reversal for rack-side medium |
| Advanced | |||
| MassFlowRate | mPla_flow_small | 1E-4*abs(mPla_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
| MassFlowRate | mRac_flow_small | 1E-4*abs(mRac_flow_nominal) | Small mass flow rate for regularization of zero flow [kg/s] |
| Diagnostics | |||
| Boolean | show_T | false | = true, if actual temperature at port is computed |
Connectors
| Type | Name | Description |
|---|---|---|
| FluidPort_a | port_aPla | Fluid connector aPla (positive design flow direction is from port_aPla to port_bPla) |
| FluidPort_b | port_bPla | Fluid connector bPla (positive design flow direction is from port_aPla to port_bPla) |
| FluidPort_a | port_aRac | Fluid connector aRac (positive design flow direction is from port_aRac to port_bRac) |
| FluidPort_b | port_bRac | Fluid connector bRac (positive design flow direction is from port_aRac to port_bRac) |