Buildings.Templates.Components.Chillers.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.Templates.Components.Chillers.Validation.Compression Compression Validation model for compression chiller component

Buildings.Templates.Components.Chillers.Validation.Compression Buildings.Templates.Components.Chillers.Validation.Compression

Validation model for compression chiller component

Buildings.Templates.Components.Chillers.Validation.Compression

Information

This model validates the model Buildings.Templates.Components.Chillers.Compression in a configuration in which the chiller is exposed to a constant differential pressure and a varying return temperature.

The chiller model is configured to represent either an air-cooled chiller (component chiAirCoo) or a water-cooled chiller (component chiWatCoo).

Regarding the parameterization logic described in the documentation of Buildings.Templates.Components.Chillers.Compression: The air-cooled chiller component is parameterized using the specified design conditions (datChiAirCoo.use_datDes=true) and a direct assignment of the performance curves per.capFunT, per.EIRFunT and per.EIRFunPLR. The water-cooled chiller component is parameterized using the rating conditions specified in the redeclared performance record (datChiWatCoo.use_datDes=false) and no direct assignment of the design parameters.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Parameters

TypeNameDefaultDescription
replaceable package MediumLiqBuildings.Media.WaterCHW or CW medium
replaceable package MediumAirBuildings.Media.AirAir medium
ChillerdatChiAirCoodatChiAirCoo(final typ=chiAi...Air-cooled chiller parameters – Parameterization based on design conditions and direct assignment of performance curves
ChillerdatChiWatCoodatChiWatCoo(final typ=chiWa...Water-cooled chiller parameters – Parameterization based on rating conditions specified in the sub-record per
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state

Connectors

TypeNameDescription
replaceable package MediumLiqCHW or CW medium
replaceable package MediumAirAir medium

Modelica definition

model Compression "Validation model for compression chiller component" extends Modelica.Icons.Example; replaceable package MediumLiq=Buildings.Media.Water constrainedby Modelica.Media.Interfaces.PartialMedium "CHW or CW medium"; replaceable package MediumAir=Buildings.Media.Air constrainedby Modelica.Media.Interfaces.PartialMedium "Air medium"; parameter Modelica.Fluid.Types.Dynamics energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial "Type of energy balance: dynamic (3 initialization options) or steady state"; parameter Data.Chiller datChiAirCoo( final typ=chiAirCoo.typ, final use_datDes=true, mChiWat_flow_nominal=datChiAirCoo.cap_nominal / abs(datChiAirCoo.TChiWatSup_nominal - Buildings.Templates.Data.Defaults.TChiWatRet) / datChiAirCoo.cpChiWat_default, cap_nominal=750E3, COP_nominal=Buildings.Templates.Data.Defaults.COPChiAirCoo, dpChiWat_nominal=Buildings.Templates.Data.Defaults.dpChiWatChi, TChiWatSup_nominal=Buildings.Templates.Data.Defaults.TChiWatSup, TConEnt_nominal=Buildings.Templates.Data.Defaults.TOutChi, PLR_min=0.15, per( capFunT={0.0, 0.1, - 0.0023814154, 0.0628316481, - 0.0009644649, - 0.0011249224}, EIRFunT={0.0, 0.0071530312, - 0.0004553574, 0.0188175079, 0.0002623276, - 0.0012881189}, EIRFunPLR={- 5.497250E-01, 5.035076E-02, - 1.927855E-05, 1.678371E+00, - 1.535993E+00, - 4.944902E-02, 0.000000E+00, 1.396972E+00, 0.000000E+00, 0.000000E+00}, PLRMax=1.15, etaMotor=1.0)) "Air-cooled chiller parameters – Parameterization based on design conditions and direct assignment of performance curves"; parameter Buildings.Templates.Components.Data.Chiller datChiWatCoo( final typ=chiWatCoo.typ, final use_datDes=false, dpChiWat_nominal=Buildings.Templates.Data.Defaults.dpChiWatChi, dpCon_nominal=Buildings.Templates.Data.Defaults.dpConWatChi, redeclare Buildings.Fluid.Chillers.Data.ElectricReformulatedEIR.ReformEIRChiller_Trane_CVHE_1442kW_6_61COP_VSD per) "Water-cooled chiller parameters – Parameterization based on rating conditions specified in the sub-record per"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatSupSet( k=datChiAirCoo.TChiWatSup_nominal, y(final unit="K", displayUnit="degC")) "CHWST setpoint"; Buildings.Templates.Components.Chillers.Compression chiAirCoo( redeclare final package MediumChiWat=MediumLiq, redeclare final package MediumCon=MediumAir, final typ=Buildings.Templates.Components.Types.Chiller.AirCooled, show_T=true, final dat=datChiAirCoo, final energyDynamics=energyDynamics) "Air-cooled chiller"; Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable y1( table=[ 0, 0; 0.5, 1], timeScale=1000, period=3000) "Heat pump Enable signal"; Fluid.Sensors.TemperatureTwoPort TSup( redeclare final package Medium=MediumLiq, final m_flow_nominal=datChiAirCoo.mChiWat_flow_nominal) "Supply temperature"; Fluid.Sources.Boundary_pT supChiWat( redeclare final package Medium=MediumLiq, p=Buildings.Templates.Data.Defaults.pChiWat_rel_nominal + 101325, nPorts=2) "Boundary condition at distribution system supply"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin TChiWatRet( amplitude=(datChiAirCoo.TChiWatRet_nominal - datChiAirCoo.TChiWatSup_nominal) / 2, freqHz=2 / 3000, y(final unit="K", displayUnit="degC"), offset=datChiAirCoo.TChiWatSup_nominal +(datChiAirCoo.TChiWatRet_nominal - datChiAirCoo.TChiWatSup_nominal) / 2, startTime=0) "CHW return temperature value"; Fluid.Sources.Boundary_pT retChiWat( redeclare final package Medium=MediumLiq, p=supChiWat.p + chiAirCoo.dpChiWat_nominal, use_T_in=true, nPorts=1) "Boundary conditions of CHW at chiller inlet"; Fluid.Sensors.TemperatureTwoPort TRet( redeclare final package Medium=MediumLiq, final m_flow_nominal=datChiAirCoo.mChiWat_flow_nominal) "Return temperature"; Buildings.Templates.Components.Chillers.Compression chiWatCoo( redeclare final package MediumChiWat=MediumLiq, redeclare final package MediumCon=MediumLiq, final typ=Buildings.Templates.Components.Types.Chiller.WaterCooled, show_T=true, final dat=datChiWatCoo, have_dpChiWat=false, have_dpCon=false, final energyDynamics=energyDynamics) "Water-cooled chiller - CHW/CW pressure drops computed externally"; Fluid.Sensors.TemperatureTwoPort TRet2( redeclare final package Medium=MediumLiq, final m_flow_nominal=datChiAirCoo.mChiWat_flow_nominal) "Return temperature"; Fluid.Sensors.TemperatureTwoPort TSup2( redeclare final package Medium=MediumLiq, final m_flow_nominal=datChiAirCoo.mChiWat_flow_nominal) "Supply temperature"; Fluid.Sources.Boundary_pT supConWat( redeclare final package Medium=MediumLiq, p=retConWat.p + chiWatCoo.dpCon_nominal, T=datChiWatCoo.TConEnt_nominal, nPorts=1) "Boundary conditions of CW at chiller inlet"; Fluid.Sources.Boundary_pT retConWat( redeclare final package Medium=MediumLiq, p=Buildings.Templates.Data.Defaults.pChiWat_rel_nominal + 101325, nPorts=1) "Boundary condition of CW at chiller outlet"; Fluid.FixedResistances.PressureDrop resChiWat( redeclare final package Medium=MediumLiq, final m_flow_nominal=datChiWatCoo.mChiWat_flow_nominal, final dp_nominal=datChiWatCoo.dpChiWat_nominal) "CHW pressure drop computed externally"; Fluid.FixedResistances.PressureDrop resConWat( redeclare final package Medium=MediumLiq, final m_flow_nominal=datChiWatCoo.mCon_flow_nominal, final dp_nominal=datChiWatCoo.dpCon_nominal) "CW pressure drop computed externally"; Fluid.Sources.Boundary_pT sinAir( redeclare final package Medium=MediumAir, nPorts=1) "Air sink"; Fluid.Sources.MassFlowSource_T souAir( redeclare final package Medium=MediumAir, m_flow=datChiAirCoo.mCon_flow_nominal, T=datChiAirCoo.TConEnt_nominal, nPorts=1) "Air source"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin TChiWatRet1( amplitude=(datChiWatCoo.TChiWatRet_nominal - datChiWatCoo.TChiWatSup_nominal) / 2, freqHz=2 / 3000, y(final unit="K", displayUnit="degC"), offset=datChiWatCoo.TChiWatSup_nominal +(datChiAirCoo.TChiWatRet_nominal - datChiWatCoo.TChiWatSup_nominal) / 2, startTime=0) "CHW return temperature value"; Fluid.Sources.Boundary_pT retChiWat1( redeclare final package Medium=MediumLiq, p=supChiWat.p + chiAirCoo.dpChiWat_nominal, use_T_in=true, nPorts=1) "Boundary conditions of CHW at chiller inlet"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatSupSet1( k=datChiWatCoo.TChiWatSup_nominal, y(final unit="K", displayUnit="degC")) "CHWST setpoint"; protected Interfaces.Bus bus "Chiller control bus"; Interfaces.Bus bus2 "Chiller control bus"; initial equation Modelica.Utilities.Streams.print("Coef at rating conditions = " + String(Buildings.Utilities.Math.Functions.biquadratic( a=datChiWatCoo.per.capFunT, x1=Modelica.Units.Conversions.to_degC(datChiWatCoo.per.TEvaLvg_nominal), x2=Modelica.Units.Conversions.to_degC(datChiWatCoo.per.TConLvg_nominal)))); equation connect(TSup.port_b, supChiWat.ports[1]); connect(y1.y[1], bus.y1); connect(bus, chiAirCoo.bus); connect(retChiWat.ports[1], TRet.port_a); connect(TSup2.port_b, supChiWat.ports[2]); connect(bus2, chiWatCoo.bus); connect(y1.y[1], bus2.y1); connect(TRet2.port_b, resChiWat.port_a); connect(supConWat.ports[1], resConWat.port_a); connect(TRet.port_b, chiAirCoo.port_a2); connect(chiAirCoo.port_b2, TSup.port_a); connect(chiWatCoo.port_b2, TSup2.port_a); connect(resChiWat.port_b, chiWatCoo.port_a2); connect(resConWat.port_b, chiWatCoo.port_a1); connect(chiWatCoo.port_b1, retConWat.ports[1]); connect(TChiWatRet.y, retChiWat.T_in); connect(TChiWatSupSet.y, bus.TSupSet); connect(sinAir.ports[1], chiAirCoo.port_b1); connect(souAir.ports[1], chiAirCoo.port_a1); connect(TChiWatRet1.y, retChiWat1.T_in); connect(retChiWat1.ports[1], TRet2.port_a); connect(TChiWatSupSet1.y, bus2.TSupSet); end Compression;