Displaying report 1-1 of 1.
Reports until 12:02, Tuesday 07 May 2019
H1 CAL
jeffrey.kissel@LIGO.ORG - posted 12:02, Tuesday 07 May 2019 (49064)
HIGH_FREQ_LINES Gaurdian Code Edited for Bug which had resulted in frequencies changing without enough time in OBSERVE
P. Covas, J. Kissel

After gathering data from the past to obtain the high-frequency values for the response function, that are measured by the roaming PCALX high-frequency calibration line, he found that some frequency points were not injected for as long as they needed to be. He traced the problem down to a corner case of logic in the GRD-HIGH_FREQ_LINES guardian code -- namely that he check for how long the line had been running at a given frequency did not include a check for observation intent. Thus, there were times when the IFO was down for more than 12 hours (most recently, over the weekend, between the observation segment ending at May 04 2019 13:18:04 UTC and the next starting at May 05 2019 05:20:43 UTC, i.e. ~16 hours) and the frequency was errantly changed (in a separate state which was checking whether the IFO was down). 

This morning, we've edited the code to 
    - Create a frequency vector FREQARRAY and "time duration while in observation intent" TIMEARRAY vector as a global variable,
        FREQARRAY = np.array([4001.3, 3501.3, 3001.3, 2501.3, 2001.3, 1501.3, 1001.3]) # In Hz
        TIMEARRAY = np.array([8, 8, 5, 5, 2, 2, 2]) # In hours
      (Note, the previous frequency vector started at 3001.3 Hz in fear of injecting non-linear down conversion [from LHO aLOG 48357 and LHO aLOG 37039], but Pep has confirmed that 4001.3 Hz should still be below the limit at which harmonics begin to appear in the bucket.)
    - In the GETTING_READY state, i.e. "the check for duration at given frequency" state, it now
        - checks that GRD-IFO_INTENT channel == 1, and if so,
        - checks that the (current time - time of last change) is greater than the TIMEARRAY value at that frequency, and if so
        - returns True, allowing he guardian to go to the next state, the CHECK_IFO_STATUS state
    - In the CHECK_IFO_STATUS state, it will only return True if GRD-ISC_LOCK_STATE_N <= 11 -- i.e. once the IFO loses lock and is beneath the (ISC_LOCK gaurdian state of) READY.
    - Once the HIGH_FREQ_LINES gaurdian's CHECK_IFO_STATUS state returns True, then it advances to CHANGE_FREQ, which changes the frequency, and returns GETTING_READY to wait for the next opportunity to change the frequency.


The code has been reloaded, and we've re-run the INIT state, which resets the calibration line frequency to the start of the FREQQARRAY, so H1:CAL-PCALX_PCALOSC1_OSC_FREQ is now at 4001.3 Hz.


Images attached to this report
Displaying report 1-1 of 1.