Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses

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
Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialAirHandlerControl PartialAirHandlerControl Partial model for testing air hanlders with temperature and humidity control
Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialAirHandlerMassFlow PartialAirHandlerMassFlow Partial model for testing air handler at variable mass flowrate
Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialPlant PartialPlant Partial examples for Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation

Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialAirHandlerControl

Partial model for testing air hanlders with temperature and humidity control

Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialAirHandlerControl

Information

Partial model for testing temperature and humidity control in air handling units.

Parameters

TypeNameDefaultDescription
MassFlowRatem1_flow_nominal2.9Nominal mass flow rate [kg/s]
MassFlowRatem2_flow_nominal3.3Nominal mass flow rate [kg/s]
TemperatureT_a1_nominal6 + 273.15Nominal water inlet temperature [K]
TemperatureT_b1_nominal11 + 273.15Nominal water outlet temperature [K]
TemperatureT_a2_nominal26 + 273.15Nominal air inlet temperature [K]
TemperatureT_b2_nominal12 + 273.15Nominal air outlet temperature [K]

Modelica definition

partial model PartialAirHandlerControl "Partial model for testing air hanlders with temperature and humidity control" package Medium1 = Buildings.Media.Water "Medium model for water"; package Medium2 = Buildings.Media.Air "Medium model for air"; parameter Modelica.SIunits.MassFlowRate m1_flow_nominal(min=0) = 2.9 "Nominal mass flow rate"; parameter Modelica.SIunits.MassFlowRate m2_flow_nominal(min=0) = 3.3 "Nominal mass flow rate"; parameter Modelica.SIunits.Temperature T_a1_nominal=6 + 273.15 "Nominal water inlet temperature"; parameter Modelica.SIunits.Temperature T_b1_nominal=11 + 273.15 "Nominal water outlet temperature"; parameter Modelica.SIunits.Temperature T_a2_nominal=26 + 273.15 "Nominal air inlet temperature"; parameter Modelica.SIunits.Temperature T_b2_nominal=12 + 273.15 "Nominal air outlet temperature"; Buildings.Fluid.Sources.Boundary_pT sin_2( redeclare package Medium = Medium2, nPorts=1, use_p_in=false, p(displayUnit="Pa"), T=303.15) "Sink for water"; 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")) "Source for water"; Buildings.Fluid.Sources.Boundary_pT sin_1( redeclare package Medium = Medium1, nPorts=1, use_p_in=false, p=300000, T=293.15) "Sink for air"; Buildings.Fluid.Sources.Boundary_pT sou_1( redeclare package Medium = Medium1, use_T_in=true, p=300000 + 12000, nPorts=1) "Sink for air"; Buildings.Fluid.FixedResistances.PressureDrop res_2( from_dp=true, redeclare package Medium = Medium2, dp_nominal=100, m_flow_nominal=m2_flow_nominal) "Flow resistance"; Buildings.Fluid.FixedResistances.PressureDrop res_1( from_dp=true, redeclare package Medium = Medium1, dp_nominal=3000, m_flow_nominal=m1_flow_nominal) "Flow resistance"; Modelica.Blocks.Sources.Constant TSet(k(unit="K") = 289.15) "Setpoint temperature"; Modelica.Blocks.Sources.Constant relHum(k=0.8) "Relative humidity"; Buildings.Utilities.Psychrometrics.X_pTphi x_pTphi(use_p_in=false); Modelica.Blocks.Sources.Constant temSou_2(k=T_a2_nominal) "Temperature boundary for source 2"; Modelica.Blocks.Sources.Step TWat( offset=T_a1_nominal, height=3, startTime=1500) "Water temperature"; Buildings.Fluid.Sensors.MassFractionTwoPort masFra(redeclare package Medium = Medium2, m_flow_nominal=m2_flow_nominal) "Sensor for mass fraction"; Buildings.Fluid.Sensors.TemperatureTwoPort temSenWat1(redeclare package Medium = Medium1, m_flow_nominal=m2_flow_nominal) "Temperature sensor for water"; Buildings.Fluid.Sensors.TemperatureTwoPort temSenAir2(redeclare package Medium = Medium2, m_flow_nominal=m2_flow_nominal) "Temperature for air"; Buildings.Fluid.Sensors.TemperatureTwoPort temSenWat2(redeclare package Medium = Medium1, m_flow_nominal=m2_flow_nominal) "Temperature for water"; 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;

Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialAirHandlerMassFlow

Partial model for testing air handler at variable mass flowrate

Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialAirHandlerMassFlow

Information

Partial model for testing the air handling unit model with given control signals.

Parameters

TypeNameDefaultDescription
MassFlowRatem1_flow_nominal2.9Nominal mass flow rate [kg/s]
MassFlowRatem2_flow_nominal3.3Nominal mass flow rate [kg/s]
TemperatureT_a1_nominal6 + 273.15Nominal water inlet temperature [K]
TemperatureT_b1_nominal11 + 273.15Nominal water outlet temperature [K]
TemperatureT_a2_nominal26 + 273.15Nominal air inlet temperature [K]
TemperatureT_b2_nominal12 + 273.15Nominal air outlet temperature [K]

Modelica definition

partial model PartialAirHandlerMassFlow "Partial model for testing air handler at variable mass flowrate" package Medium1 = Buildings.Media.Water "Medium model for water"; package Medium2 = Buildings.Media.Air "Medium model for air"; parameter Modelica.SIunits.MassFlowRate m1_flow_nominal(min=0) = 2.9 "Nominal mass flow rate"; parameter Modelica.SIunits.MassFlowRate m2_flow_nominal(min=0) = 3.3 "Nominal mass flow rate"; parameter Modelica.SIunits.Temperature T_a1_nominal=6 + 273.15 "Nominal water inlet temperature"; parameter Modelica.SIunits.Temperature T_b1_nominal=11 + 273.15 "Nominal water outlet temperature"; parameter Modelica.SIunits.Temperature T_a2_nominal=26 + 273.15 "Nominal air inlet temperature"; parameter Modelica.SIunits.Temperature T_b2_nominal=12 + 273.15 "Nominal air outlet temperature"; Buildings.Fluid.Sources.Boundary_pT sin_2( redeclare package Medium = Medium2, T=T_a2_nominal, nPorts=1) "Sink for air"; 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) "Source for air"; Buildings.Fluid.Sources.MassFlowSource_T sin_1( redeclare package Medium = Medium1, T=T_a1_nominal, use_m_flow_in=true, nPorts=1) "Source for water"; Buildings.Fluid.Sources.Boundary_pT sou_1( redeclare package Medium = Medium1, use_T_in=false, T=T_a1_nominal, nPorts=1) "Sink for water"; Modelica.Blocks.Sources.Constant relHum(k=0.8) "Relative humidity"; Buildings.Utilities.Psychrometrics.X_pTphi x_pTphi(use_p_in=false); Modelica.Blocks.Sources.Constant temSou_2(k=T_a2_nominal) "Temperature boundary condition"; Modelica.Blocks.Math.Gain mWat_flow(k=-m1_flow_nominal) "Water mass flow rate"; Modelica.Blocks.Sources.TimeTable mWatGai(table=[0, 1; 3600*0.1, 1; 3600*0.2, 0.1; 3600*0.3, 0.1]) "Gain for water mass flow rate"; Buildings.Fluid.Sensors.TemperatureTwoPort temSenWat1(redeclare package Medium = Medium1, m_flow_nominal=m2_flow_nominal) "Temperature sensor for water"; Buildings.Fluid.Sensors.TemperatureTwoPort temSenWat2(redeclare package Medium = Medium1, m_flow_nominal=m2_flow_nominal) "Temperature sensor for water"; Buildings.Fluid.Sensors.TemperatureTwoPort temSenAir2(redeclare package Medium = Medium2, m_flow_nominal=m2_flow_nominal) "Temperature for air"; 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;

Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialPlant

Partial examples for Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation

Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.BaseClasses.PartialPlant

Information

This is a partial model for the examples in Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation.

Parameters

TypeNameDefaultDescription
MassFlowRatemCHW_flow_nominal2567.1*1000/(4200*10)Nominal mass flow rate at chilled water [kg/s]
MassFlowRatemCW_flow_nominal2567.1*1000/(4200*8.5)Nominal mass flow rate at condenser water [kg/s]
PressureDifferencedpCHW_nominal40000Nominal pressure [Pa]
PressureDifferencedpCW_nominal40000Nominal pressure [Pa]
IntegernumChi1Number of chillers
GenericperPum[numChi] Pump performance data

Modelica definition

partial model PartialPlant "Partial examples for Buildings.Applications.DataCenters.ChillerCooled.Equipment.Validation" package MediumCHW = Buildings.Media.Water "Medium model"; package MediumCW = Buildings.Media.Water "Medium model"; parameter Modelica.SIunits.MassFlowRate mCHW_flow_nominal=2567.1*1000/(4200*10) "Nominal mass flow rate at chilled water"; parameter Modelica.SIunits.MassFlowRate mCW_flow_nominal=2567.1*1000/(4200*8.5) "Nominal mass flow rate at condenser water"; parameter Modelica.SIunits.PressureDifference dpCHW_nominal=40000 "Nominal pressure"; parameter Modelica.SIunits.PressureDifference dpCW_nominal=40000 "Nominal pressure"; parameter Integer numChi=1 "Number of chillers"; 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})) "Pump performance data"; Buildings.Fluid.Sources.FixedBoundary sin1(redeclare package Medium = MediumCW) "Sink on medium 1 side"; Buildings.Fluid.Sources.MassFlowSource_T sou1( use_T_in=true, redeclare package Medium = MediumCW, m_flow=mCW_flow_nominal, T=298.15) "Source on medium 1 side"; 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) "Condenser inlet temperature"; Buildings.Fluid.Sources.FixedBoundary sin2(nPorts=1, redeclare package Medium = MediumCHW) "Sink on medium 2 side"; Modelica.Blocks.Sources.Constant TEva_in(k=273.15 + 25.28) "Evaporator inlet temperature"; Modelica.Blocks.Sources.Constant TSet(k( unit="K", displayUnit="degC") = 273.15 + 15.56) "Leaving chilled water temperature setpoint"; 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;