Buildings.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 Buildings.Fluid.Chillers.

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

Package Content

Name Description
Buildings.Fluid.Chillers.Examples.Carnot_TEva Carnot_TEva Test model for chiller based on Carnot efficiency and evaporator outlet temperature control signal
Buildings.Fluid.Chillers.Examples.Carnot_y Carnot_y Test model for chiller based on Carnot_y efficiency
Buildings.Fluid.Chillers.Examples.ElectricEIR ElectricEIR Test model for chiller electric EIR
Buildings.Fluid.Chillers.Examples.ElectricReformulatedEIR ElectricReformulatedEIR Test model for chiller electric reformulated EIR
Buildings.Fluid.Chillers.Examples.BaseClasses BaseClasses Package with base classes for Buildings.Fluid.Chillers.Examples

Buildings.Fluid.Chillers.Examples.Carnot_TEva Buildings.Fluid.Chillers.Examples.Carnot_TEva

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

Buildings.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 = Buildings.Media.Water "Medium model"; package Medium2 = Buildings.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"; Buildings.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"; Buildings.Fluid.Sources.MassFlowSource_T sou1( nPorts=1, redeclare package Medium = Medium1, use_T_in=false, use_m_flow_in=true, T=298.15); Buildings.Fluid.Sources.MassFlowSource_T sou2( nPorts=1, redeclare package Medium = Medium2, m_flow=m2_flow_nominal, use_T_in=false, T=295.15); Buildings.Fluid.Sources.FixedBoundary sin1(redeclare package Medium = Medium1, nPorts=1); Buildings.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;

Buildings.Fluid.Chillers.Examples.Carnot_y Buildings.Fluid.Chillers.Examples.Carnot_y

Test model for chiller based on Carnot_y efficiency

Buildings.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 = Buildings.Media.Water "Medium model"; package Medium2 = Buildings.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"; Buildings.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"; Buildings.Fluid.Sources.MassFlowSource_T sou1( nPorts=1, redeclare package Medium = Medium1, use_T_in=true, m_flow=m1_flow_nominal, T=298.15); Buildings.Fluid.Sources.MassFlowSource_T sou2( nPorts=1, redeclare package Medium = Medium2, use_T_in=true, m_flow=m2_flow_nominal, T=291.15); Buildings.Fluid.Sources.FixedBoundary sin1(nPorts=1, redeclare package Medium = Medium1); Buildings.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;

Buildings.Fluid.Chillers.Examples.ElectricEIR Buildings.Fluid.Chillers.Examples.ElectricEIR

Test model for chiller electric EIR

Buildings.Fluid.Chillers.Examples.ElectricEIR

Information

Example that simulates a chiller whose efficiency is computed based on the condenser entering and evaporator leaving fluid temperature. A bicubic polynomial is used to compute the chiller part load performance.

Extends from Modelica.Icons.Example (Icon for runnable examples), Buildings.Fluid.Chillers.Examples.BaseClasses.PartialElectric (Base class for test model of chiller electric EIR).

Parameters

TypeNameDefaultDescription
PowerP_nominal-per.QEva_flow_nominal/per.C...Nominal compressor power (at y=1) [W]
TemperatureDifferencedTEva_nominal10Temperature difference evaporator inlet-outlet [K]
TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet [K]
RealCOPc_nominal3Chiller COP
MassFlowRatemEva_flow_nominalper.mEva_flow_nominalNominal mass flow rate at evaporator [kg/s]
MassFlowRatemCon_flow_nominalper.mCon_flow_nominalNominal mass flow rate at condenser [kg/s]
ElectricEIRChiller_McQuay_WSC_471kW_5_89COP_Vanesper Chiller performance data

Modelica definition

model ElectricEIR "Test model for chiller electric EIR" extends Modelica.Icons.Example; extends Buildings.Fluid.Chillers.Examples.BaseClasses.PartialElectric( P_nominal=-per.QEva_flow_nominal/per.COP_nominal, mEva_flow_nominal=per.mEva_flow_nominal, mCon_flow_nominal=per.mCon_flow_nominal, sou1(nPorts=1), sou2(nPorts=1)); parameter Data.ElectricEIR.ElectricEIRChiller_McQuay_WSC_471kW_5_89COP_Vanes per "Chiller performance data"; Buildings.Fluid.Chillers.ElectricEIR chi( redeclare package Medium1 = Medium1, redeclare package Medium2 = Medium2, per=per, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, dp1_nominal=6000, dp2_nominal=6000) "Chiller model"; equation connect(sou1.ports[1], chi.port_a1); connect(chi.port_b1, res1.port_a); connect(sou2.ports[1], chi.port_a2); connect(chi.port_b2, res2.port_a); connect(chi.on, greaterThreshold.y); connect(chi.TSet, TSet.y); end ElectricEIR;

Buildings.Fluid.Chillers.Examples.ElectricReformulatedEIR Buildings.Fluid.Chillers.Examples.ElectricReformulatedEIR

Test model for chiller electric reformulated EIR

Buildings.Fluid.Chillers.Examples.ElectricReformulatedEIR

Information

Example that simulates a chiller whose efficiency is computed based on the condenser leaving and evaporator leaving fluid temperature. A bicubic polynomial is used to compute the chiller part load performance.

Extends from Modelica.Icons.Example (Icon for runnable examples), Buildings.Fluid.Chillers.Examples.BaseClasses.PartialElectric (Base class for test model of chiller electric EIR).

Parameters

TypeNameDefaultDescription
PowerP_nominal-per.QEva_flow_nominal/per.C...Nominal compressor power (at y=1) [W]
TemperatureDifferencedTEva_nominal10Temperature difference evaporator inlet-outlet [K]
TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet [K]
RealCOPc_nominal3Chiller COP
MassFlowRatemEva_flow_nominalper.mEva_flow_nominalNominal mass flow rate at evaporator [kg/s]
MassFlowRatemCon_flow_nominalper.mCon_flow_nominalNominal mass flow rate at condenser [kg/s]
ReformEIRChiller_McQuay_WSC_471kW_5_89COP_Vanesper Chiller performance data

Modelica definition

model ElectricReformulatedEIR "Test model for chiller electric reformulated EIR" extends Modelica.Icons.Example; extends Buildings.Fluid.Chillers.Examples.BaseClasses.PartialElectric( P_nominal=-per.QEva_flow_nominal/per.COP_nominal, mEva_flow_nominal=per.mEva_flow_nominal, mCon_flow_nominal=per.mCon_flow_nominal, sou1(nPorts=1), sou2(nPorts=1)); parameter Data.ElectricReformulatedEIR.ReformEIRChiller_McQuay_WSC_471kW_5_89COP_Vanes per "Chiller performance data"; Buildings.Fluid.Chillers.ElectricReformulatedEIR chi( redeclare package Medium1 = Medium1, redeclare package Medium2 = Medium2, per=per, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, dp1_nominal=6000, dp2_nominal=6000) "Chiller model"; equation connect(sou1.ports[1], chi.port_a1); connect(chi.port_b1, res1.port_a); connect(sou2.ports[1], chi.port_a2); connect(chi.port_b2, res2.port_a); connect(chi.on, greaterThreshold.y); connect(TSet.y, chi.TSet); end ElectricReformulatedEIR;