Package with base classes for Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation
Information
This package contains base classes for models in
Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.
Extends from Modelica.Icons.BasesPackage (Icon for packages containing base classes).
Package Content
Name |
Description |
PartialAirHandlerControl
|
Partial model for testing air hanlders with temperature and humidity control |
PartialAirHandlerMassFlow
|
Partial model for testing air handler at variable mass flowrate |
PartialPlant
|
Partial examples for Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation |
Partial model for testing air hanlders with temperature and humidity control
Information
Partial model for testing temperature and humidity control in air handling units.
Parameters
Type | Name | Default | Description |
MassFlowRate | m1_flow_nominal | 2.9 | Nominal mass flow rate [kg/s] |
MassFlowRate | m2_flow_nominal | 3.3 | Nominal mass flow rate [kg/s] |
Temperature | T_a1_nominal | 6 + 273.15 | Nominal water inlet temperature [K] |
Temperature | T_b1_nominal | 11 + 273.15 | Nominal water outlet temperature [K] |
Temperature | T_a2_nominal | 26 + 273.15 | Nominal air inlet temperature [K] |
Temperature | T_b2_nominal | 12 + 273.15 | Nominal air outlet temperature [K] |
Modelica definition
partial model PartialAirHandlerControl
package Medium1 =
Buildings.Media.Water ;
package Medium2 =
Buildings.Media.Air ;
parameter Modelica.SIunits.MassFlowRate m1_flow_nominal(min=0)=2.9
;
parameter Modelica.SIunits.MassFlowRate m2_flow_nominal(min=0)=3.3
;
parameter Modelica.SIunits.Temperature T_a1_nominal=6 + 273.15
;
parameter Modelica.SIunits.Temperature T_b1_nominal=11 + 273.15
;
parameter Modelica.SIunits.Temperature T_a2_nominal=26 + 273.15
;
parameter Modelica.SIunits.Temperature T_b2_nominal=12 + 273.15
;
Buildings.Fluid.Sources.Boundary_pT sin_2(
redeclare package Medium = Medium2,
nPorts=1,
use_p_in=false,
p(displayUnit="Pa"),
T=303.15)
;
Buildings.Fluid.Sources.Boundary_pT sou_2(
redeclare package Medium = Medium2,
X={0.02,1 - 0.02},
use_T_in=true,
use_X_in=true,
p(displayUnit="Pa"))
;
Buildings.Fluid.Sources.Boundary_pT sin_1(
redeclare package Medium = Medium1,
nPorts=1,
use_p_in=false,
p=300000,
T=293.15)
;
Buildings.Fluid.Sources.Boundary_pT sou_1(
redeclare package Medium = Medium1,
use_T_in=true,
p=300000 + 12000,
nPorts=1)
;
Buildings.Fluid.FixedResistances.PressureDrop res_2(
from_dp=true,
redeclare package Medium = Medium2,
dp_nominal=100,
m_flow_nominal=m2_flow_nominal)
;
Buildings.Fluid.FixedResistances.PressureDrop res_1(
from_dp=true,
redeclare package Medium = Medium1,
dp_nominal=3000,
m_flow_nominal=m1_flow_nominal)
;
Modelica.Blocks.Sources.Constant TSet(
k(unit="K")=289.15)
;
Modelica.Blocks.Sources.Constant relHum(k=0.8)
;
Buildings.Utilities.Psychrometrics.X_pTphi x_pTphi(use_p_in=false);
Modelica.Blocks.Sources.Constant temSou_2(k=T_a2_nominal)
;
Modelica.Blocks.Sources.Step TWat(
offset=T_a1_nominal,
height=3,
startTime=1500)
;
Buildings.Fluid.Sensors.MassFractionTwoPort masFra(
redeclare package Medium = Medium2, m_flow_nominal=m2_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort temSenWat1(
redeclare package Medium = Medium1, m_flow_nominal=m2_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort temSenAir2(
redeclare package Medium = Medium2, m_flow_nominal=m2_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort temSenWat2(
redeclare package Medium = Medium1, m_flow_nominal=m2_flow_nominal)
;
equation
connect(sin_1.ports[1],res_1. port_b);
connect(sin_2.ports[1],res_2. port_b);
connect(x_pTphi.X,sou_2. X_in);
connect(relHum.y, x_pTphi.phi);
connect(temSou_2.y, x_pTphi.T);
connect(temSou_2.y, sou_2.T_in);
connect(TWat.y,sou_1. T_in);
connect(masFra.port_b, res_2.port_a);
connect(temSenWat1.port_a, sou_1.ports[1]);
connect(temSenAir2.port_b, masFra.port_a);
connect(temSenWat2.port_b, res_1.port_a);
end PartialAirHandlerControl;
Partial model for testing air handler at variable mass flowrate
Information
Partial model for testing the air handling unit model with given control signals.
Parameters
Type | Name | Default | Description |
MassFlowRate | m1_flow_nominal | 2.9 | Nominal mass flow rate [kg/s] |
MassFlowRate | m2_flow_nominal | 3.3 | Nominal mass flow rate [kg/s] |
Temperature | T_a1_nominal | 6 + 273.15 | Nominal water inlet temperature [K] |
Temperature | T_b1_nominal | 11 + 273.15 | Nominal water outlet temperature [K] |
Temperature | T_a2_nominal | 26 + 273.15 | Nominal air inlet temperature [K] |
Temperature | T_b2_nominal | 12 + 273.15 | Nominal air outlet temperature [K] |
Modelica definition
partial model PartialAirHandlerMassFlow
package Medium1 =
Buildings.Media.Water ;
package Medium2 =
Buildings.Media.Air ;
parameter Modelica.SIunits.MassFlowRate m1_flow_nominal(min=0)=2.9
;
parameter Modelica.SIunits.MassFlowRate m2_flow_nominal(min=0)=3.3
;
parameter Modelica.SIunits.Temperature T_a1_nominal=6 + 273.15
;
parameter Modelica.SIunits.Temperature T_b1_nominal=11 + 273.15
;
parameter Modelica.SIunits.Temperature T_a2_nominal=26 + 273.15
;
parameter Modelica.SIunits.Temperature T_b2_nominal=12 + 273.15
;
Buildings.Fluid.Sources.Boundary_pT sin_2(
redeclare package Medium = Medium2,
T=T_a2_nominal,
nPorts=1)
;
Buildings.Fluid.Sources.Boundary_pT sou_2(
redeclare package Medium = Medium2,
T=T_a2_nominal,
X={0.02,1 - 0.02},
use_T_in=true,
use_X_in=true)
;
Buildings.Fluid.Sources.MassFlowSource_T sin_1(
redeclare package Medium = Medium1,
T=T_a1_nominal,
use_m_flow_in=true,
nPorts=1)
;
Buildings.Fluid.Sources.Boundary_pT sou_1(
redeclare package Medium = Medium1,
use_T_in=false,
T=T_a1_nominal,
nPorts=1)
;
Modelica.Blocks.Sources.Constant relHum(k=0.8) ;
Buildings.Utilities.Psychrometrics.X_pTphi x_pTphi(use_p_in=false);
Modelica.Blocks.Sources.Constant temSou_2(k=T_a2_nominal)
;
Modelica.Blocks.Math.Gain mWat_flow(k=-m1_flow_nominal)
;
Modelica.Blocks.Sources.TimeTable mWatGai(
table=[0,1; 3600*0.1,1; 3600*0.2,0.1; 3600*0.3,0.1])
;
Buildings.Fluid.Sensors.TemperatureTwoPort temSenWat1(
redeclare package Medium = Medium1,
m_flow_nominal=m2_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort temSenWat2(
redeclare package Medium = Medium1,
m_flow_nominal=m2_flow_nominal)
;
Buildings.Fluid.Sensors.TemperatureTwoPort temSenAir2(
redeclare package Medium = Medium2,
m_flow_nominal=m2_flow_nominal)
;
equation
connect(x_pTphi.X, sou_2.X_in);
connect(relHum.y, x_pTphi.phi);
connect(temSou_2.y, x_pTphi.T);
connect(temSou_2.y, sou_2.T_in);
connect(mWatGai.y, mWat_flow.u);
connect(mWat_flow.y, sin_1.m_flow_in);
connect(temSenWat1.port_a, sou_1.ports[1]);
connect(temSenAir2.port_b, sin_2.ports[1]);
connect(temSenWat2.port_b, sin_1.ports[1]);
end PartialAirHandlerMassFlow;
Partial examples for Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation
Information
This is a partial model for the examples in
Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.
Parameters
Type | Name | Default | Description |
MassFlowRate | mCHW_flow_nominal | 2567.1*1000/(4200*10) | Nominal mass flow rate at chilled water [kg/s] |
MassFlowRate | mCW_flow_nominal | 2567.1*1000/(4200*8.5) | Nominal mass flow rate at condenser water [kg/s] |
PressureDifference | dpCHW_nominal | 40000 | Nominal pressure [Pa] |
PressureDifference | dpCW_nominal | 40000 | Nominal pressure [Pa] |
Integer | numChi | 1 | Number of chillers |
Generic | perPum[numChi] | | Pump performance data |
Modelica definition
partial model PartialPlant
package MediumCHW =
Buildings.Media.Water ;
package MediumCW =
Buildings.Media.Water ;
parameter Modelica.SIunits.MassFlowRate mCHW_flow_nominal=2567.1*1000/(
4200*10)
;
parameter Modelica.SIunits.MassFlowRate mCW_flow_nominal=2567.1*1000/ (
4200*8.5)
;
parameter Modelica.SIunits.PressureDifference dpCHW_nominal = 40000
;
parameter Modelica.SIunits.PressureDifference dpCW_nominal = 40000
;
parameter Integer numChi=1 ;
parameter Buildings.Fluid.Movers.Data.Generic[numChi] perPum(
each pressure=
Buildings.Fluid.Movers.BaseClasses.Characteristics.flowParameters(
V_flow=mCHW_flow_nominal/1000*{0.2,0.6,1.0,1.2},
dp=dpCHW_nominal*{1.2,1.1,1.0,0.6})) ;
Buildings.Fluid.Sources.FixedBoundary sin1(
redeclare package Medium = MediumCW)
;
Buildings.Fluid.Sources.MassFlowSource_T sou1(
use_T_in=true,
redeclare package Medium = MediumCW,
m_flow=mCW_flow_nominal,
T=298.15)
;
Modelica.Blocks.Sources.TimeTable TCon_in(
table=[0,273.15 + 12.78;
7200,273.15 + 12.78;
7200,273.15 + 18.33;
14400,273.15 + 18.33;
14400,273.15 + 26.67],
offset=0,
startTime=0)
;
Buildings.Fluid.Sources.FixedBoundary sin2(
nPorts=1,
redeclare package Medium = MediumCHW)
;
Modelica.Blocks.Sources.Constant TEva_in(k=273.15 + 25.28)
;
Modelica.Blocks.Sources.Constant TSet(
k(unit="K",displayUnit="degC")=273.15+15.56)
;
Buildings.Fluid.Sensors.TemperatureTwoPort TSup(
redeclare package Medium = MediumCHW,
m_flow_nominal=mCHW_flow_nominal);
equation
connect(TCon_in.y,sou1. T_in);
connect(sin2.ports[1], TSup.port_b);
end PartialPlant;