Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation

Collection of validation models

Information

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

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_PR1.AHUs.MultiZone.SetPoints.Validation.ExhaustDamper ExhaustDamper Validate the controller of an actuated exhaust damper without fan
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.OutsideAirFlow OutsideAirFlow Validate the model of calculating minimum outdoor airflow setpoint
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.ReturnFanDirectPressure ReturnFanDirectPressure Validate model for calculating return fan control with direct building pressure of multi zone VAV AHU
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.VAVSupplyFan VAVSupplyFan Validate VAVSupplyFan
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.VAVSupplyTemperature VAVSupplyTemperature Validate model for calculating supply air temperature of multi zone VAV AHU
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.Valve Valve Validate model for controlling coil valve postion of multi zone VAV AHU

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.ExhaustDamper Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.ExhaustDamper

Validate the controller of an actuated exhaust damper without fan

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.ExhaustDamper

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.ExhaustDamper.

Modelica definition

model ExhaustDamper "Validate the controller of an actuated exhaust damper without fan" Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.ExhaustDamper exhDamPos( k=0.1) "Block of controlling actuated exhaust damper without fan"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant supFan(k=true) "Supply fan status"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp meaBuiPre( height=8, duration=1200, offset=8, startTime=0) "Measured indoor building static pressure"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.ExhaustDamper exhDamPos1( k=0.5) "Block of controlling actuated exhaust damper without fan"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.ExhaustDamper exhDamPos2( k=1) "Block of controlling actuated exhaust damper without fan"; equation connect(meaBuiPre.y, exhDamPos.dpBui); connect(supFan.y, exhDamPos.uFan); connect(supFan.y, exhDamPos1.uFan); connect(supFan.y, exhDamPos2.uFan); connect(meaBuiPre.y, exhDamPos1.dpBui); connect(meaBuiPre.y, exhDamPos2.dpBui); end ExhaustDamper;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.OutsideAirFlow Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.OutsideAirFlow

Validate the model of calculating minimum outdoor airflow setpoint

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.OutsideAirFlow

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.OutsideAirFlow.

Parameters

TypeNameDefaultDescription
IntegernumZon5Total number of zones that the system serves

Modelica definition

model OutsideAirFlow "Validate the model of calculating minimum outdoor airflow setpoint" parameter Integer numZon = 5 "Total number of zones that the system serves"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.OutsideAirFlow outAirSet_MulZon(numZon=numZon, AFlo=fill(40, numZon), maxSysPriFlo=1, minZonPriFlo=fill(0.08, numZon), peaSysPop=20) "Block to output minimum outdoor airflow rate for system with multiple zones "; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.OutsideAirFlow outAirSet_MulZon1( numZon=numZon, AFlo=fill(40, numZon), maxSysPriFlo=1, minZonPriFlo=fill(0.08, numZon), peaSysPop=20, have_occSen=false, have_winSen=false) "Block to output minimum outdoor airflow rate for system with multiple zones "; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant zonPriFloRat[numZon]( k={0.1,0.12,0.2,0.09,0.1}) "Measured primary flow rate in each zone at VAV box"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc1( height=2, duration=3600) "Occupant number in zone 1"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc2( duration=3600, height=3) "Occupant number in zone 2"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc3( duration=3600, height=3, startTime=900) "Occupant number in zone 3"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc4( duration=3600, startTime=900, height=2) "Occupant number in zone 4"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc5( duration=3600, startTime=0, height=-3, offset=3) "Occupant number in zone 4"; protected Buildings.Controls.OBC.CDL.Logical.Sources.Constant winSta[numZon]( k=fill(false,numZon)) "Status of windows in each zone"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant supFan( k=true) "Status of supply fan"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon[numZon]( each height=6, each offset=273.15 + 17, each duration=3600) "Measured zone temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TDis[numZon]( each height=4, each duration=3600, each offset=273.15 + 18) "Terminal unit discharge air temperature"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod( final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied) "AHU operation mode is Occupied"; equation connect(winSta.y, outAirSet_MulZon.uWin); connect(supFan.y, outAirSet_MulZon.uSupFan); connect(zonPriFloRat.y, outAirSet_MulZon.VBox_flow); connect(TZon.y, outAirSet_MulZon.TZon); connect(TDis.y,outAirSet_MulZon.TDis); connect(numOfOcc1.y, outAirSet_MulZon.nOcc[1]); connect(numOfOcc2.y, outAirSet_MulZon.nOcc[2]); connect(numOfOcc3.y, outAirSet_MulZon.nOcc[3]); connect(numOfOcc4.y, outAirSet_MulZon.nOcc[4]); connect(numOfOcc5.y, outAirSet_MulZon.nOcc[5]); connect(opeMod.y, outAirSet_MulZon.uOpeMod); connect(zonPriFloRat.y, outAirSet_MulZon1.VBox_flow); connect(opeMod.y, outAirSet_MulZon1.uOpeMod); connect(supFan.y, outAirSet_MulZon1.uSupFan); connect(TDis.y, outAirSet_MulZon1.TDis); connect(TZon.y, outAirSet_MulZon1.TZon); end OutsideAirFlow;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.ReturnFanDirectPressure Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.ReturnFanDirectPressure

Validate model for calculating return fan control with direct building pressure of multi zone VAV AHU

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.ReturnFanDirectPressure

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.ReturnFanDirectPressure for exhaust air damper and return fan control with direct building pressure measurement for systems with multiple zones.

Modelica definition

model ReturnFanDirectPressure "Validate model for calculating return fan control with direct building pressure of multi zone VAV AHU" Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.ReturnFanDirectPressure retFanPre( k=0.1) "Return fan control with direct building pressure"; CDL.Logical.Sources.Pulse yFan(period=4000) "Supply fan status"; CDL.Continuous.Sources.Ramp dpBui( height=40, offset=0, duration=1800) "Building static presure"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.ReturnFanDirectPressure retFanPre1( k=0.5) "Return fan control with direct building pressure"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.ReturnFanDirectPressure retFanPre2 "Return fan control with direct building pressure"; equation connect(yFan.y, retFanPre.uFan); connect(dpBui.y, retFanPre.dpBui); connect(yFan.y, retFanPre1.uFan); connect(yFan.y, retFanPre2.uFan); connect(dpBui.y, retFanPre1.dpBui); connect(dpBui.y, retFanPre2.dpBui); end ReturnFanDirectPressure;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.VAVSupplyFan Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.VAVSupplyFan

Validate VAVSupplyFan

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.VAVSupplyFan

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.VAVSupplyFan.

Modelica definition

model VAVSupplyFan "Validate VAVSupplyFan" Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.VAVSupplyFan conSupFan(numZon=4, Td=1, controllerType=Buildings.Controls.OBC.CDL.Types.SimpleController.PI, maxSet=400, k=0.001, Ti=10) "Block outputs supply fan speed"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp ram( duration=28800, height=6) "Ramp signal for generating operation mode"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp vavBoxFlo1( duration=28800, height=1.5, offset=1) "Ramp signal for generating VAV box flow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp vavBoxFlo2( duration=28800, offset=1, height=0.5) "Ramp signal for generating VAV box flow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp vavBoxFlo3( duration=28800, height=1, offset=0.3) "Ramp signal for generating VAV box flow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp vavBoxFlo4( duration=28800, height=1, offset=0) "Ramp signal for generating VAV box flow rate"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine( freqHz=1/14400, offset=3, amplitude=2) "Generate sine signal "; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine1( freqHz=1/14400, offset=200, amplitude=150) "Generate sine signal"; Buildings.Controls.OBC.CDL.Continuous.Abs abs "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Continuous.Abs abs1 "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Continuous.Round round2(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 "Convert real to integer"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 "Convert real to integer"; Buildings.Controls.OBC.CDL.Continuous.Round round1(n=0) "Round real number to given digits"; equation connect(vavBoxFlo1.y, conSupFan.VBox_flow[1]); connect(vavBoxFlo2.y, conSupFan.VBox_flow[2]); connect(vavBoxFlo3.y, conSupFan.VBox_flow[3]); connect(vavBoxFlo4.y, conSupFan.VBox_flow[4]); connect(sine1.y, conSupFan.ducStaPre); connect(sine.y, abs1.u); connect(ram.y, abs.u); connect(abs1.y, round2.u); connect(round2.y, reaToInt1.u); connect(reaToInt1.y, conSupFan.uZonPreResReq); connect(abs.y, round1.u); connect(round1.y, reaToInt2.u); connect(reaToInt2.y, conSupFan.uOpeMod); end VAVSupplyFan;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.VAVSupplyTemperature Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.VAVSupplyTemperature

Validate model for calculating supply air temperature of multi zone VAV AHU

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.VAVSupplyTemperature

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.VAVSupplyTemperature for a change of outdoor temperature, operation mode, supply fan status, maximum supply temperature, to specify the supply air temperature for systems with multiple zones.

Modelica definition

model VAVSupplyTemperature "Validate model for calculating supply air temperature of multi zone VAV AHU" Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.VAVSupplyTemperature conTSetSup "Supply air temperature setpoint for multi zone system"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant setZonTem( k=22.5 + 273.15) "Average of heating and cooling setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine outTem( amplitude=5, freqHz=1/86400, offset=18 + 273.15) "Outdoor air temperature"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse supFanSta(period=43200) "Supply fan status"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp opeMod( offset=1, height=1, duration=90000) "Operation mode"; Buildings.Controls.OBC.CDL.Continuous.Abs abs "Block generates absolute value of input"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine sine( amplitude=6, freqHz=1/86400) "Block generates sine signal"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 "Convert real to integer"; Buildings.Controls.OBC.CDL.Continuous.Round round1(n=0) "Round real number to given digits"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 "Convert real to integer"; Buildings.Controls.OBC.CDL.Continuous.Round round2(n=0) "Round real number to given digits"; equation connect(supFanSta.y, conTSetSup.uSupFan); connect(outTem.y, conTSetSup.TOut); connect(setZonTem.y, conTSetSup.TSetZones); connect(sine.y, abs.u); connect(opeMod.y, round2.u); connect(round2.y, reaToInt2.u); connect(abs.y, round1.u); connect(round1.y, reaToInt1.u); connect(reaToInt1.y, conTSetSup.uZonTemResReq); connect(reaToInt2.y, conTSetSup.uOpeMod); end VAVSupplyTemperature;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.Valve Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.Valve

Validate model for controlling coil valve postion of multi zone VAV AHU

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.Validation.Valve

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.VAVSupplySignals for a change of the supply air temperature setpoint, measured supply air temperature and the supply fan status, to specify coil valve positions, and generate control loop signal.

Modelica definition

model Valve "Validate model for controlling coil valve postion of multi zone VAV AHU" Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.VAVSupplySignals AHUValve "Output valve position and supply air temperature control loop signal"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse supFanSta(period=7200) "Supply fan status"; Buildings.Controls.OBC.CDL.Continuous.Sources.Sine TSup( amplitude=2, offset=16 + 273.15, freqHz=1/7200) "Supply air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSupSet( height=3, duration=7200, offset=15 + 273.15) "Supply air temperature setpoint"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.SetPoints.VAVSupplySignals AHUValve1 "Output valve position and supply air temperature control loop signal"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanOn(k=true) "Fan on"; equation connect(TSupSet.y, AHUValve.TSetSup); connect(TSup.y, AHUValve.TSup); connect(supFanSta.y, AHUValve.uSupFan); connect(TSupSet.y, AHUValve1.TSetSup); connect(TSup.y, AHUValve1.TSup); connect(fanOn.y, AHUValve1.uSupFan); end Valve;