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

Collection of validation models

Information

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

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.Validation.Controller Controller Validates the waterside economizer enable-disable controller

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

Validates the waterside economizer enable-disable controller

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

Information

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

Modelica definition

model Controller "Validates the waterside economizer enable-disable controller" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller wseSta(TOutWetDes(displayUnit="degC")) "Waterside economizer enable status sequence"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller wseSta1 "Waterside economizer enable status sequence"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller wseSta2 "Waterside economizer enable status sequence"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Economizers.Controller wseSta3( final have_byPasValCon=false, TOutWetDes(displayUnit="degC")) "Waterside economizer enable status sequence"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin dpWSE( final amplitude=3000, freqHz=1/3600, final offset=4500) "Static pressure difference across chilled water side economizer"; protected parameter Real TOutWetBul( final unit="K", final quantity="ThermodynamicTemperature", displayUnit="degC")=283.15 "Average outdoor air wet bulb temperature"; parameter Real TChiWatRet( final unit="K", final quantity="ThermodynamicTemperature", displayUnit="degC")=293.15 "Chilled water retun temperature upstream of the WSE"; parameter Real TWseOut( final unit="K", final quantity="ThermodynamicTemperature", displayUnit="degC")=290.15 "Chilled water retun temperature downstream of the WSE"; parameter Real VChiWat_flow( final unit="m3/s", final quantity="VolumeFlowRate", displayUnit="m3/s")=0.01 "Measured chilled water return temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant chiWatFlow( final k=VChiWat_flow) "Chilled water flow"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse TOutWetSig( final amplitude=5, final period=2*15*60, final offset=TOutWetBul) "Measured outdoor air wet bulb temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant constTowFanSig( final k=1) "Cooling tower fan full load signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetSig( final k=TChiWatRet) "Chilled water return temperature upstream of WSE"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetDow( final k=TWseOut) "Chilled water return temperature downstream of WSE"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant chiWatFlow1( final k=VChiWat_flow) "Chilled water flow"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOutWetSig1( final k=TOutWetBul) "Measured outdoor air wet bulb temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant constTowFanSig1( final k=1) "Cooling tower fan full load signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetSig1( final k=TChiWatRet) "Chilled water return temperature upstream of WSE"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin TChiWatRetDow1( final offset=TWseOut, final freqHz=1/1800, final amplitude=4) "Chilled water return temperature downstream of WSE"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant chiWatFlow2( final k=VChiWat_flow) "Chilled water flow"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse TOutWetSig2( final amplitude=5, final period=2*15*60, final offset=TOutWetBul) "Measured outdoor air wet bulb temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant constTowFanSig2( final k=1) "Cooling tower fan full load signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetSig2( final k=TChiWatRet) "Chilled water return temperature upstream of WSE"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin TChiWatRetDow3( final offset=TWseOut, final freqHz=1/1800, final amplitude=4) "Chilled water return temperature downstream of WSE"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt( final k=0) "Stage 0"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt1( final k=2) "Stage 0"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con( final k=true) "Enabled plant"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant chiWatFlow3( final k=VChiWat_flow) "Chilled water flow"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant constTowFanSig3( final k=1) "Cooling tower fan full load signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetSig3( final k=TChiWatRet) "Chilled water return temperature upstream of WSE"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TChiWatRetDow2( final k=TWseOut) "Chilled water return temperature downstream of WSE"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOutWetSig3( final k=292.15) "Measured outdoor air wet bulb temperature"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul( final width=0.1, final period=3600) "Enabled plant"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt2( final k=0) "Stage 0"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TEntHex( final height=3, final duration=3600, final offset=290.15) "Return chilled water temperature entering heat exchanger"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con1[2]( final k=fill(true, 2)) "Enabled chiller chilled water isolation valves"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con3[2]( final k=fill(true, 2)) "Enabled chiller chilled water isolation valves"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant con2[2](k=fill(1, 2)) "Chiller chilled water isolation valve positions"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant con4[2](k=fill(1, 2)) "Chiller chilled water isolation valve positions"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con5(final k=false) "Not in process"; equation connect(constTowFanSig.y, wseSta.uTowFanSpeMax); connect(TOutWetSig.y, wseSta.TOutWet); connect(TChiWatRetSig.y, wseSta.TChiWatRet); connect(chiWatFlow.y, wseSta.VChiWat_flow); connect(TChiWatRetDow.y,wseSta.TChiWatRetDow); connect(constTowFanSig1.y, wseSta1.uTowFanSpeMax); connect(TOutWetSig1.y, wseSta1.TOutWet); connect(TChiWatRetSig1.y, wseSta1.TChiWatRet); connect(chiWatFlow1.y, wseSta1.VChiWat_flow); connect(TChiWatRetDow1.y,wseSta1.TChiWatRetDow); connect(constTowFanSig2.y, wseSta2.uTowFanSpeMax); connect(TOutWetSig2.y,wseSta2. TOutWet); connect(TChiWatRetSig2.y,wseSta2. TChiWatRet); connect(chiWatFlow2.y,wseSta2. VChiWat_flow); connect(wseSta2.TChiWatRetDow, TChiWatRetDow3.y); connect(con.y, wseSta.uPla); connect(con.y, wseSta1.uPla); connect(con.y, wseSta2.uPla); connect(conInt.y, wseSta.uIni); connect(conInt.y, wseSta1.uIni); connect(conInt.y, wseSta2.uIni); connect(conInt1.y, wseSta.uChiSta); connect(conInt1.y, wseSta1.uChiSta); connect(conInt1.y, wseSta2.uChiSta); connect(dpWSE.y, wseSta.dpChiWat); connect(dpWSE.y, wseSta1.dpChiWat); connect(dpWSE.y, wseSta2.dpChiWat); connect(TOutWetSig3.y, wseSta3.TOutWet); connect(TChiWatRetSig3.y, wseSta3.TChiWatRet); connect(TChiWatRetDow2.y, wseSta3.TChiWatRetDow); connect(chiWatFlow3.y, wseSta3.VChiWat_flow); connect(constTowFanSig3.y, wseSta3.uTowFanSpeMax); connect(conInt2.y, wseSta3.uIni); connect(booPul.y, not1.u); connect(not1.y, wseSta3.uPla); connect(not1.y, wseSta3.uPum); connect(TEntHex.y, wseSta3.TEntHex); connect(conInt2.y, wseSta3.uChiSta); connect(con1.y, wseSta.u1ChiIsoVal); connect(con1.y, wseSta1.u1ChiIsoVal); connect(con1.y, wseSta2.u1ChiIsoVal); connect(con2.y, wseSta.uChiIsoVal); connect(con2.y, wseSta1.uChiIsoVal); connect(con2.y, wseSta2.uChiIsoVal); connect(con3.y, wseSta3.u1ChiIsoVal); connect(con4.y, wseSta3.uChiIsoVal); connect(con5.y, wseSta3.uStaPro); end Controller;