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 |
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
extends Modelica.Icons.Example;
parameter Integer nSta=4 ;
package Medium =
Buildings.Media.Air;
parameter Real minSpeRat(min=0,max=1) = 0.2 ;
parameter Real speRatDeaBan= 0.05 ;
Modelica.Blocks.Sources.Constant p(
k=101325) ;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.ApparatusDewPoint
adp(
redeclare package Medium = Medium,
datCoi=datCoi,
variableSpeedCoil=true) ;
Modelica.Blocks.Sources.Ramp m_flow(
duration=600,
height=1.35,
startTime=600) ;
Modelica.Blocks.Sources.Ramp XEvaIn(
duration=600,
height=0.004,
startTime=1800,
offset=0.011) ;
Modelica.Blocks.Sources.Ramp Q_flow(
duration=600,
startTime=600,
height=-20000) ;
Modelica.Blocks.Sources.TimeTable speRat(
offset=0,
startTime=0,
table=[0.0,0.00; 600,0.25; 1800,0.5; 2700,0.75]) ;
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())}) ;
protected
Modelica.Blocks.Logical.Hysteresis deaBan(
uLow=minSpeRat - speRatDeaBan/2,
uHigh=minSpeRat + speRatDeaBan/2) ;
Modelica.Blocks.Math.BooleanToInteger onSwi(
final integerTrue=1,
final integerFalse=0) ;
public
Modelica.Blocks.Sources.Constant hEvaIn(k=
Medium.specificEnthalpy(
Medium.setState_pTX(
p=101325,
T=30 + 273.15,
X={0.015}))) ;
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;
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
extends Modelica.Icons.Example;
parameter Integer nSta=4;
package Medium =
Buildings.Media.Air;
parameter Real minSpeRat(min=0,max=1) = 0.2 ;
parameter Real speRatDeaBan= 0.05 ;
Modelica.Blocks.Sources.Constant p(
k=101325) ;
Modelica.Blocks.Sources.Constant hEvaIn(k=
Medium.specificEnthalpy(
Medium.setState_pTX(
p=101325,
T=30 + 273.15,
X={0.015}))) ;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.ApparatusDryPoint appDryPt(
redeclare package Medium = Medium,
datCoi=datCoi,
variableSpeedCoil=true) ;
Modelica.Blocks.Sources.Ramp m_flow(
duration=600,
height=1.35,
startTime=900) ;
Modelica.Blocks.Sources.Ramp Q_flow(
duration=600,
height=-20000,
offset=-2,
startTime=900) ;
Modelica.Blocks.Sources.TimeTable speRat(
table=[0.0,0.0; 900,0.25; 1800,0.50; 2700,0.75],
offset=0.25,
startTime=900) ;
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())}) ;
protected
Modelica.Blocks.Logical.Hysteresis deaBan(
uLow=minSpeRat - speRatDeaBan/2,
uHigh=minSpeRat + speRatDeaBan/2) ;
Modelica.Blocks.Math.BooleanToInteger onSwi(
final integerTrue=1,
final integerFalse=0) ;
public
Modelica.Blocks.Sources.Ramp XEvaIn(
duration=600,
height=0.004,
startTime=1800,
offset=0.011) ;
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;
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
package Medium =
Buildings.Media.Air;
extends Modelica.Icons.Example;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.Condensation mWat(
redeclare package Medium = Medium) ;
Modelica.Blocks.Sources.Ramp Q_flow(
height=-20000,
startTime=600,
offset=0,
duration=2400) ;
Modelica.Blocks.Sources.Ramp TDewPoi(
each startTime=600,
height=20,
offset=5.4,
each duration=1200) ;
Modelica.Blocks.Sources.Ramp shr(
startTime=1800,
height=1,
offset=0,
duration=1200) ;
equation
connect(TDewPoi.y, mWat.TDewPoi);
connect(Q_flow.y, mWat.Q_flow);
connect(shr.y, mWat.SHR);
end Condensation;
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
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) ;
Modelica.Blocks.Sources.Ramp m_flow(
duration=2400,
startTime=600,
height=sta.nomVal.m_flow_nominal,
offset=0) ;
Modelica.Blocks.Sources.Ramp TWetBulIn(
duration=2400,
startTime=600,
height=10,
offset=273.15 + 19.4) ;
Modelica.Blocks.Sources.IntegerStep onOff(startTime=600) ;
Modelica.Blocks.Sources.Ramp TConIn(
duration=2400,
startTime=600,
height=5,
offset=273.15 + 30) ;
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) ;
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;
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
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);
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DXCooling dxCoo(
redeclare package Medium = Medium,
datCoi=datCoi,
variableSpeedCoil=true);
Modelica.Blocks.Sources.IntegerStep onOff(
startTime=600) ;
Modelica.Blocks.Sources.Ramp m_flow(
duration=600,
startTime=1200,
height=1.05) ;
Modelica.Blocks.Sources.Ramp TEvaIn(
duration=600,
startTime=2400,
height=-5,
offset=273.15 + 29) ;
Modelica.Blocks.Sources.Ramp XEvaIn(
duration=600,
startTime=2400,
height=-0.002,
offset=0.012) ;
Modelica.Blocks.Sources.Ramp hEvaIn(
duration=600,
startTime=2400,
offset=60000,
height=-10000) ;
Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.0; 900,0.25; 1800,0.50;
2700,0.75]) ;
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) ;
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;
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
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) ;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DryCoil dryCoi(
redeclare package Medium = Medium,
datCoi=datCoi,
variableSpeedCoil=true) ;
Modelica.Blocks.Sources.IntegerStep onOff(
startTime=1200) ;
Modelica.Blocks.Sources.Ramp m_flow(
startTime=1200,
duration=600,
height=1.5) ;
Modelica.Blocks.Sources.Ramp TEvaIn(
duration=600,
startTime=2400,
height=-4,
offset=273.15 + 29) ;
Modelica.Blocks.Sources.Ramp XEvaIn(
duration=600,
startTime=2400,
height=-0.002,
offset=0.006) ;
Modelica.Blocks.Sources.Ramp hEvaIn(
duration=600,
startTime=2400,
height=-10000,
offset=45000) ;
Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.0; 900,0.25; 1800,0.50;
2700,0.75]) ;
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) ;
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;
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
extends Modelica.Icons.Example;
Modelica.Blocks.Sources.Ramp XADP(
duration=20,
startTime=20,
height=-0.002,
offset=0.006) ;
Modelica.Blocks.Sources.Ramp XEvaIn(
startTime=20,
height=0.002,
offset=0.004,
duration=20) ;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.DryWetSelector dryWet ;
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;
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
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) ;
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) ;
parameter Modelica.SIunits.MassFraction XEvaOut_nominal = XEvaIn_nominal +
(1-nomVal.SHR_nominal) * nomVal.Q_flow_nominal/nomVal.m_flow_nominal/
Medium.enthalpyOfVaporization(293.15) ;
Evaporation eva(
redeclare package Medium = Medium, nomVal=nomVal,
m(start=0.55, fixed=true)) ;
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]) ;
Modelica.Blocks.Sources.Constant TEva(k=nomVal.TEvaIn_nominal) ;
Modelica.Blocks.Continuous.Integrator int ;
Modelica.Blocks.Sources.Constant mWat_flow(k=0) ;
Modelica.Blocks.Math.Gain gain(k=nomVal.m_flow_nominal);
Modelica.Blocks.Sources.Constant XEvaIn(k=XEvaIn_nominal) ;
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;
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
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) ;
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) ;
parameter Modelica.SIunits.MassFraction XEvaOut_nominal = XEvaIn_nominal +
(1-nomVal.SHR_nominal) * nomVal.Q_flow_nominal/nomVal.m_flow_nominal/
Medium.enthalpyOfVaporization(293.15) ;
Modelica.Blocks.Sources.Pulse pulSho(period=30*60) ;
Evaporation evaSho(
redeclare package Medium = Medium, nomVal=nomVal) ;
Modelica.Blocks.Math.RealToBoolean realToBoolean;
Modelica.Blocks.Sources.Constant TWat(k=293.15);
Modelica.Blocks.Sources.Constant mAir_flow(k=nomVal.m_flow_nominal) ;
Modelica.Blocks.Sources.Constant TIn(k=nomVal.TEvaIn_nominal) ;
Modelica.Blocks.Continuous.Integrator intSho ;
Evaporation evaNor(
redeclare package Medium = Medium, nomVal=nomVal) ;
Modelica.Blocks.Continuous.Integrator intNor ;
Modelica.Blocks.Sources.Pulse pulNor(period=3600) ;
Modelica.Blocks.Math.RealToBoolean realToBoolean1;
Modelica.Blocks.Math.Gain mWat_flow(k=nomVal.Q_flow_nominal*(1 - nomVal.SHR_nominal)
/
Medium.enthalpyOfVaporization(293.15)) ;
Modelica.Blocks.Math.Gain mWat_flow1(k=nomVal.Q_flow_nominal*(1 - nomVal.SHR_nominal)
/
Medium.enthalpyOfVaporization(293.15)) ;
Modelica.Blocks.Sources.Constant XEvaIn(k=XEvaIn_nominal) ;
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;
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
extends Modelica.Icons.Example;
Modelica.Blocks.Sources.Ramp SHR(
height=0.5,
duration=60,
offset=0.5,
startTime=0) ;
Modelica.Blocks.Sources.Ramp EIR(
height=-0.083,
duration=60,
offset=0.333,
startTime=0) ;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.InputPower pwr ;
Modelica.Blocks.Sources.Ramp Q_flow(
height=-20000,
duration=60,
startTime=0) ;
equation
connect(EIR.y, pwr.EIR);
connect(Q_flow.y, pwr.Q_flow);
connect(SHR.y, pwr.SHR);
end InputPower;
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
Modelica definition
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
extends Modelica.Icons.Example;
package Medium =
Buildings.Media.Air;
Modelica.Blocks.Sources.Constant p(
k=101325) ;
Modelica.Blocks.Sources.BooleanStep onOff(
startTime=600) ;
Modelica.Blocks.Sources.Ramp hEvaIn(
duration=600,
startTime=2400,
offset=60000,
height=-10000) ;
Modelica.Blocks.Sources.Ramp TEvaIn(
duration=600,
startTime=2400,
height=-5,
offset=273.15 + 29) ;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.SensibleHeatRatio shr(
redeclare package Medium = Medium);
Modelica.Blocks.Sources.Constant XADP(k=0.01) ;
Modelica.Blocks.Sources.Constant hADP(k=35000) ;
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;
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
extends Modelica.Icons.Example;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.SpeedSelect speSel(
nSta=datCoi.nSta,
speSet=datCoi.sta.spe) ;
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())}) ;
Modelica.Blocks.Sources.IntegerTable sta(table=[0,0; 10,1; 20,2; 30,3; 40,4;
50,0]) ;
equation
connect(sta.y, speSel.stage);
end SpeedSelect;
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
extends Modelica.Icons.Example;
parameter Integer nSta=4 ;
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}) ;
Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.25; 900,0.50; 1800,0.50;
2700,0.75; 3600,0.75]) ;
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())}) ;
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;
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
Modelica definition
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
extends Modelica.Icons.Example;
package Medium =
Buildings.Media.Air;
Modelica.Blocks.Sources.Constant p(
k=101325) ;
Buildings.Fluid.HeatExchangers.DXCoils.BaseClasses.WetCoil wetCoi(
redeclare package Medium = Medium,
datCoi=datCoi,
variableSpeedCoil=true) ;
Modelica.Blocks.Sources.Constant TConIn(
k=273.15 + 35) ;
Modelica.Blocks.Sources.IntegerStep onOff(
startTime=600) ;
Modelica.Blocks.Sources.Ramp m_flow(
duration=600,
startTime=1200,
height=1.05) ;
Modelica.Blocks.Sources.Ramp XEvaIn(
duration=600,
startTime=2400,
height=-0.002,
offset=0.012) ;
Modelica.Blocks.Sources.Ramp hEvaIn(
duration=600,
startTime=2400,
offset=60000,
height=-10000) ;
Modelica.Blocks.Sources.Ramp TEvaIn(
duration=600,
startTime=2400,
height=-5,
offset=273.15 + 29) ;
Modelica.Blocks.Sources.TimeTable speRat(table=[0.0,0.0; 900,0.25; 1800,0.50;
2700,0.75]) ;
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())}) ;
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;
http://simulationresearch.lbl.gov/modelica