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.TimeSuppression TimeSuppression Model validates the block for suppresing changes due to the setpoint change
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.TimeSuppression Buildings.Controls.OBC.ASHRAE.G36.Generic.Validation.TimeSuppression

Model validates the block for suppresing changes due to the setpoint change

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

Information

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

Modelica definition

model TimeSuppression "Model validates the block for suppresing changes due to the setpoint change" 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 TimeSuppression;

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;