Why Your Damper Doesn't Behave Like You Told It To

A standard VAV damper has a nonlinear relationship between blade position and airflow. Move it 50% open and you don't get 50% of the air. That's just how they're built. The result is a controller that ramps up and down in a way that makes your zone temperature bounce around like crazy. Linearizing is the fix. It's basically a lookup table or a function that maps controller output into an airflow-equivalent signal before it ever reaches the damper actuator. The tutorial covers the practical steps for creating a point-by-point characterization of your damper and applying the inverse curve to your DDC controller. The core idea is straightforward: you run the damper through a series of positions, record the actual CFM at each one, and then build a table that translates from desired airflow back to the actuator travel percentage the damper needs. Most people skip the hard part and just assume the damper is perfectly linear, which is why their systems are terrible. I spent three days last fall commissioning a bank of twelve dampers on a retrofit project in Phoenix. The specs said equal-percentage characteristics. The manufacturer data sheet agreed. The actual airflow curve looked nothing like either. What we found was that the damper linkage had been adjusted wrong at the factory, creating a dead band from 0 to about 12% travel where almost nothing happened, and then a region from 78 to 92% where tiny movement caused massive airflow swings. A generic equal-percentage linearization table would have made that system worse, not better. Instead of relying on published curves, I pulled the damper to six manual calibration points, measured each with a thermoanemometer and a manometer across a flow element, and built a custom seven-point table. The system stabilized within two hours after that.

Here's how you actually do it without wasting your weekend.

The Characterization Process

You need a stable reference airflow measurement. Preferably an inlet or outlet duct static pressure tap paired with a known-flow element like an Orifice plate or a pitot traverse grid. Handheld anemometers work in a pinch but they introduce enough error at low velocities that your linearization table will be garbage at the bottom end. If you're doing this on a live system, make sure the AHU fan is at a fixed speed during testing. Variable frequency drives make everything noisy. Step one is establishing your fully closed position. Many actuators have a built-in end-switch that clicks somewhere between 2% and 5% travel due to mechanical slop. The damper isn't actually sealed until you feel resistance change on the actuator shaft. I mark this point and call it position zero. Some controllers let you set a hard stop. If yours doesn't, note the analog output value where closure feels solid and use that as your baseline offset. Step two is stepping through predetermined travel positions. I use increments of ten percent from 10% through 90%, plus the closed point and a final point at the mechanical full-open limit if it differs from 100%. At each position, wait for steady state. That means airflow reading hasn't changed more than 2% over thirty seconds. Record the analog input value that produced that position and the corresponding airflow. You now have your raw data set.

Step three is building the inverse curve. Take your airflow values and sort them ascending. For each target airflow, find the nearest actuator position that achieves it. If the relationship is monotonic, you can interpolate between points. If it isn't monotonic, you have a mechanical problem that no amount of software will fix. I've seen this happen when the damper blade binding or when the actuator torque is too high and the frame is flexing under load. Fix the hardware first. Linearization can't save you from a damper that sticks. Step four is entering the table into the controller. Most DDC platforms accept this as a multistage piecewise function or a direct lookup table. BACnet buildings usually configure this as a BACnet Analog Output with a Scaling Object or a custom linearization segment. The key detail people miss is setting the correct dead band. If your table has adjacent points that map to nearly identical airflow values, the controller will hunt between them. Add a small hysteresis buffer between points, usually about 1% of full scale, to prevent oscillation at the lower flow range.

Common Mistakes That Waste Time

The biggest mistake I see is linearizing based on actuator position instead of measured airflow. Position is easy to read. It's also a lie. Backlash in the linkage, changes in duct static pressure, and actuator spring drift all mean that 50% position does not equal 50% of rated flow. Always characterize against actual airflow, not theoretical position. Another mistake is using a single linearization for every damper in a bank. Dampers from the same manufacturer and model number still vary. I tested two dampers side by side on a recent job and the flow difference at 60% position was eight percent. Not eight percent of full scale. Eight percent of the reading. Over twelve dampers, that adds up to uneven zone conditioning that nobody can trace back to the hardware because everyone assumes the factory curve is accurate. Don't forget to account for upstream static pressure variations. Linearization assumes constant pressure differential across the damper. When the VAV box modulates, the duct static changes. That shifts the entire curve. The workaround I use is to scale the table by a static pressure divisor. Measure the design static, divide your actual static by that value, and multiply the resulting position command by that factor. It's not perfect but it keeps the error band tighter than ignoring the pressure change does. One contractor I worked with tried to skip this and ended up with a zone that could never reach its setpoint in summer because the damper was commanding full open and still moving half the air it should have been.

When Linearization Won't Help

If your damper curve has a true flat spot where changing position produces no measurable airflow change, a lookup table cannot create airflow that isn't there. This happens with undersized dampers, severely restricted ductwork, or actuators that lack sufficient torque. In those cases the right answer is resizing the damper or adding a booster fan, not writing a better table. Similarly, linearization assumes the damper responds repeatably. If the actuator has worn gears or the damper shaft is corroded, the position you command today won't be the position you get tomorrow. I once spent four hours building a sixty-point table only to discover the actuator was drifting two percent per hour due to a failing potentiometer. Replaced the actuator, rebuilt the table in twenty minutes, and the system performed as expected. Finally, if your control strategy relies on the linearized damper for reset logic or demand-based control, make sure the linearization doesn't conflict with the reset schedule. A properly linearized damper gives you a predictable relationship, but if your reset curve assumes a nonlinear response, you'll end up over-conditioning the space during part load. I found this on a project where the designer had linearized the dampers but left the supply air reset working off the unmodified position signal. The space temps dropped below setpoint within twenty minutes of startup. Switching the reset to read from the linearized airflow proxy solved it immediately.

Getting Started with Damper Air Flow Linearizing Tutorial Rev 1

The tutorial itself walks through the same steps above but adds controller-specific screenshots for common platforms like Siemens, Johnson Controls, and Honeywell. It includes a blank characterization spreadsheet template that auto-generates the piecewise function once you enter your measured data. The Rev 1 update added a section on handling non-monotonic curves and a troubleshooting flowchart for when your linearized damper still doesn't track the setpoint. I referenced it directly on the Phoenix job and it saved me from re-deriving the dead band calculation from scratch. If you're doing this for the first time, budget about forty-five minutes per damper for the characterization and table entry. Not including the time it takes to get the measurement instruments set up in the duct. Plan for two hours if the duct access is tight or if you need to install a new pressure tap. The payoff is a system that actually responds the way the designer intended instead of fighting you at every modulation step.