Buildings.Templates.Plants.Controls.Utilities.Validation

Collection of validation models

Information

This package contains validation models.

Package Content

Name Description
Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateLogical ConcatenateLogical Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateParameterLogical ConcatenateParameterLogical Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateSelectLogical ConcatenateSelectLogical Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.CountTrue CountTrue Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.FirstTrueIndex FirstTrueIndex Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.HoldReal HoldReal Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.LastTrueIndex LastTrueIndex Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.MultiMaxInteger MultiMaxInteger Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.MultiMinInteger MultiMinInteger Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderInteger PlaceholderInteger Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderLogical PlaceholderLogical Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderReal PlaceholderReal Validation model
Buildings.Templates.Plants.Controls.Utilities.Validation.StageIndex StageIndex  
Buildings.Templates.Plants.Controls.Utilities.Validation.TrueArrayConditional TrueArrayConditional  

Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateLogical Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateLogical

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateLogical

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.ConcatenateLogical.

Modelica definition

model ConcatenateLogical "Validation model" Buildings.Templates.Plants.Controls.Utilities.ConcatenateLogical catApp( nin1=2, is_app=true, nin2=1) "Append to input array"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con[2](k={false, true}) "Constant array"; Buildings.Templates.Plants.Controls.Utilities.ConcatenateLogical catPre( nin1=2, is_app=false, nin2=1) "Prepend to input array"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con1[1](k={true}) "Constant array"; equation connect(con.y, catApp.u1); connect(con.y, catPre.u1); connect(con1.y, catApp.u2); connect(con1.y, catPre.u2); end ConcatenateLogical;

Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateParameterLogical Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateParameterLogical

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateParameterLogical

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.ConcatenateLogical.

Modelica definition

model ConcatenateParameterLogical "Validation model" Buildings.Templates.Plants.Controls.Utilities.ConcatenateParameterLogical catApp( nin1=2, is_app=true, new=fill(true, 1)) "Append to input array"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con[2](k={false, true}) "Constant array"; Buildings.Templates.Plants.Controls.Utilities.ConcatenateParameterLogical cat0( new=fill(true, 0), nin1=2) "Zero-sized array concatenation (no-op)"; Buildings.Templates.Plants.Controls.Utilities.ConcatenateParameterLogical catPre( nin1=2, is_app=false, new=fill(true, 2)) "Prepend to input array"; equation connect(con.y, catApp.u1); connect(con.y, cat0.u1); connect(con.y, catPre.u1); end ConcatenateParameterLogical;

Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateSelectLogical Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateSelectLogical

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.ConcatenateSelectLogical

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.ConcatenateSelectLogical.

Modelica definition

model ConcatenateSelectLogical "Validation model" Buildings.Templates.Plants.Controls.Utilities.ConcatenateSelectLogical cat1( have_u1=true, have_u2=true, nin1=2, nin2=1) "Concatenate"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con[2](k={false, true}) "Constant array"; Buildings.Templates.Plants.Controls.Utilities.ConcatenateSelectLogical sel1( have_u1=true, have_u2=false, nin1=2) "Select first array"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con1[1](k={true}) "Constant array"; Buildings.Templates.Plants.Controls.Utilities.ConcatenateSelectLogical sel2( have_u1=false, have_u2=true, nin1=2, nin2=1) "Select second array"; equation connect(con.y, cat1.u1); connect(con.y, sel1.u1); connect(con1.y, cat1.u2); connect(con1[1].y, sel2.u2[1]); end ConcatenateSelectLogical;

Buildings.Templates.Plants.Controls.Utilities.Validation.CountTrue Buildings.Templates.Plants.Controls.Utilities.Validation.CountTrue

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.CountTrue

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.CountTrue.

Modelica definition

model CountTrue "Validation model" Utilities.FirstTrueIndex couTru(nin=6) "Return number of true elements"; Utilities.FirstTrueIndex couTruAllFal(nin=6) "Return number of true elements – All elements of input vector are false"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant conAllFal[6](k=fill(false, 6)) "Constant array"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con[6](k={false,true,false, false,true,false}) "Constant array"; equation connect(con.y, couTru.u1); connect(conAllFal.y, couTruAllFal.u1); end CountTrue;

Buildings.Templates.Plants.Controls.Utilities.Validation.FirstTrueIndex Buildings.Templates.Plants.Controls.Utilities.Validation.FirstTrueIndex

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.FirstTrueIndex

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.FirstTrueIndex.

Modelica definition

model FirstTrueIndex "Validation model" Utilities.FirstTrueIndex idxFirTru( nin=6) "Return first true index"; Utilities.FirstTrueIndex idxFirTruAllFal(nin=6) "Return first true index – All elements of input vector are false"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant conAllFal[6](k=fill(false, 6)) "Constant array"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con[6](k={false,true, false,false,true,false}) "Constant array"; equation connect(con.y, idxFirTru.u1); connect(conAllFal.y, idxFirTruAllFal.u1); end FirstTrueIndex;

Buildings.Templates.Plants.Controls.Utilities.Validation.HoldReal Buildings.Templates.Plants.Controls.Utilities.Validation.HoldReal

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.HoldReal

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.HoldValue.

Modelica definition

model HoldReal "Validation model" Buildings.Templates.Plants.Controls.Utilities.HoldReal hol(dtHol=0) "Hold signal – No minimum hold time"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(width=0.2, period=30) "Source signal for hold trigger"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin sin(freqHz=1/60) "Source signal for value to hold"; Buildings.Templates.Plants.Controls.Utilities.HoldReal holTim(dtHol=20) "Hold signal – With minimum hold time"; equation connect(booPul.y, hol.u1); connect(sin.y, hol.u); connect(booPul.y, holTim.u1); connect(sin.y, holTim.u); end HoldReal;

Buildings.Templates.Plants.Controls.Utilities.Validation.LastTrueIndex Buildings.Templates.Plants.Controls.Utilities.Validation.LastTrueIndex

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.LastTrueIndex

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.FirstTrueIndex.

Modelica definition

model LastTrueIndex "Validation model" Buildings.Templates.Plants.Controls.Utilities.LastTrueIndex idxLasTru( nin=6) "Return last true index"; Buildings.Templates.Plants.Controls.Utilities.LastTrueIndex idxLasTruAllFal(nin=6) "Return last true index – All elements of input vector are false"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant conAllFal[6](k=fill(false, 6)) "Constant array"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con[6](k={false,true, false,false,true,false}) "Constant array"; equation connect(con.y, idxLasTru.u1); connect(conAllFal.y, idxLasTruAllFal.u1); end LastTrueIndex;

Buildings.Templates.Plants.Controls.Utilities.Validation.MultiMaxInteger Buildings.Templates.Plants.Controls.Utilities.Validation.MultiMaxInteger

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.MultiMaxInteger

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.MultiMaxInteger.

Modelica definition

model MultiMaxInteger "Validation model" Buildings.Templates.Plants.Controls.Utilities.MultiMaxInteger mulMax(nin=5) "Block that outputs the maximum element of the input vector"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant con[5]( k={1, 2, 3, 4, 5}) "Constant vector"; equation connect(con.y,mulMax. u); end MultiMaxInteger;

Buildings.Templates.Plants.Controls.Utilities.Validation.MultiMinInteger Buildings.Templates.Plants.Controls.Utilities.Validation.MultiMinInteger

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.MultiMinInteger

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.MultiMinInteger.

Modelica definition

model MultiMinInteger "Validation model" Buildings.Templates.Plants.Controls.Utilities.MultiMinInteger mulMin(nin=5) "Block that outputs the minimum element of the input vector"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant con[5]( k={1, 2, 3, 4, 5}) "Constant vector"; equation connect(con.y, mulMin.u); end MultiMinInteger;

Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderInteger Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderInteger

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderInteger

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.PlaceholderInteger.

Modelica definition

model PlaceholderInteger "Validation model" Buildings.Templates.Plants.Controls.Utilities.PlaceholderInteger phPar( have_inp=false, have_inpPh=false, u_internal=1) "Placeholder parameter"; Buildings.Controls.OBC.CDL.Integers.Sources.Pulse pul(period=1) "Source signal for value to replace"; Buildings.Templates.Plants.Controls.Utilities.PlaceholderInteger phInp(have_inp= false, have_inpPh=true) "Placeholder signal"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant con(k=2) "Constant"; Buildings.Templates.Plants.Controls.Utilities.PlaceholderInteger phNo( have_inp=true, have_inpPh=false, u_internal=3) "No placeholder: use input signal"; equation connect(pul.y, phNo.u); connect(con.y, phInp.uPh); connect(pul.y, phPar.u); connect(pul.y, phInp.u); end PlaceholderInteger;

Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderLogical Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderLogical

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderLogical

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.PlaceholderLogical.

Modelica definition

model PlaceholderLogical "Validation model" Buildings.Templates.Plants.Controls.Utilities.PlaceholderLogical phPar( have_inp=false, have_inpPh=false, u_internal=false) "Placeholder parameter"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse pul(period=1) "Source signal for value to replace"; Buildings.Templates.Plants.Controls.Utilities.PlaceholderLogical phInp(have_inp=false, have_inpPh=true) "Placeholder signal"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con(k=true) "Constant"; Buildings.Templates.Plants.Controls.Utilities.PlaceholderLogical phNo( have_inp=true, have_inpPh=false, u_internal=false) "No placeholder: use input signal"; equation connect(pul.y, phPar.u); connect(pul.y, phInp.u); connect(pul.y, phNo.u); connect(con.y, phInp.uPh); end PlaceholderLogical;

Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderReal Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderReal

Validation model

Buildings.Templates.Plants.Controls.Utilities.Validation.PlaceholderReal

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.PlaceholderReal.

Modelica definition

model PlaceholderReal "Validation model" Buildings.Templates.Plants.Controls.Utilities.PlaceholderReal phPar( have_inp=false, have_inpPh=false, u_internal=1) "Placeholder parameter"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse pul(period=1) "Source signal for value to replace"; Buildings.Templates.Plants.Controls.Utilities.PlaceholderReal phInp(have_inp=false, have_inpPh=true) "Placeholder signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant con(k=2) "Constant"; Buildings.Templates.Plants.Controls.Utilities.PlaceholderReal phNo( have_inp=true, have_inpPh=false, u_internal=1) "No placeholder: use input signal"; equation connect(pul.y, phNo.u); connect(pul.y, phPar.u); connect(pul.y, phInp.u); connect(con.y, phInp.uPh); end PlaceholderReal;

Buildings.Templates.Plants.Controls.Utilities.Validation.StageIndex Buildings.Templates.Plants.Controls.Utilities.Validation.StageIndex


Buildings.Templates.Plants.Controls.Utilities.Validation.StageIndex

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.StageIndex.

Parameters

TypeNameDefaultDescription
IntegernSta4Number of stages

Modelica definition

model StageIndex parameter Integer nSta=4 "Number of stages"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse ena( width=0.9, period=160, shift=10) "Enable signal"; Buildings.Templates.Plants.Controls.Utilities.StageIndex idxSta( have_inpAva=false, final nSta=nSta) "Compute stage index - No minimum runtime, all stages available"; Buildings.Controls.OBC.CDL.Logical.Sources.SampleTrigger upPul( period=20) "Stage up command pulse"; Buildings.Controls.OBC.CDL.Logical.Sources.SampleTrigger dowPul( period=20) "Stage down command pulse"; Buildings.Templates.Plants.Controls.Utilities.StageIndex idxStaUna( final nSta=nSta) "Compute stage index - No minimum runtime, some unavailable stages"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant u1AvaSta[nSta]( k={false, false, true, true}) "Stage available signal"; Buildings.Templates.Plants.Controls.Utilities.StageIndex idxStaRun( have_inpAva=false, final nSta=nSta, dtRun=25) "Compute stage index - Minimum runtime, all stages available"; Buildings.Templates.Plants.Controls.Utilities.StageIndex idxStaRunUna( final nSta=nSta, dtRun=25) "Compute stage index - Minimum runtime, some unavailable stages"; Buildings.Controls.OBC.CDL.Logical.Sources.TimeTable booTimTab( table=[ 0, 0, 0; 10, 1, 0; 70, 0, 1], period=160) "Signal to inhibit up and down commands"; Buildings.Controls.OBC.CDL.Logical.And u1Up "Stage up command"; Buildings.Controls.OBC.CDL.Logical.And u1Dow "Stage down command"; Buildings.Controls.OBC.CDL.Logical.TrueFalseHold u1UpHol(final falseHoldDuration=0, trueHoldDuration=0.1) "Hold stage up command for plotting"; Buildings.Controls.OBC.CDL.Logical.TrueFalseHold u1DowHol(final falseHoldDuration=0, trueHoldDuration=0.1) "Hold stage down command for plotting"; Buildings.Templates.Plants.Controls.Utilities.StageIndex idxStaRunTwoMod( have_inpAva=false, use_twoMod=true, final nSta=nSta, dtRun(displayUnit="s") = 15) "Compute stage index - Minimum runtime for heating and cooling stage combinations"; Buildings.Controls.OBC.CDL.Integers.Sources.TimeTable staOppMod(table=[0,0; 30,1; 45,2; 60,3; 75,4], period=160) "Opposite mode stage index"; equation connect(ena.y, idxSta.u1Lea); connect(ena.y, idxStaUna.u1Lea); connect(ena.y, idxStaRun.u1Lea); connect(u1AvaSta.y, idxStaUna.u1AvaSta); connect(ena.y, idxStaRunUna.u1Lea); connect(u1AvaSta.y, idxStaRunUna.u1AvaSta); connect(upPul.y, u1Up.u2); connect(dowPul.y, u1Dow.u2); connect(booTimTab.y[2], u1Dow.u1); connect(u1Up.y, idxSta.u1Up); connect(u1Dow.y, idxSta.u1Dow); connect(u1Up.y, idxStaUna.u1Up); connect(u1Dow.y, idxStaUna.u1Dow); connect(u1Dow.y, idxStaRun.u1Dow); connect(u1Dow.y, idxStaRunUna.u1Dow); connect(u1Up.y, idxStaRun.u1Up); connect(u1Up.y, idxStaRunUna.u1Up); connect(booTimTab.y[1], u1Up.u1); connect(u1Up.y, u1UpHol.u); connect(u1Dow.y, u1DowHol.u); connect(u1Dow.y, idxStaRunTwoMod.u1Dow); connect(u1Up.y, idxStaRunTwoMod.u1Up); connect(ena.y, idxStaRunTwoMod.u1Lea); connect(staOppMod.y[1], idxStaRunTwoMod.uStaOpp); end StageIndex;

Buildings.Templates.Plants.Controls.Utilities.Validation.TrueArrayConditional Buildings.Templates.Plants.Controls.Utilities.Validation.TrueArrayConditional


Buildings.Templates.Plants.Controls.Utilities.Validation.TrueArrayConditional

Information

Validation model for the block Buildings.Templates.Plants.Controls.Utilities.TrueArrayConditional.

Modelica definition

model TrueArrayConditional Buildings.Templates.Plants.Controls.Utilities.TrueArrayConditional truArrConSam(nin=2) "Array with true elements and same size as input vector"; Buildings.Controls.OBC.CDL.Integers.Sources.Pulse uIdx1( amplitude=1, period=4, shift=1.5) "Source signal for index of first true element"; Buildings.Controls.OBC.CDL.Integers.Sources.Pulse uIdx2( amplitude=1, period=2.5, offset=2) "Source signal for index of second true element"; Buildings.Controls.OBC.CDL.Integers.Sources.TimeTable uTru(table=[0,0; 1,1; 2, 2], period=4) "Source signal for number of true elements"; Buildings.Templates.Plants.Controls.Utilities.TrueArrayConditional truArrConGre(nout=4, nin=2) "Array with true elements and size greater than input vector"; Buildings.Templates.Plants.Controls.Utilities.TrueArrayConditional truArrSpaInp(nin=4) "Sparse input array with duplicates"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant uCst(k=2) "Source signal for number of true elements"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant uIdxCst[4](k={4,0,4,1}) "Source signal for array of priority"; equation connect(uTru.y[1], truArrConSam.u); connect(uIdx1.y, truArrConSam.uIdx[1]); connect(uTru.y[1], truArrConGre.u); connect(uIdx1.y, truArrConGre.uIdx[1]); connect(uIdx2.y, truArrConSam.uIdx[2]); connect(uIdx2.y, truArrConGre.uIdx[2]); connect(uCst.y, truArrSpaInp.u); connect(uIdxCst.y, truArrSpaInp.uIdx); end TrueArrayConditional;