Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation

Collection of validation models

Information

This package contains validation models for the classes in Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.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.

Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).

Package Content

Name Description
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Enable_FreProSta_ZonSta Enable_FreProSta_ZonSta Model validates economizer disable for heating zone state and activated freeze protection
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Enable_TOut_hOut Enable_TOut_hOut Model validates economizer disable in case outdoor air conditions are above cutoff
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Limits_Disable Limits_Disable Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Limits_FanSpe_VOut_flow Limits_FanSpe_VOut_flow Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits
Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Modulation_TSup Modulation_TSup Validation model for single zone VAV AHU outdoor and return air damper position modulation sequence

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Enable_FreProSta_ZonSta Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Enable_FreProSta_ZonSta

Model validates economizer disable for heating zone state and activated freeze protection

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Enable_FreProSta_ZonSta

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Enable for the following control signals: zone state, freeze protection stage.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Enable_FreProSta_ZonSta "Model validates economizer disable for heating zone state and activated freeze protection" extends Modelica.Icons.Example; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Enable enaDis "Single zone VAV AHU enable disable sequence"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Enable enaDis1 "Single zone VAV AHU enable disable sequence"; protected final parameter Modelica.SIunits.Temperature TOutCutoff=297.15 "Outdoor temperature high limit cutoff"; final parameter Modelica.SIunits.SpecificEnergy hOutCutoff=65100 "Outdoor air enthalpy high limit cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutBelowCutoff(final k=TOutCutoff - 2) "Outdoor air temperature cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutCut(final k= TOutCutoff) "Outdoor temperature high limit cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutBelowCutoff(final k=hOutCutoff - 1000) "Outdoor air enthalpy is slightly below the cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutCut(final k= hOutCutoff) "Outdoor air enthalpy cutoff"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage0) "Freeze protection status is stage0"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant zonSta(final k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.ZoneStates.heating) "Zone state is heating"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta1(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage1) "Freeze protection status is stage1"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant zonSta1(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.ZoneStates.deadband) "Zone state is deadband"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMax(final k=0.9) "Maximal allowed economizer damper position"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMin(final k=0.1) "Minimal allowed economizer damper position"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant supFanSta(final k=true); equation connect(TOutBelowCutoff.y, enaDis.TOut); connect(TOutCut.y, enaDis.TOutCut); 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); end Enable_FreProSta_ZonSta;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Enable_TOut_hOut Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Enable_TOut_hOut

Model validates economizer disable in case outdoor air conditions are above cutoff

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Enable_TOut_hOut

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Enable for the following control signals: TOut, TOutCut, hOut, hOutCut.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Enable_TOut_hOut "Model validates economizer disable in case outdoor air conditions are above cutoff" extends Modelica.Icons.Example; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutCut(final k= TOutCutoff) "Outdoor air temperature cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutCut1(final k= hOutCutoff) "Outdoor air enthalpy cutoff"; Buildings.Controls.OBC.CDL.Logical.TriggeredTrapezoid TOut( final rising=1000, final falling=800, final amplitude=4, final offset=TOutCutoff - 2) "Outoor air temperature"; Buildings.Controls.OBC.CDL.Logical.TriggeredTrapezoid hOut( final amplitude=4000, final offset=hOutCutoff - 2200, final rising=1000, final falling=800) "Outdoor air enthalpy"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Enable enaDis "Single zone VAV AHU economizer enable disable sequence"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Enable enaDis1 "Single zone VAV AHU economizer enable disable sequence"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Enable enaDis2(use_enthalpy=false) "Single zone VAV AHU economizer enable disable sequence"; protected final parameter Modelica.SIunits.Temperature TOutCutoff=297.15 "Outdoor temperature high limit cutoff"; final parameter Modelica.SIunits.SpecificEnergy hOutCutoff=65100 "Outdoor air enthalpy high limit cutoff"; final parameter Real outDamPosMin=0.1 "Minimum outdoor air damper position"; final parameter Real outDamPosMax=0.9 "Minimum return air damper position"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutCut(final k= hOutCutoff) "Outdoor air enthalpy cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutCut1(final k= TOutCutoff) "Outdoor air temperature cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant hOutBelowCutoff(final k=hOutCutoff - 1000) "Outdoor air enthalpy is slightly below the cutoff"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TOutBelowCutoff(final k=TOutCutoff - 2) "Outdoor air temperature is slightly below the cutoff"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant zoneState(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.ZoneStates.deadband) "Zone State is deadband"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMaxSig(final k=outDamPosMax) "Maximal allowed economizer damper position"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMinSig(final k=outDamPosMin) "Minimal allowed economizer damper position"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage0) "Freeze Protection Status - Disabled"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant supFanSta(final k=true) "Supply fan status signal"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul(final startTime=10, final period=2000) "Boolean pulse signal"; Buildings.Controls.OBC.CDL.Logical.Sources.Pulse booPul1(final startTime=10, final period=2000) "Boolean pulse signal"; 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;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Limits_Disable Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Limits_Disable

Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Limits_Disable

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Limits for the following control signals: VOut_flow, VOutMinSet_flow. The control loop is always enabled in this example.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Limits_Disable "Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits" extends Modelica.Icons.Example; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Limits damLim1( final yFanMin=yFanMin, final yFanMax=yFanMax, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single zone VAV AHU minimum outdoor air control - damper position limits"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Limits damLim2( final yFanMin=yFanMin, final yFanMax=yFanMax, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single zone VAV AHU minimum outdoor air control - damper position limits"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Limits damLim3( final yFanMin=yFanMin, final yFanMax=yFanMax, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single zone VAV AHU minimum outdoor air control - damper position limits"; protected final parameter Real yFanMin=0.1 "Minimum supply fan operation speed"; final parameter Real yFanMax=0.9 "Maximum supply fan operation speed"; final parameter Modelica.SIunits.VolumeFlowRate VOutDes_flow=2.0 "Calculated design outdoor airflow rate"; final parameter Modelica.SIunits.VolumeFlowRate VOutMin_flow=1.0 "Calculated minimum outdoor airflow rate"; final parameter Modelica.SIunits.VolumeFlowRate VOutSet_flow=0.71 "Example volumetric airflow setpoint, 15cfm/occupant, 100 occupants"; final parameter Modelica.SIunits.VolumeFlowRate minVOutSet_flow=0.61 "Volumetric airflow sensor output, minimum value in the example"; final parameter Modelica.SIunits.VolumeFlowRate incVOutSet_flow=0.2 "Maximum increase in airflow volume during the example simulation"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp SupFanSpeSig( final duration=1800, final offset=yFanMin, final height=yFanMax - yFanMin) "Supply fan speed signal"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOutMinSetSig( final duration=1800, final offset=VOutMin_flow, final height=VOutDes_flow - VOutMin_flow) "Constant minimum outdoor airflow setpoint"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus1(final k=false) "Fan is off"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta1(k=Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage1) "Freeze protection stage is 1"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode1(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied) "AHU operation mode is Occupied"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus2(final k=true) "Fan is on"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta2(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage1) "Freeze protection stage is 1"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode2(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.warmUp) "AHU operation mode is NOT occupied"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus3(final k=true) "Fan is on"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta3(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage2) "Freeze protection stage is 2"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode3(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied) "AHU operation mode is 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;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Limits_FanSpe_VOut_flow Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Limits_FanSpe_VOut_flow

Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Limits_FanSpe_VOut_flow

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Limits for the following control signals: VOut_flow, VOutMinSet_flow. The control loop is always enabled in this example.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Limits_FanSpe_VOut_flow "Validation model for the Single zone VAV AHU minimum outdoor air control - damper position limits" extends Modelica.Icons.Example; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Limits damLim( final yFanMin=yFanMin, final yFanMax=yFanMax, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single zone VAV AHU minimum outdoor air control - damper position limits"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Limits damLim1( final yFanMin=yFanMin, final yFanMax=yFanMax, final VOutMin_flow=VOutMin_flow, final VOutDes_flow=VOutDes_flow) "Single zone VAV AHU minimum outdoor air control - damper position limits"; protected final parameter Real yFanMin=0.1 "Minimum supply fan operation speed"; final parameter Real yFanMax=0.9 "Maximum supply fan operation speed"; final parameter Real fanSpe=(yFanMax + yFanMin)/2 "Constant supply fan speed"; final parameter Modelica.SIunits.VolumeFlowRate VOutDes_flow=2.0 "Calculated design outdoor airflow rate"; final parameter Modelica.SIunits.VolumeFlowRate VOutMin_flow=1.0 "Calculated minimum outdoor airflow rate"; final parameter Modelica.SIunits.VolumeFlowRate VOutSet_flow=(VOutDes_flow + VOutMin_flow)/2 "Constant minimum outdoor airflow setpoint"; Buildings.Controls.OBC.CDL.Logical.Sources.Constant fanStatus(final k=true) "Fan is on"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant freProSta(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.FreezeProtectionStages.stage0) "Freeze protection status - disabled"; Buildings.Controls.OBC.CDL.Integers.Sources.Constant operationMode(final k= Buildings.Controls.OBC.ASHRAE.G36_PR1.Types.OperationModes.occupied) "Operation mode - occupied"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant VOutMinSetSig(final k= VOutSet_flow) "Constant minimum outdoor airflow setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp SupFanSpeSig( final duration=1800, final offset=yFanMin, final height=yFanMax - yFanMin) "Supply fan speed signal"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp VOutMinSetSig1( final duration=1800, final offset=VOutMin_flow, final height=VOutDes_flow - VOutMin_flow) "Constant minimum outdoor airflow setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant SupFanSpeSig1(final k= fanSpe) "Supply fan speed signal"; 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;

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Modulation_TSup Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Modulation_TSup

Validation model for single zone VAV AHU outdoor and return air damper position modulation sequence

Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Validation.Modulation_TSup

Information

This example validates Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.DamperModulation for supply air temeperature TSup and supply air temperature heating setpoint TSupSet control signals.

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Modulation_TSup "Validation model for single zone VAV AHU outdoor and return air damper position modulation sequence" extends Modelica.Icons.Example; final parameter Modelica.SIunits.Temperature TSupSet=291.15 "Supply air temperature setpoint"; Buildings.Controls.OBC.ASHRAE.G36_PR1.AHUs.SingleZone.Economizers.Subsequences.Modulation mod "Economizer modulation sequence"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TSupSetSig(final k= TSupSet) "Supply air temperature setpoint"; Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TSup( final duration=900, final height=4, final offset=TSupSet - 2) "Measured supply air temperature"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMin(final k=0) "Minimum outdoor air damper position"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant outDamPosMax(final k=1) "Maximum outdoor air damper position"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant RetDamPosMin(final k=0) "Minimum return air damper position"; Buildings.Controls.OBC.CDL.Continuous.Sources.Constant RetDamPosMax(final k=1) "Maximum return air damper position"; CDL.Logical.Sources.Constant fanStatus(k=true) "Fan is on"; equation connect(TSupSetSig.y, mod.THeaSupSet); connect(TSup.y, mod.TSup); connect(RetDamPosMax.y, mod.uRetDamPosMax); connect(RetDamPosMin.y, mod.uRetDamPosMin); connect(outDamPosMax.y, mod.uOutDamPosMax); connect(outDamPosMin.y, mod.uOutDamPosMin); connect(mod.uSupFan, fanStatus.y); end Modulation_TSup;