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

Collection of validation models

Information

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

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.VAV.SetPoints.OutdoorAirFlow.Validation.OutdoorAirFlow OutdoorAirFlow Validate the sequences of setting AHU level minimum outdoor airflow rate

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

Validate the sequences of setting AHU level minimum outdoor airflow rate

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

Information

This model shows how to compose the subsequences to find the minimum outdoor airflow setpoint of an AHU unit that serves three zones.

Modelica definition

model OutdoorAirFlow "Validate the sequences of setting AHU level minimum outdoor airflow rate" Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Zone zon1( AFlo=40, have_winSen=false, desZonPop=4, minZonPriFlo=0.08) "Outdoor airflow related calculations for zone 1"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Zone zon2( AFlo=35, desZonPop=4, minZonPriFlo=0.08) "Outdoor airflow related calculations for zone 2"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.Zone zon3( AFlo=30, desZonPop=3, minZonPriFlo=0.06) "Outdoor airflow related calculations for zone 3"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.AHU ahu1(VPriSysMax_flow=0.6, peaSysPop=12) "AHU level minimum outdoor airflow setpoint"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.MultiZone.VAV.SetPoints.OutdoorAirFlow.SumZone zonToAhu( final numZon=3) "From zone level to AHU level"; protected Buildings.Controls.OBC.CDL.Logical.Sources.Constant supFan(k=true) "Status of supply fan"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod( final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied) "AHU operation mode is Occupied"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc2( duration=3600, height=3) "Occupant number in zone 2"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt1 "Convert real to integer"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc3( duration=3600, height=3, startTime=900) "Occupant number in zone 3"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt2 "Convert real to integer"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant winSta(k=false) "Status of windows"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse winSta1(period=3600) "Status of windows"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp numOfOcc4( duration=3600, startTime=900, height=2) "Occupant number"; Buildings.Controls.OBC.CDL.Conversions.RealToInteger reaToInt3 "Convert real to integer"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TZon( height=6, offset=280.15, duration=3600) "Measured zone temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TDis( height=4, duration=3600, offset=281.15) "Terminal unit discharge air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant zonPriFloRat(k=0.1) "Measured primary flow rate at VAV box"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant zonPriFloRat1(k=0.12) "Measured primary flow rate at VAV box"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant zonPriFloRat2(k=0.09) "Measured primary flow rate at VAV box"; equation connect(zon1.yDesZonPeaOcc,zonToAhu. uDesZonPeaOcc[1]); connect(zon2.yDesZonPeaOcc,zonToAhu. uDesZonPeaOcc[2]); connect(zon3.yDesZonPeaOcc,zonToAhu. uDesZonPeaOcc[3]); connect(zon1.VDesPopBreZon_flow,zonToAhu. VDesPopBreZon_flow[1]); connect(zon2.VDesPopBreZon_flow,zonToAhu. VDesPopBreZon_flow[2]); connect(zon3.VDesPopBreZon_flow,zonToAhu. VDesPopBreZon_flow[3]); connect(zon1.VDesAreBreZon_flow,zonToAhu. VDesAreBreZon_flow[1]); connect(zon2.VDesAreBreZon_flow,zonToAhu. VDesAreBreZon_flow[2]); connect(zon3.VDesAreBreZon_flow,zonToAhu. VDesAreBreZon_flow[3]); connect(zon1.yDesPriOutAirFra,zonToAhu. uDesPriOutAirFra[1]); connect(zon2.yDesPriOutAirFra,zonToAhu. uDesPriOutAirFra[2]); connect(zon3.yDesPriOutAirFra,zonToAhu. uDesPriOutAirFra[3]); connect(zon1.VUncOutAir_flow,zonToAhu. VUncOutAir_flow[1]); connect(zon2.VUncOutAir_flow,zonToAhu. VUncOutAir_flow[2]); connect(zon3.VUncOutAir_flow,zonToAhu. VUncOutAir_flow[3]); connect(zon1.yPriOutAirFra,zonToAhu. uPriOutAirFra[1]); connect(zon2.yPriOutAirFra,zonToAhu. uPriOutAirFra[2]); connect(zon3.yPriOutAirFra,zonToAhu. uPriOutAirFra[3]); connect(zon1.VPriAir_flow,zonToAhu. VPriAir_flow[1]); connect(zon2.VPriAir_flow,zonToAhu. VPriAir_flow[2]); connect(zon3.VPriAir_flow,zonToAhu. VPriAir_flow[3]); connect(zonToAhu.ySumDesZonPop,ahu1. sumDesZonPop); connect(zonToAhu.VSumDesPopBreZon_flow,ahu1. VSumDesPopBreZon_flow); connect(zonToAhu.VSumDesAreBreZon_flow,ahu1. VSumDesAreBreZon_flow); connect(zonToAhu.yDesSysVenEff,ahu1. uDesSysVenEff); connect(zonToAhu.VSumUncOutAir_flow,ahu1. VSumUncOutAir_flow); connect(zonToAhu.uOutAirFra_max,ahu1. uOutAirFra_max); connect(zonToAhu.VSumSysPriAir_flow,ahu1. VSumSysPriAir_flow); connect(ahu1.yAveOutAirFraPlu,zonToAhu. yAveOutAirFraPlu); connect(supFan.y,ahu1. uSupFan); connect(opeMod.y,ahu1. uOpeMod); connect(ahu1.yReqOutAir, zon1.uReqOutAir); connect(ahu1.yReqOutAir, zon2.uReqOutAir); connect(ahu1.yReqOutAir, zon3.uReqOutAir); connect(numOfOcc2.y,reaToInt1. u); connect(numOfOcc3.y, reaToInt2.u); connect(reaToInt1.y, zon1.nOcc); connect(reaToInt2.y, zon2.nOcc); connect(numOfOcc4.y, reaToInt3.u); connect(reaToInt3.y, zon3.nOcc); connect(winSta1.y, zon3.uWin); connect(winSta.y, zon2.uWin); connect(TZon.y, zon1.TZon); connect(TZon.y, zon2.TZon); connect(TZon.y, zon3.TZon); connect(TDis.y, zon1.TDis); connect(TDis.y, zon2.TDis); connect(TDis.y, zon3.TDis); connect(zonPriFloRat2.y, zon3.VDis_flow); connect(zonPriFloRat1.y, zon2.VDis_flow); connect(zonPriFloRat.y, zon1.VDis_flow); connect(ahu1.VDesUncOutAir_flow, zon1.VUncOut_flow_nominal); connect(ahu1.VDesUncOutAir_flow, zon2.VUncOut_flow_nominal); connect(ahu1.VDesUncOutAir_flow, zon3.VUncOut_flow_nominal); end OutdoorAirFlow;