Dec. 4 2019 State: Observing at 114 MPC Summary: Remained locked entire shift. Dropped out of observing twice. First time due to SEI_CONF guardian error. Second time I was out of the room fixing dinner and did not see the cause. Log: 02:24 UTC Set SEI_CONF to EARTH_QUAKE for 5.6 mag earthquake in Japan. The SEI_CONF guardian reported a user code error and took us out of observing. 02:36 UTC Requested WINDY. Error remained. Hit LOAD. Still remained. 02:40 UTC Tried LOAD again. Still remained. 02:43 UTC Left a message on Jim's cellphone 02:56 UTC Fixed, back to observing (see alog 53691) 05:50 UTC Came back from fixing dinner and found IFO out of observing mode. Not sure of the cause. Put back in observing.
Out of observing for a period addressing an error with the SEI_CONF guardian (see alog 53691). No other issues.
02:24 UTC Set SEI_CONF to EARTH_QUAKE for 5.6 mag earthquake in Japan. The SEI_CONF guardian reported a user code error (see attached). I do not know if it transitioned.
The error does not go away when I request to go back to WINDY or reload the code. I am unable to go back to observing while it persists. I have left a message on Jim's cell phone and am looking at the code.
02:56 UTC Fixed, back to observing. I found the relevant code in /opt/rtcds/userapps/release/isi/h1/guardian/sei_config/manager.py. I ran an svn diff on it and found uncommitted changes that looked like they could be causing the problem. I copied manager.py to manager.py.backup and ran svn revert on manager.py. I then reloaded the code from the guardian screen. The error went away and I was able to go back to observing.
[Keita, Jenne]
Keita wondered if we could make things such that operators don't have to take the IFO out of Observe to damp violin modes. The restriction right now is that our violin damping guardian is written such that it will overwrite any gain changes you try to make, when it is in its nominal state. So, in order to change damping settings, you must take the violin damping guardian out of its nominal state, which then pops the IFO out of Observe.
A situation where we see this is that if the guardian determines that a mode is more than an order of magnitude larger than the value it had when we first enter the nominal state, it will write a zero to the damping gain forever more. We fixed this case (we think) by having a copy of the mode amplitude that is reset to the new (higher) value if the guardian needs to set the gain to zero. The idea was that the guardian would then leave the gain alone, and a human could try damping the mode. So far, that doesn't actually work, in that the guardian then thinks the mode is okay for damping, and starts to damp the mode. So, humans still can't enter different gain values (including to set the gain to zero temporarily in order to allow a filter change). But, modes that have historically been left undamped even though they're not actually growing are now being damped. So, hopefully we'll have more of our violin modes damped than have been damped in the past.
More logic needs to go into the guardian however, in order to allow humans to enter gain values.
[Jenne, TJ, Camilla, Patrick]
We've made some more modifications to the violin damping guardian, this time successfully making it so that a person can change the damping gain values while we are still in the nominal Damping_on_DC state, so that we can stay in Observe while damping violing modes.
Note from the weekend that these 1kHz modes on ETMY that are rung up don't seem to have been made worse by the new logic from last week, but this change will enable operators to work on trying to damp them without taking us out of observing.
The logic from last week was modifying the reference amplitude, and then checking against this updated value to see if the mode was ringing up. If a mode was ringing up according to the most recent reference value, the damping gain would be set to zero. But, since the reference value kept getting updated, there was a risk that modes would never get turned off when they needed to be. So, now the guardian will update the reference values twice, but then will stop updating the reference value and so will leave the damping gain at zero. This allows some modes to continue getting damping, in the case where they are a bit higher after lock than when we initially acquire, but for which their damping settings do work well. But, if they have damping settings that do not work well they should have their gains set to zero.
The new logic that was added today was to allow the guardian to determine if a human is trying to change the damping gain.
So far, things seem to be working; TJ, Camilla, and Patrick are working on damping the EY modes that are high right now, and we're in Observing!
Yesterday, I was finally able to plug in all the thermocouples on both BRSs. The new beckhoff modules gave us 4 more temperature sensors. I think I successfully put them all in the same spots for each box. I was running out of time during the maintenance window, so I didn't get pictures. But for each box the 4 new sensors and locations are:
H1:ISI-GND_BRS_ETMX/Y_HEATTEMPL -> This should be directly under the hot pad, next to where the power attaches to the pad, on top of the heat spreader plate.
H1:ISI-GND_BRS_ETMX/Y_HEATTEMPR -> This is on the heat spreader, but a couple inches away from the hot pad
H1:ISI-GND_BRS_ETMX/Y_HEATTEMPFLOOR -> This is on top of the insulation on top of the hot pad, the thermocouple is sticking up in the air as a witness for the local ambient air temp. I didn't pick these names.
H1:ISI-GND_BRS_ETMX/Y_HEATTEMPBOTT -> This is inside the box near the top of the BRS. I used the foil covering the BRS to hang it in the air.
The other temperature sensors that already existed and are taped to the BRS baseplate are called H1:ISI-GND_BRS_ETMX_TEMPL and H1:ISI-GND_BRS_ETMY_TEMPR. These have been in since install of each BRS.
The calibration for most of these sensors is .1 cts/degC. The H1:ISI-GND_BRS_ETMY_TEMPR looks to be a different sensor, it seems to have better resolution and the calibration is .01 cts/degC
Dec. 4 2019 Observing at 113 MPc. No issues.
TITLE: 12/04 Day Shift 16:00 – 00:00 (00:08-16:00), all times posted in UTC
STATE of H1: Observing
INCOMING OPERATOR: Patrick
SHIFT SUMMARY: Superevent candidate in the morning, minor EQ in the middle of the day. Calibration went from 1:00-3:41, back to Observing now.
LOG:
16:34 (08:34) Vanessa to MX
17:15 (09:15) Superevent S191204r
20:24 (12:24) Going to EQ mode for first wave of 5.9 EQ near New Caledonia
20:38 (12:38) Returning to WINDY
20:56 (12:56) Going to EQ mode for SEISMON-predicted EQ arrival
21:00 (13:00) Dropping out of Observing for calibration
21:16 (13:16) Returning to WINDY
23:20 (15:20) Timesh to EX -- turn off NCAL electronics
23:41 (15:41) Timesh leaving EX
23:41 (15:41) Calibration complete, going into Observing
23:53 (15:53) Travis to Optics Lab
23:59 (15:59) Travis out of Optics Lab
V. Bossilkov, S. Karki, J. Kissel, T. Mistry
We've gathered an entire set of calibration measurements today (Full Actuation and Sensing Function Suite), as well as gathering several bonus measurements, exploring
- the high frequency dynamics of the UIM (now that we've identified that they are indeed important)
- a "sweep" of the NCAL system, to see how the NCAL excitation looks as a function of frequency
- whether the L2A2L coupling is non-linear
This'll be days work of analysis work, so stay tuned for future results.
For now, here're the templates for the standard measurements, I'll leave it to Timesh, Vlad, and Sudarshan to log there files.
Sensing Function:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O3/H1/Measurements/FullIFOSensingTFs
2019-12-04_H1_DARM_OLGTF_LF_SS_5to1100Hz_15min.xml
2019-12-04_H1_PCALX2DARMTF_LF_SS_5t1100Hz_10min.xml
2019-12-04_H1_PCALY2DARMTF_LF_SS_5t1100Hz_10min.xml
2019-12-04_H1_PCALX2DARMTF_BB_3min.xml
2019-12-04_H1_PCALY2DARMTF_BB_3min.xml
Actuation Function:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O3/H1/Measurements/FullIFOActuationTFs/
2019-12-04_H1SUSETMX_L1_iEXC2DARM_8min.xml
2019-12-04_H1SUSETMX_L1_PCAL2DARM_5min.xml
2019-12-04_H1SUSETMX_L2_iEXC2DARM_12min.xml
2019-12-04_H1SUSETMX_L2_PCAL2DARM_6min.xml
2019-12-04_H1SUSETMX_L3_iEXC2DARM_12min.xml
2019-12-04_H1SUSETMX_L3_PCAL2DARM_6min.xml
#ThesisWork!
Vlad:
Measured an extra swept sine of the UIM to DARM dynamics, and Pcal-Y to DARM, to aid in filling in gaps in the transfer function of the UIM dynamics between 200 and 1000 Hz.
The data has been committed to the CalSVN here: /ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/O3/H1/Measurements/FullIFOSensingTFs/
2019-12-04_H1SUSETMX_L1_iEXC2DARM_HFDynamicsTest_200-1000Hz_A_PCALYRX_B_DARMIN1_SweepSine_coh.txt 2019-12-04_H1SUSETMX_L1_iEXC2DARM_HFDynamicsTest_200-1000Hz_A_PCALYRX_B_DARMIN1_SweepSine_tf.txt 2019-12-04_H1SUSETMX_L1_iEXC2DARM_HFDynamicsTest_200-1000Hz_SweptSine.xml 2019-12-04_H1SUSETMX_L1_PCAL2DARM_HFDynamicsTest_200-1000Hz_A_PCALYRX_B_DARMIN1_SweepSine_coh.txt 2019-12-04_H1SUSETMX_L1_PCAL2DARM_HFDynamicsTest_200-1000Hz_A_PCALYRX_B_DARMIN1_SweepSine_tf.txt 2019-12-04_H1SUSETMX_L1_PCAL2DARM_HFDynamicsTest_200-1000Hz_SweptSine.xml
Due to misconfiguration of the sweep, I have slightly driven the violin modes despite trying to deliberately not sweep through them.
The intention is to complete making the UIM dynamics transfer function as and independent filter that can be applied in both foton and pyDARM in the near future.
We made some A2A and A2L to DARM transfer function measurements, few weeks ago, using broadband excitations and noticed some phase mismatch between the measurement and the model (LHO alog #53627). In order to make sure the phase mismatch was not due to some non-linear coupling due to the high coherence excitations, we made additional measurements using sinusoidal exciations with few different amplitudes. Initial observation shows that the phase mismatch still exists but will post more detail information (with plots) soon.
NCAL Measurements:
During the calibration measurements, I use the NCAL to take a sensing sweep. Using the PCALX frequency sweep points as a template and calulated the spin frequency required to spin the NCAL such that the 2F signal is as close to the PCALX frequency as possible.
First, I took an OLG measuement using frequency sweep points equal to that of the expected NCAL 2F and 3F signals:
After the OLG sweep was completed, from the control room, the NCAL was spun at the given NCAL counts given in the table below. At least 120 seconds of intergration time was allowed in order to ensure sufficient SNR.
Once the NCAL sweep was completed, a PCALX and PCAL Y to DARM dtt template with the following drive counts and frequencies was run with the following PCAL counts drive and frequencies:
The NCAL electronics has been laid to rest:
Times given below are approximatly the time the task was done.
1259537718 (4 Dec 2019 23:35 UTC ) -> Unplugged AC power, ethernet and DC power from NCAL Beckhoff Motor Controller
1259537838 (4 Dec 2019 23:37 UTC ) -> Unplugged BNC cable from EE mid bay chassis
1259537958 (4 Dec 2019 23:39 UTC ) -> Unplugged ethernet from NCAL Beckhoff PC
Summary
I have added the NCAL measurement to the CALSVN at revision number 8883. These files have been extracted and have been extracted in a way that should enable pyDARM to read in the files and produce a sensing function result for NCAL. Some modifications will be required to fold in the DARM OLG, PCALX, PCAY and NCAL sweeps.
Files added:
SVNDIR = /ligo/svncommon/CalSVN/aligocalibration/trunk/Projects/NewtonianCalibrator/measurements
^/20191204-SensingMeasurements
^/20191204-SensingMeasurements/2019-12-04_H1_DARM_OLGTF_NCAL_5-30Hz_A_DARMIN2_B_DARMEXC_COH.txt
^/20191204-SensingMeasurements/2019-12-04_H1_DARM_OLGTF_NCAL_5-30Hz_A_DARMIN2_B_DARMEXC_TF.txt
^/20191204-SensingMeasurements/2019-12-04_H1_DARM_OLGTF_NCAL_5-30Hz_A_DARMIN2_B_DARMIN1_COH.txt
^/20191204-SensingMeasurements/2019-12-04_H1_DARM_OLGTF_NCAL_5-30Hz_A_DARMIN2_B_DARMIN1_TF.txt
^/20191204-SensingMeasurements/2019-12-04_H1_DARM_OLG_NCAL_5-30Hz.xml
^/20191204-SensingMeasurements/2019-12-04_H1_PCALX2DARMTF_NCAL_5-30Hz_A_PCALXRX_B_DARMIN1_COH.txt
^/20191204-SensingMeasurements/2019-12-04_H1_PCALX2DARMTF_NCAL_5-30Hz_A_PCALXRX_B_DARMIN1_TF.txt
^/20191204-SensingMeasurements/2019-12-04_H1_PCALX2DARMTF_NCAL_5-30Hz_A_PCALXRX_B_DELTALEXT_COH.txt
^/20191204-SensingMeasurements/2019-12-04_H1_PCALX2DARMTF_NCAL_5-30Hz_A_PCALXRX_B_DELTALEXT_TF.txt
^/20191204-SensingMeasurements/2019-12-04_H1_PCALX2DARM_NCAL_5-30Hz.xml
^/20191204-SensingMeasurements/2019-12-04_H1_PCALY2DARMTF_NCAL_5-30Hz_A_PCALYRX_B_DARMIN1_COH.txt
^/20191204-SensingMeasurements/2019-12-04_H1_PCALY2DARMTF_NCAL_5-30Hz_A_PCALYRX_B_DARMIN1_TF.txt
^/20191204-SensingMeasurements/2019-12-04_H1_PCALY2DARMTF_NCAL_5-30Hz_A_PCALYRX_B_DELTALEXT_COH.txt
^/20191204-SensingMeasurements/2019-12-04_H1_PCALY2DARMTF_NCAL_5-30Hz_A_PCALYRX_B_DELTALEXT_TF.txt
^/20191204-SensingMeasurements/2019-12-04_H1_PCALY2DARM_NCAL_5-30Hz.xml
^/20191204-SensingMeasurements/NCAL_OLG_points.txt
^/20191204-SensingMeasurements/PCAL_NCAL_Sweep.txt
The systematic error in h(f) during the time of this measurements is discussed in LHO aLOG 57887.
while H1 was out of OBSERVE:
added 500ml to the Diode chiller
Ops Shift Transition: 12/04/2019, Day Shift 16:00–00:00 (08:00-16:00) - UTC (PT)
State of H1: Locked
Intent Bit: Observing
Weather: 0-5 mph wind
Primary 0.03 – 0.1Hz: 0.01 um/s
Secondary 0.1 – 0.3Hz: 0.4 um/s
Outgoing Operator: Jeff
Quick Summary: Locked and Observing under 9 hours
07:21 UTC
I was getting suspicious that the adjustment of the rotation stage at the end of each step in power might be leading to lock losses, so I commented out rsp.rs_bootstrap_power('PSL', power) in the LASER_PWR guardian and reloaded it. The next attempt at locking succeeded, although we are only at 36.6 W. I hope this doesn't mess with the calibration?
I reverted the SDF differences in the attached screenshot. I suspect they are from the INCREASE_FLASHES state?
I'd agree the SDF diffs are from INCREASE_FLASHES. The state just saves the TEST offset values and then puts them back in when it's done, so I'm surprised that the values it put back in seem rounded from the originals. I'll look into it.
What was happening that made you think that the bootstrapping was the issue?
First round last week can be seen in alog53499
Today I tried the Increase_Flashes state on the Y arm. I pushed it out a few urads in both pitch and yaw until we were only getting flashes to around 0.3, and then waited to see if the state could recover an alignment that was good enough for the WFS to catch it. After it had adjusted both P & Y, it was able to get to an alignment that was giving flashes >0.9. This is the threshold set for this arm, so once it found flashes that were this high, it stopped trying to find a better alignment. I changed it so ISC_LOCK will ask it to run a second time if it cannot lock for some time after the first try. For this case, a second try was quickly helpful.
I didn't have time to add the TMS into the code. This is for anther time.
Operators: The ops intervention sheet was been temporarily updated, asking to allow this code to try for 2 attempts. If there are any problems, you can maneuver around this state and align by hand, or give me a call.
Is this supposed to run automatically at LOCKING_ARMS_GREEN? I had to manually request it.
After a waiting period it will run automatically. I think its 5min? Perhaps too long, but I was keeping consistent with the intervention sheet.
At 05:11 UTC the IFO dropped out of observing when the LASER_PWR guardian node went into error. At the same time the centroid calculations for at least two of the digital video cameras froze (see attached) and the EDCU lost connection to ~357 PSL channels. The following is from the log of the LASER_PWR guardian. 2019-11-30_05:11:19.568166Z CA.Client.Exception............................................... 2019-11-30_05:11:19.568166Z Warning: "Virtual circuit unresponsive" 2019-11-30_05:11:19.568166Z Context: "h1pslctrl0.cds.ligo-wa.caltech.edu:5064" 2019-11-30_05:11:19.568166Z Source File: ../tcpiiu.cpp line 947 2019-11-30_05:11:19.568166Z Current Time: Fri Nov 29 2019 21:11:19.567809882 2019-11-30_05:11:19.568166Z .................................................................. 2019-11-30_05:11:19.580550Z LASER_PWR [POWER_38W.run] USERMSG 0: CONNECTION ERRORS. see SPM DIFFS for dead channels 2019-11-30_05:11:19.648744Z LASER_PWR EZCA CONNECTION ERROR. attempting to reestablish... 2019-11-30_05:11:19.649386Z LASER_PWR CERROR: State method raised an EzcaConnectionError exception. 2019-11-30_05:11:19.649386Z LASER_PWR CERROR: Current state method will be rerun until the connection error clears. 2019-11-30_05:11:19.649386Z LASER_PWR CERROR: If CERROR does not clear, try setting OP:STOP to kill worker, followed by OP:EXEC to resume. 2019-11-30_05:16:48.637175Z Unexpected problem with CA circuit to server "h1pslctrl0.cds.ligo-wa.caltech.edu:5064" was "Connection reset by peer" - disconnecting 2019-11-30_05:16:48.637662Z CA.Client.Exception............................................... 2019-11-30_05:16:48.637662Z Warning: "Virtual circuit disconnect" 2019-11-30_05:16:48.637662Z Context: "h1pslctrl0.cds.ligo-wa.caltech.edu:5064" 2019-11-30_05:16:48.637662Z Source File: ../cac.cpp line 1223 2019-11-30_05:16:48.637662Z Current Time: Fri Nov 29 2019 21:16:48.637156550 2019-11-30_05:16:48.637662Z .................................................................. 2019-11-30_05:16:53.643095Z LASER_PWR connections reestablished
Opened FRS13893
Outage from 05:10:42 UTC to 05:16:38 UTC (21:10 - 21:16 PST).
Evidence is now very strong that this was a freeze up of the Cisco network switch in the CER. This switch serves the PSL Diode Room (Beckhoff computer), the PSL LVEA enclosure Axis cameras and all the digital video cameras. All three systems exhibited a network error between 21:10 and 21:16. The digital video centroids are not directly trended by the DAQ, but some are copied to the end station and the received data shows the freeze (see plot).
Keita, Patrick, Dave:
What to do if this happens again and does not come back after 6 minutes.
The big question is if this were to happen again, with the PSL network down, H1 locked out of OBSERVE and the network not quickly coming back. Keita has agreed that we can make a guardian execption to remove the PSL Diode IOC from the OBSERVE veto and clear any associated SDFs. Patrick is looking at the code to see how that can be achieved. This will only be used it the network is down for at least 30 mins.
In the case of another network outage lasting more than 10 minutes I would like the operator to:
1) try to ping the switch (ping sw-lvea-aux) to see if it is running.
2) go into the CER and take a photograph of the switch, seeing if its error LEDs are lit. The switch is the Cisco with the WAP ethernet port. Only do this if it can be done safely (e.g. using LLO ops for budy).
I think we would need to add "LASER_PWR" to the EXCLUDE_NODES list in /opt/rtcds/userapps/release/sys/h1/guardian/IFO_NODE_LIST.py and reload the IFO node. The IFO node can be accessed from the 'GRD IFO' button at the very top left of the GUARD_OVERVIEW medm screen.
If the LASER_PWR node is in error, then ISC_LOCK will not have its OKAY channel as True since ISC_LOCK manages LASER_PWR. I don't think that then placing ISC_LOCK on the exclude list is a good idea.