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 |
|---|---|
| Block to compute the case temperature | |
| Collection of models that illustrate model use and test models |
Buildings.Fluid.DataCenters.Racks.Liquid.BaseClasses.CaseTemperature
Block to compute the case temperature
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
| Type | Name | Default | Description |
|---|---|---|---|
| Generic_R_m_flow | dat | Case-to-inlet thermal resistance as a function of the volume flow rate | |
| Nominal condition | |||
| VolumeFlowRate | V_flow_nominal | Nominal volume flow rate for one cold plate [m3/s] | |
Connectors
| Type | Name | Description |
|---|---|---|
| input RealInput | V_flow | Volume flow rate for one cold plate [m3/s] |
| input RealInput | TIn | Fluid inlet temperature [K] |
| input RealInput | Q_flow | Heat flow rate [W] |
| output RealOutput | dT | Temperature rise (case to inlet) [K] |
| output RealOutput | TCas | Case 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;