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
Buildings.Fluid.Chillers.ModularReversible.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name |
Description |
CarnotWithLosses
|
Example for reversible Carnot chiller model |
LargeScaleWaterToWater
|
Example for large scale water to water chiller |
Modular
|
Example for modular reversible chiller |
Example for reversible Carnot chiller model
Information
Example that simulates a chiller based on the modular reversible approach
using the
Buildings.Fluid.Chillers.ModularReversible.CarnotWithLosses.
model directly.
The chiller control signal is the compressor speed
ySet
and the mode coo
.
As the model contains internal safety controls, the
compressor set speed ySet
and actually applied
speed yMea
are plotted to show the influence of
the safety control.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model CarnotWithLosses
extends Modelica.Icons.Example;
package MediumCon =
Buildings.Media.Water ;
package MediumEva =
Buildings.Media.Water ;
Buildings.Fluid.Chillers.ModularReversible.CarnotWithLosses chi(
redeclare package MediumCon = MediumCon,
redeclare package MediumEva = MediumEva,
QCoo_flow_nominal=-30000,
redeclare Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021
safCtrPar(
minOffTime=100,
use_maxCycRat=false,
tabUppHea=[263.15,313.15; 333.15,313.15],
tabLowCoo=[263.15,283.15; 333.15,283.15],
use_TEvaOutCoo=true),
TConCoo_nominal=313.15,
dpCon_nominal(displayUnit="Pa") = 6000,
use_conCap=false,
CCon=0,
GConOut=0,
GConIns=0,
TEvaCoo_nominal=278.15,
dTEva_nominal(displayUnit="K") = 10,
dTCon_nominal(displayUnit="K") = 5,
dpEva_nominal(displayUnit="Pa") = 6000,
use_evaCap=false,
CEva=0,
GEvaOut=0,
GEvaIns=0,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
show_T=true,
QHea_flow_nominal=40000,
TConHea_nominal=293.15,
TEvaHea_nominal=303.15)
;
Buildings.Fluid.Sources.MassFlowSource_T souCon(
nPorts=1,
redeclare package Medium = MediumCon,
use_T_in=true,
m_flow=chi.mCon_flow_nominal,
T=298.15) ;
Buildings.Fluid.Sources.MassFlowSource_T souEva(
nPorts=1,
redeclare package Medium = MediumEva,
use_T_in=true,
m_flow=chi.mEva_flow_nominal,
T=291.15) ;
Buildings.Fluid.Sources.Boundary_pT sinCon(nPorts=1,
redeclare package Medium =
MediumCon) ;
Buildings.Fluid.Sources.Boundary_pT sinEva(nPorts=1,
redeclare package Medium =
MediumEva) ;
Modelica.Blocks.Sources.SawTooth ySet(
amplitude=-1,
period=500,
offset=1,
startTime=500) ;
Modelica.Blocks.Sources.Ramp TConIn(
height=10,
duration=60,
offset=273.15 + 30,
startTime=60) ;
Modelica.Blocks.Sources.Ramp TEvaIn(
height=10,
duration=60,
startTime=900,
offset=273.15 + 15) ;
equation
connect(souCon.ports[1], chi.port_a1);
connect(souEva.ports[1], chi.port_a2);
connect(chi.port_b1, sinCon.ports[1]);
connect(sinEva.ports[1], chi.port_b2);
connect(TConIn.y, souCon.T_in);
connect(TEvaIn.y, souEva.T_in);
connect(ySet.y, chi.ySet);
end CarnotWithLosses;
Example for large scale water to water chiller
Information
Example that simulates a chiller based on the modular reversible approach
using the
Buildings.Fluid.Chillers.ModularReversible.LargeScaleWaterToWater.
model directly.
The chiller control signal is the compressor speed
ySet
and the mode coo
.
As the model contains internal safety controls, the
compressor set speed ySet
and actually applied
speed yMea
are plotted to show the influence of
the safety control.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model LargeScaleWaterToWater
extends Modelica.Icons.Example;
package MediumCon =
Buildings.Media.Water ;
package MediumEva =
Buildings.Media.Water ;
Buildings.Fluid.Chillers.ModularReversible.LargeScaleWaterToWater chi(
redeclare Buildings.Fluid.Chillers.ModularReversible.Data.TableData2D.EN14511.Carrier30XWP1012_1MW
datTab,
redeclare Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021
safCtrPar,
redeclare package MediumCon = MediumCon,
redeclare package MediumEva = MediumEva,
QCoo_flow_nominal=-1000000,
TConCoo_nominal=313.15,
dpCon_nominal(displayUnit="Pa") = 6000,
TEvaCoo_nominal=278.15,
dpEva_nominal(displayUnit="Pa") = 6000,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial)
;
Buildings.Fluid.Sources.MassFlowSource_T souCon(
nPorts=1,
redeclare package Medium = MediumCon,
use_T_in=true,
m_flow=chi.mCon_flow_nominal,
T=298.15) ;
Buildings.Fluid.Sources.MassFlowSource_T souEva(
nPorts=1,
redeclare package Medium = MediumEva,
use_T_in=true,
m_flow=chi.mEva_flow_nominal,
T=291.15) ;
Buildings.Fluid.Sources.Boundary_pT sinCon(nPorts=1,
redeclare package Medium =
MediumCon) ;
Buildings.Fluid.Sources.Boundary_pT sinEva(nPorts=1,
redeclare package Medium =
MediumEva) ;
Modelica.Blocks.Sources.Ramp ySet(
height=-1,
duration=900,
offset=1,
startTime=1800) ;
Modelica.Blocks.Sources.Ramp TConIn(
height=10,
duration=60,
offset=273.15 + 30,
startTime=60) ;
Modelica.Blocks.Sources.Ramp TEvaIn(
height=10,
duration=60,
startTime=900,
offset=273.15 + 15) ;
equation
connect(souCon.ports[1], chi.port_a1);
connect(souEva.ports[1], chi.port_a2);
connect(chi.port_b1, sinCon.ports[1]);
connect(sinEva.ports[1], chi.port_b2);
connect(TConIn.y, souCon.T_in);
connect(TEvaIn.y, souEva.T_in);
connect(ySet.y, chi.ySet);
end LargeScaleWaterToWater;
Example for modular reversible chiller
Information
Example that simulates a chiller based on the modular reversible approach.
The chiller control signal is the compressor speed
ySet
and the mode coo
.
As the model contains internal safety controls, the
compressor set speed ySet
and actually applied
speed yMea
are plotted to show the influence of
the safety control.
The example further demonstrates how to redeclare the replaceable options
in the model approach
Buildings.Fluid.Chillers.ModularReversible.Modular.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Modelica definition
model Modular
extends Modelica.Icons.Example;
package MediumCon =
Buildings.Media.Air ;
package MediumEva =
Buildings.Media.Water ;
Buildings.Fluid.Chillers.ModularReversible.Modular chi(
redeclare package MediumCon = MediumCon,
redeclare package MediumEva = MediumEva,
use_rev=true,
allowDifferentDeviceIdentifiers=true,
QCoo_flow_nominal=-30000,
redeclare model RefrigerantCycleInertia =
Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Inertias.VariableOrder
(
refIneFreConst=1/300,
nthOrd=1,
initType=Modelica.Blocks.Types.Init.InitialState),
redeclare Buildings.Fluid.HeatPumps.ModularReversible.Controls.Safety.Data.Wuellhorst2021
safCtrPar(minOffTime=100, use_opeEnv=false),
TConCoo_nominal=313.15,
dpCon_nominal(displayUnit="Pa") = 6000,
use_conCap=false,
CCon=0,
GConOut=0,
GConIns=0,
TEvaCoo_nominal=278.15,
dTEva_nominal=5,
dTCon_nominal=5,
dpEva_nominal(displayUnit="Pa") = 6000,
use_evaCap=false,
CEva=0,
GEvaOut=0,
GEvaIns=0,
energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial,
show_T=true,
QHea_flow_nominal=30000,
redeclare model RefrigerantCycleChillerCooling =
Buildings.Fluid.Chillers.ModularReversible.RefrigerantCycle.ConstantCarnotEffectiveness
(etaCarnot_nominal=0.35),
redeclare model RefrigerantCycleChillerHeating =
Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.TableData2D (
redeclare Buildings.Fluid.HeatPumps.ModularReversible.RefrigerantCycle.Frosting.NoFrosting
iceFacCal, datTab=
Buildings.Fluid.HeatPumps.ModularReversible.Data.TableData2D.EN14511.Vitocal251A08()),
TEvaHea_nominal=303.15,
TConHea_nominal=298.15)
;
Buildings.Fluid.Sources.MassFlowSource_T souCon(
nPorts=1,
redeclare package Medium = MediumCon,
use_T_in=true,
m_flow=chi.mCon_flow_nominal,
T=298.15) ;
Buildings.Fluid.Sources.MassFlowSource_T souEva(
nPorts=1,
redeclare package Medium = MediumEva,
use_T_in=true,
m_flow=chi.mEva_flow_nominal,
T=291.15) ;
Buildings.Fluid.Sources.Boundary_pT sinCon(nPorts=1,
redeclare package Medium =
MediumCon) ;
Buildings.Fluid.Sources.Boundary_pT sinEva(nPorts=1,
redeclare package Medium =
MediumEva) ;
Modelica.Blocks.Sources.SawTooth ySet(
amplitude=-1,
period=500,
offset=1,
startTime=500) ;
Modelica.Blocks.Sources.Ramp TConIn(
height=10,
duration=60,
offset=273.15 + 30,
startTime=60) ;
Modelica.Blocks.Sources.Ramp TEvaIn(
height=10,
duration=60,
startTime=900,
offset=273.15 + 15) ;
Modelica.Blocks.Sources.BooleanStep chiCoo(startTime=2100, startValue=true)
;
equation
connect(souCon.ports[1], chi.port_a1);
connect(souEva.ports[1], chi.port_a2);
connect(chi.port_b1, sinCon.ports[1]);
connect(sinEva.ports[1], chi.port_b2);
connect(TConIn.y, souCon.T_in);
connect(TEvaIn.y, souEva.T_in);
connect(ySet.y, chi.ySet);
connect(chiCoo.y, chi.coo);
end Modular;