modelCarnot

Extends from IBPSA.Fluid.Interfaces.PartialFourPortInterface.

Information

This is the base class for the Carnot chiller and the Carnot heat pump whose coefficient of performance COP changes with temperatures in the same way as the Carnot efficiency changes.

The model allows to either specify the Carnot effectivness ηCarnot,0, or a COP0 at the nominal conditions, together with the evaporator temperature Teva,0 and the condenser temperature Tcon,0, in which case the model computes the Carnot effectivness as

ηCarnot,0 = COP0 ⁄ (Tuse,0 ⁄ (Tcon,0-Teva,0)),

where Tuse is the temperature of the the useful heat, e.g., the evaporator temperature for a chiller or the condenser temperature for a heat pump.

The COP is computed as the product

COP = ηCarnot,0 COPCarnot ηPL,

where COPCarnot is the Carnot efficiency and ηPL is the part load efficiency, expressed using a polynomial. This polynomial has the form

ηPL = a1 + a2 y + a3 y2 + ...

where y ∈ [0, 1] is either the part load for cooling in case of a chiller, or the part load of heating in case of a heat pump, and the coefficients ai are declared by the parameter a.

Implementation

To make this base class applicable to chiller or heat pumps, it uses the boolean constant COP_is_for_cooling. Depending on its value, the equations for the coefficient of performance and the part load ratio are set up.

Parameters

TypeNameDefaultDescription
Nominal condition
Modelica.SIunits.HeatFlowRateQEva_flow_nominalNominal cooling heat flow rate (QEva_flow_nominal < 0)
Modelica.SIunits.HeatFlowRateQCon_flow_nominalNominal heating flow rate
Modelica.SIunits.TemperatureDifferencedTEva_nominal-10Temperature difference evaporator outlet-inlet
Modelica.SIunits.TemperatureDifferencedTCon_nominal10Temperature difference condenser outlet-inlet
Modelica.SIunits.Pressuredp1_nominalPressure difference over condenser
Modelica.SIunits.Pressuredp2_nominalPressure difference over evaporator
Efficiency
Booleanuse_eta_Carnot_nominaltrueSet to true to use Carnot effectiveness etaCarnot_nominal rather than COP_nominal
RealetaCarnot_nominalCOP_nominal/(TUseAct_nominal/(TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal)))Carnot effectiveness (=COP/COP_Carnot) used if use_eta_Carnot_nominal = true
RealCOP_nominaletaCarnot_nominal*TUseAct_nominal/(TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal))Coefficient of performance at TEva_nominal and TCon_nominal, used if use_eta_Carnot_nominal = false
Modelica.SIunits.TemperatureTCon_nominal303.15Condenser temperature used to compute COP_nominal if use_eta_Carnot_nominal=false
Modelica.SIunits.TemperatureTEva_nominal278.15Evaporator temperature used to compute COP_nominal if use_eta_Carnot_nominal=false
Real[:]a{1}Coefficients for efficiency curve (need p(a=a, yPL=1)=1)
Modelica.SIunits.TemperatureDifferenceTAppCon_nominalif cp1_default < 1500 then 5 else 2Temperature difference between refrigerant and working fluid outlet in condenser
Modelica.SIunits.TemperatureDifferenceTAppEva_nominalif cp2_default < 1500 then 5 else 2Temperature difference between refrigerant and working fluid outlet in evaporator
Advanced
BooleanhomotopyInitializationtrue= true, use homotopy method
Flow resistance › Condenser
Booleanfrom_dp1false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance1false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM10.1Fraction of nominal flow rate where flow transitions to laminar
Flow resistance › Evaporator
Booleanfrom_dp2false= true, use m_flow = f(dp) else dp = f(m_flow)
BooleanlinearizeFlowResistance2false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM20.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics › Condenser
Modelica.SIunits.Timetau160Time constant at nominal flow rate (used if energyDynamics1 <> Modelica.Fluid.Types.Dynamics.SteadyState)
Modelica.SIunits.TemperatureT1_startMedium1.T_defaultInitial or guess value of set point
Dynamics › Evaporator
Modelica.SIunits.Timetau260Time constant at nominal flow rate (used if energyDynamics2 <> Modelica.Fluid.Types.Dynamics.SteadyState)
Modelica.SIunits.TemperatureT2_startMedium2.T_defaultInitial or guess value of set point
Dynamics › Evaporator and condenser
Modelica.Fluid.Types.DynamicsenergyDynamicsModelica.Fluid.Types.Dynamics.SteadyStateType of energy balance: dynamic (3 initialization options) or steady state

Components

TypeNameDefaultDescription
Modelica.Blocks.Interfaces.RealOutputQCon_flowActual heating heat flow rate added to fluid 1
Modelica.Blocks.Interfaces.RealOutputPElectric power consumed by compressor
Modelica.Blocks.Interfaces.RealOutputQEva_flowActual cooling heat flow rate removed from fluid 2
RealyPLif COP_is_for_cooling then QEva_flow/QEva_flow_nominal else QCon_flow/QCon_flow_nominalPart load ratio
RealetaPLif evaluate_etaPL then 1 else IBPSA.Utilities.Math.Functions.polynomial(a = a, x = yPL)Efficiency due to part load (etaPL(yPL=1)=1)
RealCOPetaCarnot_nominal_internal*COPCar*etaPLCoefficient of performance
RealCOPCarTUseAct/IBPSA.Utilities.Math.Functions.smoothMax(x1 = 1, x2 = TConAct - TEvaAct, deltaX = 0.25)Carnot efficiency
Modelica.SIunits.TemperatureTConActMedium1.temperature(staB1) + QCon_flow/QCon_flow_nominal*TAppCon_nominalCondenser temperature used to compute efficiency, taking into account pinch temperature between fluid and refrigerant
Modelica.SIunits.TemperatureTEvaActMedium2.temperature(staB2) - QEva_flow/QEva_flow_nominal*TAppEva_nominalEvaporator temperature used to compute efficiency, taking into account pinch temperature between fluid and refrigerant

Revisions

  • June 16, 2017, by Michael Wetter:
    Added temperature difference between fluids in condenser and evaporator for computation of nominal COP and effectiveness.
    This is for #698.
  • March 28, 2017, by Felix Buenning:
    Added temperature difference between fluids in condenser and evaporator. The difference is based on discussions with Emerson Climate Technologies.
    This is for #698.
  • January 2, 2017, by Filip Jorissen:
    Removed option for choosing what temperature should be used to compute the Carnot efficiency. This is for issue 497.
  • January 26, 2016, by Michael Wetter:
    First implementation of this base class.