modelASHRAE2006

Variable air volume flow system with terminal reheat and ASHRAE 2006 control sequence serving five thermal zones

Extends from Buildings.Examples.VAVReheat.BaseClasses.PartialHVAC (Partial model of variable air volume flow system with terminal reheat that serves five thermal zones).

Information

This model consist of an HVAC system is a variable air volume (VAV) flow system with economizer and a heating and cooling coil in the air handler unit. There is also a reheat coil and an air damper in each of the five zone inlet branches. The figure below shows the schematic diagram of an HVAC system that supplies 5 zones:

image

See the model Buildings.Examples.VAVReheat.BaseClasses.PartialHVAC for a description of the HVAC system.

The control is an implementation of the control sequence VAV 2A2-21232 of the Sequences of Operation for Common HVAC Systems (ASHRAE, 2006). In this control sequence, the supply fan speed is modulated based on the duct static pressure. The return fan controller tracks the supply fan air flow rate. The duct static pressure set point is adjusted so that at least one VAV damper is 90% open. The heating coil valve, outside air damper, and cooling coil valve are modulated in sequence to maintain the supply air temperature set point. The economizer control provides the following functions: freeze protection, minimum outside air requirement, and supply air cooling, see Buildings.Examples.VAVReheat.BaseClasses.Controls.Economizer. The controller of the terminal units tracks the room air temperature set point based on a "dual maximum with constant volume heating" logic, see Buildings.Examples.VAVReheat.BaseClasses.Controls.RoomVAV.

There is also a finite state machine that transitions the mode of operation of the HVAC system between the modes occupied, unoccupied off, unoccupied night set back, unoccupied warm-up and unoccupied pre-cool. In the VAV model, all air flows are computed based on the duct static pressure distribution and the performance curves of the fans. Local loop control is implemented using proportional and proportional-integral controllers, while the supervisory control is implemented using a finite state machine.

A similar model but with a different control sequence can be found in Buildings.Examples.VAVReheat.BaseClasses.Guideline36.

References

ASHRAE. Sequences of Operation for Common HVAC Systems. ASHRAE, Atlanta, GA, 2006.

Parameters

TypeNameDefaultDescription
IntegernumZon (from PartialHVAC)5Total number of served VAV boxes
Modelica.Units.SI.Volume[numZon]VRoo (from PartialHVAC)Room volume per zone
Modelica.Units.SI.Area[numZon]AFlo (from PartialHVAC)Floor area per zone
Modelica.Units.SI.AreaATot (from PartialHVAC)sum(AFlo)Total floor area for all zone
Realconv (from PartialHVAC)1.2/3600Conversion factor for nominal mass flow rate
Modelica.Units.SI.HeatFlowRateQHeaAHU_flow_nominal (from PartialHVAC)mHeaAir_flow_nominal*cpAir*(THeaAirSup_nominal - THeaAirMix_nominal)Nominal heating heat flow rate of air handler unit coil
Modelica.Units.SI.HeatFlowRateQCooAHU_flow_nominal (from PartialHVAC)1.3*mCooAir_flow_nominal*cpAir*(TCooAirSup_nominal - TCooAirMix_nominal)Nominal total cooling heat flow rate of air handler unit coil (negative number)
RealratOAFlo_A (from PartialHVAC)0.3e-3Outdoor airflow rate required per unit area
RealratOAFlo_P (from PartialHVAC)2.5e-3Outdoor airflow rate required per person
RealratP_A (from PartialHVAC)5e-2Occupant density
RealeffZ (from PartialHVAC)0.8Zone air distribution effectiveness (limiting value)
RealdivP (from PartialHVAC)0.7Occupant diversity ratio
Modelica.Units.SI.VolumeFlowRate[numZon]VZonOA_flow_nominal (from PartialHVAC)(ratOAFlo_P*ratP_A + ratOAFlo_A)*AFlo/effZZone outdoor air flow rate of each VAV box
Modelica.Units.SI.VolumeFlowRateVou_flow_nominal (from PartialHVAC)(divP*ratOAFlo_P*ratP_A + ratOAFlo_A)*sum(AFlo)System uncorrected outdoor air flow rate
RealeffVen (from PartialHVAC)if divP < 0.6 then 0.88*divP + 0.22 else 0.75System ventilation efficiency
Modelica.Units.SI.VolumeFlowRateVot_flow_nominal (from PartialHVAC)Vou_flow_nominal/effVenSystem design outdoor air flow rate
Modelica.Units.SI.PressureDifferencedpBuiStaSet (from PartialHVAC)12Building static pressure
RealyFanMin (from PartialHVAC)0.1Minimum fan speed
BooleanallowFlowReversal (from PartialHVAC)true= false to simplify equations, assuming, but not enforcing, no flow reversal
Real[numZon]ratVMinVAV_flow{max(1.5*VZonOA_flow_nominal[i]/mCooVAV_flow_nominal[i]/1.2, 0.15) for i in 1:numZon}Minimum discharge air flow rate ratio
Nominal mass flow rate
Modelica.Units.SI.MassFlowRate[numZon]mCooVAV_flow_nominal (from PartialHVAC)Design mass flow rate per zone for cooling
Modelica.Units.SI.MassFlowRate[numZon]mHeaVAV_flow_nominal (from PartialHVAC)0.3*mCooVAV_flow_nominalDesign mass flow rate per zone for heating
Modelica.Units.SI.MassFlowRatemAir_flow_nominal (from PartialHVAC)mCooAir_flow_nominalNominal mass flow rate for fan
Modelica.Units.SI.MassFlowRatemCooAir_flow_nominal (from PartialHVAC)0.7*sum(mCooVAV_flow_nominal)Nominal mass flow rate for fan
Modelica.Units.SI.MassFlowRatemHeaAir_flow_nominal (from PartialHVAC)0.7*sum(mHeaVAV_flow_nominal)Nominal mass flow rate for fan
Modelica.Units.SI.MassFlowRatemHeaWat_flow_nominal (from PartialHVAC)QHeaAHU_flow_nominal/cpWat/10Nominal water mass flow rate for heating coil in AHU
Modelica.Units.SI.MassFlowRatemCooWat_flow_nominal (from PartialHVAC)QCooAHU_flow_nominal/cpWat/(-6)Nominal water mass flow rate for cooling coil
Room temperature setpoints
Modelica.Units.SI.TemperatureTHeaOn (from PartialHVAC)293.15Heating setpoint during on
Modelica.Units.SI.TemperatureTHeaOff (from PartialHVAC)285.15Heating setpoint during off
Modelica.Units.SI.TemperatureTCooOn (from PartialHVAC)297.15Cooling setpoint during on
Modelica.Units.SI.TemperatureTCooOff (from PartialHVAC)303.15Cooling setpoint during off
Air handler unit nominal temperatures and humidity
Modelica.Units.SI.TemperatureTCooAirMix_nominal (from PartialHVAC)303.15Mixed air temperature during cooling nominal conditions (used to size cooling coil)
Modelica.Units.SI.TemperatureTCooAirSup_nominal (from PartialHVAC)285.15Supply air temperature during cooling nominal conditions (used to size cooling coil)
Modelica.Units.SI.MassFractionwCooAirMix_nominal (from PartialHVAC)0.017Humidity ratio of mixed air at a nominal conditions used to size cooling coil (in kg/kg dry total)
Modelica.Units.SI.TemperatureTCooWatInl_nominal (from PartialHVAC)279.15Cooling coil nominal inlet water temperature
Modelica.Units.SI.TemperatureTHeaAirMix_nominal (from PartialHVAC)277.15Mixed air temperature during heating nominal conditions (used to size heating coil)
Modelica.Units.SI.TemperatureTHeaAirSup_nominal (from PartialHVAC)285.15Supply air temperature during heating nominal conditions (used to size heating coil)
Modelica.Units.SI.TemperatureTHeaWatInl_nominal (from PartialHVAC)Reheat coil nominal inlet water temperature

Connectors

TypeNameDefaultDescription
Modelica.Fluid.Interfaces.FluidPort_a[numZon]port_supAir (from PartialHVAC)Supply air to thermal zones
Modelica.Fluid.Interfaces.FluidPort_a[numZon]port_retAir (from PartialHVAC)Return air from thermal zones
Modelica.Blocks.Interfaces.RealInput[numZon]TRoo (from PartialHVAC)Room temperatures
BoundaryConditions.WeatherData.BusweaBus (from PartialHVAC)Weather data bus
Modelica.Fluid.Interfaces.FluidPort_aportHeaCoiSup (from PartialHVAC)Heating coil loop supply
Modelica.Fluid.Interfaces.FluidPort_bportHeaCoiRet (from PartialHVAC)Heating coil loop return
Modelica.Fluid.Interfaces.FluidPort_aportHeaTerSup (from PartialHVAC)Terminal heat loop supply
Modelica.Fluid.Interfaces.FluidPort_bportHeaTerRet (from PartialHVAC)Terminal heat loop return
Modelica.Fluid.Interfaces.FluidPort_aportCooCoiSup (from PartialHVAC)Cooling coil loop supply
Modelica.Fluid.Interfaces.FluidPort_bportCooCoiRet (from PartialHVAC)Coolin coil loop return
Controls.ControlBuscontrolBus

Components

TypeNameDefaultDescription
Buildings.Fluid.Sources.Outsideamb (from PartialHVAC)Ambient conditions
Buildings.Fluid.HeatExchangers.DryCoilEffectivenessNTUheaCoi (from PartialHVAC)Heating coil
Fluid.HeatExchangers.WetCoilEffectivenessNTUcooCoi (from PartialHVAC)Cooling coil
Buildings.Fluid.FixedResistances.PressureDropdpRetDuc (from PartialHVAC)Pressure drop for return duct
Buildings.Fluid.Movers.Preconfigured.SpeedControlled_yfanSup (from PartialHVAC)Supply air fan
Buildings.Fluid.Sensors.VolumeFlowRatesenSupFlo (from PartialHVAC)Sensor for supply fan flow rate
Buildings.Fluid.Sensors.VolumeFlowRatesenRetFlo (from PartialHVAC)Sensor for return fan flow rate
Modelica.Blocks.Routing.RealPassThroughTOut (from PartialHVAC)
Buildings.Fluid.Sensors.TemperatureTwoPortTSup (from PartialHVAC)
Buildings.Fluid.Sensors.RelativePressuredpDisSupFan (from PartialHVAC)Supply fan static discharge pressure
Buildings.Controls.SetPoints.OccupancyScheduleoccSch (from PartialHVAC)Occupancy schedule
Buildings.Fluid.Sensors.TemperatureTwoPortTRet (from PartialHVAC)Return air temperature sensor
Buildings.Fluid.Sensors.TemperatureTwoPortTMix (from PartialHVAC)Mixed air temperature sensor
Buildings.Fluid.Sensors.VolumeFlowRateVOut1 (from PartialHVAC)Outside air volume flow rate
Resultsres (from PartialHVAC)Results of the simulation
Fluid.Actuators.Dampers.ExponentialdamRet (from PartialHVAC)Return air damper
Fluid.Actuators.Dampers.ExponentialdamOut (from PartialHVAC)Outdoor air damper
Fluid.FixedResistances.JunctionsplCooSup (from PartialHVAC)Flow splitter
Fluid.Actuators.Valves.TwoWayEqualPercentagevalCooCoi (from PartialHVAC)Valve for cooling coil
Fluid.FixedResistances.JunctionsplCooRet (from PartialHVAC)Flow splitter
Fluid.Movers.Preconfigured.SpeedControlled_ypumCooCoi (from PartialHVAC)Supply air fan
Fluid.Movers.Preconfigured.SpeedControlled_ypumHeaCoi (from PartialHVAC)Pump for heating coil
Fluid.Actuators.Valves.TwoWayEqualPercentagevalHeaCoi (from PartialHVAC)Valve for heating coil
Fluid.FixedResistances.JunctionsplHeaRet (from PartialHVAC)Flow splitter
Fluid.FixedResistances.JunctionsplHeaSup (from PartialHVAC)Flow splitter
Buildings.Examples.VAVReheat.BaseClasses.VAVReheatBox[numZon]VAVBox (from PartialHVAC)VAV boxes
Buildings.Fluid.FixedResistances.Junction[numZon - 1]splRetRoo (from PartialHVAC)Splitter for room return air
Buildings.Fluid.FixedResistances.Junction[numZon - 1]splSupRoo (from PartialHVAC)Splitter for room supply air
Fluid.FixedResistances.PressureDropdpSupDuc (from PartialHVAC)Pressure drop for supply duct
Fluid.FixedResistances.JunctionsplRetOut (from PartialHVAC)Flow splitter
Controls.FanVFDconFanSupController for fan
Controls.ModeSelectormodeSelector
Controls.EconomizerconEcoController for economizer
Controls.RoomTemperatureSetpointTSetRoo
Controls.DuctStaticPressureSetpointpSetDucDuct static pressure setpoint
Controls.RoomVAV[numZon]conVAVController for terminal unit
Buildings.Controls.OBC.CDL.Logical.Oror2
Controls.SupplyAirTemperatureconTSupSupply air temperature and economizer controller
Controls.SupplyAirTemperatureSetpointTSupSetSupply air temperature set point
Buildings.Fluid.Actuators.Dampers.ExponentialdamExhExhaust air damper
Controls.SystemHysteresissysHysHeaHysteresis and delay to switch heating on and off
Controls.SystemHysteresissysHysCooHysteresis and delay to switch cooling on and off
Buildings.Controls.OBC.CDL.Reals.SwitchswiFreStaPumSwitch for freeze stat of pump
Buildings.Controls.OBC.CDL.Reals.SwitchswiFreStaValSwitch for freeze stat of valve
Buildings.Controls.OBC.CDL.Reals.Sources.ConstantyFreHeaCoiFlow rate signal for heating coil when freeze stat is on
Buildings.Controls.OBC.CDL.Reals.MultiMinTRooMinMinimum room temperature
Utilities.Math.AverageTRooAveAverage room temperature
Controls.FreezeStatfreStaFreeze stat for heating coil
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorTRooHeaSetReplicate room temperature heating setpoint
Buildings.Controls.OBC.CDL.Routing.RealScalarReplicatorTRooCooSetReplicate room temperature cooling setpoint

Revisions

  • May 22, 2026, by Michael Wetter:
    Changed hardcoded value for number of inputs in pSetDuc to use parameter numZon.
    This is for issue #4609.
  • March 4, 2024, by Michael Wetter:
    Corrected wrong use of displayUnit.
  • December 20, 2021, by Michael Wetter:
    Changed parameter declarations for issue #2829.
  • November 9, 2021, by Baptiste:
    Vectorized the terminal boxes to be expanded to any number of zones.
    This is for issue #2735.
  • October 4, 2021, by Michael Wetter:
    Refactored Buildings.Examples.VAVReheat and its base classes to separate building from HVAC model.
    This is for issue #2652.
  • September 16, 2021, by Michael Wetter:
    Removed assignment of parameter lat as this is now obtained from the weather data reader.
    This is for IBPSA, #1477.
  • September 3, 2021, by Michael Wetter:
    Updated documentation.
    This is for issue #2600.
  • August 24, 2021, by Michael Wetter:
    Changed model to include the hydraulic configurations of the cooling coil, heating coil and VAV terminal box.
    This is for issue #2594.
  • May 6, 2021, by David Blum:
    Change to from_dp=false for exhaust air damper.
    This is for issue #2485.
  • April 30, 2021, by Michael Wetter:
    Reformulated replaceable class and introduced floor areas in base class to avoid access of components that are not in the constraining type.
    This is for issue #2471.
  • April 16, 2021, by Michael Wetter:
    Refactored model to implement the economizer dampers directly in Buildings.Examples.VAVReheat.BaseClasses.PartialHVAC rather than through the model of a mixing box. Since the version of the Guideline 36 model has no exhaust air damper, this leads to simpler equations.
    This is for issue #2454.
  • March 15, 2021, by David Blum:
    Update documentation graphic to include relief damper.
    This is for #2399.
  • October 27, 2020, by Antoine Gautier:
    Refactored the supply air temperature control sequence.
    This is for #2024.
  • July 10, 2020, by Antoine Gautier:
    Changed design and control parameters for outdoor air flow.
    This is for #2019.
  • April 20, 2020, by Jianjun Hu:
    Exported actual VAV damper position as the measured input data for defining duct static pressure setpoint.
    This is for #1873.
  • May 19, 2016, by Michael Wetter:
    Changed chilled water supply temperature to 6°C. This is for #509.
  • April 26, 2016, by Michael Wetter:
    Changed controller for freeze protection as the old implementation closed the outdoor air damper during summer. This is for #511.
  • January 22, 2016, by Michael Wetter:
    Corrected type declaration of pressure difference. This is for #404.
  • September 24, 2015 by Michael Wetter:
    Set default temperature for medium to avoid conflicting start values for alias variables of the temperature of the building and the ambient air. This is for issue 426.