Basic
25 min

VAV Damper Modulation

HVACVAVproportionalREALPID
VAV Damper Modulation scenario preview

Ready to build this?

Sign up free — no credit card required. This scenario requires the Basic plan.

Sign up to play this scenario →

Already have an account? Log in

Briefing

A Variable Air Volume (VAV) terminal unit controls space temperature by modulating a supply-air damper and a reheat coil valve. When space temperature exceeds setpoint (cooling demand), the damper opens proportionally. When temperature falls below setpoint (heating demand), the damper returns to minimum position and the reheat valve opens proportionally. In unoccupied mode both outputs go to minimum. A FAULT_LAMP lights if sensor inputs are out of range.

Objectives

  • Cooling: DAMPER_CMD = proportional(SPACE_TEMP - SETPOINT) clamped 0–100%
  • Heating: DAMPER_CMD = 10% (minimum), REHEAT_VALVE_CMD proportional to (SETPOINT - SPACE_TEMP)
  • OCCUPIED = FALSE forces DAMPER_CMD = 10%, REHEAT_VALVE_CMD = 0%
  • FAULT_LAMP if SPACE_TEMP < -20°C or >100°C (sensor out-of-range)
  • RESET_PB clears the fault latch

Hints

  • Deadband: ±0.5°C around setpoint — no action
  • Proportional gain (cooling): 10%/°C → error=5°C → damper=50%
  • Proportional gain (heating): 15%/°C → error=3°C → reheat=45%
  • Clamp outputs to 0–100%

I/O Table

Inputs

SPACE_TEMP

Space temperature sensor (°C)

REAL · %IW0

SETPOINT

Temperature setpoint (°C)

REAL · %IW1

OCCUPIED

Occupied mode switch

BOOL · %I0.0

RESET_PB

Fault reset push-button

BOOL · %I0.1

SENSOR_FAULT

Space-temp sensor out of −20…100 °C range

BOOL · %I0.2

Outputs

DAMPER_CMD

Damper position command 0–100% (DAMPER_PID.CV)

REAL · %QW0

REHEAT_VALVE_CMD

Reheat valve command 0–100% (REHEAT_PID.CV)

REAL · %QW1

FAULT_LAMP

Sensor fault indicator lamp

BOOL · %Q0.0

Your program will be tested against:

All test cases run automatically when you submit. Assertions are hidden until you pass.

  1. #1Cooling demand opens damper proportionally

    SPACE_TEMP=25, SETPOINT=22, OCCUPIED -> DAMPER_CMD ~30%

  2. #2Heating demand opens reheat, damper at minimum

    SPACE_TEMP=18, SETPOINT=22, OCCUPIED -> DAMPER_CMD=10%, REHEAT>0

  3. #3Unoccupied mode sets damper to minimum

    OCCUPIED=FALSE -> DAMPER_CMD=10%, REHEAT=0

  4. #4Sensor out-of-range latches FAULT_LAMP

    SPACE_TEMP=150 (out of range) -> FAULT_LAMP

Ready to build this?

Sign up free — no credit card required. This scenario requires the Basic plan.

Sign up to play this scenario →

Already have an account? Log in