Buildings.Fluid.DataCenters.Racks.Liquid.BaseClasses

Package with base classes for racks

Information

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

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

Package Content

Name Description
Buildings.Fluid.DataCenters.Racks.Liquid.BaseClasses.CaseTemperature CaseTemperature Block to compute the case temperature
Buildings.Fluid.DataCenters.Racks.Liquid.BaseClasses.Examples Examples Collection of models that illustrate model use and test models

Buildings.Fluid.DataCenters.Racks.Liquid.BaseClasses.CaseTemperature Buildings.Fluid.DataCenters.Racks.Liquid.BaseClasses.CaseTemperature

Block to compute the case temperature

Buildings.Fluid.DataCenters.Racks.Liquid.BaseClasses.CaseTemperature

Information

This block computes the case temperature for use in Buildings.Fluid.DataCenters.Racks.Liquid.ColdPlateR_P.

The relative error of the data fit of the thermal resistance R can be seen in the parameter relErrR.

Extends from Modelica.Blocks.Icons.Block (Basic graphical layout of input/output block).

Parameters

TypeNameDefaultDescription
Generic_R_m_flowdat Case-to-inlet thermal resistance as a function of the volume flow rate
Nominal condition
VolumeFlowRateV_flow_nominal Nominal volume flow rate for one cold plate [m3/s]

Connectors

TypeNameDescription
input RealInputV_flowVolume flow rate for one cold plate [m3/s]
input RealInputTInFluid inlet temperature [K]
input RealInputQ_flowHeat flow rate [W]
output RealOutputdTTemperature rise (case to inlet) [K]
output RealOutputTCasCase temperature [K]

Modelica definition

block CaseTemperature "Block to compute the case temperature" extends Modelica.Blocks.Icons.Block; constant Real delta = 1E-4 "Small value for regularization"; parameter Data.BaseClasses.Generic_R_m_flow dat "Case-to-inlet thermal resistance as a function of the volume flow rate"; parameter Modelica.Units.SI.VolumeFlowRate V_flow_nominal "Nominal volume flow rate for one cold plate"; Modelica.Blocks.Interfaces.RealInput V_flow( final unit="m3/s") "Volume flow rate for one cold plate"; Modelica.Blocks.Interfaces.RealInput TIn( final unit="K", displayUnit="degC") "Fluid inlet temperature"; Modelica.Blocks.Interfaces.RealInput Q_flow( final unit="W") "Heat flow rate"; Modelica.Blocks.Interfaces.RealOutput dT( final unit="K") "Temperature rise (case to inlet)"; Modelica.Blocks.Interfaces.RealOutput TCas( final unit="K", displayUnit="degC") "Case temperature"; Modelica.Units.SI.ThermalResistance R "Case-to-inlet thermal resistance"; final parameter Real relErrR[:]={RFit[i]/dat.R[i] for i in 1:nSup} "Relative error of resistance based on data fit at each support point datRes.V_flow"; protected final parameter Integer nSup=size(dat.V_flow, 1) "Number of support points"; parameter Modelica.Units.SI.VolumeFlowRate V_flow_small = delta * V_flow_nominal "Nominal volume flow rate for one cold plate"; parameter Real RV[nSup](each min=0) = {dat.R[i]*dat.V_flow[i] for i in 1:nSup} "Resistance multipled by volume flow rate"; final parameter Real p[:]=Modelica.Math.Polynomials.fitting( u=dat.V_flow, y=RV, n=dat.n) "Polynomial coefficients"; final parameter Modelica.Units.SI.ThermalResistance RFit[nSup]={ Modelica.Math.Polynomials.evaluateWithRange( p=p, uMin=dat.V_flow[1], uMax=dat.V_flow[end], u=dat.V_flow[i])/Buildings.Utilities.Math.Functions.smoothMax( x1=dat.V_flow[i], x2=V_flow_small, deltaX=delta/4) for i in 1:nSup} "Resistance based on data fit (used to show error)"; equation R =Modelica.Math.Polynomials.evaluateWithRange( p=p, uMin=dat.V_flow[1], uMax=dat.V_flow[end], u=V_flow)/Buildings.Utilities.Math.Functions.smoothMax( x1=V_flow, x2=V_flow_small, deltaX=delta/4); dT = R * Q_flow; TCas = TIn + dT; end CaseTemperature;