diff --git a/IBPSA/Fluid/Chillers/ModularReversible/Examples/ModularReversible.mo b/IBPSA/Fluid/Chillers/ModularReversible/Examples/ModularReversible.mo index 4057c9eb5e..896b135467 100644 --- a/IBPSA/Fluid/Chillers/ModularReversible/Examples/ModularReversible.mo +++ b/IBPSA/Fluid/Chillers/ModularReversible/Examples/ModularReversible.mo @@ -15,10 +15,9 @@ model ModularReversible refIneFreConst=1/300, nthOrd=1, initType=Modelica.Blocks.Types.Init.InitialState), - redeclare IBPSA.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021 - safCtrPar( - minOffTime=100, - use_opeEnv=false), + redeclare + IBPSA.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021 + safCtrPar(minOffTime=100, use_opeEnv=false), TCon_nominal=313.15, dpCon_nominal(displayUnit="Pa") = 6000, use_conCap=false, @@ -38,19 +37,19 @@ model ModularReversible energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, show_T=true, redeclare model RefrigerantCycleChillerCooling = - IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( datSou="Override to avoid warnings during simulation for CI", cpCon=chi.cpCon, cpEva=chi.cpEva, - quaGra=0.35), + etaCarnot_nominal=0.35), redeclare model RefrigerantCycleChillerHeating = IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.TableData2D ( redeclare IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting iceFacCal, datTab= - IBPSA.Fluid.HeatPumps.ModularReversible.Data.TableData2D.EN14511.Vitocal251A08())) - "Modular reversible chiller instance" + IBPSA.Fluid.HeatPumps.ModularReversible.Data.TableData2D.EN14511.Vitocal251A08 + ())) "Modular reversible chiller instance" annotation (Placement(transformation(extent={{0,0},{20,20}}))); IBPSA.Fluid.Sources.MassFlowSource_T souCon( nPorts=1, diff --git a/IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/ConstantQualityGrade.mo b/IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/ConstantCarnotEffectiveness.mo similarity index 90% rename from IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/ConstantQualityGrade.mo rename to IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/ConstantCarnotEffectiveness.mo index 9541da5a86..4715bf2b44 100644 --- a/IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/ConstantQualityGrade.mo +++ b/IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/ConstantCarnotEffectiveness.mo @@ -1,11 +1,11 @@ within IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle; -model ConstantQualityGrade "Carnot EER with a constant quality grade" +model ConstantCarnotEffectiveness "Carnot EER with a constant Carnot effectiveness" extends IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.BaseClasses.PartialChillerCycle( useInChi=true, PEle_nominal=QUse_flow_nominal/EER_nominal/y_nominal, QUseNoSca_flow_nominal=QUse_flow_nominal, - datSou="ConstantQualityGradeCarnot"); + datSou="ConstantCarnotEffectiveness"); extends IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialCarnot( final useForChi=true, @@ -13,10 +13,9 @@ model ConstantQualityGrade "Carnot EER with a constant quality grade" final QCon_flow_nominal=QUse_flow_nominal+PEle_nominal, constPEle(final k=PEle_nominal)); parameter Real EER_nominal( - min=0, - final unit="1") = quaGra * - (TEva_nominal - TAppEva_nominal) / - (TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal)) + min=0, + final unit="1") = etaCarnot_nominal*(TEva_nominal - TAppEva_nominal)/( + TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal)) "Nominal EER"; equation @@ -72,7 +71,7 @@ equation ", info="

- This model uses a constant quality grade approach and Carnot equations + This model uses a constant Carnot effectiveness approach to compute the efficiency of the chiller.

@@ -85,7 +84,7 @@ equation

- QEva_flow = PEle_nominal * quaGra * ySet * + QEva_flow = PEle_nominal * etaCarnot_nominal * ySet * (TEvaOut - TAppEva) / (TConOut + TAppCon - (TEvaOut - TAppEva)) @@ -121,4 +120,4 @@ equation extent={{-78,68},{74,-78}}, textColor={0,0,127}, textString="Carnot")})); -end ConstantQualityGrade; +end ConstantCarnotEffectiveness; diff --git a/IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/package.order b/IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/package.order index d648c9f5b8..5ffb6c022f 100644 --- a/IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/package.order +++ b/IBPSA/Fluid/Chillers/ModularReversible/RefrigerantCycle/package.order @@ -1,3 +1,3 @@ -ConstantQualityGrade +ConstantCarnotEffectiveness TableData2D BaseClasses diff --git a/IBPSA/Fluid/Chillers/ModularReversible/ReversibleCarnotWithLosses.mo b/IBPSA/Fluid/Chillers/ModularReversible/ReversibleCarnotWithLosses.mo index 91648ba7dd..5739b756dd 100644 --- a/IBPSA/Fluid/Chillers/ModularReversible/ReversibleCarnotWithLosses.mo +++ b/IBPSA/Fluid/Chillers/ModularReversible/ReversibleCarnotWithLosses.mo @@ -3,20 +3,20 @@ model ReversibleCarnotWithLosses "Reversible chiller using Carnot approach with losses (frost, heat, inertia)" extends IBPSA.Fluid.Chillers.ModularReversible.ModularReversible( redeclare model RefrigerantCycleChillerHeating = - IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( QUseNoSca_flow_nominal=QUse_flow_nominal, redeclare IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting iceFacCal, - quaGra=quaGra, + etaCarnot_nominal=etaCarnot_nominal, use_constAppTem=true, cpCon=cpCon, cpEva=cpEva, TAppCon_nominal=TAppCon_nominal, TAppEva_nominal=TAppEva_nominal), redeclare model RefrigerantCycleChillerCooling = - IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( redeclare IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.FunctionalIcingFactor @@ -26,7 +26,7 @@ model ReversibleCarnotWithLosses cpEva=cpEva, TAppCon_nominal=TAppCon_nominal, TAppEva_nominal=TAppEva_nominal, - quaGra=quaGra), + etaCarnot_nominal=etaCarnot_nominal), redeclare model RefrigerantCycleInertia = IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Inertias.VariableOrder ( @@ -34,7 +34,7 @@ model ReversibleCarnotWithLosses final nthOrd=1, initType=Modelica.Blocks.Types.Init.InitialOutput)); - parameter Real quaGra=0.3 "Constant quality grade"; + 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"; @@ -61,12 +61,12 @@ model ReversibleCarnotWithLosses This model extends IBPSA.Fluid.Chillers.ModularReversible.ModularReversible and selects the - constant quality grade module for chillers - ( - IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantQualityGrade) + constant Carnot effectiveness module for chillers + ( + IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness) and heat pumps - ( - IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantQualityGrade) + ( + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness) to model a reversible chiller. For the heating operation, the nominal approach temperatures are used as a constant to avoid nonlinear system of equations. diff --git a/IBPSA/Fluid/Chillers/ModularReversible/Validation/ConstantQualityGrade.mo b/IBPSA/Fluid/Chillers/ModularReversible/Validation/ConstantCarnotEffectiveness.mo similarity index 72% rename from IBPSA/Fluid/Chillers/ModularReversible/Validation/ConstantQualityGrade.mo rename to IBPSA/Fluid/Chillers/ModularReversible/Validation/ConstantCarnotEffectiveness.mo index 37922f5b4f..2491f2dc16 100644 --- a/IBPSA/Fluid/Chillers/ModularReversible/Validation/ConstantQualityGrade.mo +++ b/IBPSA/Fluid/Chillers/ModularReversible/Validation/ConstantCarnotEffectiveness.mo @@ -1,17 +1,17 @@ within IBPSA.Fluid.Chillers.ModularReversible.Validation; -model ConstantQualityGrade +model ConstantCarnotEffectiveness "Validation case for modular Carnot approach" extends BaseClasses.PartialModularComparison(chi(redeclare model RefrigerantCycleChillerCooling = - IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( cpCon=chi.cpCon, cpEva=chi.cpEva, - quaGra=etaCarnot_nominal))); + etaCarnot_nominal=etaCarnot_nominal))); extends Modelica.Icons.Example; annotation (experiment(Tolerance=1e-6, StopTime=3600), -__Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Fluid/Chillers/ModularReversible/Validation/ConstantQualityGrade.mos" +__Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Fluid/Chillers/ModularReversible/Validation/ConstantCarnotEffectiveness.mos" "Simulate and plot"), Documentation(revisions="

", info="

-Validation case for -IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantQualityGrade. +Validation case for +IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness.

")); -end ConstantQualityGrade; +end ConstantCarnotEffectiveness; diff --git a/IBPSA/Fluid/Chillers/ModularReversible/Validation/package.order b/IBPSA/Fluid/Chillers/ModularReversible/Validation/package.order index 56708c112b..bc40b5cefa 100644 --- a/IBPSA/Fluid/Chillers/ModularReversible/Validation/package.order +++ b/IBPSA/Fluid/Chillers/ModularReversible/Validation/package.order @@ -1,4 +1,4 @@ Carnot_y -ConstantQualityGrade +ConstantCarnotEffectiveness TableData2D BaseClasses diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/Examples/ModularReversible_OneRoomRadiator.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/Examples/ModularReversible_OneRoomRadiator.mo index 3ab7b3aba8..62f287f229 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/Examples/ModularReversible_OneRoomRadiator.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/Examples/ModularReversible_OneRoomRadiator.mo @@ -34,7 +34,7 @@ model ModularReversible_OneRoomRadiator cpEva=4184, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, redeclare model RefrigerantCycleHeatPumpHeating = - IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( redeclare IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/Examples/ReversibleCarnotWithLosses_OneRoomRadiator.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/Examples/ReversibleCarnotWithLosses_OneRoomRadiator.mo index 4f753a84fa..f3fea63330 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/Examples/ReversibleCarnotWithLosses_OneRoomRadiator.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/Examples/ReversibleCarnotWithLosses_OneRoomRadiator.mo @@ -33,7 +33,7 @@ model ReversibleCarnotWithLosses_OneRoomRadiator energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, redeclare IBPSA.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021 safCtrPar, - quaGra=0.4) + etaCarnot_nominal=0.4) "Reversible heat pump with losses and Carnot approach" annotation (Placement(transformation(extent={{20,-160},{0,-140}}))); Modelica.Blocks.Sources.Constant temAmbBas(final k=273.15 + 18) diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/BaseClasses/PartialCarnot.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/BaseClasses/PartialCarnot.mo index 689eb6fd66..d49f156c82 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/BaseClasses/PartialCarnot.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/BaseClasses/PartialCarnot.mo @@ -7,7 +7,7 @@ partial model PartialCarnot "Condenser medium specific heat capacity, used for pinch assumption"; parameter Modelica.Units.SI.SpecificHeatCapacity cpEva "Evaporator medium specific heat capacity, used for pinch assumption"; - parameter Real quaGra=0.3 "Constant quality grade"; + parameter Real etaCarnot_nominal=0.3 "Constant Carnot effectiveness"; parameter Boolean use_constAppTem=false "=true to fix approach temperatures at nominal values. This can improve simulation speed"; parameter Modelica.Units.SI.TemperatureDifference TAppCon_nominal(min=0)= @@ -22,13 +22,15 @@ partial model PartialCarnot parameter Modelica.Units.SI.TemperatureDifference dTCarMin=5 "Minimal temperature difference, used to avoid division errors" annotation(Dialog(tab="Advanced")); - Modelica.Blocks.Sources.RealExpression reaEtaCarEff(final y=quaGra*TUseSidAct/ + Modelica.Blocks.Sources.RealExpression reaCarnotCOP(final y=TUseSidAct/ IBPSA.Utilities.Math.Functions.smoothMax( x1=dTCarMin, x2=(TConAct - TEvaAct), - deltaX=0.25)) "Internal calculation of Carnot efficiency" + deltaX=0.25)) "Internal calculation of Carnot COP" annotation (Placement(transformation(extent={{-100,60},{-80,80}}))); - Modelica.Blocks.Math.Product proQUse_flow "Calculate QUse_flow" annotation ( + Modelica.Blocks.Math.MultiProduct + proQUse_flow(nu=3) + "Calculate QUse_flow" annotation ( Placement(transformation( extent={{-10,-10},{10,10}}, rotation=270, @@ -86,6 +88,9 @@ partial model PartialCarnot extent={{-10,-10},{10,10}}, rotation=270, origin={-30,90}))); + Modelica.Blocks.Sources.RealExpression reaCarnotEff(y=etaCarnot_nominal) + "Internal calculation of Carnot effectiveness" + annotation (Placement(transformation(extent={{-100,40},{-80,60}}))); protected parameter Modelica.Units.SI.HeatFlowRate QCon_flow_nominal "Nominal condenser heat flow rate"; @@ -99,10 +104,6 @@ protected "Evaporator heat flow rate"; equation - connect(reaEtaCarEff.y, proQUse_flow.u2) annotation (Line(points={{-79,70},{-56, - 70},{-56,62}}, color={0,0,127})); - connect(proPEle.y, proQUse_flow.u1) annotation (Line(points={{70,39},{70,34},{ - -20,34},{-20,70},{-44,70},{-44,62}}, color={0,0,127})); connect(proPEle.u1, constPEle.y) annotation (Line(points={{76,62},{76,66},{88, 66},{88,79}}, color={0,0,127})); connect(pasThrYSet.y, proPEle.u2) @@ -111,10 +112,16 @@ equation 8.88178e-16,28},{42,28},{42,22}}, color={0,0,127})); connect(proPEle.y, swiPEle.u1) annotation (Line(points={{70,39},{70,34},{58, 34},{58,22}}, color={0,0,127})); - connect(proQUse_flow.y, swiQUse.u1) annotation (Line(points={{-50,39},{-50,36}, + connect(proQUse_flow.y, swiQUse.u1) annotation (Line(points={{-50,38.3},{-50,36}, {-58,36},{-58,22}}, color={0,0,127})); connect(swiQUse.u3, constZer.y) annotation (Line(points={{-42,22},{-42,28},{ 8.88178e-16,28},{8.88178e-16,21}}, color={0,0,127})); + connect(reaCarnotCOP.y, proQUse_flow.u[1]) annotation (Line(points={{-79,70},{ + -52.3333,70},{-52.3333,60}}, color={0,0,127})); + connect(proPEle.y, proQUse_flow.u[2]) annotation (Line(points={{70,39},{70,34}, + {-26,34},{-26,70},{-50,70},{-50,60}}, color={0,0,127})); + connect(reaCarnotEff.y, proQUse_flow.u[3]) annotation (Line(points={{-79,50},{ + -68,50},{-68,70},{-47.6667,70},{-47.6667,60}}, color={0,0,127})); annotation (Diagram(coordinateSystem(preserveAspectRatio=false, extent={{-120, -120},{120,120}})), Documentation(info=" diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/ConstantQualityGrade.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/ConstantCarnotEffectiveness.mo similarity index 92% rename from IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/ConstantQualityGrade.mo rename to IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/ConstantCarnotEffectiveness.mo index 852a184bfb..76eaa532d4 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/ConstantQualityGrade.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/ConstantCarnotEffectiveness.mo @@ -1,11 +1,11 @@ within IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle; -model ConstantQualityGrade "Carnot COP with a constant quality grade" +model ConstantCarnotEffectiveness "Carnot COP with a constant Carnot effectiveness" extends IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialHeatPumpCycle( useInHeaPum=true, PEle_nominal=QUse_flow_nominal / COP_nominal / y_nominal, QUseNoSca_flow_nominal=QUse_flow_nominal, - datSou="ConstantQualityGradeCarnot"); + datSou="ConstantCarnotEffectiveness"); extends IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.BaseClasses.PartialCarnot( final useForChi=false, @@ -13,10 +13,9 @@ model ConstantQualityGrade "Carnot COP with a constant quality grade" final QCon_flow_nominal=QUse_flow_nominal, constPEle(final k=PEle_nominal)); parameter Real COP_nominal( - min=0, - final unit="1") = quaGra * - (TCon_nominal + TAppCon_nominal) / - (TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal)) + min=0, + final unit="1") = etaCarnot_nominal*(TCon_nominal + TAppCon_nominal)/( + TCon_nominal + TAppCon_nominal - (TEva_nominal - TAppEva_nominal)) "Nominal coefficient of performance"; equation @@ -91,7 +90,7 @@ equation ", info="

- This model uses a constant quality grade approach and Carnot equations + This model uses a constant Carnot effectiveness to compute the efficiency of the heat pump.

@@ -104,7 +103,7 @@ equation

- QCon_flow = PEle_nominal * quaGra * ySet * + QCon_flow = PEle_nominal * etaCarnot_nominal * ySet * (TConOut + TAppCon) / (TConOut + TAppCon - (TEvaOut - TAppEva)) @@ -140,4 +139,4 @@ equation extent={{-78,80},{74,-66}}, textColor={0,0,127}, textString="Carnot")})); -end ConstantQualityGrade; +end ConstantCarnotEffectiveness; diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/package.order b/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/package.order index c44ec1054f..96ca1f6e8f 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/package.order +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/RefrigerantCycle/package.order @@ -1,4 +1,4 @@ -ConstantQualityGrade +ConstantCarnotEffectiveness TableData2D Frosting Inertias diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/ReversibleCarnotWithLosses.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/ReversibleCarnotWithLosses.mo index ca37efac70..22f8ca2604 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/ReversibleCarnotWithLosses.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/ReversibleCarnotWithLosses.mo @@ -3,23 +3,26 @@ model ReversibleCarnotWithLosses "Heat pump using the Carnot approach, but with added reversibility and losses (heat, frost, inertia)" extends IBPSA.Fluid.HeatPumps.ModularReversible.ModularReversible( redeclare model RefrigerantCycleHeatPumpCooling = - IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( QUseNoSca_flow_nominal=QUse_flow_nominal, - redeclare IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting iceFacCal, - quaGra=quaGra, + redeclare + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting + iceFacCal, + etaCarnot_nominal=etaCarnot_nominal, use_constAppTem=true, cpCon=cpCon, cpEva=cpEva, TAppCon_nominal=TAppCon_nominal, TAppEva_nominal=TAppEva_nominal), redeclare model RefrigerantCycleHeatPumpHeating = - IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( - redeclare IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.FunctionalIcingFactor iceFacCal( - redeclare function icingFactor = + redeclare + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.FunctionalIcingFactor + iceFacCal(redeclare function icingFactor = IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.Functions.wetterAfjei1997), - quaGra=quaGra, + etaCarnot_nominal=etaCarnot_nominal, cpCon=cpCon, cpEva=cpEva, TAppCon_nominal=TAppCon_nominal, @@ -29,11 +32,11 @@ model ReversibleCarnotWithLosses redeclare model RefrigerantCycleInertia = IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Inertias.VariableOrder ( - final refIneFreConst=1/refIneTimCon, - final nthOrd=nthOrd, - initType=Modelica.Blocks.Types.Init.InitialOutput)); + final refIneFreConst=1/refIneTimCon, + final nthOrd=nthOrd, + initType=Modelica.Blocks.Types.Init.InitialOutput)); - parameter Real quaGra=0.3 "Constant quality grade"; + 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"; @@ -52,12 +55,12 @@ model ReversibleCarnotWithLosses This model extends IBPSA.Fluid.HeatPumps.ModularReversible.ModularReversible and selects the - constant quality grade module for heat pumps - ( - IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantQualityGrade) + constant Carnot effectiveness module for heat pumps + ( + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness) and chillers - ( - IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantQualityGrade) + ( + IBPSA.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. diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/UsersGuide.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/UsersGuide.mo index f7dd31d7c5..7b71f41958 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/UsersGuide.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/UsersGuide.mo @@ -1,4 +1,4 @@ -within IBPSA.Fluid.HeatPumps.ModularReversible; +within IBPSA.Fluid.HeatPumps.ModularReversible; package UsersGuide "User's Guide for modular reversible heat pump and chiller models" extends Modelica.Icons.Information; @@ -319,8 +319,8 @@ The following tables summarizes the possible options.

Currently, two modules for refrigerant cycle are implemented. - First, the - IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantQualityGrade model + First, the + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness model uses the same equations as the Carnot models, i.e. IBPSA.Fluid.HeatPumps.Carnot_y. Second, the diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantQualityGrade.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantCarnotEffectiveness.mo similarity index 77% rename from IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantQualityGrade.mo rename to IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantCarnotEffectiveness.mo index 48e3958dfd..9231e281a4 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantQualityGrade.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantCarnotEffectiveness.mo @@ -1,17 +1,17 @@ within IBPSA.Fluid.HeatPumps.ModularReversible.Validation.Comparative; -model ConstantQualityGrade +model ConstantCarnotEffectiveness "Validation case for modular Carnot approach" extends BaseClasses.PartialModularComparison(heaPum(redeclare model RefrigerantCycleHeatPumpHeating = - IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( cpCon=heaPum.cpCon, cpEva=heaPum.cpEva, - quaGra=etaCarnot_nominal))); + etaCarnot_nominal=etaCarnot_nominal))); extends Modelica.Icons.Example; annotation (experiment(Tolerance=1e-6, StopTime=3600), -__Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantQualityGrade.mos" +__Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantCarnotEffectiveness.mos" "Simulate and plot"), Documentation(revisions="

", info="

-Validation case for -IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantQualityGrade. +Validation case for +IBPSA.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness.

")); -end ConstantQualityGrade; +end ConstantCarnotEffectiveness; diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/package.order b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/package.order index 56708c112b..bc40b5cefa 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/package.order +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/Comparative/package.order @@ -1,4 +1,4 @@ Carnot_y -ConstantQualityGrade +ConstantCarnotEffectiveness TableData2D BaseClasses diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/CarnotConstantQuality.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/ConstantCarnotEffectiveness.mo similarity index 78% rename from IBPSA/Fluid/HeatPumps/ModularReversible/Validation/CarnotConstantQuality.mo rename to IBPSA/Fluid/HeatPumps/ModularReversible/Validation/ConstantCarnotEffectiveness.mo index e3e5cb6514..091db34f81 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/CarnotConstantQuality.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/ConstantCarnotEffectiveness.mo @@ -1,10 +1,10 @@ within IBPSA.Fluid.HeatPumps.ModularReversible.Validation; -model CarnotConstantQuality +model ConstantCarnotEffectiveness extends Modelica.Icons.Example; extends IBPSA.Fluid.HeatPumps.ModularReversible.Validation.BaseClasses.PartialValidation( - heaPum( - QUse_flow_nominal=quaGra*PEle_nominal*heaPum.TCon_nominal/(heaPum.TCon_nominal + heaPum( + QUse_flow_nominal=etaCarnot_nominal*PEle_nominal*heaPum.TCon_nominal/(heaPum.TCon_nominal - heaPum.TEva_nominal), mCon_flow_nominal=mCon_flow_nominal, tauCon=VCon*heaPum.rhoCon/mCon_flow_nominal, @@ -15,15 +15,15 @@ model CarnotConstantQuality nthOrd=2, initType=Modelica.Blocks.Types.Init.InitialState), redeclare model RefrigerantCycleHeatPumpHeating = - IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantQualityGrade + IBPSA.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness ( cpCon=heaPum.cpCon, cpEva=heaPum.cpEva, TAppCon_nominal=0, TAppEva_nominal=0, - quaGra=quaGra))); - parameter Real quaGra=0.4318 "Calibrated constant quality grade"; + etaCarnot_nominal=etaCarnot_nominal))); + parameter Real etaCarnot_nominal=0.4318 "Calibrated constant Carnot effectiveness"; parameter Modelica.Units.SI.Power PEle_nominal=1884.218212 "Calibrated nominal electrical power consumption"; @@ -35,12 +35,12 @@ model CarnotConstantQuality "Calibrated cut off frequency for inertia of refrigerant cycle"; annotation (experiment(Tolerance=1e-6, StopTime=14365), - __Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/CarnotConstantQuality.mos" + __Dymola_Commands(file="modelica://IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/ConstantCarnotEffectiveness.mos" "Simulate and plot"), Documentation(info="

- This validation case uses a constant quality - grade to model the efficiency of the heat pump. + This validation case uses a constant Carnot effectiveness + to model the efficiency of the heat pump.

The approach was calibrated as a comparison to table-based data in @@ -56,4 +56,4 @@ annotation (experiment(Tolerance=1e-6, StopTime=14365), ")); -end CarnotConstantQuality; +end ConstantCarnotEffectiveness; diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/TableData2D.mo b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/TableData2D.mo index f8bb334c20..fa9d734344 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/TableData2D.mo +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/TableData2D.mo @@ -42,8 +42,8 @@ model TableData2D This validation case uses table-based data for the heat pump.

- The approach was calibrated as a comparison to constant quality grade - efficiency in the conference paper for the heat pump model: + The approach was calibrated as a comparison to constant Carnot effectiveness + approach in the conference paper for the heat pump model: https://doi.org/10.3384/ecp21181561

diff --git a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/package.order b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/package.order index e30ea89b87..ce7e44e6f4 100644 --- a/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/package.order +++ b/IBPSA/Fluid/HeatPumps/ModularReversible/Validation/package.order @@ -1,4 +1,4 @@ -CarnotConstantQuality +ConstantCarnotEffectiveness TableData2D Comparative BaseClasses diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_Chillers_ModularReversible_Validation_ConstantQualityGrade.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_Chillers_ModularReversible_Validation_ConstantCarnotEffectiveness.txt similarity index 100% rename from IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_Chillers_ModularReversible_Validation_ConstantQualityGrade.txt rename to IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_Chillers_ModularReversible_Validation_ConstantCarnotEffectiveness.txt diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_HeatPumps_ModularReversible_Validation_Comparative_ConstantQualityGrade.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_HeatPumps_ModularReversible_Validation_Comparative_ConstantCarnotEffectiveness.txt similarity index 100% rename from IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_HeatPumps_ModularReversible_Validation_Comparative_ConstantQualityGrade.txt rename to IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_HeatPumps_ModularReversible_Validation_Comparative_ConstantCarnotEffectiveness.txt diff --git a/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_HeatPumps_ModularReversible_Validation_CarnotConstantQuality.txt b/IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_HeatPumps_ModularReversible_Validation_ConstantCarnotEffectiveness.txt similarity index 100% rename from IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_HeatPumps_ModularReversible_Validation_CarnotConstantQuality.txt rename to IBPSA/Resources/ReferenceResults/Dymola/IBPSA_Fluid_HeatPumps_ModularReversible_Validation_ConstantCarnotEffectiveness.txt diff --git a/IBPSA/Resources/Scripts/Dymola/Fluid/Chillers/ModularReversible/Validation/ConstantQualityGrade.mos b/IBPSA/Resources/Scripts/Dymola/Fluid/Chillers/ModularReversible/Validation/ConstantCarnotEffectiveness.mos similarity index 77% rename from IBPSA/Resources/Scripts/Dymola/Fluid/Chillers/ModularReversible/Validation/ConstantQualityGrade.mos rename to IBPSA/Resources/Scripts/Dymola/Fluid/Chillers/ModularReversible/Validation/ConstantCarnotEffectiveness.mos index 245fde7a0c..d132005595 100644 --- a/IBPSA/Resources/Scripts/Dymola/Fluid/Chillers/ModularReversible/Validation/ConstantQualityGrade.mos +++ b/IBPSA/Resources/Scripts/Dymola/Fluid/Chillers/ModularReversible/Validation/ConstantCarnotEffectiveness.mos @@ -1,5 +1,5 @@ -simulateModel("IBPSA.Fluid.Chillers.ModularReversible.Validation.ConstantQualityGrade", tolerance=1e-6, stopTime=3600, method="CVode", resultFile="Chiller_ConstantQualityGrade"); -createPlot(id=2, position={75, 70, 1210, 980}, y={"chi.refCyc.sigBus.TConInMea", "chi.refCyc.sigBus.TConOutMea", "chi.refCyc.sigBus.TEvaInMea", "chi.refCyc.sigBus.TEvaOutMea"}, range={0.0, 3600.0, 5.0, 40.0}, grid=true, filename="Chiller_ConstantQualityGrade.mat", colors={{28,108,200}, {238,46,47}, {0,140,72}, {180,56,148}}); +simulateModel("IBPSA.Fluid.Chillers.ModularReversible.Validation.ConstantCarnotEffectiveness", tolerance=1e-6, stopTime=3600, method="CVode", resultFile="Chiller_ConstantCarnotEffectiveness"); +createPlot(id=2, position={75, 70, 1210, 980}, y={"chi.refCyc.sigBus.TConInMea", "chi.refCyc.sigBus.TConOutMea", "chi.refCyc.sigBus.TEvaInMea", "chi.refCyc.sigBus.TEvaOutMea"}, range={0.0, 3600.0, 5.0, 40.0}, grid=true, filename="Chiller_ConstantCarnotEffectiveness.mat", colors={{28,108,200}, {238,46,47}, {0,140,72}, {180,56,148}}); createPlot(id=2, position={75, 70, 1210, 240}, y={"chi.refCyc.QEva_flow", "chi.refCyc.QCon_flow", "chi.refCyc.PEle"}, range={0.0, 3600.0, -200000.0, 300000.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}, {0,140,72}}); createPlot(id=2, position={75, 70, 1210, 241}, y={"chi.dp1", "chi.dp2"}, range={0.0, 3600.0, 0.0, 14000.0}, grid=true, subPlot=3, colors={{28,108,200}, {238,46,47}}); createPlot(id=2, position={75, 70, 1210, 240}, y={"chi.refCyc.refCycChiCoo.EER_nominal", "chi.refCyc.refCycChiCoo.reaEtaCarEff.y", "chi.refCyc.sigBus.EER"}, range={0.0, 3600.0, 3.0, 10.0}, grid=true, subPlot=4, colors={{28,108,200}, {0,140,72}, {238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantQualityGrade.mos b/IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantCarnotEffectiveness.mos similarity index 81% rename from IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantQualityGrade.mos rename to IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantCarnotEffectiveness.mos index 85606b10e8..1ecfbee24b 100644 --- a/IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantQualityGrade.mos +++ b/IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/Comparative/ConstantCarnotEffectiveness.mos @@ -1,5 +1,5 @@ -simulateModel("IBPSA.Fluid.HeatPumps.ModularReversible.Validation.Comparative.ConstantQualityGrade", tolerance=1e-6, stopTime=3600, method="CVode", resultFile="HeatPump_ConstantQualityGrade"); -createPlot(id=2, position={75, 70, 1210, 980}, y={"heaPum.refCyc.sigBus.TConInMea", "heaPum.refCyc.sigBus.TConOutMea", "heaPum.refCyc.sigBus.TEvaInMea", "heaPum.refCyc.sigBus.TEvaOutMea"}, range={0.0, 3600.0, 5.0, 40.0}, grid=true, filename="HeatPump_ConstantQualityGrade.mat", colors={{28,108,200}, {238,46,47}, {0,140,72}, {180,56,148}}); +simulateModel("IBPSA.Fluid.HeatPumps.ModularReversible.Validation.Comparative.ConstantCarnotEffectiveness", tolerance=1e-6, stopTime=3600, method="CVode", resultFile="HeatPump_ConstantCarnotEffectiveness"); +createPlot(id=2, position={75, 70, 1210, 980}, y={"heaPum.refCyc.sigBus.TConInMea", "heaPum.refCyc.sigBus.TConOutMea", "heaPum.refCyc.sigBus.TEvaInMea", "heaPum.refCyc.sigBus.TEvaOutMea"}, range={0.0, 3600.0, 5.0, 40.0}, grid=true, filename="HeatPump_ConstantCarnotEffectiveness.mat", colors={{28,108,200}, {238,46,47}, {0,140,72}, {180,56,148}}); createPlot(id=2, position={75, 70, 1210, 240}, y={"heaPum.refCyc.QEva_flow", "heaPum.refCyc.QCon_flow", "heaPum.refCyc.PEle"}, range={0.0, 3600.0, -200000.0, 300000.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}, {0,140,72}}); createPlot(id=2, position={75, 70, 1210, 241}, y={"heaPum.dp1", "heaPum.dp2"}, range={0.0, 3600.0, 0.0, 14000.0}, grid=true, subPlot=3, colors={{28,108,200}, {238,46,47}}); createPlot(id=2, position={75, 70, 1210, 240}, y={"heaPum.refCyc.refCycHeaPumHea.COP_nominal", "heaPum.refCyc.refCycHeaPumHea.reaEtaCarEff.y", "heaPum.refCyc.sigBus.COP"}, range={0.0, 3600.0, 3.0, 10.0}, grid=true, subPlot=4, colors={{28,108,200}, {0,140,72}, {238,46,47}}); diff --git a/IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/CarnotConstantQuality.mos b/IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/ConstantCarnotEffectiveness.mos similarity index 72% rename from IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/CarnotConstantQuality.mos rename to IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/ConstantCarnotEffectiveness.mos index 23f939999f..254634930a 100644 --- a/IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/CarnotConstantQuality.mos +++ b/IBPSA/Resources/Scripts/Dymola/Fluid/HeatPumps/ModularReversible/Validation/ConstantCarnotEffectiveness.mos @@ -1,4 +1,4 @@ -simulateModel("IBPSA.Fluid.HeatPumps.ModularReversible.Validation.CarnotConstantQuality", tolerance=1e-6, stopTime=14365, method="CVode", resultFile="CarnotConstantQuality"); -createPlot(id=2, position={75, 70, 1210, 980}, y={"TConOutMea", "TConOutSim"}, range={0.0, 14365.0, 293.15, 363.15}, grid=true, filename="CarnotConstantQuality.mat", colors={{28,108,200}, {238,46,47}}); +simulateModel("IBPSA.Fluid.HeatPumps.ModularReversible.Validation.ConstantCarnotEffectiveness", tolerance=1e-6, stopTime=14365, method="CVode", resultFile="ConstantCarnotEffectiveness"); +createPlot(id=2, position={75, 70, 1210, 980}, y={"TConOutMea", "TConOutSim"}, range={0.0, 14365.0, 293.15, 363.15}, grid=true, filename="ConstantCarnotEffectiveness.mat", colors={{28,108,200}, {238,46,47}}); createPlot(id=2, position={75, 70, 1210, 191}, y={"PEleMea", "PEleSim"}, range={0.0, 14365.0, 0.0, 3000.0}, grid=true, subPlot=2, colors={{28,108,200}, {238,46,47}}); createPlot(id=2, position={75, 70, 1210, 192}, y={"TEvaOutMea", "TEvaOutSim"}, range={0.0, 14365.0, 273.15, 303.15}, grid=true, subPlot=3, colors={{28,108,200}, {238,46,47}}); \ No newline at end of file