Today at ~11:10 am, IP3 (LVEA 2x 1250 l/s IP) failed leading to a slight pressure rise in the corner. Seen on all LVEA pressure gauges (BSC2, HAM6, etc.). Attached snapshot shows the two pumps behavior at the time of failure, pump ion current on left column, output voltage on right.
Gerardo and I went to the mechanical room to diagnose the controller, upon arrival both channels on the Dual Vac controller had tripped off. We reset the high voltage and powered on the IP. Channel 1 (corresponding to Pump A in CDS) would only reach 300 V and then would trip the controller. Channel 2 (Pump B would reach 7kV no issue but would trip when Channel 1 tripped). We then swapped to a Gamma MPC controller to test if the controller was the problem. We saw the same exact behavior where Pump A would only reach 300V and Pump B was ok at 7kV.
We then swapped back to the DualVac controller after confirming it was not the issue, but with only Pump B connected and powered on. We are continuing to monitor to make sure Pump B remains steady. In parallel, Travis and Mark are testing the HV cable to the pump to see if there are any shorts. Results to follow.
If the cable is not the culprit we will HiPot the pump to see if there are any shorts, pump will be isolated from main volume during this test. To be continued.
Using the Agilent FieldFox N9912A we measured the cable length with the following parameters:
Mode = DTF (VSWR), F_Start = 2.0MHz, F_Stop = 450.0MHz, Points 801, Resolution 261mm
Start Distance 5.0m, Stop Distance 170.0m
The cable end was detected at 80.79m from the start of the launch cable, launch cable was about 1m.
The cable measurement was similar to the other cables measured.
When measured with the DMM, this cable measured open, but when the connector was moved, it displayed ~6M ohms, this would normally not be an issue, but due to the high voltage in this location it may be an issue, recommend hipot.
M. Pirello, F. Clara, G. Morenao, T. Sadecki, J. Vanosky
Problem solved, see in aLog 84826
I changed that way that the SQZ_MANAGER SCAN_SQZANG gen state worked to now take a brms_channel argument. Nominally for SCAN_SQZANG_FDS this is SQZ-DCPD_RATIO_3_DB_MON which tunes the squeezing around the 350Hz BLRMS to give the max IFO range. This is not yet tested, changes in SQZ_MANAGER.py svn.
I added a new state SCAN_SQZANG_KHZ (state number 85) from FIS that uses SQZ-DCPD_RATIO_6_DB_MON to maximize sqz at high frequency ~1700Hz. It makes sure ASC is off before scanning angle and can be be used when we take a sqz data set with SRCL offset steps e.g. 83569 to make 83572 brontosaurus plots.
To take SRCL offset FIS dataset (e.g. 83569):
Take NLG back to nominal ~11, once done.
As a part of trying to diagnose what could be wrong with CHARD Y, I checked the ITMY A2L gains, in case they were so far off that it was responsible for some of the instabilities we've seen. Just based on the magnitude of the changes, I don't think it has been causing any problems.
While we sat at 25 W, after the move spots was completed, I drove a pitch and yaw dither on ITMY using the DOF2 paths in the ADS bank. The pitch line was driven at 19.125 Hz with a magnitude of 5000 and the yaw line at 21.287 Hz with a magnitude of 3000.
I made steps of 0.2 in both the pitch and yaw gains in both directions, and watched the line heights change. I was able to make the lines both higher and lower, so I am convinced that I am at least close to, if not at the minimum. Overall, the change in the gains is not that significant, so I think that it wasn't causing us any problems.
In the screenshot below, cursors mark the location of each line on the red trace.
Sheila Ryan and I phased LSC-REFL_B while we were sitting at 25W after move spots. We used the template in /opt/rtcds/userapps/release/lsc/h1/templates/CARM/check_refl_a_9_phase.xml and adjusted the phase which you can find in the LSC electronics overview. Screenshots of the 200Hz excitation after phasing and the sdf screenshot attached.
Daniel, Kevin, (Erik, Dave), Vicky
Kevin is interested in taking ADF sweeps around the second higher order mode arm resonance near 10.4 kHz.
We (Daniel) made model changes in h1ioplsc0 and h1omcpi that should enable higher freq ADF demods. Daniel built the models successfully. Then Dave also built these models successfully for the custom RCG running on h1omcpi for the variable duotone. We put in a WP to boot in these changes to h1ioplsc0 and h1omcpi next Tuesday 6/10.
From h1ioplsc0, we added 2 new PCIe channels to write the digital ADF LO oscillator out to PCIe. These are H1:IOP-PCI_ADF_VCXO_{COS,SIN} in screenshot 1. We also changed a rogue limiter such that the ADF should be able to scan +/-1 MHz according to the PLL.
In h1omcpi, we use the fast 64 kHz OMC PI user model to do a fast digital demodulation of the OMC_DCPD_SUM signal using the above ADF-LO PCIe channels. This is beating the fast dcpd output signal (H1:OMC-PI_DCPD_64KHZ_AHF), against the ADF LO's cosine and sine components from PCIe (H1:IOP-PCI_ADF_VCXO_{COS,SIN}), to get the demodulated ADF I/Q signals. The demod signals will have names like H1:OMC-PI_ADF_DEMOD_{I,Q}. Screenshots 2-4.
Operationally nothing should change for the ADF or for OMC-based fast PI damping. We are just using PCI to send 2 IPC channels from an IOP model to a user model on a different computer at ~65kHz, and doing the demod in a 64kHz user model (but the demod does not go anywhere, it is just used for squeezer diagnostics).
Model change summary:
h1ioplsc0
+2 IPC senders to H1.ipc
+2 slow channels to DAQ
h1omcpi
(+2 IPC receivers)
+33 slow channels to DAQ
Model changes today seem relatively successful. No way to verify in hardware (yet), but the ADF PLL claims it successfully locks at -11kHz from carrier, so at least the limiter fix in h1ioplsc0 seems to work; in principle the ADF sweep limiter is now set at +/- 1 MHz.
I added a quick ADF demod of the 64kHz OMC DCPD SUM channel into the normal ADF screen, screenshot attached, see the very bottom. New filter banks initialized with values and filters as in the other adf demod chains. Also tried to clean it up in SDF: channels are initialized, gains and phase are monitored, and saved into sdf (h1omcpi model).
Sheila, Elenna, Caroline, Julia
We tested and reconfigured the DRMI ASC, and now we can run all of the DRMI ASC!
I trended the POP A offset yesterday to determine what the new values should be based on the alignment of the PRM once we are in full lock. I set those so we can use the PRC1 ASC loop (attachment 1 and attachment 2).
Then, we sat with DRMI locked and Sheila and I tried moving around PR2, IM4 and PRM to check if the error signals made sense. PRM uses POP A QPD, IM4 and PR2 use REFL A and B 9 MHz signals. We found that the PR2 and IM4 error signals seemed flipped, so we checked all of the REFL WFS signals and even thge POPX signals to see what might be the best new sensing matrix. Eventually, we chose to remain on REFL 9 I, but we flipped the sensing.
We were able to engage all the SRC ASC, except that after a minute or two og engagement, we saw an oscillation in the SRC signals. We eventually turned down the SRC1 P and Y gains, and the SRC2 P gain.
I tried moving the PRM to confirm the PRC1 error signal was ok, and I found that the pitch offset I chose was good, but the yaw offset was not good. So instead I moved the PRM yaw to maximize the buildups, and then reset the the POP A yaw offset (attachment 3).
Then, Sheila and I tried engaging the PRC2 and INP1 yaw ASC, but used the wrong sign for PRC2 Y and caused the DRMI lockloss. Luckily, we quickly recovered, and changed the sign and reengaged. We followed a similar procedure for the pitch ASC, but I stepped PR2 a few times to ensure the sign of the input matrix was correct.
We were then able to engage all the DRMI ASC, using lower SRC1 and SRC2 gains to prevent ringing. Sheila updated the ISC DRMI guardian to use these new input matrix values.
Except for some overall magnitude, the DRMI INP1 and PRC2 sensing has had this change in both pitch and yaw:
old sensing: INP1 = + REFL 9I A - REFL 9I B and PRC2 = +REFL 9I A + REFL 9I B
new sensing: INP1 = +REFL 9I A + REFL 9I B and PRC2 = -REFL 9I A + REFL 9I B
With the ASC engaged, we were able to raise the SRC1 pitch and yaw gains back to their nominal values (updated again in guardian). The SRC2 P loop still has a lower gain.
We've gone back and forth on the correct POP A yaw offset today, and Georgia had changed it again in this alog. However, we just tried to run the DRMI ASC and had a lockloss, so we think my offset was better, so I have again set the POP A yaw offset to be 0.352 and SDFed.
DRMI ASC engaged much better with my offset. I don't know why the full IFO alignment offset is bad for DRMI.
After attention was called to the uneven trending in the temperature of Zone 2A, I checked the heating coil and found that while the automation system was calling for 100% heating, the unit was not heating at all. I found that one of the 40 amp line voltage fuses had blown. This fuse also supplies line voltage to the control transformer which powers the control board, meaning the entire duct heater was down. Further troubleshooting is needed to find the cause of the blown 40 amp fuse, which will likely involve replacing heating elements.
I updated the POP_A P and Y offsets so the DRMI ASC will take us closer to where the full IFO ASC will take us
DOF | Old | New |
P | 0.09 | 0.1 |
Y | 0.35 | 0.15 |
This was reverted - the DRMI alignment and full IFO alignment are not the same. Maybe related to the ITMX P2L gain change we put in which adjusts the pitch of the PRM in 2W full lock?
FAMIS 25805
pH of PSL chiller water was measured to be between 10.0 and 10.5 according to the color of the test strip.
Betsy, Ryan S, TJ
We did our first walk through after the vent, but next week there will definitely be more to sweep that we either missed or that we said we will hold off a week on. We focused on the most egregious items.
Jonathan, Nyath
As per WP 12580 we have replaced the GC switch which interfaces with CDS. This is in response to the need to cycle the switch twice on Friday.
Unfortunately this took more work than expected. The first switch we tried was not passing data between the CDS router and the GC core. So we are running a smaller spare CDS switch with POE + 10Gb capability to service the control room phones, the control room computers, and the DMT interface.
We have two fiber pairs going to the GC core switch. We typically run them as an aggrigated link. However for testing we have split that up and are running one pair to the active switch and have the other fiber pair to test another switch.
This work resulted in minor outages to the DMT and control room. The largest outages being to the non-operator phones.
We will keep the work permit open for a bit.
Attatched to this alog are omicron glitch rate comparions, as a function of frequency and SNR, between O4a and O4b. Here, I used roughly ~ 3425 hours of observing time for O4a and O4b (H1:DMT-ANALYSIS_READY:1 flag). The specific observing times used were:
O4a: 2023-06-24 20:00:00 - 2024-01-17 00:00:00 (~3422 hours observing)
O4b: 2024-04-10 00:00:00 - 2025-01-28 17:00:00 (~3428 hours observing)
The SNR and frequency of the omicron triggers gathered were 7.5 < SNR < 500, and 10 Hz < frequency < 1024 Hz. I find that the glitch rate in O4b is significatly less than O4a. In O4a, there was a lot of non-stationary noise from ~10-50 Hz (see alogs 71005 & 71092), which is why the rate was so high. For frequencies below 50 Hz, the glitch rate per hour went from roughly ~16.7 in O4a to ~2.5 in O4b. For SNR below 50, the glitch rate per hour went from ~36 per hour in O4a to ~9 per hour in O4b.
Tue Jun 03 10:11:02 2025 INFO: Fill completed in 10min 59secs
HAM1 annulus system appears to have issues pumping down, currently its annulus ion pump is railed 10 mA, and the pump cart pumping on this system is sitting at 6.04x10-05 Torr, see attached photo.
Process thus far:
I plan to visit HAM1 to check the rest of the bolts on -Y door and +Y door.
HAM1 internal pressure is doing good, see attached photo of the pressure at the SS-500 pump cart pumping on HAM1. Second attachment is a 5.5 day plot of the pressure internal to HAM1, the large step noted on the plot is due to the introduction of HAM1 ion pump.
(Jordan V., Gerardo M.)
Today we went and performed the following on the annulus system for HAM1:
Now we wait to see the results of today's changes overnight.
Jennie W, Sheila, Elenna
In order to get data for mode-matching and for Elenna to get data to calibrate sideband heights we ran some mode scans after the SR3 heater was turned on last night.
16:55:24 UTC Carried out single bounce OMC scan at 10W PSL input with sensor correction on HAM6 on, high voltage on for PZT driver in HAM6, sidebands off , SRM mis-aligned, ITMY mis-aligned, DC 3 and 4 on, OMC ASC on.
Excitation freq changed to 0.005 Hz as the top peak of the TM00 mode looked squint so could have been saturating. Lowering this frequency prevented this.
Ref 15-17 corresponds to dcpd data, pzt exc signal, pzt2 dc monitor.
Then mis-aligned ITMX and aligned ITMY (Sheila had to re-align SR2 to centre on ASC-AS_C).
Measurement starts at 17:08:18 UTC.
Ref 18-20 corresponds to dcpd data, pzt exc signal, pzt2 dc monitor.
Traces saved in 20250516_OMC_scan.xml. The top left plot is the first scan bouncing beam off ITMX, the second scan is the bottom right bouncing off ITMY.
The top right is the two plots of the PZT2 DC voltage monitor. That is, the current voltage applied to the PZT. The bottom left is the plot of the voltage ramp applied to the PZT2 on the OMC for this measurement.
The ndscope attached shows the power in mA transmitted through the OMC on the top, then the PZT used for the scan DC voltage underneath, then the input PZT voltage underneath that, then the reflected power from the OMC in mW, then at the bottom the SR3 heater element temperature in degrees.
Elenna did two more scans in single bounce with sidebands back on and different modulations depths in each.
See Elenna's comment on her previous measurement where this saturation happened.
Turn off the sidebands - instructions in this alog.
Sheila and I ran one more OMC scan with sidebands off after OM2 heated up. Attached is the screenshot with scans off both ITMX and ITMY, data is saved in [userapp]/omc/h1/templates/OMC_scan_single_bounce_sidebands_off.xml
I also ran two OMC scans, single bounce off ITMY, 10 W input, with the sidebands ON. One measurement I ran with the sidebands set to 23 dBm and 27 dBm (9 and 45 MHz) and another set to 20 dBm and 21 dBm (9 and 45 MHz). I will use these measurements to calibrate the modulation depth. Data saved in /opt/rtcds/userapps/release/omc/h1/templates/OMC_scan_single_bounce_RF_cal.xml
SR3 heater was on for this measurement but it should have little effect on my results.
Looked closer at these HWS signals during SR3 heater heat up and cool down. In all these plots, the two t-cursors are used as the reference and shown HWS live image.
Some strange things:
Finally got round to fitting the two single bounce mode scans done with SR3 hot and OM2 cold. The first we had ITMX aligned, the second we switched to ITMY aligned.
These can currently be processed using OMCscan.py in the /dev branch for the labutils/omcscan repository at /ligo/gitcommon/labutils/omc_scan, you need to have activated the labutils conda environment to do so.
The call statements for the data processing are:
python OMCscan.py 1431449762 130 "1st 1431449762 - SR3 hot, 10W PSL, ITMY mis-aligned" "single bounce" -s -v -o 2 -m
python OMCscan.py 1431450536 140 "2nd 1431450536 - SR3 hot, 10W PSL, ITMX mis-aligned" "single bounce" -s --verbose -m -o 2
For each measurement the tag -s specifices that the sidebands were not on and so in order to calibrate the PZT the code uses the two TM00 modes and then you have to tell it in what height order the 10 and 20 modes appear relative to the highest peak which will be one of the 00 modes.
def identify_C02(self):
"""If in single bounce configuration, and with sidebands off,
identify 10 and 20 modes in order to improve fit.
Assumes that
OMCscan.identify_peaks()
and
OMCscan.identify_carrier_00_peaks()
have already been run.
Output:
-------
self.peak_dict: dictionary
first set of keys are carrier, 45 upper, 45 lower
second set of keys are TEM mode, e.g. "00", "01", "20", etc.
third set of keys is the fsr number
"""
# Create temporary dictionary to combine into self.peak_dict
peak_dict = {}
peak_dict["carrier"] = {"10": {}, "20": {}}
#print(peak_dict)
nn = [2, 1]
mm = 0
#freq_diff = np.empty(np.size(self.peak_frequencies)) not sure why this line here.
#set frequency to be that of third largest peak.
first_order = np.argsort(self.peak_heights)[-4]#-4 for second meas.
second_order = np.argsort(self.peak_heights)[-3]#change index to match where 20 is in terfirst meas if measuring from start of scan.ms of peak height.
#print(third_larg)
for ii, peak_freq in enumerate(self.peak_frequencies):
if peak_freq == self.peak_frequencies[second_order]:
#print("found C02")
#print(f"List fields in IFO {self.fields_MHz}")
#print(type(self.fields_MHz))
#print(f"OMC HOM spacing {self.omc_hom} MHz")
#print(type(self.omc_hom))
field = f"carrier"
#print(f"mode {field}{nn[0]}{mm}")
peak_dict[field]["20"][-1] = {
"height": self.peak_heights[ii],
"voltage": self.peak_pzt_voltages[ii],
"frequency": self.peak_frequencies[ii],
"true_frequency": np.mod((self.fields_MHz - (nn[0] + mm) * self.omc_hom), self.omc_fsr),
"label": r"$c_{20}$",
}
self.peak_ided[ii] = 1
elif peak_freq == self.peak_frequencies[first_order]:
field = f"carrier"
peak_dict[field]["10"][-1] = {
"height": self.peak_heights[ii],
"voltage": self.peak_pzt_voltages[ii],
"frequency": self.peak_frequencies[ii],
"true_frequency": np.mod((self.fields_MHz - (nn[1] + mm) * self.omc_hom), self.omc_fsr),
"label": r"$c_{10}$",
}
self.peak_ided[ii] = 1
else:
continue
# Merge dictionaries
#if not "20" in peak_dict["carrier"].keys():
self.peak_dict["carrier"] = {**self.peak_dict["carrier"], **peak_dict["carrier"]}
#print(self.peak_dict)
#print(self.peak_ided)
return
For both measurements I only took slightly over 1 FSR of the data, this is because in order to fit a polynomial to the known peaks (allowing us to calculate the PZT non-linearity), the code assumes the 1st order is the 3rd highest and 2nd order is the 4th highest. In the code above you need to change the indexes in the below lines to match the height order of the peaks (ie. and index of -4 is fourth highest peak).
first_order = np.argsort(self.peak_heights)[-4]
second_order = np.argsort(self.peak_heights)[-3]
When the mode-matching is bad this may not be true, also if there are multiple FSRs in the scan this also may not be true.
First measurement 1st order mode is fifth highest, 2nd order mode is third highest. The scan is here. I took 130 s of data. The PZT fit is here.
Second measurement the 1st order mode was the 4th highest, 2nd order mode was the third highest. The scan is here. I took 140s of the scan data. The PZT fit is here.
First measurement has
1.69/(1.69+15.86) = 9.63 % mode mis-match.
Second measurement has
1.25*100/(1.25 + 16.46) = 7.06 % mode mis-match
I also analysed the single bounce measurements Elenna and Sheila made after OM2 was heated up. So these have both SR3 and OM2 hot.
For both these measurements C02 was the third highest mode and C01 was the fourth highest. I took 120s starting 45s into the scan.
Measurement 1: 23:40:38 UTC on 2025/05/16 with ITMX aligned and ITMY mis-aligned.
See the spectrum with labelled peaks here.
And the PZT calibration here.
Mode mis-match is:
0.93/( 0.93 + 17.29 ) = 5.10 %
Measurement 2: 23:46:48 UTC on 2025/05/16 with ITMY aligned and ITMX mis-aligned.
See the spectrum with labelled peaks here.
And the PZT calibration here.
100 * 0.56/( 0.56 + 17.62 ) = 3.08 %
Bear in mind that this is assuming that there is no astigmatism in the OMC (since there is but we cannot resolve 02 vs 20 modes). This requires some careful analysis of uncertainties to get useful info about how we should tune for better mode-matching. Watch this space.
TJ, Camilla, Sheila
TJ and Camilla got the HWSs working, and now we turned on the SR3 heater at 15:54 UTC, 2W requested power. This is to do a check of the SR3 heater calibration and range similar to 27262
SR3 heating up can be seen on the HWS signals but is not particulatly clear, see attached.
Looking at when this test was done at LLO, the lens changing happened over a period of three hours and the lens power increased in the same direction on both HWS, so its possible our HWS are not a good witness for the SR3 curvature change.
Aidan calculated 2.45 uD/W at LLO, and we get 9.44 uD/W (from the H1:TCS-ITM{Y,X}_HWS_PROBE_SPHERICAL_POWER trends with an estimated noise of 4.48e-12uD/W.
Looked closer at these HWS signals during SR3 heater heat up and cool down. In all these plots, the two t-cursors are used as the reference and shown HWS live image.
Some strange things:
With the numbers from ITMY HWS only, and looking at the 3hr 11 m cooldown in Camilla's photo, the lens change is 6.68e-6 Dioptres/W taking into account that the HWS beam passes twice through SR3.
After talking with Camilla, she reminded me the change in RoC (delta R) =/= 2/(delta D),
where D is defocus (1/focal length).
but instead delta R = 2/(2/R + delta D) - R
Where R=36.013m is given in https://git.ligo.org/IFOsim/ligo-commissioning-modeling/-/blob/main/LHO/yaml/lho_O4.yaml?ref_type=heads
delta R comes out as 4.3mm +/- 0.18 mm (which is the same order of magnitude as the change Aidan measured in alog #27262 at LLO).
The error was estimated from looking at the noise on the spherical power and propagating through the calculation of delta R.