- Design measurement waveforms for MQ measurement campaign 4 [due:: 2025-01-24] [priority:: high] [completion:: 2025-02-04]
Waveforms must be prepared using Common SPS supercycle configurations in a more or less exhaustive manner, and carried through with a priority, since a fully exhaustive measurement will not be possible.
In addition, a measurement to fit the calibration function must be done.
- Fit MQ calibration function in lab. [due:: 2025-01-21] [priority:: high] [start:: 2025-02-15] [completion:: 2025-09-01]
Waveforms to measure
Standard measurements, switch from NA to any other supercycle, and then back. The model should learn to switch to and from the other supercycle.
Additionally for the ion run, ion SFT cycles should be measured as well.
When switching between each LHC supercycle type, change and go back.
We need to measure both with and without MD1. Without MD1, we should replace it with 3x ZERO, but also try to suppress it entirely, as long as IRMS is respected, since this is the direction operations will move towards.
Standard operational supercycles
Standard NA supercycles
- 5x NA_PHYS + 5x NA_PHYS_AWAKE + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_HIRADMT + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_HIRADMT_HI + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_HIRADMT_LO + 5x NA_PHYS
LHC supercycles
- 5x NA_PHYS + 5x NA_PHYS_LHC1 + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_LHC1_SPARE + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_LHC2 + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_LHC2_SPARE + 5x NA_PHYS (PILOT)
- 5x NA_PHYS + 5x NA_PHYS_LHC3 + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_LHC3_SPARE + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_LHC4 + 5x NA_PHYS
5x NA_PHYS + 5x NA_PHYS_LHC4_SPARE + 5x NA_PHYS- 5x NA_PHYS + 5x NA_PHYS_LHCINDIV + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_LHCINDIV_SPARE + 5x NA_PHYS
LHC filling supercycles
OP switches between different LHC-type supercycles when filling the LHC, which means we should measure similar supercycles.
Switch between normal and spare
- 5x NA_PHYS_LHC1 → 5x NA_PHYS_LHC1_SPARE → 5x NA_PHYS_LHC1
- 5x NA_PHYS_LHC2 → 5x NA_PHYS_LHC2_SPARE → 5x NA_PHYS_LHC2
- 5x NA_PHYS_LHC3 → 5x NA_PHYS_LHC3_SPARE → 5x NA_PHYS_LHC3
- 5x NA_PHYS_LHCINDIV → 5x NA_PHYS_LHCINDIV_SPARE → 5x NA_PHYS_LHCINDIV
Switch between different LHC-type supercycles Assume for simplicity that we only switch between normal cycles (and not spare).
- 5x NA_PHYS_LHC1 → 5x NA_PHYS_LHC2 → 5x NA_PHYS_LHC1
- 5x NA_PHYS_LHC1 → 5x NA_PHYS_LHC3 → 5x NA_PHYS_LHC1
- 5x NA_PHYS_LHC1 → 5x NA_PHYS_LHC4 → 5x NA_PHYS_LHC1
- 5x NA_PHYS_LHC1 → 5x NA_PHYS_LHCINDIV → 5x NA_PHYS_LHC1
- 5x NA_PHYS_LHC2 → 5x NA_PHYS_LHC3 → 5x NA_PHYS_LHC2
- 5x NA_PHYS_LHC3 → 5x NA_PHYS_LHC4 → 5x NA_PHYS_LHC3
- 5x NA_PHYS_LHC4 → 5x NA_PHYS_LHCINDIV → 5x NA_PHYS_LHC4
MD supercycles
- 5x NA_PHYS + 5x NA_PHYS_AWAKE_MD + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_AWAKE_MD1 + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_MD + 5x NA_PHYS
- 5x NA_PHYS + 5x NA_PHYS_SHIP + 5x NA_PHYS
Economy modes
While with a fully operational hysteresis compensation we will no longer need economy modes, in transition phases we still do. Therefore we also need to measure the same waveforms above with dynamic and full economy modes included.
We denote dynamic economy cycles with the suffix _DYNECO in the supercycles, and _FULLECO for full economy.
Dynamic economy
Dynamic economy cycles are usually only on SFTPRO, and should at some point be replaced by FULLECO.
Standard NA supercycles
NA_PHYS:
- 2x NA_PHYS
- 2x NA_PHYS_DYNECO
- 2x NA_PHYS
NA_PHYS_AWAKE
- 2x NA_PHYS_AWAKE
- 2x NA_PHYS_DYNECO_AWAKE
- 2x NA_PHYS_AWAKE
NA_PHYS_HIRADMT
- 2x NA_PHYS_HIRADMT
- 2x NA_PHYS_DYNECO_HIRADMT
- 2x NA_PHYS_HIRADMT
NA_PHYS_HIRADMT_HI
- 2x NA_PHYS_HIRADMT_HI
- 2x NA_PHYS_DYNECO_HIRADMT_HI
- 2x NA_PHYS_HIRADMT_HI
NA_PHYS_HIRADMT_LO
- 2x NA_PHYS_HIRADMT_LO
- 2x NA_PHYS_DYNECO_HIRADMT_LO
- 2x NA_PHYS_HIRADMT_LO
LHC supercycles
NA_PHYS_LHC1
- 2x NA_PHYS_LHC1
- 2x NA_PHYS_DYNECO_LHC1
- 2x NA_PHYS_LHC1
NA_PHYS_LHC1_SPARE
- 2x NA_PHYS_LHC1_SPARE
- 2x NA_PHYS_DYNECO_LHC1_SPARE
- 2x NA_PHYS_LHC1_SPARE
NA_PHYS_LHC2
- 2x NA_PHYS_LHC2
- 2x NA_PHYS_DYNECO_LHC2
- 2x NA_PHYS_LHC2
NA_PHYS_LHC2_SPARE
- 2x NA_PHYS_LHC2_SPARE
- 2x NA_PHYS_DYNECO_LHC2_SPARE
- 2x NA_PHYS_LHC2_SPARE
NA_PHYS_LHC3
- 2x NA_PHYS_LHC3
- 2x NA_PHYS_DYNECO_LHC3
- 2x NA_PHYS_LHC3
NA_PHYS_LHC3_SPARE
- 2x NA_PHYS_LHC3_SPARE
- 2x NA_PHYS_DYNECO_LHC3_SPARE
- 2x NA_PHYS_LHC3_SPARE
NA_PHYS_LHC4
- 2x NA_PHYS_LHC4
- 2x NA_PHYS_DYNECO_LHC4
- 2x NA_PHYS_LHC4
NA_PHYS_LHCINDIV
- 2x NA_PHYS_LHCINDIV
- 2x NA_PHYS_DYNECO_LHCINDIV
- 2x NA_PHYS_LHCINDIV
NA_PHYS_LHCINDIV_SPARE
- 2x NA_PHYS_LHCINDIV_SPARE
- 2x NA_PHYS_DYNECO_LHCINDIV_SPARE
- 2x NA_PHYS_LHCINDIV_SPARE
MD supercycles
NA_PHYS_AWAKE_MD
- 2x NA_PHYS_AWAKE_MD
- 2x NA_PHYS_DYNECO_AWAKE_MD
- 2x NA_PHYS_AWAKE_MD
NA_PHYS_AWAKE_MD1
- 2x NA_PHYS_AWAKE_MD1
- 2x NA_PHYS_DYNECO_AWAKE_MD1
- 2x NA_PHYS_AWAKE_MD1
NA_PHYS_MD
- 2x NA_PHYS_MD
- 2x NA_PHYS_DYNECO_MD
- 2x NA_PHYS_MD
NA_PHYS_SHIP
- 2x NA_PHYS_SHIP
- 2x NA_PHYS_DYNECO_SHIP
- 2x NA_PHYS_SHIP
- Ask OP to switch on hysteresis compensation [completion:: 2025-08-01]
First measurements
2024-05-05
Second DAQ is off a bit so we see some weird artifacts

Some weird ripples at 50 Hz.

Coil areas
All coil areas are written to cernbox/hysteresis/quadrupole/notebooks/calibrated_areas_campaign_3.csv with 10 rows, one for each PCB. PCB 2, 5 and 7 are spare. For the others we sum them to get the total area.
Note that in this case the coil areas are uncalibrated since 7 PCBs are used for the fluxmeter, and the gaps between the coils are yet to be accounted for, which will make up a scalar factor in the total field.
Gradient

Plotting the calibrated fields at a single time shows the field gradient. We can do a linear fit to the line to determine the slope, and therefore the gradient. The distance between lines in this plot are made up, and contributes only a scalar factor to the total gradient.

Calculating the gradient between two adjacent coils (so 20 lines in total) shows the above.
We still see significant drift in the measured gradients. On the outermost coil, we see field drifting 9 Gauss (), or from one SFTPRO flat top to another, which is well above

The noise seems correlated? The peaks are when there is a step in the integration.
We set gain on current to 1.00038 to compensate the mismatch between reference current and measured current, so we can use reference current to model (since the measured current sees very large 50 Hz ripples).

Looking at the current after 50 Hz bandstop we see clear steps that are due to the generation frequency in FFMM. We increase the frequency from 1 kHz to 20 kHz to observe any difference.
In the end, the gaps are still present at 20 kHz. The size of the gap is around 0.2 A. Based on theoretical calculation of the 16 bit DAC, the theoretical resolution is 0.2 A. We decrease the max resolution from 5 kA to half to increase resolution to 0.1 A.
Some small errors with file saving, and the acquisition is cut off with the last 20 seconds lost.
Additionally it seems that we need to recalibrate the waveform to send to the HOLEC.