This article is about driving capacitive loads with voltage-feedback analog amplifiers.
voltage vs. current vs. time
To change the voltage across the load capacitor we have to move
charge into it, at a rate that follows I = C·dV/dt.
The current is set by how fast we want the voltage to change, as well as by how much. Double the amplitude and we need twice the current, double the frequency and we need twice the current again. An amplifier can only source and sink so much of it.
What happens when we ask for more is usually described as slew rate limiting:
the output can no longer keep up, the sine turns gradually into a triangle with
slopes of I_max/C, and the amplitude collapses. We also call it partial
saturation when it reaches I_max during a fraction of a signal period – a
triangle with round corners. We call it deep saturation, when it oscillates
between ±I_max – a triangle with sharp corners. That part is well known and
easy to see on a scope.
The part I find more interesting is what happens to the voltage feedback control loop while this is going on.
from steering to swerving
A feedback loop works by comparing the output to the target. It computes a difference and adjusts the amplifier’s output current to remove it. The loop’s grip on the output is proportional to the dynamic range of this current.
Once the amplifier is pinned at ±I_max the range is gone. The loop still
measures the error, still demands more current, but the output stage simply
cannot comply. For the duration of the saturation the loop is effectively
open — the output node is a capacitor connected to a current source that is
no longer listening to anybody.
Consequently, any deviations that would require a response beyond ±I_max are
now left unopposed:
- The mismatch between sourcing and sinking. No output stage pushes and pulls exactly equally hard. Normally that asymmetry is corrected by the loop. Under saturation it charges and discharges the capacitor by unequal amounts, and every cycle leaves a small residue behind.
- Stray currents. Leakage, input bias, rectified RF picked up somewhere in the signal path. These are the currents we are usually happy to ignore, because a healthy loop cancels them long before they do anything. On an unattended capacitor they integrate.
Neither of them accumulates fast, and that is the point: their energy sits at low frequency, which is precisely where a saturated loop has stopped rejecting anything. The symptom is that the DC level wanders off — a slow drift that has no business being there and that disappears the moment we back off amplitude or frequency.
an interesting failure mode
I find a few aspects about this failure mode quite interesting.
On the one hand, the parameters of your controller (e.g. PID) can be tuned to reduce or avoid saturation. This might make it appear as if the right tuning was the one that circumvents saturation for any input signal. Yet, that’s actually not the case, because the failure happens in the plant, not in the controller.
Moreover, the effect is nonlinear, and, consequently, it’s impossible to adjust a linear controller to work optimally in both, the saturation corner and in the small signal regime.
That means, your parameters might be perfectly tuned for most signals, and only off in a tiny high voltage/high frequency corner that your amplifier cannot access anyhow. Optimizing your controller for this corner would ruin the amplifier’s performance for all other signals – exactly those that it could handle with perfection.
playing with it
Together with Claude, I vibe-coded a a small simulation of exactly that situation: one capacitor, one current-limited amplifier, one feedback loop. The sliders set how much we ask of it.
- amplitude and frequency together set the current we are asking for
- I_max sets the current we can have
- imbalance is how unequally the stage sources and sinks
- stray current is the quiet leakage that is normally invisible
Start with easy signal and watch the output sit exactly on the target. Then hit current-limited + drift and give it a few seconds.
The three presets walk through the regimes, but the interesting part is the transition: pull the current limit down slowly and watch the moment the well in the lower right flattens out. Nothing dramatic happens to the waveform at that point. The DC level just quietly stops being held.
The model is deliberately simple — a proportional loop, a hard current clip and a slow random disturbance — so do not read absolute numbers into it. But the two effects it shows are real, and both follow from the same sentence: a feedback loop can only correct what it still has the current to correct.