Description: "Package with examples of base class components for DX cooling coil model"

- Home > Modelica

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples

Package with examples of base class components for DX cooling coil model

### Information

This package contains examples of base class components for DX cooling coil models.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

### Package Content

Name | Description
--- | ---
ApparatusDewPoint | Test model for ApparatusDewPoint
ApparatusDryPoint | Test model for ApparatusDryPoint
Condensation | Test model for Condensation block
CoolingCapacity | Test model for CoolingCapacity
DXCooling | Test model for DXCooling
DryCoil | Test model for DryCoil
DryWetSelector | Test model for DryWetSelector
EvaporationFlowReversal | Test model for evaporation with zero flow and flow reversal
EvaporationPulse | Test model for evaporation with pulse signal
InputPower | Test model for InputPower
NominalCondition | Test model for NominalCondition
SensibleHeatRatio | Test model for SensibleHeatRatio
SpeedSelect | Test model for speed select
SpeedShift | Test model for SpeedShift block
UACp | Test model for UACp
WetCoil | Test model for WetCoil
PerformanceCurves | Package with sevral performance curves

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.ApparatusDewPoint

Test model for ApparatusDewPoint

### Information

This example illustrates calculation of air properties at apparatus dew point: Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.ApparatusDewPoint.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
Integer | nSta | 4 | Number of standard compressor speeds
Real | minSpeRat | 0.2 | Minimum speed ratio
Real | speRatDeaBan | 0.05 | Deadband for minimum speed ratio
DXCoil | datCoi |  | Coil data

### Modelica definition

model ApparatusDewPoint "Test model for ApparatusDewPoint" extends Modelica.Icons.Example; parameter Integer nSta=4 "Number of standard compressor speeds"; package Medium = Buildings.Media.Air; parameter Real minSpeRat(min=0,max=1) = 0.2 "Minimum speed ratio"; parameter Real speRatDeaBan= 0.05 "Deadband for minimum speed ratio"; Modelica.Blocks.Sources.Constant p( k=101325) "Pressure"; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.ApparatusDewPoint adp( redeclare package Medium = Medium, datCoi=datCoi, variableSpeedCoil=true) "Calculates air properties at apparatus dew point condition"; Modelica.Blocks.Sources.Ramp m_flow( duration=600, height=1.35, startTime=600) "Mass flow rate of air"; Modelica.Blocks.Sources.Ramp XEvaIn( duration=600, height=0.004, startTime=1800, offset=0.011) "Inlet air mass fraction"; Modelica.Blocks.Sources.Ramp Q_flow( duration=600, startTime=600, height=-20000) "Cooling rate"; Modelica.Blocks.Sources.TimeTable speRat( offset=0, startTime=0, table=[0.0,0.00; 600,0.25; 1800,0.5; 2700,0.75]) "Speed ratio "; parameter Data.Generic.DXCoil datCoi(nSta=4, sta={ Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=900/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-12000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=0.9), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1200/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-18000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.2), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1800/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_II()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=2400/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-30000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.8), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_III())}) "Coil data"; protected Modelica.Blocks.Logical.Hysteresis deaBan( uLow=minSpeRat - speRatDeaBan/2, uHigh=minSpeRat + speRatDeaBan/2) "Speed ratio deadband"; Modelica.Blocks.Math.BooleanToInteger onSwi( final integerTrue=1, final integerFalse=0) "On/off switch"; public Modelica.Blocks.Sources.Constant hEvaIn(k=Medium.specificEnthalpy( Medium.setState_pTX( p=101325, T=30 + 273.15, X={0.015}))) "Air enthalpy at inlet"; equation connect(Q_flow.y, adp.Q_flow); connect(p.y, adp.p); connect(m_flow.y, adp.m_flow); connect(XEvaIn.y, adp.XEvaIn); connect(speRat.y, adp.speRat); connect(speRat.y, deaBan.u); connect(deaBan.y, onSwi.u); connect(onSwi.y, adp.stage); connect(hEvaIn.y, adp.hEvaIn); end ApparatusDewPoint;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.ApparatusDryPoint

Test model for ApparatusDryPoint

### Information

This example illustrates working of ApparatusDryPoint block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.ApparatusDryPoint.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
Integer | nSta | 4 |
Real | minSpeRat | 0.2 | Minimum speed ratio
Real | speRatDeaBan | 0.05 | Deadband for minimum speed ratio
DXCoil | datCoi |  | Coil data

### Modelica definition

model ApparatusDryPoint "Test model for ApparatusDryPoint" extends Modelica.Icons.Example; parameter Integer nSta=4; package Medium = Buildings.Media.Air; parameter Real minSpeRat(min=0,max=1) = 0.2 "Minimum speed ratio"; parameter Real speRatDeaBan= 0.05 "Deadband for minimum speed ratio"; Modelica.Blocks.Sources.Constant p( k=101325) "Pressure"; Modelica.Blocks.Sources.Constant hEvaIn(k=Medium.specificEnthalpy( Medium.setState_pTX( p=101325, T=30 + 273.15, X={0.015}))) "Air enthalpy at inlet"; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.ApparatusDryPoint appDryPt( redeclare package Medium = Medium, datCoi=datCoi, variableSpeedCoil=true) "Dry point condition"; Modelica.Blocks.Sources.Ramp m_flow( duration=600, height=1.35, startTime=900) "Mass flow rate of air"; Modelica.Blocks.Sources.Ramp Q_flow( duration=600, height=-20000, offset=-2, startTime=900) "Heat extracted from air"; Modelica.Blocks.Sources.TimeTable speRat( table=[0.0,0.0; 900,0.25; 1800,0.50; 2700,0.75], offset=0.25, startTime=900) "Speed ratio "; parameter Data.Generic.DXCoil datCoi( nSta=4, sta={ Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=900/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-12000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=0.9), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1200/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-18000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.2), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1800/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_II()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=2400/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-30000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.8), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_III())}) "Coil data"; protected Modelica.Blocks.Logical.Hysteresis deaBan( uLow=minSpeRat - speRatDeaBan/2, uHigh=minSpeRat + speRatDeaBan/2) "Speed ratio deadband"; Modelica.Blocks.Math.BooleanToInteger onSwi( final integerTrue=1, final integerFalse=0) "On/off switch"; public Modelica.Blocks.Sources.Ramp XEvaIn( duration=600, height=0.004, startTime=1800, offset=0.011) "Inlet air mass fraction"; equation connect(p.y, appDryPt.p); connect(hEvaIn.y, appDryPt.hEvaIn); connect(m_flow.y, appDryPt.m_flow); connect(Q_flow.y, appDryPt.Q_flow); connect(speRat.y, appDryPt.speRat); connect(speRat.y,deaBan. u); connect(deaBan.y,onSwi. u); connect(onSwi.y, appDryPt.stage); connect(XEvaIn.y, appDryPt.XEvaIn); end ApparatusDryPoint;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.Condensation

Test model for Condensation block

### Information

This example illustrates working of Condensation block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Condensation.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model Condensation "Test model for Condensation block" package Medium = Buildings.Media.Air; extends Modelica.Icons.Example; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Condensation mWat( redeclare package Medium = Medium) "Calculates rate of condensation"; Modelica.Blocks.Sources.Ramp Q_flow( height=-20000, startTime=600, offset=0, duration=2400) "Heat flow"; Modelica.Blocks.Sources.Ramp TDewPoi( each startTime=600, height=20, offset=5.4, each duration=1200) "Apparatus dew point temperature"; Modelica.Blocks.Sources.Ramp shr( startTime=1800, height=1, offset=0, duration=1200) "Sensible heat ratio"; equation connect(TDewPoi.y, mWat.TDewPoi); connect(Q_flow.y, mWat.Q_flow); connect(shr.y, mWat.SHR); end Condensation;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.CoolingCapacity

Test model for CoolingCapacity

### Information

This example illustrates working of cooling capacity function Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.CoolingCapacity.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
Stage | sta |  | Performance data

### Modelica definition

model CoolingCapacity "Test model for CoolingCapacity" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.CoolingCapacity cooCap( sta={sta}, m_flow_small=0.0001*sta.nomVal.m_flow_nominal, nSta=1) "Cooling capacity calculation"; Modelica.Blocks.Sources.Ramp m_flow( duration=2400, startTime=600, height=sta.nomVal.m_flow_nominal, offset=0) "Mass flow rate of air"; Modelica.Blocks.Sources.Ramp TWetBulIn( duration=2400, startTime=600, height=10, offset=273.15 + 19.4) "Air wet bulb temperature entering the coil"; Modelica.Blocks.Sources.IntegerStep onOff(startTime=600) "Compressor on-off signal"; Modelica.Blocks.Sources.Ramp TConIn( duration=2400, startTime=600, height=5, offset=273.15 + 30) "Condenser inlet temperature (Outside drybulb temperature)"; parameter Data.Generic.BaseClasses.Stage sta( nomVal( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_III(), spe=188.49555921539) "Performance data"; equation connect(TConIn.y, cooCap.TConIn); connect(m_flow.y, cooCap.m_flow); connect(onOff.y, cooCap.stage); connect(TWetBulIn.y, cooCap.TEvaIn); end CoolingCapacity;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.DXCooling

Test model for DXCooling

### Information

This example illustrates working of DXCooling block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DXCooling.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
DXCoil | datCoi |  | Coil data

### Modelica definition

model DXCooling "Test model for DXCooling" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; Modelica.Blocks.Sources.Constant p( k=101325) "pressure"; Modelica.Blocks.Sources.Constant TConIn( k=273.15 + 35); Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DXCooling dxCoo( redeclare package Medium = Medium, datCoi=datCoi, variableSpeedCoil=true); Modelica.Blocks.Sources.IntegerStep onOff( startTime=600) "Compressor on-off signal"; Modelica.Blocks.Sources.Ramp m_flow( duration=600, startTime=1200, height=1.05) "Mass flow rate of air"; Modelica.Blocks.Sources.Ramp TEvaIn( duration=600, startTime=2400, height=-5, offset=273.15 + 29) "Dry bulb temperature of air entering the coil"; Modelica.Blocks.Sources.Ramp XEvaIn( duration=600, startTime=2400, height=-0.002, offset=0.012) "Inlet mass-fraction"; Modelica.Blocks.Sources.Ramp hEvaIn( duration=600, startTime=2400, offset=60000, height=-10000) "Specific enthalpy of air entering the coil"; Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.0; 900,0.25; 1800,0.50; 2700,0.75]) "Speed ratio "; parameter Data.Generic.DXCoil datCoi(sta={ Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=900/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-12000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=0.9), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1200/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-18000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.2), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1800/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=2400/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-30000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.8), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_III())}, nSta= 4) "Coil data"; equation connect(TConIn.y, dxCoo.TConIn); connect(p.y, dxCoo.p); connect(m_flow.y, dxCoo.m_flow); connect(TEvaIn.y, dxCoo.TEvaIn); connect(XEvaIn.y, dxCoo.XEvaIn); connect(hEvaIn.y, dxCoo.hEvaIn); connect(speRat.y, dxCoo.speRat); connect(onOff.y, dxCoo.stage); end DXCooling;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.DryCoil

Test model for DryCoil

### Information

This example illustrates working of DryCoil block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DryCoil.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
DXCoil | datCoi |  | Coil data

### Modelica definition

model DryCoil "Test model for DryCoil" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; Modelica.Blocks.Sources.Constant p( k=101325); Modelica.Blocks.Sources.Constant TConIn( k=273.15 + 35) "Condenser inlet air temperature"; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DryCoil dryCoi( redeclare package Medium = Medium, datCoi=datCoi, variableSpeedCoil=true) "Performs calculation for dry coil condition"; Modelica.Blocks.Sources.IntegerStep onOff( startTime=1200) "Compressor on-off signal"; Modelica.Blocks.Sources.Ramp m_flow( startTime=1200, duration=600, height=1.5) "Mass flow rate of air"; Modelica.Blocks.Sources.Ramp TEvaIn( duration=600, startTime=2400, height=-4, offset=273.15 + 29) "Dry bulb temperature of air entering the coil"; Modelica.Blocks.Sources.Ramp XEvaIn( duration=600, startTime=2400, height=-0.002, offset=0.006) "Inlet mass-fraction"; Modelica.Blocks.Sources.Ramp hEvaIn( duration=600, startTime=2400, height=-10000, offset=45000) "Specific enthalpy of air entering the coil"; Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.0; 900,0.25; 1800,0.50; 2700,0.75]) "Speed ratio "; parameter Data.Generic.DXCoil datCoi(sta={ Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=900/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-12000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=0.9), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1200/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-18000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.2), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1800/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_II()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=2400/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-30000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.8), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_III())}, nSta= 4) "Coil data"; equation connect(TConIn.y, dryCoi.TConIn); connect(p.y, dryCoi.p); connect(m_flow.y, dryCoi.m_flow); connect(TEvaIn.y, dryCoi.TEvaIn); connect(XEvaIn.y, dryCoi.XEvaIn); connect(hEvaIn.y, dryCoi.hEvaIn); connect(speRat.y, dryCoi.speRat); connect(onOff.y, dryCoi.stage); end DryCoil;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.DryWetSelector

Test model for DryWetSelector

### Information

This example illustrates working of DryWetSelector block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DryWetSelector.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model DryWetSelector "Test model for DryWetSelector" extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp XADP( duration=20, startTime=20, height=-0.002, offset=0.006) "Mass fraction at ADP"; Modelica.Blocks.Sources.Ramp XEvaIn( startTime=20, height=0.002, offset=0.004, duration=20) "Inlet mass-fraction"; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DryWetSelector dryWet "Averages dry and wet coil conditions"; Modelica.Blocks.Sources.Constant TWet(k=283.15); Modelica.Blocks.Sources.Constant mWetWat_flow(k=0.01); Modelica.Blocks.Sources.Constant SHRWet(k=0.5); Modelica.Blocks.Sources.Constant QWet_flow(k=-3000); Modelica.Blocks.Sources.Constant EIRWet(k=0.3); Modelica.Blocks.Sources.Constant TDry(k=293.15); Modelica.Blocks.Sources.Constant QDry_flow(k=-2000); Modelica.Blocks.Sources.Constant EIRDry(k=0.2); equation connect(XEvaIn.y, dryWet.XEvaIn); connect(XADP.y, dryWet.XADP); connect(mWetWat_flow.y, dryWet.mWetWat_flow); connect(TWet.y, dryWet.TADPWet); connect(SHRWet.y, dryWet.SHRWet); connect(QWet_flow.y, dryWet.QWet_flow); connect(EIRWet.y, dryWet.EIRWet); connect(TDry.y, dryWet.TADPDry); connect(QDry_flow.y, dryWet.QDry_flow); connect(EIRDry.y, dryWet.EIRDry); end DryWetSelector;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.EvaporationFlowReversal

Test model for evaporation with zero flow and flow reversal

### Information

This example illustrates the evaporation of water vapor that accumulated on the coil. Input to the model is an air mass flow rate that is first positive, then ramps down to a negative value, and eventually ramps up to zero where it remains for a while.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
NominalValues | nomVal |  | Nominal values for DX coil
MassFraction | XEvaIn_nominal | Buildings.Utilities.Psychrom... | Mass fraction at nominal inlet conditions [1]
MassFraction | XEvaOut_nominal | XEvaIn_nominal + (1 - nomVal... | Nominal air outlet humidity [1]

### Modelica definition

model EvaporationFlowReversal "Test model for evaporation with zero flow and flow reversal" extends Modelica.Icons.Example; package Medium =Buildings.Media.Air; parameter Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues nomVal( Q_flow_nominal=-5000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=5000/1006/10) "Nominal values for DX coil"; parameter Modelica.SIunits.MassFraction XEvaIn_nominal= Buildings.Utilities.Psychrometrics.Functions.X_pSatpphi( pSat=Medium.saturationPressure(nomVal.TEvaIn_nominal), p=nomVal.p_nominal, phi=nomVal.phiIn_nominal) "Mass fraction at nominal inlet conditions"; parameter Modelica.SIunits.MassFraction XEvaOut_nominal = XEvaIn_nominal + (1-nomVal.SHR_nominal) * nomVal.Q_flow_nominal/nomVal.m_flow_nominal/Medium.enthalpyOfVaporization(293.15) "Nominal air outlet humidity"; Evaporation eva(redeclare package Medium = Medium, nomVal=nomVal, m(start=0.55, fixed=true)) "Evaporation model"; Modelica.Blocks.Sources.BooleanConstant offSignal(k=false); Modelica.Blocks.Sources.Constant TWat(k=293.15); Modelica.Blocks.Sources.TimeTable mAir_flow(table=[0,1; 300,1; 900,-1; 1200,-1; 1500,0; 1800,0]) "Air flow rate"; Modelica.Blocks.Sources.Constant TEva(k=nomVal.TEvaIn_nominal) "Inlet Temperature"; Modelica.Blocks.Continuous.Integrator int "Mass of water that evaporates into air stream"; Modelica.Blocks.Sources.Constant mWat_flow(k=0) "Water flow rate added into the medium from the coil model (without reevaporation flow rate)"; Modelica.Blocks.Math.Gain gain(k=nomVal.m_flow_nominal); Modelica.Blocks.Sources.Constant XEvaIn(k=XEvaIn_nominal) "Inlet water vapor mass fraction"; equation connect(offSignal.y, eva.on); connect(eva.TWat, TWat.y); connect(mWat_flow.y, eva.mWat_flow); connect(mAir_flow.y, gain.u); connect(gain.y, eva.mAir_flow); connect(eva.mTotWat_flow, int.u); connect(XEvaIn.y, eva.XEvaOut); connect(TEva.y, eva.TEvaOut); end EvaporationFlowReversal;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.EvaporationPulse

Test model for evaporation with pulse signal

### Information

This example illustrates the evaporation of water vapor that accumulated on the coil. Input to the model is a pulse signal that switches the coil on and off. The two instances have a different frequency of the on and off signal to illustrate that the reevaporation of mass is larger if the coil short-cycles.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
NominalValues | nomVal |  | Nominal values for DX coil
MassFraction | XEvaIn_nominal | Buildings.Utilities.Psychrom... | Mass fraction at nominal inlet conditions [1]
MassFraction | XEvaOut_nominal | XEvaIn_nominal + (1 - nomVal... | Nominal air outlet humidity [1]

### Modelica definition

model EvaporationPulse "Test model for evaporation with pulse signal" extends Modelica.Icons.Example; package Medium =Buildings.Media.Air; parameter Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues nomVal( Q_flow_nominal=-5000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=5000/1006/10) "Nominal values for DX coil"; parameter Modelica.SIunits.MassFraction XEvaIn_nominal= Buildings.Utilities.Psychrometrics.Functions.X_pSatpphi( pSat=Medium.saturationPressure(nomVal.TEvaIn_nominal), p=nomVal.p_nominal, phi=nomVal.phiIn_nominal) "Mass fraction at nominal inlet conditions"; parameter Modelica.SIunits.MassFraction XEvaOut_nominal = XEvaIn_nominal + (1-nomVal.SHR_nominal) * nomVal.Q_flow_nominal/nomVal.m_flow_nominal/Medium.enthalpyOfVaporization(293.15) "Nominal air outlet humidity"; Modelica.Blocks.Sources.Pulse pulSho(period=30*60) "Control signal for short-cycling coil"; Evaporation evaSho(redeclare package Medium = Medium, nomVal=nomVal) "Evaporation model"; Modelica.Blocks.Math.RealToBoolean realToBoolean; Modelica.Blocks.Sources.Constant TWat(k=293.15); Modelica.Blocks.Sources.Constant mAir_flow(k=nomVal.m_flow_nominal) "Air flow rate"; Modelica.Blocks.Sources.Constant TIn(k=nomVal.TEvaIn_nominal) "Inlet temperature"; Modelica.Blocks.Continuous.Integrator intSho "Mass of water that evaporates into air stream"; Evaporation evaNor(redeclare package Medium = Medium, nomVal=nomVal) "Evaporation model"; Modelica.Blocks.Continuous.Integrator intNor "Mass of water that evaporates into air stream"; Modelica.Blocks.Sources.Pulse pulNor(period=3600) "Control signal for normal-cycling coil"; Modelica.Blocks.Math.RealToBoolean realToBoolean1; Modelica.Blocks.Math.Gain mWat_flow(k=nomVal.Q_flow_nominal*(1 - nomVal.SHR_nominal) /Medium.enthalpyOfVaporization(293.15)) "Water mass flow rate from air to coil surface"; Modelica.Blocks.Math.Gain mWat_flow1(k=nomVal.Q_flow_nominal*(1 - nomVal.SHR_nominal) /Medium.enthalpyOfVaporization(293.15)) "Water mass flow rate from air to coil surface"; Modelica.Blocks.Sources.Constant XEvaIn(k=XEvaIn_nominal) "Inlet water vapor mass fraction"; equation connect(pulSho.y, realToBoolean.u); connect(realToBoolean.y, evaSho.on); connect(evaSho.TWat, TWat.y); connect(evaSho.mAir_flow, mAir_flow.y); connect(evaNor.TWat, TWat.y); connect(evaNor.mAir_flow, mAir_flow.y); connect(pulNor.y, realToBoolean1.u); connect(realToBoolean1.y, evaNor.on); connect(pulNor.y, mWat_flow1.u); connect(mWat_flow1.y, evaNor.mWat_flow); connect(pulSho.y, mWat_flow.u); connect(mWat_flow.y, evaSho.mWat_flow); connect(XEvaIn.y, evaSho.XEvaOut); connect(XEvaIn.y, evaNor.XEvaOut); connect(evaNor.mTotWat_flow, intNor.u); connect(evaSho.mTotWat_flow, intSho.u); connect(TIn.y, evaSho.TEvaOut); connect(TIn.y, evaNor.TEvaOut); end EvaporationPulse;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.InputPower

Test model for InputPower

### Information

This example illustrates working of InputPower block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.InputPower.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model InputPower "Test model for InputPower" extends Modelica.Icons.Example; Modelica.Blocks.Sources.Ramp SHR( height=0.5, duration=60, offset=0.5, startTime=0) "Sensible heat ratio"; Modelica.Blocks.Sources.Ramp EIR( height=-0.083, duration=60, offset=0.333, startTime=0) "Energy input ratio"; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.InputPower pwr "Calculates electrical power consumed by the unit"; Modelica.Blocks.Sources.Ramp Q_flow( height=-20000, duration=60, startTime=0) "Cooling rate"; equation connect(EIR.y, pwr.EIR); connect(Q_flow.y, pwr.Q_flow); connect(SHR.y, pwr.SHR); end InputPower;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.NominalCondition

Test model for NominalCondition

### Information

This example illustrates the calculation of inlet and outlet parameters at the nominal condition.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
NominalCondition | nomCon |  | Calculates nominal values
NominalValues | nomVal |  | Nominal values

### Modelica definition

model NominalCondition "Test model for NominalCondition" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; parameter Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.NominalCondition nomCon(redeclare package Medium = Medium, per=nomVal) "Calculates nominal values"; parameter Data.Generic.BaseClasses.NominalValues nomVal( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5) "Nominal values"; end NominalCondition;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.SensibleHeatRatio

Test model for SensibleHeatRatio

### Information

This example illustrates calculation of sensible heat ratio in block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.SensibleHeatRatio.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model SensibleHeatRatio "Test model for SensibleHeatRatio" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; Modelica.Blocks.Sources.Constant p( k=101325) "Pressure"; Modelica.Blocks.Sources.BooleanStep onOff( startTime=600) "Compressor on-off signal"; Modelica.Blocks.Sources.Ramp hEvaIn( duration=600, startTime=2400, offset=60000, height=-10000) "Specific enthalpy of air entering the coil"; Modelica.Blocks.Sources.Ramp TEvaIn( duration=600, startTime=2400, height=-5, offset=273.15 + 29) "Inlet air temperature"; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.SensibleHeatRatio shr( redeclare package Medium = Medium); Modelica.Blocks.Sources.Constant XADP(k=0.01) "Mass fraction"; Modelica.Blocks.Sources.Constant hADP(k=35000) "Specific enthalpy"; equation connect(onOff.y, shr.on); connect(hEvaIn.y, shr.hEvaIn); connect(TEvaIn.y, shr.TEvaIn); connect(p.y, shr.p); connect(XADP.y, shr.XADP); connect(hADP.y, shr.hADP); end SensibleHeatRatio;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.SpeedSelect

Test model for speed select

### Information

This example illustrates working of SpeedSelect block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.SpeedSelect.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
DXCoil | datCoi |  | Coil data

### Modelica definition

model SpeedSelect "Test model for speed select" extends Modelica.Icons.Example; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.SpeedSelect speSel( nSta=datCoi.nSta, speSet=datCoi.sta.spe) "Normalizes the input speed"; parameter Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.DXCoil datCoi(nSta=4, sta={ Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=900/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-12000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=0.9), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1200/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-18000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.2), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1800/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_II()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=2400/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-30000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.8), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_III())}) "Coil data"; Modelica.Blocks.Sources.IntegerTable sta(table=[0,0; 10,1; 20,2; 30,3; 40,4; 50,0]) "Stage of compressor"; equation connect(sta.y, speSel.stage); end SpeedSelect;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.SpeedShift

Test model for SpeedShift block

### Information

This example illustrates working of SpeedShift block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.SpeedShift.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
Integer | nSta | 4 | Number of standard compressor speeds
DXCoil | datCoi |  | Coil data

### Modelica definition

model SpeedShift "Test model for SpeedShift block" extends Modelica.Icons.Example; parameter Integer nSta=4 "Number of standard compressor speeds"; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.SpeedShift speShi(nSta=nSta, speSet= datCoi.sta.spe, variableSpeedCoil=true); Modelica.Blocks.Sources.Constant u[nSta](k={10,20,30,40}) "Inputs"; Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.25; 900,0.50; 1800,0.50; 2700,0.75; 3600,0.75]) "Speed ratio "; parameter Data.Generic.DXCoil datCoi(nSta=4, sta={ Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=900/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-12000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=0.9), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1200/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-18000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.2), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1800/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_II()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=2400/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-30000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.8), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_III())}) "Coil data"; Modelica.Blocks.Logical.GreaterThreshold greaterThreshold(threshold=0.1); Modelica.Blocks.Math.BooleanToInteger booleanToInteger; equation connect(u.y, speShi.u); connect(speRat.y, speShi.speRat); connect(speRat.y, greaterThreshold.u); connect(greaterThreshold.y, booleanToInteger.u); connect(booleanToInteger.y, speShi.stage); end SpeedShift;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.UACp

Test model for UACp

### Information

This example illustrates calculation of UA/Cp factor of coil (working of Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.UACp).

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Parameters

Type | Name | Default | Description
--- | --- | --- | ---
NominalValues | nomVal |  | Nominal values

### Modelica definition

model UACp "Test model for UACp" extends Modelica.Icons.Example; package Medium =Buildings.Media.Air; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.UACp uacp( per=nomVal, redeclare package Medium = Medium, homotopyInitialization=true) "Calculates UA/Cp value for the coil"; parameter Data.Generic.BaseClasses.NominalValues nomVal( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5) "Nominal values"; end UACp;

## Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.WetCoil

Test model for WetCoil

### Information

This example illustrates working of WetCoil block Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.WetCoil.

Extends from Modelica.Icons.Example (Icon for runnable examples).

### Modelica definition

model WetCoil "Test model for WetCoil" extends Modelica.Icons.Example; package Medium = Buildings.Media.Air; Modelica.Blocks.Sources.Constant p( k=101325) "Pressure"; Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.WetCoil wetCoi( redeclare package Medium = Medium, datCoi=datCoi, variableSpeedCoil=true) "Performs calculation for wet coil condition"; Modelica.Blocks.Sources.Constant TConIn( k=273.15 + 35) "Condenser inlet air temperature"; Modelica.Blocks.Sources.IntegerStep onOff( startTime=600) "Compressor on-off signal"; Modelica.Blocks.Sources.Ramp m_flow( duration=600, startTime=1200, height=1.05) "Mass flow rate of air"; Modelica.Blocks.Sources.Ramp XEvaIn( duration=600, startTime=2400, height=-0.002, offset=0.012) "Inlet mass-fraction"; Modelica.Blocks.Sources.Ramp hEvaIn( duration=600, startTime=2400, offset=60000, height=-10000) "Specific enthalpy of air entering the coil"; Modelica.Blocks.Sources.Ramp TEvaIn( duration=600, startTime=2400, height=-5, offset=273.15 + 29) "Inlet air temperature"; Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.0; 900,0.25; 1800,0.50; 2700,0.75]) "Speed ratio "; Data.Generic.DXCoil datCoi(nSta=4, sta={ Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=900/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-12000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=0.9), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1200/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-18000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.2), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_I()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=1800/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-21000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.5), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_II()), Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.Stage( spe=2400/60, nomVal= Buildings.Fluid.HeatExchangers.DXCoils.Data.Generic.BaseClasses.NominalValues( Q_flow_nominal=-30000, COP_nominal=3, SHR_nominal=0.8, m_flow_nominal=1.8), perCur= Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Examples.PerformanceCurves.Curve_III())}) "Coil data"; equation connect(p.y, wetCoi.p); connect(TConIn.y, wetCoi.TConIn); connect(m_flow.y, wetCoi.m_flow); connect(XEvaIn.y, wetCoi.XEvaIn); connect(hEvaIn.y, wetCoi.hEvaIn); connect(TEvaIn.y, wetCoi.TEvaIn); connect(speRat.y, wetCoi.speRat); connect(onOff.y, wetCoi.stage); end WetCoil;