I have updated the scripts/SUS/peakFit/ directory so that it now finds the SUS input matrix coefficients in addition to just finding the free-swinging peaks.
__Procedure__:
- Get OSEM sensors data via NDS2 from a time when the optics have been kicked and then left free swinging.
- Downsample the data to 64 Hz and save.
- Make power spectra with a 1 mHz resolution (i.e. we need a few hours of data) and ~10 averages.
- use the fminsearch lorentzian peak fitter -> save the peak frequencies
- Make Transfer Function estimate matrix at the peak frequencies between all OSEMs (this makes a 5x4 complex matrix)
- The matrix should be real, so make sure its mostly real and then take the real part only
- Normalize (height of biggest peak for each f_DOF should be 1)
- Add a Butterfly mode vector. This makes the sensing matrix go from 5x4 to 5x5. (Butterfly a.k.a. Pringle)
- Invert
- Normalize so that the biggest element in each Sensor2DOF column is 1.
- Load values into MEDM screen and then verify by another free swinging data run.
The attached PDF shows how much rejection of the unwanted DOFs we get between the existing diagonal input matrix and this new empirical matrix. Previously, the decoupling was only a factor of a few for some of the modes. Now the decoupling is more like orders of magnitude (at least according to this calculation). It will be worse when we load it and then try another free swinging run. However, the fact that the suppression can be this good means that the variation in the coefficients at the ~hours time scale is at least this small (~< 0.1%)
**That's the basic procedure, but there are a lot of important but mainly technical details:**
- Free swinging data must be taken with the angle bias ON. Otherwise, we are not measuring the correct sensing gain (i.e. the magnets are not in their nominal place within the OSEM-LED beam)
- Data must be checked so that the shadow sensor outputs are in their linear regime: if they are exploring the cubic part, then the fundamental is being suppressed.
- Instead of just using the peak frequency, I average a few points around the peak to get better SNR before inversion. I think this will make the results more stable.
**All previous input matrix diagonalization efforts (Buckley, Sakata & Kawamura, Black, Barton, Gonzalez, Adhikari & Lawrence, Saulson,...) for the past ~15 years have been using the spectra's peak height data. Today's technique uses the TF and so is more precise. The coherent transfer function is always better than just using the magnitude data.**
- This method is now fairly automatic - there's no human intervention in fudging values, choosing peak heights, frequencies, etc.
- We'll have to rerun this, of course, after the mirrors are aligned and after the OSEM whitening fiasco is cleaned up somewhat.
I'll set the optics to be aligned and then swing tonight. |