Updated noise budget curves, now computed using the latest version of pygwinc. This resolves the inconsistency between the gwinc quantum noise curves and Gautam's analytic calculations. As before, the key configuration parameters are listed in the figure titles.
Attachment 1: Phase quadrature
Attachment 2: Amplitude quadrature
Attachment 3: Comparison to aLIGO design (phase quadrature)
The quantum noise curves here are not correct. c.f. amplitude quadrature noise budget.
Revised noise estimates, correcting a couple of factor of 2 and factor of pi errors found in the coil driver noise calculation. Also resolves a strain vs. displacement units confusion using the new pygwinc. Gautam and I have checked these noises against the analytical predictions and believe they are now accurate. Attachments are again:
Attachment 1: Phase quadrature
Attachment 2: Amplitude quadrature
Attachment 3: Comparison to aLIGO design (phase quadrature)
We've completed almost all of the in-situ testing of the c1psl channels. During this process, we identified several channels which needed to be rewired to different Acromags (BIO sinking v. sourcing). We also elected to change the connector type of a few channels for practical advantages. Those modifications and other issues found during testing are detailed below. Also attached are the updated channel assignments, with a column indicating the in-situ testing status of each channel.
Attachment #1 shows the relevant parts of the schematic of the WFS demod board (not whitening board).
Before removing the boards from the eurocrate:
After Koji effected the fix, the boards were re-installed, HV supplies were dialled back up to nominal voltage/currents, and the PMC/IMC were re-locked. The WFS DC channels now no longer saturate even when the IMC is unlocked 👏 👏 . I leave it to Yehonathan / Jon to calibrate these EPICS channels into physical units of mW of power. We should also fix the MEDM screen and remove the un-necessary EPICS channels.
Later in the evening, I took advantage of the non-saturated readbacks to center the beams better on the WFS heads. Then, with the WFS servos disabled, I manually aligned the IMC mirrors till REFLDC was minimized. Then I centered the beam on the MC2 transmission QPD (looking at individual quadrants), and set the WFS1/2 RF offsets and MC2 Trans QPD offsets in this condition.
WFS DC channels are saturating when the IMC is unlocked.
In the past year, pygwinc has expanded to support not just fundamental noise calculations (e.g., quantum, thermal) but also any number of user-defined noises. These custom noise definitions can do anything, from evaluating an empirical model (e.g., electronics, suspension) to loading real noise measurements (e.g., laser AM/PM noise). Here is an example of the framework applied to H1.
Starting with the BHD review-era noises, I have set up the 40m pygwinc fork with a working noise budget which we can easily expand. Specific actions:
I set up our fork in this way to keep the 40m separate from the main pygwinc code (i.e., not added to as a built-in IFO type). With the 40m code all contained within one root-level directory (with a 40m-specific name), we should now always be able to upgrade to the latest pygwinc without creating intractable merge conflicts.
I just now modified the /etc/rsyncd.conf file as per Dan Kozak's instructions. The old conf file is still there with the file name appended with today's date.
I then enabled the rsync daemon to run on boot using 'enable'. I'll ask Dan to start the file transfers again and see if this works.
controls@nodus|etc> sudo systemctl start rsyncd.service
controls@nodus|etc> sudo systemctl enable rsyncd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
controls@nodus|etc> sudo systemctl status rsyncd.service
● rsyncd.service - fast remote file copy program daemon
Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2020-04-13 16:49:12 PDT; 1min 28s ago
Main PID: 4950 (rsync)
└─4950 /usr/bin/rsync --daemon --no-detach
Apr 13 16:49:12 nodus.martian.113.168.192.in-addr.arpa systemd: Started fast remote file copy program daemon.
Apr 13 16:49:12 nodus.martian.113.168.192.in-addr.arpa systemd: Starting fast remote file copy program daemon...
apt install source-highlight
then modified bashrc to point to /usr/share instead of /usr/bin
This is to facilitate the summary page config fines to be pulled from nodus in a scripted way, without being asked for authentication. If someone knows of a better/more secure way for this to be done, please let me know. The site summary pages seem to pull the config files from a git repo, maybe that's better?
GariLynn worked on the measurement of E1800089 mirrros.
The result of the data analysis, as well as the data and the codes, have been summarized here:
As suggested last week, Hang and I have reviewed the A+ BHD status (DRD, CDD, and reviewers' comments) and compiled a list of key unanswered questions which could be addressed through Finesse analysis.
In anticipation of others helping with this modeling effort, we've tried to break questions into self-contained projects and estimated their level of difficulty. As you'll see, they range from beginner to Finesse guru.
I started my attempt on noise budgeting of ALS by going back to how Kiwamu did it and adding as many sources as I could find up till now. This calculation is present in ALS_Noise_Budget notebook. I intend to collect data for noise sources and all future work on ALS in the ALS repo.
The noise budget runs simulink through matlab.engine inside python and remaining calculations including the pygwinc ones are done in python. Please point out any errors that I might have done here. I still need to add noise due to DFD and the ADC after it. For the residual frequency noise of AUX laser, I have currently used an upper limit of 1kHz/rt Hz at 10 Hz free-running frequency noise of an NPRO laser.
I've added 4 proposed schemes for implementing ALS in voyager. Major thing to figure out is what AUX laser would be and how we would compare the different PSL and AUX lasers to create an error signal for ALS. Everywhere below, 2um would mean wavelengths near 2 um including the proposed 2128nm. Since it is not fixed, I'm using a categorical name. Same is the case for 1um which actually would mean half of whatever 2 um carries.
This year we've struggled with vacuum controls unreliability (e.g., spurious interlock triggers) caused by decaying hardware. Here are details of the vacuum refurbishment plan I described on the 40m call this week.
☑ Refurbish TP2 and TP3 dry pumps. Completed [ELOG 15417].
☑ Automated notifications of interlock-trigger events. Email to 40m list and a new interlock flag channel. Completed [ELOG 15424].
☐ Replace failing UPS.
☐ Remove interlock dependencies on TP2/TP3 serial readbacks. Due to persistent glitching [ELOG 15140, ELOG 15392].
Unlike TP2 and TP3, the TP1 readbacks are real analog signals routed to Acromags. As these have caused us no issues at all, the plan is to eliminate dependence on the TP2/3 digital readbacks in favor of the analog controller outputs. All the digital readback channels will continue to exist, but the interlock system will no longer depend on them. This will require adding 2 new sinking BI channels each for TP2 and TP3 (for a total of 4 new channels). We have 8 open Acromag XT1111 channels in the c1vac system [ELOG 14493], so the new channels can be accommodated. The below table summarizes the proposed changes.
To carry out the next steps of the vac refurbishment plan [ELOG 15499], I've ordered parts necessary for interfacing the UPS units and the analog TP2/3 controller outputs with c1vac. The purchase list is appended to the main BHD list and is located here. Some parts we already had in the boxes of Acromag materials. Jordan is gathering what we do already have and staging it on the vacuum controls console table - please don't move them or put them away.
since the summary pages are working again, I was clicking through and noticed that there's a wandering peak in the whitened IMC spectrogram that goes from 10-30 Hz over the course of a day.
anyone know what this is ?
I found out an error I did in copying some control model values from Kiwamu's matlab code. On fixing those, we get a considerably reduced amount of total noise. However, there was still an unstable region around the unity gain frequency because of a very small phase margin. Attachment 3 shows the noise budget, ALS open-loop transfer function, and AUX PDH open-loop transfer function with ALS disengaged. Attachment 4 is the yaml file containing all required zpk values for the control model used. Note that the noise budget shows out-of-loop residual arm length fluctuations with respect to PSL frequency. The RMS curve on this plot is integrated for the shown frequency region.
Adding two more poles at 100 Hz in the ALS digital filter seems to work in making the ALS loop stable everywhere and additionally provides a steeper roll-off after 100 Hz. Attachment 1 shows the noise budget, ALS open-loop transfer function, and AUX PDH open-loop transfer function with ALS disengaged. Attachment 2 is the yaml file containing all required zpk values for the control model used. Note that the noise budget shows out-of-loop residual arm length fluctuations with respect to PSL frequency. The RMS curve on this plot is integrated for the shown frequency region.
But is it really more stable?
For that, we'll have to take present noise source estimates but Gautum vaguely confirmed that this looked more realistic now 'shape-wise'. If I remember correctly, he mentioned that we currently can achieve 8 pm of residual rms motion in the arm cavity with respect to the PSL frequency. So we might be overestimating our loop's capability or underestimating some noise source. More feedback on this welcome and required.
The code used to calculate the transfer functions and plot them is in the repo 40m/ALS/noiseBudget
Attachment 5 here shows a block diagram for the control loop model used. Output port 'Res_Disp' is used for referring all the noise sources at the residual arm length fluctuation in the noise budget. The open-loop transfer function for ALS is calculated by -(ALS_DAC->ALS_Out1 / ALS_DAC->ALS_Out2) (removing the -1 negative feedback by putting in the negative sign.) While the AUX PDH open-loop transfer function is calculated by python controls package with simple series cascading of all the loop elements.
## Cavity Pole
I think the digital loop in the ALS budget is too optimistic. You have to include all the digital delays and anti-aliasing filters to get the real response.
aslo, I recommend grabbing some of the actual spectra from the in-lock times with nds and using the calibrated spectra as inputs to this mode. Although we don't have good models of the stack, you can sort of infer it by using the calibrated seismometer data and the calibrated MC_F or MC_L channels (for IMC) or XARM/YARM signals for those.
This is not a reply to comments given to the last post; Still working on incorporating those suggestions.
Rana suggested looking first at what needs to be suppressed and then create a filter suited for the noise from scratch. So I discarded all earlier poles and zeros and just kept the resonant gains in the digital filter. With that, I found that all we need is three poles at 1 Hz and a gain of 8.1e5 gives the lowest RMS noise value I could get.
Now there can be some practical reasons unknown to me because of which this filter is not possible, but I just wanted to put it here as I'll add the actual noise spectra into this model now.
This ALS loop is not stable. Its one of those traps that comes from using only the Bode plot to estimate the loop stability. You have to also look at the time domain response - you can look at my feedback lecture for the SURF students for some functions.
Yes, that loop was unstable. I started using the time domain response to check for the stability of loops now. I have been able to improve the filter slightly with more suppression below 20 Hz but still poor phase margin as before. This removes the lower frequency region bump due to seismic noise. The RMS noise improved only slightly with the bump near UGF still the main contributor to the noise.
For inclusion of real spectra, time delays and the anti-aliasing filters, I still need some more information.
Related Elog post with more details: 40m/15587
I used D1400293 to get the latest logged details about the universal PDH box used to lock the green laser at X end. The uPDH_X_boost.fil file present there was used to obtain the control model for this box. See attachment one for the code used. Since there is a variable gain stage in the box, I tuned the gain of the filter model F_AUX in ALS_controls.yml to get the maximum phase margin in the PDH lock of the green laser. Unity gain frequency of 8.3 kHz can be achieved in this loop and as Gautam pointed out earlier, it can't be increased much further without changes in the box.
The ALS control model remains stable with a reduction in total estimate noise because of the above update. There are few things to change though:
For all the loops where we drive the NPRO PZT, there is some notch/resonance feature due to the PZT mechanical resonance. In the IMC loop this limits the PZT/EOM crossove to be less than 25 kHz. I don't have a model for this, btu it should be included.
If you hunt through the elogs, people have measured the TF of ALS NPRO PZT to phase/frequency. Probably there's also a measured ALS PDH loop somewhere that you could use to verify your model.
The only two PZT Phase modulation transfer function measurements I could find are 40m/15206 and 40m/12077. Both these measurements were made to find a good modulation frequency and do not go below 50 kHz. So I don't think these will help us. We'll have to do a frequency transfer function measurement at lower frequencies.
I'm still looking for ALS PDH loop measurements to verify the model. I found this 40m/15059 but it is only near the UGF. The UGF measured here though looks very similar to the model prediction. A bit older measurement in 2017 was this 40m/13238 where I assume by ALS OLTF gautum meant the green laser PDH OLTF. It had similar UGF but the model I have has more phase lag, probably because of a 31.5 kHz pole which comes at U7 through the input low pass coupling through R28, C20 and R29 (See D1400293)
If the green laser is not being used, can I go and take some of these measurements myself?
Koji recommended that I can add whitening filters to suppress ADC noise easily. I added a filter before ADC in ALS loop with 4 zeros at 1.5 Hz and 4 poles at 100 Hz and added a reversed filter in the digital filter of ALS. This did not change the performance of the loop but significantly reduced the contribution of ADC noise above 1 Hz. One can see ALS_controls.yaml for the filter description. Please let me know if this does not make sense or there is something that I have overlooked.
Now, the dominant noise source is DFD noise below 100 Hz and green laser frequency noise above that. For DFD noise, I used data dating back to Kiwamu's paper. The noise contribution from DFD in the model is lower than the latest measured ALS noise budget post on elog. I'll look further into design details and noise of DFD.
Code, data, and schematics
I entered 40m today at around 1:20 pm and left by 1:45 pm. I entered 104 through the machine shop entry. I did the following:
The AC cord from the PSL HEPA variac to the junction box was replaced.
Now the HEPA is running at 70%
Showed up at the 40m at 7pm
Closing the work
Leaving the 40m at 9:30pm
Memo: 40m wiring/Mask/Camera/Red Pitaya/Particle Counter
I entered 40m today at around 1:10 pm and left by 1:50 pm. I entered 104 through the machine shop entry. I took top view single picture photos of ITMY, BS, AP, ITMX, ETMX and ETMY tables. The latest photos will be put here on the wiki soon.
I set up an action cam (DJI OSMO Pocket) and brought it back to the 40m. The kit is now placed in the control room cabinet together with the Canon DSLR.
I might have left the USBC chaging cable at home this time. Will bring it back next time.-> The cable was returned to the kit on Oct 23rd.
The particle counter on the 40m PSL was removed. The package was made together with the OMC lab particle counter (see the packing list below).
The kit was picked up by Radhika for a python code to read out the numbers.
=== Packing List ===
I went to 40m yesterday at around 2:30 pm and Koji showed me how to acquire lock in different arms and for different lasers. Finally, we took a preliminary measurement of shaking the ETMX at some discrete frequencies and looking at the beatnote frequency spectrum of X-end laser's fiber-coupled IR and Main laser's IR pick-off.
We verified that we can send discrete frequency excitation signals to ETMX actuators directly and see a corresponding peak in the spectrum of beatnote frequency between fiber-coupled X-end IR laser and main laser IR pickoff.
If full interferometer had been locked, we could have used the DARM error signal output to calibrate it against this measurement.
Last week and this week I've been working on the characterization of the Q3000 QPDs. The QPDs were named 81, 82, 83, and 94.
My recommendation is to use #81 and #84 as they have similar dark current characteristics between the segments. But basically, all the QPDs look fine.
The actual junction capacitance and the RF dark noise should be characterized by the actual WFS head circuit.
The QPD packages were labeled and returned to Gautam to be implemented in the WFS heads.
gautam: S/N #84 was installed as the AS WFS QPD. The remaining 3 are stored in the clean cabinet at EX (where the rest of the RF photodiodes are).
Given the similarities between the MDT694B (single channel piezo controller) and TC200 (temperature controller) serial interfaces, I added the pyserial driver here.
*Warning* this first version of the driver remains untested
FYI, there is this. Seems pretty well maintained, and so might be more useful in the long run. The available catalog of instruments is quite impressive - TC200 temp controller and SRS345 func gen are included and are things we use in the lab. maybe you can make a pull request to add MDT694B (there is some nice API already built I think). We should also put our netgpibdata stuff and the vacuum gauge control (basically everything that isn't rtcds) on there (unless there is some intellectual property rights issues that the Caltech lawyers have to sort out).
I have taken transfer functions and noise measurements of the two HAM-A coil driver boxes D1100687 #S2100027 and #S2100028. All transfer functions look as expected. I'm not sure about the noise measurements. If anyone sees flaw in my measurement method, please let me know. I'm not sure why in some channels I got 10Hz harmoni peaks in the noise. That was very strange. Also let me know if my current noise estimate is wrong.
I took transfer function and noise measurement of satellite amplifier box's photodiode transimpedance circuit. For the measurement, I created a makeshift connector to convert backside DB25 into DB9 with the 4 channels for PDA input. The output was taken in differential form at the front PD Output port. To feed current to the circuit, I put in 12 kOhm resistors in series at the inputs, so the V/V transfer function measured was multiplied by 12 kOhm to get the transimpedance of the circuit.
Edit Wed Feb 10 15:14:13 2021 :
THE NOISE MEASUREMENT WAS WRONG HERE. SEE 40m/15799.
I took some steps to reduce the coupling of 60 Hz harmonics in noise measurement. The box was transferred to the floor instead of on top of another instrument. Measurement was immediately converted into single-ended using SR560 in battery mode with a gain of 10. All of the setups was covered in aluminum foil to increase isolation.
I did the recommended modifications on of the boards with serial number S2100028. These included:
I took transfer function measurements with same method as in 40m/15774 and I'm presenting it here to ensure the modifications are correct and if I should proceed to the next board as well. I didn't have the data used to make plots in here but I think the poles and zeros have landed in the right spot. I'll wait for comments until tomorrow to proceed with changes in the other board as well. I'll do noise measurements tomorrow.
Looks fine to me visually but the verdict can only be made once the z:p locations are quantitatively confirmed, and the noise tests pass. It would be interesting to see what kind of time-domain transient (in N of force) switching on the de-whitening introduces, i guess best done interferometrically.
I'll wait for comments until tomorrow to proceed with changes in the other board as well. I'll do noise measurements tomorrow.
I fitted zeros and poles in the measured transfer function of D1100687 S2100027 and got zeros at 130 Hz and 234 Hz and poles at 10Hz and 2845 Hz. These values are different from the aimed values in this doc, particularly the 234Hz zero which was aimed at 530 Hz in the doc.
I also took the noise measurement using the same method as described in 40m/15780. The noise in Acquisition mode seems to have gone up in 10 Hz - 500 Hz region compared to the measurement in 40m/15780 before the modifications.
All channels are consistent with each other.
Edit Mon Feb 1 12:24:14 2021:
Added zero model prediction after the changes. The measurements match with the predictions.
Edit Wed Feb 3 16:46:59 2021:
Added zero modeled noise in the noise spectrum curves. The acquisition mode curves are in agreement with the model. The noise in Run mode is weirdly lower than predicted by zero.
I have made the modifications on the other board D1100687 S2100028 as well. The measurements were taken as mentioned in 40m/15784. All conclusions remain the same as 40m/15784. The attached zip file contains all measurement data, before and after the modifications.
Edit Wed Feb 3 16:44:51 2021 :
I have made modifications recommended in this doc. The changes made are:
I took transfer function measurements, fitted them with zeros and poles and plotted it against the zero model of the circuit. The zeros and poles we intended to shift are matching well with 3Hz zero and 30 Hz pole. The later pole at 1500 Hz is at a higher value from what is predicted by zero.
I also took noise measurements and they are in good agreement with the noise predicted by zero.
As suggested, I wrapped the satellite amplifier box D10028128 S2100029 in blanket and foam and took very low frequency spectrum starting from 32 mHz to 3 Hz. The results are attached along with stiched high frequency measurements from 40m/15793.
THIS MEASUREMENT WAS WRONG. SEE 40m/15799.
I measured the output DC voltage of the satellite amplifier box at PDMon port when the PDA input was shorted and got following offsets:
However, I think I'm making a mistake while measuring this offset as well as all the noise measurements of this satellite amplifier box so far. Since it is a current input, transimpedance circuit, the noise of the circuit should be measured with open input, not closed. Infact, by shorting the PDA input, I'm giving DC path to input bias current of AD833 transimpedance amplifier to create this huge DC offset. This won't be the case when a photodiode is connected at the input which is a capacitor and hence no DC path is allowed. So my issue of offset was bogus and past two noise measurements in 40m/15797 and 40m/15793 are wrong.
Why not just do this test with the dummy suspension box and CDS system? I think Rich's claim was that the intrinsic LED RIN was dominant over any drive current noise but we can at least measure the quadrature sum of the two (which is after all the relevant quantity in terms of what performance we can realize) and compare to a model.
Testing the satellite amp i.e. PD driver
- To test the noise of the PD transimpedance amps: Leave the PD input open (do not short the terminal goes to the PD)
- To test the current noise of the LED drivers: Short the output with an appropriate Rs to have the nominal current.
- To test the overall noise level together with the LED/PD pair: Connect the dummy OSEM module.
Testing the coil drivers
- Short the output with an appropriate Rs.
Here is a proper measurement for PD transimpedance amplifier circuit in the Satellite amplifier box D1002818 S2100029. The input from rear DB25 connector was left open and measurement was taken with AC coupling with correction by the AC coupling transfer function (Zero at 0, pole at 160 mHz). I have calculated the input referred displacement noise by calculating the conversion factor of OSEM in A/m. From 40m/12470, old conversion factor of OSEM to output of sat amplifier was 1.6 V/mm. then, the transimpedance was 39.2 kOhm, so that must mean a conversion factor of 1.6e3/39.2 A/m. This I scaled with increased drive current by factor of 35/25 as mentioned in this document. The final conversion factor turned out to be around 57 mA / m. If someone finds error in this, please let me know.
There is excess noise in the low-frequency region below 5-6 Hz. If people think I should make a measurement of amplified noise to go further away from the instrument noise floor, let me know.
I expect that a single OSEM channel can't be better than 1e-10 m/rHz above 5 Hz, so probably something wrong in the calibration. 1.6 V/mm seems right to me, so could be some place else.
For your planning:
Todd provided us a bunch of electronics. I went to Downs to pick them up this afternoon and checked the contents in the box. Basically, the boxes are pretty comprehensive to produce the following chassis
Some panels are missing (we cannibalized them for the WFS electronics). Otherwise, it seems that we will be able to assemble these chassis listed.
They have placed inside the lab as seen in the attached photo.
HAM-A COIL DRIVER (Req Qty 28+8)
- 8 Chassis
- 8 Front Panels
- 8 Rear Panels
- 8 HAM-A Driver PCBs
- 8 D1000217 DC Power board
- 8 D1000217 DC Power board
16bit AA (Req Qty 7)
- 7 CHASSIS
- 6 7 Front Panels (1 missing -> [Ed 2/22/2021] Asked Chub to order -> Received on 3/5/2021)
- 7 Rear Panels
- 28 AA/AI board S2001472-486, 499-511
- 7 D070100 ADC AA I/F
- 7 D1000217 DC Power board
18bit AI (Req Qty 4)
- 4 CHASSIS
- 4 Front Panels
- 4 Rear Panels
- 8 AA/AI board S2001463-67, 90-92
- 4 D1000551 18bit DAC AI I/F
- 4 D1000217 DC Power board
- bunch of excess components
16bit AI (Req Qty 5)
- 5 CHASSIS
- 4 5 Front Panels (D1101522) (1 missing -> [Ed 2/22/2021] Asked Chub to order -> Received on 3/5/2021)
- 3 5 Rear Panels (D0902784) (2 missing -> [Ed 2/22/2021] Asked Chub to order -> Received on 3/5/2021)
- 10 AA/AI board S2001468-71, 93-98
- 5 D1000217 DC Power board
- 5 D070101 DAC AI I/F
Internal Wiring Kit
Asked Chub to order:
- Qty 12 1U Hamilton Chassis
- Qty 5 x Front/Rear Panels/Internal PCBs for D1002593 BIO I/F (The parts and connectors to be ordered separately)
-> Front/Rear Panels received (3/5/2021)
-> PCBs (unpopulated) received (3/5/2021)
-> Components ordered by KA (3/7/2021)