Package with example of water source DX cooling coil models
Information
This package contains examples that use water source DX cooling coil models.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
| Name | Description | 
|  MultiStage | Test model for multi speed water source DX coil | 
|  SingleSpeed | Test model for single speed DX coil | 
|  VariableSpeed | Test model for variable speed DX coil | 
|  PerformanceCurves | Package with sevral performance curves | 
Test model for multi speed water source DX coil
 
Information
This is a test model for
Buildings.Fluid.DXSystems.Cooling.WaterSource.MultiStage.
The model has open-loop control and time-varying input conditions.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
| Type | Name | Default | Description | 
|---|
| MassFlowRate | m_flow_nominal | datCoi.sta[datCoi.nSta].nomV... | Nominal mass flow rate [kg/s] | 
| PressureDifference | dpEva_nominal | 1000 | Pressure drop at m_flow_nominal [Pa] | 
| PressureDifference | dpCon_nominal | 40000 | Pressure drop at mCon_flow_nominal [Pa] | 
| DXCoil | datCoi | datCoi(nSta=4, sta={Building... | Coil data | 
Modelica definition
model MultiStage 
  
package MediumAir = 
Buildings.Media.Air;
  
package MediumWater = 
Buildings.Media.Water;
  
extends Modelica.Icons.Example;
  
parameter Modelica.Units.SI.MassFlowRate m_flow_nominal=datCoi.sta[datCoi.nSta].nomVal.m_flow_nominal
    ;
  
parameter Modelica.Units.SI.PressureDifference dpEva_nominal=1000
    ;
  
parameter Modelica.Units.SI.PressureDifference dpCon_nominal=40000
    ;
  
Buildings.Fluid.Sources.Boundary_pT sinAir(
    
redeclare package Medium = MediumAir,
    nPorts=1,
    p(displayUnit="Pa")) ;
  
Buildings.Fluid.Sources.MassFlowSource_T souAir(
    
redeclare package Medium = MediumAir,
    use_T_in=true,
    nPorts=1,
    m_flow=1.5,
    T=299.85) ;
  
Modelica.Blocks.Sources.Ramp TEvaIn(
    duration=600,
    startTime=2400,
    height=-5,
    offset=273.15 + 23) ;
  
Buildings.Fluid.DXSystems.Cooling.WaterSource.MultiStage  mulSpeDX(
    
redeclare package MediumEva = MediumAir,
    
redeclare package MediumCon = MediumWater,
    datCoi=datCoi,
    dpEva_nominal=dpEva_nominal,
    dpCon_nominal=dpCon_nominal,
    show_T=true,
    energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
                 ;
  
parameter Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.DXCoil
    datCoi(nSta=4, sta={
        
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.Stage(
        spe=900/60,
        nomVal=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.NominalValues(
          Q_flow_nominal=-12000,
          COP_nominal=3,
          SHR_nominal=0.8,
          m_flow_nominal=0.9,
          mCon_flow_nominal=0.57143,
          TEvaIn_nominal=273.15 + 26.67,
          TConIn_nominal=273.15 + 29.4),
        perCur=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Examples.PerformanceCurves.Curve_I()),
        
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.Stage(
        spe=1200/60,
        nomVal=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.NominalValues(
          Q_flow_nominal=-18000,
          COP_nominal=3,
          SHR_nominal=0.8,
          m_flow_nominal=1.2,
          mCon_flow_nominal=0.85714,
          TEvaIn_nominal=273.15 + 26.67,
          TConIn_nominal=273.15 + 29.4),
        perCur=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Examples.PerformanceCurves.Curve_I()),
        
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.Stage(
        spe=1800/60,
        nomVal=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.NominalValues(
          Q_flow_nominal=-21000,
          COP_nominal=3,
          SHR_nominal=0.8,
          m_flow_nominal=1.5,
          mCon_flow_nominal=1,
          TEvaIn_nominal=273.15 + 26.67,
          TConIn_nominal=273.15 + 29.4),
        perCur=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Examples.PerformanceCurves.Curve_I()),
        
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.Stage(
        spe=2400/60,
        nomVal=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.NominalValues(
          Q_flow_nominal=-30000,
          COP_nominal=3,
          SHR_nominal=0.8,
          m_flow_nominal=1.8,
          mCon_flow_nominal=1.42857,
          TEvaIn_nominal=273.15 + 26.67,
          TConIn_nominal=273.15 + 29.4),
        perCur=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Examples.PerformanceCurves.Curve_I())})
    ;
  
Modelica.Blocks.Sources.Ramp mCon_flow(
    duration=600,
    startTime=6000,
    height=0,
    offset=1) ;
  
Buildings.Fluid.Sources.MassFlowSource_T souWat(
    
redeclare package Medium = MediumWater,
    nPorts=1,
    use_T_in=false,
    use_m_flow_in=true,
    T=298.15) ;
  
Buildings.Fluid.Sources.Boundary_pT sinWat(
    
redeclare package Medium = MediumWater,
    nPorts=1,
    p(displayUnit="Pa")) ;
  
Modelica.Blocks.Sources.IntegerTable speRat(table=[
    0.0,0.0;
    900,1;
    1800,4;
    2700,3;
    3600,2]) ;
equation 
  connect(TEvaIn.y, souAir.T_in);
  
connect(mulSpeDX.portCon_a, souWat.ports[1]);
  
connect(mulSpeDX.portCon_b, sinWat.ports[1]);
  
connect(souAir.ports[1], mulSpeDX.port_a);
  
connect(sinAir.ports[1], mulSpeDX.port_b);
  
connect(mCon_flow.y, souWat.m_flow_in);
  
connect(speRat.y,mulSpeDX. stage);
end MultiStage;
 
Test model for single speed DX coil
 
Information
This is a test model for
Buildings.Fluid.DXSystems.Cooling.WaterSource.SingleSpeed.
The model has open-loop control and time-varying input conditions.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
| Type | Name | Default | Description | 
|---|
| MassFlowRate | m_flow_nominal | datCoi.sta[datCoi.nSta].nomV... | Nominal mass flow rate [kg/s] | 
| PressureDifference | dpEva_nominal | 1000 | Pressure drop at m_flow_nominal [Pa] | 
| PressureDifference | dpCon_nominal | 40000 | Pressure drop at mCon_flow_nominal [Pa] | 
| DXCoil | datCoi | datCoi(nSta=1, sta={Building... | Coil data | 
Modelica definition
model SingleSpeed 
  
package MediumAir = 
Buildings.Media.Air;
  
package MediumWater = 
Buildings.Media.Water;
  
extends Modelica.Icons.Example;
  
parameter Modelica.Units.SI.MassFlowRate m_flow_nominal=datCoi.sta[datCoi.nSta].nomVal.m_flow_nominal
    ;
  
parameter Modelica.Units.SI.PressureDifference dpEva_nominal=1000
    ;
  
parameter Modelica.Units.SI.PressureDifference dpCon_nominal=40000
    ;
  
Buildings.Fluid.Sources.Boundary_pT sinAir(
    
redeclare package Medium = MediumAir,
    nPorts=1,
    p(displayUnit="Pa")) ;
  
Buildings.Fluid.Sources.MassFlowSource_T souAir(
    
redeclare package Medium = MediumAir,
    use_T_in=true,
    nPorts=1,
    m_flow=1.5,
    T=299.85) ;
  
Modelica.Blocks.Sources.BooleanStep onOff(startTime=600)
    ;
  
Modelica.Blocks.Sources.Ramp TEvaIn(
    duration=600,
    startTime=2400,
    height=-5,
    offset=273.15 + 23) ;
  
Buildings.Fluid.DXSystems.Cooling.WaterSource.SingleSpeed sinSpeDX(
    
redeclare package MediumEva = MediumAir,
    
redeclare package MediumCon = MediumWater,
    datCoi=datCoi,
    dpEva_nominal=dpEva_nominal,
    dpCon_nominal=dpCon_nominal,
    show_T=true,
    energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
    ;
  
parameter Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.DXCoil
    datCoi(nSta=1, sta={
        
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.Stage(
        spe=1800/60,
        nomVal=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.NominalValues(
          Q_flow_nominal=-21000,
          COP_nominal=3,
          SHR_nominal=0.8,
          m_flow_nominal=1.5,
          mCon_flow_nominal=1,
          TEvaIn_nominal=273.15 + 26.67,
          TConIn_nominal=273.15 + 29.4),
        perCur=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Examples.PerformanceCurves.Curve_I())})
    ;
  
Modelica.Blocks.Sources.Ramp mCon_flow(
    duration=600,
    startTime=6000,
    height=0,
    offset=1) ;
  
Buildings.Fluid.Sources.MassFlowSource_T souWat(
    
redeclare package Medium = MediumWater,
    nPorts=1,
    use_T_in=false,
    use_m_flow_in=true,
    T=298.15) ;
  
Buildings.Fluid.Sources.Boundary_pT sinWat(
    
redeclare package Medium = MediumWater,
    nPorts=1,
    p(displayUnit="Pa")) ;
equation 
  connect(TEvaIn.y, souAir.T_in);
  
connect(onOff.y, sinSpeDX.on);
  
connect(sinSpeDX.portCon_a, souWat.ports[1]);
  
connect(sinSpeDX.portCon_b, sinWat.ports[1]);
  
connect(souAir.ports[1], sinSpeDX.port_a);
  
connect(sinAir.ports[1], sinSpeDX.port_b);
  
connect(mCon_flow.y, souWat.m_flow_in);
end SingleSpeed;
 
Test model for variable speed DX coil
 
Information
This is a test model for
Buildings.Fluid.DXSystems.Cooling.WaterSource.VariableSpeed.
The model has open-loop control and time-varying input conditions.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
| Type | Name | Default | Description | 
|---|
| MassFlowRate | m_flow_nominal | datCoi.sta[datCoi.nSta].nomV... | Nominal mass flow rate [kg/s] | 
| PressureDifference | dpEva_nominal | 1000 | Pressure drop at m_flow_nominal [Pa] | 
| PressureDifference | dpCon_nominal | 40000 | Pressure drop at mCon_flow_nominal [Pa] | 
| DXCoil | datCoi | datCoi(nSta=1, sta={Building... | Coil data | 
Modelica definition
model VariableSpeed 
  
package MediumAir = 
Buildings.Media.Air;
  
package MediumWater = 
Buildings.Media.Water;
  
extends Modelica.Icons.Example;
  
parameter Modelica.Units.SI.MassFlowRate m_flow_nominal=datCoi.sta[datCoi.nSta].nomVal.m_flow_nominal
    ;
  
parameter Modelica.Units.SI.PressureDifference dpEva_nominal=1000
    ;
  
parameter Modelica.Units.SI.PressureDifference dpCon_nominal=40000
    ;
  
Buildings.Fluid.Sources.Boundary_pT sinAir(
    
redeclare package Medium = MediumAir,
    nPorts=1,
    p(displayUnit="Pa")) ;
  
Buildings.Fluid.Sources.MassFlowSource_T souAir(
    
redeclare package Medium = MediumAir,
    use_T_in=true,
    nPorts=1,
    m_flow=1.5,
    T=299.85) ;
  
Modelica.Blocks.Sources.Ramp TEvaIn(
    duration=600,
    startTime=2400,
    height=-5,
    offset=273.15 + 23) ;
  
Buildings.Fluid.DXSystems.Cooling.WaterSource.VariableSpeed varSpeDX(
    
redeclare package MediumEva = MediumAir,
    
redeclare package MediumCon = MediumWater,
    dpEva_nominal=dpEva_nominal,
    dpCon_nominal=dpCon_nominal,
    datCoi=datCoi,
    show_T=true,
    minSpeRat=datCoi.minSpeRat,
    energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState)
                                 ;
  
parameter Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.DXCoil
    datCoi(nSta=1, sta={
        
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.Stage(
        spe=1800/60,
        nomVal=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Data.Generic.BaseClasses.NominalValues(
          Q_flow_nominal=-21000,
          COP_nominal=3,
          SHR_nominal=0.8,
          m_flow_nominal=1.5,
          mCon_flow_nominal=1,
          TEvaIn_nominal=273.15 + 26.67,
          TConIn_nominal=273.15 + 29.4),
        perCur=
          
Buildings.Fluid.DXSystems.Cooling.WaterSource.Examples.PerformanceCurves.Curve_I())})
    ;
  
Modelica.Blocks.Sources.Ramp mCon_flow(
    duration=600,
    startTime=6000,
    height=0,
    offset=1) ;
  
Buildings.Fluid.Sources.MassFlowSource_T souWat(
    
redeclare package Medium = MediumWater,
    nPorts=1,
    use_T_in=false,
    use_m_flow_in=true,
    T=298.15) ;
  
Buildings.Fluid.Sources.Boundary_pT sinWat(
    
redeclare package Medium = MediumWater,
    nPorts=1,
    p(displayUnit="Pa")) ;
  
Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.0; 100,0.0; 900,0.2;
        1800,0.8; 2700,0.75; 3600,0.75]) ;
equation 
  connect(TEvaIn.y, souAir.T_in);
  
connect(varSpeDX.portCon_a, souWat.ports[1]);
  
connect(varSpeDX.portCon_b, sinWat.ports[1]);
  
connect(souAir.ports[1], varSpeDX.port_a);
  
connect(sinAir.ports[1], varSpeDX.port_b);
  
connect(mCon_flow.y, souWat.m_flow_in);
  
connect(speRat.y, varSpeDX.speRat);
end VariableSpeed;