IEA EBC Annex 60 EBC logo

Annex60.Fluid.HeatPumps.Validation

Collection of models that validate the heat pump models

Information

This package contains models that validate the heat pump models. The examples plot various outputs, which have been verified against analytical solutions. These model outputs are stored as reference data to allow continuous validation whenever models in the library change.

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

Package Content

Name Description
Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_LimitedCapacity Carnot_TCon_LimitedCapacity Test model for Carnot_TCon with limited heating capacity
Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_LowTemperature Carnot_TCon_LowTemperature Test model for Carnot_TCon with low condenser leaving water temperature
Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_etaPL Carnot_TCon_etaPL Test model for the part load efficiency curve with condenser leaving temperature as input signal
Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_reverseFlow Carnot_TCon_reverseFlow Test model for heat pump based on Carnot efficiency and condenser outlet temperature control signal
Annex60.Fluid.HeatPumps.Validation.Carnot_y_etaCar Carnot_y_etaCar Test model for heat pump based on Carnot efficiency with etaCar as parameter
Annex60.Fluid.HeatPumps.Validation.Carnot_y_etaPL Carnot_y_etaPL Test model for the part load efficiency curve with compressor speed as input signal

Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_LimitedCapacity Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_LimitedCapacity

Test model for Carnot_TCon with limited heating capacity

Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_LimitedCapacity

Information

This example extends from Annex60.Fluid.HeatPumps.Examples.Carnot_TCon but limits the heating capacity.

Extends from Examples.Carnot_TCon (Test model for heat pump based on Carnot efficiency and condenser outlet temperature control signal).

Parameters

TypeNameDefaultDescription
TemperatureDifferencedTEva_nominal-5Temperature difference evaporator inlet-outlet [K]
TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet [K]
HeatFlowRateQCon_flow_nominal100E3Evaporator heat flow rate [W]
MassFlowRatem1_flow_nominalQCon_flow_nominal/dTCon_nomi...Nominal mass flow rate at condenser [kg/s]

Modelica definition

model Carnot_TCon_LimitedCapacity "Test model for Carnot_TCon with limited heating capacity" extends Examples.Carnot_TCon(heaPum(QCon_flow_max=250000)); end Carnot_TCon_LimitedCapacity;

Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_LowTemperature Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_LowTemperature

Test model for Carnot_TCon with low condenser leaving water temperature

Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_LowTemperature

Information

This example extends from Annex60.Fluid.HeatPumps.Examples.Carnot_TCon but decreases the set point for the leaving condenser temperature to be below its inlet temperature, in which case the model provides no heating. Towards the end of the simulation, the inlet temperature of the condenser is decreased to be below the evaporator temperature. In this domain, the model requires cooling again. While this is not a meaningful operating point for the model, the example verifies that it robustly simulates this regime.

Extends from Examples.Carnot_TCon (Test model for heat pump based on Carnot efficiency and condenser outlet temperature control signal).

Parameters

TypeNameDefaultDescription
TemperatureDifferencedTEva_nominal-5Temperature difference evaporator inlet-outlet [K]
TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet [K]
HeatFlowRateQCon_flow_nominal100E3Evaporator heat flow rate [W]
MassFlowRatem1_flow_nominalQCon_flow_nominal/dTCon_nomi...Nominal mass flow rate at condenser [kg/s]

Modelica definition

model Carnot_TCon_LowTemperature "Test model for Carnot_TCon with low condenser leaving water temperature" extends Examples.Carnot_TCon(TConLvg(height=-32), sou1(use_T_in=true)); Modelica.Blocks.Sources.Ramp TConEnt( duration=60, offset=273.15 + 20, startTime=3000, height=-19) "Control signal for condenser entering temperature"; equation connect(TConEnt.y, sou1.T_in); end Carnot_TCon_LowTemperature;

Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_etaPL Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_etaPL

Test model for the part load efficiency curve with condenser leaving temperature as input signal

Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_etaPL

Information

This example extends from Annex60.Fluid.HeatPumps.Examples.Carnot_TCon but has a part load efficiency that varies with the load.

Extends from Examples.Carnot_TCon (Test model for heat pump based on Carnot efficiency and condenser outlet temperature control signal).

Parameters

TypeNameDefaultDescription
TemperatureDifferencedTEva_nominal-5Temperature difference evaporator inlet-outlet [K]
TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet [K]
HeatFlowRateQCon_flow_nominal100E3Evaporator heat flow rate [W]
MassFlowRatem1_flow_nominalQCon_flow_nominal/dTCon_nomi...Nominal mass flow rate at condenser [kg/s]

Modelica definition

model Carnot_TCon_etaPL "Test model for the part load efficiency curve with condenser leaving temperature as input signal" extends Examples.Carnot_TCon( heaPum(a={0.7,0.3}), TConLvg(height=10, offset=273.15 + 25)); end Carnot_TCon_etaPL;

Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_reverseFlow Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_reverseFlow

Test model for heat pump based on Carnot efficiency and condenser outlet temperature control signal

Annex60.Fluid.HeatPumps.Validation.Carnot_TCon_reverseFlow

Information

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

This example checks the correct behavior if a mass flow rate attains zero.

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

Parameters

TypeNameDefaultDescription
TemperatureDifferencedTEva_nominal-10Temperature difference evaporator inlet-outlet [K]
TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet [K]
HeatFlowRateQCon_flow_nominal100E3Evaporator heat flow rate [W]
MassFlowRatem1_flow_nominalQCon_flow_nominal/dTCon_nomi...Nominal mass flow rate at condenser [kg/s]

Modelica definition

model Carnot_TCon_reverseFlow "Test model for heat pump based on Carnot efficiency and condenser 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 inlet-outlet"; parameter Modelica.SIunits.TemperatureDifference dTCon_nominal=10 "Temperature difference condenser outlet-inlet"; parameter Modelica.SIunits.HeatFlowRate QCon_flow_nominal = 100E3 "Evaporator heat flow rate"; parameter Modelica.SIunits.MassFlowRate m1_flow_nominal= QCon_flow_nominal/dTCon_nominal/4200 "Nominal mass flow rate at condenser"; Modelica.Blocks.Sources.Constant TConLvg(k=273.15 + 40) "Control signal for condenser leaving temperature"; final parameter Modelica.SIunits.SpecificHeatCapacity cp2_default= Medium2.specificHeatCapacityCp(Medium2.setState_pTX( Medium2.p_default, Medium2.T_default, Medium2.X_default)) "Specific heat capacity of medium 2 at default medium state"; Modelica.Blocks.Sources.Ramp mCon_flow( duration=60, startTime=1800, height=-2*m1_flow_nominal, offset=m1_flow_nominal) "Mass flow rate for condenser"; Carnot_TCon heaPum( redeclare package Medium1 = Medium1, redeclare package Medium2 = Medium2, dTEva_nominal=dTEva_nominal, dTCon_nominal=dTCon_nominal, m1_flow_nominal=m1_flow_nominal, show_T=true, use_eta_Carnot_nominal=true, etaCarnot_nominal=0.3, QCon_flow_nominal=QCon_flow_nominal, allowFlowReversal1=true, allowFlowReversal2=true, dp1_nominal=6000, dp2_nominal=6000) "Heat pump"; Sources.MassFlowSource_T sou1(nPorts=1, redeclare package Medium = Medium1, use_m_flow_in=true, T=293.15); Sources.MassFlowSource_T sou2(nPorts=1, redeclare package Medium = Medium2, use_T_in=false, use_m_flow_in=true, T=288.15); Sources.FixedBoundary sin1( redeclare package Medium = Medium1, nPorts=1); Sources.FixedBoundary sin2( nPorts=1, redeclare package Medium = Medium2); Modelica.Blocks.Math.Gain mEva_flow(k=-1/cp2_default/dTEva_nominal) "Evaporator mass flow rate"; Modelica.Blocks.Math.Add QEva_flow(k2=-1) "Evaporator heat flow rate"; equation connect(sou1.ports[1],heaPum. port_a1); connect(sou2.ports[1],heaPum. port_a2); connect(sin2.ports[1],heaPum. port_b2); connect(QEva_flow.y,mEva_flow. u); connect(heaPum.port_b1,sin1. ports[1]); connect(mEva_flow.y, sou2.m_flow_in); connect(TConLvg.y, heaPum.TSet); connect(mCon_flow.y, sou1.m_flow_in); connect(heaPum.QCon_flow, QEva_flow.u1); connect(QEva_flow.u2, heaPum.P); end Carnot_TCon_reverseFlow;

Annex60.Fluid.HeatPumps.Validation.Carnot_y_etaCar Annex60.Fluid.HeatPumps.Validation.Carnot_y_etaCar

Test model for heat pump based on Carnot efficiency with etaCar as parameter

Annex60.Fluid.HeatPumps.Validation.Carnot_y_etaCar

Information

This example extends from Annex60.Fluid.HeatPumps.Examples.Carnot_y but uses the parameter etaCar instead of COP_nominal.

Extends from Annex60.Fluid.HeatPumps.Examples.Carnot_y (Test model for heat pump based on Carnot efficiency).

Parameters

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

Modelica definition

model Carnot_y_etaCar "Test model for heat pump based on Carnot efficiency with etaCar as parameter" extends Annex60.Fluid.HeatPumps.Examples.Carnot_y( heaPum(use_eta_Carnot_nominal=true, etaCarnot_nominal=0.494805)); end Carnot_y_etaCar;

Annex60.Fluid.HeatPumps.Validation.Carnot_y_etaPL Annex60.Fluid.HeatPumps.Validation.Carnot_y_etaPL

Test model for the part load efficiency curve with compressor speed as input signal

Annex60.Fluid.HeatPumps.Validation.Carnot_y_etaPL

Information

This example extends from Annex60.Fluid.HeatPumps.Examples.Carnot_y but uses a part load efficiency curve that is different from 1.

Extends from Examples.Carnot_y (Test model for heat pump based on Carnot efficiency).

Parameters

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

Modelica definition

model Carnot_y_etaPL "Test model for the part load efficiency curve with compressor speed as input signal" extends Examples.Carnot_y(heaPum(a={0.7,0.3}, T1_start=303.15, T2_start=278.15)); end Carnot_y_etaPL;

http://iea-annex60.org