40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log, Page 18 of 344  Not logged in ELOG logo
ID Date Authorup Type Category Subject
  17263   Sat Nov 12 21:59:24 2022 AnchalFrogsComputer Scripts / ProgramsFSS SLOW servo not running

I stopped the Docker PID script and started the old python script on megatron. Instructions on how to do this are here.

On optimus I ran:

sudo docker stop scripts_PID_FSS_Slow_1

On megatron I ran:

sudo systemctl enable FSSSlow
sudo systemctl restart FSSSlow

However, the daemon service keeps failing and restarting. So currently the FSSSlow is not running. I do not know how to debug this script.

On a side note, I tested the docker service by restarting it, and it was working. From the logs, it seems like it got stuck because it could not find C1:IOO-MC_LOCK channel which occurs when c1psl epics servers fail or get stuck. The blinker on this script runs when the script is running but it does not stop if the script gets stuck somewhere. If someone decides to use this script in the future, they would need to correct error catching so that no reply from caget looks like an error and the script restarts rather than keep trying to get the channel value. Or the blinker implementation should change in the script so that it displays a stuck state.


 Whoever knows about this, please stop that Docker PID and we can just run the old python script on megatron.


  17281   Thu Nov 17 16:48:07 2022 AnchalFrogsComputer Scripts / ProgramsFSS SLOW servo running Now

I've moved the FSS Slow PID script running to megatron through systemd daemons. The script is working as expected right now. I've updated megatron motd and the always running scripts page here.

  17286   Fri Nov 18 17:00:15 2022 AnchalUpdateSUSMC1 and MC3 OSEMs calibrated using MC_F

After the MC1 osem dewhitening was fixed, I did the calibration of MC1 OSEM signals using MC_F using this notebook. A 0.1 Hz oscillation with amplitude of 1000 cts was sent to MC1 lockin2 and was kept on between 1352851381 and 1352851881. Then I read back the data from DQ channels and performed a welch with standard deviation calculation from the different segments used. From this measurement, I arrive to the following cts2um gain values that were changed in MC1 filter file. The damping remained stable after the changes:

UL: 0.09 -> 0.105(12)
UR: 0.09 -> 0.078(9)
LR: 0.09 -> 0.065(7)
LL: 0.09 -> 0.087(10)

I followed the same method for MC3 as well to get mroe meaningful error bars. This measurement was done between 1352856980 and 1352857480 using this notebook. Here are the changes made:

UL: 0.39827 -> 0.509(57)
UR: 0.33716 -> 0.424(48)
LR: 0.335 -> 0.365(40)
LL: 0.34469 -> 0.376(43)

The larger error bars could be due to more noisy MC3 osem outputs as the satellite amplifier gain is lower here.

  17289   Sun Nov 20 13:42:21 2022 AnchalUpdateSUSIMC test

I repeated this test for the following configuration:

  • PSL shutter closed at good IMC transmission
  • Offset value of 14000 written to C1:IOO-MC_TRANS_SUM_FILT_OFFSET
  • WFS loops ON but ASCPIT outputs of the optics were turned off.

The test ran for 4000 seconds between following timestamps:

start time: 1352878206
stop time: 1352882207

This script was used to run this test and can be used again in future to repeat the same test.

  17295   Mon Nov 21 18:33:05 2022 AnchalUpdateSUSMC2 OSEMs calibrated using MC_F

Repeated this for MC2 using the error measurement technique mentioned in 40m/17286 using this notebook. Following are the cts2um gain changes:

UL: 0.30408 -> 0.415(47)
UR: 0.28178 -> 0.361(39)
LR: 0.80396 -> 0.782(248)
LL: 0.38489 -> 0.415(49)

I averaged 19 samples to get these values hoping to have reached systematic error limit. The errors did not change from a trial with 9 samples except for the LR OSEM.
  17298   Tue Nov 22 10:29:31 2022 AnchalSummarySUSITMY Coil Strengths Balanced

I followed this procedure to balance the coil strengths on ITMY. The position sensor was created by closing PSL shutter so that IR laser is free running, and locking the green laser to YARM, this makes C1:ALS-BEATY_FINE_PHASE_OUT a position sensor for ITMY. The oplev channels C1:SUS-ITMY_OL_PIT_IN1 and C1:SUS-ITMY_OL_YAW_IN1 were used for PIT and YAW sensors. Everything else followed the procedure. The coil gains were changed as follow:

C1:SUS-ITMY_ULCOIL_GAIN :   1.036 -> 1.061
C1:SUS-ITMY_URCOIL_GAIN : -1.028 -> -0.989
C1:SUS-ITMY_LRCOIL_GAIN :   0.930 -> 0.943
C1:SUS-ITMY_LLCOIL_GAIN : -1.005  -> -1.007

I used this notebook and this diaggui to do this balancing.

  17301   Wed Nov 23 11:06:08 2022 AnchalUpdateBHDc1hpc and c1sus modified to add BS dither and demodulation option

c1hpc has option of dithering BS now (sending excitation to BS LSC port to c1sus over IPC). This is available for demodulating BHDC and BH55 signals. Also BS is a possible feedback point, however, we would stick to using LSC screen for any MICH locking.

c1sus underwent 2 changes. All suspension models were upgraded to the new suspension model (see 40m/16938 and 40m/17165). Now the channel data rates are set in simulink model and activateDQ script is not doing anything for any of the suspension models.

  17310   Thu Nov 24 11:23:35 2022 AnchalUpdateSUSLow noise state

I've turned off HEPA fan and all lights at
PST: 2022-11-24 11:23:59.509949 PST
UTC: 2022-11-24 19:23:59.509949 UTC
GPS: 1353353057.509949

c1ioo model has been updated to acquire C1:IOO-MC2_TRANS_PIT_OUT  and C1:IOO-MC2_TRANS_YAW_OUT at 512 Hz rate.

I'll update when I turn the HEPA on again. I plan to turn it on for a few hours everyday to keep the PSL enclosure clean.

Turned on HEPA again at:

PST: 2022-11-25 12:14:34.848054 PST
UTC: 2022-11-25 20:14:34.848054 UTC
GPS: 1353442492.848054

However this was probably not a low noise state due to vacuum disruption mentioned here.

  17311   Thu Nov 24 15:37:45 2022 AnchalUpdateASCIMC WFS output matrix diagonalization effort

I tried following the steps and the method I was using converged to same output matrix upto 2 decimal points but there is still left over cross coupling as you can see in Attachment 1. With the new output matrix, WFS loop can be turned on with full overall gain of 1.


  • I switched off +20dB FM2 on C1IOO-WFS1_PIT and increased gain C1:IOO-WFS1_PIT_GAIN from 0.1 to 1 to be uniform with other filters.
  • Output matrix change:
    • Old matrix:
      -2.   4.8 -7.3
       3.6  3.5 -2. 
       2.   1.  -6.8
    • New Matrix:
      3.44  4.22 -7.29
      0.75  0.92 -1.59
      3.41  4.16 -7.21
  • I think the main change that allowed the WFS loop to become stable was the 0,0 element sign change.


  • I made overall gain C1:IOO-WFS_GAIN 0
  • Switched of (0:0.8) FM3 on PIT filter modules (IOO-WFS1_PIT, IOO-WFS2_PIT, IOO-MC2_TRANS_PIT)
  • Changed ramp time to 2 seconds on all these modules
  • Used offset of 10000 for WFS2 and MC2_TRANS, and 30000 for WFS1 (for some reason, response to WFS1 step was much lower than others)
  • Measured the following sensor channels
  • First I took 30s average of these channels, then applied the offsets in the three modules one by one and recorded steps in each sensor.
  • Measured step from reference value taken before, and normalized each step to the DOF that was actually stepped to get a matrix.
  • Inverted this matrix and multiplied with existing output matrix. Made sure column norm1 is same as before and column signs are same as before.
  • Repeated a few times.

Note: The standard deviation on the averages was very high even after averaging for 30s. This data should be averaged after low passing high frequencies but I couldn't find the filter module medm screens for these signals, so I just proceeded with simple averaging of full rate signal using cdsultis avg command.

Fri Nov 25 12:46:31 2022

The WFS loop are unstable again. This could be due to the matrix balancing done while vacuum was disrupted. The above matrix does not work anymore.

  17312   Fri Nov 25 12:15:46 2022 AnchalUpdateVACVacuum Gate valves restored

I came today to find that PSL shutter was closed. I orginially thought some shimmer obersvations are underway in the quiet state. But that was not the case. When I tried to open the shutter, it closed back again indicating a hard compliance condition making it close. This normally happens when vacuum level is not sufficient, so I opened the vacuum screena dn indeed all gate valves were closed. This most probably happend during this interlock trip. So the main volume was just slowly leaking and reached to milli torr level today.

Lesson for future: Always check vacuum status when interlock trips.

[Paco, Anchal]

Paco came by to help. We went to asia (the Asus laptop at vacuum workstation) but could not open the medm or find the nfs mounted files. The chiara change did something and nfs mounted directories are not available on asia of c1vac. We rebooted asia and the nfs mount was working again. We can't simply restart c1vac because it runs acromag channels for vacuum system and needs to be done more carefully, a task for Monday.

After restarting asia, we opened the the vacuum control medm screen and followed the vaccum pump down instructions (mainly opening of the gate vales as the pumps were already on). Point to keep in mind, rule of thumb, do not open valve between a turbo pump and a volume if the pressure differential is more than 3 orders of magnitude. Saving turbo pumps is the priority.. Now the main volume is pumping down.

  17313   Fri Nov 25 15:35:23 2022 AnchalUpdateSUSLow noise state

Turned off HEPA at:

PST: 2022-11-25 15:34:55.683645 PST
UTC: 2022-11-25 23:34:55.683645 UTC
GPS: 1353454513.683645

Turned on HEPA back at:

PST: 2022-11-28 11:14:31.310453 PST
UTC: 2022-11-28 19:14:31.310453 UTC
GPS: 1353698089.310453

  17315   Mon Nov 28 11:15:23 2022 AnchalUpdateCDSFront ends DAC Kill (DK) got activated; restored FEs

[Anchal, Paco, Yehonathan, JC]

Last night at 9:15 pm PST (Nov 27th, 2022) some kind of disruption happened to FEs. See attachment 1 to see the changes in FE state words of the IOP models. on c1lsc, c1sus and c1scex, change of 140 happend, that's 2nd, 3rd and 7th bit of the FE word was flipped, which I think is the TIM, ADC and DAC KILL (DK). When we came in morning, IMC suspensions were undamped and not responsive to coil kicks, vertex suspensions the same case, ETMX also same. The c1sus2 modelw as all in red.

To fix this, we restarted all rtcds models on all FEs by sshing into the computers and doing:

rtcds restart --all

Then we burt restored all models to 27th Nov, 3:19 am point doing following on rossa:

~>cd /opt/rtcds/caltech/c1/Git/40m/scripts/cds
cds (main)>./burtRestoreAndResetSUS.sh /opt/rtcds/caltech/c1/burt/autoburt/snapshots/2022/Nov/27/03:19

Note: this issue was previously seen when fb1 was restarted without shutting down the FEs, and once when the martian switch was disrupted while FE models were running.

I'm not sure why this happened this time, what caused it at 9:15 pm yesterday, and why only c1lsc, c1sus and c1iscex models went to DAC KILL state. This disruption should be investigated by cds upgrade team.

  17317   Mon Nov 28 16:53:22 2022 AnchalSummaryBHDF2A filters on LO1 LO2 AS1 and AS4

[Paco, Anchal]

I changed the script in /opt/rtcds/caltech/c1/Git/40m/scripts/SUS/outMatFilters/createF2Afilters.py to read the measured POS resonant frequencies stored in /opt/rtcds/caltech/c1/Git/40m/scripts/SUS/InMatCalc/resFreqs.yml instead of using the estimate sqrt(g/len). I then added Q = 3 F2A filters into FM1 output filter of LO1, LO2, AS1 and AS4 suspensions in anticipation of BHD locking scheme work.

  17320   Mon Nov 28 20:14:27 2022 AnchalUpdateASCAS WFS proposed path to IMC WFS heads

In Attachment 1, I give a plan for the proposed path of AS beam into the IMC WFS heads to use them temporarily as AS WFS. Paths shown in orange are the existing MC REFL path, red for the existing AS path, cyan for the proposed AS path, and yellow for the existing IFO refl path.  We plan to overlap AS beam to the same path by installing the following new optics on the table:

  • M1 will be a new mirror mounted on a flipper mount reflecting 100% of AS beam to SW corner of the table.
  • M2 will be a new fixed mirror for steering the new AS beam path to match with MC WFS path.
  • M3 will be the existing beamsplitter used to pick off light for MC refl camera. We'll just mount this on a flipper so that it can be removed from the path. Precaution will be required to protect the CCD from high intensity MC reflection by putting on more ND filters.
  • The AS beam would need to be made approximately 1 mm in beam width. The required lenses for this would be placed between M1 and M2.

I request people to go through this plan and find out if there are any possible issues and give suggestions.

PS: Thanks JC for the photos. I got it from foteee google photos. It would be nice if these are also put into the 40m wiki page for photos of optical tables.

RXA: Looks good. I'm not sure if ND filters can handle the 1 W MC reflection, so perhaps add another flipper there. It would be good if you can measure the power on the WFS with a power meter so we know what to put there. Ideally we would match the existing power levels there or get into the 0.1-10 mW range.

  17322   Tue Nov 29 15:32:32 2022 AnchalUpdateBHDc1hpc model updates to support double audio dither

Many changes have been done to c1hpc to support dual demodulation at audio frequencies. We moved away with ASS style of lockin setup as the number of connections and screens required would become very large. Instead now, the demodulation is done for a selected oscillator, on a selected signal. Similarly, the demodulated signal can be further demodulated for another selected oscillator. Please familarize yourself with new screen and test the new model. The previous version of the model is kept as backup alogn with all it's medm screens, so nothing is lost. Shown as an example in the screenshot, AS1 and BS oscillators can be turned on, and BHDC_DIFF signal can be demodulated first with BS and next with AS oscillator to get the signal.

  17329   Thu Dec 1 20:43:25 2022 AnchalSummaryCalibrationSingle arm cal with 5 lines

[Anchal, Paco]

We are doing this attempt again in following configuration:

  • PSL shutter is closed. (So IR laser is free running)
  • Beanote frequency between Y arm and Main laser is about 45 MHz.
  • Green laser on Y end is locked. Transmission is above 1.1 (C1:ALS-TRY_OUT)
  • All calibration oscillators are turned on and set to actuate ITMY. See screenshot attached.
  • The calibration model was changed to demodulate the C1:ALS-BEATY_FINE_PHASE_OUT channel insteald. We'll have DQ channels before mixing with oscillator, after mixing, and also after applying a 4th order 30 Hz butterworth filter.

Start time:

PST: 2022-12-01 20:44:23.982114 PST
UTC: 2022-12-02 04:44:23.982114 UTC
GPS: 1353991481.982114

Stop time:

PST: 2022-12-02 14:32:29.547603 PST
UTC: 2022-12-02 22:32:29.547603 UTC
GPS: 1354055567.547603

  17331   Sat Dec 3 10:13:56 2022 AnchalUpdateSUSLow noise state

I've turned off HEPA fan and all lights at:

PST: 2022-12-03 10:13:03.184705 PST
UTC: 2022-12-03 18:13:03.184705 UTC
GPS: 1354126401.184705

  17332   Sat Dec 3 17:42:25 2022 AnchalUpdateASCIMC WFS Fixed for now

Today I did a lot of steps to eventually reach to WFS locking stably for long times and improving and keeping the IMC transmission counts to 14400. I think the main culprit in thw WFS loop going unstable was the offset value set on MC_TRANS_PIT filter module  (C1:IOO-MC_TRANS_PIT_OFFSET). This value was roughly correct in magnitude but opposite in sign, which created a big offset in MC_TRANS PIT error signal which would integrate by the loops and misalign the mode cleaner.

WFS offsets tuning

  • I ran C1:IOO-WFS_MASTER > Actiona > Correct WFS DC offsets script while the two WFS heads were blocked.
  • Then I aligned IMC to maximize transmission. I also made PMC transmission better by walking the input beam.
  • Then, while IMC is locked and WFS loops are off, I aligned the beam spot on WFS heads to center it in DC (i.e. zeroing C1:IOO-WFS1_PIT_DC, C1:IOO-WFS1_YAW_DC, C1:IOO-WFS2_PIT_DC, C1:IOO-WFS2_YAW_DC)
  • Then I ran C1:IOO-WFS_MASTER > Actiona > Correct WFS DC offsets script while keeping IMC locked (note the script says to keep it unlocked, but I think that moves away the beam). If we all agree this is ok, I'll edit this script.
  • Then I checked the error signals of all WFS loops and still found that C1:IOO-MC_TRANS_PIT_OUTPUT and C1:IOO-MC_TRANS_YAW_OUTPUT have offsets. I relieved these offsets by averaging the input to these filter moduels for 100s and updating the offset. This is where I noticed that the PIT offset was wrong in sign.

WFS loops UGF tuning

  • Starting with only YAW loops, I measured the open loop transfer functions (OLTFs) for each loop by simultaneously injecting gaussian noise from 0.01 Hz to 0.5 Hz using diaggui at the loop filter module excitation points and taking ration of IN1/IN2 of the filter modules.
  • Then I scaled the YAW output matrix columns to get UGF of 0.1 Hz when YAW loop was along turned on.
  • Then I tried to do this for PIT as well but it failed as even with overall gain of 0.1, the PIT loops actuate a lot of YAW motion causing the IMC to loose lock eventually.
  • So I tried locking PIT loops along with YAW loops but with 0.1 overall gain. This worked for long enough that I could get a rough estimate of the OLTFs. I scaled the columns of PIT output matrix and slowly increased the overall gain while repeating this step to get about 0.1 Hz UGF for all PIT loops too.
  • Note though that the PIT loop shape did not come out as expected with a shallower slope and much worse coherence for same amount of excitation in comparison to YAW loops. See attached plots.
  • Never the less, I was able to reach to an output matric which works at overall gain of 1. I tested this configuration for atleast 15 minutes but the loop was working even with 6 excitations happening simultaneously for OLTF measurement.
  • We will need to revisit PIT loop shapes, matrix diagonalization, and sources of noise.

OLTF measurements were done using this diaggui file. The measurement file got deleted by me by mistake, so I recreated the template. Thankfully, I had saved the pdf of the measurements, but I do not have same measurement results in the git repo.


  17334   Sun Dec 4 16:44:04 2022 AnchalUpdateASCIMC WFS Fixed for now

Today, I worked on WFS loop output matrix for PIT DOFs.

  • I began with the matrix that was in place before Nov 15.
  • I followed the same method as last time to fist get all UGFs around 0.06 Hz with overall gain of 0.6 on the WFS loops.
  • This showed me that MC2_TRANS_PIT loop shape matches well with the nice working YAW loops, but the WFS1 and WFS2 loops still looked flat like before.
  • This indicated that output matrix needs to be fixed for cross coupling between WFS1 and WFS2 loops.
  • I ran this script WFSoutMatBalancing.py which injects low frequency (<0.5 Hz) oscillations when the loops are open, and measures sensing matrix using error signals. I used 1000s duration for this test.
  • The direct inverse of this sensing matrix fixed the loop shape for WFS1 indicating WFS1 PIT loop is disentangled from WFS2 now.
  • Note this is a very vague definition of diagonalization, but I am aiming to reach to a workign WFS loop asap with whatever means first. Then we can work on accurate diagonalization later.
  • I simply ran the script WFSoutMatBalancing.py again for another 1000s and this time the sensing matrix mostly looked like an identity.
  • I implemented the new output matrix found by direct inversion and took new OLTF.Again though, the WFS2_PIT loop comes out to be flat. See Attachment 1.
  • Then noting from this elog post, I reduced the gain values on MC2 TRANS loops to 0.1 I think it is better to use this place to reduce loop UGF then the output matrix as this will remind us that MC2 TRANS loops are slower than others by 10 times.
  • I retook OLTF but very unexpected results came. The overall gain of WFS1_YAW and WFS2_YAW seemed to have increased by 6. All other OLTFs remained same as expected. See attachment 2.
  • To fulfill the condition that all UGF should be less than 0.1 Hz, I reduced gains on WFS1_YAW and WFS2_YAW loops but that made the YAW loops unstable. So I reverted back to all gains 1.
  • We probably need to diagonalize Yaw matrix better than it is for letting MC2_TRANS_YAW loop to be at lower UGF.
  • I'm leaving the mode cleaner in this state and would come back in an hour to see if it remains locked at good alignment. See attachment 3 for current state.

Sun Dec 4 17:36:32 2022 AG: IMC lock is holding as strong as before. None of the control signals or error signals seem to be increasing monotonously over the last one hour. I'll continue monitoring the lock.

Mon Dec 5 11:11:08 2022 AG: IMC was locked all night for past 18 hours. See attachment 4 for the minute trend.

  17335   Mon Dec 5 12:05:29 2022 AnchalUpdateCDSc1sus2 all FE models crashed spontaneously

Just a few minutes ago, all models on FE c1sus2 crashed. I'm attaching some important files that can be helpful in investigating this. CDS upgrade team, please take a look.

I fixed this by running following on c1sus2:

controls@c1sus2:~$ rtcds restart --all
  17336   Mon Dec 5 16:24:45 2022 AnchalUpdateASCIMC WFS servo diagnosis

Also reply to: 40m/17255

I ran the toggleWFSoffsets.py script to generate a step response of the WFS loops in operation. Attachment 1 shows the diaggui measured time response following the parameters mentioned in 40m/17255. There are few things to quickly note from this measurement without doing detailed analysis:

  • WFS2_PIT is heavily cross-coupled with WFS1_PIT and MC2_TRANS_PIT. This was also the inference from the previous post based on loop shape for WFS2_PIT loop. This needs to be fixed.
  • Weirdly enough, it seems that WFS2_PIT is also cross coupled with MC2_TRANS_YAW.
  • MC2_TRANS_PIT is not coupled to WFS1_PIT or WFS2_PIT. This was the major issue in last measurement in 40m/17255.
  • WFS1_PIT is coupled to MC2_TRANS_PIT by about half, but is not cross-coupled to WFS2_PIT.
  • For YAW, the DOFs are mostly disentangled except for a cross coupling of WFS1_YAW to MC2_TRANS_YAW by about 60%.

To get out the UGF of the loops from the step responses, I need to read this into python and apply the same filters and analyze time constants. I still have to do this part, but I thought I'll put out the result before spending more time on this.

  17337   Mon Dec 5 20:02:06 2022 AnchalUpdateASCIMC WFS heads electronic feasibility test for using for Arm ASC

I took transfer function measurement of WFS2 SEG4 photodiode between 1 MHz to 100 MHz in a linear sweep.

Measurement details:

  • The reincarnated Jenne laser head was used for this test. The laser diode is 950 nm though, which should just mean a different responsivity of the photodiode while we are mainly interested in relative response of the WFS heads at 11 MHz and 55 MHz with respect to 29.5 MHz.
  • See attachment 2 for how the laser was placed on AP table.
  • The beam was injected in between beam splitter for MC reflection camera and beam splitter for beam dump.
  • The input was aligned such that all the light of the laser was falling on Segment 4 of WFS2.
  • Using moku, I took RF transfer function from 1 MHz to 100 MHz, 512 points, linearly spaced, with excitation amplitude of 1 V and 100,000 cycles of averaging.
  • Measurement data and settings are stored here.


Relative to 29.5 MHz, teh photodiode response is:

  • At 11 MHz: -20.4 dB
  • At 55 MHz: -36.9 dB
  • At 71.28 MHz: -5.9 dB

I'm throwing in an extra number at the end as I found a peak at this frequency as well. This means to use these WFS heads for arm ASC, we need to have 10 times more light for 11 MHz and roughly 100 times more light for 55 MHz. According to Gautam's thesis Table A.1 and this elog post, the modulation depth for 11 MHz is 0.193 and for 55 MHz is 0.243 in comparison to 0.1 for 29.5 MHz., so the sideband TEM00 light available for beating against carrier TEM01/TEM10 is roughly twice as much for single arm ASC. That would mean we would have 5 times less error signal for 11 MHz and 40 times less error signal for 55 MHz. These are rough calculations ofcourse.


  17342   Tue Dec 6 16:52:26 2022 AnchalUpdateASCIMC WFS heads electronic feasibility test for using for Arm ASC

I tested teh WFS demod board for possibility of demodulating 11 MHz or 55 MHz signal with it. It definitely has some bandpass filter inside as the response is very bad for 11 MHz and 55 MHz. See attached the ASD curves for the excitations seens on I and Q inputs of WFS1 Segment 2 when it was demodulated with a clock of different frequencies but same amplitude of 783.5 mVpp (this was measured output of 29.5 MHz signal from RF distribution board). See attachments 2-4 for mokulab settings. Note for 29.5 MHz case, I added an additional 10 dB attenuator to output 1.

The measurement required me to change signal power level to see a signal of atleast 10 SNR. If we take signal level of 29.5 MHz as reference, following are the responses at other frequencies:

  • At 11 MHz:
    • I: -92 dB
    • Q: -97 dB
  • At 55 MHz:
    • I: -75 dB
    • Q: -72 dB

Note that I and Q outputs are unbalanced as well for the two different demodulation frequencies.

This means that if we want to use the WFS demodulation boards as is, we'll need to amplify the photodiode signal by the above amounts to get same level of outputs. I stil need to see the DCC document of these board and if the LO is also bandpassed. In which case, we can probably amplify the LO to improve the demodulation at 11 and 55 MHz. THe beatnote time series for the measured data did not show an obvious sinusoidal oscillation, so I chose to not show a plot with just noise here.


  15851   Mon Mar 1 11:40:15 2021 Anchal, PacoSummaryIMCgetting familiar with IMC controls

[Paco, Anchal]

tl;dr: Done no harm, no lasting change.

Learn burtgooey

- Use /cvs/cds/caltech/target/c1psl/autoBurt.req as input to test snapshot "/users/anchal/BURTsnaps/controls_1210301_101310_0.snap" on rossa after not succeeding in donatella

- Browse /opt/rtcds/caltech/c1/burt/autoburt/snapshots/TODAY just to know where the snapshots are living. Will store our morning work specific snapshots in local user directories (e.g. /users/anchal/BURTsnaps)

Identifying video monitors

- Switched channels around on video controls; changed C1:VID-MON7 to 16, back to 30, then C1:VID-QUAD2_4 to 16, to 18, then 20, back to 16, to 14 (which identified as PMCT), to 1 (IMC). Anyways, looks like IMC is locked.

[Yehonathan, Paco, Anchal]

Unlocking MC

- From IOO/LockMC, MC_Servo, FSS --> closed PSL shutter, reopen it and see the lock recovers almost instantly. Try MCRFL shutter, no effect. Toggled PSL shutter one more time, lock recovered.

- From IOO/LockMC, MC_Servo, toggle OPTION (after IP2A), lose and recover lock in similar fashion. MCRFL gets most of the light.

- Looked at IFO_OVERVIEW just to get familiar with the various signals.


  15982   Wed Mar 31 22:58:32 2021 Anchal, PacoUpdateSUSMC2 Coil Balancing Test

A cross-coupling test has been set to trigger at 05:00 am on April 1st, 2021. The script is waiting on tmux session 'cB' on pianosa. /scripts/SUS/OutMatCalc/MC2crossCoupleTest.py is being used here. The script will switch on oscillator in LOCKIN1 of MC2 at 13 Hz and 200 counts and would send it along the POS, PIT and YAW vectors on output matrix one by one, each for 2 minutes. It will take data from C1:IOO-MC_F_DQ, C1:IOO-MC_TRANS_PIT_ERR and C1:IOO-MC_TRANS_YAW_ERR and use it to measure 'sensing matrix' S. Sensing matrix S is defined as the cross-coupling between excited and sensed DOF and we ideally want it to be an identity matrix. The code will use the measured S to create a guess matrix A which on being multiplied by ideal coil output matrix would give us a rotated coil output matrix O. This guess O will be applied and the measurement will be repeated. On each iteration, next, A matrix is defined by:

A_{k+1} = (1 + \beta) A_k - \beta S_k A_k

This recursive algorithm converges A to the inverse of initial S. The above relation is derived by noticing that in steady state A S = \mathrm{I} \Rightarrow A = A S A \Rightarrow A = A - \beta(A S A - A). I've taken this idea from a mathematics paper I found on some more complex stuff (c.f. https://doi.org/10.31219/osf.io/yrvck).

At each iteration, all three matrices A, O and S will be stored in a text file for analysis later.

The code has the error-catching capability and would restore the optic to the status quo if an error occurs or watchdogs trip due to earthquakes.

  15984   Thu Apr 1 13:56:49 2021 Anchal, PacoUpdateSUSMC2 Coil Balancing Test Results

The coil balancing attempt failed. The off-diagonal values in the measured sensing matrices either remained the same or increased.

The attempt in the morning was too slow. By the time we reached, it had reached to iteration 7 only and still nowhere near optimum sensing matrix had reached. We still needed to see if the optimum would eventually reach if more iterations happened.

<Radhika came for shadowing us and learning about 40m>

So we worked a bit on speeding up the data loading process and then ran the code again which now was running much faster. Still within 1 hr or so, we saw it had reached to iteration 7 with no sign of sensing matrix getting any better.

<Paco left for vaccination>

To determine if the method would work in principle, I decided to stop the current run and start with a 0.5 Hz bandwidth run (so about 7 averages with 8s duration data and welch method). This completed 20 iterations before Gautum came. But it was clear now that the method is not converging to a better solution. Need to find a bug in the implementation of the algorithm mentioned in last post or find a better algoritm.

Attachment 1 is the plot of how the sensing matrix's distance from the identity matrix increased over iterations in the last run.

Attachment 2 is the plot for different off-diagonal terms in the sensing matrix. It is clear that POS->PIT,YAW coupling is not being measured properly as it remains constant.

Attachment 3 Gautum told us that there is some naming error in nds and MC_TRANS_PIT/YAW can be read through C1:IOO-MC_TRANS_PIT_ERR and C1:IOO-MC_TRANS_YAW_ERR channels instead. To test if they indeed point to same values, we did a test of exciting YAW degree through LOCKIN1 and seeing if the peaks are visible in the channels. This was also done to give Radhika an opportunity to do something I could confidently mentor about. and to experience using diaggui.

  15985   Thu Apr 1 18:01:06 2021 Anchal, PacoUpdateSUSMC2 Coil Balancing Test Results Success??

After fixing a few things we felt were wrong in our implementation of the algorithm, we ran the coil balancing for 12 iterations with just 11s per excitation and still taking CSD with 0.1 Hz bandwidth. This time we saw the distance of sensing matrix from identity going down.

Performance Analysis

  • Attachment 1 shows the trend of distance of Sensing matrix from identity matrix over iterations.
  • Attachment 2 shows the trend of off-diagonal terms in sensing matrix over iterations.
  • Attachment 3 shows the ASD for the different sensed DOF when excited in different DOFs with the new output matrix. This is the better truth of what happened by the end. The true sensing matrix is proportional to the peak heights in this plot. Rows are different sensed DOFs (POS, PIT, YAW) and columns are excited DOFs (POS, PIT, YAW). The black dotted curves are ASD when no excitation was present.

Next step

  • We want to run it for longer, more iterations and more duration to get better averaging. Hopefully, this will do a better job. We'll try running this new code tomorrow at 5:00am.
  • We'll work on using uncertainties of measured data.
  • Use awg to excite all DOF together at different frequencies and make the code faster.
  15995   Mon Apr 5 08:25:59 2021 Anchal, PacoUpdateGeneralRestore MC from early quakes

[Paco, Anchal]

Came in a little bit after 8 and found the MC unlocked and struggling to lock for the past 3 hours. Looking at the SUS overview, both MC1 and ITMX Watchdogs had tripped so we damped the suspensions and brought them back to a good state. The autolocker was still not able to catch lock, so we cleared the WFS filter history to remove large angular offsets in MC1 and after this the MC caught its lock again.

Looks like two EQs came in at around 4:45 AM (Pacific) suggested by a couple of spikes in the seismic rainbow, and this.

  16001   Tue Apr 6 18:46:36 2021 Anchal, PacoUpdateSUSUpdates on recent efforts

As mentioned in last post, we earlier made an error in making sure that all time series arrays go in with same sampling rate in CSD calculation. When we fixed that, our recursive method just blew out in all the efforts since then.

We suspect a major issue is how our measured sensing matrix (the cross-coupling matrix between different degrees of freedom on excitation) has significant imaginary parts in it. We discard the imaginary vaues and only use real parts for iterative method, but we think this is not the solution.

Here we present cross-spectral density of different channels representing the three sensed DOFs (normalized by ASD of no excitation data for each involved component) and the sensing matrix (TF estimate) calculated by normalizing the first cross spectral density plots column wise by the diagonal values. These are measured with existing ideal output matrix but with the new input matrix. This is to get an idea of how these elements look when we use them.

Note, that we used only 10 seconds of data in this run and used binwidth of 0.25Hz. When we used binwidth of 0.1 Hz, we found that the peaks were broad and highest at 13.1 Hz instead of 13 Hz which is the excitation frequency used in these measurements.

How should we proceed?

  • We feel that we should figure out a way to use the imaginary value of the sensing matrix, either directly or as weights representing noise in that particular data point.
  • Should we increase the excitation amplitude? We are currently using 500 counts of excitation on coil output.
  • Are there any other iterative methods for finding the inverse of the matrix that we should be aware of? Our current method is rudimentary and converges linearly.
  • Should we use the absolute value of the sensing matrix instead? In our experience, that is equivalent to simply taking ratios of the PSD of each channel and does not work as well as the TF estimate method.
  16007   Thu Apr 8 17:04:43 2021 Anchal, PacoUpdateSUSFirst Successful Coil Balancing

Today, we finally crossed the last hurdle and got a successful converging coil balancing run. laugh

What was the issue with POS?

  • Position of the MC2 mirror is being sensed using C1:IOO-MC_F_DQ channel which is proportional to the resonant frequency of the locked IMC.
  • However, this sensor is always 180 degrees out of phase of our actuator, the coils.
  • When the coils push the mirror forward, the length of the cavity actually decreases.
  • We added an extra option of providing a sign to the sensors such that -1 will be multiplied to sensed values for sensors which measure in opposite direction to the actuation.
  • This is important, because the feedback is applied to the coil output matrix assuming a particular direction of acctuation.
  • When we gave negative sign for the position sensor, it all started making sense and the algorithm started converging.

First run parameters:

  • We used binwidth of 0.25 Hz and duration of excitation as 41s. This would give welch and csd averaging of 19. We used median averaging to ignore outliers.
  • This iteration was run after PIT and YAW were separetly uncoupled before. We'll post a clean start to end run results in near future.
  • The iteration works in following manner:
    • Define a constant coil matrix C = [[1, 1, 1], [1, 1, -1], [1, -1, 1], [1, -1, -1]] which is ideal coil output matrix.
    • In each iteration, the output matrix Ok is defined as (note @ is the matmul operator):
      Ok = C @ Ak
      where Ak is a 3x3 matrix. A-1 is identity matrix.
    • At the end of each iteration, a sensing matrix is calculated in dimensions sensedDOF x excitedDOF, Sk
    • For next iteration, Ak+1 is calcualted by:
      Ak+1 = Ak - b * (Sk - I)
      where I is the identity matrix.
    • At convergence, the sensing matrix would become same as identity and matrix A will stop updating.
  • For this run, we kept the parameter b to be 0.05. This is similar to the KP parameter in PID loops. It should be between 0 and 1.
  • Since b value was small enough to allow for convergence from the inital point, but later it slowed down the process a lot.
  • Ideally, we should figure out a way to increase this paramter when the coil has been balanced somewhat, to increase the speed of the algorithm.
  • Secondly, we have a code which excites all DOFs at different frequencies directly using excitation channels in coil output matrix using awg.py. But for some reason, the excitation channel for 4th row in the output matrix column only connects intermittantly. Because of this, we can't use this method reliably yet. We can investigate more into it if suggested.

Balancing characteristics:

  • Attachment 1 shows how the distance of sensing matrix falls as iterations increase. We only ran for 50 iterations.
  • Attachment 2 shows how different off-diagonal terms of sensing matrix decreased.
    • Note that POS -> PIT, POS -> YAW and PIT-YAW have settled down to the noise floor.
    • The noise floor can be improved by increasing the excitation amplitude and/or increasing the duration of measurement.
  • Attachment 3 shows the evolution of sensing matrix as iterations move.

Final balanced output matrix:

Final balanced output coil matrix for MC2
1.02956 1.13053 1.19116 UL
1.01210 1.09188 -0.74832 UR
0.98737 -0.85502 0.70485 LR
0.96991 -0.89366 -1.23463 LR
Final Sensing Matrix
  Exc POS Exc PIT Exc YAW
Sens POS 1 -2.96e-2 8.00e-3
Sens PIT 8.58e-4 1 -4.84e-3
Sens YAW 5.97e-4 -1.15e-3 1

Code features and next:

  • Majority of the code is in two files: scripts/SUS/OutMatCalc/MC2crossCoupleTest.py and scripts/SUS/OutMatCalc/crossCoupleTest.py .
  • The code runs from start to end without human involevement and restores the state of channels in any case (error, kyboard interrupt, end of code) using finally statement.
  • Currently, each excitation is done one at a time through LockIn1. As mentioned above, this can be sped up 3 times if we get the awg.py to work reliably.
  • The complete code is in python3 and currently is run through native python3 on allegra (a new debian10 workstation with latest cds-workstation installed).
  • The code can be easily generalized for balancing any optic. Please let us know if we should work on making the generalized optic.
  • We're also working on thinking about increasing b as iterations move forward and the error signal becomes smaller.
  • We can also include the uncertainty in the Sensing matrix measurement to provide a weighted feedback. That way, we can probably increase b more.
  16009   Fri Apr 9 13:13:00 2021 Anchal, PacoUpdateSUSFaster coil balancing

We ran again this method but with the 'b' parameter as a matrix instead. This provides more gain on some off-diagonal terms than others. This gave us a better convergence with the code reaching to the tolerance level provided (0.01 distance of S matrix from identity) within 16 iterations (~17 mins).

Attachment 1 again shows how the off-diagonal terms go down and how the overall distance of sensing matrix from identity goes down. This is 'Cross coupling budget' of the coils as iterations move forward.

Jumping to near zero-crossing:

  • Rana mentioned a ezlockin code which first makes 5 step changes in output matrix without using feedback and calculates the changes required to reach zero-crossing in the behavior of the off-diagonal terms during these steps.
  • This is similar to what we did above by hand where we increased the value of b for slowly converging off-diagonal elements.
  • We plan to implement this 'jump' to near zero-crossing method next. Aim is to get a coil balancing code that does the job in ~5 min.
  • We have been throwing away imaginary part of sensing matrix so far. We wanted to get to some owrking solution before we try more complex stuff. We have to figure out global phases in each transfer function estimate to rotate the measured transfer function appropriately.
  16016   Mon Apr 12 08:32:54 2021 Anchal, PacoSummaryPSLPMC unlocked at 2pm on Sunday; ~ Restored

PMC lost lock between 21:00 and 22:00 UTC on April 11th as seen in the summary pages:


That's between 2pm and 3pm on Sunday for us. We're not sure what caused it. We will attempt to lock it back.

Mon Apr 12 08:45:53 2021: we used milind's python script in scripts/PSL/PMC/pmc_autolocker.py. It locked the PMC in about a minute and then IMC catched lock succefully.

However, the PMC transmission PD shows voltage level of about 0.7V. On medm, it is set to turn red below 0.7 and yellow above. In Summary pages in the past, it seems like this value has typically been around 0.74V. Simil;arly, the reflection RFPD DC voltage is around 0.063 V right now while it is supposed to be around 0.04 nominally So the lock is not so healthy.

We tried running this script and the bashscript version too (scripts/PSL/PMC/PMCAutolocker) a couple of times but it was unable to acquire lock.

Then we manually tried to acquire lock by varying the C1:PSL-PMC_RAMP (with gain set to -10 dB) and resetting PZT position by toggling Blank. After a few attempts, we were able to find the lock with transmission PD value around 0.73V and reflection RFPD value around 0.043. PZT control voltage was 30V and shown in red in medm to begin with. So we adjusted the output ramp again to let it come to above 50V (or maybe it just drifted to that value by itself as we could se some slow drift too). At Mon Apr 12 09:50:12 2021 , the PZT voltage was around 58V and shown in green.

We assume this is a good enough point for PMC lock and move on.

  16042   Fri Apr 16 11:36:36 2021 Anchal, PacoUpdateSUSTested proposed filters for POS colum in MC2 output matrix

We tried two sets of filters on the output matrix POS column in MC2. Both versions failed. Following are some details.

How test was done:

  • PSL shutter was closed and autolocker was switch off.
  • Turned off damping on POS, PIT, and YAW using C1:SUS-MC2_SUSPOS_SW2, C1:SUS-MC2_SUSPIT_SW2, and C1:SUS-MC2_SUSYAW_SW2.
  • Reference data was taken with no excitation to get relative increase at excitation.
  • Frist we sent an excitation through LOCKIN1 at 0.11 Hz and 500 counts amplitude.
  • LOCKIN column in MC2 output matrix was kept identical to POS column, so all ones.
  • This formed our reference data set when no filters were used. Attachment 1.
  • Note that the peak at 0.03 Hz is due to LOCKIN2 that was left switched on due to autolocker.
  • Then the calculated filters were loaded using foton. Procedure:
    • Right click on filter bank med. Got to Execute-> Foton.
    • Go to File and uncheck 'Read Only'.
    • Find the filter module name in Module drop down.
    • Select an empty module section in Sections.
    • Write a name for the filter. We used DCcoupF2A and DCcouF2A2 for the two version respectively.
    • Paste the zpk foton format in Command.
    • Check with Bode plot if these are correct filters. Then click on Save. It will take about 30s to become responsive again.
    • GO back to filter bank medm screen and click on 'Load Coefficients'. This should start displaying your new filter module.
    • To switch on the module, click on the button below its name.
  • Once fitlers were loaded, we realized we can not use the LOCKIn to excite anymore as it comes as separate excitation.
  • So we used awggui to excite C1:SUS-MC2_LSCEXC at 0.11 Hz and 500 counts.
  • Then we retook the data and checked if the peaks are visible on PIT and YAW channels and how high they are.

Filer version 1

  • This was calculated by starting from ideal output matrix elements as they are currently loaded. All 1's for POS and so on.
  • The calculations were done in scripts/SUS/OutMatCalc/coilBalanceDC.py.
  • This file uses a state space model of the suspension and calculated the cross-coupling. Then the cross coupling is inverted and applied to the current output matrix elements to get correction DC gains.
  • These corrected DC gains are then used to create the filters as described in last post.
  • Attachment 2 shows the filter transfer functions and Attachment 3 shows the test results. Failed :(.
  • There was practivally no change in cross coupling that we can see.

Filter version 2:

  • In this version we used the output matrix optimized at high frequencies earlier (16009).
  • While testing this version, we also uploaded this optimised output amtrix at high frequency.
  • In this test, we realized the LOCKIN2 was on and switched it off manually. All excitations were done through awggui.
  • Attachment 4 shows the filter transfer functions and Attachment 5 shows the test results. Failed :(.
  • There was again practivally no change in cross coupling that we can see.

Forgot to upload new MC2 input matrix:

  • In hindsight, we should have uploaded our diagonalized suspension input matrix in MC2.
  • Without it, there was cross-coupling the in the sensor data to begin with.
  • But this can only be part of the reason why all our filters failed miserably.
  • Because the output matrix was not diagonalized earlier but it was not so bad. Onyl a fresh test can tell if it was the culprit.
  16049   Mon Apr 19 12:18:19 2021 Anchal, PacoUpdateSUSTested proposed filters for POS colum in MC2 output matrix

The filters were somewhat successful, how much we can see in attachment 1. The tip about difference between eigenmode basis and cartesian basis was the main thing that helped us take data properly. We still used OSEM data but rotated the output from POS, PIT, YAW to x, theta, phi (cartesian basis where x is also measured as angle projected by suspension length).

Eigenmode basis and Cartesian basis:

  • It is important to understand the difference between these two and what channels/sensors read what.
  • Eigenmode basis as the name suggests is the natural basis for the suspended pendulum.
    • It signifies the motion along three independent and orthogonal modes of motion: POS (longitudinal pendulum oscillation), PIT, and YAW.
    • The position of optic can be written in eigenmode basis as three numbers:
      • POS: Angle made by the center of mass of optic with verticle line from suspension point.
      • PIT: Angle made by the optic face with the suspension wires (this is important to note).
      • YAW: Angle made by optic surface with the nominal plane of suspension wires. (the yaw angle basically).
  • Cartesian basis is the lab reference frame.
    • Here we define three variables that can also represent an optic positioned and orientation:
      • x: Angle made by the center of mass of optic with verticle line from suspension point. (Same as POS)
      • \large \theta: Angle made by the optic surface with absolute verticle (z-axis) in lab frame.
      • \large \phi: Twist of the optic around the z-axis. Same as YAW angle above.
  • We want to apply the feedback gains and filters in eigenmode basis because they are a set of known independent modes. (RXA: NOOO!!!!!! read me elog entry on this topic)
  • Hence, the output from input matrix of suspensions comes out at POS, PIT and YAW in the eigenmode basis.
  • However, the sensors of optic positional, and orientation such at MC_F, wave front sensors and optical levers measure it in lab frame and thus in cartesian basis.
  • Essentially, the \large \theta measured by these sensors is different from the PIT calculated using the OSEM sensor data and is related by:
    • \large \theta = PIT - POS, where PIT and POS both are in radians as defined above.
  • When we optimized the cross-coupling in output matrix at high frequencies using the MC_F and WFS data, we actually optimized it In cartesian basis.
  • The three feedback filters from POS, PIT and YAW which carry data in the eigenmode basis need to be rotated into the cartesian basis in the output matrix before application to the coils.
  • The so-called F2A and A2L filters are essentially doing this rotation.
  • Above the resonant frequencies, the PIT and \large \theta become identical. Hence we want our filters to go to unity

The two filter sets:

  • The filters are named Eg2Ctv1 and Eg2Ctv2 on the POS column of MC2 output matrix.
  • This is to signify that these filters convert the POS, PIT, and YAW basis data (eigenmode basis data) into the cartesian basis (x, theta, phi) in which the output matrix is already optimized at higher frequencies.
  • v1 filter used an ideal output matrix during the calculation of filter as described in 16042 (script at scripts/SUS/OutMatCalc/coilBalanceDC.py).
  • Attachment 2 shows these filter transfer functions.
  • v2 filter use the output matrix optimized to reduce cross-coupling amount cartesian basis modes (MC_F, WFS_PIT and WFS_YAW) in 16009.
  • Attachment 3 shows these filter transfer funcitons.
  • Because of this, the v2 filter is different among right and left coils as well. We do see in Attachment 1 that this version of filter helps in reducing POS->YAW coupling too.

Test procedure:

  • We uploaded both the diagonalized input matrix and the diagonalized output matrix as calculated earlier.
  • We measured channels C1:SUS-MC2_SUSPOS_IN1_DQ, C1:SUS-MC2_SUSPIT_IN1_DQ, and C1:SUS-MC2_SUSYAW_IN1_DQ throughout this test.
  • These channels give output in an eigenmode basis (POS, PIT, and YAW) and the rows of the input matrix have some arbitrary normalization.
  • We normalize these channels to have same input matrix normalization as would be for ideal matrix (2 in each row).
  • Then, assuming the UL_SENS, UR_SENS, LR_SENS, and LL_SENS channels that come at input of the input matrix are calibrated in units of um, we calculate the cartesian angles x, theta, phi. for this calculation, we used the distance between coils as 49.4 mm (got it from Koji) and length of suspension as 0.2489 m and offset of suspension points from COM, b = 0.9 mm.
  • Now that we have true measures of angles in cartesian basis, we can use them to understand the effect on cross coupling from the filters we used.
  • PSL shutter is closed and autolocker is disabled. During all data measurements, we switched of suspension damping loops. This would ensure that our low frequency excitation survives for measurement at the measurement channels.
  • We first took reference data with no excitation and no filters for getting a baseline on each channel (dotted curves in Attachment 1).
  • We then send excitation of 0.03 Hz with 500 counts amplitude at C1:SUS-MC2_LSC_EXC and switched on LSC output.
  • One set of data is taken with no filters active (dashed curve in attachment 1).
  • Then two sets of data are taken with the two filters. Each data set was of 500s in length.
  • Welch function is used to take the PSD of data with bin widht of  0.01Hz and 9 averages.


  • Filter v1 was the most successful in reducing \large x \rightarrow \theta coupling by factor of 17.5.
    • The reduction in \large x \rightarrow \phi coupling was less. By a factor of 1.4.
  • Filter v2 was worse but still did a reduction of \large x \rightarrow \theta coupling by factor of 7.8.
    • The reduction in \large x \rightarrow \phi coupling was better. By a factor of 3.3.

Next, filters in PIT columns too

  • We do have filters calculated for PIT as well.
  • Now that we know how to test these properly, we can test them tomorrow fairly quickly.
  • For the YAW column though, the filters would probably just undo the output matrix optimization as they are derived from ideal transfer function models and ideally there is no coupling between YAW and other DOFs. So maybe, we should skip putting these on.
  16054   Tue Apr 20 10:52:49 2021 Anchal, PacoUpdateSUSAC gain coil output balancing for IMC

[Paco, Anchal]

  • We adopted the following procedure to balance the coil output gains using a high-frequency (> 10 Hz) excitation on "C1:SUS-MCX_ASCPIT_EXC", "C1:SUS-MCX_ASCYAW_EXC", and "C1:SUS-MCX_LSC_EXC", where X is one of {1, 2, 3} for the three IMC optics, and the cavity sensors (MC_F, and MC_TRANS);
    1. We load the new input matrix found on March-23rd.
    2. Using awggui, we launch a single 23.17 Hz sine with 500 - 1000 counts amplitude on the aforementioned channels.
      • We are still unable to launch multiple excitations simultaneously through either API (python-awg or dtt-awggui) devilno
    3. Using our built-in hominid neural networks, we look at the "C1:IOO-MC_F", "C1:IOO-MC_TRANS_PIT_IN", and "C1:IOO-MC_TRANS_YAW_IN" exponentially averaging power spectra, on and about the excitation frequency, and identify the amount of cross-coupling going into angular or longitudinal motion depending on the excited degree of freedom.
    4. We step the "C1:SUS-MCX_URCOIL_GAIN", "C1:SUS-MCX_ULCOIL_GAIN", "C1:SUS-MCX_LRCOIL_GAIN", "C1:SUS-MCX_LLCOIL_GAIN" coil output gains by hand in the presence of an excitation (e.g. "LSC") along a given degree of freedom (e.g. along "PIT") to try and minimize the coupling.
    5. We iterate step (4) until we find an optimum gain set, and move on to another optic.


  • For MC2 the optimal gains changed from: [1.0, -1.0, 1.0, -1.0] → [1.05, -1.05, 0.995, -1.03] **
    • Here we were able to first decouple PIT and YAW from a POS excitation almost entirely (see Attachment #1), but weren't as successful in decoupling YAW and POS from PIT, or PIT and POS from YAW excitations (Attachment #2).
  • For MC1 the optimal gains changed from: [1.0, 1.0, 1.0, 1.0] → [0.282, 0.035, 0.302, 2.46] **
    • Here we mostly succeeded in decoupling POS from YAW and PIT excitations (see Attachments #3 - 4).
  • For MC3 the optimal gains changed from: [1.0, -1.0, 1.0, -1.0] → [0.126, -0.123, 0.298, -0.306] **
    • Here the LSC_EXC didn't show up on MC_F (??), and the PIT/YAW excitations decouple by virtue of seemingly low gains, so maybe the optimum is an artifact of the lower coil gains...
    • Plots are to follow up for this one.

** The notation here is [UL, UR, LR, LL]

  16063   Wed Apr 21 11:38:27 2021 Anchal, PacoUpdateSUSMC2 Damping Gains Optimized

We did a step response test with MC2 Suspensoin Damping Gains and optimized them to get <5 oscillations in ringdown.


  • We uploaded the diagonalized input matrix.
  • We uploaded the coil balancing gains at high frequencies found in 16054.
  • We applied Eg2CtQ1 filter module for DC gain balancing foun inf 16055.
  • We played with offsets to get a good step height. Finally we used:
    • C1:SUS-MC2_SUSPOS_OFFSET: 3000
  • We looked at channels C1:SUS-MC2_SUSPOS_INMON, C1:SUS-MC2_SUSPIT_INMON, and C1:SUS-MC2_SUSYAW_INMON on a striptool screen to see the step response of the switching on/off of the offsets.
  • We tried to decrease/increase gain to get <5 oscillations during ringdown due to the step inputs.
  • Restored everything back to old values at the end.


  • Gain in POS was found to be already good. In PIT and YAW we changed the gains from 10 -> 30.
  • Attachment 1 shows the striptool screen when offset was switched ON/Off in POS, PIT and YAW respectively after appling the optimized gains.
  • Attachment 2 shows the same test with old gains for comparison.

In the afternoon, we'll complete doing the above steps for MC1 and MC3. Their coil balancing has not been done on DC so, it is bit non-ideal right now. We'll look into scripting this process as well.

  16066   Wed Apr 21 15:50:01 2021 Anchal, PacoUpdateSUSMC2 Suspension Optimization summary
MC2 Coil Balancing DC and AC Gains
  POS PIT YAW COIL_GAIN (AC balancing)


1.038 1 1 1.05
UR 1.009 1 -1 -1.05
LL 0.913 -1 1 -1.030
LR 0.915 -1 -1 0.995

MC2 Diagonalized input matrix
POS 0.2464 0.2591 0.2676 0.2548 -0.1312
PIT 1.7342 0.7594 -2.494 -1.5192 -0.0905
YAW 1.2672 -2.0309 -0.9625 2.3356 -0.2926
SIDE 0.1243 -0.1512 -0.1691 0.1064 0.9962

MC2 Suspension Gains
  Old gain New Gain
SUSPOS 150 150
SUSPIT 10 30
SUSYAW 10 30


  16072   Thu Apr 22 12:17:23 2021 Anchal, PacoUpdateSUSMC1 and MC3 Suspension Optimization Summary
MC1 Coil Balancing DC and AC Gains
  POS (DC coil Gain) PIT (DC coil Gain) YAW (DC coil Gain) Coil Output Gains (AC)
UL 0.6613 1 1 0.5885
UR 0.7557 1 -1 0.1636
LL 1.3354 -1 1 1.8348
LR 1.0992 -1 -1 0.5101

Note: The AC gains were measured by keeping output matrix to ideal values of 1s. When optimizing DC gains, the AC gains were uploaded in coil ouput gains.

MC1 Diagonalized input matrix
POS 0.1700 0.1125 0.0725 0.1300 0.4416
PIT 0.1229 0.1671 -0.1021 -0.1463 0.1567
YAW 0.2438 -0.1671 -0.2543 0.1566 -0.0216
SIDE 0.0023 0.0010 0.0002 0.0015 0.0360

MC1 Suspension Damping Gains
  Old gains New Gains
SUSPOS 120 270
SUSPIT 60 180
SUSYAW 60 180

MC3 Coil Balancing DC and AC Gains
  POS (DC coil Gain) PIT (DC coil Gain) YAW (DC coil Gain) Coil Output Gains (AC)
UL 1.1034 1 1 0.8554
UR 1.1034 1 -1 -0.9994
LL 0.8845 -1 1 -0.9809
LR 0.8845 -1 -1 1.1434

Note: The AC gains were measured by keeping output matrix to ideal values of 1s. When optimizing DC gains, the AC gains were uploaded in coil ouput gains.

MC3 Input matrix (Unchanged from previous values)
POS 0.28799 0.28374 0.21201 0.21626 -0.40599
PIT 2.65780 0.04096 -3.2910 -0.67420 -0.72122
YAW 0.60461 -2.7138 0.01363 3.33200 0.66647
SIDE 0.16601 0.19725 0.10520 0.07397 1.00000

MC3 Suspension Damping Gains
  Old gains New Gains
SUSPOS 200 500
SUSPIT 12 35
  16085   Mon Apr 26 18:52:52 2021 Anchal, PacoHowToComputer Scripts / Programsawg free slot

Today we had some trouble launching an excitation on C1:IOO-MC_LSC_EXC from awggui. The error read:

awgSetChannel: failed getIndexAWG C1:SUS-MC2_LSC_EXC ret=-3

What solved this was the following :

  1. launch the dtt command line interface
  2. Anchal remembers a slot number 37008
  3. We issue >> awg free 37008
  4. Slot freed, launch a new instance of awggui
  16086   Mon Apr 26 18:55:39 2021 Anchal, PacoUpdateSUSMC2 F2A Filters Tested

Today we tested the F2A filters created from the DC gain values listed in 16066.


  • For a DC gain G_{DC} required for balancing the coil at DC and f_0 being the resonance frequency of the mode (POS in this case), we calculate the filter using:
    \frac{1 + i \frac{f_z}{f Q} - \frac{f_z^2}{f^2}}{1 + \frac{f_0}{f} - \frac{f_0^2}{f^2}}where f_z = f_0 \sqrt{G_{DC}}.
  • Attachment 1 shows the motivation for choosing the resonant frequency in the formula above. It makes gain at DC as G_{DC} while keeping AC gain as 1.
  • Attachment 2 shows the transfer functions of the filters uploaded.
  • Filters are named Eg2CtQ3, Eg2CtQ7 and Eg2CtQ10 for Q=3,7,10 filters respectively. (Named for Eigenmode Basis to Cartesian Basis conversion filters, aka F2A filters).

Testing procedure:

  • We uploaded the new input matrix listed in 16066.
  • We then uploaded the coil output gains (AC gains) that are also listed in 16066.
  • Then we reduced the C1:IOO-WFS_GAIN to 0.05 (by a factor of 20).
    • Rana asked us to test the WFS sensors' impulse response to observe a minimum 10s decay to ensure that the UGF of WFS control loops is at or below 0.1 Hz.
    • We were unable to have any effect on this decay actually. We tried setting offsets without tramps in multiple places but whenever we were able to excite this loop, it will always damp down in about 5-6s regardless of the value of C1:IOO-WFS_GAIN.
    • So we moved on.
  • Then, with MC locked we took reference data with no excitation or filters uploaded. (dotted curves)
  • We took cross spectral density from C1:IOO-MC_F to C1:IOO-MC_TRANS_PIT_IN1, C1:IOO-MC_TRANS_YAW_IN1, C1:IOO-WFS1_PIT_IN1, C1:IOO-WFS1_PIT_IN1, C1:IOO-WFS2_PIT_IN1, and C1:IOO-WFS2_PIT_IN1.
  • We were also looking at the power spectral density of these channels.
  • Then using awggui (after the fix we did as in 16085), we added noise in C1:SUS-MC2_LSC_EXC as uniform noise between 0.05 Hz to 3.5 Hz with amplitude of 100 and gain of 100.
  • We took a set of data without switching on the filters to have a comparison later. (Dash-dort curves)
  • We then took data after switching on the filters. (Solid curves)


  • Tomorrow we'll repeat this for MC1 and MC3 if we get a favourable grade in our work here.
  • Even if not, we'll jsut conclude the suspension optimization work tomorrow morning and get into main interferometer.
  16087   Tue Apr 27 10:05:28 2021 Anchal, PacoUpdateSUSMC1 and MC3 F2A Filters Tested

We extended the f2a filter implementation and diagnostics as summarized in 16086 to MC1 and MC3.


Attachment 1 shows the filters with Q=3, 7, 10. We diagnosed using Q=3.

Attachment 2 shows the test summary, exciting with broadband noise on the LSC_EXC and measuring the CSD to estimate the transfer functions.


Attachment 3 shows the filters with Q=3, 7, 10. We diagnosed using Q=3.

Attachment 4 shows the test summary, exciting with broadband noise on the LSC_EXC and measuring the CSD to estimate the transfer functions.

Our main observation (and difference) with respect to MC2 is the filters have relative success for the PIT cross-coupling and not so much for YAW. We already observed this when we tuned the DC output gains to compute the filters.

  16089   Wed Apr 28 10:56:10 2021 Anchal, PacoUpdateSUSIMC Filters diagnosed

Good morning!

We ran the f2a filter test for MC1, MC2, and MC3.


The new filters differ from previous versions by a adding non-unity Q factor for the pole pairs as well.

\frac{f^2 - i \frac{f_z}{Q}f + f_z^2}{f^2 - i \frac{f_0}{Q}f + f_0^2}
This in terms of zpk is: [ [zr + i zi, zr - i zi], [pr + i pi, pr - i pi], 1] where
z_r = -\frac{f_z}{2Q}, \quad z_i = f_z \sqrt{1 - \frac{1}{4Q^2}}, \quad p_r = -\frac{f_0}{2Q}, \quad p_i = f_0 \sqrt{1 - \frac{1}{4Q^2}}, \quad f_z = f_0 \sqrt{G_{DC}}

  • Attachment #1 shows the filters for MC1 evaluated for Q=3, 7,and 10.
  • Attachment #2 shows the filters for MC2 evaluated for Q=3, 7, and 10.
  • Attachment #3 shows the filters for MC3 evaluated for Q=3, 7, and 10.
  • Attachment #4 shows the bode plots generated by foton after uploading for Q=3 case.

We uploaded all these filters using foton, into the three last FM slots on the POS output gain coil.


We ran tests on all suspended optics using the following (nominal) procedure:

  1. Upload new input matrix
  2. Lower the C1:IOO-WFS_GAIN to 0.05.
  3. Upload AC coil balancing gains.
  4. Take ASD for the following channels:
    • C1:IOO-MC_WFS1_PIT_IN1
    • C1:IOO-MC_WFS1_YAW_IN1
    • C1:IOO-MC_WFS2_PIT_IN1
    • C1:IOO-MC_WFS2_YAW_IN1
  5. For the following combinations:
    • No excitation** + no filter
    • No excitation + filter
    • Excitation + no filter
    • Excitation + filter

** Excitation = 0.05 - 3.5 Hz uniform noise, 100 amplitude, 100 gain


  • Attachment 5-7 give the test results for MC1, MC2 and MC3.
  • In each pdf, the three pages show ASD of TRANS QPD, WFS1 and WFS2 channels' PIT and YAW, respectively.
  • Red/blue correspond to data taken while F2A filters were on. Pink/Cyan correspond to data taken with filters off.
  • Solid curves were taken with excitation ON and dashed curves were taken with excitation off.
  • We see good suppression of POS-> PIT coupling in MC2 and MC3. POS->YAw is minimally affected in all cases.
  • MC1 is clearly not doing good with the filters and probably needs readjustement. Something to do later in the future.
  16108   Mon May 3 09:14:01 2021 Anchal, PacoUpdateLSCIMC WFS noise contribution in arm cavity length noise

Lock ARMs

  • Try IFO Configure ! Restore Y Arm (POY) and saw XARM lock, not YARM. Looks like YARM biases on ITMY and ETMY are not optimal, so we slide C1:SUS-ETMY_OFF from 3.0 --> -14.0 and watch Y catch its lock.
  • Run ASS scripts for both arms and get TRY/TRX ~ 0.95
    • We ran X, then Y and noted that TRX dropped to ~0.8 so we ran it again and it was well after that. From now on, we will do Y, then X.

WFS1 noise injection

  • Turn WFS limits off by running switchOffWFSlims.sh
  • Inject broadband noise (80-90 Hz band) of varying amplitudes from 100 - 100000 counts on C1:IOO-WFS1_PIT_EXC
  • After this we try to track its propagation through various channels, starting with
    • C1:IOO-MC_F_DQ
    • C1:IOO-WFS1_PIT_IN2

** denotes [UL, UR, LL, LR]; the output coils.

  • Attachment 1 shows the power spectra with IMC unlocked
  • Attachment 2 shows the power spectra with the ARMs (and IMC) locked
  16117   Tue May 4 11:43:09 2021 Anchal, PacoUpdateLSCIMC WFS noise contribution in arm cavity length noise

We redid the WFS noise injection test and have compiled some results on noise contribution in arm cavity noise and IMC frequency noise due to angular noise of IMC.

Attachment 1: Shows the calibrated noise contribution from MC1 ASCPIT OUT to ARM cavity length noise and IMC frequency noise.

  • For calibrating the cavity length noise signals, we sent 100 cts 100Hz sine excitation to ITMX/Y_LSC_EXC, used actuator calibration for them as 2.44 nm/cts from 13984, and measured the peak at 100 hz in time series data. We got calibration factors: ETMX-LSC_OUT: 60.93 pm/cts , and ETMY-LSC_OUT: 205.0 pm/cts.
  • For converting IMC frequency noise to length noise, we used conversion factor given by \lambda L / c where L is 37.79m and lambda is wavelength of light.
  • For converting MC1 ASCPIT OUT cts data to frequency noise contributed to IMC, we sent 100,000 amplitude bandlimited noise (see attachment 3 for awggui config) from 25 Hz to 30 Hz at C1:IOO-MC1_PIT_EXC. This noise was seen at both MC_F and ETMX/Y_LSC_OUT channels. We used the noise level at 29 Hz to get a calibration for MC1_ASCPIT_OUT to IMC Frequency in Hz/cts. See Attachment 2 for the diaggui plots.
  • Once we got the calibration above, we measured MC1_ASCPIT_OUT power spectrum without any excitaiton and multiplied it with the calibration factor.
  • However, something must be wrong because the MC_F noise in length units is coming to be higher than cavity length noise in most of the frequency band.
    • It can be due to the fact that control signal power spectrum is not exactly cavity length noise at all frequencies.  That should be only above the UGF of the control loop (we plan to measure that in afternoon).
    • Our calibration for ETMX/Y_LSC_OUT might be wrong.
  16127   Fri May 7 11:54:02 2021 Anchal, PacoUpdateLSCIMC WFS noise contribution in arm cavity length noise

We today measured the calibration factors for XARM_OUT and YARM_OUT in nm/cts and replotted our results from 16117 with the correct frequency dependence.

Calibration of XARM_OUT and YARM_OUT

  • We took transfer function measurement between ITMX/Y_LSC_OUT and X/YARM_OUT. See attachment 1 and 2
  • For ITMX/Y_LSC_OUT we took calibration factor of 3*2.44/f2 nm/cts from 13984. Note that we used the factor of 3 here as Gautum has explicitly written that the calibration cts are DAC cts at COIL outputs and there is a digital gain of 3 applied at all coil output gains in ITMX and ITMY that we confirmed.
  • This gave us callibration factors of XARM_OUT: 1.724/f2 nm/cts , and YARM_OUT: 4.901/f2 nm/cts. Note the frrequency dependence here.
  • We used the region from 70-80 Hz for calculating the calibration factor as it showed the most coherence in measurement.

Inferring noise contributions to arm cavities:

  • For converting IMC frequency noise to length noise, we used conversion factor given by \lambda L / c where L is 37.79m and lambda is wavelength of light.
  • For converting MC1 ASCPIT OUT cts data to frequency noise contributed to IMC, we sent 100,000 amplitude bandlimited noise  from 25 Hz to 30 Hz at C1:IOO-MC1_PIT_EXC. This noise was seen at both MC_F and ETMX/Y_LSC_OUT channels. We used the noise level at 29 Hz to get a calibration for MC1_ASCPIT_OUT to IMC Frequency in Hz/cts. This measurement was done in 16117.
  • Once we got the calibration above, we measured MC1_ASCPIT_OUT power spectrum without any excitaiton and multiplied it with the calibration factor.
  • Attachment 3 is our main result.
    • Page 1 shows the calculation of Angle to Length coupling by reading off noise injects in MC1_ASCPIT_OUT in MC_F. This came out to 10.906/f2 kHz/cts.
    • Page 2-3 show the injected noise in X arm cavity length units. Page 3 is the zoomed version to show the matching of the 2 different routes of calibration.
    • BUT, we needed to remove that factor of 3 we incorporated earlier to make them match.
    • Page 4 shows the noise contribution of IMC angular noise in XARM cavity.
    • Page 5-6 is similar to 2-3 but for YARM. The red note above applied here too! So the factor of 3 needed to be removed in both places.
    • Page 7 shows the noise contribution of IMC angular noise in XARM cavity.


  • IMC Angular noise contribution to arm cavities is atleast 3 orders of magnitude lower then total armc cavity noise measured.

Edit Mon May 10 18:31:52 2021

See corrections in 16129.

  16128   Mon May 10 10:57:54 2021 Anchal, PacoSummaryCalibrationUsing ALS beatnote for calibration, test

Test details:

  • We locked both arms and opened the shutter for Yend green laser.
  • After toggling the shutter on.off, we got a TEM00 mode of green laser locked to YARM.
  • We then cleared the phase Y history by clicking "CLEAR PHASE Y HISTROY" on C1LSC_ALS.adl (opened from sitemap > ALS > ALS).
  • We sent excitation signal at ITMY_LSC_EXC using awggui at 43Hz, 77Hz and 57Hz.
  • We measured the power spectrum and coherence of C1:ALS-BEATY_FINE_PHASE_OUT_HZ_DQ and C1:SUS-ITMY_LSC_OUT_DQ.
  • The BEATY_FINE_PHASE_OUT_HZ is already calibrated in Hz. This we assume is done by multip[lying the VCO slope in Hz/cts to the error signal of the digital PLL loop that tracks the phase of beatnote.
  • We calibrated C1:SUS-ITMY_LSC_OUT_DQ by multiplying with
    \large 3 \times \frac{2.44 \, nm/cts}{f^2} \times \frac{c}{1064\,nm \times 37.79\, m} = \frac{54.77}{f^2} kHz/cts where f is in Hz.
    The 2.44/f2 nm/cts is taken from 13984.
  • We added the calibration as Poles/zeros option in diaggui using gain=54.577e3 and poles as "0, 0".
  • We found that ITMY_LSC_OUT_DQ calibration matches well at 57Hz but overshoots (80 vs 40) at 43 Hz and undershoots (50 vs 80) at 77Hz.


  • If we had DRFPMI locked, we could have used the beatnote spectrum as independent measurement of arm lengths to calibrate the interferometer output.
  • We can also use the beatnote to confirm or correct the ITM actuator calibrations. Maybe shape is not exactly 1/f2 unless we did something wrong here or the PLL bandwidth is too short.
  16129   Mon May 10 18:19:12 2021 Anchal, PacoUpdateLSCIMC WFS noise contribution in arm cavity length noise, Corrections

A few corrections to last analysis:

  • The first plot was not IMC frequency noise but actually MC_F noise budget.
    • MC_F is frequency noise in the IMC FSS loop just before the error point where IMC length and laser frequency is compared.
    • So, MC_F (in high loop gain frequency region upto 10kHz) is simply the quadrature noise sum of free running laser noise and IMC length noise.
    • Between 1Hz to 100 Hz, normally MC_F is dominated by free running laser noise but when we injected enough angular noise in WFS loops, due to Angle to length coupling, it made IMC length noise large enough in 25-30 Hz band that we started seeing a bump in MC_F.
    • So this bump in MC_F is mostly the noise due to Angle to length coupling and hence can be used to calculate how much Angular noise normally goes into length noise.
  • In the remaining plots, MC_F was plotted with conversion into arm length units but this was wrong. MC_F gets suppressed by IMC FSS open loop gain before reaching to arm cavities and hence is hardly present there.
  • The IMC length noise however is not suppresed until after the error point in the loop. So the length noise (in units of Hz calculated in the first step above) travels through the arm cavity loop.
  • We already measured the transfer function from ITMX length actuation to XARM OUT, so we know how this length noise shows up at XARM OUT.
  • So in the remaining plots, we plot contribution of IMC angular noise in the arm cavities. Note that the factor of 3 business still needed to be done to match the appearance of noise in XARM_OUT and YARM_OUT signal from the IMC angular noise injection.
  • I'll post a clean loop diagram soon to make this loopology clearer.
  16132   Wed May 12 10:53:20 2021 Anchal, PacoUpdateLSCPSL-IMC PDH Loop and XARM PDH Loop diagram

Attached is the control loop diagram when main laser is locked to IMC and a single arm (XARM) is locked to the transmitted light from IMC.

  • I'll post a clean loop diagram soon to make this loopology clearer.


  16133   Wed May 12 11:45:13 2021 Anchal, PacoSummarySUSNew IMC Settings are miserable

We picked a few parameters from 40m summary page and plotted them to see the effect of new settings. On April 4th, old settings were present. On April 28th (16091), new input matrices and F2A filters were uploaded but suspension gains remained the same. On May 5th (16120), we uploaded new (higher) suspension gains. We chose Sundays on UTC so that it lies on weekends for us. Most probably nobody entered 40m and it was calmer in the institute as well.

  • On MC_F spectrum, we see that that noise decreased in 0.3-0.7 Hz but there is more noise from 1-1.5 Hz.
  • On MC_TRANS_QPD, we see that both TRANS PIT and YAW signals were almost twice as noisy.
  • On MC_REFL_DC too, we see that the noise during the locked state seems to be higher in the new configuration.

We can download data and plot comparisons ourselves and maybe calculate the spectrums of MC_TRANS_PIT/YAW and MC_REFL_DC when IMC was locked. But we want to know if anyone has better ways of characterizing the settings that we should know of before we get into this large data handling which might be time-consuming. From this preliminary 40m summary page plots, maybe it is already clear that we should go back to old settings. Awaiting orders.


  16138   Thu May 13 11:55:04 2021 Anchal, PacoUpdateSUSMC1 suspension misbehaving

We came in the morning with the following scene on the zita monitor:

The MC1 watchdog was tripped and seemed like IMC struggled all night with misconfigured WFS offsets. After restoring the MC1 WD, clearing the WFS offsets, and seeing the suspension damp, the MC caught lock. It wasn't long before the MC unlocked, and the MC1 WD tripped again.

We tried few things, not sure what order we tried them in:

  • Letting suspension loops damp without the WFS switched on.
  • Letting suspension loops damp with PSL shutter closed.
  • Restoring old settings of MC suspension.
  • Doing burt restore with command:
    burtwb -f /opt/rtcds/caltech/c1/burt/autoburt/snapshots/2021/May/12/08:19/c1mcsepics.snap -l /tmp/controls_1210513_083437_0.write.log -o /tmp/controls_1210513_083437_0.nowrite.snap -v <

Nothing worked. We kept seeing that ULPD var on MC1 keeps showing kicks every few minutes which jolts the suspension loops. So we decided to record some data with PSL shutter closed and just suspension loops on. Then we switched off the loops and recorded some data with freely swinging optic. Even when optic was freely swinging, we could see impulses in the MC1 OSEM UL PD var which were completely uncorrelated with any seismic activity. Infact, last night was one fo teh calmer nights seismically speaking. See attachment 2 for the time series of OSEM PD variance. Red region is when the coil outputs were disabled.


  • We think something is wrong with the UL OSEM of MC1.
  • It seems to show false spikes of motion when there is no such spike present in any other OSEM PD or the seismic data itself.
  • Currently, this is still the case. We sometimes get 10-20 min of "Good behavior" when everything works.
  • But then the impulses start occuring again and overwhelmes the suspension loops and WFS loops.
  • Note, that other optic in IMC behaved perfectly normally throughout this time.
  • In the past, it seems like satellite box has been the culprit for such glitches.
  • We should look into debugging this as ifo is at standstill because of this issue.
  • Earlier, Gautum would post Vmon signals of coil outputs only to show the glitches. We wanted to see if switching off the loops help, so we recorded OSEM PD this time.
  • In hindsight, we should probably look at the OSEM sensor outputs directly too rather than looking at the variance data only. I can do this if people are interested in looking at that too.
  • We've disabled the coil ouputs in MC1 and PSL shutter is off.

Edit Thu May 13 14:47:25 2021 :

Added OSEM Sensor timeseries data on the plots as well. The UL OSEM sensor data is the only channel which is jumping hapazardly (even during free swinging time) and varying by +/- 30. Other sensors only show some noise around a stable position as should be the case for a freely suspended optic.

ELOG V3.1.3-