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 | 
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 ;
  
Buildings.Fluid.Sources.Boundary_pT sin1(
    
redeclare package Medium = MediumCW)
    ;
  
Fluid.Sources.Boundary_pT sou1(
    p=MediumCW.p_default + 45E3,
    use_T_in=true,
    
redeclare package Medium = MediumCW,
    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.Boundary_pT 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 TSup1(
redeclare package Medium =
        MediumCHW, m_flow_nominal=mCHW_flow_nominal) ;
  
Modelica.Blocks.Sources.BooleanStep onChi(startTime=7200)
    ;
  
Modelica.Blocks.Sources.BooleanStep onWSE(startTime=14400, startValue=true)
    ;
equation 
  connect(TCon_in.y,sou1. T_in);
  
connect(sin2.ports[1], TSup1.port_b);
end PartialPlant;