Displaying report 1-1 of 1.
Reports until 11:35, Tuesday 07 January 2020
H1 SUS (CDS)
jeffrey.kissel@LIGO.ORG - posted 11:35, Tuesday 07 January 2020 - last comment - 13:13, Tuesday 07 January 2020(54343)
SDF Reconciliation: ISC Controlled Suspensions
J. Driggers, S. Dwyer, J. Kissel, T. Shaffer, B. Weaver

The suspension models continue to be most difficult systems to reconcile, given that they are used by so many systems and guardians, and have so many special cases. Betsy's putting in a separate log about the reconciliation she did with the BSC SUS's, but I covered five things:

(1) For SUS ETMY, while the UIM (L1) coil driver request state was 1.0 (i.e. with all low passes OFF), and all the filters in the COILOUTF banks were in their correct state to compensate for that analog configuration, the COILOUTF banks were showing filter module SDF differences. I accepted the DIFFs such that the safe.snap agrees with the correct state. (which, for ETMY actually points to the "down.snap" -- and it is *NOT* one of the suspensions where safe = down = OBSERVE because it is a globally controlled suspension).
(Note, the actual state we want the UIM (L1) stage is different as a result of the DAC noise study performed by Keita in Nov 2019 -- see LHO aLOG 53376: ITMX : 4, ITMY : 4, ETMX : 1, ETMY : 2)
Betsy and I have made sure that these QUADs' L1 coil drivers are *in* the above mentioned state *and* both the COILOUTF and STATEREQ are monitored.

(2) The ETMX_L3_CAL_LINE clock gain (i.e. the ETMX calibration line on the TST (L3) stage) was set to 0.0, i.e. OFF. The calibration lines don't have an output switch, so they don't have a switch to turn their output off, which is how the SUS guardians make sure all outputs are OFF in the SAFE state normally. These lines -- in the O3 IFO DARM control configuration -- only need to be on ETMX, and since these calibration lines are such small amplitude, (on the order of 10 DAC counts RMS to each coil), I don't think it's an issue to just keep them all ON in the safe.snap.

(3) SUS PR2 was especially tricky. This SUS is 
 - touched by two separate guardians (ALIGN_IFO and ISC_DRMI), 
 - the filter modules are forced to be (i.e. the only_on) *different* configurations when they are used
    ISC_DRMI (in PREP_DRMI_ASC)
        ezca.get_LIGOFilter('SUS-PR2_M1_LOCK_P').only_on('FM5','FM6', 'FM9', 'OUTPUT', 'LIMIT','DECIMATION')
        ezca.get_LIGOFilter('SUS-PR2_M1_LOCK_Y').only_on('FM5','FM6', 'FM9', 'OUTPUT', 'LIMIT','DECIMATION')

    ALIGN_IFO (in PREP_INPUT_ALIGN)
        ezca.get_LIGOFilter('SUS-PR2_M1_LOCK_P').only_on('DECIMATION','OUTPUT','FM2','FM6','INPUT')
        ezca.get_LIGOFilter('SUS-PR2_M1_LOCK_Y').only_on('DECIMATION','OUTPUT','FM2','FM6','INPUT')
 - the SDF says 
                                safe.snap value         current value       difference
     H1:SUS-PR2_M1_LOCK_P     F1, F9, LT, OT, DC        F2, F6, OT, DC      F1, F2, F9, LT    
     H1:SUS-PR2_M1_LOCK_Y     F1, F9, LT, OT, DC        F2, F6, OT, DC      F1, F2, F9, LT
 - AND because these are filter modules and we have individual monitoring control over each switch, the INPUT, FM1, FM5, and FM6 are unmonitored.
Yuck!
For both pitch and yaw, these filters are 
     FM1       z:p = [none]:0     integrator
     FM2           Cal            gain only filter, gain(1.875)
     FM6       z:p = [none]:0     integrator
     FM9          -100dB          gain only filter, gain(-100,"dB")
Jenne and I have concluded that with FM1 and FM6 being identical filters, the FM1 difference is likely a result of the integrator moves for better ASC control -- namely moving the integrators down stream of other filters that switched in and out -- that was done in Sep 2019 LHO aLOG 51715.

So, we performed the following action: 
 - re-monitored specifically the FM1 switch.
 - briefly, 
     - monitored everything, 
     - changed the filter configuration to what ISC_DRMI (in PREP_DRMI_ASC) forces it to be -- because an initial align had been run between our last lock loss and this reconciliation, so it was in the ALIGN_IFO (in PREP_INPUT_ALIGN) configuration
     - accepted the changes, and then
 - unmonitored FM2, FM5, FM6, FM9, and the LIMIT buttons (i.e. all those controlled by *both* ALIGN_IFO and ISC_DRMI)
     - and notably left FM1 *monitored* since we no longer want this integrator ever to be on (since it's replaced that now in FM6).

Finally, with PR2, there remained 
    SUS-PR2_M3_LOCK_OUTSW_P
    SUS-PR2_M3_LOCK_OUTSW_Y
which, again is requested to be in a different state (0.0 vs. 1.0 i.e. ON vs. OFF) in the prep states of ISC_DRMI and ALIGN_IFO. Since this is guardian forced to be in either state when needed, we've chosen to *unmonitor* it.

(4) SR2 required a very similar operation as PR2, but the filter modules are different: 
 - touched by two separate guarians (ALIGN_IFO and ISC_DRMI),
 - the filter modules are forced to be (i.e. the only_on) *different* configurations when they are used
    ISC_DRMI (in PREP_DRMI_ASC)
        ezca.get_LIGOFilter('SUS-SR2_M1_LOCK_P').only_on('OUTPUT','LIMIT', 'DECIMATION','FM3','FM5','FM8')#SED moved integrator from FM2 to FM5, Sept 2 2019
        ezca.get_LIGOFilter('SUS-SR2_M1_LOCK_Y').only_on('OUTPUT','LIMIT','DECIMATION','FM3','FM5','FM8')

    ALIGN_IFO (in PREP_INPUT_ALIGN)
        ezca.get_LIGOFilter('SUS-SR2_M1_LOCK_P').only_on('FM5', 'FM2', 'INPUT', 'OUTPUT', 'DECIMATION', 'LIMIT')
        ezca.get_LIGOFilter('SUS-SR2_M1_LOCK_Y').only_on('FM5', 'FM2', 'INPUT', 'OUTPUT', 'DECIMATION', 'LIMIT')
 - the SDF says 
                                safe.snap value         current value       difference
     H1:SUS-PR2_M1_LOCK_P     IN,F3,F5,F8,LT,OT,DC      F2,F5,OT,DC         F2,F3    
     H1:SUS-PR2_M1_LOCK_Y     IN,F3,F5,F8,LT,OT,DC      F2,F5,OT,DC         F2,F3    
 - AND the INPUT and FM8 are unmonitored.

So, I did the same actions:
 - briefly
    - monitored everything in these filter modules
    - set the filter module in the way that ISC_DRMI wants it (again because things were currently set how ALIGN_IFO wants it, and that's abnormal)
 - accepted the diffs
 - unmonitored everything the guardians touch: the input, FM2, FM3, FM5, and FM8 (I left the limiter, the output, and the decimation monitored, since both guardians want these switches ON.)
 - and unmonitored the M3 LOCK output switches, 
    SUS-SR2_M3_LOCK_OUTSW_P
    SUS-SR2_M3_LOCK_OUTSW_Y
     

(5) We are leaving several suspensions with some residual DIFFs in place for now: SUS_ETMX, SUS_ETMY, SUS_BS, SUS_PRM, SUS_SRM. These are globally controlled suspensions, and the channels in question are *almost* certainly controlled by guardian, but we'll tackle them next week.
Comments related to this report
jeffrey.kissel@LIGO.ORG - 13:13, Tuesday 07 January 2020 (54347)
I found the following command written by Dave in August 2019 (and remembered by Jenne today) to peruse the paths of SDF files very useful:
    /ligo/cds/userscripts/sdf_files_report 

Here's an example usage for the suspensions, to show what suspensions use what files: 
$ sdf_files_report | grep sus
          model_name: | safe        | down        | OBSERVE    

             h1susbs: | ->down      | 10-Dec-2019 | 25-Jul-2019
           h1susetmx: | ->down      | 07-Jan-2020 | 06-Jan-2020
         h1susetmxpi: | 25-Jun-2019 | none        | 26-Jun-2019
           h1susetmy: | ->down      | 07-Jan-2020 | 06-Jan-2020
         h1susetmypi: | 06-Aug-2019 | none        | 01-Nov-2019
           h1sushtts: | 13-Jun-2019 | none        | ->safe     
             h1susim: | ->OBSERVE   | none        | 26-Dec-2019
          h1susitmpi: | 08-Jan-2019 | none        | 16-Mar-2019
           h1susitmx: | ->down      | 10-Sep-2019 | 26-Nov-2019
           h1susitmy: | ->down      | 10-Sep-2019 | 26-Nov-2019
            h1susmc1: | ->OBSERVE   | none        | 07-Jan-2020
            h1susmc2: | ->down      | 17-Sep-2019 | 30-Sep-2019
            h1susmc3: | ->OBSERVE   | none        | 07-Jan-2020
            h1susomc: | ->OBSERVE   | none        | 10-Sep-2019
            h1susopo: | 20-Dec-2019 | none        | ->safe     
            h1suspr2: | ->down      | 07-Jan-2020 | 03-Sep-2019
            h1suspr3: | ->down      | 17-Sep-2019 | 05-Jun-2019
            h1susprm: | ->down      | 29-Oct-2019 | 17-Sep-2019
           h1susproc: | 30-Apr-2019 | none        | 16-Mar-2019
         h1susprocpi: | 03-Jul-2019 | none        | ->safe     
            h1sussr2: | ->OBSERVE   | 07-Feb-2018 | 07-Jan-2020
            h1sussr3: | ->OBSERVE   | none        | 01-Nov-2019
            h1sussrm: | ->down      | 10-Dec-2019 | 01-Nov-2019
           h1sustmsx: | ->OBSERVE   | none        | 07-Jan-2020
           h1sustmsy: | ->OBSERVE   | none        | 07-Jan-2020

The arrow "->" indicates that the file in that column points to another column's file.
The date in a given column indicates when that file was last changed.
E.g. h1sussr2's safe.snap points to the OBSERVE.snap, and the OBSERVE.snap was last changed on 07-Jan-2019, i.e. today, because of the reconciliation work I did above.

We should use this function to make the SUS obey a consistent ethos. I can immediately think of two example ethos:
   (1) that SUS touched by global control guardians (ISC_LOCK, ISC_DRMI, ALS_XARM, ALS_YARM, ALS_DIFF, ALS_COMM, SQZ_MANAGER, VIOLIN_DAMPING, IMC_LOCK, OMC_LOCK) should have a "down" file, separate from an "OBSERVE" file and the remaining SUS should only have an OBSERVE (i.e. the safe and/or down link to the OBSERVE).
or
   (2) that we should carefully track (and unmonitor) what parts of the SUS are touched by global control guardians, and all SUS should have only one (an OBSERVE) snap file.

There are other options I'm sure -- which is why the SUS continues to be a confusing battle ground of all options, and people reconciling have differing opinions between them and even from (day-to-day with themselves!). 

BUT -- this tool helps a lot! Thanks Dave!

Original mention -- LHO aLOG 50963.
Displaying report 1-1 of 1.