Buildings.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
Buildings.DHC.Plants.Combined.Validation.AllElectricCWStorage AllElectricCWStorage Validation of all-electric plant model

Buildings.DHC.Plants.Combined.Validation.AllElectricCWStorage Buildings.DHC.Plants.Combined.Validation.AllElectricCWStorage

Validation of all-electric plant model

Buildings.DHC.Plants.Combined.Validation.AllElectricCWStorage

Information

This model validates Buildings.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

TypeNameDefaultDescription
replaceable package MediumBuildings.Media.WaterMain medium (common to CHW, HW and CW)
replaceable package MediumConWatCooBuildings.Media.WaterMedium in cooler circuit
GenericdatHeaPumdatHeaPum(dpHeaLoa_nominal=5...Heat pump parameters (each unit)
CHW loop and cooling-only chillers
ReformEIRChiller_Carrier_19XR_1403kW_7_09COP_VSDdatChidatChi(EIRFunT={0.0101739374...Chiller parameters (each unit)
HW loop and heat recovery chillers
GenericdatChiHeadatChiChiller parameters (each unit)
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state

Connectors

TypeNameDescription
replaceable package MediumMain medium (common to CHW, HW and CW)
replaceable package MediumConWatCooMedium 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.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;