Split-Range Control: Handing Off Between Two Valves Without a Bump at the Split Point
One PID driving a heating and a cooling valve stalls or hunts right at the changeover. Setting the split point, killing overlap, and the gain jump.
A reactor jacket had a steam valve for heat and a chilled-water valve for cooling, both driven off a single temperature controller. On paper it was textbook split range: controller output 0–50% opens the cooling valve, 50–100% opens the steam valve. In practice the temperature sat about a degree below setpoint and never quite got there, and the utility bill was ugly. When we put a scope on both valve positioners, the answer was obvious — around the 50% mark the chilled water valve was still 8% open while the steam valve had already cracked. The loop was heating and cooling at the same time, and the controller was happily holding output at the one place where that overlap was worst.
That's the whole story of split-range control. The concept is trivial: take one controller output and fan it out to two (or more) final control elements, each responsible for a sub-range of the output span. The trouble all lives at the seam.
What the split actually is
You have controller output (CO) running 0–100%. You slice that span and assign each slice to a valve, with a signal characterizer per valve that re-scales the slice back to a full 0–100% stroke for that element. The classic heat/cool arrangement:
- CO 0–50% → cooling valve strokes 100% → 0% (fully open at CO=0, closed at CO=50)
- CO 50–100% → heating valve strokes 0% → 100% (closed at CO=50, fully open at CO=100)
So at CO=50 both valves are (nominally) shut and the process is coasting. Below 50 you're cooling, above 50 you're heating. The controller doesn't know or care that two valves exist — it sees one output and one PV. All the split-range logic is downstream of the PID block, usually a pair of scaling/characterizer blocks (a SPLTR or CHARC block in a DCS, or just two scale-and-clamp rungs in a PLC).
pH control is the same pattern with acid on one half and caustic on the other. Pressure control does it with a supply valve and a vent valve. Anywhere you need to push a process variable in both directions and no single element can do both, split range is the cheap answer.
The split point is not 50%
The default is to put the changeover at 50%, and that's usually wrong. The split point should land where the process actually sits at steady state most of the time. If your reactor spends its life needing a little cooling because the reaction is exothermic, put the split at 60 or 70% so that the normal operating output lives comfortably inside the cooling valve's range with room to modulate, instead of parked right at the seam where a small disturbance flips you between two valves with different dynamics.
Sitting on the split point is the failure I see most. When CO oscillates a few percent around the changeover, every cycle you hand control from one valve to the other. The two valves have different gains, different stroking speeds, different installed characteristics — so the loop's behavior changes every time it crosses over, and a tune that was fine on one side chatters on the other.
Overlap and gap: pick your poison, then tune it out
Real valves don't seat at exactly the same signal. Two things go wrong at the seam:
- Overlap — both valves are partly open near the split. You heat and cool simultaneously, burn utilities, and give the controller a soft, low-gain region it likes to hide in (my reactor above). Wasteful, and it makes the loop sluggish right where you cross zero.
- Gap (deadband) — neither valve does anything for a band of output around the split. The loop goes open-loop across that band; PV drifts until CO clears the gap, then a valve slams and you overshoot. Cyclical hunting.
You choose between these by where you set the two characterizer breakpoints. My default is a small deliberate gap, not overlap, because simultaneous heating and cooling is almost always the more expensive mistake — and a modest gap costs you a bit of response speed you can win back with tuning. But a gap is genuinely bad on fast, tight loops (compressor surge, some pressure jobs) where any open-loop band is a liability; there overlap, or better yet valve-position control, wins. This is a physical knob you tune at the plant with real valves — bench numbers won't tell you where the metal actually seats. Trend both positioner feedbacks (not just the commanded signal) across a slow ramp of CO and read the real changeover.
The gain jump is the part people forget
Even with a perfect split, the process gain on the heating side is rarely the same as on the cooling side. A steam valve into a jacket and a chilled-water valve into the same jacket can differ in process gain by a factor of several. One PID tuning set cannot be right for both halves — tune it snappy for cooling and it'll be unstable on heat, or vice versa.
Options, in the order I reach for them:
- Characterize the valves so each one delivers roughly linear installed gain over its slice. Half the gain mismatch is really valve characteristic (an equal-percentage steam valve behaving nothing like a linear water valve), and fixing it in the characterizer is free.
- Gain scheduling on the PID — one set of tuning constants below the split, another above. Most modern controllers support this directly; it's the honest fix when the two processes genuinely differ.
- Split the loops entirely — separate heating and cooling controllers with an offset between their setpoints, coordinated so they don't fight. More config, but when the two sides have wildly different dynamics it's cleaner than torturing one loop.
Don't try to average the two into one mediocre tune. You'll get a loop that's lazy on one side and twitchy on the other, and the operators will end up running it in manual.
Commissioning checklist
A few things worth confirming before you hand the loop over:
- Failure directions. On loss of signal, which way does each valve go? Steam should usually fail closed, cooling might fail open or closed depending on what protects the process. The positioner fail action and the characterizer's 0% end have to agree, or a comms drop parks you somewhere dangerous.
- Direction of action. Get the controller action (direct/reverse) right for the process, then confirm each characterizer sends its valve the correct way. It is easy to wire a split so that raising output opens the cooling valve — reversed, the loop runs away.
- Bumpless at the seam. Ramp CO manually through the split point and watch both feedbacks. The handoff should be smooth, no jump in total heat/cool duty as one valve takes over from the other.
- Clamp and don't let a slice overrun. Each characterizer output must clamp hard at 0 and 100. A math error that lets the cooling calc go slightly negative can wrap or peg a valve depending on how the analog output block handles out-of-range.
- Anti-windup still applies. When one valve saturates fully open and PV still won't move, the PID integrator winds up just like any saturated loop — and here it winds you deep into the wrong half before it recovers. Make sure external reset or back-calculation is fed from the actual valve limit, not the controller's own 0–100%.
If you only remember one thing: put a scope on both positioner feedbacks around the split point during commissioning and trend them for a while in normal operation. Almost every split-range complaint — sluggish, hunting, expensive — shows up as the wrong picture at the seam, and you can't see it from the controller faceplate alone.