Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Validation

Collection of validation models

Information

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

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.AHUs.MultiZone.VAV.Validation.Controller Controller Validation controller model
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Validation.Controller_UnspecifiedClimate Controller_UnspecifiedClimate Validation controller model for generating warnng when the climate zone is not specified

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Validation.Controller Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Validation.Controller

Validation controller model

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Validation.Controller

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller.

Modelica definition

model Controller "Validation controller model" Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller conAHU( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_4B, final minOADes=Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow, final buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final VUncDesOutAir_flow=0.05, final VDesTotOutAir_flow=0.05) "Multizone VAV AHU controller"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TSup( final height=4, final duration=3600, final offset=273.15 + 14) "AHU supply air temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow( final duration=1800, final offset=0.02, final height=0.0168) "Measured outdoor airflow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TMixMea( final height=4, final duration=1, final offset=273.15 + 2, final startTime=0) "Measured mixed air temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin TOut( final amplitude=5, final offset=18 + 273.15, final freqHz=1/3600) "Outdoor air temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin ducStaPre( final offset=200, final amplitude=150, final freqHz=1/3600) "Duct static pressure"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine2( final offset=3, final amplitude=2, final freqHz=1/9600) "Duct static pressure setpoint reset requests"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine3( final amplitude=6, final freqHz=1/9600) "Maximum supply temperature setpoint reset"; Buildings.Controls.OBC.CDL.Reals.Abs abs2 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Reals.Abs abs3 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Reals.Round round3(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Reals.Round round4(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger ducPreResReq "Convert real to integer"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger maxSupResReq "Convert real to integer"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod( final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied) "AHU operation mode is occupied"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant sumDesPopBreZon( final k=0.0125) "Sum of the population component design breathing zone flow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant sumDesAreBreZon( final k=0.03) "Sum of the area component design breathing zone flow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp vavBoxFlo2( final offset=0.08, final height=0.02, final duration=3600) "Ramp signal for generating VAV box flow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp vavBoxFlo1( final height=0.05, final offset=0.08, final duration=3600) "Ramp signal for generating VAV box flow rate"; Buildings.Controls.OBC.CDL.Reals.Add add2 "System primary airflow rate, equals to the sum of the measured discharged flow rate of all terminal units"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse uOutAirFra_max( final amplitude=0.005, final width=0.25, final period=3600, final offset=0.015) "Maximum zone outdoor air fraction, equals to the maximum of primary outdoor air fraction of all zones"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp dpBui( final height=40, final offset=0, final duration=1800) "Building static presure"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse freRes( final width=0.95, final period=3600) "Freeze protection reset"; Buildings.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol( final trueHoldDuration=1) "Break loop"; equation connect(TOut.y, conAHU.TOut); connect(ducStaPre.y, conAHU.dpDuc); connect(sine2.y, abs3.u); connect(abs3.y,round4. u); connect(round4.y, ducPreResReq.u); connect(sine3.y, abs2.u); connect(abs2.y, round3.u); connect(round3.y, maxSupResReq.u); connect(maxSupResReq.y, conAHU.uZonTemResReq); connect(ducPreResReq.y, conAHU.uZonPreResReq); connect(TMixMea.y, conAHU.TAirMix); connect(VOut_flow.y, conAHU.VAirOut_flow); connect(TSup.y, conAHU.TAirSup); connect(vavBoxFlo2.y, add2.u1); connect(vavBoxFlo1.y, add2.u2); connect(uOutAirFra_max.y, conAHU.uOutAirFra_max); connect(dpBui.y, conAHU.dpBui); connect(freRes.y,not1. u); connect(not1.y, conAHU.u1SofSwiRes); connect(conAHU.y1SupFan, truFalHol.u); connect(truFalHol.y, conAHU.u1SupFan); connect(sumDesPopBreZon.y, conAHU.VSumAdjPopBreZon_flow); connect(sumDesAreBreZon.y, conAHU.VSumAdjAreBreZon_flow); connect(add2.y, conAHU.VSumZonPri_flow); connect(opeMod.y, conAHU.uAhuOpeMod); end Controller;

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Validation.Controller_UnspecifiedClimate Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Validation.Controller_UnspecifiedClimate

Validation controller model for generating warnng when the climate zone is not specified

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Validation.Controller_UnspecifiedClimate

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller for generating warning when the climate zone is not specified.

Modelica definition

model Controller_UnspecifiedClimate "Validation controller model for generating warnng when the climate zone is not specified" Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Controller conAHU( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1, final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Not_Specified, final minOADes=Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow, final buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final VUncDesOutAir_flow=0.05, final VDesTotOutAir_flow=0.05) "Multizone VAV AHU controller"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TSup( final height=4, final duration=3600, final offset=273.15 + 14) "AHU supply air temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow( final duration=1800, final offset=0.02, final height=0.0168) "Measured outdoor airflow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TMixMea( final height=4, final duration=1, final offset=273.15 + 2, final startTime=0) "Measured mixed air temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin TOut( final amplitude=5, final offset=18 + 273.15, final freqHz=1/3600) "Outdoor air temperature"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin ducStaPre( final offset=200, final amplitude=150, final freqHz=1/3600) "Duct static pressure"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine2( final offset=3, final amplitude=2, final freqHz=1/9600) "Duct static pressure setpoint reset requests"; Buildings.Controls.OBC.CDL.Reals.Sources.Sin sine3( final amplitude=6, final freqHz=1/9600) "Maximum supply temperature setpoint reset"; Buildings.Controls.OBC.CDL.Reals.Abs abs2 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Reals.Abs abs3 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Reals.Round round3(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Reals.Round round4(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger ducPreResReq "Convert real to integer"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger maxSupResReq "Convert real to integer"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod( final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied) "AHU operation mode is occupied"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant sumDesPopBreZon( final k=0.0125) "Sum of the population component design breathing zone flow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant sumDesAreBreZon( final k=0.03) "Sum of the area component design breathing zone flow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp vavBoxFlo2( final offset=0.08, final height=0.02, final duration=3600) "Ramp signal for generating VAV box flow rate"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp vavBoxFlo1( final height=0.05, final offset=0.08, final duration=3600) "Ramp signal for generating VAV box flow rate"; Buildings.Controls.OBC.CDL.Reals.Add add2 "System primary airflow rate, equals to the sum of the measured discharged flow rate of all terminal units"; Buildings.Controls.OBC.CDL.Reals.Sources.Pulse uOutAirFra_max( final amplitude=0.005, final width=0.25, final period=3600, final offset=0.015) "Maximum zone outdoor air fraction, equals to the maximum of primary outdoor air fraction of all zones"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp dpBui( final height=40, final offset=0, final duration=1800) "Building static presure"; Buildings.Controls.OBC.CDL.Logical.Not not1 "Logical not"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse freRes( final width=0.95, final period=3600) "Freeze protection reset"; Buildings.Controls.OBC.CDL.Logical.TrueFalseHold truFalHol( final trueHoldDuration=1) "Break loop"; equation connect(TOut.y, conAHU.TOut); connect(ducStaPre.y, conAHU.dpDuc); connect(sine2.y, abs3.u); connect(abs3.y,round4. u); connect(round4.y, ducPreResReq.u); connect(sine3.y, abs2.u); connect(abs2.y, round3.u); connect(round3.y, maxSupResReq.u); connect(maxSupResReq.y, conAHU.uZonTemResReq); connect(ducPreResReq.y, conAHU.uZonPreResReq); connect(TMixMea.y, conAHU.TAirMix); connect(VOut_flow.y, conAHU.VAirOut_flow); connect(TSup.y, conAHU.TAirSup); connect(vavBoxFlo2.y, add2.u1); connect(vavBoxFlo1.y, add2.u2); connect(uOutAirFra_max.y, conAHU.uOutAirFra_max); connect(dpBui.y, conAHU.dpBui); connect(freRes.y,not1. u); connect(not1.y, conAHU.u1SofSwiRes); connect(conAHU.y1SupFan, truFalHol.u); connect(truFalHol.y, conAHU.u1SupFan); connect(sumDesPopBreZon.y, conAHU.VSumAdjPopBreZon_flow); connect(sumDesAreBreZon.y, conAHU.VSumAdjAreBreZon_flow); connect(add2.y, conAHU.VSumZonPri_flow); connect(opeMod.y, conAHU.uAhuOpeMod); end Controller_UnspecifiedClimate;