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

Collection of validation models

Information

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

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.Generic.Validation.AirEconomizerHighLimits AirEconomizerHighLimits Model validates the block for specifying air economizer high limits
Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppressionNegativeStartTime TimeSuppressionNegativeStartTime Model validates the block for suppresing changes due to the setpoint change with a negative start time
Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppressionPositiveStartTime TimeSuppressionPositiveStartTime Model validates the block for suppresing changes due to the setpoint change with a positive start time
Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TrimAndRespond TrimAndRespond Model validates the trim and respond block

Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.AirEconomizerHighLimits Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.AirEconomizerHighLimits

Model validates the block for specifying air economizer high limits

Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.AirEconomizerHighLimits

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits.

Modelica definition

model AirEconomizerHighLimits "Model validates the block for specifying air economizer high limits" Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1B) "ASHRAE standard, with fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim1( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_1) "Title 24 standard, with fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim2( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_5A) "ASHRAE standard, with fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim3( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1A) "ASHRAE standard, with fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim4( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1B) "ASHRAE standard, with differential dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim5( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1B) "ASHRAE standard, with fixed enthalpy and fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim6( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1B) "ASHRAE standard, with differential enthalpy and fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim7( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_2) "Title 24 standard, with fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim8( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_6) "Title 24 standard, with fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim9( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_7) "Title 24 standard, with fixed dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim10( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_1) "Title 24 standard, with differential dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim11( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_2) "Title 24 standard, with differential dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim12( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_6) "Title 24 standard, with differential dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim13( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_7) "Title 24 standard, with differential dry bulb device"; Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim14( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.California_Title_24, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb, final tit24CliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Zone_1) "Title 24 standard, with fixed enthalpy and fixed dry bulb device"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp retAirEnt( final height=5000, final duration=10, final offset=65000) "Return air enthalpy"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp retAirTem( final height=5, final duration=10, final offset=295.15) "Return air temperature"; equation connect(retAirTem.y, ecoHigLim4.TRet); connect(retAirTem.y, ecoHigLim10.TRet); connect(retAirTem.y, ecoHigLim11.TRet); connect(retAirTem.y, ecoHigLim12.TRet); connect(retAirTem.y, ecoHigLim13.TRet); connect(retAirEnt.y, ecoHigLim6.hRet); end AirEconomizerHighLimits;

Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppressionNegativeStartTime Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppressionNegativeStartTime

Model validates the block for suppresing changes due to the setpoint change with a negative start time

Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppressionNegativeStartTime

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Generic.TimeSuppression.

Modelica definition

model TimeSuppressionNegativeStartTime "Model validates the block for suppresing changes due to the setpoint change with a negative start time " Buildings.Controls.OBC.ASHRAE.G36.Generic.TimeSuppression timSupCooReq "Time suppression for generating cooling request"; Buildings.Controls.OBC.ASHRAE.G36.Generic.TimeSuppression timSupAla( final chaRat=1080, final maxTim=7200) "Time suppression for temperature alarm"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin zonTem( final amplitude=2, final freqHz=1/7200, final offset=298.15) "Zone temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp cooSet( final height=5, final duration=600, final offset=295.15, final startTime=900) "Cooling setpoint"; equation connect(cooSet.y, timSupCooReq.TSet); connect(cooSet.y, timSupAla.TSet); connect(zonTem.y, timSupCooReq.TZon); connect(zonTem.y, timSupAla.TZon); end TimeSuppressionNegativeStartTime;

Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppressionPositiveStartTime Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppressionPositiveStartTime

Model validates the block for suppresing changes due to the setpoint change with a positive start time

Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppressionPositiveStartTime

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Generic.TimeSuppression.

Modelica definition

model TimeSuppressionPositiveStartTime "Model validates the block for suppresing changes due to the setpoint change with a positive start time" Buildings.Controls.OBC.ASHRAE.G36.Generic.TimeSuppression timSupCooReq "Time suppression for generating cooling request"; Buildings.Controls.OBC.ASHRAE.G36.Generic.TimeSuppression timSupAla( final chaRat=1080, final maxTim=7200) "Time suppression for temperature alarm"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin zonTem( final amplitude=2, final freqHz=1/7200, final offset=298.15) "Zone temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp cooSet( final height=5, final duration=600, final offset=295.15, final startTime=900) "Cooling setpoint"; equation connect(cooSet.y, timSupCooReq.TSet); connect(cooSet.y, timSupAla.TSet); connect(zonTem.y, timSupCooReq.TZon); connect(zonTem.y, timSupAla.TZon); end TimeSuppressionPositiveStartTime;

Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TrimAndRespond Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TrimAndRespond

Model validates the trim and respond block

Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TrimAndRespond

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond.

Modelica definition

model TrimAndRespond "Model validates the trim and respond block" Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond trimRespondLogic( final iniSet=120, final minSet=37, final maxSet=370, final delTim=300, final samplePeriod=120, final numIgnReq=2, final triAmo=-10, final resAmo=15, final maxRes=37) "Block implementing trim and respond logic"; Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond trimRespondLogic1( final iniSet=120, final minSet=37, final maxSet=370, final delTim=300, final samplePeriod=120, final numIgnReq=2, final triAmo=10, final resAmo=-15, final maxRes=-37) "Block implementing trim and respond logic"; Buildings.Controls.OBC.ASHRAE.G36.Generic.TrimAndRespond trimRespondLogic2( final iniSet=120, final minSet=37, final maxSet=370, final delTim=300, final samplePeriod=120, final numIgnReq=2, final triAmo=-10, final resAmo=15, final maxRes=37) "Block implementing trim and respond logic"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant con( final k=true) "Logic true indicating device ON"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine( final amplitude=6, final freqHz=1/5400) "Block generates sine signal"; Buildings.Controls.OBC.CDL.Reals.Abs abs "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine1( final amplitude=6, freqHz=1/5400) "Block generates sine signal"; Buildings.Controls.OBC.CDL.Reals.Abs abs1 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul( final period=3600, final width=0.18333333) "Generate pulse signal of type Boolean"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; Buildings.Controls.OBC.CDL.Reals.Switch swi "Switch between two Real signals"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant con1(final k=0) "Zero request when device is OFF"; Buildings.Controls.OBC.CDL.Reals.Round round2(final n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 "Convert real to integer"; Buildings.Controls.OBC.CDL.Reals.Round round1(final n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 "Convert real to integer"; equation connect(con.y, trimRespondLogic.uDevSta); connect(sine.y, abs.u); connect(not1.y,trimRespondLogic2. uDevSta); connect(con1.y, swi.u1); connect(sine1.y, swi.u3); connect(swi.y, abs1.u); connect(booPul.y, swi.u2); connect(booPul.y, not1.u); connect(abs.y, round2.u); connect(round2.y, reaToInt1.u); connect(reaToInt1.y, trimRespondLogic.numOfReq); connect(abs1.y, round1.u); connect(round1.y, reaToInt2.u); connect(reaToInt2.y,trimRespondLogic2. numOfReq); connect(con.y,trimRespondLogic1. uDevSta); connect(reaToInt1.y,trimRespondLogic1. numOfReq); end TrimAndRespond;