Buildings.Fluid.HeatPumps.ModularReversible

Package for reversible and non-reversible heat pumps using a modular model approach

Information

Package with models and packages for the modular reversible heat pump approach. See the Buildings.Fluid.HeatPumps.ModularReversible.UsersGuide for more information.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Fluid.HeatPumps.ModularReversible.UsersGuide UsersGuide User's Guide for modular reversible heat pump and chiller models
Buildings.Fluid.HeatPumps.ModularReversible.AirToWaterTableData2D AirToWaterTableData2D Reversible air to water heat pump based on 2D manufacturer data in Europe
Buildings.Fluid.HeatPumps.ModularReversible.CarnotWithLosses CarnotWithLosses Heat pump using the Carnot approach, but with added reversibility and losses (heat, frost, inertia)
Buildings.Fluid.HeatPumps.ModularReversible.LargeScaleWaterToWater LargeScaleWaterToWater Model with automatic parameter estimation for large scale water-to-water heat pumps
Buildings.Fluid.HeatPumps.ModularReversible.Modular Modular Grey-box model for reversible and non-reversible heat pumps
Buildings.Fluid.HeatPumps.ModularReversible.TableData2D TableData2D Reversible heat pump based on 2D manufacturer data
Buildings.Fluid.HeatPumps.ModularReversible.Controls Controls Package of control sequences
Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle RefrigerantCycle Package for heat pupmp refrigerant cycle modules
Buildings.Fluid.HeatPumps.ModularReversible.Data Data Package with data for modular reversible heat pump models
Buildings.Fluid.HeatPumps.ModularReversible.Examples Examples Collection of models that illustrate model use and test models
Buildings.Fluid.HeatPumps.ModularReversible.Validation Validation Collection of validation models
Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses BaseClasses Package with base classes for Buildings.Fluid.HeatPumps.ModularReversible

Buildings.Fluid.HeatPumps.ModularReversible.AirToWaterTableData2D Buildings.Fluid.HeatPumps.ModularReversible.AirToWaterTableData2D

Reversible air to water heat pump based on 2D manufacturer data in Europe

Buildings.Fluid.HeatPumps.ModularReversible.AirToWaterTableData2D

Information

Reversible air-to-water heat pump based on two-dimensional data from manufacturer data, (e.g. based on EN 14511), using the Buildings.Fluid.HeatPumps.ModularReversible.Modular approach.

For more information on the approach, see Buildings.Fluid.HeatPumps.ModularReversible.UsersGuide.

Internal inertias and heat losses are neglected, as these are implicitly obtained in measured data from manufacturers. Also, icing is disabled as the performance degradation is already contained in the data.

Please read the documentation of the model for heating at Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.TableData2D.

For cooling, the assumptions are similar, and described at Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.TableData2D

References

EN 14511-2018: Air conditioners, liquid chilling packages and heat pumps for space heating and cooling and process chillers, with electrically driven compressors https://www.beuth.de/de/norm/din-en-14511-1/298537524

Extends from Buildings.Fluid.HeatPumps.ModularReversible.TableData2D (Reversible heat pump based on 2D manufacturer data).

Parameters

TypeNameDefaultDescription
replaceable package MediumConPartialMediumMedium on condenser side
replaceable package MediumEvaPartialMediumMedium on evaporator side
Nominal condition
HeatFlowRateQHea_flow_nominal Nominal heating capacity [W]
TemperatureTConHea_nominal Nominal temperature of the heated fluid [K]
TemperatureTEvaHea_nominal Nominal temperature of the cooled fluid [K]
Safety control
Booleanuse_intSafCtrtrue=true to enable internal safety control
Wuellhorst2021safCtrParredeclare replaceable Buildi...Safety control parameters
Nominal condition - Pressure losses
TemperatureDifferencedTCon_nominalQHea_flow_nominal/cpCon/mCon...Nominal temperature difference in condenser medium, used to calculate mass flow rate [K]
MassFlowRatemCon_flow_nominaldatTabHea.mCon_flow_nominal*...Nominal mass flow rate of the condenser medium [kg/s]
PressureDifferencedpCon_nominaldatTabHea.dpCon_nominal*scaF...Pressure drop at nominal mass flow rate [Pa]
TemperatureDifferencedTEva_nominal(QHea_flow_nominal - PEle_no...Nominal temperature difference in evaporator medium, used to calculate mass flow rate [K]
MassFlowRatemEva_flow_nominaldatTabHea.mEva_flow_nominal*...Nominal mass flow rate of the evaporator medium [kg/s]
PressureDifferencedpEva_nominaldatTabHea.dpEva_nominal*scaF...Pressure drop at nominal mass flow rate [Pa]
Nominal condition - Cooling
HeatFlowRateQCoo_flow_nominalrefCyc.refCycHeaPumCoo.QCooN...Nominal cooling capacity [W]
TemperatureTConCoo_nominal Nominal temperature of the cooled fluid [K]
TemperatureTEvaCoo_nominal Nominal temperature of the heated fluid [K]
Assumptions
Evaporator
BooleanallowFlowReversalEvatrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Condenser
BooleanallowFlowReversalContrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
BooleanallowDifferentDeviceIdentifiersfalseif use_rev=true, device data for cooling and heating need to entered. Set allowDifferentDeviceIdentifiers=true to allow different device identifiers devIde
BooleancalEfftrue=false to disable efficiency calculation, may speed up the simulation
ReallimWarSca0.05Allowed difference in scaling '|scaFacHea - scaFacCoo| / scaFacHea', if exceeded, a warning will be issued [1]
SmoothnesssmoothnessModelica.Blocks.Types.Smooth...Smoothness of table interpolation
ExtrapolationextrapolationModelica.Blocks.Types.Extrap...Extrapolation of data outside the definition range
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
RealySet_small0.01Threshold for relative speed for the device to be considered on
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Condenser
Dynamics
TimetauCon30Condenser heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMCon0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_conCapfalse=true if using capacitor model for condenser heat loss estimation
HeatCapacityCCon0Heat capacity of the condenser [J/K]
ThermalConductanceGConOut0Outer thermal conductance for condenser heat loss calculations [W/K]
ThermalConductanceGConIns0Inner thermal conductance for condenser heat loss calculations [W/K]
Evaporator
Dynamics
TimetauEva30Evaporator heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMEva0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_evaCapfalse=true if using capacitor model for evaporator heat loss estimation
HeatCapacityCEva0Heat capacity of the evaporator [J/K]
ThermalConductanceGEvaOut0Outer thermal conductance for evaporator heat loss calculations [W/K]
ThermalConductanceGEvaIns0Inner thermal conductance for evaporator heat loss calculations [W/K]
Initialization
Parameters
InitinitTypeModelica.Blocks.Types.Init.I...Type of initialization for refrigerant cycle dynamics (InitialState and InitialOutput are identical)
Condenser
AbsolutePressurepCon_startMediumCon.p_defaultStart value of pressure [Pa]
TemperatureTCon_startMediumCon.T_defaultStart value of temperature [K]
TemperatureTConCap_startMediumCon.T_defaultInitial temperature of heat capacity of condenser [K]
MassFractionXCon_start[MediumCon.nX]MediumCon.X_defaultStart value of mass fractions m_i/m [kg/kg]
Evaporator
AbsolutePressurepEva_startMediumEva.p_defaultStart value of pressure [Pa]
TemperatureTEva_startMediumEva.T_defaultStart value of temperature [K]
TemperatureTEvaCap_startMediumEva.T_defaultInitial temperature of heat capacity at evaporator [K]
MassFractionXEva_start[MediumEva.nX]MediumEva.X_defaultStart value of mass fractions m_i/m [kg/kg]
Dynamics
Equation
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state (only affects fluid-models)

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
replaceable package MediumConMedium on condenser side
replaceable package MediumEvaMedium on evaporator side
input RealInputySetRelative compressor speed between 0 and 1
input RealInputTEvaAmbAmbient temperature on the evaporator side [K]
input RealInputTConAmbAmbient temperature on the condenser side [K]
output RealOutputQCon_flowActual heating heat flow rate added to fluid 1 [W]
output RealOutputPElectric power consumed by compressor [W]
output RealOutputQEva_flowActual cooling heat flow rate removed from fluid 2 [W]
output RealOutputEEREnergy efficieny ratio [1]
output RealOutputCOPCoefficient of performance [1]
input BooleanInputhea=true for heating, =false for cooling

Modelica definition

model AirToWaterTableData2D "Reversible air to water heat pump based on 2D manufacturer data in Europe" extends Buildings.Fluid.HeatPumps.ModularReversible.TableData2D( redeclare replaceable package MediumEva = Buildings.Media.Air, redeclare replaceable package MediumCon = Buildings.Media.Water, redeclare replaceable Buildings.Fluid.HeatPumps.ModularReversible.Data.TableData2D.GenericAirToWater datTabHea constrainedby Buildings.Fluid.HeatPumps.ModularReversible.Data.TableData2D.GenericAirToWater, redeclare replaceable Buildings.Fluid.Chillers.ModularReversible.Data.TableData2D.Generic datTabCoo constrainedby Buildings.Fluid.Chillers.ModularReversible.Data.TableData2D.Generic); end AirToWaterTableData2D;

Buildings.Fluid.HeatPumps.ModularReversible.CarnotWithLosses Buildings.Fluid.HeatPumps.ModularReversible.CarnotWithLosses

Heat pump using the Carnot approach, but with added reversibility and losses (heat, frost, inertia)

Buildings.Fluid.HeatPumps.ModularReversible.CarnotWithLosses

Information

Model of a reversible heat pump.

This model extends Buildings.Fluid.HeatPumps.ModularReversible.Modular and selects the constant Carnot effectiveness module for heat pumps ( Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness) and chillers ( Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness) to model a reversible heat pump. For the heating operation, the approach temperatures are fixed at nominal values to avoid nonlinear system of equations.

Furthermore, losses are enabled to model the heat pump with a more realistic behaviour:

For more information on the approach, see Buildings.Fluid.HeatPumps.ModularReversible.UsersGuide.

Extends from Buildings.Fluid.HeatPumps.ModularReversible.Modular (Grey-box model for reversible and non-reversible heat pumps).

Parameters

TypeNameDefaultDescription
replaceable package MediumConPartialMediumMedium on condenser side
replaceable package MediumEvaPartialMediumMedium on evaporator side
Booleanuse_revfalse=true if the chiller or heat pump is reversible
replaceable model RefrigerantCycleHeatPumpHeatingBuildings.Fluid.HeatPumps.Mo...Refrigerant cycle module for the heating mode
replaceable model RefrigerantCycleHeatPumpCoolingNoCoolingRefrigerant cycle module for the cooling mode
RealetaCarnot_nominal0.3Constant Carnot effectiveness
Nominal condition
HeatFlowRateQHea_flow_nominal Nominal heating capacity [W]
TemperatureTConHea_nominal Nominal temperature of the heated fluid [K]
TemperatureTEvaHea_nominal Nominal temperature of the cooled fluid [K]
TemperatureDifferenceTAppCon_nominalif cpCon < 1500 then 5 else 2Temperature difference between refrigerant and working fluid outlet in condenser [K]
TemperatureDifferenceTAppEva_nominalif cpEva < 1500 then 5 else 2Temperature difference between refrigerant and working fluid outlet in evaporator [K]
Inertia
replaceable model RefrigerantCycleInertiaNoInertiaInertia between the refrigerant cycle outputs and the heat exchangers.
Safety control
Booleanuse_intSafCtrtrue=true to enable internal safety control
Wuellhorst2021safCtrParredeclare parameter Building...Safety control parameters
Nominal condition - Pressure losses
TemperatureDifferencedTCon_nominal Nominal temperature difference in condenser medium, used to calculate mass flow rate [K]
MassFlowRatemCon_flow_nominalQHea_flow_nominal/(dTCon_nom...Nominal mass flow rate of the condenser medium [kg/s]
PressureDifferencedpCon_nominal Pressure drop at nominal mass flow rate [Pa]
TemperatureDifferencedTEva_nominal Nominal temperature difference in evaporator medium, used to calculate mass flow rate [K]
MassFlowRatemEva_flow_nominal(QHea_flow_nominal - PEle_no...Nominal mass flow rate of the evaporator medium [kg/s]
PressureDifferencedpEva_nominal Pressure drop at nominal mass flow rate [Pa]
Nominal condition - Cooling
HeatFlowRateQCoo_flow_nominal-PEle_nominal*refCyc.refCycH...Nominal cooling capacity [W]
TemperatureTConCoo_nominal Nominal temperature of the cooled fluid [K]
TemperatureTEvaCoo_nominal Nominal temperature of the heated fluid [K]
Refrigerant cycle inertia
TimerefIneTimCon300Refrigerant cycle inertia time constant for first order delay [s]
IntegernthOrd1Order of refrigerant cycle interia
Assumptions
Evaporator
BooleanallowFlowReversalEvatrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Condenser
BooleanallowFlowReversalContrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
BooleanallowDifferentDeviceIdentifiersfalseif use_rev=true, device data for cooling and heating need to entered. Set allowDifferentDeviceIdentifiers=true to allow different device identifiers devIde
BooleancalEfftrue=false to disable efficiency calculation, may speed up the simulation
ReallimWarSca0.05Allowed difference in scaling '|scaFacHea - scaFacCoo| / scaFacHea', if exceeded, a warning will be issued [1]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
RealySet_small0.01Threshold for relative speed for the device to be considered on
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Condenser
Dynamics
TimetauCon30Condenser heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMCon0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_conCaptrue=true if using capacitor model for condenser heat loss estimation
HeatCapacityCCon0Heat capacity of the condenser [J/K]
ThermalConductanceGConOut0Outer thermal conductance for condenser heat loss calculations [W/K]
ThermalConductanceGConIns0Inner thermal conductance for condenser heat loss calculations [W/K]
Evaporator
Dynamics
TimetauEva30Evaporator heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMEva0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_evaCaptrue=true if using capacitor model for evaporator heat loss estimation
HeatCapacityCEva0Heat capacity of the evaporator [J/K]
ThermalConductanceGEvaOut0Outer thermal conductance for evaporator heat loss calculations [W/K]
ThermalConductanceGEvaIns0Inner thermal conductance for evaporator heat loss calculations [W/K]
Initialization
Parameters
InitinitTypeModelica.Blocks.Types.Init.I...Type of initialization for refrigerant cycle dynamics (InitialState and InitialOutput are identical)
Condenser
AbsolutePressurepCon_startMediumCon.p_defaultStart value of pressure [Pa]
TemperatureTCon_startMediumCon.T_defaultStart value of temperature [K]
TemperatureTConCap_startMediumCon.T_defaultInitial temperature of heat capacity of condenser [K]
MassFractionXCon_start[MediumCon.nX]MediumCon.X_defaultStart value of mass fractions m_i/m [kg/kg]
Evaporator
AbsolutePressurepEva_startMediumEva.p_defaultStart value of pressure [Pa]
TemperatureTEva_startMediumEva.T_defaultStart value of temperature [K]
TemperatureTEvaCap_startMediumEva.T_defaultInitial temperature of heat capacity at evaporator [K]
MassFractionXEva_start[MediumEva.nX]MediumEva.X_defaultStart value of mass fractions m_i/m [kg/kg]
Dynamics
Equation
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state (only affects fluid-models)

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
input RealInputySetRelative compressor speed between 0 and 1
input RealInputTEvaAmbAmbient temperature on the evaporator side [K]
input RealInputTConAmbAmbient temperature on the condenser side [K]
output RealOutputQCon_flowActual heating heat flow rate added to fluid 1 [W]
output RealOutputPElectric power consumed by compressor [W]
output RealOutputQEva_flowActual cooling heat flow rate removed from fluid 2 [W]
output RealOutputEEREnergy efficieny ratio [1]
output RealOutputCOPCoefficient of performance [1]
replaceable model RefrigerantCycleHeatPumpHeatingRefrigerant cycle module for the heating mode
replaceable model RefrigerantCycleHeatPumpCoolingRefrigerant cycle module for the cooling mode
input BooleanInputhea=true for heating, =false for cooling
Inertia
replaceable model RefrigerantCycleInertiaInertia between the refrigerant cycle outputs and the heat exchangers.

Modelica definition

model CarnotWithLosses "Heat pump using the Carnot approach, but with added reversibility and losses (heat, frost, inertia)" extends Buildings.Fluid.HeatPumps.ModularReversible.Modular( QCoo_flow_nominal=-PEle_nominal*refCyc.refCycHeaPumCoo.EER_nominal, redeclare model RefrigerantCycleHeatPumpCooling = Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( PEle_nominal=PEle_nominal, redeclare Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting iceFacCal, etaCarnot_nominal=etaCarnot_nominal, use_constAppTem=true, TAppCon_nominal=TAppCon_nominal, TAppEva_nominal=TAppEva_nominal), redeclare model RefrigerantCycleHeatPumpHeating = Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( redeclare Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.FunctionalIcingFactor iceFacCal(redeclare function icingFactor = Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.Functions.wetterAfjei1997), etaCarnot_nominal=etaCarnot_nominal, TAppCon_nominal=TAppCon_nominal, TAppEva_nominal=TAppEva_nominal), final allowDifferentDeviceIdentifiers=false, final use_evaCap, final use_conCap, redeclare model RefrigerantCycleInertia = Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Inertias.VariableOrder ( final refIneFreConst=1/refIneTimCon, final nthOrd=nthOrd, initType=Modelica.Blocks.Types.Init.InitialOutput)); parameter Real etaCarnot_nominal=0.3 "Constant Carnot effectiveness"; parameter Modelica.Units.SI.TemperatureDifference TAppCon_nominal= if cpCon < 1500 then 5 else 2 "Temperature difference between refrigerant and working fluid outlet in condenser"; parameter Modelica.Units.SI.TemperatureDifference TAppEva_nominal= if cpEva < 1500 then 5 else 2 "Temperature difference between refrigerant and working fluid outlet in evaporator"; parameter Modelica.Units.SI.Time refIneTimCon = 300 "Refrigerant cycle inertia time constant for first order delay"; parameter Integer nthOrd(min=1)=1 "Order of refrigerant cycle interia"; initial algorithm assert(use_rev and (abs(refCyc.refCycHeaPumCoo.PEle_nominal - PEle_nominal) / PEle_nominal < limWarSca), "In " + getInstanceName() + ": Nominal electrical powers for heating and cooling operation differ by " + String((refCyc.refCycHeaPumCoo.PEle_nominal - PEle_nominal) / PEle_nominal * 100) + " %. The simulated nominal heating and cooling capacities may not be realistic for a single device.", AssertionLevel.warning); end CarnotWithLosses;

Buildings.Fluid.HeatPumps.ModularReversible.LargeScaleWaterToWater Buildings.Fluid.HeatPumps.ModularReversible.LargeScaleWaterToWater

Model with automatic parameter estimation for large scale water-to-water heat pumps

Buildings.Fluid.HeatPumps.ModularReversible.LargeScaleWaterToWater

Information

Model using parameters for a large scale water-to-water heat pump, using the ModularReversible model approach.

Contrary to the standard sizing approach for the Buildings.Fluid.HeatPumps.ModularReversible.Modular models, the parameters are based on an automatic estimation as described in Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.LargeScaleWaterToWaterDeclarations.

For more information on the approach, please read the UsersGuide.

Please read the documentation of the model for heating here: Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.TableData2D.

Assumptions

Extends from Buildings.Fluid.HeatPumps.ModularReversible.TableData2D (Reversible heat pump based on 2D manufacturer data), Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.LargeScaleWaterToWaterDeclarations (Model with parameters for large scale water-to-water heat pump).

Parameters

TypeNameDefaultDescription
replaceable package MediumConPartialMediumMedium on condenser side
replaceable package MediumEvaPartialMediumMedium on evaporator side
GenericHeatPumpdatTabHearedeclare parameter Building...Data table of heat pump
GenericdatTabCooredeclare parameter Building...Data table of chiller
Nominal condition
HeatFlowRateQHea_flow_nominal Nominal heating capacity [W]
TemperatureTConHea_nominal Nominal temperature of the heated fluid [K]
TemperatureTEvaHea_nominal Nominal temperature of the cooled fluid [K]
Safety control
Booleanuse_intSafCtrtrue=true to enable internal safety control
Wuellhorst2021safCtrParredeclare replaceable Buildi...Safety control parameters
Nominal condition - Pressure losses
TemperatureDifferencedTCon_nominalQHea_flow_nominal/cpCon/mCon...Nominal temperature difference in condenser medium, used to calculate mass flow rate [K]
MassFlowRatemCon_flow_nominalautCalMasCon_flowNominal mass flow rate of the condenser medium [kg/s]
PressureDifferencedpCon_nominaldatTabHea.dpCon_nominal*scaF...Pressure drop at nominal mass flow rate [Pa]
TemperatureDifferencedTEva_nominal(QHea_flow_nominal - PEle_no...Nominal temperature difference in evaporator medium, used to calculate mass flow rate [K]
MassFlowRatemEva_flow_nominalautCalMasEva_flowNominal mass flow rate of the evaporator medium [kg/s]
PressureDifferencedpEva_nominaldatTabHea.dpEva_nominal*scaF...Pressure drop at nominal mass flow rate [Pa]
Nominal condition - Cooling
HeatFlowRateQCoo_flow_nominalrefCyc.refCycHeaPumCoo.QCooN...Nominal cooling capacity [W]
TemperatureTConCoo_nominal Nominal temperature of the cooled fluid [K]
TemperatureTEvaCoo_nominal Nominal temperature of the heated fluid [K]
Assumptions
Evaporator
BooleanallowFlowReversalEvatrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Condenser
BooleanallowFlowReversalContrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
BooleanallowDifferentDeviceIdentifiersfalseif use_rev=true, device data for cooling and heating need to entered. Set allowDifferentDeviceIdentifiers=true to allow different device identifiers devIde
BooleancalEfftrue=false to disable efficiency calculation, may speed up the simulation
ReallimWarSca0.05Allowed difference in scaling '|scaFacHea - scaFacCoo| / scaFacHea', if exceeded, a warning will be issued [1]
SmoothnesssmoothnessModelica.Blocks.Types.Smooth...Smoothness of table interpolation
ExtrapolationextrapolationModelica.Blocks.Types.Extrap...Extrapolation of data outside the definition range
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
RealySet_small0.01Threshold for relative speed for the device to be considered on
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Condenser
Dynamics
TimetauConautCalVCon*rhoCon/autCalMasC...Condenser heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMCon0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_conCapfalse=true if using capacitor model for condenser heat loss estimation
HeatCapacityCCon0Heat capacity of the condenser [J/K]
ThermalConductanceGConOut0Outer thermal conductance for condenser heat loss calculations [W/K]
ThermalConductanceGConIns0Inner thermal conductance for condenser heat loss calculations [W/K]
Evaporator
Dynamics
TimetauEvaautCalVEva*rhoEva/autCalMasE...Evaporator heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMEva0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_evaCapfalse=true if using capacitor model for evaporator heat loss estimation
HeatCapacityCEva0Heat capacity of the evaporator [J/K]
ThermalConductanceGEvaOut0Outer thermal conductance for evaporator heat loss calculations [W/K]
ThermalConductanceGEvaIns0Inner thermal conductance for evaporator heat loss calculations [W/K]
Initialization
Parameters
InitinitTypeModelica.Blocks.Types.Init.I...Type of initialization for refrigerant cycle dynamics (InitialState and InitialOutput are identical)
Condenser
AbsolutePressurepCon_startMediumCon.p_defaultStart value of pressure [Pa]
TemperatureTCon_startMediumCon.T_defaultStart value of temperature [K]
TemperatureTConCap_startMediumCon.T_defaultInitial temperature of heat capacity of condenser [K]
MassFractionXCon_start[MediumCon.nX]MediumCon.X_defaultStart value of mass fractions m_i/m [kg/kg]
Evaporator
AbsolutePressurepEva_startMediumEva.p_defaultStart value of pressure [Pa]
TemperatureTEva_startMediumEva.T_defaultStart value of temperature [K]
TemperatureTEvaCap_startMediumEva.T_defaultInitial temperature of heat capacity at evaporator [K]
MassFractionXEva_start[MediumEva.nX]MediumEva.X_defaultStart value of mass fractions m_i/m [kg/kg]
Dynamics
Equation
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state (only affects fluid-models)

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
replaceable package MediumConMedium on condenser side
replaceable package MediumEvaMedium on evaporator side
input RealInputySetRelative compressor speed between 0 and 1
input RealInputTEvaAmbAmbient temperature on the evaporator side [K]
input RealInputTConAmbAmbient temperature on the condenser side [K]
output RealOutputQCon_flowActual heating heat flow rate added to fluid 1 [W]
output RealOutputPElectric power consumed by compressor [W]
output RealOutputQEva_flowActual cooling heat flow rate removed from fluid 2 [W]
output RealOutputEEREnergy efficieny ratio [1]
output RealOutputCOPCoefficient of performance [1]
input BooleanInputhea=true for heating, =false for cooling

Modelica definition

model LargeScaleWaterToWater "Model with automatic parameter estimation for large scale water-to-water heat pumps" extends Buildings.Fluid.HeatPumps.ModularReversible.TableData2D( redeclare replaceable package MediumCon = Buildings.Media.Water, redeclare replaceable package MediumEva = Buildings.Media.Water, final mCon_flow_nominal=autCalMasCon_flow, final mEva_flow_nominal=autCalMasEva_flow, final tauCon=autCalVCon*rhoCon/autCalMasCon_flow, final tauEva=autCalVEva*rhoEva/autCalMasEva_flow); extends Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.LargeScaleWaterToWaterDeclarations( final autCalMasCon_flow=max(4E-5*QHea_flow_nominal - 0.6162, autCalMMin_flow), final autCalMasEva_flow=max(4E-5*QHea_flow_nominal - 0.3177, autCalMMin_flow), final autCalVCon=max(1E-7*QHea_flow_nominal - 94E-4, autCalVMin), final autCalVEva=max(1E-7*QHea_flow_nominal - 75E-4, autCalVMin)); end LargeScaleWaterToWater;

Buildings.Fluid.HeatPumps.ModularReversible.Modular Buildings.Fluid.HeatPumps.ModularReversible.Modular

Grey-box model for reversible and non-reversible heat pumps

Buildings.Fluid.HeatPumps.ModularReversible.Modular

Information

Model of a reversible, modular heat pump. This models allows combining any of the available modules for refrigerant heating or cooling cycles, inertias, heat losses, and safety controls. All features are optional.

Adding to the partial model ( Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.PartialReversibleRefrigerantMachine), this model has the hea signal to choose the operation mode of the heat pump.

For more information on the approach, see Buildings.Fluid.HeatPumps.ModularReversible.UsersGuide.

Extends from Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.PartialReversibleRefrigerantMachine (Model for reversible heat pumps and chillers with a refrigerant cycle).

Parameters

TypeNameDefaultDescription
replaceable package MediumConPartialMediumMedium on condenser side
replaceable package MediumEvaPartialMediumMedium on evaporator side
Booleanuse_revfalse=true if the chiller or heat pump is reversible
replaceable model RefrigerantCycleHeatPumpHeatingBuildings.Fluid.HeatPumps.Mo...Refrigerant cycle module for the heating mode
replaceable model RefrigerantCycleHeatPumpCoolingBuildings.Fluid.Chillers.Mod...Refrigerant cycle module for the cooling mode
Nominal condition
HeatFlowRatePEle_nominalrefCyc.refCycHeaPumHea.PEle_...Nominal electrical power consumption [W]
HeatFlowRateQHea_flow_nominal Nominal heating capacity [W]
TemperatureTConHea_nominal Nominal temperature of the heated fluid [K]
TemperatureTEvaHea_nominal Nominal temperature of the cooled fluid [K]
Inertia
replaceable model RefrigerantCycleInertiaNoInertiaInertia between the refrigerant cycle outputs and the heat exchangers.
Safety control
Booleanuse_intSafCtrtrue=true to enable internal safety control
Wuellhorst2021safCtrParredeclare parameter Building...Safety control parameters
Nominal condition - Pressure losses
TemperatureDifferencedTCon_nominal Nominal temperature difference in condenser medium, used to calculate mass flow rate [K]
MassFlowRatemCon_flow_nominalQHea_flow_nominal/(dTCon_nom...Nominal mass flow rate of the condenser medium [kg/s]
PressureDifferencedpCon_nominal Pressure drop at nominal mass flow rate [Pa]
TemperatureDifferencedTEva_nominal Nominal temperature difference in evaporator medium, used to calculate mass flow rate [K]
MassFlowRatemEva_flow_nominal(QHea_flow_nominal - PEle_no...Nominal mass flow rate of the evaporator medium [kg/s]
PressureDifferencedpEva_nominal Pressure drop at nominal mass flow rate [Pa]
Nominal condition - Cooling
HeatFlowRateQCoo_flow_nominal0Nominal cooling capacity [W]
TemperatureTConCoo_nominal Nominal temperature of the cooled fluid [K]
TemperatureTEvaCoo_nominal Nominal temperature of the heated fluid [K]
Assumptions
Evaporator
BooleanallowFlowReversalEvatrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Condenser
BooleanallowFlowReversalContrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
BooleanallowDifferentDeviceIdentifiersfalseif use_rev=true, device data for cooling and heating need to entered. Set allowDifferentDeviceIdentifiers=true to allow different device identifiers devIde
BooleancalEfftrue=false to disable efficiency calculation, may speed up the simulation
ReallimWarSca0.05Allowed difference in scaling '|scaFacHea - scaFacCoo| / scaFacHea', if exceeded, a warning will be issued [1]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
RealySet_small0.01Threshold for relative speed for the device to be considered on
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Condenser
Dynamics
TimetauCon30Condenser heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMCon0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_conCaptrue=true if using capacitor model for condenser heat loss estimation
HeatCapacityCCon0Heat capacity of the condenser [J/K]
ThermalConductanceGConOut0Outer thermal conductance for condenser heat loss calculations [W/K]
ThermalConductanceGConIns0Inner thermal conductance for condenser heat loss calculations [W/K]
Evaporator
Dynamics
TimetauEva30Evaporator heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMEva0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_evaCaptrue=true if using capacitor model for evaporator heat loss estimation
HeatCapacityCEva0Heat capacity of the evaporator [J/K]
ThermalConductanceGEvaOut0Outer thermal conductance for evaporator heat loss calculations [W/K]
ThermalConductanceGEvaIns0Inner thermal conductance for evaporator heat loss calculations [W/K]
Initialization
Parameters
InitinitTypeModelica.Blocks.Types.Init.I...Type of initialization for refrigerant cycle dynamics (InitialState and InitialOutput are identical)
Condenser
AbsolutePressurepCon_startMediumCon.p_defaultStart value of pressure [Pa]
TemperatureTCon_startMediumCon.T_defaultStart value of temperature [K]
TemperatureTConCap_startMediumCon.T_defaultInitial temperature of heat capacity of condenser [K]
MassFractionXCon_start[MediumCon.nX]MediumCon.X_defaultStart value of mass fractions m_i/m [kg/kg]
Evaporator
AbsolutePressurepEva_startMediumEva.p_defaultStart value of pressure [Pa]
TemperatureTEva_startMediumEva.T_defaultStart value of temperature [K]
TemperatureTEvaCap_startMediumEva.T_defaultInitial temperature of heat capacity at evaporator [K]
MassFractionXEva_start[MediumEva.nX]MediumEva.X_defaultStart value of mass fractions m_i/m [kg/kg]
Dynamics
Equation
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state (only affects fluid-models)

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
input RealInputySetRelative compressor speed between 0 and 1
input RealInputTEvaAmbAmbient temperature on the evaporator side [K]
input RealInputTConAmbAmbient temperature on the condenser side [K]
output RealOutputQCon_flowActual heating heat flow rate added to fluid 1 [W]
output RealOutputPElectric power consumed by compressor [W]
output RealOutputQEva_flowActual cooling heat flow rate removed from fluid 2 [W]
output RealOutputEEREnergy efficieny ratio [1]
output RealOutputCOPCoefficient of performance [1]
replaceable model RefrigerantCycleHeatPumpHeatingRefrigerant cycle module for the heating mode
replaceable model RefrigerantCycleHeatPumpCoolingRefrigerant cycle module for the cooling mode
input BooleanInputhea=true for heating, =false for cooling

Modelica definition

model Modular "Grey-box model for reversible and non-reversible heat pumps" extends Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.PartialReversibleRefrigerantMachine ( final use_COP=true, final use_EER=use_rev, con(preDro(m_flow(nominal=QHea_flow_nominal/1000/10))), eva(preDro(m_flow(nominal=QHea_flow_nominal/1000/10))), final PEle_nominal=refCyc.refCycHeaPumHea.PEle_nominal, mCon_flow_nominal=QHea_flow_nominal/(dTCon_nominal*cpCon), mEva_flow_nominal=(QHea_flow_nominal - PEle_nominal)/(dTEva_nominal*cpEva), use_rev=false, redeclare final Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.RefrigerantCycle refCyc( redeclare model RefrigerantCycleHeatPumpHeating = RefrigerantCycleHeatPumpHeating, redeclare model RefrigerantCycleHeatPumpCooling = RefrigerantCycleHeatPumpCooling, final allowDifferentDeviceIdentifiers=allowDifferentDeviceIdentifiers)); parameter Modelica.Units.SI.HeatFlowRate QHea_flow_nominal(min=Modelica.Constants.eps) "Nominal heating capacity"; parameter Modelica.Units.SI.HeatFlowRate QCoo_flow_nominal(max=0)=0 "Nominal cooling capacity"; replaceable model RefrigerantCycleHeatPumpHeating = Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialHeatPumpCycle (PEle_nominal=0) constrainedby Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialHeatPumpCycle ( final useInHeaPum=true, final QHea_flow_nominal=QHea_flow_nominal, final TCon_nominal=TConHea_nominal, final TEva_nominal=TEvaHea_nominal, final cpCon=cpCon, final cpEva=cpEva) "Refrigerant cycle module for the heating mode"; replaceable model RefrigerantCycleHeatPumpCooling = Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.NoCooling constrainedby Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.PartialChillerCycle ( final useInChi=false, final cpCon=cpCon, final cpEva=cpEva, final TCon_nominal=TEvaCoo_nominal, final TEva_nominal=TConCoo_nominal, QCoo_flow_nominal=QCoo_flow_nominal) "Refrigerant cycle module for the cooling mode"; parameter Modelica.Units.SI.Temperature TConHea_nominal "Nominal temperature of the heated fluid"; parameter Modelica.Units.SI.Temperature TEvaHea_nominal "Nominal temperature of the cooled fluid"; parameter Modelica.Units.SI.Temperature TConCoo_nominal "Nominal temperature of the cooled fluid"; parameter Modelica.Units.SI.Temperature TEvaCoo_nominal "Nominal temperature of the heated fluid"; Modelica.Blocks.Sources.BooleanConstant conHea(final k=true) if not use_busConOnl and not use_rev "Locks the device in heating mode if designated to be not reversible"; Modelica.Blocks.Interfaces.BooleanInput hea if not use_busConOnl and use_rev "=true for heating, =false for cooling"; Modelica.Blocks.Logical.Hysteresis hys( final uLow=0.001, final uHigh=ySet_small, final pre_y_start=false) "Outputs whether the device is on based on the relative speed"; equation connect(conHea.y, sigBus.hea); connect(hea, sigBus.hea); connect(eff.QUse_flow, refCycIneCon.y); connect(eff.hea, sigBus.hea); connect(hys.y, sigBus.onOffMea); connect(hys.u, sigBus.yMea); end Modular;

Buildings.Fluid.HeatPumps.ModularReversible.TableData2D Buildings.Fluid.HeatPumps.ModularReversible.TableData2D

Reversible heat pump based on 2D manufacturer data

Buildings.Fluid.HeatPumps.ModularReversible.TableData2D

Information

Heat pump based on two-dimensional data from manufacturer data, (e.g. based on EN 14511), using the Buildings.Fluid.HeatPumps.ModularReversible.Modular approach.

For more information on the approach, see Buildings.Fluid.HeatPumps.ModularReversible.UsersGuide.

Internal inertias and heat losses are typically neglected, as these are implicitly obtained in measured data from manufacturers. Also, icing is disabled as the performance degradation is already contained in the data.

Sizing

At the nominal conditions, the refrigerant cycle model will calculate the unscaled nominal heat flow rate, which is named QHeaNoSca_flow_nominal for heat pumps and QCooNoSca_flow_nominal for chillers. This value is probably different from QHea_flow_nominal and QCoo_flow_nominal which is for sizing. For example, suppose you need a 7.6 kW heat pump, but the datasheets only provides 5 kW and 10 kW options. In such cases, the performance data and relevant parameters are scaled using a scaling factor scaFac. Resulting, the refrigerant machine can supply more or less heat with the COP staying constant. However, one has to make sure that the movers in use also scale with this factor. Note that most parameters are scaled linearly. Only the pressure differences are scaled quadratically due to the linear scaling of the mass flow rates and the basic assumption:

k = ṁ ⁄ √ Δp  

Both QHeaNoSca_flow_nominal or QCooNoSca_flow_nominal and scaFac are calculated in the refrigerant cycle models.

Please read the documentation of the model for heating at Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.TableData2D.

For cooling, the assumptions are similar, and described at Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.TableData2D

References

EN 14511-2018: Air conditioners, liquid chilling packages and heat pumps for space heating and cooling and process chillers, with electrically driven compressors https://www.beuth.de/de/norm/din-en-14511-1/298537524

Extends from Buildings.Fluid.HeatPumps.ModularReversible.Modular (Grey-box model for reversible and non-reversible heat pumps).

Parameters

TypeNameDefaultDescription
replaceable package MediumConPartialMediumMedium on condenser side
replaceable package MediumEvaPartialMediumMedium on evaporator side
Booleanuse_revtrue=true if the chiller or heat pump is reversible
replaceable model RefrigerantCycleHeatPumpHeatingBuildings.Fluid.HeatPumps.Mo...Refrigerant cycle module for the heating mode
replaceable model RefrigerantCycleHeatPumpCoolingNoCoolingRefrigerant cycle module for the cooling mode
GenericHeatPumpdatTabHearedeclare parameter Building...Data table of heat pump
GenericdatTabCoodatTabCoo(use_TEvaOutForTab=...Data table of chiller
Nominal condition
HeatFlowRateQHea_flow_nominal Nominal heating capacity [W]
TemperatureTConHea_nominal Nominal temperature of the heated fluid [K]
TemperatureTEvaHea_nominal Nominal temperature of the cooled fluid [K]
Inertia
replaceable model RefrigerantCycleInertiaNoInertiaInertia between the refrigerant cycle outputs and the heat exchangers.
Safety control
Booleanuse_intSafCtrtrue=true to enable internal safety control
Nominal condition - Pressure losses
TemperatureDifferencedTCon_nominalQHea_flow_nominal/cpCon/mCon...Nominal temperature difference in condenser medium, used to calculate mass flow rate [K]
MassFlowRatemCon_flow_nominaldatTabHea.mCon_flow_nominal*...Nominal mass flow rate of the condenser medium [kg/s]
PressureDifferencedpCon_nominaldatTabHea.dpCon_nominal*scaF...Pressure drop at nominal mass flow rate [Pa]
TemperatureDifferencedTEva_nominal(QHea_flow_nominal - PEle_no...Nominal temperature difference in evaporator medium, used to calculate mass flow rate [K]
MassFlowRatemEva_flow_nominaldatTabHea.mEva_flow_nominal*...Nominal mass flow rate of the evaporator medium [kg/s]
PressureDifferencedpEva_nominaldatTabHea.dpEva_nominal*scaF...Pressure drop at nominal mass flow rate [Pa]
Nominal condition - Cooling
HeatFlowRateQCoo_flow_nominalrefCyc.refCycHeaPumCoo.QCooN...Nominal cooling capacity [W]
TemperatureTConCoo_nominal Nominal temperature of the cooled fluid [K]
TemperatureTEvaCoo_nominal Nominal temperature of the heated fluid [K]
Assumptions
Evaporator
BooleanallowFlowReversalEvatrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Condenser
BooleanallowFlowReversalContrue= false to simplify equations, assuming, but not enforcing, no flow reversal
Advanced
BooleanallowDifferentDeviceIdentifiersfalseif use_rev=true, device data for cooling and heating need to entered. Set allowDifferentDeviceIdentifiers=true to allow different device identifiers devIde
BooleancalEfftrue=false to disable efficiency calculation, may speed up the simulation
ReallimWarSca0.05Allowed difference in scaling '|scaFacHea - scaFacCoo| / scaFacHea', if exceeded, a warning will be issued [1]
SmoothnesssmoothnessModelica.Blocks.Types.Smooth...Smoothness of table interpolation
ExtrapolationextrapolationModelica.Blocks.Types.Extrap...Extrapolation of data outside the definition range
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
RealySet_small0.01Threshold for relative speed for the device to be considered on
Flow resistance
Booleanfrom_dpfalse= true, use m_flow = f(dp) else dp = f(m_flow)
Booleanlinearizedfalse= true, use linear relation between m_flow and dp for any flow rate
Condenser
Dynamics
TimetauCon30Condenser heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMCon0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_conCapfalse=true if using capacitor model for condenser heat loss estimation
HeatCapacityCCon0Heat capacity of the condenser [J/K]
ThermalConductanceGConOut0Outer thermal conductance for condenser heat loss calculations [W/K]
ThermalConductanceGConIns0Inner thermal conductance for condenser heat loss calculations [W/K]
Evaporator
Dynamics
TimetauEva30Evaporator heat transfer time constant at nominal flow [s]
Flow resistance
RealdeltaMEva0.1Fraction of nominal mass flow rate where transition to turbulent occurs
Heat Losses
Booleanuse_evaCapfalse=true if using capacitor model for evaporator heat loss estimation
HeatCapacityCEva0Heat capacity of the evaporator [J/K]
ThermalConductanceGEvaOut0Outer thermal conductance for evaporator heat loss calculations [W/K]
ThermalConductanceGEvaIns0Inner thermal conductance for evaporator heat loss calculations [W/K]
Initialization
Parameters
InitinitTypeModelica.Blocks.Types.Init.I...Type of initialization for refrigerant cycle dynamics (InitialState and InitialOutput are identical)
Condenser
AbsolutePressurepCon_startMediumCon.p_defaultStart value of pressure [Pa]
TemperatureTCon_startMediumCon.T_defaultStart value of temperature [K]
TemperatureTConCap_startMediumCon.T_defaultInitial temperature of heat capacity of condenser [K]
MassFractionXCon_start[MediumCon.nX]MediumCon.X_defaultStart value of mass fractions m_i/m [kg/kg]
Evaporator
AbsolutePressurepEva_startMediumEva.p_defaultStart value of pressure [Pa]
TemperatureTEva_startMediumEva.T_defaultStart value of temperature [K]
TemperatureTEvaCap_startMediumEva.T_defaultInitial temperature of heat capacity at evaporator [K]
MassFractionXEva_start[MediumEva.nX]MediumEva.X_defaultStart value of mass fractions m_i/m [kg/kg]
Dynamics
Equation
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state (only affects fluid-models)

Connectors

TypeNameDescription
FluidPort_aport_a1Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_bport_b1Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
FluidPort_aport_a2Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
FluidPort_bport_b2Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
input RealInputySetRelative compressor speed between 0 and 1
input RealInputTEvaAmbAmbient temperature on the evaporator side [K]
input RealInputTConAmbAmbient temperature on the condenser side [K]
output RealOutputQCon_flowActual heating heat flow rate added to fluid 1 [W]
output RealOutputPElectric power consumed by compressor [W]
output RealOutputQEva_flowActual cooling heat flow rate removed from fluid 2 [W]
output RealOutputEEREnergy efficieny ratio [1]
output RealOutputCOPCoefficient of performance [1]
replaceable model RefrigerantCycleHeatPumpHeatingRefrigerant cycle module for the heating mode
replaceable model RefrigerantCycleHeatPumpCoolingRefrigerant cycle module for the cooling mode
input BooleanInputhea=true for heating, =false for cooling
Inertia
replaceable model RefrigerantCycleInertiaInertia between the refrigerant cycle outputs and the heat exchangers.

Modelica definition

model TableData2D "Reversible heat pump based on 2D manufacturer data" extends Buildings.Fluid.HeatPumps.ModularReversible.Modular( final use_rev=true, QCoo_flow_nominal=refCyc.refCycHeaPumCoo.QCooNoSca_flow_nominal*scaFacHea, dpEva_nominal=datTabHea.dpEva_nominal*scaFacHea^2, dpCon_nominal=datTabHea.dpCon_nominal*scaFacHea^2, redeclare replaceable Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021 safCtrPar constrainedby Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Generic ( final tabUppHea=datTabHea.tabUppBou, final tabLowCoo=datTabCoo.tabLowBou, final use_TConOutHea=datTabHea.use_TConOutForOpeEnv, final use_TEvaOutHea=datTabHea.use_TEvaOutForOpeEnv, final use_TConOutCoo=datTabCoo.use_TConOutForOpeEnv, final use_TEvaOutCoo=datTabCoo.use_TEvaOutForOpeEnv), dTEva_nominal=(QHea_flow_nominal - PEle_nominal)/cpEva/mEva_flow_nominal, mEva_flow_nominal=datTabHea.mEva_flow_nominal*scaFacHea, mCon_flow_nominal=datTabHea.mCon_flow_nominal*scaFacHea, dTCon_nominal=QHea_flow_nominal/cpCon/mCon_flow_nominal, GEvaIns=0, GEvaOut=0, CEva=0, use_evaCap=false, GConIns=0, GConOut=0, CCon=0, use_conCap=false, redeclare model RefrigerantCycleHeatPumpCooling = Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.TableData2D ( redeclare Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting iceFacCal, final mCon_flow_nominal=mCon_flow_nominal, final mEva_flow_nominal=mEva_flow_nominal, final smoothness=smoothness, final extrapolation=extrapolation, final datTab=datTabCoo), redeclare model RefrigerantCycleHeatPumpHeating = Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.TableData2D ( redeclare Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting iceFacCal, final mCon_flow_nominal=mCon_flow_nominal, final mEva_flow_nominal=mEva_flow_nominal, final smoothness=smoothness, final extrapolation=extrapolation, final datTab=datTabHea), redeclare model RefrigerantCycleInertia = Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Inertias.NoInertia); final parameter Real scaFacHea=refCyc.refCycHeaPumHea.scaFac "Scaling factor of heat pump"; final parameter Real scaFacCoo=refCyc.refCycHeaPumCoo.scaFac "Scaling factor for cooling mode"; replaceable parameter Buildings.Fluid.HeatPumps.ModularReversible.Data.TableData2D.GenericHeatPump datTabHea constrainedby Buildings.Fluid.HeatPumps.ModularReversible.Data.TableData2D.GenericHeatPump "Data table of heat pump"; replaceable parameter Buildings.Fluid.Chillers.ModularReversible.Data.TableData2D.Generic datTabCoo( use_TEvaOutForTab=true, use_TConOutForTab=true) constrainedby Buildings.Fluid.Chillers.ModularReversible.Data.TableData2D.Generic "Data table of chiller"; parameter Modelica.Blocks.Types.Smoothness smoothness=Modelica.Blocks.Types.Smoothness.LinearSegments "Smoothness of table interpolation"; parameter Modelica.Blocks.Types.Extrapolation extrapolation=Modelica.Blocks.Types.Extrapolation.LastTwoPoints "Extrapolation of data outside the definition range"; initial algorithm assert(use_rev and (abs(scaFacHea - scaFacCoo) / scaFacHea < limWarSca), "In " + getInstanceName() + ": Scaling factors for heating and cooling operation differ by " + String((scaFacHea - scaFacCoo) / scaFacHea * 100) + " %. The simulated nominal heating and cooling capacities may not be realistic for a single device", AssertionLevel.warning); end TableData2D;

Buildings.Fluid.HeatPumps.ModularReversible.Modular.RefrigerantCycleHeatPumpHeating Buildings.Fluid.HeatPumps.ModularReversible.Modular.RefrigerantCycleHeatPumpHeating

Refrigerant cycle module for the heating mode

Buildings.Fluid.HeatPumps.ModularReversible.Modular.RefrigerantCycleHeatPumpHeating

Parameters

TypeNameDefaultDescription
StringdevIde""Indicates the data source, used to warn users about different vapor compression devices in reversible models
BooleanuseInHeaPum =false to indicate that this model is used in a chiller
Nominal condition
PowerPEle_nominal0Nominal electrical power consumption [W]
TemperatureTCon_nominal Nominal temperature at secondary condenser side [K]
TemperatureTEva_nominal Nominal temperature at secondary evaporator side [K]
HeatFlowRateQHea_flow_nominal Nominal heating capacity [W]
Frosting supression
NoFrostingiceFacCalredeclare Buildings.Fluid.He...Replaceable model to calculate the icing factor
Advanced
Medium properties
SpecificHeatCapacitycpCon Evaporator medium specific heat capacity [J/(kg.K)]
SpecificHeatCapacitycpEva Evaporator medium specific heat capacity [J/(kg.K)]

Connectors

TypeNameDescription
output RealOutputPEleElectrical Power consumed by the device [W]
output RealOutputQCon_flowHeat flow rate through condenser [W]
RefrigerantMachineControlBussigBusBus-connector
output RealOutputQEva_flowHeat flow rate through evaporator [W]

Modelica definition

replaceable model RefrigerantCycleHeatPumpHeating = Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialHeatPumpCycle (PEle_nominal=0) constrainedby Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialHeatPumpCycle ( final useInHeaPum=true, final QHea_flow_nominal=QHea_flow_nominal, final TCon_nominal=TConHea_nominal, final TEva_nominal=TEvaHea_nominal, final cpCon=cpCon, final cpEva=cpEva) "Refrigerant cycle module for the heating mode";

Buildings.Fluid.HeatPumps.ModularReversible.Modular.RefrigerantCycleHeatPumpCooling Buildings.Fluid.HeatPumps.ModularReversible.Modular.RefrigerantCycleHeatPumpCooling

Refrigerant cycle module for the cooling mode

Buildings.Fluid.HeatPumps.ModularReversible.Modular.RefrigerantCycleHeatPumpCooling

Parameters

TypeNameDefaultDescription
StringdevIde"NoCooling"Indicates the data source, used to warn users about different vapor compression devices in reversible models
BooleanuseInChi =false to indicate that this model is used as a heat pump
Nominal condition
PowerPEle_nominal0Nominal electrical power consumption [W]
TemperatureTCon_nominal273.15Nominal temperature at secondary condenser side [K]
TemperatureTEva_nominal273.15Nominal temperature at secondary evaporator side [K]
HeatFlowRateQCoo_flow_nominal0Nominal cooling capacity [W]
Advanced
Medium properties
SpecificHeatCapacitycpCon4184Evaporator medium specific heat capacity [J/(kg.K)]
SpecificHeatCapacitycpEva4184Evaporator medium specific heat capacity [J/(kg.K)]

Connectors

TypeNameDescription
output RealOutputPEleElectrical Power consumed by the device [W]
output RealOutputQCon_flowHeat flow rate through condenser [W]
RefrigerantMachineControlBussigBusBus-connector
output RealOutputQEva_flowHeat flow rate through evaporator [W]

Modelica definition

replaceable model RefrigerantCycleHeatPumpCooling = Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.NoCooling constrainedby Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.PartialChillerCycle ( final useInChi=false, final cpCon=cpCon, final cpEva=cpEva, final TCon_nominal=TEvaCoo_nominal, final TEva_nominal=TConCoo_nominal, QCoo_flow_nominal=QCoo_flow_nominal) "Refrigerant cycle module for the cooling mode";