ID |
Date |
Author |
Type |
Category |
Subject |
1969
|
Tue Dec 5 17:42:16 2023 |
murtaza | Summary | SUS | LIGO 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.
|
|
1968
|
Tue Dec 5 11:51:45 2023 |
rana | Summary | SUS | LIGO 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.
|
1967
|
Mon Dec 4 18:04:44 2023 |
murtaza | Summary | SUS | LIGO 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 , 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.
|
1966
|
Fri Dec 1 19:07:12 2023 |
murtaza | Summary | SUS | LIGO 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. |
1965
|
Thu Nov 30 18:53:04 2023 |
murtaza | Summary | SUS | LIGO 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). |
1964
|
Thu Nov 30 10:04:20 2023 |
murtaza | Summary | SUS | LIGO 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!
|
1963
|
Wed Nov 29 17:14:46 2023 |
murtaza | Summary | SUS | LIGO 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. |
1962
|
Wed Nov 29 11:14:56 2023 |
rana | Summary | SUS | LIGO 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. |
1961
|
Tue Nov 28 22:46:47 2023 |
murtaza | Summary | SUS | LIGO 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. |
1960
|
Mon Nov 27 15:40:04 2023 |
murtaza | Summary | SUS | LIGO 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. |
1959
|
Mon Nov 27 15:08:48 2023 |
murtaza | Summary | SUS | LIGO 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. |
1958
|
Wed Nov 22 14:41:21 2023 |
murtaza | Summary | SUS | LIGO 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 |
|
1957
|
Wed Nov 22 13:58:13 2023 |
murtaza | Misc | Noise Budget | LIGO Triple Damping Loops | Small Triple Suspension Trial Filter Design (SR2 Baseline)
tlpr: Referencing the triple noise breakdown from this alog , SR2 has the highest noise amongst the smaller suspensions. I had designed the trial filters eariler using PRM as a baseline, but since the optics couple against DARM loop differently, I am switching to this new baseline
While designing for SR2, I used the site noise asd (seismic noise + sensor noise = DAMP_IN*(1 + OLG)) given as input to the controller instead of using white noise while desinging them. I had to lose out on the ringdown times this time, still doing comparable to the sites. Phase and gain margins almost at design criterion now.
I've also added bumps to account for the "SECRET COSTS" at low frequencies; however, since I had to reduce the gain on the damping filters, they're relatively lower in magnitude than the site filters (most of these peaks are around the mechanical resonances at the lower frequencies; getting similar features in the ringdown could be a good measure of these bumps doing the job although being lower in magnitude, maybe :$).
The site noise asd was produced using a timeseries obtained from 11/22/2023, 12am PST for a duration of 1 hour
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 ~30 degrees and gain margins of ~3dB or better
The same design principles were used for SR2 as for PRM (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.
DOF
|
UGF
|
Velocity Damping
|
Notches
|
Bumps
|
Elliptical
|
Longitudinal
|
3.1
|
zpk(0, -2*pi*pair(150, 80), 1)
|
notch(10,10,9),
notch(15,10,9),
notch(20,10,8)
|
bump(0.67, 5, 10),
bump(4.5, 3, 11)
|
|
Transverse
|
3.3
|
zpk([0], -2*pi*pair(80, 30), 1)
|
notch(10,12,4), notch(10,12,3),
notch(15,12,10),
notch(20,12,4), notch(20,12,5)
|
bump(4.5, 5, 3),
bump(0.674, 5, 6)
|
|
Vertical
|
3.2
|
zpk([0], -2*pi*pair(100, 70), 1)
|
notch(10,12,5), notch(10,12,5),
notch(15,12,10),
notch(20,12,10), notch(25,12,10)
|
bump(0.678, 5, 5),
bump(6, 5, 5)
|
ellip(6, 3, 30, 2*pi*[24, 30],'stop', 's')
|
Yaw
|
3.6
|
zpk([0], -2*pi*pair(100, 70), 1)
|
notch(10,12,4), notch(10,12,4),
notch(15,12,10),
notch(20,12,5), notch(20,12,5)
|
bump(1.98, 5, 3),
bump(5, 5, 3)
|
|
Pitch
|
4.25
|
zpk([0], -2*pi*pair(100, 50), 1)
|
notch(10,10,5), notch(10,10,5),
notch(15,10,5),
notch(20,10,5), notch(20,10,6)
|
bump(1.006, 10, 6),
bump(7, 10, 8)
|
|
Roll
|
2.6
|
zpk([0], -2*pi*pair(100, 50), 1)
|
notch(10,10,3), notch(10,10,2),
notch(15,12,4),
notch(20,12,3), notch(20,12,4)
|
bump(1.52, 7, 18),
bump(4, 5, 5)
|
ellip(6, 3, 50, 2*pi*[35, 45],'stop', 's')
|
The pdf has been arranged as following for each DOF. (Comparisons are between the existing site filter design and the trial filter design (sticking to this terminology, psych).
- 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 margin (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 |
murtaza | Summary | SUS | LIGO 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 |
|
1955
|
Fri Nov 17 14:24:06 2023 |
murtaza | Summary | SUS | LIGO 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)).
|
1954
|
Fri Nov 17 12:14:44 2023 |
rana | Summary | SUS | LIGO 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? |
1953
|
Thu Nov 16 18:46:27 2023 |
murtaza | Summary | SUS | LIGO 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 |
|
1952
|
Thu Nov 16 14:48:08 2023 |
murtaza | HowTo | SUS | LIGO HSTS Damping loops | In general, it has been difficult to save phase/gain margins for Pitch for both suspension types. Making note of the current phase and gain margins for the large and small suspensions.
Large Triple Suspension
Degree of Freedom |
Phase Margin |
Gain Margin |
L |
25 |
7.82 |
T |
32.1 |
10.9 |
V |
28.5 |
7.81 |
Y |
33 |
12.5 |
P |
26.1 |
5.71 |
R |
43.5 |
10.4 |
Small Triple Suspension
Degree of Freedom |
Phase Margin |
Gain Margin |
L |
41 |
8.13 |
T |
-55.5 |
7.13 |
V |
31.1 |
6.51 |
Y |
38.7 |
7.34 |
P |
30.9 |
6.72 |
R |
29 |
9.41 |
I'll proceed to tweak the DOFs in marked in red at the cost of noise margins at 10, 20Hz. |
1951
|
Thu Nov 16 14:08:47 2023 |
rana | HowTo | SUS | LIGO HSTS Damping loops | I think we want >6 dB of gain margin and > 35 deg of phase margin. Its not necessary to do this for all loops in all systems, but the suspensions get thrashed a lot and so we want them all to be pretty stable.
If you cannot meet the 10-20 Hz noise requirements with this, we can back off, but I think this would be a good design criterion.
Also, the loops are AC coupled so we need to consider all of the UGFs, not just the highest frequency one.
|
1950
|
Thu Nov 16 13:15:06 2023 |
murtaza | Misc | Noise Budget | triples | Small Triple Suspension Trial Filter Design
tldr: From the Damp_OUT spectrum of the small suspensions, PRM had a relatively larger magnitude in the 10-30Hz bandwidth. I thus choose to design filters for them using PRM as a reference.
While designing for PRM, I used the site noise asd (DAMP_IN*(1 + OLG)) given as input to the controller instead of using white noise while desinging 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 ~30 degrees and gain margins of ~3dB or better
The same design principles were used for PRM 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: I had an an interesting time designing the Roll Mode, bumping the peaks to increase damping on them after setting the UGF at 2.75 would increase the ringdown period. I reverted to using a similar overall "magnitude" that they used at the sites and added notches for reducing noise in the required bandwidth. The new filter still better on the ringdown (15 seconds lesser) so I'll leave it at that for now and make changes if required later.
DOF
|
UGF
|
Velocity Damping
|
Notches
|
Bumps
|
Elliptical
|
Longitudinal
|
3.5
|
zpk(0, -2*pi*pair(150, 80), 1)
|
notch(10,10,5), notch(15,10,9), notch(20,10,11)
|
bump(4.5, 3, 2)
|
|
Transverse
|
3.5
|
zpk([0], -2*pi*pair(80, 30), 1)
|
notch(10,12,5), notch(15,12,6), notch(20,12,7)
|
bump(4.5, 5, 3.5), bump(0.674, 5, 5)
|
|
Vertical
|
3.8
|
zpk([0], -2*pi*pair(100, 70), 1)
|
notch(10,12,6.5), notch(15,12,9), notch(20,12,11), notch(25,12,5)
|
bump(5.5, 2, 1.5)
|
ellip(6, 3, 30, 2*pi*[24, 30],'stop', 's')
|
Yaw
|
3.8
|
zpk([0], -2*pi*pair(100, 30), 1)
|
notch(10,12,5), notch(15,12,8), notch(20,12,15)
|
bump(4.5, 5, 1.4), bump(4, 6, 7)
|
|
Pitch
|
4.5
|
zpk([0], -2*pi*pair(100, 50), 1)
|
notch(10,10,3), notch(15,10,7), notch(20,10,10)
|
bump(1.006, 10, 6), bump(6.5, 10, 2)
|
|
Roll
|
2.75
|
zpk([0], -2*pi*pair(100, 50), 1)
|
notch(10,10,3), notch(15,12,5), notch(20,12,5.5)
|
bump(1.51, 5, 10), bump(4, 5, 2)
|
ellip(6, 3, 50, 2*pi*[35, 45],'stop', 's')
|
The pdfs have 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)).
- Attachment 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).
- Attachement 2 shows a comparison of the filter designs in the bandwidth of interest
- Attachment 3 shows the open loop transfer function (P(s)*C(s)) with phase and gain margin (minimum stability margins)
- Atttachment 4 shows a comparison of the open loop transfer functions (P(s)*C(s)).
|
1949
|
Wed Nov 15 09:48:05 2023 |
rana | Misc | Noise Budget | triples | Can you explain how you calibrated the control signals into displacement units? It would be fine to start if you could just plot them with the y-axis in counts/rHz for now, unless you have good confidence in the calibration. |
1948
|
Tue Nov 14 22:18:15 2023 |
murtaza | Misc | Noise Budget | triples | The spectra for damp out for the following optics
- small triples {PR2, PRM, SR2, SRM} (Attachment 1)
- large triples {PR3, SR3} (Attachment 2)
- beamsplitter {BS} (Attachment 3)
For pwelch(), I was not taking into account the DC offset which is why I was getting funky plots (spectral leakage). I corrected for it, no more interpolation anymore!
Edit: I have changed the yaxis label for all plots to counts/rHz for now since I do not know the exact calibration |
1947
|
Tue Nov 14 16:14:11 2023 |
rana | Misc | Noise Budget | triples | we only care about PRM, PR2, PR3, BS, SR3, SR2, SRM, so you should eliminate all other optics from the plots.
Then just plot the HSTS to get started and we can see how they compare. |
1946
|
Mon Nov 13 17:39:12 2023 |
murtaza | Summary | SUS | Triple 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
|
1945
|
Mon Nov 13 14:52:29 2023 |
murtaza | Summary | SUS | Triple 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)] |
1944
|
Thu Nov 9 12:56:10 2023 |
murtaza | Summary | SUS | Triple 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 
|
1943
|
Fri Nov 3 16:43:26 2023 |
murtaza | Summary | SUS | Triple 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)).
|
1942
|
Tue Oct 31 14:14:52 2023 |
murtaza | Summary | SUS | Triple 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). |
1941
|
Mon Oct 30 12:08:35 2023 |
murtaza | Summary | SUS | Triple 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). |
1940
|
Sat Oct 28 22:46:55 2023 |
Paco | Lab Infrastructure | EquipmentLoan | Thorlabs HV pzt driver | I took the Thorlabs PZT driver to the 40m for use with the BHD OMC. |
1939
|
Fri Oct 27 01:00:37 2023 |
murtaza | Summary | SUS | Triple 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 |
1938
|
Mon Oct 23 16:52:54 2023 |
murtaza | Summary | SUS | Triple 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 |
1937
|
Fri Oct 20 12:13:00 2023 |
murtaza | Summary | SUS | Triple 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.
|
1936
|
Thu Oct 19 18:22:21 2023 |
murtaza | Summary | SUS | Triple 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

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 .
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
|
1935
|
Wed Oct 18 11:51:55 2023 |
murtaza | Summary | SUS | Triple 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 |
1934
|
Tue Oct 17 22:11:21 2023 |
murtaza | Summary | SUS | Triple 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)
|
1933
|
Mon Sep 25 15:56:17 2023 |
Paco | Lab Infrastructure | 1418 nm AUX ECDL | 2nd ECDL housing assembled | I assembled the second ECDL with a 19XX SAF gain chip (all pins remain disconnected), and a 14XX nm angle facet plate with a grating.
Attachments #1-4 show the final state of the housing along with the thorlabs current and temperature drivers. The remaining spare components (including screws, angle facet plates for the gratings and two SAF gain chips, one for each wavelength) are stored in a single box in the right top cabinet on the north end. |
1932
|
Thu Jul 20 12:57:38 2023 |
aaron | Misc | EquipmentLoan | AOM to cryo lab | I returned the Gooch & Housego R26035-2-1.55-LTD AOM (SN 216939) from DOPO table |
1931
|
Thu Jan 12 11:51:49 2023 |
Koji | Lab Infrastructure | General | How to move the large engine hoist through the narrow door | How to move the large engine hoist through the narrow door
See http://nodus.ligo.caltech.edu:8080/Mariner/122 |
1930
|
Tue Jan 10 23:40:17 2023 |
Koji | Lab Infrastructure | General | Heavy item transport - preparation | See http://nodus.ligo.caltech.edu:8080/Mariner/121 |
1929
|
Thu Jun 23 16:34:46 2022 |
Paco | Lab Infrastructure | DOPO | Relocated DOPO setup | Following Koji's request, I took some time to clear the area surrounding the crackle chamber so it can be migrated to the former TCS lab.
I moved the DOPO setup which was sitting on a breadboard for easy transportation (Attachment #1) and placed into the other table in the lab. Attachments #2-3 shows the cleared area. Several instruments from the DOPO experiment still remain around the other side of the crackle chamber, if they need to be relocated I can move them as well. |
1928
|
Tue Mar 8 09:32:56 2022 |
Paco | DailyProgress | 1418 nm AUX ECDL | 1418nm ECDL Frequency noise | [Paco, Radhika]
Beatnote recovery
Restarted ECDL characterization last Friday. After some lab cleanup, and beatnote amplitude optimization we borrowed Moku Lab from Cryo lab to fast-track phase noise measurements. Attachment #1 shows a sketch of our delayed self-heterodyne interferometer. The Marconi 2023A feeds +7 dBm to a ZHA-3A amplfier which shifts the frequency of the laser in one of the arms using a free space AOM. The first order is coupled back into a fiber beamsplitter to interfere with a 10 m delay line beam.
Improved beatnote detection
The 38.5 MHz beatnote was barely detectable before when using PDA20CS2 because at unity (lowest) gain stage, the bandwidth was only 11 MHz... We instead switched to an FPD310-FC-NIR type which has a more adequate high-frequency response. Attachment #2 shows the beatnote power spectrum taken with Moku Lab spectrum analyzer. The two vertical lines indicate (1) the heterodyne beatnote frequency and (2) the "free spectral range" indicating the actual delay in the MZ arms, which is calibrated to = 9.73 m (using 1.46 for n, the fused silica fiber index).
Phase meter and freq noise calibration
We then tried using the phase meter application on the Moku. The internal PLL automatically detected the 38.499 MHz center frequency and produced an unwrapped RF phase timeseries (e.g. shown in Attachment #3). The MZ interferometer gives an AC signal

oscillating at , i.e. the angular beatnote frequency. The delay (calibrated above) characterizes the response of the MZ relating the RF phase noise spectrum to the optical phase noise spectrum. The RF phase obtained through the phase meter has a fourier transform

So the optical phase spectral density is related to the rf phase spectral density by a transfer function Then, the RF & optical phase power spectral densities are related by or

Then, because the instantaneous laser frequency is , in fourier domain the frequency and phase PSDs are related by the magnitude square of this transfer function like

Following this prescription, we compute an estimate for the frequency noise ASD (square root of the PSD) shown in Attachment #4. The frequency noise estimated by this method has several contributions and *does not* necessarily represent the free-running ECDL frequency noise.
Next steps
- Noise budgeting (experiment)
- Control loop (open/closed) models
|
1927
|
Tue Oct 19 13:52:03 2021 |
Radhika | DailyProgress | 1418 nm AUX ECDL | 1418nm ECDL Frequency noise |
Attachment 1 is a diagram of the current setup for measuring ECDL frequency noise. Since the last update, I have fed the beat note signal to a mixer, using a 35 MHz LO sourced from the Marconi. The resulting demodulated signal is passed to a low-pass filter, removing the 2f sinusoidal term (any trace of the frequency difference) and leaving behind a low-frequency term containing frequency noise information of the original beam (accumulated over the length of delay line).
I took spectra of the resulting signal using the SR785 (Attachment 2). Note that these units are still in V/rtHz, since the signal has not been calibrated to the appropriate units for frequency noise, Hz/rtHz. Finding the calibration term will involve study of delay line frequency discrimination. |
1926
|
Mon Oct 4 17:44:34 2021 |
Radhika | DailyProgress | 1418 nm AUX ECDL | Free space AOM | [Paco, Radhika]
Last Friday we received a new lens to direct the AOM 1st-order beam from free space into a fiber cable. We mounted the lens and connected a fiber cable into the photodiode, and tried to align the lens and see a jump in the oscilloscope. We were not able to do so and wrapped up for the day.
Today we continued aligning the lens with the fine adjustment on the mount, and eventually saw signal on the scope! Hooray, done with free space. We then prepared for eventually taking a heterodyne beat note measurement and hooked up the appropriate inputs/outputs to the beamsplitters. We added in the 50-50 beamsplitter that takes in the 1st order diffracted beam along with the beam from the delay line as inputs. We passed one of the outputs to the photodiode and had to retweak the freespace-to-fiber lens until we recovered signal on the scope, and we saw the beatnote signal.
Next, while Paco is out of town I will continue to work towards making a frequency noise measurement. We made a roadmap today:
I will demodulate the beat note using a mixer and a 35 MHz LO sourced from the Marconi. The result will be a 2f cosine term, along with a much lower frequency term which encloses the frequency noise information. This will be passed through a low-pass filter to get rid of the first high-frequency term. The remaining time-domain signal will be passed to the SR785 to obtain a spectra of the frequency noise. Calibration will need to be performed to obtain the right units for the spectra, Hz2/Hz (or Hz/rtHz). |
1925
|
Wed Sep 22 16:44:34 2021 |
Radhika | DailyProgress | 1418 nm AUX ECDL | Free space AOM | [Paco, Radhika]
We had previously noticed that the ECDL laser power seemed weaker compared to when we originally set it up and tested it. Today Paco opened it up and tweaked the grating inside to obtain a max power of 3 mW. This way, we could better resolve the 0th and 1st order beams coming out of the AOM.
Since we don't yet have a lens to send the collimated 1st-order beam to fiber, we connected a power meter to detect the beam and hooked it up to the oscilloscope. We noted peak diffraction at around 38.5 MHz (rough estimate). Using the inverse relationship between laser wavelength and the RF frequency , and the fact that the AOM is designed to operate at 1550 nm at 35 MHz, we calculated that the ECDL wavelength should be ~1409 nm. Of course this is a rough estimation, but it is a quick validation that we are indeed operating near 1418 nm. |
1924
|
Thu Sep 16 15:21:21 2021 |
Paco | DailyProgress | 1418 nm AUX ECDL | Free space AOM | [Paco, Radhika]
Uninstalled the fiber AOM and temporarily removed the third fiber 2x2 port beamsplitter. We are now using this free-space AOM. Then, I managed to launch one of the outputs of the second fiber beamsplitter into free space using a F220APC-1550 fixed collimator. The beam clears the AOM aperture nicely and lands on the other side.
This AOM operates at a RF frequency of 35 MHz, so we set up a sweep on the Marconi to cover a window of 35 MHz +- 15 MHz. Using an IR detector card, we looked for evidence of 1st-order diffraction (from the setup geometry, the 1st order beam should have been visibly discernable). We first scanned the AOM across yaw but did not notice diffraction. Then, Paco lowered the height of the fixed collimator and we repeated scanning across yaw. We eventually saw the beam "jump" - diffraction! We adjusted yaw until we recovered both 0th and 1st order beams, at 50/50 intensity.
In summary, the free-space AOM works and we have managed to see 1st order diffraction. Next steps will be to quantitatively measure this diffraction while sweeping across RF frequency and power. |
1923
|
Thu Sep 2 17:31:38 2021 |
Radhika | DailyProgress | 1418 nm AUX ECDL | 1418 nm ECDL Relative Intensity Noise | I took a relative intensity noise (RIN) measurement of the ECDL, by feeding the 0th order output of the AOM to the SR785. The RF power driving the AOM was set to 0 dBm. The RIN at 1 Hz is about 3x10-5, which is consistent with informal measurements we took on 08/13. From my understanding this noise looks pretty low, which is good. I will consult with Paco and add more discussion or conclusions, if any. |
1922
|
Wed Sep 1 13:12:02 2021 |
Radhika | DailyProgress | 1418 nm AUX ECDL | 1419 nm ECDL AOM diffraction at 95 MHz |
[Paco, Radhika]
Today we tried to pick up from [1920] by repeating the sweep measurements across RF frequency, at 3 dBm (max power). We noticed that the 0th order signal would dip around the expected value, consistent with the plot in [1920]. However, there was no signal from the 1st order. Clearly diffraction was occurring as seen by the dip in 0th order, but nothing was coming out of the 1st order port. We spent some time debugging by swapping the photodetector inputs / playing with the PD gains / performing power cycles, but got no insight into the issue.
We suspected the 1st order fiber coming out of the AOM might be damaged, since it loops around fairly tightly. After giving it more slack, we still saw no signal. We wanted to test the fiber, so we took an unused output of the 50-50 beamsplitter and fed it into the 1st order port, effectively running the AOM in reverse. We hooked up the input and 0th order ports to the photodiodes and did not observe any signal. From here we were more convinced that the 1st order fiber may have seen some damage.
For next steps, we can still use the existing fiber setup to take measurements of relative intensity noise (RIN), using the 0th order output of the AOM. I plan to do this in the next few days. Meanwhile, Paco is looking into ordering parts for a free space setup. We found a free-space AOM at 1064nm that seems promising, and we will work to transition the setup accordingly. |
1921
|
Tue Aug 17 11:09:29 2021 |
rana | DailyProgress | 1418 nm AUX ECDL | 1419 nm ECDL AOM diffraction at 95 MHz | Should measure the S-matrix using a bi-directional coupler. |
1920
|
Thu Aug 12 11:49:59 2021 |
Radhika | DailyProgress | 1418 nm AUX ECDL | 1419 nm ECDL AOM diffraction at 95 MHz | [Paco, Radhika]
When previously trying to characterize the AOM, we had noticed no 1st order diffraction when operating at 80 MHz, but significant diffraction at 95 MHz. This motivated us to take measurements while sweeping across both RF drive frequency and Marconi drive power. For frequency, we swept from 80-120 MHz in steps of 1 MHz. For power, we swept across [3, 0, -3] dBm (3 dBm is max power before saturating AOM). We took our measurements of 0th and 1st order signal using an oscilloscope.
Contour plots of the 0th and 1st order signals can be seen in Attachments 1 and 2, respectively. Peak 1st order diffraction seems to occur at ~106 MHz. Using this AOM for a beat note measurement, the frequency difference would be greater than intended, which could lead to a weaker beat note signal.
*Bonus: Today we moved the ECDL setup off the cryostat table and onto the other table. These measurements were taken after the move. |
|