I'm trying to understand the in-loop compensation for a simple amplifier loaded with a capacitive load, as seen in this article from Analog:


I understand how the compensation works and all the stability matter. Though, I can't understand the simplification used in the article to find poles and zeros of the feedback network's transfer function. Why are they first shorting \$C_f\$ and considering \$C_L\$ alone and then opening \$C_L\$ and considering \$C_f\$ alone?

I am familiar with OCTC and SCTC (time-constants method) and all the low-frequency and high-frequency approximation by shorting and opening capacitors, but here it doesn't make any sense, because \$C_f\$ is smaller than \$C_L\$ in real-world designs: so we should consider \$C_L\$ as a short-circuit in an hypotetical high frequency analysis and \$C_f\$ as an open-circuit in a low frequency analysis.

Though, this would give wrong results because two of the zeros should be at about the same frequency to get a good compensation, so we can't split the analysis in low and high frequency.

Anyone with a good hint on how they did this kind of analysis?

Here is the relevant section of the document:

Relevant section

  • \$\begingroup\$ Make a screen capture of the relevant section then paste it into your question. \$\endgroup\$
    – Andy aka
    Commented Sep 13, 2016 at 11:32
  • \$\begingroup\$ Done, bad resolution but it's readable. \$\endgroup\$
    – C.Slade
    Commented Sep 13, 2016 at 11:48

2 Answers 2


I believe the authors used fast analytical circuits techniques or FACTs but I am not sure about their results. The principle is based on the generalized Extra-Element Theorem or EET from Dr. Middlebrook. If I try to determine the transfer function of the below passive circuit in which I put arbitrary components values:

enter image description here

I can write the transfer function linking B to A under the form \$H(s)=H_0\frac{N(s)}{D(s)}\$ in which \$H_0\$ is the gain determined for \$s=0\$ when all caps are open. The first thing is to open the caps and determine the transfer function in this mode. Then, reduce the excitation to 0 V (replace it by a short circuit) and "look" at the resistance from the capacitor terminals in this mode. This resistance multiplied by the capacitor forms the time constant, \$\tau=RC\$. Summing these time constants gives \$b_1\$ in \$D(s)\$. \$b_2\$ is obtained by summing a product of time constants re-using one of the time constants in \$b_1\$. If I chose to re-use \$\tau_L\$ meaning the time constant associated with \$C_L\$, then I will put this capacitor in its hi-frequency state (a short circuit) and "look" at the resistance offered by \$C_f\$ terminals in this configuration. All these operations are shown in the below sketch:

enter image description here

From there, you can assemble a second-order polynomial form:

\$D(s)=1+s(\tau_1+\tau_2)+s^2\tau_1\tau_{12}=1+\frac{s}{\omega_0Q}+(\frac{s}{\omega_0})^2\$ calculate the quality factor \$Q\$ and factor \$D\$ as two cascaded poles if \$Q<<1\$: \$D(s)=(1+\frac{s}{\omega_{p1}})(1+\frac{s}{\omega_{p2}})\$ in which \$\omega_{p1}=Q\omega_0\$ and \$\omega_{p2}=\frac{\omega_0}{Q}\$.

For the zeros, you can either use a null double injection (NDI) or a generalized 2nd-order form as described in my book on FACTs. It is a bit longer than the NDI but sometimes simpler to implement. The corresponding schematic for this exercise is here:

enter image description here

If you develop the numerator, you obtain a double zero:

\$N(s)=1+\frac{s}{\omega_{0N}Q_N}+(\frac{s}{\omega_{0N}})^2\$ and cannot really split it as two cascaded zeros as the two are coincident (\$Q\$ is almost 1)

The final transfer function is given in the below Mathcad shots with the frequency response. You can see that this circuit builds phase boost between the poles and zeros and will certainly improve phase margin at crossover when used in a compensator.

enter image description here enter image description here enter image description here

The FACTs are truly valuable in this case because you can determine the transfer function by inspection, without writing a line of algebra. And if you make a typo, you can correct the individual sketch that is causing problems. You have a tutorial taught at APEC in 2016 that you can use for a smooth introduction to the technique.

  • \$\begingroup\$ It's been a while since my last visit here on stackexchange: finding this is a really nice way to return here. Thank you! \$\endgroup\$
    – C.Slade
    Commented Jan 9, 2019 at 17:38
  • \$\begingroup\$ My pleasure if I was able to shed a different light with the FACTs on how to solve this transfer function. \$\endgroup\$ Commented Jan 9, 2019 at 20:15
  • \$\begingroup\$ This may be the greatest response in the history of StackExchange. Awesome. \$\endgroup\$ Commented Aug 4, 2021 at 5:20
  • \$\begingroup\$ Thank you for the flowers, this is kind of you! : ) \$\endgroup\$ Commented Aug 4, 2021 at 18:05

The authors of Analog's article Practical Techniques to Avoid Instability Due to Capacitive Loading correctly compute TF poles and zeroes of the inloop compensation circuit feedback, applying OCTC. What they do in error is that they use a pole zero cancellation method for computing the feedback capacitor value required to flatten the transfer function best.

The OCTC method used in the Practical Techniques.. article is an approximate analysis techniques used in electronic circuit design to determine the corner frequency of complex circuits (citing the Wikipedia article on OCTC). As for the criterion of the approximation validity, the Wikipedia article states that a fairly large ratio of \$τ_1/τ_2\$ is needed for accuracy.

From the Wiki article formulas one can see that the time constants \$τ_1, τ_2\$ are the inverse (and negated) values of the transfer function poles, $$ s_{1,2} = -1/τ_{1,2} $$ The article uses an imaginary variable \$j\omega\$, I use a Laplace domain variable \$s\$, which is more convenient for an analysis of capacitive circuits with their pure real poles/zeros.

For the circuit of the Practical Techniques.. article, the time constant ratio value is about two, so OCTC gives only coarse estimation. The pole and zero cancellation method, when used for calculation of the component values, solves some kind of an inverse problem which is not well conditioned as it is very sensitive to the precision of pole and zero values. For illustration of potential complications, notice the uncertainty of TF zero positions located at gradual TF curve slopes.


Here, TF is computed for the inloop frequency compensation circuit with component values Rout = 50, Rx = 25, Rf = 20K, Rin = 10K, CL = 100n and Cf = 570p. Pole/zero pair values are -262839/-271047 and -133494/-129452. When Cf value tends to 561.096382331p, the pole values tend to -267000 and -133500, and the transfer function tend to become constant. Try and compare this exact pole/zero values with those computed by the formulas of the Practical Techniques.. article.

You can find an exact solution for the inloop frequency compensation feedback circuit in my answer to the electronics.SE question Understanding on frequency compensation on driving capacitive loads with an op-amp.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.