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;