Buildings.Fluid.DataCenters.Racks.BaseClasses.Validation

Validation models for BaseClasses

Information

This package contains validation models for Buildings.Fluid.DataCenters.Racks.BaseClasses.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.Fluid.DataCenters.Racks.BaseClasses.Validation.ControlledFan ControlledFan Validation of the controlled fan model

Buildings.Fluid.DataCenters.Racks.BaseClasses.Validation.ControlledFan Buildings.Fluid.DataCenters.Racks.BaseClasses.Validation.ControlledFan

Validation of the controlled fan model

Buildings.Fluid.DataCenters.Racks.BaseClasses.Validation.ControlledFan

Information

Validation model for Buildings.Fluid.DataCenters.Racks.BaseClasses.ControlledFan.

Air at 20°C is driven by the fan through a pressure drop element and a mixing volume. The mixing volume receives a heat input that ramps from zero to Q_flow_nominal, which corresponds to a temperature rise of 10 K at the nominal mass flow rate, corresponding to a face velocity of 0.2 m/s across a 2 m2 surface.

When the heat input reaches its maximum value, the fan runs at full speed (y = 1) and consume PFan_nominal of electrical power. Note that the leaving fluid temperature is slightly above its set point because the heat of the fan is added to the air flow rate, and hence the 20°C is not quite sufficient to provide the cooling required to meet the set point temperature.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
PowerPFan_nominal400Fan nominal power [W]
TemperatureT_start293.15Inlet air temperature (20 degC) [K]
TemperatureTAirOutSetT_start + 10Controller set point, inlet temperature plus 10 K [K]

Modelica definition

model ControlledFan "Validation of the controlled fan model" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air "Air medium"; parameter Modelica.Units.SI.Power PFan_nominal = 400 "Fan nominal power"; parameter Modelica.Units.SI.Temperature T_start = 293.15 "Inlet air temperature (20 degC)"; parameter Modelica.Units.SI.Temperature TAirOutSet = T_start + 10 "Controller set point, inlet temperature plus 10 K"; Buildings.Fluid.DataCenters.Racks.FanControllers.OutletTemperature con "Fan controller"; Buildings.Fluid.DataCenters.Racks.BaseClasses.Fan fan( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal, PFan_nominal=PFan_nominal) "Controlled fan"; Buildings.Fluid.FixedResistances.PressureDrop res( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal, from_dp=true, dp_nominal=dp_nominal) "Flow resistance"; Buildings.Fluid.MixingVolumes.MixingVolume vol( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal, V=0.2, nPorts=2, T_start=T_start, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, prescribedHeatFlowRate=true) "Mixing volume representing rack air"; Buildings.Fluid.Sensors.TemperatureTwoPort senT( redeclare package Medium = Medium, m_flow_nominal=m_flow_nominal, allowFlowReversal=false, tau=0) "Outlet air temperature sensor"; Buildings.Fluid.Sources.Boundary_pT sou( redeclare package Medium = Medium, T=T_start, nPorts=2) "Pressure and temperature boundary"; Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow preHea "Prescribed heat flow rate"; Modelica.Blocks.Sources.Ramp ram( height=Q_flow_nominal, duration=1800, startTime=300) "Heat flow ramp from 0 to Q_flow_nominal"; protected parameter Modelica.Units.SI.Density rho_default = Medium.density( Medium.setState_pTX( p=Medium.p_default, T=Medium.T_default, X=Medium.X_default)) "Default air density"; parameter Modelica.Units.SI.SpecificHeatCapacity cp_default = Medium.specificHeatCapacityCp( Medium.setState_pTX( p=Medium.p_default, T=Medium.T_default, X=Medium.X_default)) "Specific heat capacity at default conditions"; parameter Modelica.Units.SI.MassFlowRate m_flow_nominal = V_flow_nominal * rho_default "Nominal mass flow rate"; parameter Modelica.Units.SI.VolumeFlowRate V_flow_nominal = 0.2 * 2 "Nominal volumetric flow rate (0.2 m/s across 2 m2 face area)"; parameter Modelica.Units.SI.PressureDifference dp_nominal(displayUnit="Pa") = PFan_nominal * fan.eta_nominal / V_flow_nominal "Fan pressure rise at nominal conditions"; parameter Modelica.Units.SI.HeatFlowRate Q_flow_nominal = m_flow_nominal * cp_default * 10 "Heat at full load giving a temperature rise of 10 K"; Controls.OBC.CDL.Reals.Sources.Constant TOutSet( y(final unit="K", displayUnit="degC"), final k=TAirOutSet) "Temperature set point"; equation connect(vol.ports[1], senT.port_a); connect(ram.y, preHea.Q_flow); connect(preHea.port, vol.heatPort); connect(senT.port_b, res.port_a); connect(fan.port_b, vol.ports[2]); connect(fan.port_a, sou.ports[1]); connect(res.port_b, sou.ports[2]); connect(TOutSet.y, con.TSet); connect(con.TMea, senT.T); connect(con.y, fan.y); end ControlledFan;