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

Collection of validation models

Information

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

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.Validation.ChillerLifts ChillerLifts Validation the calculation of the chiller lifts
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.Validation.IdentifyStage IdentifyStage Validation identifying stage index
Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.Validation.TimerWithReset TimerWithReset Validation model for the Timer block

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

Validation the calculation of the chiller lifts

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

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.ChillerLifts. It shows how to calculate current chiller lifts.

Modelica definition

model ChillerLifts "Validation the calculation of the chiller lifts" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.ChillerLifts chiLif( nChi=4, minChiLif={12,10,13,11}, maxChiLif={18,18,18,18}) "Average lifts of the enabled chillers"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant chi2[4](k={true,true,false,false}) "Chillers enabling status"; equation connect(chi2.y, chiLif.uChi); end ChillerLifts;

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

Validation identifying stage index

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

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.IdentifyStage. It shows how to identify the current chiller stage.

Modelica definition

model IdentifyStage "Validation identifying stage index" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.IdentifyStage ideSta "Idendify stage index"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.IdentifyStage ideSta1( nChi=3, staMat={{1,0,0},{1,1,0},{1,1,1}}) "Idendify stage index"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Not not2 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Not not3 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse chi1( final width=0.5, final period=5) "Chiller one status"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse chi2( final width=0.7, final period=5) "Chiller two status"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse chi3( final width=0.9, final period=5) "Chiller three status"; equation connect(chi1.y, ideSta.uChi[1]); connect(chi2.y, ideSta.uChi[2]); connect(chi3.y, not1.u); connect(chi1.y, not3.u); connect(chi2.y, not2.u); connect(not3.y, ideSta1.uChi[1]); connect(not2.y, ideSta1.uChi[2]); connect(not1.y, ideSta1.uChi[3]); end IdentifyStage;

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

Validation model for the Timer block

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

Information

Validation model for the block Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset.

Modelica definition

model TimerWithReset "Validation model for the Timer block" Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset noThr "Timer that do not compare threshold – No Reset"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset thrTim( final t=0.3) "Timer that compares threshold – No Reset"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset thrTim1( final t=0.3) "Timer that compares threshold – No Reset"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul( final width=0.7, final period=2) "Block that outputs cyclic on and off"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul1( final width=0.7, final period=2, final shift=-1) "Block that outputs cyclic on and off"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con(k=false) "Constant"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset noThrRes "Timer that do not compare threshold – With Reset"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset thrTimRes( final t=0.3) "Timer that compares threshold – With Reset"; Buildings.Controls.OBC.ASHRAE.G36.Plants.Chillers.Generic.TimerWithReset thrTim1Res( final t=0.3) "Timer that compares threshold – With Reset"; Buildings.Controls.OBC.CDL.Logical.Sources.SampleTrigger samTri( final period=1.5, shift=1.2) "Block that generates periodic reset signal"; Buildings.Controls.OBC.CDL.Logical.TrueFalseHold res( trueHoldDuration=0.01, falseHoldDuration=0) "Hold signal for plotting"; equation connect(booPul.y,noThr.u); connect(booPul.y,thrTim.u); connect(booPul1.y,thrTim1.u); connect(con.y, noThr.reset); connect(con.y, thrTim.reset); connect(con.y, thrTim1.reset); connect(samTri.y, noThrRes.reset); connect(booPul.y, noThrRes.u); connect(booPul.y, thrTimRes.u); connect(samTri.y, thrTimRes.reset); connect(samTri.y, thrTim1Res.reset); connect(booPul1.y, thrTim1Res.u); connect(samTri.y, res.u); end TimerWithReset;