Buildings.Templates.ZoneEquipment.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.ZoneEquipment.Interfaces.Bus Bus Control bus for zone equipment
Buildings.Templates.ZoneEquipment.Interfaces.PartialAirTerminal PartialAirTerminal Interface class for air terminal unit
Buildings.Templates.ZoneEquipment.Interfaces.VAVBox VAVBox Interface class for VAV terminal unit

Buildings.Templates.ZoneEquipment.Interfaces.Bus Buildings.Templates.ZoneEquipment.Interfaces.Bus

Control bus for zone equipment

Buildings.Templates.ZoneEquipment.Interfaces.Bus

Information

This expandable connector provides a standard interface for all control signals required by a terminal unit controller.

Extends from Modelica.Icons.SignalBus (Icon for signal bus).

Contents

TypeNameDescription
BusdamVAVVAV damper points
BuscoiHeaHeating coil points

Modelica definition

expandable connector Bus "Control bus for zone equipment" extends Modelica.Icons.SignalBus; Buildings.Templates.Components.Interfaces.Bus damVAV "VAV damper points"; Buildings.Templates.Components.Interfaces.Bus coiHea "Heating coil points"; end Bus;

Buildings.Templates.ZoneEquipment.Interfaces.PartialAirTerminal Buildings.Templates.ZoneEquipment.Interfaces.PartialAirTerminal

Interface class for air terminal unit

Buildings.Templates.ZoneEquipment.Interfaces.PartialAirTerminal

Information

This partial class provides a standard interface for air terminal unit templates.

Parameters

TypeNameDefaultDescription
replaceable package MediumAirBuildings.Media.AirAir medium
replaceable package MediumHeaWatBuildings.Media.WaterHHW medium
PartialAirTerminaldatdat(final typ=typ, final hav...Design and operating parameters
Configuration
Configurationtyp Type of system
Booleanhave_souChiWat Set to true if system uses CHW
Booleanhave_souHeaWat Set to true if system uses HHW
Nominal condition
MassFlowRatemAirPri_flow_nominal Primary air mass flow rate [kg/s]
MassFlowRatemChiWat_flow_nominal Total CHW mass flow rate [kg/s]
MassFlowRatemHeaWat_flow_nominal Total HHW mass flow rate [kg/s]
HeatFlowRateQChiWat_flow_nominal Total CHW heat flow rate [W]
HeatFlowRateQHeaWat_flow_nominal Total HHW heat flow rate [W]
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversalLiqtrue= true to allow flow reversal, false restricts to design direction - CHW and HW side
Advanced
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at ports of subcomponents is computed

Connectors

TypeNameDescription
replaceable package MediumAirAir medium
replaceable package MediumHeaWatHHW medium
FluidPort_aport_SupSupply air from AHU
FluidPort_aport_SupColDual duct cold deck air supply from AHU
FluidPort_aport_SupHotDual duct hot deck air supply from AHU
FluidPort_bport_DisDischarge air
FluidPort_aport_RetReturn air
FluidPort_aport_aHeaWatHHW supply port
FluidPort_bport_bHeaWatHHW return port
BusbusTerminal unit control bus

Modelica definition

partial model PartialAirTerminal "Interface class for air terminal unit" replaceable package MediumAir=Buildings.Media.Air constrainedby Modelica.Media.Interfaces.PartialMedium "Air medium"; replaceable package MediumHeaWat=Buildings.Media.Water constrainedby Modelica.Media.Interfaces.PartialMedium "HHW medium"; parameter Buildings.Templates.ZoneEquipment.Types.Configuration typ "Type of system"; final parameter String id=dat.id "System tag"; parameter Boolean have_souChiWat "Set to true if system uses CHW"; parameter Boolean have_souHeaWat "Set to true if system uses HHW"; replaceable parameter Buildings.Templates.ZoneEquipment.Data.PartialAirTerminal dat( final typ=typ, final have_souChiWat=have_souChiWat, final have_souHeaWat=have_souHeaWat) "Design and operating parameters"; // Design parameters final parameter Modelica.Units.SI.MassFlowRate mAir_flow_nominal= dat.mAir_flow_nominal "Discharge air mass flow rate"; parameter Modelica.Units.SI.MassFlowRate mAirPri_flow_nominal "Primary air mass flow rate"; parameter Modelica.Units.SI.MassFlowRate mChiWat_flow_nominal "Total CHW mass flow rate"; parameter Modelica.Units.SI.MassFlowRate mHeaWat_flow_nominal "Total HHW mass flow rate"; parameter Modelica.Units.SI.HeatFlowRate QChiWat_flow_nominal "Total CHW heat flow rate"; parameter Modelica.Units.SI.HeatFlowRate QHeaWat_flow_nominal "Total HHW heat flow rate"; parameter Modelica.Fluid.Types.Dynamics energyDynamics= Modelica.Fluid.Types.Dynamics.DynamicFreeInitial "Type of energy balance: dynamic (3 initialization options) or steady state"; final parameter Boolean allowFlowReversalAir=true "= true to allow flow reversal, false restricts to design direction - Air side"; parameter Boolean allowFlowReversalLiq=true "= true to allow flow reversal, false restricts to design direction - CHW and HW side"; parameter Boolean show_T = false "= true, if actual temperature at ports of subcomponents is computed"; Modelica.Fluid.Interfaces.FluidPort_a port_Sup( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversalAir then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ <> Buildings.Templates.ZoneEquipment.Types.Configuration.DualDuct "Supply air from AHU"; Modelica.Fluid.Interfaces.FluidPort_a port_SupCol( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversalAir then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ == Buildings.Templates.ZoneEquipment.Types.Configuration.DualDuct "Dual duct cold deck air supply from AHU"; Modelica.Fluid.Interfaces.FluidPort_a port_SupHot( redeclare final package Medium = MediumAir, m_flow(min=if allowFlowReversalAir then -Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ == Buildings.Templates.ZoneEquipment.Types.Configuration.DualDuct "Dual duct hot deck air supply from AHU"; Modelica.Fluid.Interfaces.FluidPort_b port_Dis( redeclare final package Medium =MediumAir, m_flow(max=if allowFlowReversalAir then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) "Discharge air"; Modelica.Fluid.Interfaces.FluidPort_a port_Ret( redeclare final package Medium =MediumAir, m_flow(max=if allowFlowReversalAir then +Modelica.Constants.inf else 0), h_outflow(start=MediumAir.h_default, nominal=MediumAir.h_default)) if typ == Buildings.Templates.ZoneEquipment.Types.Configuration.FanPowered or typ == Buildings.Templates.ZoneEquipment.Types.Configuration.Induction "Return air"; Modelica.Fluid.Interfaces.FluidPort_a port_aHeaWat( redeclare final package Medium = MediumHeaWat, m_flow(min=if allowFlowReversalLiq then -Modelica.Constants.inf else 0), h_outflow(start=MediumHeaWat.h_default, nominal=MediumHeaWat.h_default)) if have_souHeaWat "HHW supply port"; Modelica.Fluid.Interfaces.FluidPort_b port_bHeaWat( redeclare final package Medium = MediumHeaWat, m_flow(max=if allowFlowReversalLiq then +Modelica.Constants.inf else 0), h_outflow(start=MediumHeaWat.h_default, nominal=MediumHeaWat.h_default)) if have_souHeaWat "HHW return port"; Buildings.Templates.ZoneEquipment.Interfaces.Bus bus "Terminal unit control bus"; end PartialAirTerminal;

Buildings.Templates.ZoneEquipment.Interfaces.VAVBox Buildings.Templates.ZoneEquipment.Interfaces.VAVBox

Interface class for VAV terminal unit

Buildings.Templates.ZoneEquipment.Interfaces.VAVBox

Information

This partial class provides a standard interface for VAV terminal unit templates.

Extends from Buildings.Templates.ZoneEquipment.Interfaces.PartialAirTerminal (Interface class for air terminal unit).

Parameters

TypeNameDefaultDescription
replaceable package MediumAirAirAir medium
replaceable package MediumHeaWatWaterHHW medium
Configuration
Configurationtyp Type of system
Booleanhave_souChiWatfalseSet to true if system uses CHW
Booleanhave_souHeaWatcoiHea.have_souSet to true if system uses HHW
Nominal condition
MassFlowRatemAirPri_flow_nominalmAir_flow_nominalPrimary air mass flow rate [kg/s]
MassFlowRatemChiWat_flow_nominal0Total CHW mass flow rate [kg/s]
MassFlowRatemHeaWat_flow_nominalif coiHea.have_sou then dat....Total HHW mass flow rate [kg/s]
HeatFlowRateQChiWat_flow_nominal0Total CHW heat flow rate [W]
HeatFlowRateQHeaWat_flow_nominalif coiHea.have_sou then dat....Total HHW heat flow rate [W]
Heating coil
WaterBasedHeatingcoiHeacoiHea(redeclare final packa...Heating coil
VAV damper
ModulatingdamVAVredeclare inner Buildings.Te...VAV damper
Controller
OpenLoopctlredeclare inner Buildings.Te...Control selections
Dynamics
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversalLiqtrue= true to allow flow reversal, false restricts to design direction - CHW and HW side
Advanced
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at ports of subcomponents is computed

Connectors

TypeNameDescription
FluidPort_aport_SupSupply air from AHU
FluidPort_aport_SupColDual duct cold deck air supply from AHU
FluidPort_aport_SupHotDual duct hot deck air supply from AHU
FluidPort_bport_DisDischarge air
FluidPort_aport_RetReturn air
FluidPort_aport_aHeaWatHHW supply port
FluidPort_bport_bHeaWatHHW return port
BusbusTerminal unit control bus

Modelica definition

model VAVBox "Interface class for VAV terminal unit" extends Buildings.Templates.ZoneEquipment.Interfaces.PartialAirTerminal( redeclare Buildings.Templates.ZoneEquipment.Data.VAVBox dat( typCoiHea=coiHea.typ, typValCoiHea=coiHea.typVal, typDamVAV=damVAV.typ, typCtl=ctl.typ, stdVen=ctl.stdVen), final have_souChiWat=false, final have_souHeaWat=coiHea.have_sou, final mAirPri_flow_nominal=mAir_flow_nominal, final mChiWat_flow_nominal=0, final mHeaWat_flow_nominal=if coiHea.have_sou then dat.coiHea.mWat_flow_nominal else 0, final QChiWat_flow_nominal=0, final QHeaWat_flow_nominal=if coiHea.have_sou then dat.coiHea.Q_flow_nominal else 0); inner replaceable Buildings.Templates.Components.Coils.WaterBasedHeating coiHea( redeclare final package MediumHeaWat = MediumHeaWat, redeclare final Buildings.Templates.Components.Valves.TwoWayModulating val) constrainedby Buildings.Templates.Components.Interfaces.PartialCoil( redeclare final package MediumAir = MediumAir, final dat=datCoiHea, final energyDynamics=energyDynamics, final allowFlowReversalAir=allowFlowReversalAir, final allowFlowReversalLiq=allowFlowReversalLiq, final show_T=show_T) "Heating coil"; inner replaceable Buildings.Templates.Components.Dampers.Modulating damVAV constrainedby Buildings.Templates.Components.Interfaces.PartialDamper( redeclare final package Medium = MediumAir, use_inputFilter=energyDynamics<>Modelica.Fluid.Types.Dynamics.SteadyState, final allowFlowReversal=allowFlowReversalAir, final show_T=show_T, final dat=datDamVAV) "VAV damper"; inner replaceable Buildings.Templates.ZoneEquipment.Components.Controls.OpenLoop ctl constrainedby Buildings.Templates.ZoneEquipment.Components.Interfaces.PartialControllerVAVBox ( final dat=dat.ctl) "Control selections"; Buildings.Templates.Components.Sensors.Temperature TAirDis( redeclare final package Medium = MediumAir, final allowFlowReversal=allowFlowReversalAir, final have_sen=ctl.typ==Buildings.Templates.ZoneEquipment.Types.Controller.G36VAVBoxReheat or ctl.typ==Buildings.Templates.ZoneEquipment.Types.Controller.G36VAVBoxCoolingOnly, final m_flow_nominal=mAir_flow_nominal, final typ=Buildings.Templates.Components.Types.SensorTemperature.Standard) "Discharge air temperature sensor"; Buildings.Templates.Components.Sensors.VolumeFlowRate VAirDis_flow( redeclare final package Medium = MediumAir, final allowFlowReversal=allowFlowReversalAir, final have_sen=ctl.typ==Buildings.Templates.ZoneEquipment.Types.Controller.G36VAVBoxReheat or ctl.typ==Buildings.Templates.ZoneEquipment.Types.Controller.G36VAVBoxCoolingOnly, final m_flow_nominal=mAir_flow_nominal, final typ=Buildings.Templates.Components.Types.SensorVolumeFlowRate.FlowCross) "Airflow sensor"; protected parameter Buildings.Templates.Components.Data.Damper datDamVAV( final typ=damVAV.typ, final m_flow_nominal=dat.damVAV.m_flow_nominal, final dp_nominal=dat.damVAV.dp_nominal, final dpFixed_nominal=if damVAV.typ == Buildings.Templates.Components.Types.Damper.None then 0 else dat.coiHea.dpAir_nominal) "Local record for VAV damper with lumped flow resistance"; parameter Buildings.Templates.Components.Data.Coil datCoiHea( final typ=coiHea.typ, final typVal=coiHea.typVal, final have_sou=coiHea.have_sou, final mAir_flow_nominal=dat.coiHea.mAir_flow_nominal, final mWat_flow_nominal=dat.coiHea.mWat_flow_nominal, final dpWat_nominal=dat.coiHea.dpWat_nominal, final dpValve_nominal=dat.coiHea.dpValve_nominal, final cap_nominal=dat.coiHea.cap_nominal, final TWatEnt_nominal=dat.coiHea.TWatEnt_nominal, final TAirEnt_nominal=dat.coiHea.TAirEnt_nominal, final dpAir_nominal=if damVAV.typ == Buildings.Templates.Components.Types.Damper.None then dat.coiHea.dpAir_nominal else 0) "Local record for coil with lumped flow resistance"; equation /* Control point connection - start */ connect(damVAV.bus, bus.damVAV); connect(coiHea.bus, bus.coiHea); connect(TAirDis.y, bus.TAirDis); connect(VAirDis_flow.y, bus.VAirDis_flow); /* Control point connection - end */ connect(port_aHeaWat, coiHea.port_aSou); connect(coiHea.port_bSou, port_bHeaWat); connect(damVAV.port_b,coiHea. port_a); connect(bus,ctl. bus); connect(coiHea.port_b, TAirDis.port_a); connect(TAirDis.port_b, port_Dis); connect(port_Sup, VAirDis_flow.port_a); connect(VAirDis_flow.port_b, damVAV.port_a); end VAVBox;