Summary:
By introducing a fudge factor of 3.6 degrees in phase to one of the values from the model (EP1), we now get the time varying calibration parameters close to their nominal values. This basically sets the values of these parameters to their nominal value at the time of calibration.
Details:
Last week, I reported that some of our time varying parameters ( described in DCC T1500377) were off from their nominal values and in particular kappa_tst was off by a factor of 2 and had a wrong sign as well (alog 21326).
Darkhan found this discrepancy was due to the phase of actuation coefficient of x_tst (ESD calibration line) being off by 137 degrees, which was reported in alog 21391. He also corrected for this phase by introducing a fudge factor in H1:CAL-CS_TDEP_REF_INVA_CLGRATIO_TST_(REAL|IMAG) referred as EP1. This variable is basically the value of ESD actuation at time t = t0 (time of calibration) . After correcting for this phase , we got our kappa_tst very close to 1 but real part of kappa_pu was still off by about 7% and imaginary part of kappa_tst was about 0.05 (nominal value 0).
On further investigation today, I found if we change the phase of EP1 by about 3.6 degrees (EP1 = oldEP1*exp(-1i*pi/180*3.6), the real part of kappa_pu, kappa_tst and kappa_A will be close to 1 and their imaginary part close to zero, which is what we expect. This shows that there is discrepancy between the values produced by the model to the values obtained from this calculation. We still need to understand why this is different.
Plots:
Attached plots shows different parameters, after applying the correction. The green stretch in each plot is 5 hours of data right after the measurement (DARM sweep and Pcal sweep) used towards calibartion was taken. The values at this point should be nominal for all the parameters. Plot 1 is the real part of kappa_tst, kappa_pu and kappa_A. All these values are close to 1 at the time of calibration. Similarly, in plot 2 the imaginary parts of kappa_tst, kappa_pu and kappa_A are only few percent off from their nominal values of 0. Plot 3 shows the change in optical gain (kappa_C) and the Cavity pole. Kappa_C is close to 1 at the time of calibration and varies from one lock stretch to the other. Cavity pole is close (may be) to its reported value of 331 Hz (alog 21221) at the time of calibration and has evolved over time.
The script used for this calculation is committed to the svn:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Projects/PhotonCalibrator/drafts_tests/ER8_Data_Analysis/Scripts/plotCalparameterFromSLMData.m
TITLE: 9/13 EVE Shift: 23:00-7:00UTC (16:00-0:00PDT), all times posted in UTC
STATE OF H1: Continues to be down since earthquakes from just after midnight.
OUTGOING OPERATOR: Jim
SUPPORT: Arrived to a fairly full Control Room on a Sunday (Jenne, Sheila, Evan, Stefan, Jeff K, Greg, Sudarshan).
QUICK SUMMARY: Ops Overview & O1 CDS Overview look nominal. (SDF has lots of RED, but since they'be been getting past DRMI a few times, assume we are OK according to SDF [had thought of going back to safe.snaps, but held off on that]). Will continue troubleshooting.
UPDATE: H1 BACK! Jim was still here on-site, so he gets a cookie for his work (along with Jenne [who was here all DAY shift], Sheila, et.al]).
Sounds like they restored IMs to pre-Earthquake/Cheryl alignment values & then did a careful Initial Alignment with Sheila watching them as they went.
Right now we are on our way to recovery: Addressing SR3 cage servo, SDF diffs, etc. Currently hovering at about 70Mpc for the last 45mins. We are listed as "NOT OK" due to current SDF Diffs.
Double Coincidence Status: Just chatted with Joe H at LLO. L1 is up, but they are OUT of OBSERVATION Mode for Anamaria/Robert PEM (magnetic/acoustic) injections. Checked for H1 requests here and Evan may take an hour for a measurement.
We will coordinate with each other as to when to get back to OBSERVATION Mode.
Title: 9/13 Day Shift: 17:00-23:00UTC
State of H1: Trying to lock
Support: Jenne came in early, Sheila later
Shift Summary: Bad shift. Spent most of it changing alignments, resetting alignments, watching futile atttempts to catch DRMI.
Activity Log:
I came in and helped Cheryl reset HAM5 ISI, which is difficult, you have to reset the watchdog and the rogue excitation watchdog. Reisolating will probably require putting GS13s in low gain as well.
Otherwise I spent it redoing alignments, and didn't get around to keeping a log, but Jenne and I were the only ones doing anything on the IFO, mostly.
While looking into some of the problems Jim was having today, I found an error in the ISC_DRMI guardian. The clearing of history was reworked a few weeks ago to use fast ezcas, but the order of things became incorrect, (gains were zeroed, histories reset, then inputs turned off. This means that the integrators in the top stage were cleared and then reaquired some history before the input was turned off.)
Now this is fixed, so inputs are turned off, gains are zeroed, then history is cleared.
This was causing DRMI to sometimes be misaligned if PRMI was locked first, the lock was dropped, and we attempted to relock DRMI.
It's been a rough shift so far. Cheryl dealt with earthquakes tripping everything, HAM5 is still annoying to reset. Jenne is here and has struggled with me through initial alignment, and now DRMI has been difficult. For some reason SRM just tripped and took the HAM5 ISI down with it. HAM 5 also shows setpoint differences, insisting the masterswitch should be off while the ISI is isolated. This will probably prevent us from going to Observe. Progress is slow and now the wind is picking up...
I hadn't realized that Dave and Jim B were already on the case for getting the CW injections to work again. Dave emailed today: "Jim and myself have been installing Keith’s LLO modifications to get monit to autostart the psinject process. We are not quite there for the autostart, but we were able to run psinject manually as user hinj. I’ll take a look at why your manual start yesterday did not work. Once we have psinject running under monit, we’ll do the same for tinj." I added some debugging lines to the x_exec_psinject_from_script script to hopefully help track this down. It's clear that there is a difference in environment variables when trying to start psinject from the start_psinject script versus just executing psinject in an interactive session. You can compare, for instance, the file Details/log/x_exec_psinject_from_script.log against Details/log/interactive.log, and there are substantial differences, such as: [hinj@h1hwinj1 Details]$ diff log/interactive.log log/x_exec_psinject_from_script.log ... 7c9,10 < APPSROOT=/ligo/apps/sl6 --- > APPSROOT=/ligo/apps/linux-x86_64 > ASC=H1:ASC 11a15 > CDSDIR=/ligo/cds/lho/h1 ... 27c33,34 < EPICS_BASE=/ligo/apps/sl6/epics-3.14.12.2_long/base --- > EPICS_BASE=/ligo/apps/linux-x86_64/epics/base > EPICSBIN=/ligo/apps/linux-x86_64/epics/base/bin/linux-x86_64:/ligo/apps/linux-x86_64/epics/extensions/bin/linux-x86_64 ... Evidently, when executed from within the script, the environment is simply not set up properly to allow psinject to run -- e.g., libCore.so is not being found. I'll let Dave and Jim take it from here.
ER8 Day 27. No restarts reported.
IFO has not returned to locking after the big earthquakes 7 hours ago.
I've called Jenne Driggers and we did as much as was possible over the phone. She'll be in this morning to help and then do measurements.
I've been working to relock the IFO since 4 earthquakes in Mexico.
- restore HEPI and ISI, and HAM5 and ETMX are not yet back to full nominal state.
- green is locking in the arms, red is not
- I aligned IM1, IM2, IM3, and IM4 to eliminate their alignment as an issue for locking red, and those diffs will probably show up and can be accepted
- the AS_AIR camera was fixed when Jim fixed HAM5 ISI
- ETMX HEPI and ISI Guardian was unhappy, but the isolation was OK, so this was not an issue for locking red
- with AS_AIR back on the camera, the alignment of the red for x arm looks not too bad, and is popping to 0.6+
Jim and Jenne are here for day shift
Since I set up a schedule of burst hardware injections last night, three of the scheduled injection times have passed. The first one, at GPS 1126160499 (injection start at 1126160499, actual burst signal centered at 1126160500), should have been executed at H1 (not at L1 since it was down at the time), but didn't work. The tinjburst.log file says: "1126160499.000000 hwinj_1126160499_2_ 1.00e+00 Compromised". (It says that five times, because tinj retries a few times if it initially fails.) The more verbose tinj.log says: Injection imminent in ~297s... 1126160499 2 1 hwinj_1126160499_2_ GRB alert at 1126151534: injection allowed. Detector locked. Intent bit is on. calling awgstream... awgstream H1:CAL-INJ_TRANSIENT_EXC 16384.000000 ../config/Burst/Waveform/hwinj_1126160499_2_H1.txt 1.000000 1126160499.000000 awgstream failure: injection compromised! That's strange... Maybe it has to do with environment variables. I seem to be able to run awgstream fine from the command line in an interactive session, with this zero-amplitude test while H1 was down: [hinj@h1hwinj1 tinj]$ awgstream H1:CAL-INJ_TRANSIENT_EXC 16384.000000 ../config/Burst/Waveform/hwinj_1126160499_2_H1.txt 0.0 1126187950.000000 Channel = H1:CAL-INJ_TRANSIENT_EXC File = ../config/Burst/Waveform/hwinj_1126160499_2_H1.txt Scale = 0.000000 Start = 1126187950.000000 The fact that a zero-amplitude injection succeeded rules out a problem with awg. I tried to do another test by adding a zero-amplitude injection to the schedule at GPS 1126191200, but since the detector was not locked, tinj did not even call awgstream, so I didn't learn anything from that. The second and third scheduled injections, at GPS 1126180499 (injection start at 1126180499, actual burst signal centered at 1126180500) and 1126190499, did not occur because the detector was not in observing mode at either time; that's the correct behavior.
I repeated the injection in question (with zero amplitude and an updated injection) using tinj, run from the matlab command line. The injection seemed to proceed normally, with awgstream exiting with status=0. I tried recompiling/restarting tinj to see if that makes a difference. I looked at the injection file to make sure it was not corrupted, but it appears normal: every entry is a number.
State of the IFO:
- recovery from the earthquakes has gone ok
- nothing broken, but SEI at EX not in the correct state, though it's good enough to lock, so will work with JIm to understand the issue and fix it when he comes in at 15:00UTC
Timeline since the earthquake:
9:32UTC - I start relocking and IMC comes back good
10:30UTC - no AS_AIR image on the camera concerns me, but I move on to locking ALS and both arms are good
11:37UTC - I return to ETMX SEI, I wasn't able to get it into the correct state after the earthquake, and now it's a problem, so I get it to Robust_Damped and leave it there.
11:53UTC - ALS is done, and I start on locking red in the X arm - no signal on the qpd at the end station, but I can see it spike when the arm power does, so I know there's light.
I tried to fix the AS_AIR camera, nothing worked, it's a red hering, the loose optic in HAM2 must have shifted again, or soe=mething else not an in-vacuum optic.
Current: 13:34UTC - writing an update and then returning to alignment
We've seen that CBC hardware injections in ER8 have caused ETMY saturations - see this alog for the injection, and my comment about the overflows. These are often called 'ETMY saturations' but what is happening is that the DAC is being driven beyond its maximum range of 2^17 counts. This is occurring much more often now that the driver has much more analog lowpassing. Peter Fritschel wrote this DCC document tabulating the available actuation amplitude before overflowing the DAC, which allows us to check whether a hardware injection of a binary neutron star coalescence would overflow the DAC. The summary is that a BNS hardware injection at a typical SNR would saturate the digital actuation at H1 as soon as it gets into the 500 to 800 Hz range. And a BNS typically goes up to 1.5 kHz. This has nothing to do with the inverse actuation or notches, it's just the limits of how much the digital system can push on the mirrors using the ESD, which has a lot of low-passing to reduce noise. At these frequencies, the DARM loop has almost no feedback so I'm assuming that the injection just moves the mirrors freely. I made a simple fit of Peter's tables, and plotted it along with the amplitude of a BNS signal as a function of frequency. My Python code is attached below and should be well commented. There's no interface, but you can edit the distance or masses in the file. The output plot is also attached. The waveform is from Duncan Brown's thesis, because that's where it's given most clearly in the time domain with the amplitude fully specified. I chose a system with masses 1.4,1.4 Msolar and a distance 120 Mpc and optimal orientation. The waveform, over a short period of time, looks like h(t) = A f^(2/3) cos (2 pi f t) where f is the gravitational wave frequency. Since this is strain, I plot A f^(2/3) times the arm length (4000 meters). I tried to avoid the limit by changing the distance to 180 Mpc, and multiplying Peter's limit by 3.3. He assumed we've got 30,000 counts to work with, but we can manage 100,000 counts if we're lucky. It's still not enough and hits the DAC limit at 800 Hz. As soon as the DAC overflows (hits 2^17 counts), there's a huge glitch produced so the injection becomes pretty much useless. The likely path forward, in the short term, is to push the masses up into the NSBH range, like to make one object 10 solar masses. We also might need to roll off the high frequencies artificially.
As a side note, I think the situation must get worse if we include merger and ringdown, as these go to even higher frequency (the ISCO is really an artificial cut-off, and BNS merger will have signal up to ~3kHz). Do the current CBC injections stop at f_ISCO? If so, why not set the cut-off frequency to avoid saturation instead?
Magnitude 4.9, 55km SSW of Topolobampo, Mexico 2015-09-13 07:40:40 UTC
The seismometer traces are going up again after the first spike from the initial earthquake.
Not yet able to even hold arms in lock in green.
Seismic traces are now off the top of the plot and a number of watchdogs tripped. All optics are now either tripped or in safe mode.
There are now 3 big earthquakes:
Screenshot of ops overview and list of HEPIs/ISIs/Optics that are tripped.
From the time optics started to trip, until the last optic tripped, was a total of 18 seconds.
Five optics tripped at 8:26:26UTC - eight optics tripped at 8:26:44, which could have gone to safe mode, if I could have clicked faster.
I am proposing we add the capability of putting all optics in safe mode with one button, once it's clear an earthquake is going shake enough to trip optics.
TITLE: 9/12 EVE Shift: 23:00-7:00UTC (16:00-0:00PDT), all times posted in UTC
STATE OF H1: Has been fairly steady at 70Mpc with a few glitches & locked for all but 40min of the shift.
SUPPORT: Evan & Jenne were here fairlyl late
DAY'S ACTIVITIES:
Restart CW postponed till tomorrow due to GRB. Will restart Burst Injection "schedule", but it will not be active during GRB stand down time.
I still don't know where the glitches that are correlated with ETMY saturations come from, but I do know why ETMY saturates.
We have many very deep notches in the L3 LSC LOCK filter bank in ETMY. Some of these are as deep as -180 dB! (There are probably others in the LSC-DARM filter bank, but I didn't look there to plot filters). The top half of the first attachment shows all of these notches. (Since I zoomed in and captured references of each notch with many points to see the actual depth, I had to split the filter over 2 plots - sorry).
Later, we have 2 digital filters (for each quadrant) in the ESDOUTF filter banks. These are compensating for the analog "Acquisition" filter, and the analog low pass. Together, they have magnitudes of more than 70 dB above 1 kHz. The bottom half of the first attachment shows the magnitude of these filters together with the nearly-negligible-at-high-frequency filters in the DriveAlign filter bank.
So, we are multiplying our signals by very small numbers, then multiplying them up by very large numbers. This seems like a recipe for badness. I don't actually know if numerical precision is the cause of these problems, but perhaps it is?
The effect of these filters is shown in the second attachment. Note here that brown and green traces on the top and bottom plots are the same data, but with different y-axes for clarity. The pink trace is the MASTER_OUT signal for one quadrant of the ESD, right before it goes to the DAC. The glitch is much larger than the 132k count DAC range, so we are certainly saturating the DAC. The blue trace is the output of the L3 LOCK L filter bank, after the filters shown in the top half of the first attachment. The green trace is that signal, filtered by FMs 3 and 4 of the DRIVEALIGN_L2L filter bank. There is still no obvious glitch. The brown trace is again the output of the Lock L filter bank, filtered by the same DriveAlign filters, and then also filtered by the AntiLP in the ESD output filter bank. Notice that due to the high gain at high frequency of that filter, we clearly see the glitch. DTT is somehow unable to filter a signal by the AntiAcq filter (zpk([152],[3250],1,"n")), so I don't have that included in the brown trace. But, the pink MasterOut trace is the actual signal, after all of the filters.
The third attachment shows the time just before the lockloss around 21:00 12Sept2015, and we can clearly see that this filtering effect is causing the signal out to the DAC to be quite weird. However, since the Lowpass and Acq filters are engaged, the signal actually going to the ESD may be mostly okay. In this plot, the blue trace is the length signal as soon as it gets to the suspension, the red trace is after all of the notch filters, black is the MasterOut after all of the digital filtering, and green is a readback of the analog signal going to the ESD. The glitches are basically impossible to see in any trace other than the MasterOut.
To conclude, maybe we don't really care if the ETMY ESD saturates occasionally, but the reason it does is the huge high gain at high frequency of the digital filters that compensate for the analog acquisition and low pass filters. Note that in ER7 we used the acquisition filter, and so some amoung of high gain at high frequency, but now in ER8 (and O1) we are also using the lowpass, so we need much more high freq high gain in our compensation filters. As Evan pointed out in alog 21315 this is why we're seeing more of these saturations now than we used to.
(Now that I've written all of this out, it all seems very obvious. But, when I was looking at the 3rd attachment (which started this all....), it was not at all obvious to me why the black trace looked so different from the others.)
Josh, Andy, David, Jess
Conclusion: We suspect that the 50Hz glitches in DARM are caused by EX Mains glitches that happen 400+/-70ms earlier (reliably matched) and may(?) couple through EX Seismic.
Throughout September there has been a persitent line of glitches at 50Hz in DARM with a pretty high rate. See the attached glitch-gram from today's summary pages. Based on the one hour plots on the summary pages, the rate of these 50Hz glitches in DARM is about once per minute.
We found (see e.g. the first round here) that these DARM glitches are correlated in time with glitches in EX channels, particularly PEM EX SEIS/ACC*, ISI ETMX ST1 BLND*, and ASC-X_TR*.
It looks like the cause of this may be a big glitch in EX Mains. Wew see the EX and DARM channels are all glitching with a 400+/-70ms delay (averaged five examples followed up by hand) after EX mainsmon. Attached are two examples where we lined up the glitch in EX mainsmon and showed that the glitches in EX seismic and DARM are 400ms later.
Notes:
We would be happy to follow up further leads, but wanted to report what we found so far.
PS. Should you wish to repeat this yourself, attached is a list of these glitches in DARM today (with nice GPS times) and a screenshot of the ldvw settings I used.
Note that the signal in the seismometer is a bit later than the mainsmon glitch, and that the seismometer glitch is narrowband around 50 Hz in contrast to the mainsmon. A guess is that there is a mechanical coupling -- maybe a motor running slow due to it hitting something, or a transformer core pulsing -- which induces the 50 Hz characteristic. Seems like it might be easy to hear. The delay suggests that it could be something a bit away -- maybe a chiller?
The chiller compressor is probably on the order of 100 hp (>100 amps at 480v) and is cycling with a period of ~1hour during most of the day. The period depends on the heat load into the building. During the hot time of day one chiller compressor will continue to run while a second compressor will cycle as needed. In the attached plot the peaks represent the start of the chiller compressor. The valleys represent the shutdown. Times are PDT.
After emails with Robert S and John W we did an extensive search in the "HVE-EX:*" and "H0:FMC-EX*" channels for anything that is switching on or off at the same time as the glitches reported above. John Worden suggested that the instrument air compressor (a ~5hp motor at EX) would switch on and off with about the right period. I attach a plot that shows that the glitches discussed above for EX seismic (left) and DARM (right) are correlated with the compressor turning ON at the bottom of the triangle waveforms.
J. Kissel, for the LHO CAL Team
Spoiler Alert: Kiwamu has updated the sensing side of front-end calibration, and has tuned the CAL-CS model to match a fit to the current optical gain of this lock stretch.
This means the CAL-CS calibration has been updated, and is now complete for O1.
He has analyzed the results, and created the cannonical parameter set for O1. That parameter set is:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/ER8/H1/Scripts/DARMOLGTFs/H1DARMparams_1125963332.m
This should be run with the now canonical model:
/ligo/svncommon/CalSVN/aligocalibration/trunk/Runs/ER8/H1/Scripts/DARMOLGTFs/H1DARMOLGTFmodel_ER8.m
To push things forward while he gets a final super-long integration time comparison between PCAL and the CAL-CS model, we give this parameter set to Maddie such that she can you it to inform the parameters of the high-frequency corrections to the output of the CAL-CS model.
In summary, those corrections are
(1) The precisely known time delays (advances) for the (inverse) sensing and actuation chains
(2) The compensation for the average of the uncompensated, high-frequency poles in the OMC DCPD's readout chain.
%% Details:
Note that, though there are uncompensated, 24e3 [Hz] poles in the ESD response portion of the actuation chain, we have chosen in ER8/O1 to ignore these poles. Preliminary results from craig indicate that we're sitting at ~3 or 4 degrees strain uncertainty at 30 [Hz] (right where the PUM / TST cross-over lies, as expected) and ignoring this pole corresponds to a 0.07 [deg] systematic error, i.e. negligible. So, the above two items should be the only difference between the CAL-CS front-end model (the relative time-delay between the paths, which affects ERR and CTRL crossover, and the uncompensated poles, which means there's a 15 [deg] phase loss at 1 [kHz]).
To obtain these values from code in the SVN, run
[openloop,par] = H1DARMOLGTFmodel_ER8(H1DARMparams_1125963332);
and the values you (Maddie) need(s) are
(1) The precisely known time delays (advances) for the (inverse) sensing and actuation chains:
- Sensing Delay (or Inverse sensing advance): par.t.sensing + par.t.armDelay = 8.9618e-05 [s]
- Actuation Delay: par.t.actuation = 1.4496e-04 [s]
(2) The high-frequency poles in the OMC DCPD's readout chain:
- par.C.uncompensatedomcpoles_Hz = 13700 17800 14570 18525 98650 [Hz]
or you can use the preformulated LTI object,
- par.C.uncompensatedomcdcpd.c
ans =
6.3585e+25
----------------------------------------------------------------
(s+8.608e04) (s+9.155e04) (s+1.118e05) (s+1.164e05) (s+6.198e05)
Stay tuned for aLOGs from Maddie over the next day or so, as she compares the output of the CAL-CS model with the output of the GDS pipeline.
Thanks to everyone for all the hard work!!
M. Wade, J. Kissel
In the above list of for what the GDS pipeline must correct, I've neglected several pieces of both chains -- the anti-aliasing and anti-imaging filters of the sensing and actuation chains, respectively. I've slept a little more, and I repeat the list that is now complete:
In summary, those corrections are
(1) The precisely known time delays (advances) for the (inverse) sensing and actuation chains
(2) The compensation for the average of the uncompensated, high-frequency poles in the OMC DCPD's readout chain.
(3) The digital and analog anti-aliasing filters in the sensing chain
(4) The digital and analog anti-imaging filters in the actuation chain
In more detail,
Actuation:
(1) Actuation Delay
-- par.t.actuation = 1.4496e-04 [s]
(3) The digital and analog anti-imaging filters (now separated, due their export as LTI objects; they cannot be combined (without squeezing on to a frequency vector) because one is a discrete zpk, the other is a continuous)
Digital Anti-Imaging Filter (a.k.a. IOP up-sampling filter)
-- par.A.antiimaging.digital.response.ssd
Analog Anti-Imaging Filter
-- par.A.antiimaging.analog.c
Sensing
(1) Sensing Delay (or Inverse sensing advance):
-- par.t.sensing + par.t.armDelay = 8.9618e-05 [s]
(2) The high-frequency poles in the OMC DCPD's readout chain:
-- par.C.uncompensatedomcpoles_Hz
(4) The digital and analog anti aliasing filter
Digital Anti-Aliasing Filter (a.k.a. IOP down-sampling filter)
-- par.C.antialiasing.digital.response.ssd
Analog Anti- Aliasing Filter
-- par.C.antialiasing.analog.c