Displaying report 1-1 of 1.
Reports until 16:43, Wednesday 12 January 2022
H1 CAL (DetChar, ISC, SUS)
jeffrey.kissel@LIGO.ORG - posted 16:43, Wednesday 12 January 2022 - last comment - 10:06, Friday 25 February 2022(61280)
Measured and Fit PUM Driver Response for ITMX and ITMY
J. Kissel
WP 10150
ECR E2100204
IIET Ticket 21642

After Fil installed the changes to the low-pass filter (relevant to State 3 for) for ITMX (S1000346) and ITMY (S1102654) PUM drivers (see LHO:60997), as per ECR E2100204, and I discovered that the benchtop data for the response was not of high enough quality for a calibration group level fit (see LHO:61214), I've spent two days by CER rack SUS-C6 grabbing really high quality data.

As a result, we now have *very* low noise data from 0.2 Hz to 10 kHz, from which I was able to extract low-order, sub-Nyquist frequency, (almost all) real zero:pole pair fits that leave a residual (ratio of measurement / fit) better than magnitude and phase of 0.001 and 0.1 deg between 1 Hz and 2 kHz. This should allow for compensation in the COILOUTF banks to be equally exquisite.

Assuming we continue *not* using the ITMs for DARM control during observation-ready data, the ITMs don't really need this exquisite level of compensation, but:
    - I needed the practice in measuring coil driver electronics in prep for measuring where it matters -- on the ETMs, 
    - I needed the practice with the new(ish) measurement device -- the SR785 Accessory Suite (D1900068),
    - I wanted to exercise all the mysteries out of the measurement data, and make sure I had all equipment necessary, while at the corner station so I minimized the number of trips to the end station,
    - I needed the practice fitting the data "on the fly" to make *sure* that my chosen measurement parameters (frequency vector, source amplitude, etc.) resulted in data of high enough quality for above mentioned exquisite fit, again, for when it matters.

So, hurray! In passing, we get awesome frequency response compensation for the ITMs too. While it may not matter for DARM calibration, this actually may help out with decreasing Length to Angle coupling, as now that we will be sure that the *relative* differences in *frequency* response of the 4 OSEMs in the PUM length drive will be the same, we can then run through our usual coil balancing technique, and be sure that when we're driving at ~3 - 4 Hz in any given state, we'll know that it is an *over all gain* difference we're balancing, not a frequency response difference.

OK, enough motivation / justification. Let's get to the measurement technique, data, and results.

%%%% Measurement Technique %%%%%
In order to grab the data, I used an SR785 for my data acquisition system and the D1900068 Accessory box to convert the SR785's single-ended source voltage to differential drive suitable for the PUM driver chassis. In order to simplify the data as much as I could for the fitting routine, I grabbed transfer functions of the driver with output of the driver disconnected from the QUAD's AOSEM cabling, and instead replaced it, and loaded the output of each channel with a 40 Ohm resistor via a custom-made jig that Fil's made. I drove 4 V (peak) single-ended into the accessory box, which drove 2 V (peak) on to each differential leg, creating a 4 V differential drive through the box, which is ~1/5th the range that the nominally connected DAC can drive. I drove from 0.2 Hz to 10 kHz, again, knowing that I want a good fit between 1 Hz and 1 kHz, and a supremely awesome fit between 10 and 100 Hz. Unfortunately, that meant each measurement of each channel, in each state, took ~10 minutes. But -- this is the price one pays for this kind of sub 1% accuracy (just talk to the PCAL team!).

Note, I did *not* use a GPIB setup for automated SR785 setup and data gathering because I was already spending a lot of time figuring out the new-to-me SR785 Accessory box, taking ~4 hours worth of mission critical data, and trying not to mess up. So I sacrificed debugging the infrequently-used, oft-headache-inducing GPIB to CDS network interface (or to any laptop interface), especially while the wireless internet signal was weak in the CER. At LHO, we just don't use this system enough and don't have the person power to ensure that it's a well-maintained easy to use system.
 
Diagrams / Pictures are worth a thousand words, so check out
- D1900027-v2_CoilDriverChassisSetup_DummyOsemChain.pdf for the measurement set-up using the 40 Ohm load, 
- D1900027-v2_CoilDriverChassisSetup_RealOsemChain.pdf for the measurement set-up with the real AOSEM impedance, and
- 2022-01-11_ITM_PUMDriver_MeasSetup.pdf for pictures.

%%%% Data and Fitting Routine %%%%
The raw data for each chassis is committed to 
    /ligo/svncommon/CalSVN/aligocalibration/trunk/Common/Electronics/H1/Data/SUSElectronics/ITMX/PUM/2022-01-10/
and
    /ligo/svncommon/CalSVN/aligocalibration/trunk/Common/Electronics/H1/Data/SUSElectronics/ITMY/PUM/2022-01-11/
with more detailed measurement notes about the SR785 setup included in there. Hopefully the filenames are long enough to be self-explanatory.

However, also, you don't need to understand the filenaming scheme, because the processing/fitting.plot script for each ITM are commmited here:
    /ligo/gitcommon/suspensions/ligo/electronics/fits/
        fit_ITMX_PUM_driver_20220110.py
        fit_ITMY_PUM_driver_20220111.py
 
These use IIRrational as the work horse for the fitting.

%%%% Results %%%% 
You may find the results attached. 

For the poles and zeros, check out
    2022-01-10_H1SUSITMX_PUMDriver_S1000346_FitResults.txt and
    2022-01-11_H1SUSITMY_PUMDriver_S1102654_FitResults.txt

and for plots of the residuals between measurement and fit, check out the remaining *ResidualSummary.pdf attachments. Repeating what I said in the intro, these residuals are all less that 0.1% / 0.1 deg in magnitude / phase.

%%%% Commentary %%%%
While the vast majorit of the fit results were beautiful (again, low-order, sub-Nyquist frequency, (almost all) real zero:pole pair), some were more interesting.
(1) Recall that there are two switchable filters, the low-pass and the acquire filters. ECR E2100204 only modifies the low-pass filter stage, but because the acquire filter stage has a pole-zero pair response when it's both ON and OFF, we can't *just* measure State 3 and measure the change in low pass in isolation. So, as described at the very end of LHO:61231, 
    (a) Fitting State 1 alone yields the Acquire OFF zero:pole pair
    (b) Fitting State 2 alone yields the Acquire ON zero:pole pair
    (c) The ratio of State 3 to State 1 will have only the lowpass filter zeros:poles
Interestingly, that means that can get independent fits of (a) and (c), as well as 
    (d) Fitting State 3 alone yields a cross-check of (a) and (c)
And for the most part, comparing the fit results between (c) and (d) yield the same frequencies for poles and zeros to less that 1% difference (assuming values from the simpler data set (c) are the "expected" values in the percent difference calculation).

However, there are a few random fits (e.g. IMTX State 3 LL, ITMY State 3 / State 1 UR) that are just not like the others. I think, in this case, even though it'll look wonky in the foton file to have one or two filter banks have "not like the other" results we'll just have to be OK with it. They're not *that* much different, and we'll have this aLOG that'll tell the story as to why.

(2) State 2 apparently needs a super-Nyquist zero:pole pair at ~43.5:33 kHz in order to achieve complete and utter awesomeness. Since it's highly likely that we'll *not* be using State 2's high-gain response in observation-ready, I think it's OK that we leave out this zero:pole pair in the compensation. Not compensating for this z:p pair only results in a systematic error of 1.7e-4 % / 0.0385 deg at 100 Hz and 0.017% / 0.384 deg at 1 kHz.

(3) The order (number of z:p pairs) of all of the fits is less than 4 for all fits. I *tried* restricting the fits to only use real zeros and poles, but apparently somehow ITMX's LL coil fit to State 3 still needs a pair of complex zeros in order to explain the data. I think we can safely use the real zeros from the State 3 / State 1 fit for the compensation and be happy.

(4) Still on the to-do list is to show the residual between the data and the *chosen* zeros:poles (i.e. what's left over after some of the "reality check" exclusions mentioned the above commentary), and then propagate that would-be error in compensation of the PUM actuator to the overall DARM response function. I'm pretty sure that the answers going to be "completely negligible" but -- that's the goal -- and we'll have proof in modelling that confirms it and provides a quantitative value for it, so we can make statements in papers that define what "negligible" means.
Non-image files attached to this report
Comments related to this report
jeffrey.kissel@LIGO.ORG - 15:35, Thursday 13 January 2022 (61289)
J. Kissel, J. Betzwieser

After chatting with Joe about this measurement technique and setup, we have a few further thoughts that will aide me when I move to the ETMs:
(I) Attempting to address Commentary (1) and (2) -- why are there some channels that are goofy, and why is there some channels which have super-Nyquist zero:pole pairs? 
    One thing I forgot to do in the above measurements was to measure the transfer function of the D1900068 SR785 Accessory Box alone, without the PUM driver included, and divide that transfer function out of the data. In the past, in the stone ages before the D1900068 accessory suite existed, when we still used the less-trusted D1000931 Coil Driver Test Box as our single-ended to differential driver, we *would* always gather this "measurement setup" transfer function and divide it out of the data. I need to have the same distrust of the response of SR785 box influencing my PUM driver response data, gather that measurement and divide it out of the data. Joe did this with his fits.

(II) Joe's measurement setup also used a crude resistor system like I did, so that's encouraging. Somehow we both have forgotten / lost / didn't bother to find ye ole' cute "dummy OSEM boxes" that were made for early testing of drivers in aLIGO. In my attempt to find a drawing for it, I found this aLIGO SUS Dummy SatAmp, D1100278, which looks like it could be nice and official too as it readouts out the voltage across 20 Ohms of resistance, from which one could derive the current like we do with our crude setups. Merp. Resistors are resistors. What we have works.

(III) Exactly because of (I), Joe didn't use the DB9 port of the SR785 box to inject the SRC excitation -- he instead used the "DUT +" and "DUT -" BNC outputs and used clip leads and a DB9 breakout board to inject the SRC excitation. As indicated in the D1900068 Brochure, the advantage/design intent of the knobbed selection of which pins on the DB9 are driven was to have one less set of BNC + clip-leads + breakout board connection you'd have to remember to bring to the end-station.
But -- that means that you have to take *four* "measurement device" transfer functions, one for each knobbed channel, vs. jut the one for the DUT +/- outputs.
So, it's a compromise -- switch the clip leads by hand when you need to change channels (5 extra minutes), or measuring and keeping track of four "measurement setup" datasets vs. one (depending on your frequency vector, that could mean the difference between 60 extra minutes vs. 15 extra minutes).
I think, for the ETMs, I might go the Betzwieser route.

Thanks for the chat Joe!

EDIT: I've added an update to collection of diagrams that reflects the combination of Joe and my's measurement techniques. Also -- I'm keeping the diagrams in the DCC synchronize with these aLOGs -- see D1900027 for canonical version.
Non-image files attached to this comment
jeffrey.kissel@LIGO.ORG - 15:58, Tuesday 22 February 2022 (61834)
I've now re-run all the fits for ITMX and ITMY dividing out the measurement setup as I've done with the ETMs in LHO:61313 for the coil driver response, as well as I've done for the AOSEM response in LHO:61726 and LHO:61828.

Attached are plots and the results for both.

%%%% Data, Fitting, Results %%%
- The raw data for these transfer functions live in 
    /ligo/svncommon/CalSVN/aligocalibration/trunk/Common/Electronics/H1/Data/SUSElectronics/ITMX/PUM/2022-01-10/
        2022-01-10_H1SUSITMX_PUMDriver_S1000346_AOSEM_CH?_??_State1_[mag,pha].TXT.
    /ligo/svncommon/CalSVN/aligocalibration/trunk/Common/Electronics/H1/Data/SUSElectronics/ETMX/PUM/2022-01-11/
        2022-01-11_H1SUSITMY_PUMDriver_S1102654_AOSEM_CH?_??_State1_[mag,pha].TXT.

- I attach two .pdfs of the concatenated results for the 4 coils, 
    2022-01-10_H1SUSITMX_PUMDriver_S1000346_40OhmbyAOSEM_State1_FitResult.pdf, and
    2022-01-11_H1SUSITMY_PUMDriver_S1102654_40OhmbyAOSEM_State1_FitResult.pdf
showing fits that have residuals (meas tf/ fit tf), below a few kHz, better than 0.1% / 0.1 deg. Sweet.

- The list of poles and zeros may be found as an addendum to fit results; the amended, addended, results re-attached here:

    2022-01-10_H1SUSITMX_PUMDriver_S1000346_FitResults.txt
    2022-01-11_H1SUSITMY_PUMDriver_S1102654_FitResults.txt

Both of these results were produced by updated versions of the fitting code:
    /ligo/gitcommon/suspensions/ligo/electronics/fits/
        fit_ITMX_PUM_driver_20220110.py
        fit_ITMY_PUM_driver_20220111.py
which are again, copies of the generalized ETMX code. EXCEPT -- for both these ITM codes, I had to give the AOSEM data a fit order seed of 4, rather than 3, in order to get a better than 0.1%/0.1 deg fit. Interesting.

The results have been committed to 
    /ligo/svncommon/CalSVN/aligocalibration/trunk/Common/Electronics/H1/Results/SUSElectronics/ITMX/PUM/2022-01-10/
    /ligo/svncommon/CalSVN/aligocalibration/trunk/Common/Electronics/H1/Results/SUSElectronics/ITMY/PUM/2022-01-11/

Stay tuned for aLOGs about systematic error models with these results.
Non-image files attached to this comment
jeffrey.kissel@LIGO.ORG - 10:06, Friday 25 February 2022 (61924)SUS
J. Kissel, B. Ratto
WP 10267

Since I'd measured it for the ETMs, I was curious what the resistance of the AOSEM load is on the coil drivers for the ITMs.
So, using the same technique:
   - wrist strap on, 
   - power to chassis off, 
   - unplugging AOSEM coil drive cable from back of PUM driver, 
   - insert / attach DB15 breakout on to cable, 
   - measure resistance across coil +/- legs with clip-leads and a fluke DVM
Brad and I measured the resistance of the ITM AOSEM coil + cable system. Here're the results.
             ITMX       ITMY 
             (Ohm)      (Ohm)
    UL       22.5       23.9
    LL       22.5       23.8
    UR       23.0       23.8
    LR       22.6       24.0
    mean     22.65      23.875 
    std       0.21       0.08    
These will help normalize the (State 1 w/ AOSEM load) / (State 1 w/ "40 Ohm***" load) data. Again -- larger that the 19.7 Ohm that we've been using as our canonical value since forever!
*** the 40 Ohm resistor system I've used in these measurements has measured values of 39.0 +/- 0.05 Ohm.
Displaying report 1-1 of 1.