modelPartialCarnot_T

Partial model for chiller with performance curve adjusted based on Carnot efficiency

Extends from Buildings.Fluid.Chillers.BaseClasses.Carnot.

Information

This is a partial model of a chiller whose coefficient of performance (COP) changes with temperatures in the same way as the Carnot efficiency changes. This base class is used for the Carnot chiller and Carnot heat pump that uses the compressor part load ratio as the control signal.

Parameters

TypeNameDefaultDescription
BooleanhomotopyInitialization (from Carnot)true= true, use homotopy method
Assumptions
BooleanallowFlowReversal1 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 1
BooleanallowFlowReversal2 (from PartialFourPort)true= false to simplify equations, assuming, but not enforcing, no flow reversal for medium 2
Nominal condition
Modelica.Units.SI.MassFlowRatem1_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.MassFlowRatem2_flow_nominal (from PartialFourPortInterface)Nominal mass flow rate
Modelica.Units.SI.HeatFlowRateQEva_flow_nominal (from Carnot)Nominal cooling heat flow rate (QEva_flow_nominal < 0)
Modelica.Units.SI.HeatFlowRateQCon_flow_nominal (from Carnot)Nominal heating flow rate
Modelica.Units.SI.TemperatureDifferencedTEva_nominal (from Carnot)-10Temperature difference evaporator outlet-inlet
Modelica.Units.SI.TemperatureDifferencedTCon_nominal (from Carnot)10Temperature difference condenser outlet-inlet
Modelica.Units.SI.Pressuredp1_nominal (from Carnot)Pressure difference over condenser
Modelica.Units.SI.Pressuredp2_nominal (from Carnot)Pressure difference over evaporator
Advanced
Medium1.MassFlowRatem1_flow_small (from PartialFourPortInterface)1E-4*abs(m1_flow_nominal)Small mass flow rate for regularization of zero flow
Medium2.MassFlowRatem2_flow_small (from PartialFourPortInterface)1E-4*abs(m2_flow_nominal)Small mass flow rate for regularization of zero flow
Advanced › Diagnostics
Booleanshow_T (from PartialFourPortInterface)false= true, if actual temperature at port is computed
Efficiency
Booleanuse_eta_Carnot_nominal (from Carnot)trueSet to true to use Carnot effectiveness etaCarnot_nominal rather than COP_nominal
RealetaCarnot_nominal (from Carnot)0.3Carnot effectiveness (=COP/COP_Carnot) used during simulation if use_eta_Carnot_nominal = true
RealCOP_nominal (from Carnot)etaCarnot_nominal*TUseAct_nominal/(TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal))Coefficient of performance at TEva_nominal and TCon_nominal, used during simulation if use_eta_Carnot_nominal = false
Modelica.Units.SI.TemperatureTCon_nominal (from Carnot)303.15Condenser temperature used to compute COP_nominal if use_eta_Carnot_nominal=false
Modelica.Units.SI.TemperatureTEva_nominal (from Carnot)278.15Evaporator temperature used to compute COP_nominal if use_eta_Carnot_nominal=false
Real[:]a (from Carnot){1}Coefficients for efficiency curve (need p(a=a, yPL=1)=1)
Modelica.Units.SI.TemperatureDifferenceTAppCon_nominal (from Carnot)if cp1_default < 1500 then 5 else 2Temperature difference between refrigerant and working fluid outlet in condenser
Modelica.Units.SI.TemperatureDifferenceTAppEva_nominal (from Carnot)if cp2_default < 1500 then 5 else 2Temperature difference between refrigerant and working fluid outlet in evaporator
Flow resistance › Condenser
Booleanfrom_dp1 (from Carnot)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn1 (from Carnot)2Flow exponent, n1=1 for laminar, n1=2 for turbulent
BooleanlinearizeFlowResistance1 (from Carnot)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM1 (from Carnot)0.1Fraction of nominal flow rate where flow transitions to laminar
Flow resistance › Evaporator
Booleanfrom_dp2 (from Carnot)false= true, use m_flow = f(dp) else dp = f(m_flow)
Realn2 (from Carnot)2Flow exponent, n2=1 for laminar, n2=2 for turbulent
BooleanlinearizeFlowResistance2 (from Carnot)false= true, use linear relation between m_flow and dp for any flow rate
RealdeltaM2 (from Carnot)0.1Fraction of nominal flow rate where flow transitions to laminar
Dynamics › Condenser
Modelica.Units.SI.Timetau1 (from Carnot)60Time constant at nominal flow rate (used if energyDynamics1 <> Modelica.Fluid.Types.Dynamics.SteadyState)
Modelica.Units.SI.TemperatureT1_start (from Carnot)Medium1.T_defaultInitial or guess value of set point
Dynamics › Evaporator
Modelica.Units.SI.Timetau2 (from Carnot)60Time constant at nominal flow rate (used if energyDynamics2 <> Modelica.Fluid.Types.Dynamics.SteadyState)
Modelica.Units.SI.TemperatureT2_start (from Carnot)Medium2.T_defaultInitial or guess value of set point
Dynamics › Evaporator and condenser
Modelica.Fluid.Types.DynamicsenergyDynamics (from Carnot)Modelica.Fluid.Types.Dynamics.SteadyStateType of energy balance: dynamic (3 initialization options) or steady state

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_aport_a1 (from PartialFourPort)Fluid connector a1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_bport_b1 (from PartialFourPort)Fluid connector b1 (positive design flow direction is from port_a1 to port_b1)
Modelica.Fluid.Interfaces.FluidPort_aport_a2 (from PartialFourPort)Fluid connector a2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Fluid.Interfaces.FluidPort_bport_b2 (from PartialFourPort)Fluid connector b2 (positive design flow direction is from port_a2 to port_b2)
Modelica.Blocks.Interfaces.RealOutputQCon_flow (from Carnot)Actual heating heat flow rate added to fluid 1
Modelica.Blocks.Interfaces.RealOutputP (from Carnot)Electric power consumed by compressor
Modelica.Blocks.Interfaces.RealOutputQEva_flow (from Carnot)Actual cooling heat flow rate removed from fluid 2

Components

TypeNameDefaultDescription
Medium1.MassFlowRatem1_flow (from PartialFourPortInterface)port_a1.m_flowMass flow rate from port_a1 to port_b1 (m1_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp1 (from PartialFourPortInterface)port_a1.p - port_b1.pPressure difference between port_a1 and port_b1
Medium2.MassFlowRatem2_flow (from PartialFourPortInterface)port_a2.m_flowMass flow rate from port_a2 to port_b2 (m2_flow > 0 is design flow direction)
Modelica.Units.SI.PressureDifferencedp2 (from PartialFourPortInterface)port_a2.p - port_b2.pPressure difference between port_a2 and port_b2
Medium1.ThermodynamicStatesta_a1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_a1.p, noEvent(actualStream(port_a1.h_outflow)), noEvent(actualStream(port_a1.Xi_outflow))) else Medium1.setState_phX(port_a1.p, inStream(port_a1.h_outflow), inStream(port_a1.Xi_outflow))Medium properties in port_a1
Medium1.ThermodynamicStatesta_b1 (from PartialFourPortInterface)if allowFlowReversal1 then Medium1.setState_phX(port_b1.p, noEvent(actualStream(port_b1.h_outflow)), noEvent(actualStream(port_b1.Xi_outflow))) else Medium1.setState_phX(port_b1.p, port_b1.h_outflow, port_b1.Xi_outflow)Medium properties in port_b1
Medium2.ThermodynamicStatesta_a2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_a2.p, noEvent(actualStream(port_a2.h_outflow)), noEvent(actualStream(port_a2.Xi_outflow))) else Medium2.setState_phX(port_a2.p, inStream(port_a2.h_outflow), inStream(port_a2.Xi_outflow))Medium properties in port_a2
Medium2.ThermodynamicStatesta_b2 (from PartialFourPortInterface)if allowFlowReversal2 then Medium2.setState_phX(port_b2.p, noEvent(actualStream(port_b2.h_outflow)), noEvent(actualStream(port_b2.Xi_outflow))) else Medium2.setState_phX(port_b2.p, port_b2.h_outflow, port_b2.Xi_outflow)Medium properties in port_b2
RealyPL (from Carnot)if COP_is_for_cooling then QEva_flow/QEva_flow_nominal else QCon_flow/QCon_flow_nominalPart load ratio
RealetaPL (from Carnot)if evaluate_etaPL then Buildings.Utilities.Math.Functions.polynomial(a = a, x = yPL) else 1Efficiency due to part load (etaPL(yPL=1)=1)
RealCOP (from Carnot)etaCarnot_nominal_internal*COPCar*etaPLCoefficient of performance
RealCOPCar (from Carnot)TUseAct/Buildings.Utilities.Math.Functions.smoothMax(x1 = 1, x2 = TConAct - TEvaAct, deltaX = 0.25)Carnot efficiency
Modelica.Units.SI.TemperatureTConAct (from Carnot)Medium1.temperature(staB1) + QCon_flow/QCon_flow_nominal*TAppCon_nominalCondenser temperature used to compute efficiency, taking into account pinch temperature between fluid and refrigerant
Modelica.Units.SI.TemperatureTEvaAct (from Carnot)Medium2.temperature(staB2) - QEva_flow/QEva_flow_nominal*TAppEva_nominalEvaporator temperature used to compute efficiency, taking into account pinch temperature between fluid and refrigerant

Revisions

  • January 26, 2016, by Michael Wetter:
    First implementation of this base class.