Supply-air temperature reset: is it reset, and which way?
Workbook exercise air-sat-reset · PNNL re-tuning chapter 5 · about 45 minutes
Goal
Decide, for three air handlers, whether the supply-air (discharge-air) temperature is reset at all, which way it moves with the outdoor air, and how far it sits below a standard reset target. Then check the other half of discharge-air control: does the unit meet the setpoint it has? Cold supply air that is never reset is one of the commonest reasons terminal reheat runs all year.
Learn more
Read these first (PNNL, free):
- AHU Discharge-Air Temperature Control, the re-tuning guide: its questions ask whether the discharge-air temperature is reset, what drives the reset, and whether the unit holds its setpoint. This exercise answers each one from trends.
- Chapter 5: Air Handling Units of the re-tuning training, for the trends to collect and how to read them.
Datasets and licence
lbnl-sdahu: LBNL's simulated single-duct VAV air handler (cooling coil only, dry-bulb economizer), a year at one-minute resolution, fault-free plus labelled faulted runs. Licence CC-BY-4.0 (open; cite it). About 600 MB to download. See its data issues.lbnl-ddahu: LBNL's simulated dual-duct air handler (a hot deck and a cold deck), a year at one-minute resolution. Licence CC-BY-4.0 (open; cite it). About 1.8 GB to download. See its data issues, in particular the one about the economizer supply-air setpoint.irish-ahu: five and a half years of 15-minute BMS trends from one real air handler at an industrial site in Ireland. Licence CC-BY-4.0 (open; cite it). About 22 MB. See its data issues.
The equipment used: AHU__fault_free and AHU__damper_stuck_075 in ds-lbnl-sdahu,
DDAHU__fault_free (the cold deck) in ds-lbnl-ddahu, and AHU__ahu in ds-irish-ahu.
Setup
In the lab
- Run
camber laband open the URL it prints (http://127.0.0.1:8765/lab?token=...). - Tick
lbnl-sdahu,lbnl-ddahuandirish-ahuand press Fetch & ingest. - When the jobs are done, open each row's trends link to look at the supply-air temperature, its setpoint (where there is one) and the outdoor air. The exercise's own configs are run from the command line.
On the command line
camber datasets fetch lbnl-sdahu lbnl-ddahu irish-ahu
camber datasets ingest lbnl-sdahu lbnl-ddahu irish-ahu --store lab_store
camber datasets config lbnl-sdahu --exercise air-sat-reset --store lab_store --out sat.json
camber run sat.json --out sat_out
camber datasets config lbnl-ddahu --exercise air-sat-reset--lbnl-ddahu --store lab_store --out sat_dd.json
camber run sat_dd.json --out sat_dd_out
camber datasets config irish-ahu --exercise air-sat-reset--irish-ahu --store lab_store --out sat_ie.json
camber run sat_ie.json --out sat_ie_out
Each config runs the supply-air rules only:
supply_air_resetasks the shape question. Where a setpoint is trended it reads the setpoint: does it move, repeatedly, with the outdoor air? Where none is trended it fits the supply air against the outdoor air over the cooling hours.supply_air_reset_complianceasks the target question: how often, and by how much, is the supply air colder than the ASHRAE Guideline 36 outdoor-air reset would ask for (55 °F when it is 70 °F or warmer outside, rising to 65 °F at 60 °F and below)? None of these units documents a reset of its own, so the standard target is the yardstick.supply_air_control(single-duct unit only) asks whether the supply air stays within 2 °F of its setpoint while the fan runs in occupied hours. Itsoccupancy_gate(default"trended") reads the unit's own trended occupancy point when there is one; a unit without one is judged on every fan-on hour.
Steps
- Look first. In the trend viewer, plot
AHU__fault_free's supply-air temperature and its setpoint over a week in spring and a week in summer. Then do the same for the Irish unit's supply air against its outdoor temperature. - Run the three configs and read the findings each
camber runprints. - Shape. For each unit, read
supply_air_reset: its verdict,slope_per_F(°F of supply air per °F of outdoor air) and, on the two LBNL units,sp_range_f(how far the setpoint moved; on the dual-duct unit it is the cold-deck setpoint). - Target. Read
supply_air_reset_compliance:pct_below_g36_targetandmean_gap_f. - Holding the setpoint. Read
supply_air_controlon the single-duct runs: the share of occupied running hours too warm and too cold, andoccupancy_gate(which hours it judged). Then set"occupancy_gate": "off"on the rule insat.json(a rule entry becomes{"name": "supply_air_control", "params": {"occupancy_gate": "off"}}), run it again and compare the fault-free unit.
Questions
- Is the single-duct unit's supply-air temperature reset? What does CAMBER read to decide, and how far below the Guideline 36 target does the supply air sit?
- Is the dual-duct unit's cold deck reset? What does the dataset's documentation say it should do in economizer weather, and what does the data show?
- Does the Irish unit reset its supply air? In which direction does it move as the outdoor air warms, and is that the direction a cooling supply-air reset should move?
- Which single-duct run fails to hold its supply-air setpoint, in which direction, and why can that unit not correct it?
- The fault-free single-duct unit's supply air also runs more than 2 °F above its setpoint in
some fan-on hours, yet
supply_air_controlreads it as healthy. When do those hours happen, what changes when the rule counts every fan-on hour, and are they a control fault?
What CAMBER shows
- Findings.
camber runprints one line per finding;*_out/findings.jsonholds every metric:reset_direction,slope_per_F,sp_behaviourandsp_range_fforsupply_air_reset;pct_below_g36_target,mean_gap_fandtracks_targetforsupply_air_reset_compliance;too_warm_pct,too_cold_pctandoccupancy_gateforsupply_air_control. - Caveats. A reset inferred from the supply air alone, with no setpoint trended, carries a caveat that asks for the setpoint: read it.
- Report.
camber report sat.json --out sat.htmlshows the same findings with evidence charts.

Synthetic illustration, not this exercise's dataset: the supply_air_reset evidence chart: occupied, fan-on cooling hours. A flat cloud at 55 °F is a supply-air setpoint that is never reset in mild weather.
Caveats
- The two LBNL units are simulations with a fixed sequence; the Irish unit is real but trends no supply-air setpoint and no fan status, so its reset is inferred from the supply air.
- The Guideline 36 target is a standard yardstick, not these units' design: the saving is an opportunity to weigh against zone comfort and humidity, not a fault.
- The Irish unit's outdoor sensor reads warmer than the nearby weather station, most in the afternoon (see its data issues); the slope is against the unit's own sensor.
- A negative slope can also be load tracking: warmer weather, more cooling, colder supply air at a fixed setpoint that the coil only just holds. Only a trended setpoint settles it.
Going further
- Tighten or loosen the target:
supply_air_reset_compliancetakesmin_clg_sat,t_max,oat_minandoat_max. Set them to a reset you would propose for the single-duct unit and see how its gap changes. - Run the dual-duct unit's default config (
camber datasets config lbnl-ddahu --store lab_store --out dd.json) and compare its outdoor-air findings across the seasons. - The exercise
air-economizeruses the same single-duct runs for the outdoor-air damper.