---+ Drive Channel Circuit Stability and Recommendations
The drive channel circuit looks like this:
|
Drive Channel Circuit, Rev2 component values |
In revision 2 of these boards, we updated R5 and R10 of the drive channel circuit in order to speed up the feedback loop.
This change had an unintended effect: for large gains (when the resistor connected to J1 is small), the amplifier U4 becomes slew-rate limited and the circuit becomes a
quadrature oscillator. U4's output is confined to linear-slope sections (when it's slew-limited) or flat sections (when it's railed.) This results in a clumsy approximation to a 90' phase shift of the integrator output, or an 180' phase shift in the overall feedback loop.
Here's what happens. The squared trace is U4's output. The sinusoid is the integrator U3's output. (It's interesting how integrating linear segments can give such a good approximation to a sinusoid.)
|
A Quadrature Oscillator |
The fix is to ensure that U4 never becomes slew-rate limited. To do so, neglect feedback for a moment and consider the largest input the integrator U3 will encounter. That's (3.3v + 4.5v) ~= 8V. Call this voltage Vd.
At the integrator's output, that becomes a slope of
.
That is converted to a load current dependent on the sensor resistance. In the worst case, the sensor resistance is a short-circuit and the voltage across the sense resistor is
.
So, the worst-case output slew at U4 is:
%MATHMODE{ S = G \times V_d / (2\times(R_5 \times C_{10})) }%
According to the LT1168 datasheet and experimental measurements at gains of ~100 and ~1000, the part's maximum slew is 0.5 V/us. This permits us to set the conditions on G:
%MATHMODE{ G < (R_5 \times C_{10}) \times 10^6 / V_d }%
For the rev0 component values, that's something like
%MATHMODE{ G < 85}%
For the rev2 component values, we have
%MATHMODE{ G < 0.85}%
Note that's an
extremely conservative estimate. It's correct to within an order of magnitude with experimental measurements of the point at which the circuit begins to oscillate.
The limiting G is particularly dependent on the Vd we choose (and there's a case to be made for Vd=3.3v or even lower.) It's important to keep a conservative bound on G, however, since we clearly can't work with a board that might oscillate.
Recommendations
The easiest way to resurrect the situation is to increase RC. However, that reduces the system's loop gain and its output no longer tracks its input beyond a certain point.
We can approximate the circuit's transfer function as follows:
%MATHMODE{ I_o/V_i \approx 10^{-5} \left[ \frac{1}{G+2sRC} \right] }%
where
is the output current and
is the DAC voltage. We have ignored the sensor, under the assumption its resistance is small compared to R6+R7. (
CROSS CHECK THIS) In magnitude terms,
%MATHMODE{ \left| I_o/V_i \right| \approx 10^{-5} \left[ \frac{1}{\sqrt{G^2+(4 \pi f RC)^2)}} \right] }%
Roughly speaking, this gives us two regimes. When
, the expected behaviour dominates and the drive current is roughly independent of frequency. When
, the integrator's suppression of the signal amplitude can no longer be ignored.
The following table shows the extra gain suppression due to the frequency-dependent term, as well as the maximum safe gain for that parameter set.
R (k) |
C (nF) |
G |
Freq |
Requested |
Actual |
Suppression |
Max Gain |
Rev0 Boards (R=100k, C=6.8nF) |
100.00 |
6.80 |
1 |
1 |
0.00001 |
0.00001 |
1.00 |
150 |
100.00 |
6.80 |
1 |
10 |
0.00001 |
0.00001 |
1.00 |
150 |
100.00 |
6.80 |
1 |
100 |
0.00001 |
0.0000076 |
0.76 |
150 |
100.00 |
6.80 |
10 |
1 |
0.000001 |
0.000001 |
1.00 |
150 |
100.00 |
6.80 |
10 |
10 |
0.000001 |
0.000001 |
1.00 |
150 |
100.00 |
6.80 |
10 |
100 |
0.000001 |
0.000001 |
1.00 |
150 |
100.00 |
6.80 |
100 |
1 |
0.0000001 |
0.0000001 |
1.00 |
150 |
100.00 |
6.80 |
100 |
10 |
0.0000001 |
0.0000001 |
1.00 |
150 |
100.00 |
6.80 |
100 |
100 |
0.0000001 |
0.0000001 |
1.00 |
150 |
Rev2 Boards (R=1k, C=6.8nF) |
1.00 |
6.80 |
1 |
1 |
0.00001 |
0.00001 |
1.00 |
1.5 |
1.00 |
6.80 |
1 |
10 |
0.00001 |
0.00001 |
1.00 |
1.5 |
1.00 |
6.80 |
1 |
100 |
0.00001 |
0.00001 |
1.00 |
1.5 |
1.00 |
6.80 |
10 |
1 |
0.000001 |
0.000001 |
1.00 |
1.5 |
1.00 |
6.80 |
10 |
10 |
0.000001 |
0.000001 |
1.00 |
1.5 |
1.00 |
6.80 |
10 |
100 |
0.000001 |
0.000001 |
1.00 |
1.5 |
1.00 |
6.80 |
100 |
1 |
0.0000001 |
0.0000001 |
1.00 |
1.5 |
1.00 |
6.80 |
100 |
10 |
0.0000001 |
0.0000001 |
1.00 |
1.5 |
1.00 |
6.80 |
100 |
100 |
0.0000001 |
0.0000001 |
1.00 |
1.5 |
Proposed Changes (R=10k, C=100nF) |
1.00 |
1000.00 |
1 |
1 |
0.00001 |
0.00001 |
1.00 |
220 |
1.00 |
1000.00 |
1 |
10 |
0.00001 |
0.00001 |
0.99 |
220 |
1.00 |
1000.00 |
1 |
100 |
0.00001 |
0.000006 |
0.62 |
220 |
1.00 |
1000.00 |
10 |
1 |
0.000001 |
0.000001 |
1.00 |
220 |
1.00 |
1000.00 |
10 |
10 |
0.000001 |
0.000001 |
1.00 |
220 |
1.00 |
1000.00 |
10 |
100 |
0.000001 |
0.000001 |
0.99 |
220 |
1.00 |
1000.00 |
100 |
1 |
0.0000001 |
0.0000001 |
1.00 |
220 |
1.00 |
1000.00 |
100 |
10 |
0.0000001 |
0.0000001 |
1.00 |
220 |
1.00 |
1000.00 |
100 |
100 |
0.0000001 |
0.0000001 |
1.00 |
220 |
With the proposed component selection (R=10k, C=100nF), there is noticeable suppression at f=100 Hz with a gain of 1. However, this doesn't impact resistance measurements (since both the current and voltage are equally suppressed), and it doesn't impact diodes where the current bias is crucial (since we can't modulate them using a sine wave anyway.)
We settled on 50kohm resistances and unmodified capacitances for the rev2 boards.
This topic: CryoElectronics
> WebHome > DriveChannelCircuitStability
Topic revision: r5 - 2011-08-16 - GraemeSmecher