FMCG/Field nulling and Optimization
Room Field Nulling
SERF regime demands very small residual magnetic fields, so any large fields remaining inside of the room must be "shimmed" or "nulled". One detector will be nulled using the "global" room coils, and the other one(s) with the "local" shell coils. Nulling one channel with the room coils will bring the fields at the other channels near zero, and the remaining fields at each sensor can be shimmed using their local coils.
The following will assume the room coils are connected to the single-channel "Wyllie Supplies" and each individual set of shell coils is connected to the appropriate port on the back of the main control box.
The process of nulling the fields is somewhat difficult to explain in words, but gets easier with practice. The procedure below is not to be followed word-for-word, but can hopefully be useful as a guide.
- Since we'll be using the Wyllie supplies with the room coils to null the first sensor (Channel 1 recommended, but not necessary), make sure there's a wide output current range on these supplies. Make sure the DC voltage ranges (1) on all three supplies are set to "full" and the output resistors (2) are set to 1 kΩ. This amount of current is generally enough to generate the nulling fields for the room.
- Connect the the two channels of the BK precision function generator to the X and Z AC inputs of the Wyllie supply. To start, set them to each output 20 Hz, .1Vpp sine waves. The amplitudes can be adjusted later to suit a the specific situation. The buttons above the BNC ports enable the outputs.
- Reduce the gain on the I-V converter until the output no longer rails. At this point, I've found it easier to go to a "scan" mode on the oscilloscope (time divisions of either 100 or 250 ms). This will allow you to easily see the characteristic dispersive lineshape for the magnetometer. Also, it may be helpful to disable the traces of the other channels to make it easier to focus.
- Try sweeping the y field and search for the dispersive lineshape.
- If the lineshape is observed, park right in the middle of it.
- If after scanning the entire range of the potentiometer, the lineshape is not observed, try to park the y at the "steepest" point (maximum of dV/dB).
- Enable the output on the BK function generator to apply a field to the Z coils. If it's not possible to see the magnetometer's response to this transverse signal, increase its amplitude on the function generator. Adjust the DC value of the X supply and try to reduce the response to the X signal.
- When the response to Z has been minimized, or if you seem to be unable to reduce the response at all, disable the BK output to Z and apply a modulation signal to X. Use the DC Z coils to minimize the magnetometer's response to the X signal.
- Nulling notes
- During the above two steps, the DC value of the magnetometer signal will likely swing wildly. Use the Y current supply to attempt to keep the DC value close to zero. Actually, it's a decent idea to keep sweeping the Y field anyway...as the X and Z fields get closer to zero, the dispersive shape when scanning the y field should become more and more apparent.
- It is possible for the response to [X, Z] fields to decrease even if the [Z, X] fields are not approaching zero. In fact, if the transverse fields grow huge, the response to the transverse fields will grow small simply because the magnetometer gets worse at detecting **any** field. During the nulling procedure, when you're approaching the "true null point", the response to the transverse field will actually "slowly" get larger as you approach the optimum point and then "quickly" shrink to a very small value, only to begin quickly increasing when the optimum point is passed. If instead, you're approaching a "false null point", the response will "slowly" get smaller but never quite reach the "very small response value" of the true null point.
- As you continue to iterate and bring the X and Z fields get closer to their null points, the process will get easier and the wild DC swings associated with adjusting the transverse fields will get smaller (obviously, as the magnetometer is also becoming less sensitive to DC transverse fields). You can probably begin increasing the I-V gain and decreasing the applied field (on the BK fungen).
- Once the optimum (X,Y,Z) fields are applied, check to see if larger output resistors can be used. Use a DMM to measure the DC voltage on the monitor outputs (white BNC ports). The voltage range on the monitor output is roughly -25 V to +25 V on each channel. So, for example, if 1 kΩ resistors are being used and the monitor voltage reads 2 V, a switch to the 5 kΩ output resistors is possible as long as the DC voltage is increased to 10 V (maintaining the same current). Larger output resistors have historically given us lower magnetic noise (leading us to believe we are voltage-noise limited on the current supplies).
Local Field Nulling
Once the first channel is nulled, the other channels should be close to nulled: only the small field gradients between the sensors will have to be shimmed away. To accomplish this, we will use the shell-mounted coils. The shell coils are connected to the the "Sulai Current Supplies" in the main control box. The output currents from these supplies are controlled by an Arduino controller and DAC also located inside the main control box. With the code programmed into the Arduino, adjusting the current in one direction at one of the sensors will automatically adjust the currents at the other sensors to counteract any fields the adjustment to the first sensor may cause. Details of this code are provided HERE (include link here).
The following will assume that Channel 1 has been nulled with the room coils and Channel 2 will be nulled with its set of local coils. If other channels are in use, they can be nulled sequentially using a similar process.
- On the main control box, turn the Channel Selector (far left of box) knob to channel 2. The channel selector knob has four positions [12 o'clock, 1 o'clock, 2 o'clock, 3 o'clock] corresponding to [channel 1, channel 2, channel 3, channel 4] respectively.
- Adjust the output resistors appropriately. These are set with the second column of three knobs on the far right of the control box. Each one of these knobs is also 4-position, but often the indicators on the knobs don't correspond very well with the actual position of the switch. Usually best to turn the knob to one of the "end positions" and then select the appropriate output resistor. From "most counterclockwise" to "most clockwise", the output resistors are [100 Ω, 500 Ω, 1000 Ω, 5000 Ω]. Because the residual fields (after adjusting the room coils appropriately) are generally very small, the resistors can generally all be set to the 5000 Ω setting. However, for Z-mode measurements, large Z fields are required and thus the 100 Ω resistor (or 100 Ω) should be utilized. Note: the way the program is set up currently, the the coupling coefficients only work correctly if all channels' resistors are the same for a particular direction. That is, it's possible to use a 5 kΩ resistor on channel 2Y and a 500 Ω resistor on channel 1Z since those fields are not coupled with our array geometry. However, it would be inadvisable to use a 5 kΩ resistor on channel 2Y with a 1 kΩ resistor on channel 1Y (or 3Y or 4Y for that matter), since those directions are coupled.
- Follow the same instructions as above to null the fields. Continue to apply the 20 kHz modulation fields using the room coils. The three large knobs next to the channel selector knobs will adjust the fields X, Y, and Z for the selected channel. While rotating the knobs, the LCD screen will output a 16 bit number proportional to the current being applied. The range [-32768,32768] is mapped to [-5 V, +5 V], and the output current is simply that voltage divide by the output resistance [100, 500, 1000, 5000] Ω. Note: this is different from the Wyllie supply where the current was the "monitor voltage" over twice the output resistor. You will note that because of the coupling, adjusting one current (say, channel 2Y) will also change the currents in Channels (1Y, 3Y, 4Y), but by a much smaller amount.
- Once fields on channel 2 are relatively close to nulled, it's helpful to iterate between the room coils the local coils to null channels 1 and 2, respectively. I've found a good strategy is something along the lines of the following. One iteration is generally good enough to bring both magnetometers into line.
- Adjust room Y to bring the DC value of Channel 1 to 0; adjust Ch 2Y to bring the DC value of Channel 2 to 0.
- Apply a Z modulation field to the room coils; adjust room X to minimize on channel 1; immediately adjust Ch 2X to minimize Channel 2.
- Apply a X modulation field to the room coils; adjust room Z to minimize on channel 1; immediately adjust Ch 2Z to minimize Channel 2.
- Repeat all of the above steps for any other channels that need to be nulled.
The good thing is once the magnetometers are all nulled relative to each other, most stray fields (cars driving by, elevators, MRI machines) introduce global fields that can be adjusted for on all channels using the room coils. The field gradients from channel to channel are pretty much constant.