Buildings.Experimental.DHC.Plants.Combined.Validation
Package with validation models
Information
This package contains validation models.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name | Description |
---|---|
AllElectricCWStorage | Validation of all-electric plant model |
Buildings.Experimental.DHC.Plants.Combined.Validation.AllElectricCWStorage
Validation of all-electric plant model
Information
This model validates Buildings.Experimental.DHC.Plants.Combined.AllElectricCWStorage over a four-day simulation period where the load profile is characterized by high cooling loads and low heating loads during the first day, concomitant high cooling and heating loads during the second day, low cooling loads and high heating loads during the third day, and no cooling loads (cooling disabled) and high heating loads during the last day.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
---|---|---|---|
replaceable package Medium | Buildings.Media.Water | Main medium (common to CHW, HW and CW) | |
replaceable package MediumConWatCoo | Buildings.Media.Water | Medium in cooler circuit | |
Generic | datHeaPum | datHeaPum(dpHeaLoa_nominal=5... | Heat pump parameters (each unit) |
CHW loop and cooling-only chillers | |||
ReformEIRChiller_Carrier_19XR_1403kW_7_09COP_VSD | datChi | datChi(EIRFunT={0.0101739374... | Chiller parameters (each unit) |
HW loop and heat recovery chillers | |||
Generic | datChiHea | datChi | Chiller parameters (each unit) |
Dynamics | |||
Conservation equations | |||
Dynamics | energyDynamics | Modelica.Fluid.Types.Dynamic... | Type of energy balance: dynamic (3 initialization options) or steady state |
Connectors
Type | Name | Description |
---|---|---|
replaceable package Medium | Main medium (common to CHW, HW and CW) | |
replaceable package MediumConWatCoo | Medium in cooler circuit |
Modelica definition
model AllElectricCWStorage "Validation of all-electric plant model"
extends Modelica.Icons.Example;
replaceable package Medium=Buildings.Media.Water
constrainedby Modelica.Media.Interfaces.PartialMedium
"Main medium (common to CHW, HW and CW)";
replaceable package MediumConWatCoo=Buildings.Media.Water
constrainedby Modelica.Media.Interfaces.PartialMedium
"Medium in cooler circuit";
replaceable parameter Fluid.Chillers.Data.ElectricReformulatedEIR.ReformEIRChiller_Carrier_19XR_1403kW_7_09COP_VSD
datChi(
EIRFunT={0.0101739374, 0.0607200115, 0.0003348647, 0.003162578, 0.0002388594, -0.0014121289},
capFunT={0.0387084662, 0.2305017927, 0.0004779504, 0.0178244359, -8.48808e-05, -0.0032406711},
EIRFunPLR={0.4304252832, -0.0144718912, 5.12039e-05, -0.7562386674, 0.5661683373,
0.0406987748, 3.0278e-06, -0.3413411197, -0.000469572, 0.0055009208},
QEva_flow_nominal=-1E6,
COP_nominal=2.5,
mEva_flow_nominal=-datChi.QEva_flow_nominal/5/4186,
mCon_flow_nominal=-datChi.QEva_flow_nominal * (1 + 1/datChi.COP_nominal) / 10 / 4186,
TEvaLvg_nominal=279.15,
TEvaLvgMin=277.15,
TEvaLvgMax=308.15,
TConLvg_nominal=333.15,
TConLvgMin=296.15,
TConLvgMax=336.15)
constrainedby Buildings.Fluid.Chillers.Data.BaseClasses.Chiller
"Chiller parameters (each unit)";
replaceable parameter Fluid.Chillers.Data.ElectricReformulatedEIR.Generic datChiHea=
datChi
constrainedby Buildings.Fluid.Chillers.Data.BaseClasses.Chiller
"Chiller parameters (each unit)";
replaceable parameter Fluid.HeatPumps.Data.EquationFitReversible.Generic datHeaPum(
dpHeaLoa_nominal=50000,
dpHeaSou_nominal=100,
hea(
mLoa_flow=datHeaPum.hea.Q_flow / 10 / 4186,
mSou_flow=1E-4 * datHeaPum.hea.Q_flow,
Q_flow=1E6,
P=datHeaPum.hea.Q_flow / 2.2,
coeQ={-5.64420084, 1.95212447, 9.96663913, 0.23316322, -5.64420084},
coeP={-3.96682255, 6.8419453, 1.99606939, 0.01393387, -3.96682255},
TRefLoa=298.15,
TRefSou=253.15),
coo(
mLoa_flow=0,
mSou_flow=0,
Q_flow=-1,
P=0,
coeQ=fill(0, 5),
coeP=fill(0, 5),
TRefLoa=273.15,
TRefSou=273.15))
"Heat pump parameters (each unit)";
// Assumptions
parameter Modelica.Fluid.Types.Dynamics energyDynamics=
Modelica.Fluid.Types.Dynamics.FixedInitial
"Type of energy balance: dynamic (3 initialization options) or steady state";
Buildings.Experimental.DHC.Plants.Combined.AllElectricCWStorage pla(
redeclare final package Medium = Medium,
redeclare package MediumHea_b = Medium,
redeclare final package MediumConWatCoo = MediumConWatCoo,
allowFlowReversal=true,
dpConWatCooFri_nominal=1E4,
mAirCooUni_flow_nominal=pla.mConWatCoo_flow_nominal/pla.nCoo/1.45,
TWetBulCooEnt_nominal=297.05,
PFanCoo_nominal=340*pla.mConWatCoo_flow_nominal/pla.nCoo,
chi(show_T=true),
chiHea(show_T=true),
heaPum(show_T=true),
final datChi=datChi,
final datChiHea=datChiHea,
final datHeaPum=datHeaPum,
nChi=2,
dpChiWatSet_max=20E4,
nChiHea=2,
dpHeaWatSet_max=20E4,
nHeaPum=2,
dInsTan=0.05,
nCoo=3,
final energyDynamics=energyDynamics)
"CHW and HW plant";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatSupSet(final k=pla.TChiWatSup_nominal,
y(final unit="K", displayUnit="degC"))
"Source signal for setpoint";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant THeaWatSupSet(final k=pla.THeaWatSup_nominal,
y(final unit="K", displayUnit="degC"))
"Source signal for setpoint";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant dpHeaWatSet_max(
k=pla.dpHeaWatSet_max,
y(final unit="Pa")) "Source signal for setpoint";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant dpChiWatSet_max(
k=pla.dpChiWatSet_max,
y(final unit="Pa")) "Source signal for setpoint";
BoundaryConditions.WeatherData.ReaderTMY3 weaDat(filNam=
Modelica.Utilities.Files.loadResource("modelica://Buildings/Resources/weatherdata/USA_CA_San.Francisco.Intl.AP.724940_TMY3.mos"))
"Outdoor conditions";
Fluid.HeatExchangers.SensibleCooler_T disHeaWat(
redeclare final package Medium = Medium,
final m_flow_nominal=pla.mHeaWat_flow_nominal,
final dp_nominal=0,
final energyDynamics=energyDynamics,
tau=300)
"Distribution system approximated by prescribed return temperature";
Fluid.HeatExchangers.Heater_T disChiWat(
redeclare final package Medium = Medium,
final m_flow_nominal=pla.mChiWat_flow_nominal,
show_T=true,
final dp_nominal=0,
final energyDynamics=energyDynamics,
tau=300)
"Distribution system approximated by prescribed return temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant THeaWatRet(k=pla.THeaWatRet_nominal,
y(final unit="K", displayUnit="degC"))
"Source signal for HW return temperature";
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRet(k=pla.TChiWatRet_nominal,
y(final unit="K", displayUnit="degC"))
"Source signal for CHW return temperature";
Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable u1(
table=[0,0,0; 4,1,1; 72,0,1; 96,0,0],
timeScale=3600,
period=96*3600) "Plant enable signal: y[1] for cooling, y[2] for heating";
Fluid.Actuators.Valves.TwoWayPressureIndependent valDisHeaWat(
redeclare final package Medium = Medium,
m_flow_nominal=pla.mHeaWat_flow_nominal,
dpValve_nominal=1E4,
dpFixed_nominal=pla.dpHeaWatSet_max - valDisHeaWat.dpValve_nominal)
"Distribution system approximated by variable flow resistance";
Fluid.Actuators.Valves.TwoWayPressureIndependent valDisChiWat(
redeclare final package Medium = Medium,
m_flow_nominal=pla.mChiWat_flow_nominal,
dpValve_nominal=1E4,
dpFixed_nominal=pla.dpChiWatSet_max - valDisChiWat.dpValve_nominal)
"Distribution system approximated by variable flow resistance";
Buildings.Controls.OBC.CDL.Reals.Sources.TimeTable ratFlo(table=[0,0,0;
6,0,0; 10,0.3,0.1; 15,1,0.1; 24,0.1,0.1; 30,0.1,1; 39,1,0.3; 48,0.1,0.1;
54,0.1,1; 63,0.1,0.3; 72,0,0; 78,0,1; 96,0,0],
timeScale=3600)
"Source signal: y[1] for cooling load, y[2] for heating load";
equation
connect(TChiWatSupSet.y, pla.TChiWatSupSet);
connect(THeaWatSupSet.y, pla.THeaWatSupSet);
connect(dpChiWatSet_max.y, pla.dpChiWatSet);
connect(dpHeaWatSet_max.y, pla.dpHeaWatSet);
connect(weaDat.weaBus, pla.weaBus);
connect(pla.port_bSerHea, disHeaWat.port_a);
connect(pla.port_bSerCoo, disChiWat.port_a);
connect(THeaWatRet.y, disHeaWat.TSet);
connect(TChiWatRet.y, disChiWat.TSet);
connect(u1.y[1], pla.u1Coo);
connect(disHeaWat.port_b, valDisHeaWat.port_a);
connect(valDisHeaWat.port_b, pla.port_aSerHea);
connect(disChiWat.port_b, valDisChiWat.port_a);
connect(valDisChiWat.port_b, pla.port_aSerCoo);
connect(ratFlo.y[2], valDisHeaWat.y);
connect(ratFlo.y[1], valDisChiWat.y);
connect(u1.y[2], pla.u1Hea);
end AllElectricCWStorage;