Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation

Collection of validation models

Information

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

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.Generic.PlantEnable.Validation.DisableChillers DisableChillers Validation sequence for disabling chillers and the associated devices
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.Enable Enable Validation sequence for enabling and disabling chiller plant
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.EnableDevices EnableDevices Validation sequence for enabling plant devices

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.DisableChillers Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.DisableChillers

Validation sequence for disabling chillers and the associated devices

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.DisableChillers

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.DisableChillers. It demonstrates the control of disabling plants from chiller mode (disPlaFroChi).

Modelica definition

model DisableChillers "Validation sequence for disabling chillers and the associated devices" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.DisableChillers disPlaFroChi(have_WSE=false) "Disable plant from chiller mode"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant staPro( final k=false) "Staging change process"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant chiIsoVal[2]( final k={true,false}) "Chilled water isolation valve"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant conIsoVal1[2]( final k={1,0}) "Condenser water isolation valve"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant pumSpe(final k=0.75) "Pumps speed"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse chiSta[2]( final width={0.5,0.01}, final period={3600,7200}, shift={0,-100}) "Chiller status"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant conIsoValSta[2]( final k={true,false}) "Condenser water isolation valve commanded setpoint"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant watPum[2]( final k={true,false}) "Water pump commanded setpoint"; equation connect(chiSta.y, disPlaFroChi.uChi); connect(chiSta.y, disPlaFroChi.uChiWatReq); connect(chiSta.y, disPlaFroChi.uConWatReq); connect(staPro.y, disPlaFroChi.chaPro); connect(watPum.y, disPlaFroChi.uConWatPum); connect(pumSpe.y, disPlaFroChi.uChiWatPumSpe); connect(pumSpe.y, disPlaFroChi.uConWatPumSpe); connect(watPum.y, disPlaFroChi.uChiWatPum); connect(conIsoValSta.y, disPlaFroChi.u1ConWatIsoVal); connect(conIsoVal1.y, disPlaFroChi.uConWatIsoVal); connect(chiIsoVal.y, disPlaFroChi.u1ChiWatIsoVal); connect(conIsoVal1.y, disPlaFroChi.uChiWatIsoVal); end DisableChillers;

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.Enable Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.Enable

Validation sequence for enabling and disabling chiller plant

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.Enable

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Enable. It shows different conditions to enable and disable the plant.

Parameters

TypeNameDefaultDescription
RealaveTWetBul288.15Chilled water supply set temperature [K]

Modelica definition

model Enable "Validation sequence for enabling and disabling chiller plant" parameter Real aveTWetBul( final unit="K", final quantity="ThermodynamicTemperature", displayUnit="degC")=288.15 "Chilled water supply set temperature"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Enable disPlaSch( ignReq=1) "Disable plant without waterside economizer, due to schedule"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Enable disPlaReq( ignReq=1) "Disable plant without waterside economizer, due to lack of request"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Enable disPlaOutTem "Disable plant without waterside economizer, due to low outdoor temperature"; protected Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt( final k=3) "Chiller plant requests above the number of ignored requests"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant conOutTem( final k=293.15) "Constant outdoor temperature above lockout"; Buildings.Controls.OBC.CDL.Reals.Sources.TimeTable chiPlaReq2( final table=[0,1; 6.5*3600,1; 9*3600,2; 9*3600 + 600,0; 19*3600,0; 24*3600,1], final smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments) "Number of chiller plant request"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 "Convert real input to integer output"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant conOutTem1( final k=282.15) "Constant outdoor temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.TimeTable chiPlaReq3( final table=[0,1; 6.5*3600,1; 9*3600,2; 14*3600,3; 19*3600,3; 24*3600,1], final smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments) "Number of chiller plant request"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt3 "Convert real input to integer output"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin outTem1( final amplitude=7.5, final freqHz=1/(24*3600), final offset=275.15) "Outdoor temperature"; Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTab( table=[0,0; 10,1; 19,0; 24,0], timeScale=3600, period=24*3600) "Plant enable schedule"; Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTab1( table=[0,0; 6,1; 19,0; 24,0], timeScale=3600, period=24*3600) "Plant enable schedule"; Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTab2( table=[0,0; 1,1; 19,0; 24,0], timeScale=3600, period=24*3600) "Plant enable schedule"; equation connect(conOutTem.y, disPlaSch.TOut); connect(chiPlaReq2.y[1], reaToInt2.u); connect(reaToInt2.y, disPlaReq.chiPlaReq); connect(conOutTem1.y, disPlaReq.TOut); connect(chiPlaReq3.y[1], reaToInt3.u); connect(reaToInt3.y, disPlaOutTem.chiPlaReq); connect(outTem1.y, disPlaOutTem.TOut); connect(conInt.y, disPlaSch.chiPlaReq); connect(booTimTab.y[1], disPlaSch.uPlaSchEna); connect(booTimTab1.y[1], disPlaReq.uPlaSchEna); connect(booTimTab2.y[1], disPlaOutTem.uPlaSchEna); end Enable;

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.EnableDevices Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.EnableDevices

Validation sequence for enabling plant devices

Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.Validation.EnableDevices

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.EnableDevices. It shows how to control devices when the plant is just enabled.

Modelica definition

model EnableDevices "Validation sequence for enabling plant devices" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.PlantEnable.EnableDevices enaDev "Enable valves and pumps"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul( final width=0.1, final period=4000) "Enabled plant"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt( final k=1) "Stage 1, meaning it stages in chiller mode"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( final width=0.3, final period=4000) "Proven on pumps"; Buildings.Controls.OBC.CDL.Logical.Not not2 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con( final k=false) "Disabled pump"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant conInt1(final k=2) "Stage 2"; Buildings.Controls.OBC.CDL.Integers.Switch intSwi "Current stage"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul2( final width=0.7, final period=4000) "Change stage"; equation connect(booPul.y, not1.u); connect(not1.y, enaDev.uPla); connect(conInt.y, enaDev.uIni); connect(booPul1.y, not2.u); connect(not2.y, enaDev.uChiWatPum[1]); connect(not2.y, enaDev.uConWatPum[1]); connect(con.y, enaDev.uChiWatPum[2]); connect(con.y, enaDev.uConWatPum[2]); connect(booPul2.y, intSwi.u2); connect(conInt.y, intSwi.u1); connect(conInt1.y, intSwi.u3); connect(intSwi.y, enaDev.uChiSta); end EnableDevices;