modelConstantCarnotEffectiveness
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
| Type | Name | Default | Description |
|---|---|---|---|
| String | devIde (from PartialRefrigerantCycle) | "" | Indicates the data source, used to warn users about different vapor compression devices in reversible models |
| Boolean | useInHeaPum (from PartialHeatPumpCycle) | =false to indicate that this model is used in a chiller | |
| Boolean | useForChi (from PartialCarnot) | =false to use in heat pump models | |
| Nominal condition | |||
| Modelica.Units.SI.Power | PEle_nominal (from PartialRefrigerantCycle) | Nominal electrical power consumption | |
| Modelica.Units.SI.Temperature | TCon_nominal (from PartialRefrigerantCycle) | Nominal temperature at secondary condenser side | |
| Modelica.Units.SI.Temperature | TEva_nominal (from PartialRefrigerantCycle) | Nominal temperature at secondary evaporator side | |
| Modelica.Units.SI.HeatFlowRate | QHea_flow_nominal (from PartialHeatPumpCycle) | Nominal heating capacity | |
| Real | etaCarnot_nominal (from PartialCarnot) | 0.3 | Constant Carnot effectiveness |
| Real | COP_nominal | etaCarnot_nominal*(TCon_nominal + TAppCon_nominal)/(TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal)) | Nominal coefficient of performance |
| Advanced › Medium properties | |||
| Modelica.Units.SI.SpecificHeatCapacity | cpCon (from PartialRefrigerantCycle) | Evaporator medium specific heat capacity | |
| Modelica.Units.SI.SpecificHeatCapacity | cpEva (from PartialRefrigerantCycle) | Evaporator medium specific heat capacity | |
| Efficiency | |||
| Boolean | use_constAppTem (from PartialCarnot) | false | =true to fix approach temperatures at nominal values. This can improve simulation speed |
| Modelica.Units.SI.TemperatureDifference | TAppCon_nominal (from PartialCarnot) | Temperature difference between refrigerant and working fluid outlet in condenser | |
| Modelica.Units.SI.TemperatureDifference | TAppEva_nominal (from PartialCarnot) | Temperature difference between refrigerant and working fluid outlet in evaporator | |
| Advanced | |||
| Modelica.Units.SI.TemperatureDifference | dTCarMin (from PartialCarnot) | 5 | Minimal temperature difference, used to avoid division errors |
Connectors
| Type | Name | Default | Description |
|---|---|---|---|
| Modelica.Blocks.Interfaces.RealOutput | PEle (from PartialRefrigerantCycle) | Electrical Power consumed by the device | |
| Modelica.Blocks.Interfaces.RealOutput | QCon_flow (from PartialRefrigerantCycle) | Heat flow rate through condenser | |
| Buildings.Fluid.HeatPumps.ModularReversible.BaseClasses.RefrigerantMachineControlBus | sigBus (from PartialRefrigerantCycle) | Bus-connector | |
| Modelica.Blocks.Interfaces.RealOutput | QEva_flow (from PartialRefrigerantCycle) | Heat flow rate through evaporator |
Components
| Type | Name | Default | Description |
|---|---|---|---|
| Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting | iceFacCal (from PartialRefrigerantCycle) | ||
| Modelica.Blocks.Math.Add | redQCon (from PartialRefrigerantCycle) | Reduce heat flow to the condenser based on the reduction to the evaporator | |
| Modelica.Blocks.Math.Product | proRedQEva (from PartialRefrigerantCycle) | Reduce heat flow to the evaporator based on the icing factor | |
| Modelica.Blocks.Math.Feedback | feeHeaFloEva (from PartialHeatPumpCycle) | Calculates evaporator heat flow with total energy balance | |
| Modelica.Blocks.Sources.RealExpression | reaCarnotCOP (from PartialCarnot) | Internal calculation of Carnot COP | |
| Modelica.Blocks.Math.MultiProduct | proQUse_flow (from PartialCarnot) | Calculate QUse_flow | |
| Modelica.Blocks.Math.Product | proPEle (from PartialCarnot) | Calculate electrical power consumption | |
| Modelica.Blocks.Sources.Constant | constPEle (from PartialCarnot) | Constant electrical power consumption | |
| Modelica.Blocks.Routing.RealPassThrough | pasThrYMea (from PartialCarnot) | From signal bus | |
| Modelica.Units.SI.Temperature | TUseSidAct (from PartialCarnot) | if useForChi then TEvaAct else TConAct | Useful side refrigerant temperature |
| Modelica.Units.SI.Temperature | TConAct (from PartialCarnot) | pasThrTCon.y + TAppCon | Refrigerant condensation temperature |
| Modelica.Units.SI.Temperature | TEvaAct (from PartialCarnot) | pasThrTEva.y - TAppEva | Refrigerant evaporation temperature |
| Modelica.Units.SI.TemperatureDifference | TAppCon (from PartialCarnot) | if use_constAppTem then TAppCon_nominal else TAppCon_nominal*QCon_flow_internal/QCon_flow_nominal | Condenser approach temperature |
| Modelica.Units.SI.TemperatureDifference | TAppEva (from PartialCarnot) | if use_constAppTem then TAppEva_nominal else TAppEva_nominal*QEva_flow_internal/QEva_flow_nominal | Evaporator approach temperature |
| Modelica.Blocks.Sources.Constant | constZer (from PartialCarnot) | Constant zero value if off | |
| Modelica.Blocks.Logical.Switch | swiPEle (from PartialCarnot) | If device is off, no heat exchange occurs | |
| Modelica.Blocks.Logical.Switch | swiQUse (from PartialCarnot) | If device is off, no heat exchange occurs | |
| Modelica.Blocks.Routing.RealPassThrough | pasThrTEva (from PartialCarnot) | Evaporator outlet pass through | |
| Modelica.Blocks.Routing.RealPassThrough | pasThrTCon (from PartialCarnot) | Condenser outlet pass through | |
| Modelica.Blocks.Sources.RealExpression | reaCarnotEff (from PartialCarnot) | Internal calculation of Carnot effectiveness |
Revisions
-
October 2, 2022 by Fabian Wuellhorst:
First implementation (see issue #1576)