Summary: new daqd code running overnight test on fb1. Stability issues persist.
The code is from Keith's "tests/advLigoRTS-40m" branch, which is a branch of the current trunk. It's supposed to include patches to fix the crashes when multiple frame types are written to disk at the same time. However, the issue is not fixed:
2016-06-07_20:38:55 about to write frame @ 1149392336
2016-06-07_20:38:55 Begin Full WriteFrame()
2016-06-07_20:38:57 full frame write done in 2seconds
2016-06-07_20:39:11 about to write frame @ 1149392352
2016-06-07_20:39:11 Begin Full WriteFrame()
2016-06-07_20:39:13 full frame write done in 2seconds
2016-06-07_20:39:27 about to write frame @ 1149392368
2016-06-07_20:39:27 Begin Full WriteFrame()
2016-06-07_20:39:29 full frame write done in 2seconds
2016-06-07_20:39:43 about to write second trend frame @ 1149391800
2016-06-07_20:39:43 Begin second trend WriteFrame()
2016-06-07_20:39:43 about to write frame @ 1149392384
2016-06-07_20:39:43 Begin Full WriteFrame()
2016-06-07_20:39:44 full frame write done in 1seconds
2016-06-07_20:39:59 about to write frame @ 1149392400
2016-06-07_20:40:04 Begin Full WriteFrame()
2016-06-07_20:40:04 Second trend frame write done in 21 seconds
2016-06-07_20:40:14 [Tue Jun 7 20:40:14 2016] main profiler warning: 1 empty blocks in the buffer
2016-06-07_20:40:15 [Tue Jun 7 20:40:15 2016] main profiler warning: 0 empty blocks in the buffer
2016-06-07_20:40:16 [Tue Jun 7 20:40:16 2016] main profiler warning: 0 empty blocks in the buffer
2016-06-07_20:40:17 [Tue Jun 7 20:40:17 2016] main profiler warning: 0 empty blocks in the buffer
2016-06-07_20:40:18 [Tue Jun 7 20:40:18 2016] main profiler warning: 0 empty blocks in the buffer
2016-06-07_20:40:19 [Tue Jun 7 20:40:19 2016] main profiler warning: 0 empty blocks in the buffer
2016-06-07_20:40:20 [Tue Jun 7 20:40:20 2016] main profiler warning: 0 empty blocks in the buffer
2016-06-07_20:40:21 [Tue Jun 7 20:40:21 2016] main profiler warning: 0 empty blocks in the buffer
2016-06-07_20:40:22 [Tue Jun 7 20:40:22 2016] main profiler warning: 0 empty blocks in the buffer
2016-06-07_20:40:23 [Tue Jun 7 20:40:23 2016] main profiler warning: 0 empty blocks in the buffer
This failure comes when a full frame (1149392384+16) is written to disk at the same time as a second trend (1149391800+600). It seems like every time this happens daqd crashes.
I have seen other stability issues as well, maybe caused by mx flakiness, or some sort of GPS time synchronization issue caused by our lack of IRIG-B cards. I'm going to look to see if I can get the GPS issue taken care of so we take that out of the picture.
For the last couple of hours I've only seen issues with the frame writing every 20 minutes, when the full and second trend frames happen to be written at the same time. Running overnight to gather more statistics.
Tried to implement AGC on FE. Had some trouble bringing the code into the correct form. It looks okay now. However, this agc code as well as idenntity code (input = output) doesnt seem to build on the c1lsc FE. Have not tried too many debugging steps yet, will come and check the problem tomorrow.
Wrote and tested a phase vocoder, with two of its applications:
1) Time scaling: This enables change of time duration without affecting the pitch.
2) Frequency warping: This changes the pitch of the sound without affecting the time duration.
1 & 2 tested offline with cavity transmission signal. 1) gives speedup of 2, and 2 gives frequency warping (pitch lowering by a factor of 2)
codes uploaded on github repo
I am Aakash Patil. I will be working at the 40m lab as a SURF student with Gautam Venugopalan on enclosures for seismometers to shield them from thermal and magnetic fluctuations. This week I will be working on the development of hardware for four probe measurement along with a constant current source. It will effectively help us in accurate temperature measurement throughout the development of enclosure.
I am re-starting work on the daqd upgrade again now. Expect the daqd to be offline for most of the day. I will report progress.
Barring objections, starting tomorrow morning, Jamie will be testing the new FB code. The IFO will not be available for other use while this is ongoing.
Local EQ 3.1 mag at Jun 2, 2016 11:06:16 PM UTC, Muscoy CA........no damage
Our STS should seen this shake.
Some CDS related things:
Keith Thorne has told us about a potential fix for our framebuilder woes. Jamie is going to be at the 40m next week to implement this, which could interfere with normal interferometer operation - so plan accordingly.
I spent a little time doing some plumbing in the realtime models for Varun's audio processing work. Specifically, I tried to spin up a new model (C1DAF), running on the c1lsc machine. This included:
The simple DAFI model compiled and installed without complaint, but doesn't succesfully start. For some reason, the frontend never takes the CPU offline. Jamie will help with this next week. Since things aren't working, these changes have not been commited to the userapps svn.
I replaced some of the AD829s with other AD829s, but the offset situation didn't improve.
However, I figured that we don't really need the ~100MHZ bandwidth of the AD829, since the IMC loop limits us to a ~10kHz CARM bandwidth. Also, since we don't routinely use IN2 for anything, I felt free to try something else.
Specifically, I replaced all of the positive gain AD829s in the input 2 gain ladder with OP27s (U8B->U12B on D1500308), which should have input offset voltages ~30x lower than the AD829s.
Here is a comparison of the outputs these configurations perform, normalized to the output at the +0dB gain setting - where all of the op amps in the gain ladder are bypassed.
So, most of the transitions now result in an output offset change of less than 0.5mV, which is nice.
The exception seems to be where the +8dB stage is switched in or out. I may try replacing this one, as these transitions cause a lock loss now when trying to lock the arm with high bandwidth using POY.
Gap of the prism from the mirror
Sag: s = R(1-Cos[ArcSin[d/2/R]])
- Mirror curvature sag for 2mm prism (R=37.75mm): s=13um
- Minimum gap: 20um => s=33um => R=15mm
- Nominal gap: 35um => s=48um => R=10mm
- Maximum gap: 50um => s=63um => R=8mm
The second figure shows somewhat realistic arrangement of the pieces
I used a Eurocard extension board to peek at the inputs and outputs of each of the gain-ladder AD829s on input B of the CM board in the +31dB configuration with the input terminated. (i.e with the following stages active in this order: +16dB, +8dB, +4dB, +2dB, +1dB).
The voltages I observed imply that the +8dB stage has an input voltage offset of -2mV, whereas all the other positive gain stages show around +-0.5mV. This could explain the shift observed at the +15->+16 transition. (However, since both input channels show a jump here, maybe its something more systemic about the board...)
In any case, it should be simple enough to swap out a new AD829 in place of U9B and see if it improves things, before getting too deep into the muck. (In principle, the AD829 has offset nulling pins, but I'm not sure how to do it in a non-hacky way since the board doesn't have any pads for it.)
There are some issues with 5 mm sapphire prism Atm5. It will cause interference between one of the prisms and the Side OSEM.
Here are some drawings to see the issues with larger wire standoff.
The 2 mm prism will work.with a 1 mm longer dumbell.
Quotes requested from http://photomachining.com/laser-micromachining-photomachining-contact.html and http://www.optocity.com/
Wrote and tested a code for AGC using cavity transmission signal and length error signal.
Wrote and tested a code for frequency shifting (downconversion) using mixing and LPF
Wrote a code for whitening using FFT.
Altium working on cit40m iMac
Writing codes for Frequency warping and whitening in time domain.
Implement AGC and frequency shifting on the real time control system.
Calculate requirements for Anti-aliasing filter.
Machined from I-beam 6061 T6 Aluminum 5" x 0.5 x 3.25
As we realized during the EX table switch, the transmitted beam height from the arm is not exactly 4" relative to the endtable, it is more like 4.75" at the X-end (yet to be investigated at the Y-end). As a result, the present configuration involves the steering optics immediately before the Oplev and TransMon QPDs sending the beam downwards at about 5 degrees. Although this isn't an extremely large angle, we would like to have things more level. For this purpose, Steve has ordered some Aluminium I-beams (1/2 " thick) which we can cut to size as we require. The idea is to have the QPD enclosures mounted on these beams and then clamped to the table. One concern was electrical isolation - but Steve thinks Delrin washers between the QPD enclosure and the mount will suffice. We will move ahead with getting these machined once I investigate the situation at the Y end as well.. The I beams should be here sometime next week...
Atm2, version 2 "pdstand" will allow you to clamp from any direction ( Koji was right )
Please do not place anything on the top of the cabinets that is not tied down. It will end up on our head in an earth quake.
I noticed that the TRY button in the ASS main screen was linking to LSC_TRX instead of LSC_TRY. Gautam fixed it.
A package labelled 'UPS Ground' has arrived.
I've been futzing with the common mode servo, trying to engage the AO path with POY for high bandwidth control of a single arm lock. I'm able to pull in the crossover and get a nice loop shape, but keep getting tripped up by the offset glitches from the CM board gain steps, so can't get much more than a 1kHz UGF.
As yutaro measured, these can be especially nasty at the major carrier transitions (i.e. something like 0111->1000). This happens at the +15->+16dB input gain step; the offset step is ~200x larger than the in-loop error signal RMS, so obviously there is no hope of keeping the loop engaged when recieving this kind of kick. Neither of the CM board inputs are immune from this, as I have empirically discovered. I can turn down the initial input gain to try and avoid this step occuring anywhere in the sequence, but then the SNR at high frequencies get terrible and I inject all kinds of crud into the mode cleaner, making the PC drive furious.
I think we're able to escape this when locking the full IFO because the voltages coming out of REFL11 are so much larger than the puny POY signals so the input-referred glitches aren't as bad. I think in the past, we used AS55 with a misaligned ITMX for this kind of single arm thing, which probably gives better SNR, but the whole point of this is to keep the X arm aligned and lock it to the Y-arm stabilized PSL.
Wrote and tested a function for downconversion. It contains a mixer with a sinusoidal input for modulation with the desired frequency and a 2nd order butterworth low pass filter to remove the higher frequency-shifted part of the modulated signal. I have tested this with input of 2kHz giving a good output of 200 Hz on the speaker. Codes are uploaded on github, will update the real time document tomorrow.
Edited the AGC to include overlapping frames yesterday. forgot to put an elog on it!
Tested the AGC today with LSC cavity transmission signal and error signal. Not in real time still.
Key to attachments:
cav_tr-eps-converted-to.pdf: LSC cavity transmission signal input
cav_tr_out-eps-converted-to.pdf: LSC cavity transmission signal, output of the AGC.
I have modified the c1summary.ini and c1lsc.ini configuration files slightly to avoid overloading the system and remove the errors that were preventing plots from being updated after certain time in the day.
The changes made are the following:
1- all high-resolution spectra from the Summary and LSC tabs are now computed for each state (X-arm locked, Y-arm locked, IFO locked, all);
2- I've removed MICH, PRCL & SRCL from the summary spectrum (those can still be found in the LSC tab);
3- I've split LSC into two subtabs.
The reason for these changes is that having high resolution (raw channels, 16kHz) spectra for multiple (>3) channels on a single tab requires a *lot* of memory to process. As a result, those jobs were failing in a way that blocked the queue, so even other "healthy" tabs could not be updated.
My changes, reflected from May 25 on, should hopefully fix this. As always, feel free to re organize the ini files to make the pages more useful to you, but keep in mind that we cannot support multiple high resolution spectra on a single tab, as explained above.
Hello, I am Varun Kelkar. I will be working at the 40m lab as a SURF student this summer with Eric Quintero on Audio processing for real time control system signals. This week I will mostly be working on implementing basic DSP C-code offline. Currently I am trying to write a code for noise whitening.
Varun has received 40m specific basic safety training today.
Local EQ 3.5 mag at 2:28 UTC May 24, 2016 Rancho Cucamonga, Ca.....no damage
WFS locking point seemed degraded; I hand aligned and reset the WFS offsets as usual.
ITMX oplev recentered. While doing so, I noticed an ETMX excursion rear its head for the first time in a long while :
There was no active length control on ETMX, only OSEM damping + oplevs. Afterwards, its still moving around with only local damping on. I'm leaving the oplevs off for now.
I think you should use the current actual PRC & SRC cavity lengths as measured, as it would be simplest to simply replace the folding mirror optics without changing the macroscopic lengths / optic positions. (EDIT: Gautam rightly points out that we have to move things around regardless, since our current lengths include propagation through the folding mirror subtrates)
Moreover, the recycling cavity lengths you posted are not the right "ideal" lengths to use, as they do not account for the complex reflectivities of the sidebands off of the arm cavities (I have made this mistake myself). See this 40m wiki page for details.
In short, given our current modulation frequency, the ideal lengths to use would be:
These are the lengths that the recycling cavity optics were positioned for (though we did not achieve them perfectly). If you do a finer PRC/SRC length scan around the DRFPMI resonance of your model, you would presumably see some undesired sideband splitting.
Having played around with a toy finesse model, I went about setting up a model in which the RC folding mirrors are not flipped. I then repeated the low-level tests detailed in the earlier elog, after which I ran a few spatial mode overlap analyses, the results of which are presented here. It remains to do a stability analysis.
Overview of model parameters (more details to follow):
Results (general note: positive RoC in these plots mean a concave surface as seen by the beam):
Next step is to carry out a stability analysis...
Contacted Charles regarding use of Altium. Got to know that Altium is installed on cit40m iMac in Win7 on VirtualBox. Had to update Virtualbox to get it working. Altium now works for sometime, but then fails, saying that it is unlicensed.
I did a quick measurement of the ITMX oplev loops, both pitch and yaw have about the same upper UGF as previous measurements with the previous laser; about 4 Hz.
2005 ALL oplev servos use Coherent DIODE LASERS # 31-0425-000, 670 nm, 1 mW
Sep. 28, 2006 optical lever noise budget with DC readout in 40m, LIGO- T060234-00-R, Reinecke & Rana
May 22, 2007 BS, SRM & PRM He Ne 1103P takes over from diode
May 29, 2007 low RIN He Ne JDSU 1103P selected, 5 purchased sn: T8078254, T8078256, T8078257, T8078258 & T8077178 in Sep. 2007
Nov 30, 2007 Uniphase 1103P divergence measured
Nov. 30, 2007 ETMX old Uniphase 1103P from 2002 dies: .............., running time not known......~3-5 years?
May 19, 2008 ETMY old Uniphase 1103P from 1999 dies;.....................running time not known.....~ ?
Oct. 2, 2008 ITMX & ITMY are still diodes, meaning others are converted to 1103P earlier
JDSU 1103P were replaced as follows:
May 11, 2011 ETMX replaced, life time 1,258 days or 3.4 years
May 13, 2014 ETMX , LT 1,098 days or 3 y
May 22, 2012 ETMY, LT 1,464 days or 4 y
Oct. 5, 2011 BS & PRM, LT 4 years, laser in place at 1,037 days or 2.8 y
Sep. 13, 2011 ITMY old 1103P & SRM diode laser replaced by 1125P ..........old He life time is not known, 1125P in place 1,059 days or 2.9 y
June 26, 2013 ITMX 622 days or 1.7 y note: we changed because of beam quality.........................laser in place 420 days or 1.2 y
Sep. 27, 2013 purchased 3 JDSU 1103P lasers, sn: P893516, P893518, P893519 ......2 spares ( also 2 spares of 1125P of 5 mW & larger body )
May 13, 2014 ETMX, .............laser in place 90 d
May 22, 2012 ETMY,
Oct. 7, 2013 ETMY, LT 503 d or 1.4 y............bad beam quality ?
Aug. 8, 2014 ETMY, .............laser in place 425 days or 1.2 y
Sept. 5, 2014 new 1103P, sn P893516 installed at SP table for aLIGO oplev use qualification
May 23, 2016 ITMX dead laser sn P845648 replaced after 1062 days [2.9 yrs] by 1103P, sn P859884, with output output 2.6 mW, nicely round beam quality at 15 meters.
May 23, 2016 ITMX dead He/Ne laser sn P845648 replaced after 1062 days [2.9 yrs] by 1103P, sn P859884, with output 2.6 mW, nicely round beam quality at 15 meters.
Power just before viewport 1 mW, returning light on qpd 154 microW = 7,500 counts
I have written a basic version of AGC, and have done some tests with a data file. will do tests on whitening and agc today. Also, today I have to go to the SSN office. Hence will be late.
Finished writing the code on whitening. I have to still test it. uploaded on github noise cancellation repo. @eric could you give me some data of noise power spectral density for testing the code?
I've been working on putting together a Finesse model for the current 40m configuration. The idea was to see if I could reproduce a model that is in agreement with what we have been seeing during the recent DRFPMI locks. With Antonio and EricQs help, I've been making slow progress in my forays into Finesse and pyKat. Here is a summary of what I have so far.
Having put together the .kat file (code attached, but this is probably useless, the new model with RC folding mirrors the right way will be what is relevant), I was able to recover a power recycling gain of ~7.5. The arm transmission at full lock also matches the expected value (125*80uW ~ 10mW) based on a recent measurement I did while putting the X endtable together. I also tuned the arm losses to see (qualitatively) that the power recycling gain tracked this curve by Yutaro. EricQ suggested I do a few more checks:
Conclusion: It doesn't look like I've done anything crazy. So unless anyone thinks there are any further checks I should do on this "toy" model, I will start putting together the "correct" model - using RC folding mirrors that are oriented the right way, and using the "ideal" RC cavity lengths as detailed on this wiki page. The plan of action then is
Sidenote to self: It would be nice to consolidate the most recent cavity length measurements in one place sometime...
We have good RGA scan now. There was no scan for 3 months.
3-4 hrs ago we run out of nitrogen. We are back to Vacuum Normal
It looks like the hardware reset did the trick. Previously, I had just tried ssh-ing into c0rga and rebooting it. At the time, however, Steve and I noticed that the various LEDs on the RGA unit weren't on, as they are supposed to be in the nominal operating state. Today, Steve reported that all LEDs except the RS232 one were on today, so I just tried following the steps in this elog again, looks like things are back up and running. I'm attaching a plot of the scan generated using plotrgascan MATLAB script, it looks comparable to the plot in elog 11697, which if I remember right, was acceptable.
Unless there is some reason we want to keep this c0rga machine, I will recommission one of the spare Raspberry Pis lying around to interface with the RGA scanner when I get the time...
Our last RGA scan is from February 14, 2016 We had a power outage on the 15th
Gautom has not succeded reseting it. The old c0rga computer looks dead. Q may resurrect it, if he can?
The c0rga computer was off, I turned it on via front panel button. After running RGAset.py, RGAlogger.py seems to run. However, there are error messages in the output of the plotrgascan MATLAB script; evidiently there are some negative/bogus values in the output.
I'll look into it more tomorrow.
This is a cold scan.
ALSX noise is solidly within past acceptable performance levels. The DRFPMI was locked on four out of six attempts.
Some housekeeping was done:
The recombination of the QPD signals to common / differential is imperfect, and limited how well we could keep the interferometer aligned, since the QPD at X has changed. This needs some daytime work.
Some sensing matrix measurements were made, to be meditated upon for how to 1F the DRMI.
As an aside, Gautam and I noticed numerous green beams coming from inside the vacuum system onto the PSL table. They exist only when green is locked to the arms. Some of them come out at very non-level angles and shine in many places. This doesn't make me feel very happy; I suppose we've been living with it for some time.
Indeed. This is why the LSC PDs have a 2f notch in addition to the 1f resonance. In recent versions, we also put a 2f notch in the feedback of the preamp which comes after the diode but before the mixer. The overall 1f to 2f ratio that we get is in the 50-60 dB region. I don't think we have to go that far with this thing; having a double LC already seems like it should be pretty good, or we could have a single LC bandpass with a 2f notch all in one Pomona box.
As I was looking at filter designs, it seemed difficult to get 40dB of supression at 2F with a bandpass without going to a pretty high order, which would mean a fair number of lossy inductors.
I'll keep working on it. Maybe we don't need 40dB...
Seems weird to design a PD lowpass with a corner at the modulation frequency. Recall what our strategy is with the other photodetectors we use for PDH servos: bandpass, not low-pass, and the band has to be wide enough to not effect the phase of the servo.
I've build the filter, and it seems to have the desired TF shape.
I also re-purposed the 70k lowass to a ~120k lowpass by changing the 68nF caps to 22nF caps, since we still want some post-mixer rolloff.
However, putting the ELPF in the chain caused some weird shapes in the OLG. I still need to get to the bottom of it. However, just with the post-mixer LPF modification, here's what the OLG looks like:
As Rana surmises, we definitely still add a boost and maintain a 10k UGF. I still need to look into the state of the remote boost....
I suggested in an earlier elog that after the repair of the NPRO, the PZT capacitance may have changed dramatically. This seems unlikely - I measured the PZT capacitance with the BK Precision LCR meter and found it to be 2.62 nF, which is in excellent agreement with the numbers from elogs 3640 and 4354 - but this makes me wonder how the old setup ever worked. If the PZT capacitance were indeed that value, then for the Pomona box design in elog 4354, and assuming the PM at ~216kHz which was the old modulation frequency was ~30rad/V as suggested by the data in this elog, we would have had a modulation depth of 0.75 if the Function Generator were set to output a Signal at 2Vpp (2Vpp * 0.5 * 0.05 * 30rad/V = 1.5rad pp)! Am I missing something here?
Instead of using an attenuator, we could instead change the capacitor in the pomona box from 47pF mica to 5pF mica to realize a modulation depth of ~0.2 at the new modulation frequency of 231.25 kHz. In any case, as elog 4354 suggests, the phase introduced by this high-pass filter is non-zero at the modulation frequency, so we may also want to install an all-pass filter which will allow us to control the demodulation phase. This should be easy enough to implement with an Op27 and passive components we have in hand...
All seems very fishy. Its not good to put attenuators and filters in nilly-willy.
This morning I poked around with the green layout a bit. I found that the iris immediately preceding the viewport was clipping the ingoing green beam too much, opening it up allowed for better coupling to the arm. I also tweaked the positions of the mode matching lenses and did some alignment, and have since been able to achieve GTRX values of around 0.5.
I also removed the 20db attenuator after the mixer, and turned the servo gain way down and was able to lock easily. I then adjusted the gain while measuring the CLG, and set it where the maximum gain peaking was 6dB, which worked out to be a UGF of around 8kHz. On the input monitor, the PDH horn-to-horn voltage going into the VGA is 2.44V, which shouldn't saturate the G=4 preamp stage of the AD8336, which seems ok.
The ALS sensitivity is now approaching the good nominal state:
There remains some things to be done, including comprehensive dumping of all beams at the end table (especially the reflections off of the viewport) and the new filters to replace the current post-mixer LPF, but things look pretty good.
We took an OLG measurement of the green PDH loop. It seems consistent with past measurements. I've added a trace for the the post-mixer lowpass, to show its contribution to the phase loss. (EDIT: updated with measured LPF TF)
I used this measured OLG and the datasheet laser PZT conversion factor to calibrate the control signal monitor into the AUX laser frequency noise, it looks consistent with the frequency noise measured via the PSL PLL (300 Hz/rtHz @ 100Hz). Above a few tens of kHz, the control signal measurement is all analyzer noise floor, due to the fourth order 70kHz lowpass after the mixer (the peaks change height significantly depending on the analyzer input range, so I don't think they're on the laser). Gautam will follow up with more detailed measurements of both the error and control signals as he noisebudgets, this was just intended as a quick consistency check.