Reports until 15:50, Friday 24 September 2021
H1 SUS (ISC)
jeffrey.kissel@LIGO.ORG - posted 15:50, Friday 24 September 2021 (60027)
Infrsatructure for OMCS Damping Loop Design: New Scripts/Functions, Plots of the Current (2014 Basic) Design, Comparison Against Measurement for the First Time
J. Kissel, V. Srivastava

Varun's poked me enough that I took some time last night to bring the OMCS into the "low noise" or "Level 2" damping loop modeling infrastructure folds that exists for triples, QUADs, and even the TMTS (see T1100232 as the starting point hub for all those designs). 

Because I've 
   - most recently brushed off the bit rot of the 2014 code for the HSTS when trying to some some SRCL problems during the early 2021 commissioning period (see G2100769), and 
   - the HSTS was the *last* low-noise loops I designed in 2014 so they had the most sophisticated and complete collection of metrics that we've now learned we need, 
I created the OMCS infrastructure that are just paired down versions of that code, and where necessary drive-chain parameters and dynamical models are updated. 

These new functions live here:
    /ligo/svncommon/SusSVN/sus/trunk/OMCS/Common/FilterDesign/Scripts/
        plotomcsdampingcontroldesign.m
        plotomcsactuatornoise.m  


Of course, to test these scripts, I did the usual "just import the current design, and make sure you can re-create it." So, the script that calls these functions is
    design_damping_OMCS_20141206_H1SUSOMC.m
named after the 2014 design that Dan Hoak commissioned and documented in LHO aLOG 15482, which he copied over from some HTTS damping loops that Den and Rana designed at LLO (see 15749). We mean no insult to these greats, but we now know, of course, that this design is kindof sub-par.

Attached is the usual *giant* collection of plots common to a Kissel design (dampingfilters_OMCS_OMC_2014-12-06.pdf), but they end up showing (I argue, at least) everything that one should consider in any damping loop design:
For *all* degrees of freedom (and not just the one's you have control over)
 - The filters' generic shape, regardless of calibration
 - The filters' shape and physical gain, such that you can attach it to a real control system and a dynamical model that's in physical units
 - The loop *design* aspects (all on one plot, calculated both as SISO independent loops, as well as MIMO cross-coupled loops) -- 
    - the unsuppressed plant, P, 
    - the filter, K, 
    - the open loop gain transfer function, G = -P*K (these design scripts use the G = -P*K convention with an explicit minus sign, rather than the implicit G = P * K convention, so stability for upper unity gain crossings is to stay away from -180 deg, not 0 deg.) 
    - the loop suppression, 1 / (1 - G)
    - the loop suppressed plant, P / (1 - G)
 - The loop *performance* aspects (on separate plots)
    - the impulse response, which not only shows the 1/e ring-down time, but confirms that the loop is stable ('cause sometimes the loop design plots can be deceiving)
    - the surrounding context -- the ASD residual seismic noise, and how much it's reduced thank's to your loop designs, and considering the contribution from all DOFs to the given single DOF (because, for example, L noise always involves cross-coupled in P noise for any pendulum)
    - the ASD of suppressed noise inherent to the sensors of your loop -- again in the context of all DOFs such that you're aware that you need, again using L and P as the example, that one can still have terrible L noise re-injection at the bottom even if your L loop is awesome -- because your P loop still stinks, and it reminds you that you *always* need to design *both* in concert
    - the surrounding context -- the "global control" transfer function that shows that if / when you want to wrap, say, and OMC alignment control loop around this newly damped plant, then this is what you'll be dealing with
    - the surrounding content -- the self-noise of the DAC and coil driver which you *cannot* beat with control design (or at least not without changing hardware), so don't bend over backwards to make your loop's sensor noise suppression any better than this, and finally
    - The grand purpose: The overall predicted budget -- residual seismic, residual sensor noise, and actuator noise all summed up and compared against the requirements -- hopefully based on well informed reality of noise performance of the final stage (for the case of the OMCS these don't really exist, but Varun is working on that for us)
And thankfully, because the code had already been written for the HSTS, it really didn't take me more than a few hours to update the code (pulling *out* isolation stages is *way* easier than *adding* isolation stages) to produce all these metrics. Very nice.

One thing I'm still verifying is the actuator noise prediction. Nominally, the OMC TOP driver (D1003116) is virtually identical to the QUAD and Triple TOP driver (D0902747), but with a different set of output impedance resistors. Thus, in theory, I can take the actuator noise predictions for the triple (in current / rt Hz) and just scale it by the transconductance (the "current out per differential volts in" in [A/V]) of the two drive chains -- where that is proportional to 1 / (2 * Rout + Rcoil). So that's what I did, and that ratio is OMC / TPL = 0.17005. But I still want to make *sure* and verify it against other folks calculations and/or at least sanity checks.

All that being described, no model is any good unless it agrees with data. Much to my chagrin, I found that in the 7 years we've been using these damping loops, we'd never taken any "damping loops ON" top-mass to top-mass transfer functions of the OMC. Bonkers!
So -- I took new damped transfer functions for all DOFs. 
In doing so, I've found that the drive excitation parameters for the DTT templates were also garbage (exciting the suspension *well* past the DAC range), so I've tuned those up now too. These new templates can be found here,
    /ligo/svncommon/SusSVN/sus/trunk/OMCS/H1/OMC/SAGM1/Data/
        2021-09-24_0200_H1SUSOMC_M1_WhiteNoise_L_0p02to50Hz.xml
        2021-09-24_0200_H1SUSOMC_M1_WhiteNoise_P_0p02to50Hz.xml
        2021-09-24_0200_H1SUSOMC_M1_WhiteNoise_R_0p02to50Hz.xml
        2021-09-24_0200_H1SUSOMC_M1_WhiteNoise_T_0p02to50Hz.xml
        2021-09-24_0200_H1SUSOMC_M1_WhiteNoise_V_0p02to50Hz.xml
        2021-09-24_0200_H1SUSOMC_M1_WhiteNoise_Y_0p02to50Hz.xml

The OMC happens to be in-air, with only the ISIs damping loops engaged (HEPI is OFFLINE and LOCKED, no ST1 Isolation loops), but the doors are still on. Still plenty quiet enough for good coherence, even with coil drivers in State 2 (i.e. with the low-pass ON).

I attach the processed data, including a comparison against the most recent (regrettably poor quality) undamped data and the model in allomcss_2021-09-23_H1SUSOMC_Phase3a_Damped_ALL_ZOOMED_TFs.pdf.

If one compares the blue, plant P, curves and dashed plum MIMO loop-suppressed plant P/(1-G) curves in pages 3, 10, 16, 22, 28, 35 of the design against the data, one sees almost identical agreement.

Good. Now we can easily design new loops!
Non-image files attached to this report