Buildings.Fluid.ZoneEquipment

Package with common configurations of zonal HVAC systems

Information

This package contains models for common configurations of zonal HVAC systems, that are responsible for meeting the zonal heating and cooling loads.

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

Package Content

Name Description
Buildings.Fluid.ZoneEquipment.FourPipe FourPipe System model for a four-pipe fan coil unit

Buildings.Fluid.ZoneEquipment.FourPipe Buildings.Fluid.ZoneEquipment.FourPipe

System model for a four-pipe fan coil unit

Buildings.Fluid.ZoneEquipment.FourPipe

Information

This is a four-pipe fan coil unit system model. The system consists of the following components:

For examples of how to use the model, refer to Buildings.Examples.FanCoils.FourPipe. The following points are salient when using the model:

The figure below shows the schematic diagram of the four pipe system when heaCoiTyp is set to water based using the enumeration Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.

image

Parameters

TypeNameDefaultDescription
replaceable package MediumAModelica.Media.Interfaces.Pa...Medium for air
replaceable package MediumHWModelica.Media.Interfaces.Pa...Medium for hot water
replaceable package MediumCHWModelica.Media.Interfaces.Pa...Medium for chilled water
System parameters
HeatingCoilheaCoiTypBuildings.Controls.OBC.ASHRA...Heating coil type
PressureDifferencedpAir_nominal Total pressure difference across supply and return ports in air loop [Pa]
MassFlowRatemAir_flow_nominal Nominal mass flow rate of supply air [kg/s]
Heating coil parameters
HeatFlowRateQHeaCoi_flow_nominal Nominal heat flow rate of heating coil [W]
TemperatureTHeaCoiWatSup_nominal333.15Design water temperature entering heating coil [K]
TemperatureTHeaCoiAirEnt_nominal293.15Design air temperature entering heating coil [K]
MassFlowRatemHeaCoiWat_flow_nominal Nominal mass flow rate of heating hot water [kg/s]
PressureDifferencedpHeaCoiWat_nominal Total pressure difference across heating coil (water side) [Pa]
PressureDifferencedpHeaCoiVal_nominaldpHeaCoiWat_nominalDesign pressure drop of heating water valve [Pa]
Cooling coil parameters
HeatFlowRateQCooCoi_flow_nominal Nominal heat flow rate of cooling coil [W]
TemperatureTCooCoiWatEnt_nominal279.83Design water inlet temperature of cooling coil [K]
TemperatureTCooCoiAirEnt_nominal296.15Design air inlet temperature of cooling coil [K]
MassFractionwCooCoiAirEnt_nominal0.012Design humidity ratio of inlet air of cooling coil (in kg/kg dry air) [1]
MassFlowRatemCooCoiWat_flow_nominal Nominal mass flow rate of chilled water [kg/s]
PressureDifferencedpCooCoiWat_nominal Total pressure difference across cooling coil (water side) [Pa]
PressureDifferencedpCooCoiVal_nominaldpCooCoiWat_nominalDesign pressure drop of chilled water valve [Pa]

Connectors

TypeNameDescription
replaceable package MediumAMedium for air
replaceable package MediumHWMedium for hot water
replaceable package MediumCHWMedium for chilled water
input RealInputuHeaHeating loop control signal [1]
input RealInputuCooCooling loop control signal [1]
input RealInputuFanFan normalized speed control signal [1]
output RealOutputyFan_actualNormalized actual fan speed signal [1]
output RealOutputTAirSupMeasured supply air temperature [K]
FluidPort_aport_air_aReturn air port from zone
FluidPort_bport_air_bSupply air port to the zone
FluidPort_aport_CHW_aChilled water supply port
FluidPort_bport_CHW_bChilled water return port
FluidPort_aport_HW_aHot water supply port
FluidPort_bport_HW_bHot water return port

Modelica definition

model FourPipe "System model for a four-pipe fan coil unit" replaceable package MediumA = Modelica.Media.Interfaces.PartialMedium "Medium for air"; replaceable package MediumHW = Modelica.Media.Interfaces.PartialMedium "Medium for hot water"; replaceable package MediumCHW = Modelica.Media.Interfaces.PartialMedium "Medium for chilled water"; parameter Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil heaCoiTyp=Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased "Heating coil type"; parameter Modelica.Units.SI.HeatFlowRate QHeaCoi_flow_nominal(final min=0, final start=0) "Nominal heat flow rate of heating coil"; parameter Modelica.Units.SI.Temperature THeaCoiWatSup_nominal=333.15 "Design water temperature entering heating coil"; parameter Modelica.Units.SI.Temperature THeaCoiAirEnt_nominal=293.15 "Design air temperature entering heating coil"; parameter Modelica.Units.SI.HeatFlowRate QCooCoi_flow_nominal(final max=0, final start=0) "Nominal heat flow rate of cooling coil"; parameter Modelica.Units.SI.Temperature TCooCoiWatEnt_nominal=279.83 "Design water inlet temperature of cooling coil"; parameter Modelica.Units.SI.Temperature TCooCoiAirEnt_nominal=296.15 "Design air inlet temperature of cooling coil"; parameter Modelica.Units.SI.MassFraction wCooCoiAirEnt_nominal=0.012 "Design humidity ratio of inlet air of cooling coil (in kg/kg dry air)"; parameter Modelica.Units.SI.MassFlowRate mHeaCoiWat_flow_nominal(final min=0, final start=0) "Nominal mass flow rate of heating hot water"; parameter Modelica.Units.SI.PressureDifference dpHeaCoiWat_nominal( displayUnit="Pa", final start=0) "Total pressure difference across heating coil (water side)"; parameter Modelica.Units.SI.PressureDifference dpHeaCoiVal_nominal( displayUnit="Pa") =dpHeaCoiWat_nominal "Design pressure drop of heating water valve"; parameter Modelica.Units.SI.PressureDifference dpAir_nominal(displayUnit="Pa") "Total pressure difference across supply and return ports in air loop"; parameter Modelica.Units.SI.MassFlowRate mCooCoiWat_flow_nominal "Nominal mass flow rate of chilled water"; parameter Modelica.Units.SI.PressureDifference dpCooCoiWat_nominal( displayUnit="Pa") "Total pressure difference across cooling coil (water side)"; parameter Modelica.Units.SI.PressureDifference dpCooCoiVal_nominal( displayUnit="Pa") = dpCooCoiWat_nominal "Design pressure drop of chilled water valve"; parameter Modelica.Units.SI.MassFlowRate mAir_flow_nominal "Nominal mass flow rate of supply air"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uHea( final min=0, final max=1, final unit="1") if have_hea "Heating loop control signal"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uCoo( final min=0, final max=1, final unit="1") "Cooling loop control signal"; Buildings.Controls.OBC.CDL.Interfaces.RealInput uFan( final min=0, final max=1, final unit="1") "Fan normalized speed control signal"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput yFan_actual( final unit="1", displayUnit="1") "Normalized actual fan speed signal"; Buildings.Controls.OBC.CDL.Interfaces.RealOutput TAirSup( final unit="K", displayUnit="degC", final quantity="ThermodynamicTemperature") "Measured supply air temperature"; Modelica.Fluid.Interfaces.FluidPort_a port_air_a( redeclare final package Medium = MediumA) "Return air port from zone"; Modelica.Fluid.Interfaces.FluidPort_b port_air_b( redeclare final package Medium = MediumA) "Supply air port to the zone"; Modelica.Fluid.Interfaces.FluidPort_a port_CHW_a( redeclare package Medium = Buildings.Media.Water) "Chilled water supply port"; Modelica.Fluid.Interfaces.FluidPort_b port_CHW_b( redeclare final package Medium = Buildings.Media.Water) "Chilled water return port"; Modelica.Fluid.Interfaces.FluidPort_a port_HW_a( redeclare final package Medium = Buildings.Media.Water) if have_hotWat "Hot water supply port"; Modelica.Fluid.Interfaces.FluidPort_b port_HW_b( redeclare final package Medium = Buildings.Media.Water) if have_hotWat "Hot water return port"; Buildings.Fluid.Sensors.TemperatureTwoPort TAirHea( redeclare final package Medium = MediumA, final m_flow_nominal=mAir_flow_nominal) "Heating coil discharge air temperature sensor"; Buildings.Fluid.HeatExchangers.DryCoilEffectivenessNTU hex( redeclare final package Medium1 = MediumHW, redeclare final package Medium2 = MediumA, final m1_flow_nominal=mHeaCoiWat_flow_nominal, final m2_flow_nominal=mAir_flow_nominal, show_T=true, final dp1_nominal=0, final dp2_nominal=0, configuration=Buildings.Fluid.Types.HeatExchangerConfiguration.CounterFlow, use_Q_flow_nominal=true, final Q_flow_nominal=QHeaCoi_flow_nominal, final T_a1_nominal=THeaCoiWatSup_nominal, final T_a2_nominal=THeaCoiAirEnt_nominal) if have_hotWat "Hot water heating coil"; Buildings.Fluid.Actuators.Valves.TwoWayLinear valHW( redeclare final package Medium = MediumHW, final m_flow_nominal=mHeaCoiWat_flow_nominal, final dpValve_nominal=dpHeaCoiVal_nominal, dpFixed_nominal=dpHeaCoiWat_nominal) if have_hotWat "Hot water flow control valve"; Buildings.Fluid.HeatExchangers.WetCoilEffectivenessNTU hexWetNtu( redeclare final package Medium1 = MediumCHW, redeclare final package Medium2 = MediumA, final m1_flow_nominal=mCooCoiWat_flow_nominal, final m2_flow_nominal=mAir_flow_nominal, show_T=true, final dp1_nominal=0, final dp2_nominal=0, use_Q_flow_nominal=true, final Q_flow_nominal=QCooCoi_flow_nominal, final T_a1_nominal=TCooCoiWatEnt_nominal, final T_a2_nominal=TCooCoiAirEnt_nominal, final w_a2_nominal=wCooCoiAirEnt_nominal, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) "Chilled-water cooling coil"; Buildings.Fluid.Actuators.Valves.TwoWayLinear valCHW( redeclare final package Medium = MediumCHW, final m_flow_nominal=mCooCoiWat_flow_nominal, final dpValve_nominal=dpCooCoiVal_nominal, dpFixed_nominal=dpCooCoiWat_nominal) "Chilled-water flow control valve"; Buildings.Fluid.Sensors.TemperatureTwoPort TAirLvg( redeclare final package Medium = MediumA, final m_flow_nominal=mAir_flow_nominal) "Supply air temperature sensor"; Buildings.Fluid.Movers.Preconfigured.SpeedControlled_y fan( redeclare final package Medium = MediumA, final energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial, addPowerToMedium=true, final m_flow_nominal=mAir_flow_nominal, final dp_nominal=dpAir_nominal) "Supply fan"; Buildings.Fluid.FixedResistances.PressureDrop totResAir( redeclare final package Medium = MediumA, final m_flow_nominal = mAir_flow_nominal, final dp_nominal = dpAir_nominal, final allowFlowReversal = true) "Total resistance of air path"; Buildings.Fluid.HeatExchangers.HeaterCooler_u heaCoiEle( redeclare final package Medium = MediumA, final m_flow_nominal=mAir_flow_nominal, show_T=true, final dp_nominal=0, final Q_flow_nominal=QHeaCoi_flow_nominal, energyDynamics=Modelica.Fluid.Types.Dynamics.FixedInitial) if have_heaEle "Electric heating coil"; protected final parameter Boolean have_hotWat=(heaCoiTyp ==Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.WaterBased) "True if a hot water heating coil exists"; final parameter Boolean have_heaEle=(heaCoiTyp ==Buildings.Controls.OBC.ASHRAE.G36.Types.HeatingCoil.Electric) "True if an electric heating coil exists"; final parameter Boolean have_hea=have_hotWat or have_heaEle "True if a heating coil exists"; Buildings.Fluid.FixedResistances.LosslessPipe pipByp( redeclare final package Medium = MediumA, final m_flow_nominal=mAir_flow_nominal, final allowFlowReversal=true) if not have_hea "Bypass when heating coil is absent"; equation connect(valHW.port_a, hex.port_b1); connect(hex.port_b2, TAirHea.port_a); connect(uHea, valHW.y); connect(valCHW.port_a, hexWetNtu.port_b1); connect(TAirHea.port_b, hexWetNtu.port_a2); connect(fan.port_b, TAirLvg.port_a); connect(uCoo, valCHW.y); connect(hexWetNtu.port_b2, totResAir.port_a); connect(heaCoiEle.port_b, TAirHea.port_a); connect(uHea, heaCoiEle.u); connect(TAirLvg.T, TAirSup); connect(totResAir.port_b, fan.port_a); connect(pipByp.port_b, TAirHea.port_a); connect(uFan, fan.y); connect(fan.y_actual, yFan_actual); connect(hex.port_a1, port_HW_a); connect(valHW.port_b, port_HW_b); connect(hexWetNtu.port_a1, port_CHW_a); connect(valCHW.port_b, port_CHW_b); connect(port_air_a, pipByp.port_a); connect(port_air_a, heaCoiEle.port_a); connect(port_air_a, hex.port_a2); connect(TAirLvg.port_b, port_air_b); end FourPipe;