ETMX OSEM Open Light Values (OLV) remeasured, offsets and gains adjusted:
Main Chain Top
| BOSEM Location | NEW OLV | NEW OFFSET | OLD OFFSET | NEW GAIN | OLD GAIN |
| F1 | 19500 | -9750 | -12009 | 1.538 | 1.249 |
| F2 | 26900 | -13450 | -14727 | 1.115 | 1.019 |
| F3 | 27100 | -10685 | -15330 | 1.107 | 0.978 |
| LF | 21370 | -10950 | -12256 | 1.404 | 1.224 |
| RT | 21900 | -10950 | -12362 | 1.370 | 1.213 |
| SD | 26000 | -13000 | -14259 | 1.154 | 1.052 |
Reaction Chain Top
| BOSEM Location | NEW OLV | NEW OFFSET | OLD OFFSET | NEW GAIN | OLD GAIN |
| F1 | 25500 | -12750 | -14461 | 1.176 | 1.037 |
| F2 | 20430 | -10215 | -11507 | 1.468 | 1.304 |
| F3 | 22870 | -11435 | -12858 | 1.312 | 1.167 |
| LF | 23350 | -11675 | -13331 | 1.285 | 1.125 |
| RT | 20380 | -10190 | -12194 | 1.472 | 1.230 |
| SD | 18810 | -9405 | -10980 | 1.595 | 1.366 |
L1 (UIM)
| BOSEM Location | NEW OLV | NEW OFFSET | OLD OFFSET | NEW GAIN | OLD GAIN |
| UL | 21575 | -10788 | -12133 | 1.390 | 1.236 |
| LL | 22600 | -11300 | -13269 | 1.327 | 1.130 |
| UR | 22575 | -11288 | -12273 | 1.329 | 1.222 |
| LR | 22960 | -11480 | -13130 | 1.307 | 1.142 |
L2 (PUM) TBC...
All values updated in the SDF SAFE file
[Sheila, Jenne]
When Sheila first opened the light pipe, we weren't seeing beam on IMC REFL camera. We went to the table with a card and moved the PZT until we were back on the camera. I had previously set the IMC optics back to the bottom stage OSEM positions from the last IMC lock. This got us flashes. The IMC is now locked, although the alignment is very poor - we'll continue to work on that after the meeting, but should be ready to send beam to HAM 6 this afternoon.
Work, by group:
Work, by building:
Have shutdown dust monitors LVEA #5 and End-Y VEA #2 and removed them from the check_dust_monitors_are_working script. Dust monitors remaining in the check_dust_monitors_are_working script are in use and should be monitored by Ops per the checklist.
TITLE: 05/10 Day Shift: 15:00-23:00 UTC (08:00-16:00 PST), all times posted in UTC
STATE of H1: Planned Engineering
OUTGOING OPERATOR: None
CURRENT ENVIRONMENT:
Wind: 11mph Gusts, 8mph 5min avg
Primary useism: 0.06 μm/s
Secondary useism: 0.13 μm/s
QUICK SUMMARY:
Quiet morning so far. Jeff B rest EX Dust Monitor. Cleaning crew in LVEA.
We iterated between IO_MB_1 and IO_MB_2 without moving EOM as planned. One difference from the plan was that it was my misunderstanding that Cheryl had two irises on the main beam path (there was only one), so we used EOM and iris as our fiducial.
As expected this made ALS path totally misaligned such that it doesn't clear Faraday, that will be adjusted later.
Ooopps! This is potentially a worst case scenario. I made log entry 41922 @ 21:21 hrs. local intended for the Thursday morning 0900 meeting audience thinking that anyone who might potentially energize any of the High Volts had left for the day. I hadn't seen anyone in the Control Room, LVEA or OSB offices for hours. Is this log entry just a late recording of activities from earlier in the day, or, where people in the PSL "chomping at the bit" awaiting the "go ahead" from me confirming that we were on turbo pumping? If so, and if any High Volts had been energized last night after my entry, then we may have risked Paschen arcing!
Regardless, people, I think this situation (or potential situation) is symptomatic of a culture that is developing that is going to "bite" us sooner or later. If I had my druthers, we would slow down the pace a little. In the past, I didn't feel time pressure to make this hand-off to the next interested party. Typically, we would pump with the turbos for a day or more before declaring it okay to resume IFO work.
This was an alog entered well after the work completed. (Cheryl & Keita left the LVEA at ~4:45pmPDT.)
They were working on alignment in the H1 PSL Room. The LVEA is Laser SAFE (so the light pipes for the ALS & PSL shutters are CLOSED).
To re-enforce what Corey said, this was work that was done earlier during the day and confined to the PSL enclosure (no beams were sent into the chamber, no high voltage in chamber was used, and no viewport work.)
Before starting this, we measured the power before and after the EOM, which was 17.8mW at the input and 17.9mW at the output. We changed the power up and down while we were working, and attempted to re-measure after the work was finished (9.08mW before the EOM, 9.5mW after). We found that the scattered light from the high power beam dump that is near the EOM was showing up as significant errors in our power measurements, which probably explains why we found EOM transmissions greater than 100%.
I installed the RGA electronics module on the RGA installed @ CP4 and energized its filament in preparation for a preliminary (above ambient temperature) scan tomorrow. I also asked Bubba to restore the VEA temperature setpoint to its pre-CP4 bake value. Following tomorrow's preliminary RGA scan, Ken D. will decouple the duct heaters and control panel while Mark D. and Tyler G. will remove the insulation skirt, aluminum foil wrap and added insulation from the blanketed enclosure.
Gerardo M., Kyle R.
We resumed roughing this morning and switched over to the turbos this evening. For tonight, the Vertex+YBM+XBM combined vacuum volumes are being pumped via the YBM MTP (backed by its QDP80) and the Vertex MTP (backed by its QDP80). All adjacent "dead volumes" such as the space between opened and blanked-off valves were isolated from the roughed Vertex+YBM+XBM at the time of the switch over to Turbo pumping. Tomorrow, we will add the XBM MTP and switch all three MTPs over to be backed by their scroll pumps. We will then shut down the QDP80s at that time.
IFO folks -
Note that Gerardo and I won't be in until after the 0900 meeting tomorrow (Thursday) but no special vacuum-related restrictions are in effect. Sheila's work (PSL laser into HAM6) etc. is A-OK etc....
I changed the temperature at Mid Y to 69 degrees F.
I guess that should have read, I changed the setpoint to 69 degrees F. The temperature at Mid Y is currently 71.5 degrees and dropping.
[TJ, Jamie]
Today we had an instance of one of the guardian nodes (ALIGN_IFO) being killed by systemd because it was taking too long to reload the code, which caused it to go long on it's watchdog check-in. The problem was actually not on loading the code, but on committing the new code to the code git archive.
The guardian code archives live on NFS (/ligo/cds), and for whatever reason access to this resource can be very slow. When access is slow, it can cause guardian to run long on it's systemd watchdog notification, which will cause systemd to kill the process. We ran into this problem yesterday on system boot, where archive access was too slow and many of the nodes weren't able to check in in time and were killed. We resolved the issue yesterday by increasing the startup timeout (systemd property 'TimeoutStartSec=') to 3 minutes, to ride out the massive traffic jam on boot.
Since the issue that TJ ran into today was just for reload during normal operation, it's the main loop watchdog timeout that's the issue, not the startup timeout. I've increased the watchdog timeout to 20 seconds ('WatchdogSec=20s') which should be plenty of time to access the archive on the NFS, without letting us suffer a dead node for too long if something else goes wrong.
We can probably increase the timeout even more if need be, but if it's really taking more than 30 s to access files on the NFS then maybe there's something really wrong with how the NFS is configured...
I discovered that it's also possible for guardian to inform systemd that it needs more time, and to temporarily extend the watchdog timeout. The following would extend the timeout to 20 seconds temporarily:
sd_notify("EXTEND_TIMEOUT_USEC=20000000")
This would allow for giving the code reload + archive more time, while keeping the normal run watchdog timeout tight.
I think having the watchdog timeout be even as long as 30 seconds or so is still probably ok, so we'll stick with that solution for now. I just mention as an alternative.
Today, Travis and I continued alignment of the main and reaction chains of the ETMX QUAD. We watched the OPLEV beams to guide us in pitch and yaw. While there are a few reflections of this oplev beam, we convinced ourselves that we had the one that was from the first (HR) reflection. However, now that it is on the OPLEV diode, the sum is lower than it was when the suspension was last in chamber a couple months ago, so will do a PCAL beam check first thing tomorrow morning, before getting too far ahead of ourselves. All 6 top Main chain BOSEMs were attached and centered around their flags in X,Y,Z directions.
Meanwhile, Fil joined us to perform HIPOT testing right at the connector on the AERM mass. The problematic BIAS and LR pins failed the test, so we will embark on disassembling the connector and reterminating those pins per procedures. TBC...
Conclusion--Driving the HEPIs +- 500micro units suggests no interferences
Details--Jim unlocked the HEPIs for the ITMs yesterday and as we want to be sure of no interferences, the platforms were strokes in X Y RX & RY (X Y & Z should suffice) by 500um/urad.
The ISIs were put into DAMPED as tilting of the platform will trip on the T240s. With the HEPI ISOLATED, offsets were ramped into the isolation filters. With all the cartesian loops closed with large DC gain, interferences impeding motion will be evident in the local sensors as the loops are satisfied. Interferences will be evident with clipping and coordinated slope changes--see 40171.
The four attached plots show the ITMX first with horizontal drives and then vertical drives; ITMY are the third and 4th plots. The lower graph has the 4 local sensors and the upper shows the cartesian position. All traces indicate things are fine with no obvious clipping or slope changes. The horizontal drives on the ITMY show the peaks shifting; I'm not sure what this means if anything...will keep thinking. The positions end up at zero again. Maybe this does indicate an interference as the X drive nears the end of the drive offset but not obvious enough to clearly clip. Maybe this is worth a closer look driving further and trying open loop. Will think and look some more and will report as required.
Drove ITMY to +- 700 micrometers to check for interference and I have to say there is something. The attached is similar to above but this time, for the local sensors in the lower panel, after shifting all signals to zero before the start time, additionally now the absolute value is taken. With this, all the traces should overlay another. Certainly there is no clipping or large slope changes. The wobble seen on the first and fourth peak indicates the H3 negative stroke may be compromised though. This is actually a subtle slope change where that sensor stops moving as much and the others compensate. H3 negative drive is the common factor for reduced displacement during the 1st and 4th peaks. H1 H2 & H3 sensors are all displaced at rest pretty far from zero at ~11000+ counts, nearly half the range. This may be impacting the H3 more than others. It could also be corner3 starts to experience some additional resistance either in the actuator or within the pier but obviously is able to strain the system. Still, plenty of range for operations but I will check it out to maybe find the problem.
FRS 10607
I wanted a quick first guess of new gains to use for the RF locking signals, so that we know roughly where to start when trying to lock DRMI, since the drive levels are slightly different with the new EOM. I'm using Koji's measured values from alog 41435. Note that the drive levels are slightly different now, since the EOM drivers have been moved to outside the PSL enclosure (alog 41852), but they're pretty similar. Our final gains will of course be set by measuring the loops, so this small discrepancy in the first round guess shouldn't really matter.
The amplitude of a PDH signal is proportional to J_0(Gamma)*J_1(Gamma), where J_n() is the Bessel function, and Gamma is the modulation depth in radians (see, for example, P1500001 appendix B for a derivation). The ratio that we will want to apply to the old gains will be:
ratio = ( J_0(Gamma_old) * J_1(Gamma_old) ) / ( J_0(Gamma_new) * J_1(Gamma_new) ).
For the 45 MHz channels (Gamma_old = 0.287, Gamma_new = 0.197), the ratio will be 1.43. For the 9 MHz channels (Gamma_old = 0.187, Gamma_new = 0.210) the ratio will be 0.89.
With the change out of the RF combiner for 45 MHz and 24 MHz (alog 41889), we now have a slighly higher modulation index for the 45 MHz signals. Now Gamma_45MHz is 0.259, rather than 0.197. This new value is much closer to the old EOM / RF driver combination from O2 of 0.287.
This means that the ratio defined in the above entry for 45 MHz is now 1.10.
Summary: The core functionality of the Matlab DARM model has now been replicated in Python. Attached are figures in a single PDF file showing the primary results. By eye, these look reasonable. A more detailed study comparing to the Matlab model is forthcoming. I also replicated a study made for the L1 detector by Joe B. (see LLO aLOG 29622). I propose to call this code pyDARM. Details: I have ported most of the core functionality of the DARM model from Matlab into Python. So far, I have done spot checks by eye to make sure that the results look sensible. I have not yet done a detailed study comparing to the Matlab version, but will do so soon. I have produced plots showing: 1) DARM digital filters 2) Sensing function 3) Actuation function 4) Open loop gain 5) Frequency dependent actuation authority of each stage compared to inverse sensing 6) Ratio of each stage to the overall calibration As can be observed, the scale of each figure appears reasonable (comparing with, e.g., G1700316), the OLG is stable, and with a UGF with the correct value (by eye). The contribution of each suspension stage is closely matching L1's results using the Matlab model (see LLO aLOG 29622). What was done: - Write python version of Matlab functions to parse Foton filter files and to compute IOP downsampling filters from RCG code coefficients - Exported numerical values of zeros, poles, gain, delay from analog AA and AI models (these are objects in .mat files) - Exported ASCII file of the frequency response for the suspension force-to-length for each stage. This is read in and used in the python DARM model, and so far can only be at specific frequency points - DARM filter bank digital filters computed, sensing function and actuation functions are computed from parameters - Intermediary data products can be accessed - Code structure is "flatter", meaning less jumps between different functions/files. Hopefully this makes the code more accessible and readable. Required python modules (so far): scipy (e.g., filters), numpy (e.g., arrays/array math), collections (for namedtuples), matplotlib (for plotting) Quirks found along the way: - You can't directly multiply or add filter objects together in Python (the + and * functions are not overloaded in Python). I had to code up my own version to 1) add filters by using polynomials from roots, computing a transfer function filter, and then converting to a zpk object, all using scipy built-in functions; and 2) multiply filters by appending zeros together, poles together, and multiplying gain. - The scipy sos2zpk() function is not exactly like Matlab's version. I found an extra zero and pole when converting because Matlab removes any zeros in the 3rd and 6th positions of an sos section before computing a filter from the sos coefficients To do list (short term): - More detailed study comparing Python with Matlab models - Read in a config file - Make an L1 model to check for any differences - See if there is a way to read Matlab .mat file and objects therein. This didn't look trivial when I tried at first, which is why the analog AA and AI models were exported as well as the frequency response of each suspension stage - Address how to get the force-to-length transfer function for each stage for arbitrary frequencies - Add computations for GDS / DCS pipelines Longer term: - Hook this into a pipeline from measurement to model to uncertainty estimate pipeline
Attached is an updated figure to include the inverse sensing contribution ratio to the overall calibration. Observe that the inverse sensing has impact on the overall calibration above ~10 Hz.
Evan, this looks great, but I don't see any links to the actual pyDARM code? Can you push that to a git repository somewhere? I would be happy to help with python packaging if needed so that this is trivially distributable.
The IMC is locked with a build up slightly lower than what we had before this vent. On April 26th we had 165 counts on MC2_TRANS_SUM with 2 Watts input, we now have 67 counts with 0.85 Watts of input power. Some of the things that we ran into:
Craig and I re-phased the length demodulator as his comment says, and flipped the sign. We then added 219 degrees to the IMC WFS demod phases. We found that the LSC power normalization was not up to date (probably a consequence of using the rotation stage medm rather than the guardian to set the power) the gain of the IMC WFS was very low. We also reset the dark offsets for the MC WFS. SDF screenshot attached.
Keita found that there was angular feedback to M2 on MC2, which I don't think is correct. This was set this way on Feb 17th and accepted in SDF, we set it back to M2 off and accepted that in SDF.
We set the mode cleaner to offline for a jitter measurement using the IMC WFS DC starting at 1:04 UTC. The PSL is in science mode and there is 8.9 Watts injected.
On a small detour, I made some edits to the state generator for the OFFLOAD_ALIGNMENT_MANY state, bug fixes from the guardian re-work. The motivation for this is that the offload MCWFS script doesn't turn off the loops so it misaligns the IMC which the slow MCWFS loops take a while to recover from. I had intended to write a guardian state that uses this generator, however, this generic offload state relies on having the alignment intergators in the suspension top masses, which is not the case for the MCWFS. We also would need to edit the state to deal with the IMC PZT. There were a few bugs to work out with the generic offload script, I added fast_ezca to the list of things that are imported by ISC_GEN_STATES, and removed two variables which were just renamed in the state ie:
def gen_OFFLOAD_ALIGNMENT_MANY(dof,tramp,optics):
class OFFLOAD_ALIGNMENT(GuardState):
request = False
redirect = False
tramp = ramptime
optics = opticList
became
def gen_OFFLOAD_ALIGNMENT_MANY(dof,ramptime,opticList):
class OFFLOAD_ALIGNMENT(GuardState):
request = False
redirect = False
Attached are data taken with the IMC unlocked with 8.5Watts input power, compared to the data attached to 39434 which was taken with the HPO and the IMC unlocked. Both are calibrated into beam diameters (normalized pit and yaw *sqrt(pi/8)). The 70W amplifier has lower jitter below 50Hz, but not above. This might be due to the high noise on the PSL table and periscope and the floor that Terra and Anamaria have pointed out (41707 and comments).
I did a quick summary page look at the HAM1 ground motion and PSL table motion from November jitter data timeframe and today. I also compared with LLO (used PSL table data from before install started, so August). Floor motion at LHO is slightly lower in the hundreds of Hz region now compared to Nov.
first plot: HAM1 ground, LHO on left, LLO on right
second plot: PSL table motion, LHO on left, LLO on right