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

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.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.SingleZone.VAV.Economizers.Validation.Controller_Disable Controller_Disable Validation model for disabling the single zone VAV AHU economizer modulation and damper position limit control loops
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Validation.Controller_Mod_DamLim Controller_Mod_DamLim Validation model for single zone VAV AHU economizer operation: damper modulation and minimum ooutdoor air requirement damper position limits

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

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

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

Information

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

Modelica definition

model Controller_Disable "Validation model for disabling the single zone VAV AHU economizer modulation and damper position limit control loops" Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller economizer( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1_2016, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1A, final supFanSpe_min=supFanSpe_min, final supFanSpe_max=supFanSpe_max, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single zone VAV AHU economizer"; Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller economizer1( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1_2016, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1A, final supFanSpe_min=supFanSpe_min, final supFanSpe_max=supFanSpe_max, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single 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 TSupSet( final unit="K", final displayUnit="degC", final quantity="ThermodynamicTemperature")=291.15 "Supply air temperature setpoint"; final parameter Real supFanSpe_min( final min=0, final max=1, final unit="1")=0.1 "Minimum supply fan operation speed"; final parameter Real supFanSpe_max( final min=0, final max=1, final unit="1")=0.9 "Maximum supply fan operation speed"; final parameter Real VOutMin_flow( final unit="m3/s", final quantity="VolumeFlowRate")=1.0 "Calculated minimum outdoor airflow rate"; final parameter Real VOutDes_flow( final unit="m3/s", final quantity="VolumeFlowRate")=2.0 "Calculated design outdoor airflow rate"; 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 stage is 0"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant zonSta( final k=Buildings.Controls.OBC.ASHRAE.G36.Types.ZoneStates.heating) "Zone State is heating"; 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 hOutBelowCutoff( final k=hOutCutoff - 40000) "Outdoor air enthalpy is below the cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSupSetSig( final k=TSupSet) "Heating supply air temperature setpoint"; 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.Continuous.Sources.Constant TOutBelowCutoff( final k=TOutCutoff - 30) "Outdoor air temperature is below the cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup( final height=4, final offset=TSupSet - 2, final duration=1800) "Supply air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOutMinSetSig( final duration=1800, final offset=VOutMin_flow, final height=VOutDes_flow - VOutMin_flow) "Minimum outdoor airflow setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp SupFanSpeSig( final duration=1800, final offset=supFanSpe_min, final height=supFanSpe_max - supFanSpe_min) "Supply fan speed signal"; equation connect(fanSta.y, economizer.u1SupFan); connect(hOutBelowCutoff.y, economizer.hOut); connect(TSup.y, economizer.TAirSup); connect(TOutBelowCutoff.y, economizer1.TOut); connect(hOutBelowCutoff.y, economizer1.hOut); connect(TSup.y, economizer1.TAirSup); connect(fanSta.y, economizer1.u1SupFan); connect(freProSta2.y, economizer1.uFreProSta); connect(zonSta.y, economizer.uZonSta); connect(opeMod.y, economizer.uOpeMod); connect(opeMod.y, economizer1.uOpeMod); connect(zonSta.y, economizer1.uZonSta); connect(VOutMinSetSig.y, economizer.VOutMinSet_flow); connect(SupFanSpeSig.y, economizer.uSupFan_actual); connect(VOutMinSetSig.y, economizer1.VOutMinSet_flow); connect(SupFanSpeSig.y, economizer1.uSupFan_actual); connect(freProSta.y, economizer.uFreProSta); connect(TSupSetSig.y, economizer1.TSupHeaEcoSet); connect(TOutBelowCutoff.y, economizer.TOut); connect(TSupSetSig.y, economizer.TSupHeaEcoSet); end Controller_Disable;

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

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

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

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller control loops: minimum outdoor air damper position limits control loop (economizer block) and modulation control loop (economizer1 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 single zone VAV AHU economizer operation: damper modulation and minimum ooutdoor air requirement damper position limits" Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller economizer( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1_2016, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1A, final supFanSpe_min=supFanSpe_min, final supFanSpe_max=supFanSpe_max, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single zone VAV AHU economizer"; Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller economizer1( final eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1_2016, final ecoHigLimCon=Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb, final ashCliZon=Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Zone_1A, final supFanSpe_min=supFanSpe_min, final supFanSpe_max=supFanSpe_max, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single zone VAV AHU economizer"; protected parameter Real TOutCutoff( final unit="K", final displayUnit="degC", final quantity="ThermodynamicTemperature")=297.15 "Outdoor temperature high limit cutoff"; parameter Real hOutCutoff( final unit="J/kg", final quantity="SpecificEnergy")=65100 "Outdoor air enthalpy high limit cutoff"; parameter Real TSupSet( final unit="K", final displayUnit="degC", final quantity="ThermodynamicTemperature")=291.15 "Supply air temperature Heating setpoint"; parameter Real TSup( final unit="K", final displayUnit="degC", final quantity="ThermodynamicTemperature")=290.15 "Measured supply air temperature"; parameter Real supFanSpe_min( final min=0, final max=1, final unit="1") = 0.1 "Minimum supply fan operation speed"; parameter Real supFanSpe_max( final min=0, final max=1, final unit="1") = 0.9 "Maximum supply fan operation speed"; parameter Real VOutMin_flow( final unit="m3/s", final quantity="VolumeFlowRate") = 1.0 "Calculated minimum outdoor airflow rate"; parameter Real VOutDes_flow( final unit="m3/s", final quantity="VolumeFlowRate") = 2.0 "Calculated design outdoor airflow rate"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta( 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 zonSta( final k=Buildings.Controls.OBC.ASHRAE.G36.Types.ZoneStates.deadband) "Zone State is deadband"; 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 hOutBelowCutoff( final k=hOutCutoff - 10000) "Outdoor air enthalpy is slightly below the cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutBelowCutoff( final k=TOutCutoff - 5) "Outdoor air temperature is slightly below the cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSupSetSig( final k=TSupSet) "Heating supply air temperature setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSupSig( final k=TSup) "Measured supply air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSupSig1( final duration=900, final height=2, final offset=TSupSet - 1) "Measured supply air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOutMinSetSig( final duration=1800, final offset=VOutMin_flow, final height=VOutDes_flow - VOutMin_flow) "Minimum outdoor airflow setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp SupFanSpeSig( final duration=1800, final offset=supFanSpe_min, final height=supFanSpe_max - supFanSpe_min) "Supply fan speed signal"; equation connect(fanSta.y, economizer.u1SupFan); connect(opeMod.y, economizer.uOpeMod); connect(hOutBelowCutoff.y, economizer.hOut); connect(TSupSetSig.y, economizer.TSupHeaEcoSet); connect(TSupSig.y, economizer.TAirSup); connect(TSupSig1.y, economizer1.TAirSup); connect(fanSta.y, economizer1.u1SupFan); connect(freProSta.y, economizer1.uFreProSta); connect(opeMod.y, economizer1.uOpeMod); connect(zonSta.y, economizer1.uZonSta); connect(VOutMinSetSig.y, economizer.VOutMinSet_flow); connect(VOutMinSetSig.y, economizer1.VOutMinSet_flow); connect(TOutBelowCutoff.y, economizer1.TOut); connect(SupFanSpeSig.y, economizer.uSupFan_actual); connect(TOutBelowCutoff.y, economizer.TOut); connect(zonSta.y, economizer.uZonSta); connect(freProSta.y, economizer.uFreProSta); connect(TSupSetSig.y, economizer1.TSupHeaEcoSet); connect(SupFanSpeSig.y, economizer1.uSupFan_actual); end Controller_Mod_DamLim;