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

Collection of validation models

Information

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

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.Economizers.Validation.Controller_Disable Controller_Disable Validation model for disabling the multi zone VAV AHU economizer modulation and damper position limit control loops
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Validation.Controller_Mod_DamLim Controller_Mod_DamLim Validation model for multi zone VAV AHU economizer operation: damper modulation and minimum ooutdoor air requirement damper position limits

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

Validation model for disabling the multi zone VAV AHU economizer modulation and damper position limit control loops

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

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller for control signals which disable modulation control loop only (eco block) and both minimum outdoor airflow and modulation control loops (eco1 block).

Modelica definition

model Controller_Disable "Validation model for disabling the multi zone VAV AHU economizer modulation and damper position limit control loops" Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller eco( final minOADes=Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.SingleDamper, final buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper, 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, final minOAConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI) "Multi zone VAV AHU economizer "; Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller eco1( final minOADes=Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.SingleDamper, final buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefDamper, 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_1A, final minOAConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI) "Multi zone VAV AHU economizer"; protected final parameter Real TOutCutoff( final unit="K", final displayUnit="degC", final quantity="ThermodynamicTemperature")=297.15 "Outdoor temperature high limit cutoff"; final parameter Real hOutCutoff( final unit="J/kg", final quantity="SpecificEnergy")=65100 "Outdoor air enthalpy high limit cutoff"; final parameter Real minVOutSet_flow( final unit="m3/s", final quantity="VolumeFlowRate")=0.71 "Example volumetric airflow setpoint, 15cfm/occupant, 100 occupants"; final parameter Real VOutMin_flow( final unit="m3/s", final quantity="VolumeFlowRate")=0.61 "Minimal measured volumetric airflow"; final parameter Real incVOutSet_flow( final unit="m3/s", final quantity="VolumeFlowRate")=(minVOutSet_flow - VOutMin_flow)*2.2 "Maximum volumetric airflow increase during the example simulation"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta(final k=true) "Fan is on"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta( final k=Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0) "Freeze protection status is 0"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta2( final k=Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage2) "Freeze protection stage is 2"; 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 hOutBelowCutoff( final k=hOutCutoff - 40000) "Outdoor air enthalpy is below the cutoff"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOutBelowCutoff( final k=TOutCutoff - 30) "Outdoor air temperature is below the cutoff"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow( final k=minVOutSet_flow) "Outdoor airflow rate setpoint, example assumes 15cfm/occupant and 100 occupants"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow( final height=incVOutSet_flow, final offset=VOutMin_flow, final duration=1800) "Measured outdoor air volumetric airflow"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp uTSup( final duration=1800, final height=2, final offset=-1) "Supply air temperature control signal"; equation connect(fanSta.y, eco.u1SupFan); connect(freProSta.y, eco.uFreProSta); connect(TOutBelowCutoff.y, eco.TOut); connect(VOut_flow.y, eco.VOut_flow_normalized); connect(VOutMinSet_flow.y, eco.VOutMinSet_flow_normalized); connect(TOutBelowCutoff.y, eco1.TOut); connect(VOut_flow.y, eco1.VOut_flow_normalized); connect(VOutMinSet_flow.y, eco1.VOutMinSet_flow_normalized); connect(fanSta.y, eco1.u1SupFan); connect(opeMod.y, eco.uOpeMod); connect(opeMod.y, eco1.uOpeMod); connect(uTSup.y, eco.uTSup); connect(uTSup.y, eco1.uTSup); connect(freProSta2.y, eco1.uFreProSta); connect(hOutBelowCutoff.y, eco1.hAirOut); end Controller_Disable;

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

Validation model for multi zone VAV AHU economizer operation: damper modulation and minimum ooutdoor air requirement damper position limits

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

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller control loops: minimum outdoor air damper position limits control loop (eco block) and modulation control loop (eco1 block) for VOut_flow and TSup control signals. Both control loops are enabled during the validation test.

Modelica definition

model Controller_Mod_DamLim "Validation model for multi zone VAV AHU economizer operation: damper modulation and minimum ooutdoor air requirement damper position limits" Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller eco( final minOADes=Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow, final buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefFan, 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) "Multi zone VAV AHU economizer"; Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller eco1( final minOADes=Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure, final buiPreCon=Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanMeasuredAir, 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, final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1) "Multi zone VAV AHU economizer"; protected final parameter Real TOutCutoff( final unit="K", final displayUnit="degC", final quantity="ThermodynamicTemperature")=297.15 "Outdoor temperature high limit cutoff"; final parameter Real minVOutSet_flow( final unit="m3/s", final quantity="VolumeFlowRate")=0.71 "Example volumetric airflow setpoint, 15cfm/occupant, 100 occupants"; final parameter Real VOutMin_flow( final unit="m3/s", final quantity="VolumeFlowRate")=0.61 "Minimal measured volumetric airflow"; final parameter Real incVOutSet_flow( final unit="m3/s", final quantity="VolumeFlowRate")=(minVOutSet_flow - VOutMin_flow)*2.2 "Maximum volumetric airflow increase during the example simulation"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta(final k=true) "Fan is on"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta( final k=Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0) "Freeze protection status is 0"; 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 TOutBelowCutoff( final k=TOutCutoff - 5) "Outdoor air temperature is slightly below the cutoff"; Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow( final k=minVOutSet_flow) "Outdoor airflow rate setpoint, example assumes 15cfm/occupant and 100 occupants"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow( final offset=VOutMin_flow, final duration=1800, final height=incVOutSet_flow) "Measured outdoor air volumetric airflow"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp uTSup( final duration=1800, final height=2, final offset=-1) "Supply air temperature control signal"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supFanSpe( final duration=1800, final height=0.5, final offset=0.2) "Supply fan speed"; Buildings.Controls.OBC.CDL.Reals.Sources.Ramp dpDam2( final duration=1800, final offset=120, final height=52) "Pressure accross outdoor air damper"; equation connect(fanSta.y, eco.u1SupFan); connect(freProSta.y, eco.uFreProSta); connect(opeMod.y, eco.uOpeMod); connect(TOutBelowCutoff.y, eco.TOut); connect(VOut_flow.y, eco.VOut_flow_normalized); connect(VOutMinSet_flow.y, eco.VOutMinSet_flow_normalized); connect(TOutBelowCutoff.y, eco1.TOut); connect(VOutMinSet_flow.y, eco1.VOutMinSet_flow_normalized); connect(fanSta.y, eco1.u1SupFan); connect(freProSta.y, eco1.uFreProSta); connect(opeMod.y, eco1.uOpeMod); connect(uTSup.y, eco.uTSup); connect(uTSup.y, eco1.uTSup); connect(supFanSpe.y, eco.uSupFan); connect(supFanSpe.y, eco1.uSupFan); connect(dpDam2.y, eco1.dpMinOutDam); end Controller_Mod_DamLim;