Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers
Economizer control of multi zone VAV AHU
Information
The package contains a multi zone VAV AHU economizer control sequence and the related economizer subsequences.
Package Content
Name | Description |
---|---|
Controller | Multi zone VAV AHU economizer control sequence |
Subsequences | Subsequences for economizer control |
Validation | Collection of validation models |
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller
Multi zone VAV AHU economizer control sequence
Information
Multi zone VAV AHU economizer control sequence that calculates outdoor and return air damper positions based on ASHRAE Guidline 36, May 2020, Sections: 5.16.2.3,5.16.4, 5.16.5, 5.16.6, 5.16.7.
The sequence consists of three sets of subsequences.
-
First set of sequences compute the damper position limits to satisfy
outdoor air requirements. Different sequence will be enabled depending on the
designes minimum outdoor air and economizer function, which include
- separate minimum outdoor air damper, with airflow measurement. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS for a description.
- separate minimum outdoor air damper, with differential pressure measurement. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP for a description.
- single common minimum outdoor air and economizer damper. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common for a description.
- The second set of sequences which have one sequence enable or disable the economizer based on outdoor temperature and optionally enthalpy, and based on the supply fan status, freeze protection stage and zone state. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Enable for a description.
-
Third set of sequences modulate the outdoor and return damper position
to track the supply air temperature setpoint, subject to the limits of the damper positions
that were computed in the above blocks. Different sequence will be enabled depending
on the types of building pressure control system, which include
- relief damper or relief fan control. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs for a description.
- return fan control with airflow tracking, or with direct building pressure control. See Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan for a description.
Parameters
Type | Name | Default | Description |
---|---|---|---|
OutdoorAirSection | minOADes | Design of minimum outdoor air and economizer function | |
BuildingPressureControlTypes | buiPreCon | Type of building pressure control system | |
EnergyStandard | eneStd | Buildings.Controls.OBC.ASHRA... | Energy standard, ASHRAE 90.1 or Title 24 |
ControlEconomizer | ecoHigLimCon | Economizer high limit control device | |
ASHRAEClimateZone | ashCliZon | Buildings.Controls.OBC.ASHRA... | ASHRAE climate zone |
Title24ClimateZone | tit24CliZon | Buildings.Controls.OBC.ASHRA... | California Title 24 climate zone |
Real | aveTimRan | 5 | Time horizon over which the outdoor air flow measurement is averaged [s] |
Limits | |||
Real | minSpe | 0.1 | Minimum supply fan speed [1] |
With AFMS | |||
SimpleController | minOAConTyp | Buildings.Controls.OBC.CDL.T... | Type of minimum outdoor air controller |
Real | kMinOA | 1 | Gain of controller [1] |
Real | TiMinOA | 0.5 | Time constant of integrator block [s] |
Real | TdMinOA | 0.1 | Time constant of derivative block [s] |
With DP | |||
VentilationStandard | venStd | Buildings.Controls.OBC.ASHRA... | Ventilation standard, ASHRAE 62.1 or Title 24 |
Boolean | have_CO2Sen | false | True: some zones have CO2 sensor |
Real | dpAbsMinOutDam | 5 | Absolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflow |
Real | dpDesMinOutDam | 20 | Design minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflow [Pa] |
SimpleController | dpConTyp | Buildings.Controls.OBC.CDL.T... | Type of differential pressure setpoint controller |
Real | kDp | 1 | Gain of controller [1] |
Real | TiDp | 0.5 | Time constant of integrator block [s] |
Real | TdDp | 0.1 | Time constant of derivative block [s] |
Common | |||
Real | uRetDam_min | 0.5 | Loop signal value to start decreasing the maximum return air damper position [1] |
Enable | |||
Hysteresis | |||
Real | delTOutHis | 1 | Delta between the temperature hysteresis high and low limit [K] |
Real | delEntHis | 1000 | Delta between the enthalpy hysteresis high and low limits [J/kg] |
Delays | |||
Real | retDamFulOpeTim | 180 | Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control at disable to avoid pressure fluctuations [s] |
Real | disDel | 15 | Short time delay before closing the OA damper at disable to avoid pressure fluctuations [s] |
Commissioning | |||
Limits | |||
Real | retDamPhy_max | 1 | Physically fixed maximum position of the return air damper [1] |
Real | retDamPhy_min | 0 | Physically fixed minimum position of the return air damper [1] |
Real | outDamPhy_max | 1 | Physically fixed maximum position of the outdoor air damper [1] |
Real | outDamPhy_min | 0 | Physically fixed minimum position of the outdoor air damper [1] |
Real | minOutDamPhy_max | 1 | Physically fixed maximum position of the minimum outdoor air damper [1] |
Real | minOutDamPhy_min | 0 | Physically fixed minimum position of the minimum outdoor air damper [1] |
Modulation | |||
Real | uHeaMax | -0.25 | Lower limit of controller input when outdoor damper opens (see diagram) [1] |
Real | uCooMin | +0.25 | Upper limit of controller input when return damper is closed (see diagram) [1] |
Real | uOutDamMax | (uHeaMax + uCooMin)/2 | Maximum loop signal for the OA damper to be fully open [1] |
Real | uRetDamMin | (uHeaMax + uCooMin)/2 | Minimum loop signal for the RA damper to be fully open [1] |
Connectors
Type | Name | Description |
---|---|---|
input RealInput | VOutMinSet_flow_normalized | Effective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate [1] |
input RealInput | VOut_flow_normalized | Measured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate [1] |
input RealInput | uSupFan_actual | Actual supply fan speed [1] |
input RealInput | effAbsOutAir_normalized | Effective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate [1] |
input RealInput | uCO2Loo_max | Maximum Zone CO2 control loop [1] |
input RealInput | effDesOutAir_normalized | Effective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate [1] |
input RealInput | dpMinOutDam | Measured pressure difference across the minimum outdoor air damper [Pa] |
input RealInput | uTSup | Signal for supply air temperature control (T Sup Control Loop Signal in diagram) [1] |
input RealInput | TOut | Outdoor air (OA) temperature [K] |
input RealInput | TAirRet | Used only for fixed plus differential dry bulb temperature high limit cutoff [K] |
input RealInput | hAirOut | Outdoor air enthalpy [J/kg] |
input RealInput | hAirRet | Return air enthalpy [J/kg] |
input BooleanInput | u1SupFan | Supply fan status |
input IntegerInput | uOpeMod | AHU operation mode status signal |
input IntegerInput | uFreProSta | Freeze protection status |
output RealOutput | yOutDam_min | Minimum outdoor air damper position limit [1] |
output BooleanOutput | yEnaMinOut | True: enable minimum outdoor air control loop |
output RealOutput | yMinOutDam | Minimum outdoor air flow damper commanded position [1] |
output BooleanOutput | y1MinOutDam | Minimum outdoor air damper command on position |
output RealOutput | yRetDam | Return air damper commanded position [1] |
output RealOutput | yRelDam | Relief air damper commanded position [1] |
output RealOutput | yOutDam | Outdoor air damper commanded position [1] |
Modelica definition
block Controller
"Multi zone VAV AHU economizer control sequence"
parameter Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection minOADes
"Design of minimum outdoor air and economizer function";
parameter Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes
buiPreCon
"Type of building pressure control system";
parameter Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard eneStd=Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.Not_Specified
"Energy standard, ASHRAE 90.1 or Title 24";
parameter Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer ecoHigLimCon
"Economizer high limit control device";
parameter Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone ashCliZon=
Buildings.Controls.OBC.ASHRAE.G36.Types.ASHRAEClimateZone.Not_Specified
"ASHRAE climate zone";
parameter Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone tit24CliZon=
Buildings.Controls.OBC.ASHRAE.G36.Types.Title24ClimateZone.Not_Specified
"California Title 24 climate zone";
parameter Real aveTimRan(unit="s")=5
"Time horizon over which the outdoor air flow measurement is averaged";
// Limits
parameter Real minSpe(unit="1")=0.1
"Minimum supply fan speed";
parameter Buildings.Controls.OBC.CDL.Types.SimpleController minOAConTyp=
Buildings.Controls.OBC.CDL.Types.SimpleController.PI
"Type of minimum outdoor air controller";
parameter Real kMinOA(unit="1")=1
"Gain of controller";
parameter Real TiMinOA(unit="s")=0.5
"Time constant of integrator block";
parameter Real TdMinOA(unit="s")=0.1
"Time constant of derivative block";
parameter Types.VentilationStandard venStd=Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.Not_Specified
"Ventilation standard, ASHRAE 62.1 or Title 24";
parameter Boolean have_CO2Sen=false
"True: some zones have CO2 sensor";
parameter Real dpAbsMinOutDam=5
"Absolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflow";
parameter Real dpDesMinOutDam(unit="Pa")=20
"Design minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflow";
parameter Buildings.Controls.OBC.CDL.Types.SimpleController dpConTyp=
Buildings.Controls.OBC.CDL.Types.SimpleController.PID
"Type of differential pressure setpoint controller";
parameter Real kDp(unit="1")=1
"Gain of controller";
parameter Real TiDp(unit="s")=0.5
"Time constant of integrator block";
parameter Real TdDp(unit="s")=0.1
"Time constant of derivative block";
parameter Real uRetDam_min(unit="1")=0.5
"Loop signal value to start decreasing the maximum return air damper position";
// Enable
parameter Real delTOutHis(
unit="K",
displayUnit="K")=1
"Delta between the temperature hysteresis high and low limit";
parameter Real delEntHis(unit="J/kg")=1000
"Delta between the enthalpy hysteresis high and low limits";
parameter Real retDamFulOpeTim(unit="s")=180
"Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control at disable to avoid pressure fluctuations";
parameter Real disDel(unit="s")=15
"Short time delay before closing the OA damper at disable to avoid pressure fluctuations";
// Commissioning
parameter Real retDamPhy_max(unit="1")=1
"Physically fixed maximum position of the return air damper";
parameter Real retDamPhy_min(unit="1")=0
"Physically fixed minimum position of the return air damper";
parameter Real outDamPhy_max(unit="1")=1
"Physically fixed maximum position of the outdoor air damper";
parameter Real outDamPhy_min(unit="1")=0
"Physically fixed minimum position of the outdoor air damper";
parameter Real minOutDamPhy_max(unit="1")=1
"Physically fixed maximum position of the minimum outdoor air damper";
parameter Real minOutDamPhy_min(unit="1")=0
"Physically fixed minimum position of the minimum outdoor air damper";
parameter Real uHeaMax(unit="1")=-0.25
"Lower limit of controller input when outdoor damper opens (see diagram)";
parameter Real uCooMin(unit="1")=+0.25
"Upper limit of controller input when return damper is closed (see diagram)";
parameter Real uOutDamMax(unit="1")=(uHeaMax + uCooMin)/2
"Maximum loop signal for the OA damper to be fully open";
parameter Real uRetDamMin(unit="1")=(uHeaMax + uCooMin)/2
"Minimum loop signal for the RA damper to be fully open";
Buildings.Controls.OBC.CDL.Interfaces.RealInput VOutMinSet_flow_normalized(
final unit="1")
"Effective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate";
Buildings.Controls.OBC.CDL.Interfaces.RealInput VOut_flow_normalized(
final unit="1")
if (minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow
or minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.SingleDamper)
"Measured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate";
Buildings.Controls.OBC.CDL.Interfaces.RealInput uSupFan_actual(final unit="1")
if (minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow
or minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure)
"Actual supply fan speed";
Buildings.Controls.OBC.CDL.Interfaces.RealInput effAbsOutAir_normalized(
final unit="1")
if (minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure
and venStd == Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.California_Title_24_2016)
"Effective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate ";
Buildings.Controls.OBC.CDL.Interfaces.RealInput uCO2Loo_max(
final unit="1")
if (have_CO2Sen and venStd == Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.California_Title_24_2016)
and minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure
"Maximum Zone CO2 control loop";
Buildings.Controls.OBC.CDL.Interfaces.RealInput effDesOutAir_normalized(
final unit="1")
if minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure
and venStd == Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard.California_Title_24_2016
"Effective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate ";
Buildings.Controls.OBC.CDL.Interfaces.RealInput dpMinOutDam(
final unit="Pa",
final quantity="PressureDifference")
if minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure
"Measured pressure difference across the minimum outdoor air damper";
Buildings.Controls.OBC.CDL.Interfaces.RealInput uTSup(
final unit="1")
"Signal for supply air temperature control (T Sup Control Loop Signal in diagram)";
Buildings.Controls.OBC.CDL.Interfaces.RealInput TOut(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature") "Outdoor air (OA) temperature";
Buildings.Controls.OBC.CDL.Interfaces.RealInput TAirRet(
final unit="K",
displayUnit="degC",
final quantity="ThermodynamicTemperature")
if ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialDryBulb
"Used only for fixed plus differential dry bulb temperature high limit cutoff";
Buildings.Controls.OBC.CDL.Interfaces.RealInput hAirOut(
final unit="J/kg",
final quantity="SpecificEnergy")
if (ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb
or ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb)
"Outdoor air enthalpy";
Buildings.Controls.OBC.CDL.Interfaces.RealInput hAirRet(
final unit="J/kg",
final quantity="SpecificEnergy")
if (eneStd == Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.ASHRAE90_1_2016
and ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb)
"Return air enthalpy";
Buildings.Controls.OBC.CDL.Interfaces.BooleanInput u1SupFan
"Supply fan status";
Buildings.Controls.OBC.CDL.Interfaces.IntegerInput uOpeMod
"AHU operation mode status signal";
Buildings.Controls.OBC.CDL.Interfaces.IntegerInput uFreProSta
"Freeze protection status";
Buildings.Controls.OBC.CDL.Interfaces.RealOutput yOutDam_min(
final min=0,
final max=1,
final unit="1")
"Minimum outdoor air damper position limit";
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput yEnaMinOut
"True: enable minimum outdoor air control loop";
Buildings.Controls.OBC.CDL.Interfaces.RealOutput yMinOutDam(
final min=0,
final max=1,
final unit="1")
if minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow
"Minimum outdoor air flow damper commanded position";
Buildings.Controls.OBC.CDL.Interfaces.BooleanOutput y1MinOutDam
if minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure
"Minimum outdoor air damper command on position";
Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRetDam(
final min=0,
final max=1,
final unit="1")
"Return air damper commanded position";
Buildings.Controls.OBC.CDL.Interfaces.RealOutput yRelDam(
final min=0,
final max=1,
final unit="1")
if buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReturnFanCalculatedAir
or buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReturnFanMeasuredAir
"Relief air damper commanded position";
Buildings.Controls.OBC.CDL.Interfaces.RealOutput yOutDam(
final min=0,
final max=1,
final unit="1")
"Outdoor air damper commanded position";
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithAFMS
sepAFMS(
final minSpe=minSpe,
final minOAConTyp=minOAConTyp,
final kMinOA=kMinOA,
final TiMinOA=TiMinOA,
final TdMinOA=TdMinOA,
final retDamPhy_max=retDamPhy_max,
final retDamPhy_min=retDamPhy_min,
final outDamPhy_max=outDamPhy_max,
final outDamPhy_min=outDamPhy_min,
final minOutDamPhy_max=minOutDamPhy_max,
final minOutDamPhy_min=minOutDamPhy_min)
if minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow
"Damper position limits for units with separated minimum outdoor air damper and airflow measurement";
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.SeparateWithDP
sepDp(
final venStd=venStd,
final have_CO2Sen=have_CO2Sen,
final dpAbsMinOutDam=dpAbsMinOutDam,
final dpDesMinOutDam=dpDesMinOutDam,
final minSpe=minSpe,
final dpCon=dpConTyp,
final kDp=kDp,
final TiDp=TiDp,
final TdDp=TdDp,
final retDamPhy_max=retDamPhy_max,
final retDamPhy_min=retDamPhy_min,
final outDamPhy_max=outDamPhy_max,
final outDamPhy_min=outDamPhy_min)
if minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure
"Damper position limits for units with separated minimum outdoor air damper and differential pressure measurement";
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Limits.Common
damLim(
final uRetDam_min=uRetDam_min,
final controllerType=minOAConTyp,
final k=kMinOA,
final Ti=TiMinOA,
final Td=TdMinOA,
final retDamPhy_max=retDamPhy_max,
final retDamPhy_min=retDamPhy_min,
final outDamPhy_max=outDamPhy_max,
final outDamPhy_min=outDamPhy_min)
if minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.SingleDamper
"Damper position limits for units with common damper";
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Enable
enaDis(
final use_enthalpy=ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.DifferentialEnthalpyWithFixedDryBulb
or ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedEnthalpyWithFixedDryBulb,
final delTOutHis=delTOutHis,
final delEntHis=delEntHis,
final retDamFulOpeTim=retDamFulOpeTim,
final disDel=disDel) "Enable or disable economizer";
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.ReturnFan
modRet(
final have_dirCon=buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReturnFanDp,
final uMin=uHeaMax,
final uMax=uCooMin)
if (buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReturnFanCalculatedAir
or buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReturnFanMeasuredAir
or buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReturnFanDp)
"Modulate economizer dampers position for buildings with return fan controlling pressure";
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences.Modulations.Reliefs
modRel(
final uMin=uHeaMax,
final uMax=uCooMin,
final uOutDamMax=uOutDamMax,
final uRetDamMin=uRetDamMin)
if (buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReliefDamper
or buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReliefFan
or buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.BarometricRelief)
"Modulate economizer dampers position for buildings with relief damper or fan controlling pressure";
Buildings.Controls.OBC.ASHRAE.G36.Generic.AirEconomizerHighLimits ecoHigLim(
final eneStd=eneStd,
final ecoHigLimCon=ecoHigLimCon,
final ashCliZon=ashCliZon,
final tit24CliZon=tit24CliZon) "High limits";
Buildings.Controls.OBC.CDL.Continuous.AddParameter addPar(
final p=-1)
if eneStd == Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard.Not_Specified
"Dummy block";
equation
connect(sepAFMS.VOutMinSet_flow_normalized, VOutMinSet_flow_normalized);
connect(sepAFMS.uSupFan_actual, uSupFan_actual);
connect(sepDp.dpMinOutDam, dpMinOutDam);
connect(VOutMinSet_flow_normalized, sepDp.VOutMinSet_flow_normalized);
connect(uSupFan_actual, sepDp.uSupFan_actual);
connect(u1SupFan, sepAFMS.u1SupFan);
connect(u1SupFan, sepDp.u1SupFan);
connect(u1SupFan, damLim.u1SupFan);
connect(uOpeMod, sepAFMS.uOpeMod);
connect(uOpeMod, sepDp.uOpeMod);
connect(uOpeMod, damLim.uOpeMod);
connect(VOutMinSet_flow_normalized, damLim.VOutMinSet_flow_normalized);
connect(u1SupFan, enaDis.u1SupFan);
connect(uFreProSta, enaDis.uFreProSta);
connect(damLim.yOutDam_min, enaDis.uOutDam_min);
connect(damLim.yOutDam_max, enaDis.uOutDam_max);
connect(damLim.yRetDam_min, enaDis.uRetDam_min);
connect(damLim.yRetDam_max, enaDis.uRetDam_max);
connect(damLim.yRetDamPhy_max, enaDis.uRetDamPhy_max);
connect(sepDp.yOutDam_min, enaDis.uOutDam_min);
connect(sepDp.yOutDam_max, enaDis.uOutDam_max);
connect(sepDp.yRetDam_min, enaDis.uRetDam_min);
connect(sepDp.yRetDam_max, enaDis.uRetDam_max);
connect(sepDp.yRetDamPhy_max, enaDis.uRetDamPhy_max);
connect(sepAFMS.yOutDam_min, enaDis.uOutDam_min);
connect(sepAFMS.yOutDam_max, enaDis.uOutDam_max);
connect(sepAFMS.yRetDam_min, enaDis.uRetDam_min);
connect(sepAFMS.yRetDam_max, enaDis.uRetDam_max);
connect(sepAFMS.yRetDamPhy_max, enaDis.uRetDamPhy_max);
connect(uTSup, modRet.uTSup);
connect(uTSup, modRel.uTSup);
connect(damLim.yOutDam_min, modRel.uOutDam_min);
connect(sepDp.yOutDam_min, modRel.uOutDam_min);
connect(sepAFMS.yOutDam_min, modRel.uOutDam_min);
connect(enaDis.yOutDam_max, modRel.uOutDam_max);
connect(enaDis.yRetDam_max, modRel.uRetDam_max);
connect(enaDis.yRetDam_min, modRel.uRetDam_min);
connect(enaDis.yRetDam_max, modRet.uRetDam_max);
connect(enaDis.yRetDam_min, modRet.uRetDam_min);
connect(modRet.yRetDam, yRetDam);
connect(modRel.yRetDam, yRetDam);
connect(modRet.yOutDam, yOutDam);
connect(modRel.yOutDam, yOutDam);
connect(modRet.yRelDam, yRelDam);
connect(sepAFMS.yMinOutDam, yMinOutDam);
connect(damLim.yOutDam_min, yOutDam_min);
connect(sepDp.yOutDam_min, yOutDam_min);
connect(sepAFMS.yOutDam_min, yOutDam_min);
connect(ecoHigLim.TCut, enaDis.TOutCut);
connect(ecoHigLim.hCut, enaDis.hOutCut);
connect(hAirRet, ecoHigLim.hRet);
connect(TAirRet, ecoHigLim.TRet);
connect(TOut, enaDis.TOut);
connect(hAirOut, enaDis.hOut);
connect(effAbsOutAir_normalized, sepDp.effAbsOutAir_normalized);
connect(uCO2Loo_max, sepDp.uCO2Loo_max);
connect(effDesOutAir_normalized, sepDp.effDesOutAir_normalized);
connect(modRet.yOutDam, sepAFMS.uOutDam);
connect(modRet.yOutDam, sepDp.uOutDam);
connect(modRel.yOutDam, sepAFMS.uOutDam);
connect(modRel.yOutDam, sepDp.uOutDam);
connect(sepDp.y1MinOutDam, y1MinOutDam);
connect(TOut, addPar.u);
connect(addPar.y, enaDis.TOutCut);
connect(VOut_flow_normalized, sepAFMS.VOut_flow_normalized);
connect(VOut_flow_normalized, damLim.VOut_flow_normalized);
connect(sepAFMS.yEnaMinOut, yEnaMinOut);
connect(sepDp.y1MinOutDam, yEnaMinOut);
connect(damLim.yEnaMinOut, yEnaMinOut);
end Controller;