Phase margin design#

Phase margin and gain margin are parameters of the loop gain that are often used as a measure for the stability of negative feedback amplifiers (see section Nyquist criterion). In this book, the design of the dynamic response of a negative feedback amplifier has been based on manipulation of the solutions of the characteristic equation of the source-load transfer of an amplifier. This is the only mathematically proper approach. The solutions of the characteristic equation are all the poles, including those associated with non-observable or not-controllable states. Despite its popularity, the design of the frequency response of a source-load transfer driven by the gain margin and phase margin of the loop gain is not advocated. In general, there does not exist a unique correspondence between the dynamic properties of the source-load transfer and the gain and phase margin of the loop gain. However, for the sake of completeness, we will demonstrate the method.

Lag and lead compensators#

The phase margin compensation method makes use of lag compensators and of lead compensators. Both types of compensator add a pole and a zero to the loop gain. In a lag compensator, the frequency of the pole is below that of the zero. The dominant pole causes phase lag and the zero reduces this phase lag. A lead compensator has the frequency of the pole above that of the zero. The dominant zero introduces phase lead and the pole reduces it. Fig. 425 shows an example of a lag compensation network, and Fig. 426 shows an example of a lead compensation network. Phantom zero implementations use lead networks, while pole-zero canceling is realized with lag networks.

The compensation strategy is to provide enough phase margin to ensure stability of the circuit. In the following example, we will demonstrate the design of a lag compensator for the transimpedance amplifier, thereby using the phase margin design approach.

Example

In example example-transimpedancePZcancel, we discussed pole-zero canceling, and our objective was to achieve an MFM characteristic. In Fig. 423, the feedback resistance \(R_{f}\) and the pole-zero canceling network that consists of the series connection of \(R_{z}\) and \(C_{z}\) can be regarded as a lag compensator (see Fig. 425). After compensation with \(R_{z}\) and \(C_{z},\) we found a rather large degradation of the signal-to-noise ratio, an increased overdrive recovery and possibly an increased nonlinearity.

If we look at this compensation problem from the perspective of improvement of the phase margin, not caring much about the MFM requirement, we may obtain different values for \(C_{z}\) and \(R_{z}\) and the degradation of other performance aspects may be less. The resistance \(R_{z}\) cannot be changed much. This is because at high frequencies where \(C_{z}\) acts as a short with respect to \(R_{z}\), this resistance, together with the total capacitance at the input of the operational amplifier, determines the frequency of the pole with the highest frequency. In order to approximate an MFM response, the frequency of this pole should be at about \(\sqrt{2}\) times the bandwidth of the amplifier. However, if we do no longer aim accurate pole-zero canceling, the capacitance \(C_{z}\) can be taken much smaller. The frequency of the new pole will then be above that of the pole of the operational amplifier, while the frequency of the zero no longer coincides with the pole of the operational amplifier. Its frequency will be above that of the new pole. The loop gain will then have three poles and one zero:

\[\begin{split}p_{1} & =-16~\text{Hz,}\\ p_{2} & \approx-\frac{1}{2\pi R_{f}\left( C_{s}+C_{z}+C_{d}+\frac{1}{2}C_{c}\right) }~\text{Hz,}\\ p_{3} & \approx-\frac{1}{2\pi R_{z}\left( C_{s}+C_{d}+\frac{1}{2} C_{c}\right) }~\text{Hz,}\\ z_{1} & =-\frac{1}{2\pi R_{fz}C_{z}}~\text{Hz.}\end{split}\]

Below the script for determination of the DC value, the poles, and the zeros of the gain and the loop gain with \(C_{z}=200\)pF, as well as the phase margin of the loop gain.

 1print('=== Modified compensation C_z = 200p. ===\n')
 2i1.defPar('C_z', '200p')
 3
 4# Show the poles, zeros and DC value of the gain
 5listPZ(i1.execute())
 6
 7i1.setGainType('loopgain')
 8# Show the poles, zeros and DC value of the gain
 9listPZ(i1.execute())
10# Show the phase margin of the loop gain
11i1.setDataType('laplace')
12L = i1.execute()
13loopGain = L.laplace
14pmResults = phaseMargin(loopGain)
15
16uF = pmResults[1]
17pM = pmResults[0]
18
19print('Loop gain: phase margin = {:3.2f}deg at f = {:8.2e}Hz\n'.format(pM, uF))

The output is:

 1=== Modified compensation C_z = 200p. ===
 2
 3DC value of gain: -1.00e+5
 4
 5Poles of gain:
 6
 7 n  Real part [Hz]  Imag part [Hz]  Frequency [Hz]     Q [-] 
 8--  --------------  --------------  --------------  --------
 9 0        -1.64e+5        0.00e+00         1.64e+5
10 1        -8.52e+5        -7.14e+5         1.11e+6   6.52e-1
11 2        -8.52e+5         7.14e+5         1.11e+6   6.52e-1
12
13Zeros of gain:
14
15 n  Real part [Hz]  Imag part [Hz]  Frequency [Hz]     Q [-] 
16--  --------------  --------------  --------------  --------
17 0        -1.35e+5        0.00e+00         1.35e+5
18 1        2.91e+10        0.00e+00        2.91e+10
19
20DC value of loopgain: -9.73e+5
21
22Poles of loopgain:
23
24 n  Real part [Hz]  Imag part [Hz]  Frequency [Hz]     Q [-] 
25--  --------------  --------------  --------------  --------
26 0        -1.60e+1        0.00e+00         1.60e+1
27 1        -6.99e+3        0.00e+00         6.99e+3
28 2        -1.86e+6        0.00e+00         1.86e+6
29
30Zeros of loopgain:
31
32 n  Real part [Hz]  Imag part [Hz]  Frequency [Hz]     Q [-] 
33--  --------------  --------------  --------------  --------
34 0        -1.35e+5        0.00e+00         1.35e+5
35
36Loop gain: phase margin = 58.25deg at f = 7.59e+05Hz

The gain has three poles and two zeros. The positive zero is a result of the direct transfer. The zero at \(-135\)kHz is the zero of the loop gain. At the frequency of this zero, the magnitude of the loop gain exceeds unity. Hence, in the root locus, one of the poles of the loop gain will move towards this zero. Because the loop gain is finite this pole does not reach the zero, and a pole-zero pair remains in the gain. This is illustrated in the root locus plots from Fig. 428 and Fig. 430. At the available loop gain, the pole that moves towards the zero reaches \(-100.69\)kHz. This can be seen in the listing of the poles and the zeros of the gain with \(C_{z}=200\)pF.

The phase margin after compensation is \ \(49\) degrees, which almost equals the phase margin of the circuit with pole-zero canceling (\(52\) degrees). Fig. 427 shows the phase margin as a function of the compensation capacitance \(C_{z}.\) It shows that increasing \(C_{z}\) above \(200\)pF does not result in a significant improvement of the phase margin. The script below shows how to display the phase margin and the poles and zeros of the loop gain and how to plot this phase margin against \(C_{z}\).

 1# Plot the phase margin versus C_z
 2i1.setStepVar('C_z')
 3i1.setStepStart(0)
 4i1.setStepStop('200p')
 5i1.setStepNum(100)
 6i1.setStepMethod('lin')
 7i1.stepOn()
 8
 9result = i1.execute()
10
11PM = [i1.stepList, phaseMargin(result.laplace)[0]] # x, y trace data
12htmlPage('Phase margin')
13plotData = {'PhaseMargin vs C_z': PM}
14figPM = plot('PM', 'Phase margin versus $C_z$', 'lin', plotData, xName = '$' + sp.latex(i1.stepVar) + '$', xScale = 'p', xUnits = 'F', yName = 'Phase margin', yUnits = 'deg', show = True)
15fig2html(figPM, 800)
../_images/phaseMarginLag.svg

Fig. 427 Phase margin as a function of the compensation capacitance \(C_z\).#

../_images/Step_response_PZ_canceling.svg

Fig. 429 Step response of the transimpedance amplifier with lag compensation as a function of the compensation capacitance \(C_z\). Please note that this figure shows the unit step response which has a step size of 1A. The output voltage of this linear circuit with a tranfer of about \(10^5\) will thus be \(10^5\)V!#

The effect of such a pole-zero pair in the transfer of the amplifier can clearly be observed in the step response of the amplifier and in the magnitude and phase characteristics of its transfer. The unit step response shown in Fig. 429 shows sequential settling to two different levels. First, the output voltage appears to settle at about \(-103\)kV, and after some time final settling to \(-100\)kV takes place.

If the first settling is much faster than the second, the ratio between these two levels approximates the ratio of the frequency of the pole and that of the zero. The settling time to the first level is determined by the poles with the highest frequency. The settling time to the final value is determined by the pole at \(-164\)kHz. Generally, it may be concluded that a pole-zero pair in the transmission band of the amplifier causes droop or tilt in its step response.

A similar effect can be observed in the magnitude characteristic. The magnitude characteristic in Fig. 431 shows the effect of the pole-zero pair. Since the frequency of the zero is below that of the pole, the gain increases in the region between the frequency of the zero and that of the pole. Again, the relative increase equals the ratio of the frequency of the pole and the frequency of the zero. Aside from this effect, the curve deviates from an MFM response due to insufficient compensation. If, after optimization, the zero is not canceled by a pole, the response will deviate from an MFM response.

../_images/Bode_plots_PZ_canceling.svg

Fig. 431 Magnitude characteristic and phase of the transfer of the transimpedance amplifier with lag compensation as a function of the compensation capacitance \(C_z\).#

../_images/colorCode.svg

Interaction with other performance aspects#

Although the phase margin design approach with lag or lead networks may result in stable behavior, the most powerful method for frequency compensation is the application of phantom zeros.