Collection of models that illustrate model use and test models
Information
This package contains examples for the use of models that can be found in
Annex60.Fluid.Chillers.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name |
Description |
Carnot_TEva
|
Test model for chiller based on Carnot efficiency and evaporator outlet temperature control signal |
Carnot_y
|
Test model for chiller based on Carnot_y efficiency |
Test model for chiller based on Carnot efficiency and evaporator outlet temperature control signal
Information
Example that simulates a chiller whose efficiency is scaled based on the
Carnot cycle.
The chiller takes as an input the evaporator leaving water temperature.
The condenser mass flow rate is computed in such a way that it has
a temperature difference equal to dTEva_nominal
.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
TemperatureDifference | dTEva_nominal | -10 | Temperature difference evaporator outlet-inlet [K] |
TemperatureDifference | dTCon_nominal | 10 | Temperature difference condenser outlet-inlet [K] |
Real | COPc_nominal | 3 | Chiller COP |
HeatFlowRate | QEva_flow_nominal | -100E3 | Evaporator heat flow rate [W] |
MassFlowRate | m2_flow_nominal | QEva_flow_nominal/dTEva_nomi... | Nominal mass flow rate at chilled water side [kg/s] |
Modelica definition
model Carnot_TEva
extends Modelica.Icons.Example;
package Medium1 =
Annex60.Media.Water ;
package Medium2 =
Annex60.Media.Water ;
parameter Modelica.SIunits.TemperatureDifference dTEva_nominal=-10
;
parameter Modelica.SIunits.TemperatureDifference dTCon_nominal=10
;
parameter Real COPc_nominal = 3 ;
parameter Modelica.SIunits.HeatFlowRate QEva_flow_nominal = -100E3
;
parameter Modelica.SIunits.MassFlowRate m2_flow_nominal=
QEva_flow_nominal/dTEva_nominal/4200
;
Annex60.Fluid.Chillers.Carnot_TEva chi(
redeclare package Medium1 = Medium1,
redeclare package Medium2 = Medium2,
dTEva_nominal=dTEva_nominal,
dTCon_nominal=dTCon_nominal,
m2_flow_nominal=m2_flow_nominal,
show_T=true,
QEva_flow_nominal=QEva_flow_nominal,
allowFlowReversal1=false,
allowFlowReversal2=false,
use_eta_Carnot_nominal=true,
etaCarnot_nominal=0.3,
dp1_nominal=6000,
dp2_nominal=6000) ;
Annex60.Fluid.Sources.MassFlowSource_T sou1(nPorts=1,
redeclare package Medium = Medium1,
use_T_in=false,
use_m_flow_in=true,
T=298.15);
Annex60.Fluid.Sources.MassFlowSource_T sou2(nPorts=1,
redeclare package Medium = Medium2,
m_flow=m2_flow_nominal,
use_T_in=false,
T=295.15);
Annex60.Fluid.Sources.FixedBoundary sin1(
redeclare package Medium = Medium1,
nPorts=1);
Annex60.Fluid.Sources.FixedBoundary sin2(nPorts=1,
redeclare package Medium = Medium2);
Modelica.Blocks.Sources.Ramp TEvaLvg(
duration=60,
startTime=1800,
offset=273.15 + 6,
height=10) ;
Modelica.Blocks.Math.Gain mCon_flow(k=-1/cp1_default/dTEva_nominal)
;
Modelica.Blocks.Math.Add QCon_flow(k2=-1) ;
final parameter Modelica.SIunits.SpecificHeatCapacity cp1_default=
Medium1.specificHeatCapacityCp(
Medium1.setState_pTX(
Medium1.p_default,
Medium1.T_default,
Medium1.X_default))
;
equation
connect(sou1.ports[1], chi.port_a1);
connect(sou2.ports[1], chi.port_a2);
connect(sin2.ports[1], chi.port_b2);
connect(TEvaLvg.y, chi.TSet);
connect(chi.P, QCon_flow.u1);
connect(chi.QEva_flow, QCon_flow.u2);
connect(QCon_flow.y, mCon_flow.u);
connect(mCon_flow.y, sou1.m_flow_in);
connect(chi.port_b1, sin1.ports[1]);
end Carnot_TEva;
Test model for chiller based on Carnot_y efficiency
Information
Example that simulates a chiller whose efficiency is scaled based on the
Carnot cycle.
The chiller control signal is the compressor speed.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
Power | P_nominal | 10E3 | Nominal compressor power (at y=1) [W] |
TemperatureDifference | dTEva_nominal | -10 | Temperature difference evaporator outlet-inlet [K] |
TemperatureDifference | dTCon_nominal | 10 | Temperature difference condenser outlet-inlet [K] |
Real | COPc_nominal | 3 | Chiller COP |
MassFlowRate | m2_flow_nominal | -P_nominal*COPc_nominal/dTEv... | Nominal mass flow rate at chilled water side [kg/s] |
MassFlowRate | m1_flow_nominal | m2_flow_nominal*(COPc_nomina... | Nominal mass flow rate at condenser water wide [kg/s] |
Modelica definition
model Carnot_y
extends Modelica.Icons.Example;
package Medium1 =
Annex60.Media.Water ;
package Medium2 =
Annex60.Media.Water ;
parameter Modelica.SIunits.Power P_nominal=10E3
;
parameter Modelica.SIunits.TemperatureDifference dTEva_nominal=-10
;
parameter Modelica.SIunits.TemperatureDifference dTCon_nominal=10
;
parameter Real COPc_nominal = 3 ;
parameter Modelica.SIunits.MassFlowRate m2_flow_nominal=
-P_nominal*COPc_nominal/dTEva_nominal/4200
;
parameter Modelica.SIunits.MassFlowRate m1_flow_nominal=
m2_flow_nominal*(COPc_nominal+1)/COPc_nominal
;
Annex60.Fluid.Chillers.Carnot_y chi(
redeclare package Medium1 = Medium1,
redeclare package Medium2 = Medium2,
P_nominal=P_nominal,
dTEva_nominal=dTEva_nominal,
dTCon_nominal=dTCon_nominal,
use_eta_Carnot_nominal=true,
etaCarnot_nominal=0.3,
dp1_nominal=6000,
dp2_nominal=6000,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
show_T=true,
T1_start=303.15,
T2_start=278.15) ;
Annex60.Fluid.Sources.MassFlowSource_T sou1(nPorts=1,
redeclare package Medium = Medium1,
use_T_in=true,
m_flow=m1_flow_nominal,
T=298.15);
Annex60.Fluid.Sources.MassFlowSource_T sou2(nPorts=1,
redeclare package Medium = Medium2,
use_T_in=true,
m_flow=m2_flow_nominal,
T=291.15);
Annex60.Fluid.Sources.FixedBoundary sin1(
nPorts=1,
redeclare package Medium = Medium1);
Annex60.Fluid.Sources.FixedBoundary sin2(
nPorts=1,
redeclare package Medium = Medium2);
Modelica.Blocks.Sources.Ramp uCom(
height=-1,
duration=60,
offset=1,
startTime=1800) ;
Modelica.Blocks.Sources.Ramp TCon_in(
height=10,
duration=60,
offset=273.15 + 20,
startTime=60) ;
Modelica.Blocks.Sources.Ramp TEva_in(
height=10,
duration=60,
startTime=900,
offset=273.15 + 15) ;
equation
connect(sou1.ports[1], chi.port_a1);
connect(sou2.ports[1], chi.port_a2);
connect(chi.port_b1, sin1.ports[1]);
connect(sin2.ports[1], chi.port_b2);
connect(TCon_in.y, sou1.T_in);
connect(TEva_in.y, sou2.T_in);
connect(uCom.y, chi.y);
end Carnot_y;
http://iea-annex60.org