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.AbsorptionIndirectSteam AbsorptionIndirectSteam Test model for absorption indirect steam chiller
Buildings.Fluid.Chillers.Examples.AbsorptionIndirectSteamVaryingLoad AbsorptionIndirectSteamVaryingLoad Absorption chiller with varying cooling load
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.ElectricEIR_AirCooled ElectricEIR_AirCooled Test model for chiller electric EIR with air-cooled condenser
Buildings.Fluid.Chillers.Examples.ElectricEIR_HeatRecovery ElectricEIR_HeatRecovery Test model for chiller electric EIR with heat recovery
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.AbsorptionIndirectSteam Buildings.Fluid.Chillers.Examples.AbsorptionIndirectSteam

Test model for absorption indirect steam chiller

Buildings.Fluid.Chillers.Examples.AbsorptionIndirectSteam

Information

Example that simulates the absorption chiller Buildings.Fluid.Chillers.AbsorptionIndirectSteam for different inlet conditions.

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

Parameters

TypeNameDefaultDescription
Genericperper(QEva_flow_nominal=-10000...Chiller performance data

Modelica definition

model AbsorptionIndirectSteam "Test model for absorption indirect steam chiller" extends Modelica.Icons.Example; package Medium = Buildings.Media.Water "Medium model"; parameter Buildings.Fluid.Chillers.Data.AbsorptionIndirectSteam.Generic per( QEva_flow_nominal=-10000, P_nominal=150, PLRMax=1, PLRMin=0.15, mEva_flow_nominal=0.247, mCon_flow_nominal=1.1, dpEva_nominal=0, dpCon_nominal=0, capFunEva={0.690571,0.065571,-0.00289,0}, capFunCon={0.245507,0.023614,0.0000278,0.000013}, genHIR={0.18892,0.968044,1.119202,-0.5034}, EIRP={1,0,0}, genConT={0.712019,-0.00478,0.000864,-0.000013}, genEvaT={0.995571,0.046821,-0.01099,0.000608}) "Chiller performance data"; Buildings.Fluid.Chillers.AbsorptionIndirectSteam absIndSte( redeclare package Medium1 = Medium, redeclare package Medium2 = Medium, show_T=true, per=per, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Absorption chiller"; Buildings.Fluid.Sources.MassFlowSource_T conPum( redeclare package Medium = Medium, use_m_flow_in=false, m_flow=per.mCon_flow_nominal, use_T_in=true, nPorts=1) "Condenser water pump"; Buildings.Fluid.Sources.MassFlowSource_T evaPum( redeclare package Medium = Medium, m_flow=per.mEva_flow_nominal, use_T_in=true, nPorts=1) "Evaporator water pump"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TConEnt( height=5, duration(displayUnit="h") = 14400, offset=20 + 273.15, startTime=0) "Condenser entering water temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TEvaEnt( height=4, duration(displayUnit="h") = 14400, offset=12 + 273.15, startTime=0) "Evaporator entering water temperature"; Buildings.Fluid.Sources.Boundary_pT heaVol( redeclare package Medium = Medium, nPorts=1) "Volume for heating load"; Buildings.Fluid.Sources.Boundary_pT cooVol( redeclare package Medium = Medium, nPorts=1) "Volume for cooling load"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TEvaSet( height=4, duration(displayUnit="h") = 14400, offset=6 + 273.15, startTime=0) "Evaporator setpoint water temperature"; Modelica.Blocks.Sources.BooleanPulse onOff(period=3600/2) "Control input"; equation connect(TConEnt.y,conPum. T_in); connect(TEvaEnt.y,evaPum. T_in); connect(absIndSte.port_a2, evaPum.ports[1]); connect(absIndSte.TSet, TEvaSet.y); connect(conPum.ports[1], absIndSte.port_a1); connect(absIndSte.port_b1, heaVol.ports[1]); connect(cooVol.ports[1], absIndSte.port_b2); connect(onOff.y, absIndSte.on); end AbsorptionIndirectSteam;

Buildings.Fluid.Chillers.Examples.AbsorptionIndirectSteamVaryingLoad Buildings.Fluid.Chillers.Examples.AbsorptionIndirectSteamVaryingLoad

Absorption chiller with varying cooling load

Buildings.Fluid.Chillers.Examples.AbsorptionIndirectSteamVaryingLoad

Information

This model validates Buildings.Fluid.Chillers.AbsorptionIndirectSteam. for the case with varying cooling load.

The model is constructed in a way that the temperatures which determine the performance of the absorption chiller are kept constant in order to monitor the effects of the part load behavior on the ratio of the provided cooling to the required steam.

Parameters

TypeNameDefaultDescription
Genericperper(QEva_flow_nominal=-10000...Chiller performance data

Modelica definition

model AbsorptionIndirectSteamVaryingLoad "Absorption chiller with varying cooling load" package Medium = Buildings.Media.Water "Medium model"; parameter Data.AbsorptionIndirectSteam.Generic per( QEva_flow_nominal=-10000, P_nominal=150, PLRMax=1, PLRMin=0.15, mEva_flow_nominal=0.247, mCon_flow_nominal=1.1, dpEva_nominal=0, dpCon_nominal=0, capFunEva={0.690571,0.065571,-0.00289,0}, capFunCon={0.245507,0.023614,0.0000278,0.000013}, genHIR={0.18892,0.968044,1.119202,-0.5034}, EIRP={1,0,0}, genConT={0.712019,-0.00478,0.000864,-0.000013}, genEvaT={0.995571,0.046821,-0.01099,0.000608}) "Chiller performance data"; Buildings.Fluid.Chillers.AbsorptionIndirectSteam chi( redeclare package Medium1 = Medium, redeclare package Medium2 = Medium, per=per, show_T=true, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, T1_start=25 + 273.15, T2_start=10 + 273.15) "Absorption indirect chiller"; Buildings.Fluid.Sources.MassFlowSource_T conPum( redeclare package Medium = Medium, m_flow=per.mCon_flow_nominal, T=273.15 + 30, nPorts=1) "Condenser water pump"; Buildings.Fluid.Sources.Boundary_pT bouCoo( redeclare package Medium = Medium, nPorts=1) "Boundary condition for cooling loop"; Buildings.Fluid.Sources.Boundary_pT heaBou( redeclare package Medium = Medium, nPorts=1) "Boundary condition for heating"; Controls.OBC.CDL.Logical.Sources.Constant on(k=true) "On signal"; Movers.FlowControlled_m_flow pum( redeclare package Medium = Medium, energyDynamics=Modelica.Fluid.Types.Dynamics.SteadyState, m_flow_nominal=per.mEva_flow_nominal, inputType=Buildings.Fluid.Types.InputType.Continuous, nominalValuesDefineDefaultPressureCurve=true, use_inputFilter=false) "Chilled water pump"; Sources.PropertySource_T proSou( redeclare package Medium = Medium, use_T_in=true) "Cooling load"; Controls.OBC.CDL.Reals.Sources.Constant TSet(k=273.15 + 10) "Set point"; Controls.OBC.CDL.Reals.Sources.Ramp mPum_flow( height=per.mEva_flow_nominal, duration=86400, offset=0) "Pump flow rate"; Controls.OBC.CDL.Reals.Divide QEva_QGen "Ratio of cooling provided over required steam"; Controls.OBC.CDL.Reals.Divide QEva_P "Ratio of cooling provided over pump energy"; Controls.OBC.CDL.Reals.MultiplyByParameter gai(k=-1) "Gain to switch sign"; Controls.OBC.CDL.Reals.Sources.Constant TEnt(k=273.15 + 15) "Entering evaporator temperature"; equation connect(chi.on, on.y); connect(conPum.ports[1], chi.port_a1); connect(chi.port_b1, heaBou.ports[1]); connect(bouCoo.ports[1], pum.port_a); connect(proSou.port_a, pum.port_b); connect(proSou.port_b, chi.port_a2); connect(pum.port_a, chi.port_b2); connect(TSet.y, chi.TSet); connect(chi.QEva_flow, gai.u); connect(QEva_P.u2, chi.P); connect(QEva_QGen.u2, chi.QGen_flow); connect(gai.y, QEva_P.u1); connect(gai.y, QEva_QGen.u1); connect(mPum_flow.y, pum.m_flow_in); connect(TEnt.y, proSou.T_in); end AbsorptionIndirectSteamVaryingLoad;

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.Units.SI.TemperatureDifference dTEva_nominal=-10 "Temperature difference evaporator outlet-inlet"; parameter Modelica.Units.SI.TemperatureDifference dTCon_nominal=10 "Temperature difference condenser outlet-inlet"; parameter Real COPc_nominal = 3 "Chiller COP"; parameter Modelica.Units.SI.HeatFlowRate QEva_flow_nominal=-100E3 "Evaporator heat flow rate"; parameter Modelica.Units.SI.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, 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.Boundary_pT sin1( redeclare package Medium = Medium1, nPorts=1); Buildings.Fluid.Sources.Boundary_pT 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.Units.SI.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.Units.SI.Power P_nominal=10E3 "Nominal compressor power (at y=1)"; parameter Modelica.Units.SI.TemperatureDifference dTEva_nominal=-10 "Temperature difference evaporator outlet-inlet"; parameter Modelica.Units.SI.TemperatureDifference dTCon_nominal=10 "Temperature difference condenser outlet-inlet"; parameter Real COPc_nominal = 3 "Chiller COP"; parameter Modelica.Units.SI.MassFlowRate m2_flow_nominal=-P_nominal* COPc_nominal/dTEva_nominal/4200 "Nominal mass flow rate at chilled water side"; parameter Modelica.Units.SI.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, 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.Boundary_pT sin1( nPorts=1, redeclare package Medium = Medium1); Buildings.Fluid.Sources.Boundary_pT 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.ElectricEIR_AirCooled Buildings.Fluid.Chillers.Examples.ElectricEIR_AirCooled

Test model for chiller electric EIR with air-cooled condenser

Buildings.Fluid.Chillers.Examples.ElectricEIR_AirCooled

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. This example is for an air-cooled chiller.

Extends from Modelica.Icons.Example (Icon for runnable examples), Buildings.Fluid.Chillers.Examples.BaseClasses.PartialElectric_AirCooled (Base class for test model of chiller electric EIR with air-cooled condenser).

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_York_YCAL0033EE_101kW_3_1COP_AirCooledper Chiller performance data

Modelica definition

model ElectricEIR_AirCooled "Test model for chiller electric EIR with air-cooled condenser" extends Modelica.Icons.Example; extends Buildings.Fluid.Chillers.Examples.BaseClasses.PartialElectric_AirCooled ( 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_York_YCAL0033EE_101kW_3_1COP_AirCooled 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_AirCooled;

Buildings.Fluid.Chillers.Examples.ElectricEIR_HeatRecovery Buildings.Fluid.Chillers.Examples.ElectricEIR_HeatRecovery

Test model for chiller electric EIR with heat recovery

Buildings.Fluid.Chillers.Examples.ElectricEIR_HeatRecovery

Information

Example that simulates a heat recovery chiller operating in heating mode, i.e., tracking a hot water supply temperature setpoint. The chiller 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_HeatRecovery "Test model for chiller electric EIR with heat recovery" 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), TSet( height=8, offset=273.15 + 25)); 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, have_switchover=true, per=per, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, dp1_nominal=6000, dp2_nominal=6000) "Chiller model"; Controls.OBC.CDL.Logical.Sources.Constant fal(final k=false) "Constant false signal"; 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); connect(fal.y, chi.coo); end ElectricEIR_HeatRecovery;

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;