Eddy current decay in the SPS main dipoles

Overview

Most beams injected into the SPS sees a drift of the orbit during the injection plateau when uncorrected. This is due to decaying eddy currents causing a dipole fields, which are primarily caused by ramp-down of the main dipoles on the previous cycle, but could also be mixed with effects from the ramp-up if the flat-top is short. Therefore, cycles that see the largest effects on the beam caused by eddy currents are ones that inject the earliest. In the SPS, this is the fixed target cycle, which 200 ms after cycle start at 14 GeV. For the main dipoles this is equivalent to a main dipole field around 0.0622 T, or 161 A, compared to the idle current 155.53 A, or 0.0603 T.

Normally the SFTPRO cycle has a momentum ramp at injection to counter the eddy current decay from the ramp-down of the MD1. However after flattening the momentum ramp, and thus isolating the decaying effects we can see the orbit decay clearly on the beam orbits, here measured during BC MD 2025-03-18 , with different preceding cycles, either an LHCINDIV, which has ramped down from 450 GeV, or an MD5, which has an identical ramp-down to the MD1 from 200 GeV:

Orbit drifts with no dipole field ramp at SFTPRO injection, with LHC-type 450 GeV cycle or 200 GeV MD cycle in front. The orbit drift after the LHC cycle ramp down is significantly larger than the one after the MD cycle

Modeling current decay

The original intention was to use magnetic field measurements to capture eddy current decay in the main dipole fields, however it has been shown through different measurements in the main dipoles in the 867 measurement lab, on the B-Train, and on the beam that the dynamic effects are not consistent through all scenarios. Specifically the lab measurements of a single MBA magnet shows decaying effects in the order of tens of milliseconds, whereas the B-Train measurements sees decays taking hundreds of milliseconds, and finally on the beam the decays can take several seconds to decay completely.

This inconsistency between different measurement systems, and negligible effects on the lab measurements, suggest that the main dipole itself sees few little eddy currents propagating through the magnet yoke, but it is rather an effect on the vacuum chamber, as the SPS B-Train consists of an MBA and an [[SPS Main Dipoles|#MBB]] measured in series, which in turn has 2 vacuum chambers connected together.

Decay constant in the main dipoles

Field decay on B-Train measurements

For the SPS main dipoles we can find the Eddy current decay constant by looking at the ZERO cycle for idle current, SFTPRO1 flat top, even when the flat top is ramping slightly.

Second analysis

We use a dataset with 3x ZEROs after SFTPRO1 ramp down, and to compensate for drift in the acqusition of the ZERO cycles, we add an additional linear component to the curve fit and achieve the following:

We see that the fit improves to the previously fitted decay constant. Here we instead see a decay constant of , however this still differs greatly from effects seen on the beam during Eddy current decay constant.

The fit with 10x ZEROs fit better than with 3x ZEROs, primarily with the added information of longer decay. Note that we don’t include the first 120 points/ms in the fit, as the power converters still has significant ripples at that time.

Effectively the time constant increases from to for the single exponential, while for the double exponential the time constants change slightly.

Eddy current decay parameters: -1.01e-07, 0.37 s, -2.41e-08, 1.86 s

Third approach

We use another dataset to crosscheck

We are drifting upwards, and we ignore the ripple in the beginning of the ZERO cycles.

We choose the time constants from the ZERO cycle decays due to the additional points available for fitting (3000 vs 400).

So ms, ms, s. Based on these time constants, we fit the exponential convolution coefficients to be on a flat part.

Based on the eddy current fit we see that the decay is subtracted sufficiently well up to linear drift. We use this approach to make Dipole dataset v7.

Decay on orbit measurements

We retrieve the data from the MD2 orbit decay from 2025-03-27 and fit only on the MD2 orbit since we assume is fast decaying. Additionally we retrieve SFTION1 (O4) data from Eddy current measurements 2025-06-27 when the injection plateau was still constant (and also constant RF at injection). We also retrieve data from LHCION3 from 2025-07-02 to use as validation.

In all, we fit time constants on the following datasets

  • SFTPRO1 (after MD5)
  • SFTPRO1 (after LHCINDIV)
  • MD2 (6 BP MD cycle)
  • SFTION1 (after MD1)
  • LHCION3

We validation on another SFTION1 dataset but this one measured after an LHCINDIV.

N.B. LHCION3 BPMs seem to be recording at 3ms interval (333 Hz)

Fitting with 2 or 3 exponentials using differential evolution we receive

2 exponential fit results

Objective score: 3.424 Number of iterations: 6646

ParameterValue (seconds)Description
tau10.569829Fast time constant (only in orbits 1 & 2)
tau22.79074Medium time constant (all orbits)
Time ConstantOrbit 1 CoefficientOrbit 1 Contribution (%)Orbit 2 CoefficientOrbit 2 Contribution (%)MD2 Orbit CoefficientMD2 Orbit Contribution (%)SFTION Orbit CoefficientSFTION Orbit Contribution (%)
tau1-1.1504934.4142-1.8881637.9804-0.12469312.054-0.70551726.9034
tau2-2.1925865.5858-3.0832562.0196-0.90976187.946-1.9168973.0966

In this optimization we remove the restriction to force and let the optimization choose freely.

3 exponential fit results

Objective score: 3.413 Number of iterations: 40000

ParameterValue (seconds)Description
tau10.369691Fast time constant (only in orbits 1 & 2)
tau21.7Medium time constant (all orbits)
tau37.92859Slow time constant (all orbits)
Time ConstantOrbit 1 CoefficientOrbit 1 Contribution (%)Orbit 2 CoefficientOrbit 2 Contribution (%)MD2 Orbit CoefficientMD2 Orbit Contribution (%)SFTION Orbit CoefficientSFTION Orbit Contribution (%)
tau1-0.54875416.9138-0.90499419.434800-0.88868931.2587
tau2-2.4216374.6399-3.729780.0954-0.087569416.4726-0.38490813.5387
tau3-0.2740368.44637-0.02187630.469793-0.44403683.5274-1.5694255.2026

We see only an improvement of about 1 % in objective score using 3 exponentials over 2 exponentials.

Validation

Objective scoreValidation score
2-Exponential3.423750.806774
3-Exponential3.413270.798459

We find the 2-exponential to not fit so well.

Fitting first turn data

We use various notebooks to retrieve the radial offset, theoretical db offset and IREF and save to intermediate dataframes and load into a curve fitting notebook

Notebooks

  • MD20250627/bpm-data-sftion-1.ipynb
  • MD20250627/bpm-data-sftion-2.ipynb
  • MD20250709/bpm-data-md5.ipynb
  • MD20250709/bpm-data-sftpro1-1.ipynb
  • MD20250709/bpm-data-sftpro1-2.ipynb

Fitting notebook

  • MD20250709/exponential-convolution-fitting.ipynb

Plotting the first turn radial offsets, we see the following:

Eddy current decay on orbit

We fit parameters using differential evolution and sampling parameters in log-space, and forcing the coefficients to be negative (since the eddy current contributions should be decaying negatively)

Objective scoreC1C2C3TAU1TAU2TAU3
Double fixed0.326535-0.000918377-0.000350356nan0.5322.72nan
Triple fixed0.288963-0.00147969-0.000161257-0.0003522030.4151.7459.433
BFGS fit 20.106625-0.000914974-0.000350089nan0.5322.72nan
BFGS fit 30.0834998-0.00147243-0.00016114-0.0003520650.4151.7459.433

Notes

  • Cannot use pure scipy.minimize with jacobian for exponential coefficients, since this does not enforce coefficients to be negative
  • multi objective optimization with evolutionary algorithms does not work for fitting every parameter because we have 20+ parameters, and this is too high dimensional to converge properly
  • Pure gradient descent gets stuck in local minima.
  • Best to use evolutionary algorithms and moo for time constants, and use varpro or similar algorithms to fit the coefficients analytically with least squares, since the coefficients and offsets present a linear problem, and the time constants are nonlinear.