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 |
Controller_Disable
|
Validation model for disabling the single zone VAV AHU economizer modulation and damper position limit control loops |
Controller_Mod_DamLim
|
Validation model for single zone VAV AHU economizer operation: damper modulation and minimum ooutdoor air requirement damper position limits |
Validation model for disabling the single zone VAV AHU economizer modulation and damper position limit control loops
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
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller economizer(
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 supFanSpe_min=supFanSpe_min,
final supFanSpe_max=supFanSpe_max,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow) ;
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller economizer1(
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 supFanSpe_min=supFanSpe_min,
final supFanSpe_max=supFanSpe_max,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow) ;
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 TSupSet(
final unit="K",
final displayUnit="degC",
final quantity="ThermodynamicTemperature")=291.15
;
final parameter Real supFanSpe_min(
final min=0,
final max=1,
final unit="1")=0.1 ;
final parameter Real supFanSpe_max(
final min=0,
final max=1,
final unit="1")=0.9 ;
final parameter Real VOutMin_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=1.0
;
final parameter Real VOutDes_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=2.0
;
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 zonSta(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.ZoneStates.heating)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant hOutBelowCutoff(
final k=hOutCutoff - 40000)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TSupSetSig(
final k=TSupSet) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta2(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeProtectionStages.stage2)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOutBelowCutoff(
final k=TOutCutoff - 30)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TSup(
final height=4,
final offset=TSupSet - 2,
final duration=1800) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOutMinSetSig(
final duration=1800,
final offset=VOutMin_flow,
final height=VOutDes_flow - VOutMin_flow)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp SupFanSpeSig(
final duration=1800,
final offset=supFanSpe_min,
final height=supFanSpe_max - supFanSpe_min) ;
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;
Validation model for single 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.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
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller economizer(
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 supFanSpe_min=supFanSpe_min,
final supFanSpe_max=supFanSpe_max,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow) ;
Buildings.Controls.OBC.ASHRAE.G36.AHUs.SingleZone.VAV.Economizers.Controller economizer1(
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 supFanSpe_min=supFanSpe_min,
final supFanSpe_max=supFanSpe_max,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow) ;
protected
parameter Real TOutCutoff(
final unit="K",
final displayUnit="degC",
final quantity="ThermodynamicTemperature")=297.15
;
parameter Real hOutCutoff(
final unit="J/kg",
final quantity="SpecificEnergy")=65100
;
parameter Real TSupSet(
final unit="K",
final displayUnit="degC",
final quantity="ThermodynamicTemperature")=291.15
;
parameter Real TSup(
final unit="K",
final displayUnit="degC",
final quantity="ThermodynamicTemperature")=290.15
;
parameter Real supFanSpe_min(
final min=0,
final max=1,
final unit="1") = 0.1 ;
parameter Real supFanSpe_max(
final min=0,
final max=1,
final unit="1") = 0.9 ;
parameter Real VOutMin_flow(
final unit="m3/s",
final quantity="VolumeFlowRate") = 1.0 ;
parameter Real VOutDes_flow(
final unit="m3/s",
final quantity="VolumeFlowRate") = 2.0 ;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta(
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 zonSta(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.ZoneStates.deadband)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant hOutBelowCutoff(
final k=hOutCutoff - 10000)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TOutBelowCutoff(
final k=TOutCutoff - 5)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TSupSetSig(
final k=TSupSet) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant TSupSig(
final k=TSup) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp TSupSig1(
final duration=900,
final height=2,
final offset=TSupSet - 1) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOutMinSetSig(
final duration=1800,
final offset=VOutMin_flow,
final height=VOutDes_flow - VOutMin_flow) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp SupFanSpeSig(
final duration=1800,
final offset=supFanSpe_min,
final height=supFanSpe_max - supFanSpe_min) ;
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;