modelConstantCarnotEffectiveness

Carnot COP with a constant Carnot effectiveness

Extends from Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialHeatPumpCycle (Partial model to allow selection of only heat pump options), Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialCarnot (Model with components for Carnot efficiency calculation).

Information

This model uses a constant Carnot effectiveness to compute the efficiency of the heat pump.

PEle_nominal is computed from the provided QHea_flow_nominal and other nominal conditions. PEle_nominal stays constant over all boundary conditions and is used to calculate PEle by multiplying it with the relative compressor speed. QCon_flow is computed using the Carnot approach:

QCon_flow = PEle_nominal * etaCarnot_nominal * yMea * (TConOut + TAppCon) / (TConOut + TAppCon - (TEvaOut - TAppEva))

PEle = PEle_nominal * yMea

This equations follows the Carnot approach of the Buildings library: Buildings.Fluid.HeatPumps.Carnot_y Similarly, the variables TAppCon and TAppEva define the approach (pinch) temperature differences.

The approach temperatures are calculated using the following equation:

TApp = TApp_nominal * Q_flow / Q_flow_nominal

This introduces nonlinear equations to the model, which can lead to solver issues for reversible operation. You can fix the approach temperature at the nominal value by setting use_constAppTem

Parameters

TypeNameDefaultDescription
StringdevIde (from PartialRefrigerantCycle)""Indicates the data source, used to warn users about different vapor compression devices in reversible models
BooleanuseInHeaPum (from PartialHeatPumpCycle)=false to indicate that this model is used in a chiller
BooleanuseForChi (from PartialCarnot)=false to use in heat pump models
Nominal condition
Modelica.Units.SI.PowerPEle_nominal (from PartialRefrigerantCycle)Nominal electrical power consumption
Modelica.Units.SI.TemperatureTCon_nominal (from PartialRefrigerantCycle)Nominal temperature at secondary condenser side
Modelica.Units.SI.TemperatureTEva_nominal (from PartialRefrigerantCycle)Nominal temperature at secondary evaporator side
Modelica.Units.SI.HeatFlowRateQHea_flow_nominal (from PartialHeatPumpCycle)Nominal heating capacity
RealetaCarnot_nominal (from PartialCarnot)0.3Constant Carnot effectiveness
RealCOP_nominaletaCarnot_nominal*(TCon_nominal + TAppCon_nominal)/(TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal))Nominal coefficient of performance
Advanced › Medium properties
Modelica.Units.SI.SpecificHeatCapacitycpCon (from PartialRefrigerantCycle)Evaporator medium specific heat capacity
Modelica.Units.SI.SpecificHeatCapacitycpEva (from PartialRefrigerantCycle)Evaporator medium specific heat capacity
Efficiency
Booleanuse_constAppTem (from PartialCarnot)false=true to fix approach temperatures at nominal values. This can improve simulation speed
Modelica.Units.SI.TemperatureDifferenceTAppCon_nominal (from PartialCarnot)Temperature difference between refrigerant and working fluid outlet in condenser
Modelica.Units.SI.TemperatureDifferenceTAppEva_nominal (from PartialCarnot)Temperature difference between refrigerant and working fluid outlet in evaporator
Advanced
Modelica.Units.SI.TemperatureDifferencedTCarMin (from PartialCarnot)5Minimal temperature difference, used to avoid division errors

Connectors

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealOutputPEle (from PartialRefrigerantCycle)Electrical Power consumed by the device
Modelica.Blocks.Interfaces.RealOutputQCon_flow (from PartialRefrigerantCycle)Heat flow rate through condenser
Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.RefrigerantMachineControlBussigBus (from PartialRefrigerantCycle)Bus-connector
Modelica.Blocks.Interfaces.RealOutputQEva_flow (from PartialRefrigerantCycle)Heat flow rate through evaporator

Components

TypeNameDefaultDescription
Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrostingiceFacCal (from PartialRefrigerantCycle)
Modelica.Blocks.Math.AddredQCon (from PartialRefrigerantCycle)Reduce heat flow to the condenser based on the reduction to the evaporator
Modelica.Blocks.Math.ProductproRedQEva (from PartialRefrigerantCycle)Reduce heat flow to the evaporator based on the icing factor
Modelica.Blocks.Math.FeedbackfeeHeaFloEva (from PartialHeatPumpCycle)Calculates evaporator heat flow with total energy balance
Modelica.Blocks.Sources.RealExpressionreaCarnotCOP (from PartialCarnot)Internal calculation of Carnot COP
Modelica.Blocks.Math.MultiProductproQUse_flow (from PartialCarnot)Calculate QUse_flow
Modelica.Blocks.Math.ProductproPEle (from PartialCarnot)Calculate electrical power consumption
Modelica.Blocks.Sources.ConstantconstPEle (from PartialCarnot)Constant electrical power consumption
Modelica.Blocks.Routing.RealPassThroughpasThrYMea (from PartialCarnot)From signal bus
Modelica.Units.SI.TemperatureTUseSidAct (from PartialCarnot)if useForChi then TEvaAct else TConActUseful side refrigerant temperature
Modelica.Units.SI.TemperatureTConAct (from PartialCarnot)pasThrTCon.y + TAppConRefrigerant condensation temperature
Modelica.Units.SI.TemperatureTEvaAct (from PartialCarnot)pasThrTEva.y - TAppEvaRefrigerant evaporation temperature
Modelica.Units.SI.TemperatureDifferenceTAppCon (from PartialCarnot)if use_constAppTem then TAppCon_nominal else TAppCon_nominal*QCon_flow_internal/QCon_flow_nominalCondenser approach temperature
Modelica.Units.SI.TemperatureDifferenceTAppEva (from PartialCarnot)if use_constAppTem then TAppEva_nominal else TAppEva_nominal*QEva_flow_internal/QEva_flow_nominalEvaporator approach temperature
Modelica.Blocks.Sources.ConstantconstZer (from PartialCarnot)Constant zero value if off
Modelica.Blocks.Logical.SwitchswiPEle (from PartialCarnot)If device is off, no heat exchange occurs
Modelica.Blocks.Logical.SwitchswiQUse (from PartialCarnot)If device is off, no heat exchange occurs
Modelica.Blocks.Routing.RealPassThroughpasThrTEva (from PartialCarnot)Evaporator outlet pass through
Modelica.Blocks.Routing.RealPassThroughpasThrTCon (from PartialCarnot)Condenser outlet pass through
Modelica.Blocks.Sources.RealExpressionreaCarnotEff (from PartialCarnot)Internal calculation of Carnot effectiveness

Revisions

  • October 2, 2022 by Fabian Wuellhorst:
    First implementation (see issue #1576)