Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.

Note that most validation models contain simple input data which may not be realistic, but for which the correct output can be obtained through an analytic solution. The examples plot various outputs, which have been verified against these solutions. These model outputs are stored as reference data and used for continuous validation whenever models in the library change.

Package Content

Name Description
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.BypassValve BypassValve Validate the control of inline valve
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.HeatExchangerPump HeatExchangerPump Validate the control of heat exchanger pump
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.PredictedOutletTemperature PredictedOutletTemperature Validate water side economizer outlet temperature prediction
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.Tuning_uEcoSta_uTowFanSpeMax Tuning_uEcoSta_uTowFanSpeMax Validate water side economizer tuning parameter sequence

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.BypassValve Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.BypassValve

Validate the control of inline valve

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.BypassValve

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.BypassValve.

The validation shows that when the plant is enabled in waterside mode (uPla=true and uWSE=true):

If the economizer is disabled (uWSE=false), the condenser water isolation valve to the heat exchanger should be fully closed, and the return line valve should be disabled in the fully open position.

Modelica definition

model BypassValve "Validate the control of inline valve" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.BypassValve wseVal( final Ti=10) "Chilled water return line in-line valve control"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ecoSta( final width=0.8, final period=3600) "Water side economizer enable/disable status"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse dpWSE( final amplitude=3000, final period=3600, final offset=4500) "Static pressure difference across chilled water side economizer"; Buildings.Controls.OBC.CDL.Logical.Not not2 "Plant enable"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse enaPla( final width=0.2, final period=3600) "Enabled plant"; equation connect(ecoSta.y, wseVal.uWSE); connect(dpWSE.y, wseVal.dpChiWat); connect(enaPla.y, not2.u); connect(not2.y, wseVal.uPla); end BypassValve;

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.HeatExchangerPump Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.HeatExchangerPump

Validate the control of heat exchanger pump

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.HeatExchangerPump

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.HeatExchangerPump. It demonstrates the process of controlling the heat exchanger pump in the following scenarios:

Modelica definition

model HeatExchangerPump "Validate the control of heat exchanger pump" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.HeatExchangerPump wsePum "Economizer heat exchanger pump control"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ecoSta( final width=0.8, final period=3600) "Water side economizer enable/disable status"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp entWSETem( final height=6, final duration=3600, final offset=285.15) "Economizer upstream chilled water temperature"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse pumOn( final width=0.8, final period=3600) "Pump proven on"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp entHexTem( final height=8, final duration=3600, final offset=283.15) "Entering heat exchanger return chilled water temperature"; Buildings.Controls.OBC.CDL.Logical.Not not2 "Plant enable"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse enaPla( final width=0.2, final period=3600) "Enabled plant"; CDL.Logical.Sources.Constant notInPro(final k=false) "Not in staging process"; equation connect(ecoSta.y,wsePum. uWSE); connect(pumOn.y, wsePum.uPum); connect(entWSETem.y, wsePum.TEntWSE); connect(entHexTem.y, wsePum.TEntHex); connect(enaPla.y, not2.u); connect(not2.y, wsePum.uPla); connect(notInPro.y, wsePum.uStaPro); end HeatExchangerPump;

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.PredictedOutletTemperature Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.PredictedOutletTemperature

Validate water side economizer outlet temperature prediction

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.PredictedOutletTemperature

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.PredictedOutletTemperature.

Parameters

TypeNameDefaultDescription
RealaveTWetBul288.15Chilled water supply set temperature [K]
RealaveVChiWat_flow0.01Average measured chilled water return temperature [m3/s]

Modelica definition

model PredictedOutletTemperature "Validate water side economizer outlet temperature prediction" parameter Real aveTWetBul( final unit="K", final quantity="ThermodynamicTemperature", displayUnit="degC")=288.15 "Chilled water supply set temperature"; parameter Real aveVChiWat_flow( final unit="m3/s", final quantity="VolumeFlowRate", displayUnit="m3/s")=0.01 "Average measured chilled water return temperature"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.PredictedOutletTemperature wseTOut "Waterside economizer outlet temperature prediction"; protected Buildings.Controls.OBC.CDL.Reals.Sources.Sin TOutWetSig( final amplitude=2, final freqHz=1/600, final offset=aveTWetBul) "Measured outdoor air wet bulb temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin chiWatFlow( final freqHz=1/600, final offset=aveVChiWat_flow, final amplitude=0.002) "Chilled water flow"; Buildings.Controls.OBC.CDL.Discrete.Sampler sam1( final samplePeriod=60) "Sampler"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp ram( final offset=-0.2, final height=0.7, final duration=2100) "Ramp"; equation connect(ram.y, sam1.u); connect(sam1.y, wseTOut.uTunPar); connect(TOutWetSig.y, wseTOut.TOutWet); connect(chiWatFlow.y, wseTOut.VChiWat_flow); end PredictedOutletTemperature;

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.Tuning_uEcoSta_uTowFanSpeMax Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.Tuning_uEcoSta_uTowFanSpeMax

Validate water side economizer tuning parameter sequence

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Validation.Tuning_uEcoSta_uTowFanSpeMax

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Tuning.

Modelica definition

model Tuning_uEcoSta_uTowFanSpeMax "Validate water side economizer tuning parameter sequence" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Tuning wseTun "Tests tuning parameter increase due to a dip in tower fan speed"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Tuning wseTun1 "Tests tuning parameter remains constant inspite of a dip in tower fan speed due to the prolonged WSE on status"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Tuning wseTun2 "Tests tuning parameter decrease due to WSE being on for a long time before disable"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Tuning wseTun3 "Tests tuning parameter remains constant despite of a dip in tower fan speed due to the prolonged WSE on status"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Subsequences.Tuning wseTun4 "Tests anti-windup"; protected Buildings.Controls.OBC.CDL.Logical.Timer tim "Timer"; Buildings.Controls.OBC.CDL.Reals.GreaterThreshold greThr1( final t=7e4) "Greater than"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con( final k=true) "Constant"; Buildings.Controls.OBC.CDL.Logical.Switch logSwi "Logical switch"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ecoSta( final width=0.5, final period=2*55*60) "Water side economizer enable/disable status"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant maxTowFanSpeSig0( final k=1) "Maximum cooling tower fan speed signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant maxTowFanSpeSig2( final k=1) "Maximum cooling tower fan speed signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant maxTowFanSig1( final k=1) "Cooling tower fan full load signal"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ecoSta1( final width=0.5, final period=2*16*60) "Water side economizer enable/disable status"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin cooTowFanSta1( final amplitude=0.2, final offset=1.1, final freqHz=1/(80*60), final phase=3.1415926535898) "Cooling tower fan speed status signal"; Buildings.Controls.OBC.CDL.Reals.Min min1 "Minimum"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ecoSta2( final width=0.5, final period=2*65*60) "Water side economizer enable/disable status"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ecoSta3( final width=0.5, final period=2*20*60) "Water side economizer enable/disable status"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant maxTowFanSpeSig3( final k=1) "Maximum cooling tower fan speed signal"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ecoSta4( final width=0.5, final period=2*20*60) "Water side economizer enable/disable status"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant maxTowFanSpeSig1( final k=1) "Maximum cooling tower fan speed signal"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ecoSta5( final width=0.5, final period=2*65*60) "Water side economizer enable/disable status"; equation connect(ecoSta.y,wseTun.uWseSta); connect(maxTowFanSig1.y, min1.u1); connect(cooTowFanSta1.y, min1.u2); connect(min1.y, wseTun1.uTowFanSpeMax); connect(ecoSta1.y,wseTun1.uWseSta); connect(ecoSta2.y,wseTun2.uWseSta); connect(maxTowFanSpeSig2.y, wseTun2.uTowFanSpeMax); connect(maxTowFanSpeSig0.y, wseTun.uTowFanSpeMax); connect(ecoSta3.y,wseTun3.uWseSta); connect(wseTun3.uTowFanSpeMax, maxTowFanSpeSig3.y); connect(maxTowFanSpeSig1.y, wseTun4.uTowFanSpeMax); connect(con.y, tim.u); connect(tim.y, greThr1.u); connect(greThr1.y, logSwi.u2); connect(ecoSta5.y, logSwi.u1); connect(ecoSta4.y, logSwi.u3); connect(logSwi.y, wseTun4.uWseSta); end Tuning_uEcoSta_uTowFanSpeMax;