40m QIL Cryo_Lab CTN SUS_Lab CAML OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  SUS Lab eLog, Page 37 of 38  Not logged in ELOG logo
ID Date Author Typeup Category Subject
  1679   Fri Mar 31 11:03:29 2017 GabrieleSummaryCrackleNew computation of crackling noise upper limits from the Crackle2 data

I agree. I'm waiting for new data with maragig steel before writng that up.

Quote:

I think it would be useful to add this final step where you compute the aLIGO noise estimates, into the DCC document.

I also used to use 0.001 for the vertical to horizontal coupling, but recently someone was telling me that the factor is a bit larger; I think Brett or Dennis would know.

 

  1686   Fri Apr 14 15:45:06 2017 XiaoyueSummaryCrackleCrackle Measurement on maraging blades in Progress

pk2pk:  cexit count=32000,  Z1=30um, Z2=40um

Log

Start Time

Hrs

Drive Freq

Amp

Note

Elog

20170405

0405 09:30 pm

25

0.19Hz

32000

Good, but failed after 1175582498

1682

20170409

0409 12:30 am

43

0.095Hz

 

Fixed coil drive, UGF=35Hz?

1684

20170411

0411 12:35 am

12

0.095Hz

 

recalibrate

 

20170412

0411 03:50 pm

28

0.095Hz

 

Fixed notch filter, recalibrate

1685

20170413

0413 12:00 am

33

0.38Hz

32000

good

 

20170414

0414 02:30 pm

30

0.0475Hz

32000

good

 

20170415

0415 11:55 pm

 

0.095Hz

32000

good

 

20170417

0417 01:00 pm

 

0.0633 Hz

32000

Fail, no need to realign just restart

 

20170418

0418 11:50 pm

38

0.0633 Hz

32000

good

 

20170420

0420

 

0.1267 Hz

32000

 

 

20170422

0422 04:30 pm

 

0.2533 Hz

32000

0423 3pm 1177020170, relevel table, pump

 

20170424

0424 02:00 pm

 

0.0317 Hz

32000

 

 

20170426

0426 11:00 pm

31.5

0.0475 Hz

32000

Leveled the table, realign

 

20170428

0428 11:30 am

55?

0.095 Hz

32000

Need maintainance, misaligned

 

20170504

0504 10:30 pm

 

0.0633 Hz

16000

Releveled table, realign

 

 

  1707   Fri May 5 11:07:04 2017 XiaoyueSummaryCrackleCrackle Measurement on maraging blades in Progress 2

pk2pk reference:  cexit count=32000,  Z1=30um, Z2=40um

** Measurement ran with current monitors functioning

Log

Start Time

Hrs

Drive Freq

Amp

Note

Elog

20170505

0505 9:40 am

 

0.0633 Hz

16000

Fixed current monitor

1705

20170506

0506 3:00 pm

61

0.0633 Hz

16000

Current monitor troubleshooting

1710

20170509

0509 10:25 am

50

0.0317 Hz

16000

 

 

20170511

0511 04:30 pm

64

0.095 Hz

16000

 

 

20170514

0514 04:00 pm

45

0.0158 Hz

32000

Not enough n_cycles_ave

 

20170516

0516 01:45 pm

47

0.0317 Hz

32000

Leveled the table, realign

 

20170518

0518

44

0.0633 Hz

32000

 

 

20170520

0520 05:20 pm

 

0.0317 Hz

24000

 

 

20170523

0523 1:45 pm

 

0.0317 Hz

28000

leveled the table

 

20170525

0525 17:10 pm

 

0.0633 Hz

24000

 

 

20170530

0530 3:17 pm

 

0.095 Hz

32000

Gabriele takes on :)

1725

Quote:

pk2pk:  cexit count=32000,  Z1=30um, Z2=40um

Log

Start Time

Hrs

Drive Freq

Amp

Note

Elog

20170405

0405 09:30 pm

25

0.19Hz

32000

Good, but failed after 1175582498

1682

20170409

0409 12:30 am

43

0.095Hz

 

Fixed coil drive, UGF=35Hz?

1684

20170411

0411 12:35 am

12

0.095Hz

 

recalibrate

 

20170412

0411 03:50 pm

28

0.095Hz

 

Fixed notch filter, recalibrate

1685

20170413

0413 12:00 am

33

0.38Hz

32000

good

 

20170414

0414 02:30 pm

30

0.0475Hz

32000

good

 

20170415

0415 11:55 pm

 

0.095Hz

32000

good

 

20170417

0417 01:00 pm

 

0.0633 Hz

32000

Fail, no need to realign just restart

 

20170418

0418 11:50 pm

38

0.0633 Hz

32000

good

 

20170420

0420

 

0.1267 Hz

32000

 

 

20170422

0422 04:30 pm

 

0.2533 Hz

32000

0423 3pm 1177020170, relevel table, pump

 

20170424

0424 02:00 pm

 

0.0317 Hz

32000

 

 

20170426

0426 11:00 pm

31.5

0.0475 Hz

32000

Leveled the table, realign

 

20170428

0428 11:30 am

55?

0.095 Hz

32000

Need maintainance, misaligned

 

20170504

0504 10:30 pm

 

0.0633 Hz

16000

Releveled table, realign

 

 

 

  1713   Mon May 8 22:06:54 2017 XiaoyueSummaryCrackleDemodulation Analysis (An Introduction)

I applied the demodulation analysis on both simulated and experiment crackling noise data. I will summarize the analysis up-to-date in mainly three sections categorized in terms of the object of study (writing in progress):

I. Simulated, controlled modulated noise  (a, b, c)

II. Simulated noise based on micromchanical model (a, b, c)

III. Crackle Experiment data (a, b, c)

Each main section will be written to answer the three questions: (a) how do we generate/collect the data, (b) how do we analyze the noises, and (c) what are the results, conclusion/discussion.

  1725   Tue May 30 15:21:38 2017 GabrieleSummaryCrackleCrackling noise measurement runs

On Xiaoyue's request, I'm starting a bunch of crackling noise measurement runs

Start time log file amplitude [uN] frequency [Hz]
2017-05-30 3:17pm crackle_2017_05_30.log 32000 0.095
2017-06-01 1:01pm** crackle_2017_06_01.log 32000 0.0475
2017-06-03 2:35pm crackle_2017_06_03.log 28000 0.0633
2017-06-05 11:52am crackle_2017_06_05.log 24000 0.095

** On June 2nd morning (probably at 10:19am) there was some kind of power failure in the sub basement labs. All computers (including the cymac) went down. The laser was off too. At 11:35am I started restoring the normal working condition. At 11:46am I restarted the crackling measurement

At the same time I'm copying the frame files to the external disk for the runs that are already completed

  • transferring 2017_05_25 to /media/Crackle (GPS 1179796778 to 1180214603). Done
  • transferring 2017_05_30 to /media/Crackle (GPS 1180217853 to 1180382458). Done
  • transferring 2017_06_01 to /media/Crackle (GPS 1180382537 to 1180560837). Done
  • transferring 2017_06_03 to /media/Crackle (GPS 1180560951 to 1180723674). Done
  1726   Wed Jun 7 17:12:14 2017 XiaoyueSummaryCrackleCrackling noise measurement runs

I am taking on the crackling noise measurement runs

Start time log file amplitude [uN] frequency [Hz]
2017-05-30 3:17pm crackle_2017_05_30.log 32000 0.095
2017-06-01 1:01pm* crackle_2017_06_01.log 32000 0.0475
2017-06-03 2:35pm crackle_2017_06_03.log 28000 0.0633
2017-06-05 11:52am** crackle_2017_06_05.log 24000

0.095

2017-06-07 5:00pm crackle_2017_06_07.log 24000 0.095
2017-06-10 1:10am crackle_2017_06_10.log 24000 0.0317
2017-06-12 3:13pm crackle_2017_06_12.log 28000 0.0633
2017-06-15 11:28am crackle_2017_06_15.log 28000 0.095
2017-06-18 12:30pm crackle_2017_06_18.log 32000 0.0317
2017-06-20 12:31pm crackle_2017_06_20.log 32000 0.0475
2017-06-22 12:35pm crackle_2017_06_22.log 32000 0.0633
2017-06-25 1:06am crackle_2017_06_25.log 32000 0.0791
2017-06-26  5:40pm crackle_2017_06_26.log 32000 0.0791
2017-06-29 11:22am crackle_2017_06_29.log 32000 0.095
2017-07-01 9:30pm crackle_2017_07_01.log 28000 0.0371
       

* On June 2nd morning (probably at 10:19am) there was some kind of power failure in the sub basement labs. All computers (including the cymac) went down. The laser was off too. At 11:35am I started restoring the normal working condition. At 11:46am I restarted the crackling measurement

Note that after the power down event, the cts2uN filters in currmon channel were switched off. I didn't notice this until 2017-06-12. All current monitor data in the time period 2017-06-01 to 2017-06-12 needs proper conversion.

** Check on June 7th we completely lost the alignment (optgain = 0.7, UGF = 48 Hz). coil HF channels are not properly notched (0.0633 Hz instead of 0.095 Hz). The autocalibration channel output is off too (AUTOCALIB_OUT = 0.2 rather than 1). I realigned the michelson with updated optical gain back to normal ~ 0.56. I adjust the autocalibration gain to output 1. I started another crackling measurement with same parameters as 06-05 on 06-07.

July 5th: cannot engage boost, will open the chamber tomorrow for a check.

At the same time I'm continuing copying the frame files to the external disk for the runs that are already completed:

  • transferring 2017_05_25 to /media/Crackle (GPS 1179796778 to 1180214603). Done
  • transferring 2017_05_30 to /media/Crackle (GPS 1180217853 to 1180382458). Done
  • transferring 2017_06_01 to /media/Crackle (GPS 1180382537 to 1180560837). Done
  • transferring 2017_06_03 to /media/Crackle (GPS 1180560951 to 1180723674). Done
  • transferring 2017_06_05 to /media/Crackle (GPS 1180724001 to 1180903119). Done
  1737   Tue Jul 18 22:55:02 2017 XiaoyueSummaryCrackleCrackling noise measurement results

We have analyzed and summarized all the May (Elog 1707) and June (Elog 1726) measurements. We now have four different driving amplitude A = [16000, 24000, 28000, 32000] cts + three different driving frequency F = [0.0317, 0.0633, 0.095] Hz demodulation (mich - currmon) results for comparison. maraging_k_3.pdf shows the the demodulation results with electronic noise subtraction for all measurement runs. 

We fit the demodulated noises vs. spectrum frequency using a power law model:

n = G f^(-k)

where G = exp(b) is the gain we are fitting as a measure of the noise power. Note we use k = 3 because the demodulation results from the simulated crackling strain rate gives no spectral frequency dependency. The integration gives 1f multiplication, and the cantilever spring damping gives additional 2f. We used weighted non-linear regression to fit the data and obtained parametric estimation on the grain. 

power_fit_gain_k_3.pdf plots G vs. driving frequency as well as driving amplitude. The fitting error is huge so we don't see any significant dependency of the noise power on driving frequency. There is a weak amplitude dependency: we don't have demodulated noise for the smallest driving amplitude (A = 16000 cts) test runs.

After two months of measurement run without much maintaining, the setup has drifted enough and the table leveling and michelson alignement reference no longer works. We opened the chamber to try to recover the setup. Hopefully we can improve the sensitivity with a careful noise study and re-run more large amplitude driving measurements, to reduce measurement/statistical errors of the fitting demodulation results.

  1754   Mon Aug 28 20:54:56 2017 XiaoyueSummaryCrackleCrackling noise measurement run #2

Below is a table summarizing the second round of crackling noise measurements

Start time Freq [Hz] A [cts]
2017-07-31 10:30pm 0.0371 32000
2017-08-04 04:10pm 0.0371 32000
2017-08-06 10:20pm  0.0371 32000
2017-08-09 00:08pm  0.0371 32000
2017-08-10 05:38pm 0.0317 32000
2017-08-12 06:12pm 0.0633 32000
2017-08-13 05:45pm 0.0317 32000
2017-08-16 04:50pm 0.0633 32000
2017-08-18 05:58pm 0.0950 32000
2017-08-21 11:43pm 0.1267 32000
2017-08-24 01:04am 0.1584 32000
2017-08-25 04:03pm 0.1900 32000
2017-08-27 02:27pm 0.2217 32000
2017-08-28 04:38pm 0.6330 32000

I combined all the good demodulation results from the tests with driving amplitude A=320000, driving frequency F =

0.0317 Hz (2017_05_16, 2017_08_10, 2017_08_13),

0.0633 Hz (2017_05_18, 2017_08_16),

0.095 Hz (2017_05_30, 2017_08_18).

using the analysis method described in previous elog (Elog 1753), and then do the power-law n = G f^(-k) fitting with exponent k = 3 on the demodulated noises for each driving frequency components as described in Elog 1737, as a way to quantify and compare the noise levels for different driving frequencies. The fitting results are shown in the figure below to the left. The fitted gain G (in logarithm scale) vs. the driving frequency G is plotted in the figure below to the right. We see very consistent demodulated noises at 1FI, 2FI, 2FQ components as before. However, within the error bar, no frequency dependency is discernible.

  1785   Tue Feb 5 20:55:34 2019 DuoSummary Noisemon test results

Based on the test results posted, I did the following analysis:

1. Compared measured transfer function to the LISO calculations. Attachment 4 and 6. The transfer functions match well with LISO.

2. Compared measured noise at the output to the LISO calculations. Attachment 1 and 3. The noise is more than LISO calculations by roughly a factor of 2, but I think it is expected - there is coil driver noises (amplified more than 300 times). Also, LISO uses ideal resistors, considering that the noise here is dominated by resistor noise. We also have plots of the noise spectrum with DAC noises injected. In this case, the noise in the passband (20 - 100Hz) is much more, suggesting that the board noise is dominated by the DAC noise.

3. Compared input-referenced measured noise to DAC noise. Attachment 2 and 5. We divided the noise by the transfer function and compare it directly with the DAC noise model. We can see that, in the passband, the board noise is about a factor of 10 less than the DAC noise (channel 2 and 4 has more noise; the signal is polluted by the ADC). 

4. A simple calculation based on the transfer function comparing the ADC noise and the amplified DAC noise. 

DAC noise > 300nV/rtHz. Passband amplification > 50dB > 300. Amplified DAC noise in the passband > 90uV/rtHz, compared to ADC noise 4uV/rtHz.

FYI: 1. I cannot attachment PDF plots directly since it will stuck the elog server. I put some PNG plots, but PDF plots can still be found in the compressed files.

2. Also, channel 2 is more noisey. It comes from ADC not the noisemon.

  1803   Sat Aug 3 23:19:55 2019 DuoSummaryElectronicsOp amp oscillation caused by capacitive loading and its fix

When we connect the voltage monitor channel of the noisemon board to a long cable (100ft), the op amp (LT1792) oscillates. Usually putting a 50 ohm resistor at the end will fix it. In this post, I studied how the oscillation happens and why putting a 50 ohm resistor will fix it.

We know 1) op amp has a dominant pole, giving a phase shift of 90 degrees 2) op amp oscillates when the loop gain is unity and the phase shift is 180 degrees. 3) Op amp has some non-zero output resistance.

Based on 3), we can see that when the output is capacitively loaded, there will be another pole in the transfer function due to the RC configuration. Since both R and C are small, it will be at high frequency (as op amp oscillations usually are). Thus, beyond the dominant pole, the phase will keep shifting to 180 degree based on 1). When this happens before the loop gain drops to unity, there will be oscillation based on 2).

Fix: insert a resistor at the output. This fixes the problem since it adds a zero with frequency a bit higher than the parasitic pole. This zero pulls the phase up so that when the loop gain reaches unity, the phase is around 90, at least far from 180, preventing oscillation from happening. The transfer function of this is simulated in LISO. From the plot, we can see the effect of the output resistance pulling the phase up to zero (90 in the case of an opamp because of the dominant pole).

  1819   Fri Aug 30 13:15:07 2019 DuoSummaryElectronicsITMX DAC noise

The PUM noisemon board has been installed in Livingston ITMX test mass. After the installation, we fetched the coil driver drive signal, noisemon output signal and the coherence between them. 

This is how we calculate the DAC noise spectrum. The unit is V/rtHz.

drive\times\sqrt{1-coherence}

The data fetching configurations are:

- Start time: 1250467218. Locked for more than 20hrs from there, if you check here: https://ldas-jobs.ligo-la.caltech.edu/~detchar/summary/day/20190822/

- Bin size: 0.1Hz

- Window: Hanning

- Average: 1000

Attachment 1 and 2: plot of the DAC noises in volts compared to the G1401399 model.

Attachment 3 and 4: plot of the DAC noises projected to the displacement of the test mass and incohrerently summed from all the four test masses.

All the data are attached as xml files. They are directly saved from DTT and can be opened in DTT.

To reproduce the plots, run the python code in the zip file. The code runs without any parameters. 

  1821   Sat Aug 31 19:21:13 2019 ranaSummaryElectronicsITMX DAC noise

I don't agree about this. Doesn;t this ignore the noise of the noisemon circuit (analog readout noise + ADC noise) ? I think you must have a model for than noise in order to infer the DAC noise. Or maybe my pringle suggestion has better SNR?

Quote:

This is how we calculate the DAC noise spectrum. The unit is V/rtHz.

drive\times\sqrt{1-coherence}

 

 

  1822   Wed Sep 11 17:24:43 2019 DuoSummaryElectronicsITMX DAC noise

I did a quick estimation of the subtraction result. I subtracted the ADC noise and the noisemon noise. 

NoSubtraction=\sqrt{1-coherence}\times drive

Now I subtract it:

WithSubtractionDACNoise=\sqrt{NoSubtraction^2-NoisemonNoise^2-ADCNoise^2}

The ADC noise and Noisemon noise are converted to DAC volts (divided by the transfer function of the noisemon and coil driver).

Form the results from 10-200Hz, it seems that the calculated noise is DAC noise.

Attachment 2 is the result: subtracted noises vs. model compared to aLIGO noise.

Attachment 1 shows how the subtraction is done: we subtract noisemon noise from the total noise. (Noisemon noise contains ADC noise) Noisemon noise and ADC noise is neglegible at that frequency.

It seems at low frequency what we see there might still be DAC noise, if not other unknown sources.

Quote:

I don't agree about this. Doesn;t this ignore the noise of the noisemon circuit (analog readout noise + ADC noise) ? I think you must have a model for than noise in order to infer the DAC noise. Or maybe my pringle suggestion has better SNR?

Quote:

This is how we calculate the DAC noise spectrum. The unit is V/rtHz.

drive\times\sqrt{1-coherence}

 

 

 

  1824   Tue Oct 8 17:31:27 2019 DuoSummary Noisemon check

Noisemon has been installed at L1 for a while. Now we have it on ITMX and ITMY. ITMX was installed first and ITMY was installed on September 11.

Recently, after it was installed at ITMY, we were trying to check the functionality of the circuit - if it measures DAC nosie properly between 20 - 100Hz. When we were doing that, we encountered some strange harmonics of 65Hz in UL channel. It is shown in attachment 6, data from 9/25 ETMY.

We traced back to where it was installed at ETMY, 9/11, and we still see the lines there (attachment 5).

Then we went to check ITMX, since the data was consistent when it was first installed. However, when we use 9/25 data, we see attachment 4. The UL channel measurement is way above the other three channels. Tracing back the dates, we found in ITMX it started 9/10 (attachment 3), comparing to 9/9 (attachment 2) when it was still good.

All the data and scripts are in attachment 1.

Notes (in case you read about noisemon for the first time):

All the plots are

drive\times \sqrt{1-coherence}

It is suppose to be DAC nosie + Noisemon noise + ADC noise, which DAC noise being dominant between 20 - 100Hz. The purple curves are DAC noise model. The measurements are expected to be close to it between 20Hz and 100Hz.

 

  1851   Tue Oct 20 20:41:59 2020 KojiSummaryGeneralDelivered the instrument / components for 2um ECDL

I brought in the instrument and components for 2um ECDL:

1. SAF Gain chip / SAF1900S / Qty2
2. Grating / GR25-0616 / Qty2
3. 3axis piezo mount / POLARIS-K1S3P / Qty2
4. Lens / 390093-D / Qty2
5/6 Thorlabs small components / F3ES20, F3ESN1P / Qty2 ea
7 N/A
8~13 Machines Metal Components / D1900435, D1900429, D1900433, D1900432, D1900430, D1900434 / Qty 2ea
14~17 McMaster Carr fastners / 92196a192, 92196a110, 92196a079, 92196a081 / Qty 100 ea
18 Temp Controller / TED200C / Qty 2 Note One unit temporary used by 2um PD test setup
19 Laser Current Driver / LDC220C / Qty 2
20 Piezo Driver MDT694B / Qty 2

  1852   Wed Oct 28 17:29:14 2020 PacoSummaryGeneralLab organization

I entered Crackle lab circa ~11:15. I started some basic lab inventory and started cleaning/organizing stuff. We will use the first optical table (as you enter the lab) because it's the easiest to clear (see below before and after clearing). Some of the cleared items on the table include:

- UHV foil (moved to top left cabinet above the work bench)
- OSEM components for Crackle (?) (moved to top left cabinet above the work bench)
- Various metallic parts/components (moved some in a plastic container to the second drawer from the bottom of the second red tool storage, and others to the second optical table)
- Various screw/screwdriver kits (moved some to work bench right by the electronic storage area and others to the second optical table)
- Power supply and laser diode driver (moved to control/acquisition rack)

I then moved the 1064nm pump Innolight Mephisto 800NE to the clear table, clamped it down, and cleaned/organized the lab a little, which involved:

- Shelve orphan/incomplete PCBs and electronic components from the work bench up to the cabinets.
- Organized some cables by the fume hood.
- Organized other random hardware on the work benches. 

I found the Emergency STOP (OMRON STI #A22EM02B) button buried on the fume hood, so I gave it a quick test, and after confirming it worked I wired it to the interlock on the back of the laser controller. Then tested it along with the interlock and verified it's working, but I have yet to solder it nicely (I didn't commit to the wire lengths yet).

Left at ~ 14:45. Noted that we had more cockroaches in the floor at the beginning of the day than 2 um laser sources. Now we are tied.

  1854   Wed Nov 4 01:25:37 2020 KojiSummaryOpticsAspheric Lenses and Grating Plates bonded on their mounts

Attachment 1: Black Diamond (GeSbSe) Lens was mounted on the flexure mount. The flat surface should face to the gain chip. It was aligned on the wipe to be flush with the protrusion.

Attachment 2: Applied glue on the four grooves of each flexure mount.

Attachment 3: The grating was bonded on the mount. The arrow marks were arranged as Paco directed. The mount could not stand by itself. And the screws were placed to stop the grating skating on the mount.

  1865   Fri Nov 20 18:43:31 2020 KojiSummaryGeneralDelivered the instrument / components for 2um ECDL

> Temp Controller / TED200C / Qty 2 Note One unit temporary used by 2um PD test setup

I brought the brand new TED200C from QIL to Crackle (Permanent move).

The unit used for 2um PD test setup will stay in QIL (Permanent)

 

  1871   Thu Dec 3 12:20:19 2020 AnchalSummaryElectronicsTuned and characterized EOM Driver for 37 MHz phase modulation

Measurement details:

  • Connected New Focus 4004 broadband IR phase modulator to the output of the SN06 EOM driver.
  • Splitted R output of AG4395A. One end went to the input of SN06 EOM driver.
  • The other end goes to input R of Ag4395A.
  • The RFMon of the driver is fed to input A of AG4395A.
  • Used a tuning stick for the coilcraft inductor to tune the resonance peak to 36 MHz.
  • Took measurements with the configuration files in this directory.

Data

  1898   Tue Feb 2 10:32:25 2021 AnchalSummaryOpticsFiguring out how much astigmatism is hurting us

Methods

  • Use the actual measured beam profile in X and Y directions.
  • Propagate them with the current position of lens.
  • Assume the position of cavity mirror and crystal as given by the second solution in BestSolutions.mat in the Jan 8th analysis which is implemented currently.
  • Calculate the overlap with target and position of waists in X and Y direction.

Conclusions

  • Astigmatism should not be hurting us significantly.
  • The mode matching in principle can be improved in the experiment.

Analysis

  1911   Thu May 20 17:09:43 2021 KojiSummaryGeneralAnother Heimann Sensor

Another Heimann Sensor / Boston Electronics delivered to Paco.
This unit (purchased May 2020/ / Delivered Aug 5th, 2020) has a FZ-Si window on it.
We don't know how it is.

  1912   Wed Jun 2 18:37:09 2021 PacoSummaryCrackleVent crackle experiment

[Paco, Anchal, Ian, Yehonathan]

Today, in preparation for the optical table to come, we vented the big crackle jar using the vent valve near the gauge. We detached the roughing pump and covered the bellows and pump connections with clean aluminum foil. We then proceeded to move several instruments, including some other pumps, a compressor, a couple of power supplies, power cords, the HeNe laser, misc. material blocks, and boxes with bearings and springs into the cage. The next operation required for us to displace the table is to lift the jar from the top and carefully dismantle the Crackle experiment and store it away somewhere.

Questions: where to store mostly?

  1934   Tue Oct 17 22:11:21 2023 murtazaSummarySUSTriple Suspension Simulation

I attempted a matlab simulation for closing the loops on the triple suspensions. The system (hsts) was imported from https://git.ligo.org/jenne-driggers/SUS.
The active damping filters were read for the PR3 optic at LLO. 
There were a few glitches which were accounted for. 

- The complex pairs of poles and zeros differed ever so slightly in their conjugate parts. An example is given in Attachment 3. The real and imaginary values were rounded off to the 10th place
- The closed loop system was unstable. Brett suggested accounting for the electronic gains which were obtained from https://svn.ligo.caltech.edu/svn/sus/trunk/HSTS/L1/MC1/SAGM1/Results/2012-05-08_1700_L1SUSMC1_M1_ALL_TFs.pdf. A factor of 34.1 was accounted for all DOFs.
- The matlab version uses connect for closing the loops. Even after accounting for the gain, there were a few RHP poles (smaller now). 
- A simulink version for the system was created which essentially did the function of "connect" in matlab and it was simulated. This closed loop system was stable. A comparison of the Bode plots (m1->drive->DOF -------> m1->disp->DOF) is given in Attachment 1.
(forgot to wrap the phase for the Bode plots, will change to the corrected version tomorrow)
- The step responses fo the simulink plant for (m1->drive->DOF -------> m1->disp->DOF) were generated (Attachment 2).

Next Steps:

- Need to check for the inconsistencies between the two simulation methods
- Can proceed to add ports for noise inputs
- Need to verify the current electronic gain calibrations at LLO for the optic (if available)
 

  1935   Wed Oct 18 11:51:55 2023 murtazaSummarySUSTriple Suspension Simulation

Closer look at the damping siutation.
tldr: Corrected electronics gain, Signs of filters flipped, AND THE CORRECT MODEL (HLTS) WAS USED.

- I looked around the SVN to find the recent electronics gain. To begin with, the gains applied previous to the simulation were incorrect (MC1, 2012, e_k = 34.1). This was corrected to (PR3, 2023, e_k = 1.5404)https://svn.ligo.caltech.edu/svn/sus/trunk/HLTS/L1/PR3/SAGM1/Results/2023_07_20_1100_L1SUSPR3_M1_ALL_TFs.pdf

- With the new gain, the system was unstable. I wanted to check the closed loop behavior of each individual filter to see where the instabilty was rising from. I checked the matlab and simulink simulations for each filter turned on individually and flipping signs of feedback sequentially.

(0 = unstable, 1 = stable)

Active Filter M, S M, S
  -ve feedback +ve feedback
L 0, 1 1, 1
T 0, 1 1, 1
V 0, 1 1, 1
Y 0, 1 1, 1
P 0, 1 1, 1
R 0, 1  1, 1

While writing this elog, I realized that PR3 was a large suspension and I needed to use the HLTS model instead of the HSTS model. I updated the model and poof, the closed loop system is stable. Matlab and simulink agree with each other now so I'll proceed with using Matlab now.

 (m1->drive->DOF -------> m1->disp->DOF) 
- Bode Plots: Attachment 1
- Step Responses: Attachment 2

  1936   Thu Oct 19 18:22:21 2023 murtazaSummarySUSTriple Suspension Simulation

Jeff Kissel: 

In short — above 10 Hz, the number that’s typically tossed around verbally for displacement noise floor is 5e-11 [m/rtHz].

Using this (with the assumption that it is white), I proceeded to estimate the displacements in M3 DOFs due to the sensor noise in M1 DOFs. The OSEM configuration/dimensions were obtained from https://dcc.ligo.org/DocDB/0002/D070447/002/D070447-v2_HLTS_OSEMLeverArmMeasurements.pdf

noise = 5*10^{-11} m/\sqrt{Hz}

The noise in each DOF was estimated by taking the quadrature sum of the contribution of each sensor used for the DOF measurement (eg, for L, since there are 2 sensors measuring the same value, it would be  \sqrt{(0.5*noise)^{2} +(0.5*noise)^{2} }
I looked at the OSEM2EUL matrix for PR3 to get the change of basis. The matrix elements for the angular basis agrees with the small angle approximations using geometry to obtain the magnitudes (Attachment 1).
Attachment 2 has the individual as well as the combined ASD for the estimate Range [0.5 - 100 Hz]

Pages 1,2 are the positional and rotational ASD of m3 displacements respectively taking the quadrature sum of the sensor noise contribution to each DOF in m1.
Figures 4-9 are arragned showing the contribution of the individual DOFs of m1 to displacements of m3.
Noticable sensor noise in m1_disp were observed for the following:


m3_L ------> m1_L, m1_P
m3_T ------> m1_T, m1_R
m3_V ------> m1_V
m3_Y ------> m1_Y
m3_P ------> m1_L, m1_P
m3_R ------> m1_T, m1_R

 

  1937   Fri Oct 20 12:13:00 2023 murtazaSummarySUSTriple Suspension Simulation

I made some changes to the plots
tldr:
 - collected the linear and angular DOFs sensor noise contributions from M1 in a single plot
- added some meaningful titles and legends
- changed the limits of the plots

The plots were zoomed in with the following limits.
- x-limits [0.5 - 20Hz]
- y-limits [1e-18, 5e-9]

The x-limits were with the following rationale:
lower limit -> arbitarily chosen to incorporate the peaks <1Hz
upper limit -> the detection band begins from 10Hz, with the spectrum rolling off steeply and being 3 orders of magnitude lower than the peaks

The y-limits were with the following rationale:
lower limit -> arbitarily chosen, do not know the floor which is significant for detection. 5 orders of magnitude seemed reasonable
upper limit -> All peaks lower than 5e-9, thus no need of space above it.

 

  1938   Mon Oct 23 16:52:54 2023 murtazaSummarySUSTriple Suspension Simulation

A velocity damping filter with of the following form: zpk(0, 2*pi*[-20, -20], 100) was applied to the Length DOF while the remaining filters were set to 0. The following Attachements are comparisons betwen the Active Filters at Sites vs Velocity Damping Filter

Attachment 1 shows the Bode Plot comparisons

Attachment 2 shows the Ringdown Period comparisons

Attachment 3 shows the ASD comparisons for M3_L

  1939   Fri Oct 27 01:00:37 2023 murtazaSummarySUSTriple Suspension Simulation

With the following goals:

- 10x lower noise magnitude than the current filter design in the 10-20Hz range
- 10s ringdown time 

After gaining some intuition from Brett, I started designing the filter. The New design current contains the following components
- Velocity damping: zpk(0, [10, 10], 1e6). Zero at 0 to prevent feeding back the DC offset, Poles at 10Hz to low pass freqeuncies over 10Hz, Gain arbitarily chosen to achieve feedback.
- Notches at 10Hz and 15Hz balancing the magnitude to prevent sufficient loss in phase margin
- Bump at 0.745Hz to suppress the peak at the same frequency
 

The comparisons are made with just having the Longitudinal DOF filter active in the loop between the filter used at the site and the new design

Attachment 1 shows a comparison of the ASD and the ringdown times.
Attachment 2 shows a comparison of the filter designs
Attachemnt 3 is the open loop transfer function for M1 (L DOF) with the minimum stability margins. The current phase margin is ~22 degrees (Aiming for 30 degrees)
Attachment 4 shows a comparison of the OLTFs for M1 (L DOF). 

This in no way acheives the objectives, the next steps for tuning are:
- Tune parameters for the current filter design
- Add lead/lag compensators
- Compare the performance between notches and elliptical filters 

  1941   Mon Oct 30 12:08:35 2023 murtazaSummarySUSTriple Suspension Simulation

PR3 Livingston Filter Design (LONGITUDINAL DOF)

tldr: meeting noise reduction requirements, meeting ringdown time requirements, doing okay on the phase margins (~20 degrees for the minimum stability margins)

Filter Design:

1. zpk(0, pair(-2*pi*100, 75), -1e6) (Damp the longitudinal DOF on M1)
2. bump(0.75,30, 10) (Damp the natural frequency of M1 at 0.75Hz)
3. bump(3.2, 5, 1.5) (I was trying to get some damping on the 3Hz peak, although it didn't improve the impulse response as compared to without the bump, it recovered 10 degrees of phase margin and improved the noise performace by a factor of ~5).
3. notch(10,10,7)*notch(15,10,7)*notch(20,10,7)*notch(10,10,5)*notch(15,10,5)*notch(20,10,5) (Suppress the noise from 10->20Hz)
The UGF was then set at 3Hz.

 

Attachment 1 shows a comparison of the ASD and the ringdown times.
Attachment 2 shows a comparison of the filter designs
Attachemnt 3 is the open loop transfer function for M1 (L DOF) with the minimum stability margins. The current phase margin is ~20 degrees 
Attachment 4 shows a comparison of the OLTFs for M1 (L DOF). 

  1942   Tue Oct 31 14:14:52 2023 murtazaSummarySUSTriple Suspension Simulation

PR3 Livingston Filter Design (PITCH DOF)

tldr: meeting noise reduction requirements, meeting ringdown time requirements, doing okay on the phase margins (~20 degrees for the minimum stability margins)

Filter Design: Using the same design philosophy for the longitudinal DOF, I proceeded to design the pitch damping loop

1. zpk(0, -2*pi*pair(100, 75), -1) (Damp the pitch DOF on M1)
2. bump(0.66, 15, 9) (Damp the natural frequency of M1 at 0.75Hz)
3. bump(3.75, 5, 3.5) (Recreating the accidental bump from the longitudinal filter, adding a small bump slightly ahead of where I want to set my UGF does well for the noise performance).
3. notch(10,12,8)*notch(15,12,5)*notch(20,12,7)*notch(10,12,5)*notch(15,12,7) (Suppress the noise from 10->20Hz, used a single notch at 20Hz exploiting the natural roll off of the system)
The UGF was then set at 3.62Hz.

 

Attachment 1 shows a comparison of the ASD and the ringdown times.
Attachment 2 shows a comparison of the filter designs
Attachemnt 3 is the open loop transfer function for M1 (P DOF) with the minimum stability margins. The current phase margin is ~21 degrees 
Attachment 4 shows a comparison of the OLTFs for M1 (P DOF). 

  1943   Fri Nov 3 16:43:26 2023 murtazaSummarySUSTriple Suspension Simulation

PR3 Trial Filter Design

tldr: PR3 (Livingston, HLTS) filters redesigned with the following goals.

  • Lower noise by a factor ~10 in the 10-30Hz bandwidth
  • Achieve similar ringdowns for the impulse response
  • Have phase margins of ~30 degrees and gain margins of ~3dB

This was the first time I’ve designed damping filters => I’ll be verbose in the explanation. The ASD shows noise reductions at 10Hz and 20Hz between the site filter design and the trial filter design (assuming that the natural roll off makes 30Hz noise low enough). The filters were designed individually (with the remaining DOFs damping turned off).

The basic philosophy for designing filters for each DOF has been the following. 

  • Velocity damping with a zero at 0 and a pair of complex poles. The zero at 0 is what gives viscous damping and the pole pair provides filtering of noise and gives a finite actuation size. Having complex part for the poles helps recover some phase margin while inducing some oscillations in the signal (which is assumed to be okay).
  • Instead of manually setting the gain for the filters, the UGF for open loop transfer function can be manually set where we want it to be. (For newbies like me, the bode plot crosses the the 0dB or unity gain mark multiple times, the UGF is the frequency where it crosses that point the last time. The intuition behind setting the UGF is as follows:
    1) For feedback, all frequencies are fed back to the system, however the ones above the 0dB mark in the OLTF are significant.
    2) Mechanical resonances can usually be at any frequency, however in this case, the first order modes usually occur at lower frequenices. 
    3) Mechanical systems naturally roll off (magnitude steadily decreases) at higher frequencies
    4) From 3), you can set the UGF at higher frequencies for faster damping (more gain on the peaks), but that will also lead feeding back the sensing noise into the system. Thus, it’s a tradeoff.
  • Once a UGF has been picked appropriately, add bumps at the frequencies where the peaks are not high enough in the OLTF. This ensures they are damped well.
  • Add notches in places where you want a reduction in sensor noise entering the system by looking at the ASD of the sensor noise on M1 to Test Mass displacement.
  • Add elliptical filters (bandstop in this case) for aggressive filtering of the modes that have considerable peak in the noise ASD due to bounce and roll (stretching of the wire) at higher frequencies. This means that there is virtually no damping on these modes (with the goal being to reduce the sensor noise at these modes). 6th order filters are used usually and in this case, the attenuation used was 40dB for the filter. (This is specifically for the vertical and roll modes, the metric was to do slightly better on the noise performance than the sites at these ringup frequencies).
  • Most SISO loops after all this had decent gain margin but sucked with phase margin. Adding a small bump in front of the UGF (f0 + df) helps recover sizable phase margin at the cost of some gain margin. 

 

With these following toolsets, here’s the filter design for each DOF. (The electronics gain has not been accounted for here, it must be added to the filter design). The filters work with negative feedback with a gain of 1. 

 

DOF

UGF

Velocity Damping

Notches

Bumps

Elliptical

Longitudinal

3.2

zpk(0, -2*pi*pair(150, 80), 1)

 

notch(10,10,10), notch(15,10,7), notch(20,10,7), notch(10,10,8), notch(15,10,7), notch(20,10,8)

bump(6, 5, 8), bump(0.66,15, 3.5)

 

 

Transverse

3.88

zpk([0], -2*pi*pair(80, 30), 1)

notch(10,12,5), notch(15,12,6), notch(20,12,7)

bump(4, 5, 3.5), bump(0.68, 20, 20)

 

Vertical

3.75

zpk([0], -2*pi*pair(100, 40), 1)

notch(10,12,4.5), notch(10,12,4.5), notch(15,12,8.5), notch(20,12,6), notch(20,8,5.5)

 

bump(1.07, 10, 5), bump(4.5, 5, 3.5)

ellip(6, 3, 60, 2*pi*[24, 30],'stop', 's')

Yaw

3.40

zpk([0], -2*pi*pair(100, 30), 1)

notch(10,12,7), notch(15,12,8), notch(20,12,8), notch(10,12,7), notch(15,12,5)

 

bump(0.989, 10, 5), bump(4, 6, 7)

 

 

Pitch

3.62

zpk([0], -2*pi*pair(100, 30), 1)

 

notch(10,10,8), notch(10,10,9), notch(15,10,7), notch(20,10,4), notch(22,10,6)

bump(0.745, 10, 1.8), bump(4.5, 10, 4), bump(0.66, 10, 1.8)

 

 

 

Roll

3.79

zpk([0], -2*pi*pair(100, 50), 1)

notch(10,12,4), notch(15,12,5), notch(20,12,5), notch(20,12,5), notch(35,12,7)

 

bump(5, 5, 5), bump(1.98, 10, 5), bump(0.692, 10, 5)

 

ellip(6, 3, 100, 2*pi*[40, 48],'stop', 's')

 

The pdf has been arranged as following for each DOF. (Comparisons are between the site filter design and the trial filter design (need to come up with a better terminology for this)).

  • First figure shows a comparison of the sensor noise ASD (DOF sensor noise on M1 to DOF Displacement on M3) in the bandwidth of interest and ringdown periods for the impulse response. (FOR Longitudinal DOF, the impulse input was ground, for the remaining DOFs, the input was at M1). 
  • Second figure shows a comparison of the filter designs in the bandwidth of interest
  • Third figure shows the open loop transfer function (P(s)*C(s)) with phase and gain margins
  • Fourth figure shows a comparison of the open loop transfer functions (P(s)*C(s)).
  1944   Thu Nov 9 12:56:10 2023 murtazaSummarySUSTriple Suspension Simulation

DATA ACQUISITION (FILTER MODULES) FROM LIVINGSTON

tldr: the filter files (active modules) for all the triple suspensions at Livingston were obtained.

The previous time I obtained the damping filters from the site, it was very messy and manual. I spent some time cleaning the scripts to get the filter module switch status, gains and so forth along with the filters.
Here's random bits of information and some progress update along the way.

- A handy place to obtain channel names: https://cis.ligo.org/

- To obtain the filter module switch status, you look at the channel name ending in SWSTAT which returns a decimal value. You convert it to binary and look at the first 10 digits from the right. 0-OFF, 1-ON.

- I was having trouble using gwpy to get the filter status from the Livingston site. The error looked as follows:
NDSWarning: unique NDS2 channel match not found for 'L1:SUS-PR3_M1_DAMP_T_SWSTAT' warnings.warn(error.split('\n', 1)[0]

I needed a machine that could use foton (obtain filter files) and nds2utils(obtain filter module status ON/OFF) on the same machine.
Paco advised against installing nds2utils on the 40m PCs so I used the conn method from nds2. Here's a nice script that shows how to use the method -> https://git.ligo.org/40m/measurements/-/snippets/164
(Be careful, chann_buffers is a shared_pointer. For example, if you pass a list of 6 channels and want to access the data from the 3rd channel, you use

my_data = chann_buffers[2].data

It has multiple methods if you want to access things like time, etc.)

- Instead of connecting to the 40m host, I connected to the Livingston (L1) host. Here's a list of hosts for future reference.

(None, ('nds.ligo.caltech.edu', 31200)),
('H1', ('nds.ligo-wa.caltech.edu', 31200)),
('H0', ('nds.ligo-wa.caltech.edu', 31200)),
('L1', ('nds.ligo-la.caltech.edu', 31200)),
('L0', ('nds.ligo-la.caltech.edu', 31200)),
('V1', ('nds.ligo.caltech.edu', 31200)),
('C1', ('nds40.ligo.caltech.edu', 31200)),
('C0', ('nds40.ligo.caltech.edu', 31200)),
('K1', ('k1nds0.kagra.icrr.u-tokyo.ac.jp', 8088)

- For the triple suspensions at Livingston, I will be obtaining the data for the following triple suspensions (https://dcc.ligo.org/DocDB/0033/T1100073/004/T1100073-v4_suspensions_by_chamber.pdf)
from DAQSVN (The document mentions IMC1, IMC2, IMC3 but since its from 2013, I'm hoping that the naming convention has changed for them to MC1, MC2, MC3)
 

HLTS - PR3, SR3
HSTS - PRM, PR2, SRM, SR2, MC1, MC2, MC3

The connection kept timing out yesterday intermittently , I'll try again today.

ERRNO: read_server_response_wait: Timed out: errno: 62 - Timer expired

Update: I kept trying it at hourly intervals, I managed to grab the data cool

  1945   Mon Nov 13 14:52:29 2023 murtazaSummarySUSTriple Suspension Simulation

Triple Suspension DAMP_OUT Spectrum (Livingston)

tldr: DAMP_OUT spectra for all triple suspensions at Livingston. For each DOF, in the 10-30Hz range, the feedback signals with comparatively large magitudes (visually) are as follows:

L: PRM, MC2
T: PR3, MC2
V: PRM, MC1, MC2, MC3
Y: MC2
P: PRM, SR3, MC1, MC2, MC3
R: PRM, PR3, SR3, MC1, MC2, MC3

 

Method:
- Damping filters were obtained for each optic from svn: l1:filter files in python using foton and exported them to matlab
- The timeseries for each optic were obtained for DAMP_IN1 channels (256Hz) using gwpy for the time interval of 1 hour (1382893218, 1382896818). The asd were calculated from the timeseries with a window length of 8s and overlap of 4s. This asd along with it's corresponding freqeuncies were exported to matlab
- Since there was no way to change the frequency resolution over which it was calculated in gwpy, it was interpolated in matlab using the interp1 function to match the frequency resolution that was used in matlab.
- The DAMP_OUT spectra was thus calculated as [*DAMP_OUT = (Damping_Filter)x(*DAMP_IN1)]

  1946   Mon Nov 13 17:39:12 2023 murtazaSummarySUSTriple Suspension Simulation

Triple Suspension Test Mass Displacement Spectrum (Livingston)

[WIP] (need to think some more about what's happening differently between the small and large suspensions)

tldr: Test Mass Displacement spectrum for all triple suspensions at Livingston for true (seismic_motion + sensor_noise).
 

Method:
- DAMP_IN1 ASD was obtained as described in the previous elog.
- The sum of seismic motion and sensor noise can be estimated such that, seismic_motion(s) + sensor_noise(s) = (1 + OLG)*DAMP_IN1.
- This ASD is then given as an input to the damping filters (DOF_IN) and propogates through to the test mass displacement (m1_disp) which is shown in the plots

 

 

 

  1953   Thu Nov 16 18:46:27 2023 murtazaSummarySUSLIGO Triple Damping loops

I made some tweaks to the existing filters to meet the gain margin of >6dB and phase margin of >35degrees requirement, surprisingly, didn't really need to lose out much on noise performance on any (still meeting the factor of ~10 mark).
(Which means that an optimal solution to designing against these objectives must exist, need to find it someday).
EDIT (11/17/2023): The gain margin and phase margins that I have used as a design criterion are the minimum stability margins (there would be multiple crossover freqeuncies where the magnitude corsses 0dB and the phase crosses 180 degrees; designing aginst the minimum margins should take care of the remaining margins)

Large Triple Suspension (Attachment 1)

Degree of Freedom Phase Margin Gain Margin
L 37.2 8.95
T -37 12.8
V 38.2 8.55
Y 37.9 12.9
P 36.9 7.11
R 43.5 10.4

Small Triple Suspension (Attachment 2)

Degree of Freedom Phase Margin Gain Margin
L 41 8.13
T -55.5 7.13
V 37.7 8.27
Y 38.7 7.34
P 36.8 8.08
R 39 9.31
  1954   Fri Nov 17 12:14:44 2023 ranaSummarySUSLIGO Triple Damping loops

its looking pretty good. just looking at the HSTS (lets ignore HLTS for now), it seems like you've lowered the feedback gain a lot in those regions where the existing loops have wide gain humps.

I think people probably put those there to reduce some troubling noise peak which is not captured in our "cost function" so far. If you re-insert those gain humps, can you still get good 10 Hz noise performance?

  1955   Fri Nov 17 14:24:06 2023 murtazaSummarySUSLIGO Triple Damping loops

BS Suspension Trial Filter Design

tldr: While designing for BS, I used the site noise asd (DAMP_IN*(1 + OLG)) given as an input to the controller instead of using white noise while designing them.
The design objectives that were met are as follows:

  • Lower noise by a factor ~10 in the 10-30Hz bandwidth or better
  • Achieve similar ringdowns for the impulse response
  • Have phase margins of >35 degrees and gain margins of >6dB or better

The same design principles were used for BS as for PR3 (explained in this elog). Here’s the filter design for each DOF. (The electronics gain has not been accounted for here, it must be added to the filter design). The filters work with negative feedback with a gain of 1. 
Note: As the edit mentions in the previous elog, "Highest UGF" denotes the highest frequency where the gain crosses 0dB (In some places on the internet, they call this frequency as the Unity Gain Frequency if there are multiple 0dB crossings, although the sources are debatable)

 

DOF

Highest UGF

Velocity Damping

Notches

Bumps

 

Longitudinal

2.0

zpk(0, -2*pi*pair(150, 80), 1)

 

notch(10,10,9), notch(15,10,7), notch(20,10,8),

notch(20,10,5) 

bump(1.09, 15, 2), bump(0.467, 15, 5),

bump(4, 5, 2)

 

 

Transverse

3.35

zpk([0], -2*pi*pair(80, 60), 1)

notch(10,12,5), notch(10,12,8), notch(15,12,8), 

notch(20,12,8), notch(20,12, 7)

bump(7, 5, 4)

 

Vertical

4.2

zpk([0], -2*pi*pair(100, 30), 1)

notch(10,12,5), notch(10,12,4), notch(15,12,9),

notch(20,12,12), notch(20,8,12), notch(17.5,80,6)

bump(6.8, 5, 12)

 

Yaw

2.3

zpk([0], -2*pi*pair(100, 30), 1)

notch(10,12,3), notch(15,12,8), notch(20,12,7),

notch(20,12,6), notch(15,12,4)

 

 

Pitch

1.7

zpk([0], -2*pi*pair(100, 50), 1)

notch(10,10,3), notch(10,10,2), notch(15,10,15),

notch(20,10,5), notch(20,10,5)

bump(1.05, 5, 6), bump(0.418, 15, 8),

bump(3.5, 10, 6)

 

Roll

3.65

zpk([0], -2*pi*pair(100, 50), 1)

notch(10,12,4), notch(15,12,8), notch(20,12,9),

notch(20,12,9), notch(25.966,80,20)

bump(1.05, 5, 2), bump(6, 5, 3)

 

The pdf has been arranged as following for each DOF. (Comparisons are between the site filter design and the trial filter design (need to come up with a better terminology for this)).

  • Figure 1 shows a comparison of the sensor noise ASD (DOF sensor noise on M1 to DOF Displacement on M3) in the bandwidth of interest and ringdown periods for the impulse response. (FOR Longitudinal DOF, the impulse input was ground, for the remaining DOFs, the input was at M1). 
  • Figure 2 shows a comparison of the filter designs in the bandwidth of interest
  • Figure 3 shows the open loop transfer function (P(s)*C(s)) with phase and gain margins (minimum stability margins)
  • Figure 4 shows a comparison of the open loop transfer functions (P(s)*C(s)).
  1956   Mon Nov 20 14:46:10 2023 murtazaSummarySUSLIGO Triple Damping Loops

tldr:
- Comparison of noise performance at 10, 20Hz and ringdown periods for small and large suspensions. (Filters for PR2, SRM updated to reflect changes in https://alog.ligo-la.caltech.edu/aLOG/index.php?callRep=68331)
- Scripts to run the simulation now parked on the 40m Git: https://git.ligo.org/40m/triple-suspension-simulation
(The scripts needs some comments, restructurization and so forth)
- I did a quick visual scan at the text filter files for PR2, SR2 and SRM and they look pretty similar; thus similar performances. Additionally, there is an existing notch for them in the 10-20Hz range which is why the noise performance is better only by a factor of ~2.

Small Triple Suspensions

Noise Performance

  L T V Y P R
Factor of Reduction 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz
PRM 10.1 10.6 13.3 9.9 9.9 10.1 10.3 9.7 10.2 10.5 10.4 9.7
PR2 2.3 2.0 2.9 1.8 2.2 1.9 2.2 1.8 1.9 1.9 2.4 1.8
SRM 2.3 2.0 2.9 1.8 2.2 1.9 2.2 1.8 1.9 1.9 2.4 1.8
SR2 2.3 2.0 2.9 1.8 2.2 1.9 2.2 1.8 1.9 1.9 2.4 1.8

Ringdown Period (seconds)

  L T V Y P R
Trial Filter Design 1.43 1.81 0.88 1.20 3.27 37.43
PRM 1.31 1.3 0.87 0.84 3.67 52.85
PR2 1.31 1.31 0.87 0.84 3.68 57.42
SRM 1.31 1.31 0.87 0.84 3.68 57.42
SR2 1.31 1.31 0.87 0.84 3.68 57.42

Large Triple Suspensions

Noise Performance

  L T V Y P R
Factor of Reduction 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz
PR3 11.0 12.1 11.0 10.3 10.2 10.7 10.5 10.3 9.8 10.1 9.6 10.2
SR3 12.8 10.2 3.2 3.1 16.4 13.6 140.9 24.7 67.3 17.6 2.8 14

Ringdown Period (seconds)

  L T V Y P R
Trial FIlter Design 10.38 5.53 2.59 4.38 1.85 8.50
PR3 11.07 5.7 2.17 5.86 1.79 4.73
SR3 13.37 8.15 3.93 1.84 1.82 17.04
  1958   Wed Nov 22 14:41:21 2023 murtazaSummarySUSLIGO Triple Damping Loops

TRIPLE SUSPENSIONS DAMPING LOOPS SUMMARY

tldr:
- Comparison of noise performance at 10, 20Hz and ringdown periods for small suspensions, large suspensions and the beamsplitter. (The comparisons are against the filter banks currently in use at Livingston (taking into account the site filters for SRM and PR2 updated on 11/17/2023), site noise asd was produced using a timeseries obtained from 11/22/2023, 12am PST for a duration of 1 hour to reflect the changes in this alog)
- Scripts to run the simulation now parked on the 40m Git: https://git.ligo.org/40m/triple-suspension-simulation
(The scripts needs some comments, restructurization and so forth)
- The small filters are designed using SR2 as a baseline.
- There are some redundancies in this elog from the previous ones (large triple remains the same, however I wanted to have filter metrics for all triple suspensions on the same page).

 

Small Triple Suspensions
(NOTE: If the noise reduction on PRM is too high, we can use the filter design for PRM from the previous elog and use the filter designed against SR2 for the optics (SR2, PR2 and SRM})

Noise Performance (Factor of Reduction vs Sites)

  L T V Y P R
  10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz
PRM 55.5 55.3 55.5 51.6 86 55.5 62.0 51.6 60.4 56.3 44.3 53.5
PR2 12.7 10.1 12.3 9.7 18.9 10.4 13.1 9.7 11.2 10.4 10.4 10.1
SRM 12.7 10.1 12.3 9.7 18.9 10.4 13.1 9.7 11.2 10.4 10.4 10.1
SR2 12.7 10.1 12.3 9.7 18.9 10.4 13.1 9.7 11.2 10.4 10.4 10.1

Ringdown Period (seconds)

  L T V Y P R
Trial Filter Design 2.84 1.81 0.96 1.23 3.76 29.25
PRM 1.31 1.3 0.87 0.84 3.67 52.85
PR2 1.31 1.31 0.87 0.84 3.68 57.42
SRM 1.31 1.31 0.87 0.84 3.68 57.42
SR2 1.31 1.31 0.87 0.84 3.68 57.42

Large Triple Suspensions

Noise Performance (Factor of Reduction vs Sites)

  L T V Y P R
  10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz
PR3 11.0 12.1 11.0 10.3 10.2 10.7 10.5 10.3 9.8 10.1 9.6 10.2
SR3 12.8 10.2 3.2 3.1 16.4 13.6 140.9 24.7 67.3 17.6 2.8 14

Ringdown Period (seconds)

  L T V Y P R
Trial FIlter Design 10.38 5.53 2.59 4.38 1.85 8.50
PR3 11.07 5.7 2.17 5.86 1.79 4.73
SR3 13.37 8.15 3.93 1.84 1.82 17.04

Beamsplitter

Noise Performance (Factor of Reduction vs Sites)

  L T V Y P R
  10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz 10Hz 20Hz
BS 10.1 10.7 9.9 10.0 10.2 9.4 11.2 11.9 12.1 10.8 11.3 10.3

Ringdown Period (seconds)

  L T V Y P R
Trial FIlter Design 3.31 3.28 3.97 2.39 19.01 1.40
BS 2.17 3.42 2.57 4.78 14.58 0.73

 

  1959   Mon Nov 27 15:08:48 2023 murtazaSummarySUSLIGO Triple Damping Loops

Next Steps:

I had a conversation with Anamaria Effler (Livingston) and Brett earlier today to get a better understanding of the situation on ground. She had a few pointers which I am hoping to address:

- The measured plant transfer functions have a phase difference with the model which starts becoming noticable above ~8Hz. She provided some matlab code that shows this difference for SR2. I'll check it out and find a way to incorporate it. [DONE]

- The bounce and roll peaks unfortunately couple to other modes in the true system and thus needs aggressive filtering in all DOFs (Although I can get away with having a higher Q factor to avoid losing a large phase margin around the UGFs). I will proceed to add those the filter designs. 

- From the projection data, I can rank the OSEMs and thus DOFs according to their contributions to DARM noise. Cosequentially, the damping filters can be prioritized which needs finer tuning.

- At the sites, a phase margin of 20-25 degrees for local damping is considered sufficient; I won't change the requirements set earlier (35 degrees) for now, but those extra 5-10 degrees can be useful in adding things like the bounce roll notches and so forth.  

  1960   Mon Nov 27 15:40:04 2023 murtazaSummarySUSLIGO Triple Damping Loops

Triple Suspension Model Discrepancy

Anamaria Effler pointed out a phase difference > 8Hz in the undamped model and the measured transfer functions of the plant for some of the triple suspensions. She provided code with the model and measurement of the plant for SR2 which I've used here as a reference.

I started with M1 (L -> L) which is shown in Attachment 1.The phase drops with an increase in frequency which (as Brett pointed out), could be a posiible time delay (or something else). To test the time delay hypothesis, I calculated the time delay at ~10Hz, ~ 20Hz and ~30Hz given by 

timeDelay = phaseLoss/(360*frequency)

10Hz - 5.1ms
20Hz - 5.5ms
30Hz - 5.7ms

This does not look like a constant time delay, but for now, it can work as a fair enough approximation for the discrepancy. Cosidering the timeDelay thus at 10 Hz, the phase loss at UGF (~3.2Hz) would be ~5.5degrees. Given the current requirements of phase margin for the trial filter design (35 degrees), it is well accounted for.  
Using this model, for the remaining degrees of freedom, the "timeDelay" at ~10Hz is as follows:

L - 5.1ms
T - 6.1ms
V - 6.2ms
Y - 6.1ms
P - 6.3ms
R - 6.0ms

I can add this time delay to the damping filters to "simulate" this discrepancy and get the minimum stability margins in simulation later. However, for now; considering a consistent phase loss of 6 degrees is a a good enough approximation.

  1961   Tue Nov 28 22:46:47 2023 murtazaSummarySUSLIGO Triple Damping Loops

tldr:
-Bounce and Roll mode notches added to the filters (same as the ones used at the sites) for all triple suspensions. Minor adjustments made to filters to achieve margin requirements.
-Damping consistent even under actuator saturation for HSTS. Checked with a step response of magnitude of 1unit (meters, radians as applied)
EDIT(11/28/2023): Checked for BS and HLTS as well, F_max for HLTS is 0.2016N, could not find the electronics chain for BS, assumed the same as HLTS; behaves similarly

To check the effect of actuator saturation, I built a quick simulink model (Attachment 1)  for the closed loop system. The actuators saturations were placed in front of the output of the damping filters with limits set as follows:

I suspected the actuator limits that could be set digitally or through the DAC. I first checked the digital limits, but they were set to 0 for all filters for SR2, which suggests that it's not used at the sites. 
To check the DAC limits, I referred the electronics chain for HSTS from the DCC: https://dcc.ligo.org/DocDB/0008/T1000061/007/HSTSElectronics_T1000061-v7.pdf
From the BOSEM Coil Electronics Chain, it can apply a force of 0.963 N/A, the current to volt conversion given by 11.9mA/V. Since the voltage limits are +-10V, the maximum force that can be applied by each coil is given by:

|F_max| = 0.963*11.9*1e-3*10 = 0.1145N
Since the basis change from OSEM to Euler basis distributes the required force to each OSEM such that the fractional force exerted by each individual add up to the net forv (taking the geometry of the mass into account for angular DOFs), this force is used as the actuator limit for all degrees of freedom.
I then used a step response of step size 1 to check the effect of actuator clipping.
(Maybe: For better completeness, I thought about using the maximum displacement that could be measured by the BOSEMS: From the same electronics chain document, the PD has the follow readout characteristic: 95uA/mm -> 240k V/A; for a 40Vpp, the maximum displacement that can be read would be (40/2)/(95*1e-6*240*1e3) = |0.877mm|. 
EDIT (11/29/2023): Brett later pointed me towards the BOSEM sensitivity curve which is linear for a range of 0.7mm (Attachment 7) which gives 0.35mm on either side, which is lower than the estimate from raw calculations.
I tried giving a 1mm step but it showed no clipping on the output of the damping filters, so I reverted to using a larger magnitude for the step size).

This is where I got stuck for half the day: SIMULINK WAS USING AN ODE15 SOLVER WHICH WAS PRODUCING AN UNSTABLE SYSTEM WHEN I INTRODUCED THE DAMPING FILTERS IN THE SIMULINK WORKSPACE (IT DIDN'T MATTER IF THE LOOP WAS CLOSED, IF THE DAMPING FILTER WAS LOADED IN THE SIMULINK MODEL, IT WOULD LEAD TO THE ROLL DOF BLOWING UP. LOST ATLEAST 5 HAIR OVER THIS. ATTACHMENT 2 FOR REFERENCE).

I eventually used the ODE45 solver and things were stable with it. 

The step responses along with the damping filter outputs saturating are shown in Attachment 3, 4
The step responses with no saturations enforced and damping filter outputs are shown in Attachment 5, 6

Visually, the ringdowns show a very small difference with/without saturation (maybe a few seconds) for all DOFs and there are no instabilities arising in the system with saturations. 

EDIT(11/29/2023): I wanted to test out which DOFs start saturating first so I decreased the step sizes starting from 1unit progressively until I saw clipping disappear. I thought about doing them individually first, but since the DOFs are coupled, there was no good way to tease them apart. So I maintained a constant step size of "x units" for all DOFs (the length and angular DOFs should ideally be different magnitudes), but this was easier to check since there is coupling between the DOFs. I don't think it provides any useful information as a whole, but just putting it out there if required later.
Observations:
- At 0.1 units (meters/radians), we have no clipping. This is way beyond (~300 times) the sensor sensitivity.
- At 0.2 units (meter/radians), L and T start clipping. Again, way beyond the sensitivity.

  1962   Wed Nov 29 11:14:56 2023 ranaSummarySUSLIGO Triple Damping Loops

there's no way that we have a 5 ms delay in our systems; its more like 1.5 ms in the 2 kHz systems.

I bet the phase lag is due to some high frequency anti-aliasing. Maybe something in the SUS system has a ~800 Hz AA filter for a 2048 sample rate.

But approximating this by a Pade time delay seems like a fine approach for testing.

  1963   Wed Nov 29 17:14:46 2023 murtazaSummarySUSLIGO Triple Damping Loops

The step response for a small step size (1um for longitudinal DOFs, 2urad for angular DOFs) are as follows.

The actuator saturations are shown in Attachment 1
The step response is shown in Attachment 2

Rings down pretty well in-spite of saturations, about 50% saturation on the actuators for all DOFs.

  1964   Thu Nov 30 10:04:20 2023 murtazaSummarySUSLIGO Triple Damping Loops

tldr: ODE45 relative tolerance was the issue with the weird behavior with the longitudinal DOF. I set the relative tolerance to 1e-9 which solved the behavior. The output from the damping filter rings along with ~50% saturation (Attachment 1) still leads to a decent ring down (Attachment 2). Attachment 3, 4 shows the same plots respectively with no saturation
A small detail that I missed in the previous elog; this test is to see how the filters behave qualitatively under some saturation. The motion of the mirrors is assumed to be 1um/1urad and the saturation limits are arbitariliy set such that the net saturation in the Euler basis is ~50%. The goal was to understand if the closed loop system can still damp out respectfully under this saturation.
For this test, I gave an "impulse" of 1um or 1urad (combination of step responses) instead of a step to be consistent with the tests I've ben doing previously. The saturation on the output of the damping filters were set as follows:
L - 5e-6N
T - 3e-6N
V - 2e-6N
Y - 2e-6N
P - 2e-6N
R - 2e-6N

The Long Story
There was something funny happening with the step response of the Longitudinal DOF in the previous elog which I wanted to figure out. Although the motion in L was damping out fairly (m3_disp_L), the output of the damping filter was not ringing down in proportion (here). 
-I first tried increasing the step size until I saw the effect go away. At a step size of around 1, this wasn't seen anymore. But then, as I begain decreasing the step size, this effect started creeping in. So I compared the ins and outs of different blocks to see where this fuzzy behavior was arising.
- The "culprit" was the damping filter, the comparison of the input to the filter and the output are shown in Attachment 5. This did not make any sense though; Although it looks like high freqeuncy oscillations, I was not sure where this would potentially come from. I plotted an ASD of this data to determine if there was something I was missing (Attachment 6).
- The low frequency peak was expected, but the higher frequency content was confusing; especially since the gain at the freqeuncies was very small (suppression expected). 
- I then compared this with the filter used at the sites to see if this was due to poor filter design on my end. But the same issue persisted with the site filters as well.
- I stared at the screen.
- Some more staring. 
- I then remembered the ODE45 situation from the previous day so I went in to double check if something changed there. And there I found the solution; the relative tolerance was set at 1e-3 which, for a 1e-6m impulse would be too large. I decreased the tolerance arbitarily to 1e-9. This worked finally!
 

  1965   Thu Nov 30 18:53:04 2023 murtazaSummarySUSLIGO Triple Damping Loops

​Saturation Check with CoilOut Filters

tldr: no saturation observed with the CoilOut Filters in the chain for 1um or 1urad impulse given at the same time.
Building up on the arbitrary saturation check, I added the CoilOut Filters and their analog counterparts before and after the saturation blocks. The filters modules were obtained from the sites for the ones actively used.
Since these CoilFilters were for the individual coils, a proxy method of checking this was as follows:
As we go from the Euler to the OSEM Basis, the actuators are shared between the respective DOFs given by the EUL2OSEM Matrix (Attachment 1).
Since each OSEM drives a fraction of it's respective DOFs, the one with the highest "gain" element for the particular OSEM will saturate first assuming that the actuation required is the same
(This is again a very coarse approximation, since the signals are stochastic, and this matrix takes a linear combination of those signals and feeds it to the coils, it doesn't necessarily hold true.)
Thus, the factors are chosen to be the maximum, rowwise between all the contributing coils for a particular DOF.

Next, the saturation limits are specified by the DAC response. Since the DAC is 20bits with 1 bit for sign, we have 2^19 counts as the maximum limit. The counts to Newton calibration is taken as 0.72cts/uN.
Thus, the maximum force that can be applied by each coil is given by 2^19*0.72*1e-6 = 0.7282N.
Under this limit, for the given impulse response, we see no saturation (Attachment 2 shows the signals compared between the saturation block and after)
The ringdown is shown in Attachment 3.

(The output from the damping filters actuate at <~0.01% of the actuator limits, which seems very small and makes me think I'm missing something here. Hope someone catches it).

  1966   Fri Dec 1 19:07:12 2023 murtazaSummarySUSLIGO Triple Damping Loops

Anamaria said that they would like the text files with the filters.
 In the process of converting the filters from Matlab to Foton, I've hit a roadblock.
The notch filter design which I've been using in matlab takes 3 parameters for which the code is attached. (Attachment 1)

To recreate this with the Notch filter design in foton, it takes the same 3 parameters, (f0, Q, atten). Note: this takes the attenuation in dB; which is not a problem. Easy to go from absolute magnitude to dB. 
However, I cannot understand the mapping between the Q factors in matlab and foton. With the same Q numerically, they have different widths (Attachment 2). This suggests a different algorithm for the filter design in foton compared to matlab (or something else).
I can add the zpk values or the coeffiicient values of the transfer function in foton that correspond to a filter in matlab manually, but it would be super nonintuitive for someone looking at the filter designs in foton in the future. So I don't want to do that.
Finding a mapping would be the best (same for bump -> ResGain as well).

EDIT (12/03/23): Brett pointed me towards Quack: https://dcc.ligo.org/DocDB/0076/G1101245/002/G1101245_autoquack_description.pdf; I'll take a look at it.
EDIT (12/04/23): I checked the documentation for AutoQuack, it seems confusing to me and I don't think it will solve the issue I am currently facing.
EDIT (12/04/23): I reached out to Brian Lantz who authored the code; he said there's still no good way to convert matlab filters to foton. I am moving ahead with using the poles and zeros for those filters for now. But it's cumbersome and can be done more systematically in the future.

  1967   Mon Dec 4 18:04:44 2023 murtazaSummarySUSLIGO Triple Damping Loops

EDIT(12/05/2023):
-Renamed RCVR_PH_L as Lead_Filter_L
- Absorbed the gain factors to FM0.(To make the overall gain = -1 compensating for the GAIN field in the filter design. For L, GAIN = -4. To make it equal to -1, I add a gain of 1/4 in FM0)
- The gain of 1.25 in the elliptical filter design  for bounce and roll was to make the DC gain equal to 1. I've restored it.


tldr: Converted the damping filters to foton from matlab (Attachment 2). The changes are to the following modules:
SRM_M1_DAMP_L, SRM_M1_DAMP_T, SRM_M1_DAMP_V, SRM_M1_DAMP_Y, SRM_M1_DAMP_P, SRM_M1_DAMP_R

The transfer functions for the filters in matlab and foton agree with each other in the {+-0.5dB, +-1degree} range on average at the frequencies I arbitarily picked (1Hz, 8Hz) where all the funny business can potentially happen.
I am accounting for these small differences due to numerical errors while obtaining the poles and zeros from the transfer function. (The filter designs in matlab for notches and bumps assign the parameters to the coefficients in the rational functions; factoring them can cause the numerical errors).
(Attachment 1 shows the comparison of the transfer functions which are arranged in the following order: {L, T, V, Y, P, R}, {Foton, Matlab}. Apologies for the poor labelling no, this is just for reference if something ends up being messy for later).
I overwrote some of the filter sections {0, 1, 2, 3, 4, 5, 6, 8}; the DAMP filters are arranged in the text file as follows (example given for L, follows similarly for all DOFs):

  Number Name Description

0 rolloff_L Velocity Damping with 2 poles and 1 zero

1 RG0.67 Resonant Gain to bump 0.67Hz

2 LEAD_FILTER_L Recover Phase Margin by adding a small bump ahead of the Last Unity Gain Crossing at the cost of a small Gain Margin

3 SUPP_NOISE_L Notches from 10Hz-20Hz to suppress sensor noise from feedback
  4 ELEC_GAIN Electronics Gain accounted to match the model (Only used to compare filters in matlab with foton, no need during site implementation)
  5 Plant Plant Model

 

6    

 

7 0:20 ???????
8 BR Filtering of the bounce and roll modes. Interestingly, for the same parameters for the Elliptical Filter function in Foton as compared to Matlab, the suppression is comparatively lower. (~100dB larger suppression in Matlab. I've left the parameters unchanged for now, this just means slightly better phase and gain margins in the filter design in Foton than in simulation in Matlab)
  9 ELP9R

????????

Some Notes:
- The filters sections with are requierd to be active
- I'm not sure what's the purpose of filter sections 7 (looks like velocity damping) and 9 (looks like noise suppression) exactly are (they are active at the sites). However, the filter shapes are fairly similar for the filters currently in use vs the ones designed; I'm guessing I'm capturing similar features with the new design.
 

  1968   Tue Dec 5 11:51:45 2023 ranaSummarySUSLIGO Triple Damping Loops

Thanks for the summary

  •  elliptic bandstop filters: Make sure that they have a DC gain of 1, not something like 1 dB or 0.1 dB.
  • notches - can you explain what these are for? Do you really mean notches or just some low pass or bandstop?
  • maybe rename FM2 as 'lead filter'
  • absorb the gain of 1/4x or -4 or whatever into FM0. No need for an extra gain module. We just want to NOT change the gain field when trying out new filters. We just swap in new filters without overwriting anything that's in use. Then we can revert when the test breaks things. i.e. let's not have to load a new filter file to transition back to the existing stable config.
  1969   Tue Dec 5 17:42:16 2023 murtazaSummarySUSLIGO Triple Damping Loops

- I checked the elliptical filter files; The gain factor of 1.25 was indeed to make the DC gain = 1. I restored the gain value
- Notches are bandstops in this context to filter out the noise in the 10-20Hz range.
- Done.
- Done.

Quote:

Thanks for the summary

  •  elliptic bandstop filters: Make sure that they have a DC gain of 1, not something like 1 dB or 0.1 dB.
  • notches - can you explain what these are for? Do you really mean notches or just some low pass or bandstop?
  • maybe rename FM2 as 'lead filter'
  • absorb the gain of 1/4x or -4 or whatever into FM0. No need for an extra gain module. We just want to NOT change the gain field when trying out new filters. We just swap in new filters without overwriting anything that's in use. Then we can revert when the test breaks things. i.e. let's not have to load a new filter file to transition back to the existing stable config.

 

ELOG V3.1.3-