(? bits signed)
. "B" itself is a 4(?) bit (unsigned) quantity, referred to as the SAE scale parameter. (Note since AE is signed, then if it is represented in twos complement form, then the sign bit must propagate for these right shifts.) The optimal value for "B" depends on the value of NSAMP and the signal noise level (See MarkIIIDFBConfiguration?).
(SAE Counts per DAC Count). This means that the input signal (in DAC counts) is
up to an arbitrary zero point, and sign for the signal. (Whether increasing DAC corresponds to more or less current in the input coil depends on how the polarity of the input circuit verses the feedback circuit.) If
is positive, then you will lock up where the SQUID response crosses the target ADC on an ascending curve; if negative then on a descending portion. In either case, in the absence of any further change in signal, you minimize the SAE at the next frame by adjusting the DAC to
.
If you use a value for the loop gain,
, that is less than the optimal value set by one over the SQUID response slope, then you slow the minimization of the SAE (to a time constant of order the ratio of the optimal value to the used value). If the value slightly exceeds the optimal value, you will have damped oscillation about zero for the SAE. If you use a value twice the optimal, then you will not converge, and drive the DAC to one extreme or the other.
In the presence of a variable input signal, a purely proportional control loop will not be able to minimize the SAE, particularly if there is a long term (linear) drift. When the signal is showing a linear variation, the rate of change from one frame to the next can be estimated using the two most recent measurements:
. If we assume that the flux at the following frame
is a change a factor
times that estimated rate, then the optimal feedback for that frame is simply:
If
is set to zero, this turns off the differential, or predictor-corrector term, and reduces to the pure proportional control loop. Increasing
to one increases the predictor-corrector term to provide optimal control for linear change in the signal. Note that this algorithm assumes that the value for
used in the terms multiplied by f is actually set to the optimal value. For maximum flexability there should be a second
term just used for the predictor corrector components. However, in performance this distinction can be ignored. (In fact a simplified form where
and only the DAC values are used provides some of the benefits of the predictor corrector at the cost of additional, but removeable, noise being shifted to the DAC, see the discussion in MarkIIINoise?.)
in terms of DAC / SAE counts.
For a given SQUID implementation in the MUX chips, increasing NSAMP will proportionally decrease
from what it would be for a single sample measurement. Very large NSAMPs (low row select rates) could result in very low magnitudes of $%\alpha$% and require large positive values of C.
The proportional loop prediction is multiplied by f (unsigned 6 bits?), and then shifted right by 5 bits (allowing a maximum value for f to be 1 31/32, and the granularity of f to be 1/32nd. This quantity is the current predictor corrector term. The previous frame's predictor corrector term is retrieved from the dfb history register for the current row select, and replaced with the current predictor corrector.
The frame selection's next DAC value (14 bits unsigned) is the sum of proportional loop prediction plus current predictor corrector minus the previous frame predictor.
As a result of certain commands, changes to the target, f, or an update to the lock point by commanding the default DAC value to be used, you can not accurately use the predictor corrector term. As a result of this after such commands a flag is set so that the predictor corrector terms are not applied, so that only the proportional loop prediction is used. (Is this a quanity that is maintained separately for each row selection, or is this behavior applied to all the row selections in a frame? It's OK if it is, we just need to have the documentation show the answer.)
-- RickShafer - 16 Dec 2005
| Topic MarkIIIDFBAlgorithm . { Edit | Attach | Ref-By | Printable | Diffs | r1.3 | > | r1.2 | > | r1.1 | More } |
|
Revision r1.3 - 17 Dec 2005 - 17:48 GMT - RickShafer Parents: WebHome > MarkIIITopLevel > MarkIIISystem > MarkIIICrate > MarkIIIDFBCard |
Content copyright © 1999-2007 by the contributing authors. All material on this collaboration platform is the property of the contributing authors. |