FOPDT process · Discrete positional PID · Step-response tuning
This simulator models a first-order plus dead time (FOPDT) process under discrete PID control and plots the step response, helping controls engineers tune proportional, integral, and derivative gains for HVAC loops such as supply air temperature, chilled water temperature, static pressure, and zone temperature control. It is used for initial tuning and re-tuning after process changes.
A PID controller computes a control output u = Kp × e + Ki × ∫e dt + Kd × de/dt, where e is the error between setpoint and process variable. The Ziegler-Nichols ultimate oscillation method finds the ultimate gain Ku (the Kp at which the loop just sustains oscillation with Ki = Kd = 0) and ultimate period Tu (the oscillation period). Initial tuning parameters are: Kp = 0.6 × Ku, Ti = 0.5 × Tu (so Ki = Kp/Ti), Td = 0.125 × Tu.
The FOPDT (First Order Plus Dead Time) model used here represents most HVAC processes: a process gain K (steady-state output per unit input), a time constant τ (speed of response in seconds), and a dead time L (pure delay before the process begins to respond). Most HVAC DDC controllers use positional PID with conditional integration anti-windup — the integral accumulates only when the output is not saturated against its limits.
ASHRAE Guideline 36 recommends specific tuning approaches for common HVAC control loops and defines performance criteria including maximum overshoot, settling time, and steady-state error. ISA-5.1 (Instrumentation Symbols and Identification) defines terminology for control loops. Most DDC manufacturers provide tuning guidance in their programming manuals, often recommending a trial-and-error step-response method rather than analytical Ziegler-Nichols for HVAC applications due to the highly nonlinear nature of HVAC processes at different load conditions.
HVAC control loops have widely varying process dynamics: a supply air temperature loop (cooling coil controlled by a two-way valve) has τ = 20–60 s and L = 5–15 s, while a zone temperature loop has τ = 600–3600 s and L = 60–300 s. Derivative action (Kd) amplifies sensor noise and is often disabled in HVAC applications; if enabled, a derivative filter is essential. Integral windup occurs when the output saturates (valve fully open or closed) and the integral accumulates error during saturation — the conditional anti-windup in this simulator holds the integral when saturated, which prevents prolonged overshoot after large disturbances. For variable-flow hydronic systems, the process gain K changes with flow rate, making a single set of PID gains optimized at full flow potentially unstable at low flow.
Set the process model parameters (K, τ, L) to represent your HVAC loop, then adjust the PID gains (Kp, Ki, Kd) and watch the step response update in real time. The status banner reports whether the loop is well-tuned (overshoot < 15%, stable settling), underdamped/sluggish, or unstable/oscillating. Key metrics shown include overshoot percentage, settling time to ±2% of setpoint, rise time from 10% to 90%, steady-state error, and peak process variable. Start with Ki = 0 and Kd = 0, increase Kp until the response is fast but not oscillating, then add Ki to eliminate steady-state error, and optionally add small Kd to reduce overshoot.
For a chilled water cooling coil SAT loop with τ ≈ 40 s, L ≈ 8 s, and K ≈ 1.5°F per unit valve position, typical gains are Kp = 1–3, Ki = 0.1–0.5 /s, and Kd = 0–1 s. These values are highly dependent on the specific coil, valve, and airflow; always verify with a step test on the actual system.
Integral windup occurs when the control output saturates at its limit (valve fully open or fully closed) and the integral term continues to accumulate error. When the process finally responds, the large accumulated integral causes severe overshoot. Anti-windup prevents accumulation when saturated: the conditional integration method (used here) only adds to the integral when the output is not saturated.
Derivative action anticipates future error by responding to the rate of change. It is useful for loops with significant dead time (L/τ > 0.3) or where overshoot must be minimized (e.g., humidity control near dew point). However, derivative amplifies high-frequency noise from sensors, causing valve chatter. In HVAC, derivative is often disabled or used with a derivative filter (N parameter) that limits the derivative gain at high frequencies.
FOPDT (First Order Plus Dead Time) models a process as a first-order lag with gain K and time constant τ, plus a pure dead time L. Most HVAC thermal processes approximate this shape well: a step change in valve position causes no immediate response (dead time), then a smooth exponential approach to a new steady state (first-order lag with gain K). FOPDT is the minimum complexity model needed for analytical PID tuning using IMC or Ziegler-Nichols rules.
The step response identification method: with the loop in manual, make a 10–20% step change in the output and record the process variable response. Dead time L is the time until the PV first begins to move. The time constant τ is the time for the PV to reach 63.2% of its final change after the delay. Process gain K = (final PV change) / (step output change). These three values fully characterize the FOPDT model for initial PID tuning.
Try our Smart Buildings Studio
More calculators, simulators, and guides for this discipline.