Skip to content

Zero field controller

Kathryn Baker edited this page Jan 25, 2019 · 62 revisions

Wiki > The Backend System > Specific Device IOC > Other > Zero field controller

This page describes our understanding of the requirements for the MUON zero-field controller.

Background

On a muon instrument, the purpose of the MUON zero-field controller is to maintain a constant (not necessarily zero) magnetic field in the region surrounding the sample. The field should be maintained as external magnetic fields change (i.e. another instrument switches on their magnet). This is achieved by measuring the magnetic field at a fixed sample point. The field should be stable at around the mG level and needs updating at a frequency of ~1Hz.

The magnetic field in the sample region is generated by electromagnets (except on HIFI where they are shims to superconducting magnets). The magnetic field is generated by 3 coils perpendicular to each other, so there are 3 different currents that need controlling. A magnetometer is used to measure the magnetic field (in mG) in the sample region; this is called the fixed sensor. The magnetometer provides 3 magnetic field readings; one for the z component (along the beam), one for the y component (vertical and perpendicular to the beam) and x (parallel to the floor). The fixed sensor is close to but not at the sample position.

The process of setting the zero field up is:

  1. Calibrate the system (to relate current to field, undertaken via the Test Zero Field.vi within SECI):
    • Check for a huge stray field
      • Ensure that the absolute maximum of the fields are < 4000 mG 2 seconds after setting a 0, if it isn't the magnet is not in range, and there is a huge stray field
      • Calculate the magnitude of the field at this point (square root of the sum of the squared fields)
    • For each magnet and for a range of currents
      • Measure the magnetic field at the fixed sample position
    • Plot field against the current
      • 21 steps of ((iteration number - 10)/10) * PSmax, with a 2-second wait before taking the field reading in all three dimensions
    • Perform linear regression to work out the calibration coefficients (1 per coil per axis).
      • If the result is linear these values should be autosaved because they are the same for every config
      • If not linear the user should be warned, warnings still to be defined from the VI
      • The calibration values should be under manager mode
    • Check that the noise ratios are acceptable at 0 in manual mode (3-second delay for settling)
      • 20 readings a second apart
      • Calculate the variance for each field
      • Calculate the manual RMS value (square root of the sum of the variance for each field)
      • The system is noisy if the RMS value > 5
    • Check that the noise ratios are acceptable at 0 in auto feedback mode (6-second delay for settling)
      • 20 readings a second apart
      • Calculate the variance for each field
      • Calculate the manual RMS value (square root of the sum of the variance for each field)
      • The system is noisy if the RMS value > 5
    • Plot the noise fields against time
    • This is performed once or twice a cycle currents of the power supplies. This IOC should do this also.
  2. Measure offsets (to compensate for the stray field gradients):
    • Place a portable probe at the sample position
    • Set the field to 0
    • Update the offsets so that the portable probe measures 0.
      • It is OK to auto save these values they are the same for every config
      • The offset values should be under manager mode
    • This is performed regularly

On different instruments there is slightly different equipment:

  • EMU, MuSR, Argus, Chronus
    • Magnetometer: flux gate (has lower maximum field than the hall probes) connected to a NI 9125 cDAQ
    • Magnets: Conventional magnets attached to Kepco power supplies
    • Manual probe: ? not sure but we are not converting this now
  • HiFi
    • Magnetometer: Group 3 hall probes connected to a DTM161
    • Magnets: Superconducting, shim values set from 0 field are used as offsets in these magnets
    • Manual probe: LS201 hall probe

The zero-field controller operates in one of two required modes (dead reckoning will not be required):

  • Manual
  • Auto-Feedback

Manual Mode

In Manual mode, the user must adjust the currents manually to achieve the desired magnetic field.

Auto-Feedback Mode

In Auto-Feedback mode, the user specifies the desired field (in mG) and a feedback loop continually adjusts the current supplied by the PSUs to achieve and maintain the desired magnetic field.

Existing MUON zero-field controller

All five muon instruments: ARGUS, CHRONUS, EMU, HIFI and MuSR use a zero-field controller, implemented as a collection of LabVIEW VIs.

There appear to be 3 variants of the MUON zero-field controller:

  1. EMU and MuSR both use one variant of the MUON zero-field controller. This variant can be found in the folder C:\LabVIEW Modules\Muon Magnets\Zero Field Controller.
  2. ARGUS and CHRONUS both use a second variant of the MUON zero-field controller. This variant can be found in the folder C:\LabVIEW Modules\Instruments\ARGUS\Zero Field Controller. This variant is similar to the one used by EMU and MuSR.
  3. HIFI has its own unique MUON zero-field controller. This variant is included in the Group 3 Hall probe VI at C:\LabVIEW Modules\Instruments\HIFI\Group3 Hall probe. The behaviour of this VI needs to be validated. Note that this includes extra co-efficients to allow for the shape of the gradients between the two sets of hall probes.

Zero-Field Controller Feedback Loop

The zero-field controller feedback loop uses the following inputs:

  • M – measured magnetic field (it has three components: longitudinal (L), transverse (T) & vertical (V))
    • in IBEX this should use X, Y, Z, with Z being along the beam
  • O – Offset (to compensate for sensor placement)
  • C – calibration matrix (the inverse the measurements were taken in calibrate)
  • S – setpoints requested
  • P – sensitivity of the coil to current change (is this also measured in calibrate?)
  • p – proportional value (feedback fiddle factor)
  • I – current on magnets
  • I' - new current to send Quantities in bold are vector quantities. Quantities in italic, bold are matrix quantities.

The new current to send is calculated as:
I' = (S - (M - O) . C) . P * p + I

The following quantities are:

  • Mc = (M - O) . C is the corrected field - turns measured field in the basis of the magnetometer into fields produced by the magnet in the basis of the magnets.
  • Mc - S is the difference between the current field and required field
  • (Mc - S) . P * p is the change required in the current for this iteration (in current version may need to multiply through by time between samples).

Notes:

  1. ARGUS appears to use different magnetic field components, labelled LR (left-right), UD (up-down) and FB (forwards-backwards). How do these differ from L, T and V?
    • A single set would be good X, Y, Z as described above.
  2. The offset value, O, appears to be a constant. Why is this?
    • It is an approximation
  3. Are there limits on the input & output values? If so, what are they? If these limits are breached, what should happen?
    • The maximum current and voltage values are set as part of the initialisation file, and values beyond those limits are not sent to the PSU
  4. Is the above expression guaranteed to converge? What if it doesn't? How does the current zero-field controller guard against non-convergence?
    • No, we expect to get oscillation but at the 1 mG level because of the fiddle factor.

In Operation

  • There is a requirement that Zero field system control needs to be continuous, in the mathematical function sense of not having steps in, when configurations change or control is interrupted.". How is this requirement currently achieved? (It may better to run the zero-field controller on a separate device (e.g. a Raspberry Pi). This approach would eliminate the risk of interruption should IBEX be halted or the control PC re-booted.) What is this requirement in practice?
    • Unanswered
  • Presumably, magnetic fields should not change too rapidly. Which implies that the currents should not change too rapidly. Is there maximum (or even minimum) permissible rate of change for the currents? Is there a maximum permissible change (i.e. step size), positive or negative, in the value of the current? How frequently should currents be updated?
    • Unanswered
  • The system should be monitored for the currents overloading and this should be fed back to the user

Testing

We will test on the instrument. This needs to be placed on the shutdown work list (Peter will sort this out when needed).

Clone this wiki locally