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
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller Controller Multi zone VAV AHU economizer control sequence
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Subsequences Subsequences Subsequences for economizer control
Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Validation Validation Collection of validation models

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller

Multi zone VAV AHU economizer control sequence

Buildings.Controls.OBC.ASHRAE.G36.AHUs.MultiZone.VAV.Economizers.Controller

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.

Parameters

TypeNameDefaultDescription
OutdoorAirSectionminOADes Design of minimum outdoor air and economizer function
PressureControlbuiPreCon Type of building pressure control system
EnergyStandardeneStd Energy standard, ASHRAE 90.1 or Title 24
ControlEconomizerecoHigLimCon Economizer high limit control device
ASHRAEClimateZoneashCliZonBuildings.Controls.OBC.ASHRA...ASHRAE climate zone
Title24ClimateZonetit24CliZonBuildings.Controls.OBC.ASHRA...California Title 24 climate zone
Limits
RealminSpe0.1Minimum supply fan speed [1]
With AFMS
SimpleControllerminOAConTypBuildings.Controls.OBC.CDL.T...Type of minimum outdoor air controller
RealkMinOA1Gain of controller [1]
RealTiMinOA0.5Time constant of integrator block [s]
RealTdMinOA0.1Time constant of derivative block [s]
With DP
VentilationStandardvenStdBuildings.Controls.OBC.ASHRA...Ventilation standard, ASHRAE 62.1 or Title 24
Booleanhave_CO2SenfalseTrue: some zones have CO2 sensor
RealdpAbsMinOutDam5Absolute minimum pressure difference across the minimum outdoor air damper. It provides the absolute minimum outdoor airflow
RealdpDesMinOutDam20Design minimum pressure difference across the minimum outdoor air damper. It provides the design minimum outdoor airflow [Pa]
SimpleControllerdpConTypBuildings.Controls.OBC.CDL.T...Type of differential pressure setpoint controller
RealkDp1Gain of controller [1]
RealTiDp0.5Time constant of integrator block [s]
RealTdDp0.1Time constant of derivative block [s]
Common
RealuRetDam_min0.5Loop signal value to start decreasing the maximum return air damper position [1]
Enable
Hysteresis
RealdelTOutHis1Delta between the temperature hysteresis high and low limit [K]
RealdelEntHis1000Delta between the enthalpy hysteresis high and low limits [J/kg]
Delays
RealretDamFulOpeTim180Time period to keep RA damper fully open before releasing it for minimum outdoor airflow control at disable to avoid pressure fluctuations [s]
RealdisDel15Short time delay before closing the OA damper at disable to avoid pressure fluctuations [s]
Commissioning
Limits
RealretDamPhy_max1.0Physically fixed maximum position of the return air damper [1]
RealretDamPhy_min0.0Physically fixed minimum position of the return air damper [1]
RealoutDamPhy_max1.0Physically fixed maximum position of the outdoor air damper [1]
RealoutDamPhy_min0.0Physically fixed minimum position of the outdoor air damper [1]
RealminOutDamPhy_max1.0Physically fixed maximum position of the minimum outdoor air damper [1]
RealminOutDamPhy_min0.0Physically fixed minimum position of the minimum outdoor air damper [1]
Modulation
RealuHeaMax-0.25Lower limit of controller input when outdoor damper opens (see diagram) [1]
RealuCooMin+0.25Upper limit of controller input when return damper is closed (see diagram) [1]
RealuOutDamMax(uHeaMax + uCooMin)/2Maximum loop signal for the OA damper to be fully open [1]
RealuRetDamMin(uHeaMax + uCooMin)/2Minimum loop signal for the RA damper to be fully open [1]

Connectors

TypeNameDescription
input RealInputVOutMinSet_flow_normalizedEffective minimum outdoor airflow setpoint, normalized by design minimum outdoor airflow rate [1]
input RealInputVOut_flow_normalizedMeasured outdoor volumetric airflow rate, normalized by design minimum outdoor airflow rate [1]
input RealInputuSupFanCommanded supply fan speed [1]
input RealInputeffAbsOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the absolute outdoor airflow rate [1]
input RealInputuCO2Loo_maxMaximum Zone CO2 control loop [1]
input RealInputeffDesOutAir_normalizedEffective minimum outdoor airflow setpoint, normalized by the design outdoor airflow rate [1]
input RealInputdpMinOutDamMeasured pressure difference across the minimum outdoor air damper [Pa]
input RealInputuTSupSignal for supply air temperature control (T Sup Control Loop Signal in diagram) [1]
input RealInputTOutOutdoor air (OA) temperature [K]
input RealInputTAirRetUsed only for fixed plus differential dry bulb temperature high limit cutoff [K]
input RealInputhAirOutOutdoor air enthalpy [J/kg]
input RealInputhAirRetReturn air enthalpy [J/kg]
input BooleanInputu1SupFanSupply fan status
input IntegerInputuOpeModAHU operation mode status signal
input IntegerInputuFreProStaFreeze protection status
output RealOutputyOutDam_minMinimum outdoor air damper position limit [1]
output BooleanOutputyEnaMinOutTrue: enable minimum outdoor air control loop
output RealOutputyMinOutDamMinimum outdoor air flow damper commanded position [1]
output BooleanOutputy1MinOutDamMinimum outdoor air damper command on position
output RealOutputyRetDamReturn air damper commanded position [1]
output RealOutputyRelDamRelief air damper commanded position [1]
output RealOutputyOutDamOutdoor 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.PressureControl buiPreCon "Type of building pressure control system"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard eneStd "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"; // 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.ASHRAE62_1 "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.0 "Physically fixed maximum position of the return air damper"; parameter Real retDamPhy_min(unit="1")=0.0 "Physically fixed minimum position of the return air damper"; parameter Real outDamPhy_max(unit="1")=1.0 "Physically fixed maximum position of the outdoor air damper"; parameter Real outDamPhy_min(unit="1")=0.0 "Physically fixed minimum position of the outdoor air damper"; parameter Real minOutDamPhy_max(unit="1")=1.0 "Physically fixed maximum position of the minimum outdoor air damper"; parameter Real minOutDamPhy_min(unit="1")=0.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(final unit="1") if (minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersAirflow or minOADes == Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection.DedicatedDampersPressure) "Commanded 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) "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) 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 "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 or ecoHigLimCon == Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulbWithDifferentialDryBulb) "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 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.PressureControl.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.PressureControl.ReturnFanDp, final uMin=uHeaMax, final uMax=uCooMin) if (buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReturnFanMeasuredAir or buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.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.PressureControl.ReliefDamper or buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.ReliefFan or buiPreCon == Buildings.Controls.OBC.ASHRAE.G36.Types.PressureControl.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"; equation connect(sepAFMS.VOutMinSet_flow_normalized, VOutMinSet_flow_normalized); connect(sepAFMS.uSupFan, uSupFan); connect(sepDp.dpMinOutDam, dpMinOutDam); connect(VOutMinSet_flow_normalized, sepDp.VOutMinSet_flow_normalized); connect(uSupFan, sepDp.uSupFan); 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(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;