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;