Buildings.Templates.AirHandlersFans.Components.Interfaces

Interface classes

Information

This package contains interface classes.

Extends from Modelica.Icons.InterfacesPackage (Icon for packages containing interfaces).

Package Content

Name Description
Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialController PartialController Interface class for AHU controller
Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialControllerVAVMultizone PartialControllerVAVMultizone Interface class for multiple-zone VAV controller
Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialHeatRecovery PartialHeatRecovery Interface class for heat recovery
Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorReliefReturnSection PartialOutdoorReliefReturnSection Interface class for outdoor/relief/return air section
Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorSection PartialOutdoorSection Interface class for outdoor air section
Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialReliefReturnSection PartialReliefReturnSection Interface class for relief/return air section

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialController Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialController

Interface class for AHU controller

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialController

Information

This partial class provides a standard interface for air handler controllers.

Parameters

TypeNameDefaultDescription
IntegernZon Number of served zones
PartialControllerdatdat(final typ=typ, final typ...Design and operating parameters
Configuration
Controllertyp Type of controller

Connectors

TypeNameDescription
BusbusAHU control bus
BusbusTer[nZon]Terminal unit control bus

Modelica definition

partial block PartialController "Interface class for AHU controller" parameter Buildings.Templates.AirHandlersFans.Types.Controller typ "Type of controller"; parameter Integer nZon "Number of served zones"; outer parameter Buildings.Templates.Data.AllSystems datAll "Top-level (whole building) system parameters"; outer parameter Buildings.Templates.Components.Types.Fan typFanSup "Type of supply fan"; outer parameter Buildings.Templates.Components.Types.Fan typFanRet "Type of relief/return fan"; replaceable parameter Buildings.Templates.AirHandlersFans.Components.Data.PartialController dat( final typ=typ, final typFanSup=typFanSup, final typFanRet=typFanRet) "Design and operating parameters"; Buildings.Templates.AirHandlersFans.Interfaces.Bus bus "AHU control bus"; Buildings.Templates.ZoneEquipment.Interfaces.Bus busTer[nZon] "Terminal unit control bus"; end PartialController;

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialControllerVAVMultizone Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialControllerVAVMultizone

Interface class for multiple-zone VAV controller

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialControllerVAVMultizone

Information

This partial class provides a standard interface for multiple-zone VAV controllers.

Extends from Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialController (Interface class for AHU controller).

Parameters

TypeNameDefaultDescription
IntegernZon Number of served zones
Booleanhave_freProtrueSet to true to include freeze protection
FreezeStattypFreStaBuildings.Controls.OBC.ASHRA...Option for low limit (freeze) protection
Configuration
Controllertyp Type of controller
ControlFanReturntypCtlFanRetBuildings.Templates.AirHandl...Return fan control type
Booleanhave_CO2SenfalseSet to true if there are zones with CO2 sensor
Economizer
ControlEconomizertypCtlEcoBuildings.Controls.OBC.ASHRA...Economizer control type
Booleanuse_TMixtrueSet to true if mixed air temperature measurement is enabled

Connectors

TypeNameDescription
BusbusAHU control bus
BusbusTer[nZon]Terminal unit control bus

Modelica definition

partial block PartialControllerVAVMultizone "Interface class for multiple-zone VAV controller" extends Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialController ( redeclare Buildings.Templates.AirHandlersFans.Components.Data.VAVMultiZoneController dat( typSecOut=secOutRel.typSecOut, buiPreCon=buiPreCon, stdVen=stdVen)); outer replaceable Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorReliefReturnSection secOutRel "Outdoor/relief/return air section"; outer replaceable Buildings.Templates.Components.Coils.None coiCoo "Cooling coil"; outer replaceable Buildings.Templates.Components.Coils.None coiHeaPre "Heating coil (preheat position)"; outer replaceable Buildings.Templates.Components.Coils.None coiHeaReh "Heating coil (reheat position)"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer typCtlEco= Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb "Economizer control type"; parameter Buildings.Templates.AirHandlersFans.Types.ControlFanReturn typCtlFanRet= Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.AirflowMeasured "Return fan control type"; parameter Boolean use_TMix=true "Set to true if mixed air temperature measurement is enabled"; parameter Boolean have_frePro=true "Set to true to include freeze protection"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeStat typFreSta= Buildings.Controls.OBC.ASHRAE.G36.Types.FreezeStat.No_freeze_stat "Option for low limit (freeze) protection"; final parameter Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection typSecOut= secOutRel.typSecOut "Type of outdoor air section"; final parameter Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes buiPreCon= if secOutRel.typSecRel==Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.ReliefDamper then Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReliefDamper elseif secOutRel.typSecRel==Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.ReliefFan then Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReliefFan elseif secOutRel.typSecRel==Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.ReturnFan then (if typCtlFanRet==Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.AirflowMeasured then Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReturnFanMeasuredAir elseif typCtlFanRet==Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.BuildingPressure then Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReturnFanDp else Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReliefDamper) else Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReliefDamper "Type of building pressure control system"; final parameter Buildings.Controls.OBC.ASHRAE.G36.Types.EnergyStandard stdEne= datAll.stdEne "Energy standard"; final parameter Buildings.Controls.OBC.ASHRAE.G36.Types.VentilationStandard stdVen= datAll.stdVen "Ventilation standard"; parameter Boolean have_CO2Sen=false "Set to true if there are zones with CO2 sensor"; initial equation if typ==Buildings.Templates.AirHandlersFans.Types.Controller.G36VAVMultiZone then // We check the fallback "else" clause. if buiPreCon==Buildings.Controls.OBC.ASHRAE.G36.Types.BuildingPressureControlTypes.ReliefDamper then assert(secOutRel.typSecRel==Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.ReliefDamper, "In "+ getInstanceName() + ": "+ "The system configuration is incompatible with available options for building pressure control."); end if; end if; end PartialControllerVAVMultizone;

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialHeatRecovery Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialHeatRecovery

Interface class for heat recovery

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialHeatRecovery

Information

This class provides a standard interface for the heat recovery unit of an air handler.

Parameters

TypeNameDefaultDescription
replaceable package MediumAirBuildings.Media.AirAir medium
Configuration
HeatRecoverytyp Equipment type
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal

Connectors

TypeNameDescription
replaceable package MediumAirAir medium
BusbusControl bus
FluidPort_aport_aOutOutdoor air inlet
FluidPort_bport_bOutOutdoor air outlet
FluidPort_aport_aRelRelief/exhaust air inlet
FluidPort_bport_bRelRelief/exhaust air outlet

Modelica definition

partial model PartialHeatRecovery "Interface class for heat recovery" replaceable package MediumAir=Buildings.Media.Air constrainedby Modelica.Media.Interfaces.PartialMedium "Air medium"; parameter Buildings.Templates.AirHandlersFans.Types.HeatRecovery typ "Equipment type"; parameter Boolean allowFlowReversal = true "= false to simplify equations, assuming, but not enforcing, no flow reversal"; Buildings.Templates.AirHandlersFans.Interfaces.Bus bus if typ <> Buildings.Templates.AirHandlersFans.Types.HeatRecovery.None "Control bus"; Modelica.Fluid.Interfaces.FluidPort_a port_aOut( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ <> Buildings.Templates.AirHandlersFans.Types.HeatRecovery.None "Outdoor air inlet"; Modelica.Fluid.Interfaces.FluidPort_b port_bOut( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ <> Buildings.Templates.AirHandlersFans.Types.HeatRecovery.None "Outdoor air outlet"; Modelica.Fluid.Interfaces.FluidPort_a port_aRel( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ <> Buildings.Templates.AirHandlersFans.Types.HeatRecovery.None "Relief/exhaust air inlet"; Modelica.Fluid.Interfaces.FluidPort_b port_bRel( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ <> Buildings.Templates.AirHandlersFans.Types.HeatRecovery.None "Relief/exhaust air outlet"; end PartialHeatRecovery;

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorReliefReturnSection Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorReliefReturnSection

Interface class for outdoor/relief/return air section

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorReliefReturnSection

Information

This class provides a standard interface for the outdoor/relief/return air section of an air handler. Typical components in that section include

Parameters

TypeNameDefaultDescription
replaceable package MediumAirBuildings.Media.AirAir medium
OutdoorReliefReturnSectiondatdat(final typDamOut=typDamOu...Design and operating parameters
Configuration
OutdoorReliefReturnSectiontyp Outdoor/relief/return air section type
OutdoorAirSectiontypSecOut Outdoor air section type
ReliefReturnSectiontypSecRel Relief/return air section type
DampertypDamOut Outdoor air damper type
DampertypDamOutMin Minimum outdoor air damper type
DampertypDamRel Relief damper type
DampertypDamRet Return damper type
FantypFanRel Relief fan type
FantypFanRet Return fan type
Booleanhave_eco Set to true in case of economizer function
Booleanhave_recHeafalseSet to true in case of heat recovery
ControlFanReturntypCtlFanRetBuildings.Templates.AirHandl...Return fan control type
ControlEconomizertypCtlEcoBuildings.Controls.OBC.ASHRA...Economizer control type
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal

Connectors

TypeNameDescription
replaceable package MediumAirAir medium
FluidPort_bport_RelRelief (exhaust) air
FluidPort_aport_OutOutdoor air intake
FluidPort_bport_SupSupply air
FluidPort_aport_RetReturn air
FluidPort_bport_bPreOptional fluid connector for differential pressure sensor
BusbusControl bus

Modelica definition

partial model PartialOutdoorReliefReturnSection "Interface class for outdoor/relief/return air section" replaceable package MediumAir=Buildings.Media.Air constrainedby Modelica.Media.Interfaces.PartialMedium "Air medium"; parameter Buildings.Templates.AirHandlersFans.Types.OutdoorReliefReturnSection typ "Outdoor/relief/return air section type"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection typSecOut "Outdoor air section type"; parameter Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection typSecRel "Relief/return air section type"; parameter Buildings.Templates.Components.Types.Damper typDamOut "Outdoor air damper type"; parameter Buildings.Templates.Components.Types.Damper typDamOutMin "Minimum outdoor air damper type"; parameter Buildings.Templates.Components.Types.Damper typDamRel "Relief damper type"; parameter Buildings.Templates.Components.Types.Damper typDamRet "Return damper type"; parameter Buildings.Templates.Components.Types.Fan typFanRel "Relief fan type"; parameter Buildings.Templates.Components.Types.Fan typFanRet "Return fan type"; parameter Boolean have_eco "Set to true in case of economizer function"; inner parameter Boolean have_recHea = false "Set to true in case of heat recovery"; inner parameter Buildings.Templates.AirHandlersFans.Types.ControlFanReturn typCtlFanRet= Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.AirflowMeasured "Return fan control type"; inner parameter Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer typCtlEco= Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer.FixedDryBulb "Economizer control type"; parameter Buildings.Templates.AirHandlersFans.Components.Data.OutdoorReliefReturnSection dat( final typDamOut=typDamOut, final typDamOutMin=typDamOutMin, final typDamRet=typDamRet, final typDamRel=typDamRel, final typFanRel=typFanRel, final typFanRet=typFanRet) "Design and operating parameters"; final parameter Modelica.Units.SI.MassFlowRate mAirSup_flow_nominal= dat.damOut.m_flow_nominal "Supply air mass flow rate"; final parameter Modelica.Units.SI.MassFlowRate mAirRet_flow_nominal= dat.damRet.m_flow_nominal "Return air mass flow rate"; final parameter Modelica.Units.SI.MassFlowRate mOutMin_flow_nominal= dat.mOutMin_flow_nominal "Minimum outdoor air mass flow rate at design conditions"; final parameter Modelica.Units.SI.PressureDifference dpDamOut_nominal= dat.damOut.dp_nominal "Outdoor air damper pressure drop"; final parameter Modelica.Units.SI.PressureDifference dpDamOutMin_nominal= dat.damOutMin.dp_nominal "Minimum outdoor air damper pressure drop"; final parameter Modelica.Units.SI.PressureDifference dpDamRel_nominal= dat.damRel.dp_nominal "Relief air damper pressure drop"; final parameter Modelica.Units.SI.PressureDifference dpDamRet_nominal= dat.damRet.dp_nominal "Return air damper pressure drop"; parameter Modelica.Fluid.Types.Dynamics energyDynamics= Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state"; parameter Boolean allowFlowReversal = true "= false to simplify equations, assuming, but not enforcing, no flow reversal"; Modelica.Fluid.Interfaces.FluidPort_b port_Rel( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ <> Buildings.Templates.AirHandlersFans.Types.OutdoorReliefReturnSection.MixedAirNoRelief "Relief (exhaust) air"; Modelica.Fluid.Interfaces.FluidPort_a port_Out( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) "Outdoor air intake"; Modelica.Fluid.Interfaces.FluidPort_b port_Sup( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) "Supply air"; Modelica.Fluid.Interfaces.FluidPort_a port_Ret( redeclare final package Medium =MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) "Return air"; Modelica.Fluid.Interfaces.FluidPort_b port_bPre( redeclare final package Medium = MediumAir) "Optional fluid connector for differential pressure sensor"; Buildings.Templates.AirHandlersFans.Interfaces.Bus bus "Control bus"; end PartialOutdoorReliefReturnSection;

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorSection Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorSection

Interface class for outdoor air section

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialOutdoorSection

Information

This class provides a standard interface for the outdoor air section of an air handler. Typical components in that section include

Parameters

TypeNameDefaultDescription
replaceable package MediumAirBuildings.Media.AirAir medium
OutdoorReliefReturnSectiondat Design and operating parameters
Configuration
OutdoorAirSectiontyp Outdoor air section type
DampertypDamOut Outdoor air damper type
DampertypDamOutMin Minimum outdoor air damper type
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal

Connectors

TypeNameDescription
replaceable package MediumAirAir medium
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
FluidPort_aport_aHeaRecOptional fluid connector for heat recovery
FluidPort_bport_bHeaRecOptional fluid connector for heat recovery
BusbusControl bus

Modelica definition

partial model PartialOutdoorSection "Interface class for outdoor air section" replaceable package MediumAir=Buildings.Media.Air constrainedby Modelica.Media.Interfaces.PartialMedium "Air medium"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.OutdoorAirSection typ "Outdoor air section type"; parameter Buildings.Templates.Components.Types.Damper typDamOut "Outdoor air damper type"; parameter Buildings.Templates.Components.Types.Damper typDamOutMin "Minimum outdoor air damper type"; outer parameter Boolean have_recHea "Set to true in case of heat recovery"; outer parameter Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer typCtlEco "Economizer control type"; parameter Buildings.Templates.AirHandlersFans.Components.Data.OutdoorReliefReturnSection dat "Design and operating parameters"; final parameter Modelica.Units.SI.MassFlowRate m_flow_nominal= dat.damOut.m_flow_nominal "Air mass flow rate"; final parameter Modelica.Units.SI.MassFlowRate mOutMin_flow_nominal= dat.mOutMin_flow_nominal "Minimum outdoor air mass flow rate"; parameter Modelica.Fluid.Types.Dynamics energyDynamics= Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state"; parameter Boolean allowFlowReversal = true "= false to simplify equations, assuming, but not enforcing, no flow reversal"; Modelica.Fluid.Interfaces.FluidPort_a port_a( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) "Fluid connector a (positive design flow direction is from port_a to port_b)"; Modelica.Fluid.Interfaces.FluidPort_b port_b( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) "Fluid connector b (positive design flow direction is from port_a to port_b)"; Modelica.Fluid.Interfaces.FluidPort_a port_aHeaRec( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if have_recHea "Optional fluid connector for heat recovery"; Modelica.Fluid.Interfaces.FluidPort_b port_bHeaRec( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if have_recHea "Optional fluid connector for heat recovery"; Buildings.Templates.AirHandlersFans.Interfaces.Bus bus "Control bus"; end PartialOutdoorSection;

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialReliefReturnSection Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialReliefReturnSection

Interface class for relief/return air section

Buildings.Templates.AirHandlersFans.Components.Interfaces.PartialReliefReturnSection

Information

This class provides a standard interface for the relief/return air section of an air handler. Typical components in that section include

Parameters

TypeNameDefaultDescription
replaceable package MediumAirBuildings.Media.AirAir medium
OutdoorReliefReturnSectiondat Design and operating parameters
Configuration
ReliefReturnSectiontyp Relief/return air section type
DampertypDamRel Relief damper type
FantypFanRel Relief fan type
FantypFanRet Return fan type
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversaltrue= false to simplify equations, assuming, but not enforcing, no flow reversal

Connectors

TypeNameDescription
replaceable package MediumAirAir medium
FluidPort_aport_aFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bFluid connector b (positive design flow direction is from port_a to port_b)
FluidPort_aport_aHeaRecOptional fluid connector for heat recovery
FluidPort_bport_bHeaRecOptional fluid connector for heat recovery
FluidPort_bport_bRetOptional fluid connector for return branch
FluidPort_bport_bPreFluid connector for differential pressure sensor
BusbusControl bus

Modelica definition

partial model PartialReliefReturnSection "Interface class for relief/return air section" replaceable package MediumAir=Buildings.Media.Air constrainedby Modelica.Media.Interfaces.PartialMedium "Air medium"; parameter Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection typ "Relief/return air section type"; parameter Buildings.Templates.Components.Types.Damper typDamRel "Relief damper type"; parameter Buildings.Templates.Components.Types.Fan typFanRel "Relief fan type"; parameter Buildings.Templates.Components.Types.Fan typFanRet "Return fan type"; outer parameter Buildings.Templates.AirHandlersFans.Types.ControlFanReturn typCtlFanRet "Return fan control type"; outer parameter Boolean have_recHea "Set to true in case of heat recovery"; outer parameter Buildings.Controls.OBC.ASHRAE.G36.Types.ControlEconomizer typCtlEco "Economizer control type"; parameter Buildings.Templates.AirHandlersFans.Components.Data.OutdoorReliefReturnSection dat "Design and operating parameters"; final parameter Modelica.Units.SI.MassFlowRate m_flow_nominal= if typFanRet <> Buildings.Templates.Components.Types.Fan.None then dat.fanRet.m_flow_nominal elseif typFanRel <> Buildings.Templates.Components.Types.Fan.None then dat.fanRel.m_flow_nominal elseif typDamRel <> Buildings.Templates.Components.Types.Damper.None then dat.damRel.m_flow_nominal else dat.damRet.m_flow_nominal "Air mass flow rate"; final parameter Modelica.Units.SI.PressureDifference dpFan_nominal= if typFanRel <> Buildings.Templates.Components.Types.Fan.None then dat.fanRel.dp_nominal elseif typFanRet <> Buildings.Templates.Components.Types.Fan.None then dat.fanRet.dp_nominal else 0 "Relief/return fan total pressure rise"; parameter Modelica.Fluid.Types.Dynamics energyDynamics= Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state"; parameter Boolean allowFlowReversal = true "= false to simplify equations, assuming, but not enforcing, no flow reversal"; Modelica.Fluid.Interfaces.FluidPort_a port_a( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) "Fluid connector a (positive design flow direction is from port_a to port_b)"; Modelica.Fluid.Interfaces.FluidPort_b port_b( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ <> Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.NoRelief "Fluid connector b (positive design flow direction is from port_a to port_b)"; Modelica.Fluid.Interfaces.FluidPort_a port_aHeaRec( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversal then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if have_recHea "Optional fluid connector for heat recovery"; Modelica.Fluid.Interfaces.FluidPort_b port_bHeaRec( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if have_recHea "Optional fluid connector for heat recovery"; Modelica.Fluid.Interfaces.FluidPort_b port_bRet( redeclare final package Medium = MediumAir, m_flow(max=if allowFlowReversal then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ <> Buildings.Templates.AirHandlersFans.Types.ReliefReturnSection.NoReturn "Optional fluid connector for return branch"; Modelica.Fluid.Interfaces.FluidPort_b port_bPre( redeclare final package Medium = MediumAir) "Fluid connector for differential pressure sensor"; Buildings.Templates.AirHandlersFans.Interfaces.Bus bus "Control bus"; Buildings.Fluid.FixedResistances.Junction splEco( redeclare final package Medium = MediumAir, final m_flow_nominal={1,-1,-1}*m_flow_nominal, final dp_nominal=fill(0, 3), final energyDynamics=energyDynamics, final portFlowDirection_1=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Entering, final portFlowDirection_2=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Leaving, final portFlowDirection_3=if allowFlowReversal then Modelica.Fluid.Types.PortFlowDirection.Bidirectional else Modelica.Fluid.Types.PortFlowDirection.Leaving) "Splitter with air economizer"; Buildings.Templates.Components.Sensors.DifferentialPressure pAirRet_rel( redeclare final package Medium = MediumAir, final have_sen=typFanRet<>Buildings.Templates.Components.Types.Fan.None and typCtlFanRet==Buildings.Templates.AirHandlersFans.Types.ControlFanReturn.BuildingPressure) "Return fan discharge static pressure sensor"; equation /* Control point connection - start */ connect(pAirRet_rel.y, bus.pAirRet_rel); /* Control point connection - end */ connect(splEco.port_3, port_bRet); connect(pAirRet_rel.port_a, splEco.port_1); connect(pAirRet_rel.port_b, port_bPre); end PartialReliefReturnSection;