Collection of validation models
Information
This package contains validation models for the classes in
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.
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 |
Common_LoopDisable
|
Validation model for the multi zone VAV AHU minimum outdoor air control - damper position limits |
Common_VOut_flow
|
Validation model for the multi zone VAV AHU minimum outdoor air control - damper position limits |
SeparateWithAFMS
|
Validation model for the minimum outdoor air control - damper position limits for the units with separated outdoor air control |
SeparateWithDP
|
Validation model for the minimum outdoor air control - damper position limits for the units with separated outdoor air control |
Validation model for the multi zone VAV AHU minimum outdoor air control - damper position limits
Information
This example validates enable/disable conditions for
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common
for the following input signals: u1SupFan
, uFreProSta
, uOpeMod
.
Modelica definition
model Common_LoopDisable
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow(
final k=VOutSet_flow)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet1_flow(
final k=VOutSet_flow)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta(
final k=false) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod1(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.warmUp)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow(
final duration=1800,
final offset=minVOutSet_flow,
final height=incVOutSet_flow) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut1_flow(
final duration=1800,
final offset=minVOutSet_flow,
final height=incVOutSet_flow)
;
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common
damLim
;
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common
damLim1
;
protected
final parameter Real VOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.71
;
final parameter Real minVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.61
;
final parameter Real incVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.2
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus1(
final k=true) ;
equation
connect(VOut_flow.y, damLim.VOut_flow_normalized);
connect(VOutMinSet_flow.y, damLim.VOutMinSet_flow_normalized);
connect(fanSta.y, damLim.u1SupFan);
connect(VOut1_flow.y, damLim1.VOut_flow_normalized);
connect(VOutMinSet1_flow.y, damLim1.VOutMinSet_flow_normalized);
connect(fanStatus1.y, damLim1.u1SupFan);
connect(opeMod.y, damLim.uOpeMod);
connect(opeMod1.y, damLim1.uOpeMod);
end Common_LoopDisable;
Validation model for the multi zone VAV AHU minimum outdoor air control - damper position limits
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common
for the following control signals: VOut_flow
, VOutMinSet_flow
. The control loop is always enabled in this
example.
Modelica definition
Validation model for the minimum outdoor air control - damper position limits for the units with separated outdoor air control
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS
for the following control signals: VOut_flow
, VOutMinSet_flow
.
Modelica definition
model SeparateWithAFMS
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS
disMinCon(
final minSpe=0.1)
;
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS
disMinCon1(
final minSpe=0.1)
;
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS
minCon(
final minSpe=0.1)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow(
final k=minVOutSet_flow)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow(
final duration=1800,
final offset=VOutMin_flow,
final height=incVOutSet_flow)
;
protected
parameter Real minVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.71
;
parameter Real VOutMin_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.61
;
parameter Real incVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=(minVOutSet_flow-VOutMin_flow)*2
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus(
final k=true) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod1(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.warmUp)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow1(
final k=minVOutSet_flow)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta(
final k=false)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow1(
final duration=1800,
final offset=minVOutSet_flow,
final height=incVOutSet_flow)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp outDamPos(
final duration=1800,
final offset=0.1,
final height=0.5) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant supFanSpe(
final k=0) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow2(
final k=minVOutSet_flow)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta1(
final k=true)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp VOut_flow2(
final duration=1800,
final offset=minVOutSet_flow,
final height=incVOutSet_flow) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp outDamPos1(
final duration=1800,
final offset=0.1,
final height=0.5) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant supFanSpe1(
final k=0.2) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp outDamPos2(
final duration=1800,
final offset=0.1,
final height=0.5) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supFanSpe2(
final height=0.5,
final duration=1800,
final offset=0.1)
;
equation
connect(VOut_flow.y,minCon. VOut_flow_normalized);
connect(VOutMinSet_flow.y,minCon. VOutMinSet_flow_normalized);
connect(fanStatus.y, minCon.u1SupFan);
connect(operationMode.y,minCon. uOpeMod);
connect(VOutMinSet_flow1.y, disMinCon.VOutMinSet_flow_normalized);
connect(VOut_flow1.y, disMinCon.VOut_flow_normalized);
connect(fanSta.y, disMinCon.u1SupFan);
connect(opeMod.y, disMinCon.uOpeMod);
connect(outDamPos.y, disMinCon.uOutDam);
connect(supFanSpe.y, disMinCon.uSupFan);
connect(VOutMinSet_flow2.y, disMinCon1.VOutMinSet_flow_normalized);
connect(VOut_flow2.y, disMinCon1.VOut_flow_normalized);
connect(fanSta1.y, disMinCon1.u1SupFan);
connect(opeMod1.y, disMinCon1.uOpeMod);
connect(outDamPos1.y, disMinCon1.uOutDam);
connect(supFanSpe1.y, disMinCon1.uSupFan);
connect(outDamPos2.y, minCon.uOutDam);
connect(supFanSpe2.y, minCon.uSupFan);
end SeparateWithAFMS;
Validation model for the minimum outdoor air control - damper position limits for the units with separated outdoor air control
Information
This example validates
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP
for the following control signals: VOut_flow
, VOutMinSet_flow
.
Modelica definition
model SeparateWithDP
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP
disMinCon(
final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1,
final dpDesMinOutDam=300,
final minSpe=0.1)
;
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP
disMinCon1(
final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1,
final dpDesMinOutDam=300,
final minSpe=0.1)
;
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP
minCon(
final venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.ASHRAE62_1,
final dpDesMinOutDam=300,
final minSpe=0.1)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow(
final k=minVOutSet_flow)
;
protected
parameter Real minVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.71
;
parameter Real VOutMin_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=0.61
;
parameter Real incVOutSet_flow(
final unit="m3/s",
final quantity="VolumeFlowRate")=(minVOutSet_flow-VOutMin_flow)*2
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus(
final k=true) ;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.occupied)
;
Buildings.Controls.OBC.CDL.Integers.Sources.Constant opeMod1(
final k=Buildings.Controls.OBC.ASHRAE.G36.Types.OperationModes.warmUp)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow1(
final k=minVOutSet_flow)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta(
final k=false)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp outDamPos(
final duration=1800,
final offset=0.1,
final height=0.5) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant supFanSpe(
final k=0) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant VOutMinSet_flow2(
final k=minVOutSet_flow)
;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanSta1(
final k=true)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp outDamPos1(
final duration=1800,
final offset=0.1,
final height=0.5) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Constant supFanSpe1(
final k=0.2) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp outDamPos2(
final duration=1800,
final offset=0.1,
final height=0.5) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp supFanSpe2(
final height=0.5,
final duration=1800,
final offset=0.1)
;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp dpDam(
final duration=1800,
final offset=250,
final height=100) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp dpDam1(
final duration=1800,
final offset=250,
final height=100) ;
Buildings.Controls.OBC.CDL.Reals.Sources.Ramp dpDam2(
final duration=1800,
final offset=120,
final height=52) ;
equation
connect(VOutMinSet_flow.y,minCon. VOutMinSet_flow_normalized);
connect(fanStatus.y, minCon.u1SupFan);
connect(operationMode.y,minCon. uOpeMod);
connect(VOutMinSet_flow1.y, disMinCon.VOutMinSet_flow_normalized);
connect(fanSta.y, disMinCon.u1SupFan);
connect(opeMod.y, disMinCon.uOpeMod);
connect(outDamPos.y, disMinCon.uOutDam);
connect(supFanSpe.y, disMinCon.uSupFan);
connect(VOutMinSet_flow2.y, disMinCon1.VOutMinSet_flow_normalized);
connect(fanSta1.y, disMinCon1.u1SupFan);
connect(opeMod1.y, disMinCon1.uOpeMod);
connect(outDamPos1.y, disMinCon1.uOutDam);
connect(supFanSpe1.y, disMinCon1.uSupFan);
connect(outDamPos2.y, minCon.uOutDam);
connect(supFanSpe2.y, minCon.uSupFan);
connect(dpDam.y, disMinCon.dpMinOutDam);
connect(dpDam1.y, disMinCon1.dpMinOutDam);
connect(dpDam2.y, minCon.dpMinOutDam);
end SeparateWithDP;