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 |
Controller_Disable
|
Validation model for disabling the multi zone VAV AHU economizer modulation and damper position limit control loops |
Controller_Mod_DamLim
|
Validation model for multi zone VAV AHU economizer operation: damper modulation and minimum ooutdoor air requirement damper position limits |
Validation model for disabling the multi zone VAV AHU economizer modulation and damper position limit control loops
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
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.BuildingPressureControlTypes.ReliefDamper,
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 minOAConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI)
;
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.BuildingPressureControlTypes.ReliefDamper,
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 minOAConTyp=Buildings.Controls.OBC.CDL.Types.SimpleController.PI)
;
protected
final parameter Real TOutCutoff(
final unit="K",
final displayUnit="degC",
final quantity="ThermodynamicTemperature")=297.15
;
final parameter Real hOutCutoff(
final unit="J/kg",
final quantity="SpecificEnergy")=65100
;
final parameter Real minVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.71
;
final parameter Real VOutMin_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.61
;
final parameter Real incVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=(minVOutSet_flow - VOutMin_flow)*2.2
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta(
final k=true)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta2(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage2)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutBelowCutoff(
final k=hOutCutoff - 40000) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutBelowCutoff(
final k=TOutCutoff - 30) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant VOutMinSet_flow(
final k=minVOutSet_flow)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOut_flow(
final height=incVOutSet_flow,
final offset=VOutMin_flow,
final duration=1800) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp uTSup(
final duration=1800,
final height=2,
final offset=-1)
;
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;
Validation model for multi zone VAV AHU economizer operation: damper modulation and minimum ooutdoor air requirement damper position limits
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
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.BuildingPressureControlTypes.ReliefFan,
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)
;
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.BuildingPressureControlTypes.ReturnFanMeasuredAir,
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_1B,
final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1_2016)
;
protected
final parameter Real TOutCutoff(
final unit="K",
final displayUnit="degC",
final quantity="ThermodynamicTemperature")=297.15
;
final parameter Real minVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.71
;
final parameter Real VOutMin_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.61
;
final parameter Real incVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=(minVOutSet_flow - VOutMin_flow)*2.2
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta(
final k=true)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage0)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutBelowCutoff(
final k=TOutCutoff - 5) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant VOutMinSet_flow(
final k=minVOutSet_flow)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOut_flow(
final offset=VOutMin_flow,
final duration=1800,
final height=incVOutSet_flow) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp uTSup(
final duration=1800,
final height=2,
final offset=-1)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp supFanSpe(
final duration=1800,
final height=0.5,
final offset=0.2) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp dpDam2(
final duration=1800,
final offset=120,
final height=52) ;
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_actual);
connect(supFanSpe.y, eco1.uSupFan_actual);
connect(dpDam2.y, eco1.dpMinOutDam);
end Controller_Mod_DamLim;