IEA EBC Annex 60 EBC logo

Annex60.Fluid.Chillers.Examples

Collection of models that illustrate model use and test models

Information

This package contains examples for the use of models that can be found in Annex60.Fluid.Chillers.

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

Package Content

Name Description
Annex60.Fluid.Chillers.Examples.Carnot_TEva Carnot_TEva Test model for chiller based on Carnot efficiency and evaporator outlet temperature control signal
Annex60.Fluid.Chillers.Examples.Carnot_y Carnot_y Test model for chiller based on Carnot_y efficiency

Annex60.Fluid.Chillers.Examples.Carnot_TEva Annex60.Fluid.Chillers.Examples.Carnot_TEva

Test model for chiller based on Carnot efficiency and evaporator outlet temperature control signal

Annex60.Fluid.Chillers.Examples.Carnot_TEva

Information

Example that simulates a chiller whose efficiency is scaled based on the Carnot cycle. The chiller takes as an input the evaporator leaving water temperature. The condenser mass flow rate is computed in such a way that it has a temperature difference equal to dTEva_nominal.

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

Parameters

TypeNameDefaultDescription
TemperatureDifferencedTEva_nominal-10Temperature difference evaporator outlet-inlet [K]
TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet [K]
RealCOPc_nominal3Chiller COP
HeatFlowRateQEva_flow_nominal-100E3Evaporator heat flow rate [W]
MassFlowRatem2_flow_nominalQEva_flow_nominal/dTEva_nomi...Nominal mass flow rate at chilled water side [kg/s]

Modelica definition

model Carnot_TEva "Test model for chiller based on Carnot efficiency and evaporator outlet temperature control signal" extends Modelica.Icons.Example; package Medium1 = Annex60.Media.Water "Medium model"; package Medium2 = Annex60.Media.Water "Medium model"; parameter Modelica.SIunits.TemperatureDifference dTEva_nominal=-10 "Temperature difference evaporator outlet-inlet"; parameter Modelica.SIunits.TemperatureDifference dTCon_nominal=10 "Temperature difference condenser outlet-inlet"; parameter Real COPc_nominal = 3 "Chiller COP"; parameter Modelica.SIunits.HeatFlowRate QEva_flow_nominal = -100E3 "Evaporator heat flow rate"; parameter Modelica.SIunits.MassFlowRate m2_flow_nominal= QEva_flow_nominal/dTEva_nominal/4200 "Nominal mass flow rate at chilled water side"; Annex60.Fluid.Chillers.Carnot_TEva chi( redeclare package Medium1 = Medium1, redeclare package Medium2 = Medium2, dTEva_nominal=dTEva_nominal, dTCon_nominal=dTCon_nominal, m2_flow_nominal=m2_flow_nominal, show_T=true, QEva_flow_nominal=QEva_flow_nominal, allowFlowReversal1=false, allowFlowReversal2=false, use_eta_Carnot_nominal=true, etaCarnot_nominal=0.3, dp1_nominal=6000, dp2_nominal=6000) "Chiller model"; Annex60.Fluid.Sources.MassFlowSource_T sou1(nPorts=1, redeclare package Medium = Medium1, use_T_in=false, use_m_flow_in=true, T=298.15); Annex60.Fluid.Sources.MassFlowSource_T sou2(nPorts=1, redeclare package Medium = Medium2, m_flow=m2_flow_nominal, use_T_in=false, T=295.15); Annex60.Fluid.Sources.FixedBoundary sin1( redeclare package Medium = Medium1, nPorts=1); Annex60.Fluid.Sources.FixedBoundary sin2(nPorts=1, redeclare package Medium = Medium2); Modelica.Blocks.Sources.Ramp TEvaLvg( duration=60, startTime=1800, offset=273.15 + 6, height=10) "Control signal for evaporator leaving temperature"; Modelica.Blocks.Math.Gain mCon_flow(k=-1/cp1_default/dTEva_nominal) "Condenser mass flow rate"; Modelica.Blocks.Math.Add QCon_flow(k2=-1) "Condenser heat flow rate"; final parameter Modelica.SIunits.SpecificHeatCapacity cp1_default= Medium1.specificHeatCapacityCp(Medium1.setState_pTX( Medium1.p_default, Medium1.T_default, Medium1.X_default)) "Specific heat capacity of medium 1 at default medium state"; equation connect(sou1.ports[1], chi.port_a1); connect(sou2.ports[1], chi.port_a2); connect(sin2.ports[1], chi.port_b2); connect(TEvaLvg.y, chi.TSet); connect(chi.P, QCon_flow.u1); connect(chi.QEva_flow, QCon_flow.u2); connect(QCon_flow.y, mCon_flow.u); connect(mCon_flow.y, sou1.m_flow_in); connect(chi.port_b1, sin1.ports[1]); end Carnot_TEva;

Annex60.Fluid.Chillers.Examples.Carnot_y Annex60.Fluid.Chillers.Examples.Carnot_y

Test model for chiller based on Carnot_y efficiency

Annex60.Fluid.Chillers.Examples.Carnot_y

Information

Example that simulates a chiller whose efficiency is scaled based on the Carnot cycle. The chiller control signal is the compressor speed.

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

Parameters

TypeNameDefaultDescription
PowerP_nominal10E3Nominal compressor power (at y=1) [W]
TemperatureDifferencedTEva_nominal-10Temperature difference evaporator outlet-inlet [K]
TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet [K]
RealCOPc_nominal3Chiller COP
MassFlowRatem2_flow_nominal-P_nominal*COPc_nominal/dTEv...Nominal mass flow rate at chilled water side [kg/s]
MassFlowRatem1_flow_nominalm2_flow_nominal*(COPc_nomina...Nominal mass flow rate at condenser water wide [kg/s]

Modelica definition

model Carnot_y "Test model for chiller based on Carnot_y efficiency" extends Modelica.Icons.Example; package Medium1 = Annex60.Media.Water "Medium model"; package Medium2 = Annex60.Media.Water "Medium model"; parameter Modelica.SIunits.Power P_nominal=10E3 "Nominal compressor power (at y=1)"; parameter Modelica.SIunits.TemperatureDifference dTEva_nominal=-10 "Temperature difference evaporator outlet-inlet"; parameter Modelica.SIunits.TemperatureDifference dTCon_nominal=10 "Temperature difference condenser outlet-inlet"; parameter Real COPc_nominal = 3 "Chiller COP"; parameter Modelica.SIunits.MassFlowRate m2_flow_nominal= -P_nominal*COPc_nominal/dTEva_nominal/4200 "Nominal mass flow rate at chilled water side"; parameter Modelica.SIunits.MassFlowRate m1_flow_nominal= m2_flow_nominal*(COPc_nominal+1)/COPc_nominal "Nominal mass flow rate at condenser water wide"; Annex60.Fluid.Chillers.Carnot_y chi( redeclare package Medium1 = Medium1, redeclare package Medium2 = Medium2, P_nominal=P_nominal, dTEva_nominal=dTEva_nominal, dTCon_nominal=dTCon_nominal, use_eta_Carnot_nominal=true, etaCarnot_nominal=0.3, dp1_nominal=6000, dp2_nominal=6000, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, show_T=true, T1_start=303.15, T2_start=278.15) "Chiller model"; Annex60.Fluid.Sources.MassFlowSource_T sou1(nPorts=1, redeclare package Medium = Medium1, use_T_in=true, m_flow=m1_flow_nominal, T=298.15); Annex60.Fluid.Sources.MassFlowSource_T sou2(nPorts=1, redeclare package Medium = Medium2, use_T_in=true, m_flow=m2_flow_nominal, T=291.15); Annex60.Fluid.Sources.FixedBoundary sin1( nPorts=1, redeclare package Medium = Medium1); Annex60.Fluid.Sources.FixedBoundary sin2( nPorts=1, redeclare package Medium = Medium2); Modelica.Blocks.Sources.Ramp uCom( height=-1, duration=60, offset=1, startTime=1800) "Compressor control signal"; Modelica.Blocks.Sources.Ramp TCon_in( height=10, duration=60, offset=273.15 + 20, startTime=60) "Condenser inlet temperature"; Modelica.Blocks.Sources.Ramp TEva_in( height=10, duration=60, startTime=900, offset=273.15 + 15) "Evaporator inlet temperature"; equation connect(sou1.ports[1], chi.port_a1); connect(sou2.ports[1], chi.port_a2); connect(chi.port_b1, sin1.ports[1]); connect(sin2.ports[1], chi.port_b2); connect(TCon_in.y, sou1.T_in); connect(TEva_in.y, sou2.T_in); connect(uCom.y, chi.y); end Carnot_y;

http://iea-annex60.org