Collection of validation models
Information
This package contains validation models for the classes in
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.
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 |
Enable_FreProSta_ZonSta
|
Model validates economizer disable for heating zone state and activated freeze protection |
Enable_TOut_hOut
|
Model validates economizer disable in case outdoor air conditions are above cutoff |
Limits_Disable
|
Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits |
Limits_FanSpe_VOut_flow
|
Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits |
Modulation_TSup
|
Validation model for single zone VAV AHU outdoor and return air damper position modulation sequence |
Model validates economizer disable for heating zone state and activated freeze protection
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable
for the following control signals: zone state, freeze protection stage.
Modelica definition
model Enable_FreProSta_ZonSta
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable
enaDis ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable
enaDis1 ;
protected
final parameter Modelica.SIunits.Temperature TOutCutoff=297.15
;
final parameter Modelica.SIunits.SpecificEnergy hOutCutoff=65100
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutBelowCutoff(
final k=TOutCutoff - 2)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutCut(
final k=TOutCutoff)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutBelowCutoff(
final k=hOutCutoff - 1000)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutCut(
final k=hOutCutoff) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage0)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant zonSta(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.ZoneStates.heating)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta1(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage1)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant zonSta1(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.ZoneStates.deadband)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMax(
final k=0.9)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMin(
final k=0.1)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant supFanSta(
final k=true);
equation
connect(TOutBelowCutoff.y, enaDis.TOut);
connect(TOutCut.y, enaDis1.TOutCut);
connect(TOutBelowCutoff.y, enaDis1.TOut);
connect(hOutBelowCutoff.y, enaDis.hOut);
connect(hOutCut.y, enaDis.hOutCut);
connect(hOutBelowCutoff.y, enaDis1.hOut);
connect(hOutCut.y, enaDis1.hOutCut);
connect(zonSta.y, enaDis.uZonSta);
connect(freProSta.y, enaDis.uFreProSta);
connect(freProSta1.y, enaDis1.uFreProSta);
connect(zonSta1.y, enaDis1.uZonSta);
connect(outDamPosMax.y, enaDis.uOutDamPosMax);
connect(outDamPosMin.y, enaDis.uOutDamPosMin);
connect(outDamPosMin.y, enaDis1.uOutDamPosMin);
connect(outDamPosMax.y, enaDis1.uOutDamPosMax);
connect(supFanSta.y, enaDis.uSupFan);
connect(supFanSta.y, enaDis1.uSupFan);
connect(TOutCut.y, enaDis.TOutCut);
end Enable_FreProSta_ZonSta;
Model validates economizer disable in case outdoor air conditions are above cutoff
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable
for the following control signals: TOut
, TOutCut
,
hOut
, hOutCut
.
Modelica definition
model Enable_TOut_hOut
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutCut(
final k=TOutCutoff) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutCut1(
final k=hOutCutoff) ;
Buildings.Controls.OBC.CDL.Logical.TriggeredTrapezoid TOut(
final rising=1000,
final falling=800,
final amplitude=4,
final offset=TOutCutoff - 2) ;
Buildings.Controls.OBC.CDL.Logical.TriggeredTrapezoid hOut(
final amplitude=4000,
final offset=hOutCutoff - 2200,
final rising=1000,
final falling=800) ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable
enaDis ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable
enaDis1 ;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Enable
enaDis2(use_enthalpy=false)
;
protected
final parameter Modelica.SIunits.Temperature TOutCutoff=297.15
;
final parameter Modelica.SIunits.SpecificEnergy hOutCutoff=65100
;
final parameter Real outDamPosMin=0.1
;
final parameter Real outDamPosMax=0.9
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutCut(
final k=hOutCutoff) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutCut1(
final k=TOutCutoff) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutBelowCutoff(
final k=hOutCutoff - 1000)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutBelowCutoff(
final k=TOutCutoff - 2)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant zoneState(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.ZoneStates.deadband) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMaxSig(
final k=outDamPosMax)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMinSig(
final k=outDamPosMin)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage0)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant supFanSta(
final k=true) ;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(
final startTime=10,
final period=2000) ;
Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul1(
final startTime=10,
final period=2000) ;
equation
connect(TOutCut.y, enaDis.TOutCut);
connect(hOutCut.y, enaDis.hOutCut);
connect(freProSta.y, enaDis.uFreProSta);
connect(outDamPosMaxSig.y, enaDis.uOutDamPosMax);
connect(outDamPosMinSig.y, enaDis.uOutDamPosMin);
connect(enaDis.uZonSta, zoneState.y);
connect(TOutCut1.y, enaDis1.TOutCut);
connect(hOutCut1.y, enaDis1.hOutCut);
connect(hOutBelowCutoff.y, enaDis.hOut);
connect(TOutBelowCutoff.y, enaDis1.TOut);
connect(booPul.y, TOut.u);
connect(TOut.y, enaDis.TOut);
connect(booPul1.y, hOut.u);
connect(hOut.y, enaDis1.hOut);
connect(freProSta.y, enaDis1.uFreProSta);
connect(zoneState.y, enaDis1.uZonSta);
connect(outDamPosMaxSig.y, enaDis1.uOutDamPosMax);
connect(outDamPosMinSig.y, enaDis1.uOutDamPosMin);
connect(TOut.y, enaDis2.TOut);
connect(TOutCut.y, enaDis2.TOutCut);
connect(freProSta.y, enaDis2.uFreProSta);
connect(zoneState.y, enaDis2.uZonSta);
connect(outDamPosMaxSig.y, enaDis2.uOutDamPosMax);
connect(outDamPosMinSig.y, enaDis2.uOutDamPosMin);
connect(supFanSta.y, enaDis.uSupFan);
connect(supFanSta.y, enaDis1.uSupFan);
connect(supFanSta.y, enaDis2.uSupFan);
end Enable_TOut_hOut;
Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits
for the following control signals: VOut_flow
, VOutMinSet_flow
.
The control loop is always enabled in this example.
Modelica definition
model Limits_Disable
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits
damLim1(
final yFanMin=yFanMin,
final yFanMax=yFanMax,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow)
;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits
damLim2(
final yFanMin=yFanMin,
final yFanMax=yFanMax,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow)
;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits
damLim3(
final yFanMin=yFanMin,
final yFanMax=yFanMax,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow)
;
protected
final parameter Real yFanMin=0.1 ;
final parameter Real yFanMax=0.9 ;
final parameter Modelica.SIunits.VolumeFlowRate VOutDes_flow=2.0
;
final parameter Modelica.SIunits.VolumeFlowRate VOutMin_flow=1.0
;
final parameter Modelica.SIunits.VolumeFlowRate VOutSet_flow=0.71
;
final parameter Modelica.SIunits.VolumeFlowRate minVOutSet_flow=0.61
;
final parameter Modelica.SIunits.VolumeFlowRate incVOutSet_flow=0.2
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp SupFanSpeSig(
final duration=1800,
final offset=yFanMin,
final height=yFanMax - yFanMin) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOutMinSetSig(
final duration=1800,
final offset=VOutMin_flow,
final height=VOutDes_flow - VOutMin_flow) ;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus1(
final k=false) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta1(
k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage1)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode1(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus2(
final k=true) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta2(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage1)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode2(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.warmUp)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus3(
final k=true) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta3(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage2)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode3(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied)
;
equation
connect(SupFanSpeSig.y, damLim1.uSupFanSpe);
connect(VOutMinSetSig.y, damLim2.VOutMinSet_flow);
connect(fanStatus1.y, damLim1.uSupFan);
connect(freProSta1.y, damLim1.uFreProSta);
connect(operationMode1.y, damLim1.uOpeMod);
connect(fanStatus2.y,damLim2. uSupFan);
connect(freProSta2.y,damLim2. uFreProSta);
connect(operationMode2.y,damLim2. uOpeMod);
connect(fanStatus3.y,damLim3. uSupFan);
connect(freProSta3.y,damLim3. uFreProSta);
connect(operationMode3.y,damLim3. uOpeMod);
connect(VOutMinSetSig.y, damLim3.VOutMinSet_flow);
connect(VOutMinSetSig.y, damLim1.VOutMinSet_flow);
connect(SupFanSpeSig.y, damLim2.uSupFanSpe);
connect(SupFanSpeSig.y, damLim3.uSupFanSpe);
end Limits_Disable;
Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits
for the following control signals: VOut_flow
, VOutMinSet_flow
.
The control loop is always enabled in this example.
Modelica definition
model Limits_FanSpe_VOut_flow
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits
damLim(
final yFanMin=yFanMin,
final yFanMax=yFanMax,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow)
;
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Limits
damLim1(
final yFanMin=yFanMin,
final yFanMax=yFanMax,
final VOutMin_flow=VOutMin_flow,
final VOutDes_flow=VOutDes_flow)
;
protected
final parameter Real yFanMin=0.1 ;
final parameter Real yFanMax=0.9 ;
final parameter Real fanSpe = (yFanMax + yFanMin)/2 ;
final parameter Modelica.SIunits.VolumeFlowRate VOutDes_flow=2.0
;
final parameter Modelica.SIunits.VolumeFlowRate VOutMin_flow=1.0
;
final parameter Modelica.SIunits.VolumeFlowRate VOutSet_flow=(VOutDes_flow + VOutMin_flow)/2
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus(
final k=true) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage0)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode(
final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant VOutMinSetSig(
final k=VOutSet_flow)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp SupFanSpeSig(
final duration=1800,
final offset=yFanMin,
final height=yFanMax - yFanMin) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOutMinSetSig1(
final duration=1800,
final offset=VOutMin_flow,
final height=VOutDes_flow - VOutMin_flow) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant SupFanSpeSig1(
final k=fanSpe) ;
equation
connect(freProSta.y, damLim.uFreProSta);
connect(damLim.uSupFan, fanStatus.y);
connect(operationMode.y, damLim.uOpeMod);
connect(fanStatus.y, damLim1.uSupFan);
connect(operationMode.y, damLim1.uOpeMod);
connect(freProSta.y, damLim1.uFreProSta);
connect(VOutMinSetSig.y, damLim.VOutMinSet_flow);
connect(SupFanSpeSig.y, damLim.uSupFanSpe);
connect(SupFanSpeSig1.y, damLim1.uSupFanSpe);
connect(VOutMinSetSig1.y, damLim1.VOutMinSet_flow);
end Limits_FanSpe_VOut_flow;
Validation model for single zone VAV AHU outdoor and return air damper position modulation sequence
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.VAV.Economizers.Subsequences.Modulation
for supply air temeperature TSup
and supply air temperature heating setpoint TSupSet
control signals.
Modelica definition