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 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_2016, final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1_2016, 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.BuildingPressureControlTypes.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.Continuous.Sources.Ramp TSup( final height=4, final duration=3600, final offset=273.15 + 14) "AHU supply air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOut_flow( final duration=1800, final offset=0.02, final height=0.0168) "Measured outdoor airflow rate"; Buildings.Controls.OBC.CDL.Continuous.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.Continuous.Sources.Sine TOut( final amplitude=5, final offset=18 + 273.15, final freqHz=1/3600) "Outdoor air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine ducStaPre( final offset=200, final amplitude=150, final freqHz=1/3600) "Duct static pressure"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine2( final offset=3, final amplitude=2, final freqHz=1/9600) "Duct static pressure setpoint reset requests"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine3( final amplitude=6, final freqHz=1/9600) "Maximum supply temperature setpoint reset"; Buildings.Controls.OBC.CDL.Continuous.Abs abs2 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Continuous.Abs abs3 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Continuous.Round round3(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Continuous.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.Continuous.Sources.Constant sumDesPopBreZon( final k=0.0125) "Sum of the population component design breathing zone flow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant sumDesAreBreZon( final k=0.03) "Sum of the area component design breathing zone flow rate"; Buildings.Controls.OBC.CDL.Continuous.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.Continuous.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.Continuous.Add add2 "System primary airflow rate, equals to the sum of the measured discharged flow rate of all terminal units"; Buildings.Controls.OBC.CDL.Continuous.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.Continuous.Sources.Ramp dpBui( final height=40, final offset=0, final duration=1800) "Building static presure"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant heaCoi( final k=0) "Heating coil position"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp cooCoi( final height=-0.3, final offset=0.96, final duration=3600, startTime=1000) "Cooling coil position"; 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.Continuous.Multiply mul "Supply fan speed"; Buildings.Controls.OBC.CDL.Conversions.BooleanToReal booToRea "Convert boolean to real"; Buildings.Controls.OBC.CDL.Logical.Pre pre "Break loop"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp supFanSpe( final duration=3600, final height=0.7, final offset=0.1) "Supply fan speed"; 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(heaCoi.y, conAHU.uHeaCoi_actual); connect(cooCoi.y, conAHU.uCooCoi_actual); connect(dpBui.y, conAHU.dpBui); connect(freRes.y,not1. u); connect(not1.y, conAHU.u1SofSwiRes); connect(supFanSpe.y, mul.u2); connect(booToRea.y, mul.u1); connect(conAHU.y1SupFan, pre.u); connect(pre.y, conAHU.u1SupFan); connect(pre.y, booToRea.u); connect(mul.y, conAHU.uSupFan_actual); 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;