Buildings.Templates.Components.Coils

Coil models

Information

This package contains models for heating and cooling coils.

Extends from Modelica.Icons.VariantsPackage (Icon for package containing variants).

Package Content

Name Description
Buildings.Templates.Components.Coils.ElectricHeating ElectricHeating Modulating electric heating coil
Buildings.Templates.Components.Coils.EvaporatorMultiStage EvaporatorMultiStage Evaporator coil with multi-stage compressor
Buildings.Templates.Components.Coils.EvaporatorVariableSpeed EvaporatorVariableSpeed Evaporator coil with variable speed compressor
Buildings.Templates.Components.Coils.None None No coil
Buildings.Templates.Components.Coils.WaterBasedCooling WaterBasedCooling Chilled water coil
Buildings.Templates.Components.Coils.WaterBasedHeating WaterBasedHeating Hot water coil

Buildings.Templates.Components.Coils.ElectricHeating Buildings.Templates.Components.Coils.ElectricHeating

Modulating electric heating coil

Buildings.Templates.Components.Coils.ElectricHeating

Information

This is a model for a modulating electric heating coil.

Extends from Buildings.Templates.Components.Interfaces.PartialCoil (Interface class for coil).

Parameters

TypeNameDefaultDescription
replaceable package MediumAirAirAir medium
replaceable package MediumSouWaterSource-side medium
Coildat Design and operating parameters
Configuration
CoiltypBuildings.Templates.Componen...Equipment type
ValvetypValBuildings.Templates.Componen...Type of valve
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau20Time constant at nominal flow [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversalAirtrue= true to allow flow reversal, false restricts to design direction - Air side
BooleanallowFlowReversalLiqtrue= true to allow flow reversal, false restricts to design direction - CHW and HW side

Connectors

TypeNameDescription
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_aSouFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bSouFluid connector b (positive design flow direction is from port_a to port_b)
BusbusWeaWeather bus
BusbusControl bus

Modelica definition

model ElectricHeating "Modulating electric heating coil" extends Buildings.Templates.Components.Interfaces.PartialCoil( final typ=Buildings.Templates.Components.Types.Coil.ElectricHeating, final typVal=Buildings.Templates.Components.Types.Valve.None); Buildings.Fluid.HeatExchangers.HeaterCooler_u hex( redeclare final package Medium = MediumAir, final Q_flow_nominal=dat.Q_flow_nominal, final m_flow_nominal=dat.mAir_flow_nominal, final dp_nominal=dat.dpAir_nominal, final energyDynamics=energyDynamics, final tau=tau, final allowFlowReversal=allowFlowReversalAir, final show_T=show_T) "Heat exchanger"; equation connect(port_a, hex.port_a); connect(hex.port_b, port_b); connect(bus.y, hex.u); end ElectricHeating;

Buildings.Templates.Components.Coils.EvaporatorMultiStage Buildings.Templates.Components.Coils.EvaporatorMultiStage

Evaporator coil with multi-stage compressor

Buildings.Templates.Components.Coils.EvaporatorMultiStage

Information

This is a model for a direct expansion cooling coil with a multi-stage compressor. The compressor stage is selected with the control signal y (integer between 0 and the number of stages).

Extends from Buildings.Templates.Components.Interfaces.PartialCoil (Interface class for coil).

Parameters

TypeNameDefaultDescription
replaceable package MediumAirAirAir medium
replaceable package MediumSouWaterSource-side medium
Coildat Design and operating parameters
Booleanhave_dryContrueSet to true for air-cooled condenser, false for evaporative condenser
Configuration
CoiltypBuildings.Templates.Componen...Equipment type
ValvetypValBuildings.Templates.Componen...Type of valve
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau20Time constant at nominal flow [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversalAirtrue= true to allow flow reversal, false restricts to design direction - Air side
BooleanallowFlowReversalLiqtrue= true to allow flow reversal, false restricts to design direction - CHW and HW side

Connectors

TypeNameDescription
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_aSouFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bSouFluid connector b (positive design flow direction is from port_a to port_b)
BusbusWeaWeather bus
BusbusControl bus

Modelica definition

model EvaporatorMultiStage "Evaporator coil with multi-stage compressor" extends Buildings.Templates.Components.Interfaces.PartialCoil( final typ=Buildings.Templates.Components.Types.Coil.EvaporatorMultiStage, final typVal=Buildings.Templates.Components.Types.Valve.None); parameter Boolean have_dryCon = true "Set to true for air-cooled condenser, false for evaporative condenser"; Buildings.Fluid.DXSystems.Cooling.AirSource.MultiStage hex( redeclare final package Medium = MediumAir, final datCoi=dat.datCoi, final dp_nominal=dpAir_nominal, final energyDynamics=energyDynamics, final tau=tau, final allowFlowReversal=allowFlowReversalAir, final show_T=show_T) "Heat exchanger"; Modelica.Blocks.Routing.RealPassThrough TWetBul if not have_dryCon; Modelica.Blocks.Routing.RealPassThrough TDry if have_dryCon; equation connect(port_a, hex.port_a); connect(hex.port_b, port_b); connect(busWea.TWetBul, TWetBul.u); connect(busWea.TDryBul, TDry.u); connect(TWetBul.y, hex.TOut); connect(TDry.y, hex.TOut); connect(bus.y, hex.stage); end EvaporatorMultiStage;

Buildings.Templates.Components.Coils.EvaporatorVariableSpeed Buildings.Templates.Components.Coils.EvaporatorVariableSpeed

Evaporator coil with variable speed compressor

Buildings.Templates.Components.Coils.EvaporatorVariableSpeed

Information

This is a model for a direct expansion cooling coil with a variable speed compressor. The compressor speed is modulated with the fractional speed signal y (real between 0 and 1).

Extends from Buildings.Templates.Components.Interfaces.PartialCoil (Interface class for coil).

Parameters

TypeNameDefaultDescription
replaceable package MediumAirAirAir medium
replaceable package MediumSouWaterSource-side medium
Coildat Design and operating parameters
Booleanhave_dryContrueSet to true for air-cooled condenser, false for evaporative condenser
Configuration
CoiltypBuildings.Templates.Componen...Equipment type
ValvetypValBuildings.Templates.Componen...Type of valve
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau20Time constant at nominal flow [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversalAirtrue= true to allow flow reversal, false restricts to design direction - Air side
BooleanallowFlowReversalLiqtrue= true to allow flow reversal, false restricts to design direction - CHW and HW side

Connectors

TypeNameDescription
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_aSouFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bSouFluid connector b (positive design flow direction is from port_a to port_b)
BusbusWeaWeather bus
BusbusControl bus

Modelica definition

model EvaporatorVariableSpeed "Evaporator coil with variable speed compressor" extends Buildings.Templates.Components.Interfaces.PartialCoil( final typ=Buildings.Templates.Components.Types.Coil.EvaporatorVariableSpeed, final typVal=Buildings.Templates.Components.Types.Valve.None); parameter Boolean have_dryCon = true "Set to true for air-cooled condenser, false for evaporative condenser"; Buildings.Fluid.DXSystems.Cooling.AirSource.VariableSpeed hex( redeclare final package Medium = MediumAir, final datCoi=dat.datCoi, final minSpeRat=dat.datCoi.minSpeRat, final dp_nominal=dpAir_nominal, final energyDynamics=energyDynamics, final tau=tau, final allowFlowReversal=allowFlowReversalAir, final show_T=show_T) "Heat exchanger"; Modelica.Blocks.Routing.RealPassThrough TWetBul if not have_dryCon; Modelica.Blocks.Routing.RealPassThrough TDry if have_dryCon; equation connect(port_a, hex.port_a); connect(hex.port_b, port_b); connect(busWea.TWetBul, TWetBul.u); connect(busWea.TDryBul, TDry.u); connect(TWetBul.y, hex.TOut); connect(TDry.y, hex.TOut); connect(bus.y, hex.speRat); end EvaporatorVariableSpeed;

Buildings.Templates.Components.Coils.None Buildings.Templates.Components.Coils.None

No coil

Buildings.Templates.Components.Coils.None

Information

This is a direct fluid pass-through model to represent a configuration with no coil.

Extends from Buildings.Templates.Components.Interfaces.PartialCoil (Interface class for coil).

Parameters

TypeNameDefaultDescription
replaceable package MediumAirAirAir medium
replaceable package MediumSouWaterSource-side medium
Coildat Design and operating parameters
Configuration
CoiltypBuildings.Templates.Componen...Equipment type
ValvetypValBuildings.Templates.Componen...Type of valve
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau20Time constant at nominal flow [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversalAirtrue= true to allow flow reversal, false restricts to design direction - Air side
BooleanallowFlowReversalLiqtrue= true to allow flow reversal, false restricts to design direction - CHW and HW side

Connectors

TypeNameDescription
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_aSouFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bSouFluid connector b (positive design flow direction is from port_a to port_b)
BusbusWeaWeather bus
BusbusControl bus

Modelica definition

model None "No coil" extends Buildings.Templates.Components.Interfaces.PartialCoil( final typ=Buildings.Templates.Components.Types.Coil.None, final typVal=Buildings.Templates.Components.Types.Valve.None); equation connect(port_a, port_b); end None;

Buildings.Templates.Components.Coils.WaterBasedCooling Buildings.Templates.Components.Coils.WaterBasedCooling

Chilled water coil

Buildings.Templates.Components.Coils.WaterBasedCooling

Information

This is a model for a chilled water coil with an optional modulating valve. The valve position is modulated with the fractional opening signal y (real between 0 and 1). If no valve is used, no signal is required.

Extends from Buildings.Templates.Components.Interfaces.PartialCoil (Interface class for coil).

Parameters

TypeNameDefaultDescription
replaceable package MediumAirAirAir medium
replaceable package MediumSouWaterSource-side medium
Coildat Design and operating parameters
replaceable package MediumChiWatBuildings.Media.WaterSource side medium
TwoWayModulatingvalredeclare Buildings.Template...Valve
WetCoilEffectivenessNTUhexhex(configuration=Buildings....Heat exchanger
Configuration
CoiltypBuildings.Templates.Componen...Equipment type
ValvetypValval.typType of valve
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau20Time constant at nominal flow [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversalAirtrue= true to allow flow reversal, false restricts to design direction - Air side
BooleanallowFlowReversalLiqtrue= true to allow flow reversal, false restricts to design direction - CHW and HW side

Connectors

TypeNameDescription
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)
replaceable package MediumSouSource-side medium
FluidPort_aport_aSouFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bSouFluid connector b (positive design flow direction is from port_a to port_b)
BusbusWeaWeather bus
BusbusControl bus
replaceable package MediumChiWatSource side medium

Modelica definition

model WaterBasedCooling "Chilled water coil" extends Buildings.Templates.Components.Interfaces.PartialCoil( final typ=Buildings.Templates.Components.Types.Coil.WaterBasedCooling, final typVal=val.typ, redeclare final package MediumSou = MediumChiWat); replaceable package MediumChiWat=Buildings.Media.Water "Source side medium"; final parameter Modelica.Units.SI.MassFlowRate mWat_flow_nominal= dat.mWat_flow_nominal "Liquid mass flow rate"; final parameter Modelica.Units.SI.PressureDifference dpWat_nominal= dat.dpWat_nominal "Liquid pressure drop across coil"; final parameter Modelica.Units.SI.PressureDifference dpValve_nominal= dat.dpValve_nominal "Nominal pressure drop across fully open valve"; replaceable Buildings.Templates.Components.Valves.TwoWayModulating val constrainedby Buildings.Templates.Components.Interfaces.PartialValve ( redeclare final package Medium = MediumChiWat, final energyDynamics=energyDynamics, use_inputFilter=energyDynamics<>Modelica.Fluid.Types.Dynamics.SteadyState, final allowFlowReversal=allowFlowReversalLiq, final show_T=show_T, final dat=datVal) "Valve"; replaceable Buildings.Fluid.HeatExchangers.WetCoilEffectivenessNTU hex( configuration=Buildings.Fluid.Types.HeatExchangerConfiguration.CounterFlow, final use_Q_flow_nominal=true, final Q_flow_nominal=Q_flow_nominal, final T_a1_nominal=dat.TWatEnt_nominal, final T_a2_nominal=dat.TAirEnt_nominal, final w_a2_nominal=dat.wAirEnt_nominal, final dp1_nominal=if val.typ==Buildings.Templates.Components.Types.Valve.None then dpWat_nominal else 0, final dp2_nominal=dpAir_nominal) constrainedby Buildings.Fluid.Interfaces.PartialFourPortInterface( redeclare final package Medium1 = MediumChiWat, redeclare final package Medium2 = MediumAir, final m1_flow_nominal=mWat_flow_nominal, final m2_flow_nominal=mAir_flow_nominal, final allowFlowReversal1=allowFlowReversalLiq, final allowFlowReversal2=allowFlowReversalAir, final show_T=show_T) "Heat exchanger"; Buildings.Fluid.FixedResistances.Junction jun( redeclare final package Medium = MediumChiWat, final m_flow_nominal=mWat_flow_nominal*{1,-1,-1}, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, dp_nominal=fill(0, 3), 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) if typVal==Buildings.Templates.Components.Types.Valve.ThreeWayModulating "Junction"; Buildings.Templates.Components.Routing.PassThroughFluid pas( redeclare final package Medium = MediumChiWat, final allowFlowReversal=allowFlowReversalLiq) if typVal <> Buildings.Templates.Components.Types.Valve.ThreeWayModulating "Direct pass through"; equation connect(port_a,hex. port_a2); connect(hex.port_b2, port_b); connect(val.port_a, hex.port_b1); connect(val.port_b, port_bSou); connect(val.portByp_a, jun.port_3); connect(jun.port_2, hex.port_a1); connect(port_aSou, jun.port_1); connect(port_aSou, pas.port_a); connect(pas.port_b, hex.port_a1); connect(val.bus, bus); end WaterBasedCooling;

Buildings.Templates.Components.Coils.WaterBasedHeating Buildings.Templates.Components.Coils.WaterBasedHeating

Hot water coil

Buildings.Templates.Components.Coils.WaterBasedHeating

Information

This is a model for a hot water coil with an optional modulating valve. The valve position is modulated with the fractional opening signal y (real between 0 and 1). If no valve is used, no signal is required.

Extends from Buildings.Templates.Components.Interfaces.PartialCoil (Interface class for coil).

Parameters

TypeNameDefaultDescription
replaceable package MediumAirAirAir medium
replaceable package MediumSouWaterSource-side medium
Coildat Design and operating parameters
replaceable package MediumHeaWatBuildings.Media.WaterSource side medium
TwoWayModulatingvalredeclare Buildings.Template...Valve
DryCoilEffectivenessNTUhexhex(configuration=Buildings....Heat exchanger
Configuration
CoiltypBuildings.Templates.Componen...Equipment type
ValvetypValval.typType of valve
Advanced
MassFlowRatem_flow_small1E-4*abs(m_flow_nominal)Small mass flow rate for regularization of zero flow [kg/s]
Diagnostics
Booleanshow_Tfalse= true, if actual temperature at port is computed
Dynamics
Nominal condition
Timetau20Time constant at nominal flow [s]
Conservation equations
DynamicsenergyDynamicsModelica.Fluid.Types.Dynamic...Type of energy balance: dynamic (3 initialization options) or steady state
Assumptions
BooleanallowFlowReversalAirtrue= true to allow flow reversal, false restricts to design direction - Air side
BooleanallowFlowReversalLiqtrue= true to allow flow reversal, false restricts to design direction - CHW and HW side

Connectors

TypeNameDescription
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)
replaceable package MediumSouSource-side medium
FluidPort_aport_aSouFluid connector a (positive design flow direction is from port_a to port_b)
FluidPort_bport_bSouFluid connector b (positive design flow direction is from port_a to port_b)
BusbusWeaWeather bus
BusbusControl bus
replaceable package MediumHeaWatSource side medium

Modelica definition

model WaterBasedHeating "Hot water coil" extends Buildings.Templates.Components.Interfaces.PartialCoil( final typ=Buildings.Templates.Components.Types.Coil.WaterBasedHeating, final typVal=val.typ, redeclare final package MediumSou = MediumHeaWat); replaceable package MediumHeaWat=Buildings.Media.Water "Source side medium"; final parameter Modelica.Units.SI.MassFlowRate mWat_flow_nominal= dat.mWat_flow_nominal "Liquid mass flow rate"; final parameter Modelica.Units.SI.PressureDifference dpWat_nominal= dat.dpWat_nominal "Liquid pressure drop across coil"; final parameter Modelica.Units.SI.PressureDifference dpValve_nominal= dat.dpValve_nominal "Nominal pressure drop across fully open valve"; replaceable Buildings.Templates.Components.Valves.TwoWayModulating val constrainedby Buildings.Templates.Components.Interfaces.PartialValve ( redeclare final package Medium = MediumHeaWat, final energyDynamics=energyDynamics, use_inputFilter=energyDynamics<>Modelica.Fluid.Types.Dynamics.SteadyState, final allowFlowReversal=allowFlowReversalLiq, final show_T=show_T, final dat=datVal) "Valve"; replaceable Buildings.Fluid.HeatExchangers.DryCoilEffectivenessNTU hex( configuration=Buildings.Fluid.Types.HeatExchangerConfiguration.CounterFlow, final use_Q_flow_nominal=true, final Q_flow_nominal=Q_flow_nominal, final T_a1_nominal=dat.TWatEnt_nominal, final T_a2_nominal=dat.TAirEnt_nominal, final dp1_nominal=if val.typ==Buildings.Templates.Components.Types.Valve.None then dpWat_nominal else 0, final dp2_nominal=dpAir_nominal) constrainedby Buildings.Fluid.Interfaces.PartialFourPortInterface( redeclare final package Medium1 = MediumHeaWat, redeclare final package Medium2 = MediumAir, final m1_flow_nominal=mWat_flow_nominal, final m2_flow_nominal=mAir_flow_nominal, final allowFlowReversal1=allowFlowReversalLiq, final allowFlowReversal2=allowFlowReversalAir, final show_T=show_T) "Heat exchanger"; Buildings.Templates.Components.Routing.PassThroughFluid pas( redeclare final package Medium = MediumHeaWat, final allowFlowReversal=allowFlowReversalLiq) if typVal <> Buildings.Templates.Components.Types.Valve.ThreeWayModulating "Direct pass through"; Buildings.Fluid.FixedResistances.Junction jun( redeclare final package Medium=MediumHeaWat, final m_flow_nominal=mWat_flow_nominal * {1, -1, -1}, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, dp_nominal=fill(0, 3), 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) if typVal==Buildings.Templates.Components.Types.Valve.ThreeWayModulating "Junction"; equation connect(port_a,hex. port_a2); connect(hex.port_b2, port_b); connect(val.port_a, hex.port_b1); connect(val.port_b, port_bSou); connect(port_aSou, pas.port_a); connect(pas.port_b, hex.port_a1); connect(jun.port_2, hex.port_a1); connect(port_aSou, jun.port_1); connect(val.portByp_a, jun.port_3); connect(bus, val.bus); end WaterBasedHeating;