git repo : https://git.ligo.org/40m/scripts/-/tree/main/SUS/OutMatCalc
Here is an update on our recent attempt at diagonalization of the SUS output matrices. There are two different parts to this: the first is coil balancing using existing F2P code which stopped working because of an old-style use of the print function and the second which should now focus on the mixing amongst the various degrees of freedoms (dof) without a DC/AC split I believe. The F2P codes are now working and have been consolidated in the git repo.
For whitening electronics noise for WFS1, I get (attachment). This doesn't seem right, right?
I found the IMC was largely misaligned and was not locking. The WFS feedback signals were saturated and MC2 was still largely misaligned in yaw after resetting the saturation.
It seemed that the MC WFS started to put the large offset at 6:30AM~7:00AM (local).
MC2 was aligned and the lock was recovered then the MC WFS seems working for ~10min now.
[Anchal, Paco, Yuta]
We tried to lock FPMI with REFL55 and AS55 this week, but no success yet.
FPMI locks with POX11, POY11 and ASDC for MICH stably, but handing over to 55's couldn't be done yet.
What we did:
- REFL55: Increased the whitening gain to 24dB. Demodulation phase tuned to minimize MICH signal in I when both arms are locked with POX and POY. REFL55 is noisier than AS55. Demodulation phase and amplitude of the signal seem to drift a lot also. Might need investigation.
- AS55: Demodulation phase tuned to minimize MICH signal in I when both arms are locked with POX and POY. Whitening gain is 24dB.
- Script for demodulation phase tuning lives in https://git.ligo.org/40m/scripts/-/blob/main/RFPD/getPhaseAngle.py
- Locking MICH with REFL55 Q: Kicks BS much and not so stable probably because of noisy REFL55. Offtet also needs to be adjusted to lock MICH to dark fringe.
- BS coil balancing: When MICH is "locked" with REFL55 Q, TRX drops rapidly and AS fringe gets worse, indicating BS coil balancing is not good. We balanced the coils by dithering POS with different coil output matrix gains to minimize oplev PIT and YAW output manually using LOCKINs.
- Locking MICH with ASDC: Works nicely. Offset is set to -0.1 in MICH filter and reduced to -0.03 after lock acquisition.
- ETMX/ETMY actuation balancing: We found that feedback signal to ETMX and ETMY at LSC output is unbalanced when locking with POX and POY. We dithered MC2 at 71 Hz, and checked feedback signals when Xarm/Yarm are locked to find out actuation efficiency imbalance. A gain of 2.9874 is put into C1:LSC-ETMX filter to balance ETMX/ETMY. I think we need to check this factor carefully again.
- TRX and TRY: We normalized TRX and TRY to give 1 when arms are aligned. Before doing this, we also checked the alignment of TRX and TRY DC PDs (also reduced green scattering for TRY). Together with ETMX/ETMY balancing, this helped making filter gains the same for POX and POY lock to be 0.02 (See, also 40m/16888).
- Single arm with REFL55/AS55: We checked that single arm locking with both REFL55_I and AS55_Q works. Single arm locking feeding back to MC2 also worked.
- Handing over to REFL55/AS55: After locking Xarm and Yarm using POX to ETMX and POY to ETMY, MICH is locked with ASDC to BS. Handing over to REFL55_I for CARM using ETMX+ETMY and AS55_Q for DARM using -ETMX+ETMY was not successful. Changing an actuator for CARM to MC2 also didn't work. There might be an unstable point when turning off XARM/YARM filter modules and switching on DARM/CARM filter modules with a ramp time. We also need to re-investigate correct gains and signs for DARM and CARM. (Right now, gains are 0.02 for POX and POY, -0.02 for DARM with AS55_Q (-ETMX+ETMY), -0.02 for CARM with REFL55_I with MC2 are the best we found so far)
- Measure ETMX and ETMY actuation efficiencies with Xarm/Yarm to balance the output matrix for DARM.
- Measure optical gains of POX11, POY11, AS55 and REFL55 when FPMI is locked with POX/POY/ASDC to find out correct filter gains for them.
- Make sure to measure OLTFs when doing above to correct for loop gains.
- Lock CARM with POY11 to MC2, DARM with POX11 to ETMX. Use input matrix to hand over instead of changing filter modules from XARM/YARM to DARM/CARM.
- Try using ALS to lock FPMI.
For the proposed construction in the NW corner of the CES building (near the 40m BS chamber), they did a simulated construction activity on Wednesday from 12-1.
In the attached image, you can see the effect as seen in our seismometers:
this image is calculated by the 40m summary pages codes that Tega has been shepherding back to life, luckily just in time for this test.
Since our local time PDT = UTC - 7 hours, 1900 UTC = noon local. So most of the disturbance happens from 1130-1200, presumably while they are setting up the heavy equipment. If you look in the summary pages for that day, you can also see the IM lost lock. Unclear if this was due to their work or if it was coincidence. Thoughts?
For the PSL HEPA, we wanted it to remain at full speed during the vent, when anyone is working on the PSL, or when there is a lot of dust due to outside conditions or cleaning in the lab.
For NORMAL conditions, the policy is to turn it to 30% for some flow, but low noise.
I think we ought to lock one of the arms on IR PDH and change the HEPA flow settings and plot the arm error signal, and transmitted power for each flow speed to see what's important. Record the times of each setting so that we can make a specgram later
In the morning I took some time to align the AUX beams in the XEND table. Later in the afternoon, I did the same on the YEND table. I then locked the AUX beams to the arm cavities while they were stabilized using POX/POY and turned off the PSL hepa off temporarily (this should be turned on after today's work).
After checking the the temperature slider sign on the spectrum analyzer of the control room I took some out-of-loop measurements of both ALS beatnotes (Attachment #1) by running diaggui /users/Templates/ALS/ALS_outOfLoop_Ref_DQ.xml and by comparing them against their old references (red vs magenta and blue vs cyan); it seems that YAUX is not doing too bad, but XAUX has increased residual noise around and above 100 Hz; perhaps as a result of the ongoing ALS SURF loop investigations? It does look like the OLTF UGF has dropped by half from ~ 11 kHz to ~ 5.5 kHz.
Anyways let this be a reference measurement for current locking tasks, as well as for ongoing SURF projects.
We were able to greatly improve the quality of our readings by changing the parameters in the config file (particularly increasing the integration and settle cycles, as well as gradually increasing our excitation signals' amplitude). Attached are the readings taken from the same (the files directly printed by ssh'ing the SR785 (apologies)) - Attachment 1 depicts the graph w/ 30 data points and attachment 2 depicts the graph with 300 data points.
Cici successfully vectfit to the data, as included in Attachment 3. (This is the vectfit of the entire control loop's OLTF). There are two main concerns that need to be looked into, firstly, the manner in which to get the poles and zeros to input into the vectfit program. Similarly, the program works best when the option to enforce stable poles is disabled, once again it may be worth looking into how the program works on a deeper level in order to understand how to proceed.
Just as the servo's individual transfer function was taken, we also came up with a plan to measure the PZT's individual transfer function (using the MokuLab). The connections for the same have been made and the Moku is at the Xend (disconnected). We may also have to build a highpass filter (similar to the one whose signal enters the PZT) to facilitate taking readings at high frequencies using the Moku.
this is just the CDS error signal, but is not the electronics noise. You have to go into the lab and measure the noise at several points. It can't be done from the control room. You must measure before and afte the whitening.
I measured electronics noise of WFSs and QPD (of the WFS/QPD, whitening, ADC...) by closing PSL and measuring the error signal. It was needed to put the offset in C1:IOO-MC_TRANS_SUMFILT_OFFSET to 14000 cts (without offset the sum of quadrants would give zero, and 14000 cts is the value when the cavity is locked). For WFS that are RF, if there is intensity noise at low frequencies, it is not affecting the measurement.
In the attachment please find the power spectrum of the error signal when the PSL shutter is on and off.
I guess it didn't make sense since f_beat can be arbitrarily moved, but the beat is taken around the PSL freq ~ 281.73 THz. Attachment #1 shows the overlapping tau allan deviation for the exact same dataset but using the python package allantools, where this time I used the PSL freq as the base frequency. This time, I can see the minimum fractional deviation of 1.33e-13 happening at ~ 20 seconds.
what's the reasoning behind using df/f_beat instead of df/f_laser ?
The allan variance is related to the beatnote spectral density as a mean-square integral (the deviation is then like the rms) with a sinc window.
We measured the AS55 demod board conversion from the amplitude of a 55MHz signal to a demodulated signal. We hooked the unused REFL55 LO into the PD input port on the AS55 demod board.
The REFL55 LO was measured to be 1.84 Vpp. The IQ outputs were: I = 0.86 Vpp, Q = 2.03 Vpp giving an amplitude of 2.205 Vpp. The overall conversion factor is sqrt(0.86**2+2.03**2)/(1.82/2)=2.422.
We also set to measure the loss in the RF cable from AS55 PD to the demod board on 1Y2. REFL55 was connected with a long BNC cable to the input of the cable under test. REFL55 at the input was measured to be 1.466 Vpp and 1.28 Vpp at the output signifying a transmission of 87.6%.
For MICH noise budgeting we measure the input electronics noise which includes the AS55 RFPD, preamp, demod board, the whitening, and the AA filters, and the ADC noises. To do so we simply close the laser shutter and take the spectrum of C1:LSC-AS55_I_ERR_DQ and C1:LSC-AS55_Q_ERR_DQ shown in attachment 1.
Next, we measured the output electronics noise which includes the DAC, dewhitening and AI filters, and coil driver noises. We disabled the BS watchdog and went to 1X4 rack. We measured the spectrum of one of the lemo outputs on the BS coil driver module using an SR785. Attachment 2 shows the spectrum together with the SR785 dark noise.
I took ~ 7 minutes of XALS beatnote data with the XAUX laser locked to the XARM cavity, and the XARM locked to PSL to develop an allan deviation estimator.
I added today demodulation of C1:LSC-BEATX/Y_FINE_I/Q in the c1cal demodulation where different degrees of freedom can be dithered. For McCal (formerly soCal), we'll dither the arm cavity for which we can use any of the DOFs (like DARM) to send the dither to ETMX/ETMY. Then with green laser locked as well, we'll get the calibration signal from the beatnotes in the demodulaed channels. We can also read right after the mixing in c1cal model and try differnt poles for integration .
I've also added medm screens in the sensing matrix part of LSC screen. These let you see demodulation of beatnote frequency signals.
I took ~ 7 minutes of XALS beatnote data with the XAUX laser locked to the XARM cavity, and the XARM locked to PSL to develop an allan deviation estimator. The resulting timeseries for the channel C1:ALS-BEATX_FINE_PHASE_OUT_HZ_DQ (decimated timeseries in Attachment #1) was turned into an allan variance using the "overlapped variable tau estimator":
Where represents the k-th data point in the raw timeseries, and are the variable integration intervals under which two point variances are computed (the allan variance is a special case of M-point variance, where M=2). Then, the allan deviation is just the square root of that. Attachment #2 shows the fractional deviation (normalized by the mean beat frequency ~ 3 MHz for this measurement) for 100 integration times spanning the full duration (~ 7 min = 420 s).
The code used for this lives in Git/40m/labutils/measuremens/ALS/
If this estimate is any good, wherever the fractional beatnote deviation reaches a minimum value can be used as a proxy for the longest averaging time that give a statistical increase in SNR. After this timescale, the frequency comparison is usually taken over by "environmental instabilities" which I don't think I can comment further on. In our particular estimate, the 100 second integration gives a fractional deviation of ~ 0.44 %, or absolute deviation of 12.925 kHz.
We attempted to use vectfit to fit our earlier transfer function data, and were generally unsuccessful (see vectfit_firstattempt.png), but are much closer to understanding vectfit than before. Couple of problems to address - finding the right set of initial poles to start with has been very hard, and also however vectfit is plotting the phase data is unwrapping it, which makes it generally unreadable. Still working on how to mess with the vectfit automatically-generated plots. In general, our data is very messy (this is old data of the transfer function from last week), so we took more data today to see if our coherence was the problem (see TFSR785_28-06-2022_161937.pdf). As is visible from the graph, our coherence is terrible, and above 1kHz is almost entirely below 0.5 (or 0.2) on both channels. Figuring out why this is and fixing it is our first priority.
In the process of taking new data, we also found out that the optical table enclosure at the end of the X-arm does a decent job of sound isolation (see enclosure_open.mp4 and enclosure_closed.mp4). The clicking from the shutter is visible on a spectrogram at high frequencies when the enclosure is open, but not when it is closed. We also discovered that the script to toggle the shutter can run indefinitely, which can break the shutter, so we need to fix that problem!
To circumvent IPC error sending BHD DC PD signals from c1sus2 to c1lsc, DB9 cable from BHD DC PD box sent to c1sus2 is now split and sent also to c1lsc.
They are now available in both
C1:X07-MADC1_EPICS_CH16 (DC PD A) and CH17 (DC PD B)
C1:X04-MADC1_EPICS_CH4 (DC PD A) and CH5 (DC PD B)
- Add battery powered SR560 to decouple c1sus2 and c1lsc to avoid the ground loop
The plan for the tools in 40m
As of right now, there are 4 tool boxes. X-end, Y-end, Vertex, and the main tool box along the X-arm. The plan is the give each toolbox a set of their own tools. The tools of X-end, Y-end, and Vertex toolboxes will be very similar containing the basic tools such as pliers, screwdrivers, allen ball drivers. Along with this, each tool box will have a tape measure, caliper, level, and other measuring tools we find convinient.
As for the new toolbox, I have done research and found a few good selections. The only problem I have ran into with this is the width of the tool box corresponding with the prices. The tool cabinet we have now is 41" wide. The issue I have is not in finding another toolbox of the same width, but for a similar price we can find a 54" wide tool cabinet. Would anyone be objected to making a bit more space for this?
How the tools will stay organized.
I the original idea I had was to use a specified color of electrical tape for each tool box. Then to wrap the corresponding tools tools with the same color tape. But it was brought to my attention that the electrical tape would become sticky over time. So, I think the using the label maker would be the best idea. with the labels being 'X' for X-end, 'Y' for Y-end, 'V' for vertex, and 'M' for main toolboxes.
An idea for the optical tables:
Anchal brought it up to me that it is a hassle to go back and forth searching for the correct sizes of Hex Keys and Allen Wrenches. The idea of a pouch on the outside of each optical table was mentioned so I brought this up to Paco. Paco also gave me the idea of a 3D printed stand we could make for allen ball drives. Does anyone have a preference or an idea of what would be the best choice and why?
A few sidenotes:
Anchal mentioned to me a while back that there are many cables that are laying on the racks that are not being used. Is there a way we could identify which ones are being used?
I noticed that when we were vented that a few of the chamber doors were leaning up against the wall and not on a wooden stand like others. Although, the seats for the chamber doors are pretty spacious and do not give us much clearance. For the future ones, could we make something more sleek and put the wider seats at the end chambers?
The cabinets along the Y-Arm are labelled, but do not correspond with all the materials inside or are too full to take in more items. Could I organize these?
EDITED by YM on 22:11 June 27, 2022 to correct for a factor of two in the modulation index
Since we have measured optical gain in MICH to be an order of magnitude less compared with Yehonathan's FINESSE model (40m/16923), we measured the power at AS55 RF PD, and measured the modulation depths using Yarm cavity scan.
We found that 50/50 beam splitter which splits AS55 path into RF PD and RF QPD was not included in the FINESSE model. Measured modulation index were as follows:
TEM00 peak height: 0.6226 +/- 0.0237
RF11 peak height: 0.0067 +/- 0.0007
RF55 peak height: 0.0081 +/- 0.0014
RF11 modulation index: 0.208 +/- 0.012
RF55 modulation index: 0.229 +/- 0.020
RF11 modulation index: 0.104 +/- 0.006
RF55 modulation index: 0.114 +/- 0.010
Here, modulation depth m is defined in E=E_0*exp(i*(w*t+m*sin(w_m*t))), and m m/2 equals to square of the intensity ratio between sidebands and TEM00.
Power measurement at AS55 RF PD:
- ITMY and ITMX single bounce reflection was measured to be 50-60 uW at the front of AS55 RFPD.
- In the FINESSE model, it was expected to be ~110 uW with 0.8 W input to PRM (0.8 W * 5%(PRM) * 50%(BS) * 50%(BS) * 10%(SRM) * 10%(AS2) gives 100 uW)
- In AP table, AS55 beam was split into two paths with 50/50 beam splitter, one for AS55 RF PD and one for AS WFS and AS110. This will be included in the FINESSE model.
Modulation depth measurement using Yarm cavity scan:
- Aligned Yarm using ASS, and unlocked Yarm to get the 2sec scan data of C1:LSC-TRY_OUT_DQ, C1:LSC-POY11_I_ERR_DQ, C1:LSC-AS55_I_ERR_DQ.
- TRY data was used to get TEM00 peak heights
- POY11/AS55 data was used to find RF11/RF55 sideband peaks, and height was measured at TRY (see attached).
- If we define m to be E=E_0*exp(i*(w*t+m*sin(w_m*t))), the amplitude of TEM00 I_00 is proportional to J_0(m) and the amplitude of upper/lower sideband I_f1 is proportional to J_1(m), where J_n(m) is the bessel function of the first kind.
- m can be calculated using 2*sqrt(I_f1 / I_00).
- Results were shown above. Error is calculated from the standard deviation of multiple measurements with multiple peaks,
- The code for doing this lives in https://git.ligo.org/40m/measurements/-/blob/main/LSC/YARM/modulationIndex.ipynb
- Power at AS55 account for the factor of 2, In the FINESSE model, modulation index of 0.3 was used (could be m=0.3/2 or m=0.3; needs check). These combined can explain a factor of 3 at least (or 6).
- Gautam's measurement in Jan 2021 (40m/15769) gives almost double modulation index, but I'm not sure what is the definition Gautam used. It agrees with Gautam's measurement in Jan 2021.
On Friday Cici and I set up the Mokulab to take readings of our loop. The aim is to characterise the PZT, in a similar manner as before, by exciting the circuit using our input noise (a swept sine) and recording the corresponding changes in the output. We used the MokuLab to observe the beat note created by the signals of the AUX and PSL, as well as the ASD of the output signal. The MokuLab simplifies the entire process.
Pictured : The beat note as observed by Cici
We first took data of a simple low pass filter, and attempted to perform a fit to both the magnitude and phase in order to find the Z of the components. Once we felt confident in our ability to measure tranfer functions, we took data and plotted the transfer function of the existing control loop of the AUX laser. What we found generally followed the trend of, but was lower than, 10^4/f, which is what we hoped to match, and also had a strange unexplained notch ~1.3 kHz. The magnitude and phase data both got worse after around 40-50 kHz, which we believe is because the laser came out of lock near the end of the run.
[Attachment 2 and 3] are the frequency response of the low pass filter, curves fitted using least squares in python.
[Attachment 1 and 4] is the same measurement of OLTF of the actual AUX circuit, and the control diagram pointing out the location of excitation and test point.
We found that MC1 local damping loop signs were revereted to the state before our standardization on June 7th (40m/16898), but the WFS output matrix was not reverted.
This caused the sign flip in the feedback to MC1, which caused the IMC WFS issue.
This probably happened when we were restarting the models after RTS modeling (40m/16935). We might have used wrong snap files for burt-restoring.
We went back to the snapshot taken at 09:19 June 21, 2022 and now the IMC WFS is working,
In the attachment please find plots comparing controller output, local damping output, and error signals.
Input noises of the simulation are seismic noise, osem noise, input power fluctuations, sensing noises of WFSs and QPD, and air turbulence noise for WFSs. There is also optical torque noise (radiation pressure effect).
The procedure to get optical gains and sensing noises:
Having the actuator response A rad/cnts @ 3 Hz. I was shaking MC1/2/3 in pitch with B cnts @ 3 Hz and getting WFS1/2 QPD signals of C cnts @ 3 Hz, which means WFS1/2 QPD optical gain is D cnts/rad = C / (A * B) cnts/rad. So, if WFS1/2 QPD IN1 has a noise spectrum (at higher freqs) of E cnts/rtHz, that corresponds to E/D rad/rtHz of sensing noise for WFS1/2 QPD.
Actuator response [rad/cts] I was getting shaking mirrors at 3 Hz and measuring amplitudes of OSEM output (knowing the geometry of the mirror). I scaled it to DC. From here I was getting ct2tau_mc (knowing the mirror's moment of inertia, Q, and natural pitch frequencies). OSEM calibration factors [cts/rad] I was getting from the input matrix and geometry of the mirror.
The flat noise at higher frequencies from the local damping and controller output channels is presumably quantization/loss of digits/numerical precision noise which I don't include in simulations for now?!
Regarding air turbulence, in KAGRA it has been reported that air turbulence introduces phase fluctuations in laser fields that propagate in air. According to Kolmogorov’s theory, the PSD of phase fluctuations caused by air turbulence scales as ∝ L*V^(5/3)*f^(−8/3). Here, L is the optical path length and V is a constant wind speed. Since it is not obvious how can one estimate typical V in the beam paths I was taking this excess noise from the error signals data between 10 Hz and 50 Hz, extrapolated it taking into account ∝ f^(−8/3) (not for frequencies below 2 Hz, where I just put constant, since it would go too high). I expect that I won't be able to get a parameterized model that also predicts the absolute value. The slope is all I can hope to match, and this I already know. QPD chamber is much smaller (and better isolated?) and there is no this excess noise.
Regarding other things in simulations (very briefly): beam-spots are calculated from angular motions, length change is calculated from beam-spots and angular motion, cavity power depends on length change and input power, and torque on the mirrors depends on beam-spots and cavity power. From other things, local-sensor basis conversion (and vice versa) is worth noting.
I could run the WFS servo (6dofs) for more than 15min by flipping the sign for the MC2 Pit and WFS1 Yaw. (See attachments)
This may mean that the sign of the loops / the input matrix / the output matrix, as well as the sensors and actuators, have the problem.
Isn't it the time to measure the sensing/actuation matrices? Maybe Tomislav already has the data?
I have reverted the changes as you may need more careful investigation.
This issue is very weird and still unresolved. Without WFS loops, we'll have to realign IMC often and we might loose IMC alignment completely during weekends or long weekends.
I tried following things today but nothign worked:
We need to investigate this as first priority. Maybe some cable is loose, some PD power supply not working etc. Until we fix this, people should align IMC to > 12000 transmission counts whenever they have a spare 5 min. We need to work in place of WFS for sometime.
We took the long BNC cable that ran from ETMX to ETMY and ran it from ETMX into the control room instead. This way Cici and Deeksha can send small voltage signals to the AUX PZT and read back using the beatnote pickoff that is usually connected to the spectrum analyzer.
The box was given to Juan Gamez (SURF)
I put the box containing the untested OSEMs from KAGRA near the south flow bench on the floor.
It seems that early this morning MC got very misaligned. Yuta was able to align the Mode Cleaner again by individually adjusting the MC1 MC2, and MC3. Once transmission reach ~12000, we went ahead and turned on WFS. Oddly enough, the transmission began plummeting and MC fell out of lock. After this, Yuta reset the WFS offsets and realigned the WFS QPDs. We then locked MC and turned on WFS once again, but the same issue happened. After fiddeling around with this, we found the if we set C1:IOO-MC2_TRANS_PIT_OUTPUT and C1:IOO-WFS1_YAW_OUTPUT equal to 0, WFS does not cause this issue. Is there a proper to reset WFS, aside from only zeroing the offsets?
22:05:02 UTC Jordan refilled his water bottle at the water dispenser in the control room.
Before the final measurement of the DC values for the transmissions, I aligned the PMC. This made the PMC trans increased from 0.67 to 0.74.
I found that Yarm cannot be locked today. Both POY11 and POYDC were not there when Yarm was aligned, and ITMY needed to be highly misaligned to get POYDC.
POY beam also could not be found at ITMY table.
Koji suggested to use AS55 instead to lock Yarm. We did it (AS55_I_ERR, C1:LSC-YARM_GAIN=-0.002) and manually ASS-ed to get Yarm aligned (ASS with AS55 somehow didn't work).
After that, we checked ITMY table and found that POY beam was clipped at an iris which was closed!
I opened it and now Yarm locks with POY11 again. ASS works.
PMC was also aligned.
Setup loop to measure transfer function of control loop - the aim is to find the open loop gain of the system using the SR785 to inject noise (a swept sine) into the system and taking observations using the scope. We tried to calculate the gain algaebraically, in order to understand what our readings meant and what we can determine from them. Need to figure out how to run python script for the SR785, but took readings from cmd today.
Included - changes/additions made to circuit; frequency reponse obtained (need to check the frequency response as it does not look like the expected result, need to correct the loop itself, or increase the magnitude of the inserted noise as its possible that the noise is currently being suppressed by the system).
To do - circuit needs to be checked + laser lock improved - laser keeps leaving resonance while trying to take readings.
The 0x2000 error in c1su2 happens whenever we make it and install it as the default data acquisition rates are too much in the suspension model. Earlier we used activateSUS2DQ.py to fix this. I followed the suggestion in 40m/16537 to include COIL_OUT at 16k, damping channels at 256 Hz and OL channels at 1024 Hz. I created new suspension model at /cvs/cds/rtcds/userapps/trunk/sus/c1/models/lib/sus_single_control_new.mdl. The model also contains filter modules names C1SUS_OPT_BIASPOS, C1SUS_OPT_BIASPIT, C1SUS_OPT_BIASYAW which acts on the alignment offsets so that a low pass filter can be added there and alignment offsets always happen slowly. The new suspension model is now used inc1su2 for teh 7 new suspensions, and now the model starts without errors.
Still remaining to fix: IPC communication between c1hpc and c1lsc.
In the attachment please find a comparison of error signals of simulation and reality after including air turbulence as input noise.
RTS models for BHD homodyne phase control (c1hpc) and angular control (c1bac) are created and added to c1sus2.
c1su2 and c1lsc models were modified accordingly.
We still have issues with IPC PCIE connection sending DCPD A and B signals to c1lsc and DC error 0x2000 in c1su2 model.
c1hpc (host: c1sus2) Attachment #1
This model is for homodyne phase control.
It can dither LO1, LO2, AS1, AS4 in POS and demodulate mixture of DCPD A/B signals for the phase control to feedback to those optics.
It also sends DCPD A/B signals to c1lsc via cdsIPCx_PCIE.
Dither and controls signals are sent to the optics via cdsIPCx_SHMEM.
c1bac (host: c1sus2)
This model is for BHD angular control.
It is basically the same as c1hpc, but it is for PIT and YAW dithering of LO1, LO2, AS1, AS4.
c1su2 (host: c1su2) Attachment #2
LSC and ASCPIT/YAW feedback signals from c1hpc and c1bac via shared memory were added to send them to corresponding optics.
Somehow Mux/Demux didn't work to send SHMEM signals inside the subsystem in the Simulink model (this works for ADC, but probably not for IPC stuff?), and we had hard time make-install-ing this model.
c1lsc (host: c1lsc) Attachment #3
DCPD A/B signals from c1hpc via PCIE were added for our new error signals for LSC.
Starting and restarting the models
After having some troubles make-install-ing modified models (be careful of goto and from tags!), we stopped all the models in c1sus, c1ioo, c1lsc, c1sus2 and started all of them, including new c1hpc and c1bac models.
This somehow created RFM errors in c1scx and c1scy.
So, we proceeded to do the same step we did in 40m/16887 and 40m/15646, now including c1sus2 for the restart.
Initial attempt made c1lsc, c1sus, c1ioo mostly red, so scripts/cds/rebootC1LSC.sh was run again on pianosa.
RFM issues for c1scx and c1scy were solved.
Shared memory within c1sus2 seems to be working, but sending DCPD A/B signals from c1hpc to c1lsc is not working (see Attachement #4).
- Fix C1:HPC-LSC_DCPC_A/B issue
- Make/modify MEDM screens
In the attachment please find a comparison of error signals of simulation and reality. For C1:IOO-WFS1/2_PIT_IN1 excess signal ('belly') between a few Hz up to 70-80 Hz might be caused by air turbulence (which is not included in the simulation).
We learned about the auxillary laser control loop, and then went into the lab to identify the components and cables represented by our transfer functions. We connected to the SR785 inside the lab so that we can use it to insert noise next time, and measure the output in various parts of the control loop.
After discussing with Anchal, we decided to route BHD related PD signals directly to ADC of c1sus2, which handles our new suspensions including LO1, LO2, AS1, AS4, so that we can control them directly.
BHD related PD signals will be sent to c1lsc for DARM control.
Re-cabling was done, and now they are online at C1:X07-MADC1_EPICS_CH16 (DC PD A) and CH17 (DC PD B) with 15ft DB9 cable.
Here, DC PD A is the transmission of BHD BS for AS beam, and DC PD B is the reflection of BHD BS for AS beam (see attached photo).
Over the weekend, I ran freeSwing test with sequential kicks in specific DOFs for LO1, ITMY, ITMX. LO1 results were successfully used to diagonalize LO1 input matrix. There are some issues for ITMY, ITMX still. I could not run LO2 test.
The free swing test ran successfully, resonant frequencies for different DOFs was extracted, and new input matrix was calculated. The new matrix was only slightly different from before and it worked fine with existing damping loops. The observed resonance frequencies were different from previous values by POS: -6 mHz, PIT : -3 mHz, YAW: -9 mHz, SIDE: -2 mHz. Attached are the diagonalization result.
The peculiarity of ITMX remained even after the second free swing test. The calculated input matrix is very different from existing one with sign flips across PIT and POS rows. I found that our LR osem is always bright in ITMX at the current alignment position. I see that LR osem comes in range when C1:SUS-ITMX_PIT_COMM is raised above 0.5. Maybe we should run this test when we know for sure ITMX is in correct position.
In ITMY on the other hand, I found that SIDE OSEM was completely bright. This happened during the YAW kick to ITMY. We'll need to reduce kick amplitudes for ITMY and redo this test.
For LO2, I could not initiate the test. On reducing the alignment offsets for LO2 (so that it doesn't get stuck in the fre swing test), the damping loops were not working. This is a clear evidence also that input matrix is different for different positions of the optic. We need to think about some other strategy to do this test, maybe see if ideal input amtrix works at no offsets and use that to damp during the test.
In the attachment please find IMC ASC simulation plots. Let me know what you think, if you want some other plots, and if you need any clarification.
Following what we have done in 2013 (40m/8242), actuator calibration was done using MICH.
AS55_Q in MICH : 9.74e8 counts/m
BS : 26.08e-9 /f^2 m/counts
ITMX : 5.29e-9 /f^2 m/counts
ITMY : 4.74e-9 /f^2 m/counts
Optical gain is 25% lower than the measurement in June 6 (40m/16892), probably because our estimate was too rough then and also we now have ~15% lower IMC transmission.
Actuator gains are 2-30% higher than the measurement in 2013.
MICH error signal calibration:
C1:LSC-AS55_Q_ERR was calibrated by taking data with C1:LSC-ASDC_OUT, when Michelson was aligned and free swinging (Attachment #1).
AS55_Q and ASDC were X-Y plotted and fitted with ellipse to get an amplitude of AS55_Q to be 82.51 counts (Attachment #2).
4*pi*A/lambda gives you 9.74e8 counts/m, where meters are in terms of difference between BS to ITMX length and BS to ITMY length.
Jupyter notebook: https://git.ligo.org/40m/scripts/-/blob/main/CAL/MICH/MICHOpticalGainCalibration.ipynb
Openloop transfer function for actuator calibration:
C1:LSC-MICH_GAIN was lowered to -1 (instead of -6), and some of filters are turned off to make the MICH UGF to be ~10.
Also, ellip("LowPass",4,1,40,50) was added to C1:LSC-MICH_A filter bank to cut the feedback above 50 Hz, so that the loop does not suppress the measurement.
The configuration is in Attachment #3.
Actuator calibration of BS, ITMX, ITMY:
With this MICH OLG, transfer functions from C1:LSC-BS,ITMX,ITMY_EXC to C1:LSC-AS55_Q_ERR were measured.
AS55_Q was calibrated to meters using the calibration factor above, and fitted the transfer function with 1/f^2 in 70-150 Hz range to get the actuator efficiency mentioned above (Attachement #4).
Thus, meters in this calibration is in terms of ITM POS motion (not in BS POS motion).
Jupyter notebook: https://git.ligo.org/40m/scripts/-/blob/main/CAL/MICH/MICHActuatorCalibration.ipynb
MICH displacement noise:
Measured values were added to c1cal model as follows.
C1:CAL-MICH_CINV FM2: 1/9.74e8 = 1.03e-9
C1:CAL-MICH_A FM2: 2.608e-8 (it was 2.07e-8 from 2013!)
C1:CAL-MICH_A_GAIN = 0.5 to take into account of C1:LSC-OUTPUT_MTRX_8_2=0.5 in the LSC output matrix for BS
Spectrum of C1:CAL-MICH_W_OUT (now calibrated in nm) with configuration in Attachment #5 was taken.
Attachement #6 is the result. I also took the spectrum with PSL shutter off to measure the sensing noise. The sensing noise limits our sensitivity above ~40 Hz at 5e-11 m/rtHz.
I'm curious why the actual OLTF included the 60Hz comb...? It is undesirable to have such structure in the OLTF around the UGF as it can cause servo instability.
And if you remove them, you don't need to model them :-)
I should write down what I didn't include for completeness:
1. AA filters
2. AS55 input 60Hz comb filter
3. Violin filters
After discussing with Paco, we agreed that the discrepancy in the MICH calibration might come from the IQ mixing angle which for the IFO is not optimized, while in Finesse is set such that all the amplitude is in one quadrature.
I made some progress in modeling MICH loop.
Putting all the LSC and SUS filters together with the MICH Finesse model I constructed an OLTF model and plot it with the measurement done by Paco and Yuta in this elog (attachment 1).
There are 2 unknown numbers that I had to adjust in order to fit the model with the measurement:
1. The SUS damping loop gain (found to be ~ 2.22), which seems to vary wildly from SUS to SUS.
2. The coil driver gain (found to be 45), which I should measure.
I find coil_driver_gain*SUS_damping_filter_gain by increasing it until the SUS damping loop becomes unstable.
The coil driver gain I find by making the measurement and model overlap.
However, there is one outstanding discrepancy between the measurement and the model: Paco and Yuta measure the MICH calibration to be 1.3e9 cts/m while my model shows it to be 1.3e10 cts/m, an order of magnitude larger.
We used a python script to collect data from the SR785 remotely. The SR785 is now connected to the wifi network via Ethernet port 7.
I used the same fre swing data to diagnolize input matrices of following optics:
MC1, MC2, MC3
BS ETMX ETMY
AS1 AS4 SR2 PR2 PR3
For all these optics, the new input matrices worked well. Next step should be to take the local damping open loop transfer functions and standardize the loops to same UGF.
What didn't work:
All diagonalization results are present in https://git.ligo.org/40m/scripts/-/tree/main/SUS/InMatCalc
For looking at the results at this point, go to this commit: https://git.ligo.org/40m/scripts/-/tree/7ef6a47d1b2051a0732f46477624a9e625737fe8
We recovered the LO beam on the BHD port. To do this, we first tried reverting to a previously "good" alignment but couldn't see LO beam hit the sensor. Then we checked the ITMY table and couldn't see LO beam either, even though the AS beam was coming out fine. The misalignment is likely due to recent changes in both injection alignment on TT1, TT2, PR2, PR3, as well as ITMX, ITMY. We remembered that LO path is quite constrained in the YAW direction, so we started a random search by steering LO1 YAW around by ~ 1000 counts in the negative direction at which point we saw the beam come out of the ITMY chamber
We proceeded to walk the LO1-LO2 in PIT mostly to try and offload the huge alignment offset from LO2 to LO1 but this resulted in the LO beam disappearing or become dimmer (from some clipping somewhere). This is WiP and we shall continue this alignment offload task at least tomorrow, but if we can't offload significantly we will have to move forward with this alignment. Attachment #1 shows the end result of today's alignment.
The model can be summarized with these lines of code (I assume that the product of the ADCs(DACs) and and whitening(dewhitening) filters is unity):
BS2AS55 = TFs["AS_f2"]["BS"]
PD_responsivity = 1e3*0.8 #V/W
ADC_TF = 3276.8 #cts/V
demod_gain = 6.77 #According to https://wiki-40m.ligo.caltech.edu/Electronics/LSC_demoddulators
whitening_gain = 10**(24/20) #24 dB
BS2MICH = BS2AS55*PD_responsivity*demod_gain*whitening_gain*ADC_TF
DAC_TF = 6.285e-4 #V/cts, elog 16161
coil_TF = 0.016 #Newton/Ampere per coil, elog 15846
coil_R = 20e3 #Ohm
actuation_TF = DAC_TF*coil_TF/coil_R
OLTF = (BS2MICH*MICH_ctrl_cmplx*-6*0.5 + OSEM_filters_cmplx*OSEM_TF*2.22)*coil_filters_cmplx*actuation_TF*SUS_cmplx*45
[Paco, Tomislav, Yuta]
Somehow, when we were trying to measure WFS open loop transfer functions, PMC unlocked many times for the past two hours and PMC transmission got low.
PMC iput beam was aligned again, and IMC WFS DC offsets and RF offsets were adjusted.
PMC transmission is now C1:PSL-PMC_PMCTRANSPD~0.75, and IMC transmission is C1:IOO-MC_TRANS_SUM~1.4e4.
Actually, IMC transmission once reached 1.5e4 at 06-16-2022 20:01 UTC with PMC transmission of 0.75 (see Attached). There might be a better alignment.
We went to the end Xarm station and looked at the green laser setup and electronics. We fiddled with the SR-785 and experimented with low-pass filters, and will be exploring the Python script tomorrow.