I used APTITUDE to install texlive-full on rosalba so that I could work on a paper. pdflatex was not found on pianosa, rosalba, megatron, etc. I used this command:
sudo aptitude install texlive-full
While this was installing, I read a bunch of forums which claim that its better to bypass the apt-get and use the
TexLive installer instead so that we can use its own package updater 'tlmgr'. Otherwise, the standard Ubuntu distributions
are years out of date (e.g. doesn't have RevTex 4.1).
The MC unlocked ~20 min ago, correlated with 2 consecutive earthquakes in Mexico. The MC came back fine after a few minutes, but the WFS never engaged. I turned them on by hand. I think that Yuta mentioned once that he also had to turn the WFS on by hand. There may be a problem in the unlock/relock catching that needs to be looked at, to make sure the WFS come back on automatically.
Also, someone (Masha and I) should look at the seismic BLRMS. I have suspected for a few days that they're not telling us everything that we want to know. Usually, if there's an earthquake close enough / big enough that it pops the MC out of lock, it is clear from the BLRMS that that's what happened, but right now it doesn't look like much of anything....just kind of flat for hours.
I learned a little bit of python scripting while looking at the videoswitch script, and I made a video medm screen.
Each monitor has a dropdown menu for all the common cameras we use (medm only lets you put a limited # of lines on a dropdown menu...when we want to add things like OMCR or RCT, we'll need to add another dropdown set)
Each monitor also has a readback to tell you what is on the TV. So far, the quads only say "QUAD#", not what the 4 components are.
I put a set of epics inputs in the PEM model, under a subsystem with top-names VID to represent the different monitors. The readbacks on the video screen look at these, with the names corresponding to the numbers listed in the videoswitch script. The videoswitch script now does an ezcawrite to these epics inputs so that even if you change the monitors via command line, the screen stays updated.
For example, since MC2F's camera is plugged in to Input #1 of the video matrix, if you type "./videoswitch MON1 MC2F", the script will write a "1" to the channel "C1:VID-MON1", and the screen will show "MC2F" in the Mon1 cartoon.
This required a quick recompile of the PEM model, but not the framebuilder since these were just epics channels.
There is also a dropdown menu for "Presets", which right now only include my 2 arm locking settings.
All of the dropdowns just call an iteration of the videoswitch script.
Most of my work has been on continuing to develop the Simulink model of the differential arm length control loop.
I have filled in transfer functions for the digital components after looking up the configuration of filters and
gains on the control screens. Filters that were active at the time included 1:50 and 1000:10 on C1LSC_YARM and
C1LSC_POY11 with a gain of 0.1. Jamie also introduced me to foton so that I could obtain the transfer functions
for the necessary filters. I have also continued to work on obtaining the open loop gain and length response
function from the model. The majority of the work now is to refine what I've accomplished so far. Adding details
to the arm cavity and the optics is one potential area for improvement.
I have also spent some time looking at real-time calibration methods from GEO and a proposal for a similar system
on LIGO in P040057-x0 from the DCC. While the work for this project may follow a different path for a real-time
calibration, having a sense for what's been accomplished so far should be helpful in working on a new system.
The script ....../scripts/ASS/MC/mcassMCdecenter takes ~17 minutes to run. The biggest time sink is measuring a no-offset-added-to-coil-gains set, in between each measurement set with the coil gain offsets. This is useful to confirm that the nominal place hasn't changed over the time of the measurement, but maybe we don't need it. I'm leaving it for now, but if we want to make this faster, that's one of the first things to look at.
spot positions in mm (MC1,2,3 pit MC1,2,3 yaw):
[3.5716862287669224, 3.937869278443594, 2.9038058599576595, -6.511822708584913, -0.90364583591421999, 4.8221820002404279]
There doesn't seem to be any spot measurement stuff for any other optics, so I'm going to try to replicate the MC spot measuring script for the Michelson to start.
I have been working on substituting the internal geophones in the STACIS with accelerometers, and this week specifically I have been trying to modify the accelerometer signal so the STACIS PZTs respond properly.
The major problem was that the high signal amplitude caused the STACIS to oscillate uncontrollably, so I lowered all of the pots (for the z direction) and placed several BNC attenuators before the accelerometer signal enters the first amplifier board. The accelerometers now successfully provide feedback without making the STACIS unstable, as shown by this transfer function (the higher and flatter line is open loop, the lower is closed loop with accelerometers providing feedback):
The next step is to optimize the accelerometer feedback so it provides good isolation from 0.1 to 3 Hz, a span that the geophones introduced a lot of noise into. The accelerometers definitely don't introduce as much noise in that region, but don't seem to be doing much isolation either. I will also make some more quantitative plots of the platform motion (using the calibration value for the Wilcoxon accelerometers in the velocity setting with a gain of 1).
Some random discoveries I made this week which are relevant for STACIS testing:
1) Placing weight on the STACIS platform improves stability, but NOT if several blocks are placed on top of each other (they rub against each other, causing lots of vibrations).
2) The accelerometer that is providing feedback must be VERY securely fastened to the STACIS platform; even with three clamps there was extra motion that caused instability. Luckily, there's a convenient steel flange Steve showed me which has a hole that perfectly accommodates the accelerometer and doubles as a weight for the platform. Here is said flange, clamped to the STACIS platform with the accelerometer sitting in the center:
3) Using the shaker next to the STACIS (all on one platform) improves coherence between the base and platform accelerometers above around 10 Hz, but does nothing lower than that, which unfortunately is the region I'm most concerned with.
I realized what the ADC channel mismatch was, and apologize for plotting a terrible coherence in log scale. The channels are now properly matched (there is decent coherence between GUR1_X/STS_X, etc.).
Over the past week, I have been focusing on the issues I brought up in my last ELOG, 6956. I spent quite a while attempting to modify the script and create my own spectrogram function within the existing code. I also checked out the channels on the PSL table for the PSL health page and produced a spectrogram plot of the PMC reflected, transmitted, and input powers, the PZT Voltage and the laser output power. When I was entering these channels into the configuration script, I came across an issue with the way the python script parses this. If there were spaces between the channel names (for example: C1:PSL-PMC_INPUT_DC, C1:PSL-PMC_RFPDDC... etc) the program would not recognize the channels. I made some alterations to the parsing script such that all white spaces at the beginning and end of the channels were stripped and the program could find them.
The next thing that I worked on was attempting to see if the microphone channels were actually stopping the program or just taking an extraordinarily long time. I tried running the program with shorter time samples and that seemed to work quite well! However, I had to leave it running overnight in order to finish. I am sure that this difference comes from the fact that the microphone channels are fast channels. I would like to somehow make it run more quickly, and am thinking about how best to do this.
I finally got my spectrogram function to work after quite a bit of trouble. There were issues with mismatched data and limit sets that I discovered came from times when only a few frames (one or two) were in one block. I added some code to ignore small data blocks like those and the program works very well now! It seems like the best way to get the right limits is to let the program automatically set the limits (they are nicely log-scaled and everything) but there are some issues that produce questionable results. I spent a while adding a colormap option to the script so that the spectrogram colors can be adjusted! This mostly took so long because, on Monday night, some strange things were happening with the PMC that made the program fail (zeros were being output, which caused an uproar in the logarithmic data limits). I was incredibly worried about this and thought that I had somehow messed up the script (this happened in the middle of when I was tinkering with the cmap option) so I undid all of my work! It was only when I realized it was still going on and Masha and Jenne were talking about the PMC issues that I figured out that it was an external issue. I then went in and set manual limits so that a blank spectrogram and redid everything.
The spectrogram is not operational and the colormap can be customized. I need to fix the problem with the autoscaled axes (perhaps adding a lower bound?) so that the program does not crash when there is an issue.
Yesterday, I spoke with Rana about what my next step should be. He advised me to look at ELOGs from Steve (6678) and Koji (6675) about what they wanted to see on the site. These gave me a good map of what is needed on the site and where I will go next.
I need to find out what is going on with the weather channels and figure out how to calibrate the microphones. I will also be making sure there are correct units on all of the plots and figure out how to take only a short section of data for the microphone channels. I have already modified the tab template so that it is similar to Koji's ELOG idea and will be making further changes to the layout of the summary pages themselves. I will also be working on having the right plots up consistently on the site.
This past week, I've been working on moving forward with the basic cavity model I developed last week (for future reference, that model was FP_3, and I am now working on FP_4) and refining the suspensions. I added three degrees of freedom to my simulation (such that it now consists of yaw, pitch, displacement, and side-to-side motion) and am attempting to integrate them with the OSEMS. I have also added mechanical damping for all degrees of freedom, and am adding electric damping and feedback. Concerning that, are all of the degrees of freedom locally damped in addition to being actuated on by the control system? Or does the control system do all of the damping itself? The first is the way I'm working on setting it up, but can easily change this if needed.
The next iteration of FP (FP_5) will replace my complicated OSEM --> Degrees of Freedom and vice versa system with the matrix system (see the poster Jenne and Jamie made, "Advanced Suspension Diagnostic Procedure"), as well as adding bounce/roll, yaw/y coupling, various non-damping filters as needed (i.e. the a2f filters), and noise sources. However, I'll only move on to that once I'm sure I have FP_4 working reasonably well. For now at least, the inputs/outputs look fine, and some of the DOF show resonance peaks. I'll become more concerned about where these resonance peaks actually are once I add damping.
Attached is a screenshot my work in progress. Only one of the suspensions has a basic feedback/damping loop going (as a prototype). It looks complicated now, but will simplify dramatically once I have damping worked out. Pink inputs are noises (will probably replace those with noise generators in FP_5) and green inputs are the OSEMS. The red output is the displacement of the cavity from resonance. The blue boxes are suspensions.
This week, I continued to work with my Artificial Neural Network. Specifically, I implemented a 3-hidden layer sigmoidal, gradient-descent supervised network, with 3 neurons in the final output layer, since I have introduced a new class, trucks. I have overcome my past data limitation, since I observed that there is a multitude of trucks that comes between 9 and 10 am, and thus I have observed a bunch of trucks after the fact (their seismic patterns are rather distinct, and thus there could prove to be a very large supply of this data - I have gathered data on the past 50 days so far, and have gathered 60+ truck patterns).
With 3 classes, the two-layer network converges in ~200 epochs, while the 3-layer network takes around ~1200 (and more time per iteration). Since the error gradients in the stochastic gradient descent are recursively calculated, the only real time limitation in the algorithm is just lots of multiplication of weight / input vectors, lots of computation of sigmoidal functions, and lots of data I/O (actually, since the sigmoidal function is technically an exponentiation to a decimal power and a division, I would be curious to know if theory or Matlab has any clever ways of computing this faster that can be easily implemented - I will look into this today). Thus, the networks take a long time to train. I'm currently looking at optimizing the number of layers / number of neurons, but this will be a background process for at least several days, if not the next week. In the greater scope of things, however, training time isn't really a problem, since the actual running of the algorithm requires only one pass through the network, and the network should be as well-trained as possible. However, due to the fact that I am only here until the end of August, it would be nice to speed things up.
As far as other classifications, I can simulate signals either by dropping the copper block from the Stacis experiment, or by applying transfer functions to general seismic noise. However, I would like more real data on noise sources, but the only other one plausible to LIGO that I can currently think of (cars don't show up very well) is the LA Metro. Perhaps I will take a day to clock trains as they come in (since the schedule is imprecise) and see if there is any visible seismic pattern.
I also, with the help of Yaakov, Jenne, and Den, now have three working, triangulated seismometers, which can now begin taking triangulation data (the rock tumblers are still working, so there should be opportunities to do this), both to find hot-spots as Rana suggested, and to measure the velocity and test out my algorithm, as Den suggested.
The Streckeisen is currently plugged into ADC channels 13, 14, and 15 (corresponding to STS-3 in the channels). The X, Y, and Z components are correct. The signals is zeroed (it's been so for at least the past 10 hours), the coherence with GUR1 looks decent, and the signal looks similar to the GUR1 signal.
I was trying to lock and look at the ASS for the Yarm, but the transmitted power was oscillating very near 1Hz. Eventually I looked at the mode cleaner, and it was also moving around at a similar frequency. I took spectra of the ETMY SUS damping feedback signals, and they (POS, PIT, YAW) saw this 1Hz motion too (see attached plots...same data, one is a zoom around 1Hz).
As a first place to start, I turned off the WFS, which immediately stopped the MC oscillation. Turning the WFS back on, the oscillation didn't come back. I'm not sure what happened to make the WFS bad, but I perhaps had the ASS dither lines on (I've had them on and off, so I'm not sure), although turning off the dither lines didn't make the WFS any better.
As an aside, the MC refl with the WFS off was ~1.5, rather than the ~0.5 with the WFS on, which means that the PSL beam and the MC axis are not well matched.
Den and investigated the STS-1 problem (which is currently plugged into ADC channels 13, 14, and 15, which correspond to the STS-3 channels in dtt). It turns out that I had plugged in the power to the monitor in the host box rather than the remote. The X, Y, and Z readout is currently approaching a mean of zero, and I will let it continue to do so overnight (pressing auto-zero as necessary). Attached is a plot of the coherence with GUR 1, and the time-domain signals.
The names of the DoF filters in the ASS loop were wrong. The filters themselves were correct (low pass filters at super low freq, for the Lock-in), but the names were backward.
Our convention is to name filters "poles:zeros", but they had been "z:p". The names of FM1 in all the DoF filter banks are now fixed.
The PMC was unlocked earlier this morning, for ~20min, presumably from the rocks next door. I relocked it.
Then, a few min ago, the PMC suddenly decided that it wouldn't lock with a transmission greater than ~0.7 . I found that the laser temp adjust on the FSS screen was at -1.9ish. I put it back to zero, and now the PMC locks happily again. I think we got into a PSL mode-hopping temperature region on accident.
It seems that the STS-1 ADC channels had the same mismatch issue as the GUR-2 channels. The PEM_MONITOR has STS_1 listed as channels 6, 7, 8 (+1 on the actual ADC) whereas it was plugged into channels 13, 14, 15 (+1 on the actual ADC as well) with nothing in channels 6, 7, 8. Thus, I moved the cables and reset STS_1. The readout, however, is still only a magnitude of ~10 counts (I checked, however, that this is indeed the readout when the seismometer is plugged in vs. when it is unplugged), but hopefully it will stabilize during the day, as did GUR 2.
As stephanie did a few years ago, the idea should be to match the damping between the DRMI optics so as to minimize the differential motion. No notching is necessary. Read her SURF report about the IMC.
I assume it's the rock tumbler, although it could be something else, but the MC has had trouble staying locked yesterday and today (yesterday Yaakov and I went over there and they were doing stuff almost constantly - it's super loud over there), and today even the PMC has fallen out of lock twice. I just relocked it again, since it went out of lock just after Journal club started.
Anyhow, I think this will be good data for Masha, and then also for the Masha+Yaakov triangulation project.
These are all priority action items need to be done before I come back (in mid-September).
BE PREPARED FOR THE FULL LOCK!
- Prepare and install tip-tilts -JAMIE
- Adjust IP-ANG -JAMIE, JENNE, KOJI
- Make sure there's no clipping. Start from MC centering -JAMIE, JENNE, KOJI
- Make ASS and A2L work -JENNE, JAMIE
- Better MC spot position measurement script(see the last sentence in elog #6892) -JENNE
- Daily beam spot measurements for IFO, just like MC -JENNE
- ASS for green using PZT steering mirrors on end table -JENNE
- Modeling of phase tracking ALS -JAMIE
- PZT mounts for PSL and ALS beams -JENNE, KOJI
- Add temperature sensors for end lasers to CDS slow channels -JENNE
- Put green trans camera, GTRY PD, and GTRX PD on PSL table -JENNE
- Better beat box; include comparators, frequency dividers, and whitening filters -JAMIE, KOJI
- Adjust servo gain/filters of end green PDH lock (reduce frequency noise) -JENNE
- Add on/off switch, gain adjuster, etc to CDS for end green PDH lock -JENNE, JAMIE
- Find why and reduce 3 Hz motion -JENNE
- Simulation of PRMI with clipping -YUTA
- Alignment tolerance of PRMI -YUTA
Yaakov and I investigated the GUR 2 problem. It turns out that the ADC channels that GUR 2 was plugged into, ADC channels 6 through 8 (on the actual ADC they are C7 through C9), did not correspond to the channels labelled "GUR 2" in the PEM, ADC channels 3 through 5. We modified them so that GUR 2 is now plugged into ADC channels 3 through 5 (on the ADC it's +1).
Before we discovered that this was the problem, we attempted to take the cover off of GUR 1 to check the gains, and discovered a stripped Allen screw on the side by the "Vertical" pot, which we removed.
Now the GUR 2 readout looks good, and we will give it more time to settle down before we take data.
It looks like PRMI LSC is making PRM motion (and BS motion) at ~3Hz worse.
I concluded this from measuring feedback signal of suspension servo and LSC servo.
1. BS and PRM moves alot at ~3 Hz.
2. LSC senses fake signal at ~3Hz from beam spot motion on PD
3. LSC feedback this motion to position of PRM
4. Suspension damping servo try to cancel this because ~3 Hz motion is not actual length signal
x: Orignal longitudinal motion of PRM
n_L: Sensing noise in LSC (including ITM motion, fake ~3Hz motion)
n_S: Sensing noise in suspension damping (OSEM sesor noise, fake ~3Hz motion)
G_L: Openloop transfer function of PRCL LSC
G_S: Openloop transfer function of suspension damping (PRM SUSPOS)
H: LSC sensor transferfunction (PDH signal on REFL_33_I)
F_S: Filter for suspension damping
A: Actuator transfer function (PRM OSEM coils)
Since G_L >> G_S and G_L >> 1 for below 100Hz (see elogs #6950 and #6967), feedback signal of LSC and suspensiton damping can be written as
f_L = x - A*F_S*n_S - (1+G_S)/H*n_L
f_S = 1/G_L*x - A*F_S*n_S - G_S/H*n_L
So, basically, LSC supresses PRM motion but puts n_L to PRM. Suspension servo try to surpress n_L, which was not there when LSC is off.
1. Below left is uncalibrated spectra of
Red: suspension damping feedback to PRM/BS when PRMI is locked
Blue: LSC feeed back to PRM/BS when PRMI is locked
Pink: suspension damping feedback to PRM/BS when PRMI is not locked
As you can see, PRM suspension damping feed back increases at ~ 1.5-3 Hz because of LSC. This is the same for BS at ~1 Hz and ~3 Hz.
2. Above right is same spectra for ITMX/ITMY. There's no change in suspension damping feedback. This means, radiation pressure coupling or something is not related in this issue. LSC servo is not engaged for ITMs.
3. Below is oplev spectra for PRM/BS
Red: Oplev pitch error signal of PRM/BS when PRMI is locked
Blue: Oplev yaw error signal of PRM/BS to PRM/BS when PRMI is locked
Pink: Oplev pitch error signal of PRM/BS when PRMI is not locked
Cyan: Oplev yaw error signal of PRM/BS to PRM/BS when PRMI is not locked
You can see the increase in pitch/yaw motion at ~ 1.5-3 Hz for PRM, and ~1Hz/~3Hz for BS. They are consistent with measurement of feedback spectra.
By the way:
I adjusted oplev servo gains for ITMX. They were crazy this evening. They now have UGF ~ 2.5 Hz.
C1:SUS-ITMX_OLPIT_GAIN = 1.0 (was 2.6)
C1:SUS-ITMX_OLYAW_GAIN = -0.5 (was -1.6)
- Can we notch ~3 Hz feedback so that LSC doesn't feedback this motion?
- Why ~3 Hz motion is high for BS/PRM? Too much load on BS chamber stack?
- Can we reduce ~3 Hz motion?
- If BS chamber stack is bad, PR3 might have ~3 Hz motion, too. Does this make PRMI beam spot motion crazy?
- How about PR2?
I noticed on DataViewer today that GUR2 was outputting only noise (somewhere around 2 counts). Jenne suggested that GUR 2 might not be plugged in. I turned off the ADC, and tried several times to plug GUR 2 back in. I thought something might be wrong with the cable, but when I plugged the GUR1 cable into GUR2, there was still no readout (although the GUR1 cable works fine when I plug it into GUR1). Perhaps I'm just inept at plugging in GUR2, or perhaps there's another issue. Either way, I'll ask Jenne about it tomorrow and try again.
TP2 dry_pump was changed at intake pressure 982 mTorr at 84,889 hrs This seal hold up for one year.
The rebuilt pump seal performing well at 28 mTorr
Here's a picture of where I am now inputting signals into the STACIS with the accelerometers (the orange and blue wires):
I know this is the right point because I could see the geophone signal from these points . By inputting a swept sine signal into this point, I was able to take a transfer function of this first amplifier/filtering circuit board, which will be useful if I need to make my own filter for the STACIS:
I have unplugged the geophones and am inputting a signal from an accelerometer into this point. The accelerometers output a different signal than the geophones, so I am trying to modify the accelerometer signal to be closer to the geophone one. I've lowered the gain on all the pots for the z axis and put in several BNC attenuators to lower the accelerometer signal amplitude.
At the moment, using the accelerometers as feedback makes the platform vibration worse, which will hopefully be solved by some more attenuation or filtering of the accelerometer signal.
Somehow we got an excitation going on BS OpLevs, and even though Yuta thought he might have accidentally started it, he couldn't find where, so we couldn't stop it.
Since we don't have anything written on the wiki, I ended up calling Joe to remind me how to clear test points:
controls@allegra:~ 0$ diag -l -z
diag> tp clear * *
test point cleared
diag> awg clear 21.*
diag -l -z
diag> tp clear * *
test point cleared
diag> awg clear 21.*
The tp clear clears all test points everywhere. The awg clear wouldn't let me do a universal clear, so I just did #21, which is the SUS model. So if you want to kill excitations on a specific model, you must find it's DCU ID (it's in the top right corner of the GDS status screens for each model).
I measured openloop transfer functions of PRM/BS/ITMX/ITMY SUSPOS servo.
They look great. They all have ~50 deg phase margin and damps only POS resonance.
Yuta and I bought some new BS mounts so that we could use the 4th port of the beamsplitters which are combining the PSL green and the arm transmitted beam, just before the Beat PD for each arm. I just placed the Yarm one, and have aligned the light onto both the Beat PD and the Trans DC PD.
I'll do the Xarm after lunch.
I tried to reduce BS 3.3 Hz motion with local damping. 3.3 Hz probably comes from the stack, but I want to reduce this because PRMI beam spot is moving in this frequency.
I tried it by putting some resonant gains to oplev servo and OSEM damping servo, but failed.
What I learned:
1. BS OSEM input matrix diagonalization looks impressively good. Below is the spectra of oplev pitch/yaw and OSEM pos/pit/yaw/side comparing with and without damping (REF is without). You can see mechanical resonances are well separated. Also, damping servos don't look like they are adding noise at 3.3 Hz.
2. 3.3 Hz motion is not stationary. Amplitude is sometimes high, but sometimes low. Amplitude changes in few seconds. You can even see 3.3 Hz in the dataviewer, too.
3. I set new oplev gains. I lowered them so that UGFs will be ~ 2.5 Hz. I turned ELP35 on.
C1:SUS-BS_OLPIT_GAIN = 0.2 (was 0.6)
C1:SUS-BS_OLPIT_GAIN = -0.2 (was -0.6)
4. All OSEM sensors feel about the same amount of 3.3 Hz motion.
5. OLPIT and OLYAW reduces if you put 3.3 Hz resonant gain to oplev servo, but it is maybe not true since they are in-loop error signals. You can't see the difference from OSEM sensors. Below is oplev pitch/yaw and OSEM pos/pit/yaw/side comparing with and without 3.3 Hz resonant gain (REF is without).
I heard that Steve did great work on oplev in Feb 2012.
Here's summary what happened to oplev since then.
Someone changed oplev filters and gain. I couldn't find elog about it. Does anyone know?
Quadrant sum (C1:SUS-XXX_OLSUM) for each optic now and in Feb 2012 is
ITMX ITMY ETMX ETMY BS PRM SRM
2456 14630 1476 14885 3650 4302 2937 counts (now)
1300 14500 900 9000 3500 4000 2600 counts (Feb 6, 2012 elog #6256)
0.025 0.3 0.2 0.2 0.05 0.06 0.04 mW on QPD (Feb 6, 2012 elog #6256)
1350 15000 1500 15500 3500 4000 2600 counts (Feb 23, 2012 elog #6744)
ETMX oplev laser was replaced on May 22, 2012, and quadrant sum was 20500 counts at that time (elog #6656).
Oplev servo openloop transfer functions:
In Feb 2012, gains were adjusted and filter settings are recorded by Steve.
For all pitch OLTF, see elog #6309.
For all yaw OLTF, see elog #6323.
All the filters in Feb is listed in elog #6744.
Filters now are messed up, as Jamie pointed out in elog #6743.
Below is the current filter settings.
I turned ELP and RLP filters on, which wasn't on to cut-off noises at higher frequencies.
I left resonant gains of ETMs because I don't know what they are for.
I put ELP35 for ITMs, BS, PRM and SRM. I put RLP80 for BS, PRM and SRM.
I will leave ELP35 off for BS and SRM because they oscillate currently. ELP50 and ELP40 is on for a substitution. I will readjust them soon.
I don't know who changed all gains (except for PRM, which I adjusted in elog #6952). It doen't look like it is because of change in quadrant sum.
I also don't know who deleted 3.3 Hz resonant gain for BS.
I put all similar filters in same place to make it organized. Now, basic fitlers are organized. We may need some resonant gains for each optics.
The X and Y directions in the STACIS still both oscillate uncontrollably in closed loop, so I'll be doing my testing in Z for now. If I need to use the other axes I'll lower their gain with the pots and add weight to the STACIS platform to try to make it more stable.
Measurements I've taken for Z:
--Open loop gain, taken by driving the PZTs with a swept sine signal and measuring with both internal geophones and external accelerometers. These measurements look a lot like the plots supplied by the STACIS manufacturer, with a resonance at 15-16 Hz (X and Y also look good). Figure below was taken with geophones:
--Open loop gain, where the input is ambient seismic noise measured by one set of accelerometers on the floor and one set on top of the STACIS:
--Closed loop gain, where the input is ambient seismic noise, and feedback is supplied by the geophones (like normal STACIS operation). There's a definite drop in the transfer function, as expected:
--Open and closed loop transfer functions superimposed (the higher one is open):
I am currently working on using the less-noisy accelerometers to provide feedback instead of the geophones. I have found the right point before the extension board to input the accelerometer signal which is NOT the same as the Signal IN/OUT cables- those are at the end of the board, after amplifying and filtering. I want the accelerometer signal to go through the same circuitry as the geophone signal so that the noise of the sensors themselves can be compared.
Problem: Coherence isn't great between the accelerometer sets at low frequencies, which leads to a not very smooth transfer function. I might try using the shaker, because the larger motion may lead to better coherence between the accelerometers on top of the STACIS and at its base.
Here's what I accomplished since my last elog:
I continued working on the beatbox calibration. Instead of using the function generator for an input signal,
I used the network analyzer because it can generate higher frequencies that are of more interest to us. I ran
the network analyzer output into the RF in port, and took voltage measurements from the Q port using the
oscilloscope. The frequency range I focused on was 100 - 200 MHz, and I also took more closely spaced measurements
from 180 - 200 MHz. The data is recorded on the computer now, and I will analyze it more fully in the future.
I also edited the Calibration page on the LIGO 40 m wiki. Rana showed me the page on calibration, but there was
limited information there, so he recommended that I post my work there as well. Right now I haven't posted much,
but I will likely add some information on the Simulink model I'm working on and results of measurements to be
taken as the project progresses.
The majority of my work has been on developing a Simulink model in Matlab of the differential arm length sensing
and control loop. I am using Figure 6-1 from Rana's thesis as a guide on important components to include in the
model. Some of the details on the transfer functions of components need to be worked out, but a basic framework has
been established. Right now the transfer function of the arm cavity is being approximated as a single pole, but
we may integrate the calibration model I'm working on with Sasha's work on the arm cavity. I have also begun to
implement the length response function in the model. I believe it is giving correct results at frequencies up to
100 Hz, but is off at higher frequencies. This might be fixed after I continue to fill in the transfer functions
of the digital components; they are currently set to 1 until I find more information on them.
Masha and Yaakov - this is an excellent opportunity for you guys to test out your triangulation stuff! Also, it might give a lot of good data times for the learning algorithms.
Maybe you should also put out the 3 accelerometers that Yaakov isn't using (take them off their cube, so they can be placed separately), then you'll have 6 sensors for vertical motion. Or you can leave the accelerometers as a cube, and have 4 3-axis sensors (3 seismometers + accelerometer set).
Below is angular spectra of every suspended core optics.
As you can see, there's a peak at 3.3 Hz for BS and PRM angular motion. Compared with other optics, they look large.
I briefly checked suspension filters and found that BounceRoll filters and f2a filters are not turned on for BS.
I checked elog and there was no reason for them to be off, so I turned them on. It didn't change angular spectra very much, though.
I'm going to check BS suspension damping and see where 3.3 Hz peak comes from.
Note that oplev quadrant sums are different for every optics, so we can't simply compare angular motion between optics from OLPIT/OLYAW. But for OSEMs, there are "cnt2um" which calibrate sensor outputs into um. and input matrix should be normalized, so we can compare SUSPIT/SUSYAW with other optics.
I centered all oplevs to do this measurement.
Quadrant sum (C1:SUS-XXX_OLSUM) for each optic now is
ITMX ITMY ETMX ETMY BS PRM SRM
2456 14630 1476 14885 3650 4302 2937 (counts)
This week, my work fell into two categories: Artificial Neural Networks and lab-related projects.
Artificial Neural Networks
- I played around with radial basis functions and k-means classification algorithms for a bit in order to develop an algorithm to pick out various features of seismic signals. However, I soon realized that k-means is an extremely slow algorithm in practice, and that radial basis functions are thus difficult to implement since their centers are chosen by the k-means algorithm in practice.
- Thus, I moved on to artificial neural networks. Specifically, I chose to implement a sigmoidal neural network, where the activation function of each neuron is f(u) = 1/ (1 + e-u/T), T constant, which is nice because it's bounded in [0, 1]. Classification, then, is achieved by generating a final output vector from the output layer of the form [c1, c2, c3, ..., cN] where N is the number of classes, ci = 1 (ideally) if the input is of class i, and ck = 0 otherwise.
- First, I built a network with randomly generated weights, ten neurons in the one hidden layer, and two output neurons - to simply classify [1, 0] (earthquake) and [0, 1] (not an earthquake). I ran this on fake input I generated myself, and it quickly converged to error 0. Thus, I decided to built a network for real data.
- My current network is a 2-layer, 10 neuron / 2 neuron sigmoidal network that also classified earthquake / not an earthquake. It trains in roughly 80 - 100 iterations (it's learning curve on training data it attached). It decimates full data from DataViewer by a factor of 256 in order to run faster.
- Next steps: currently, my greatest limitation is data - I can use US Geological Survey statistics to classify each earthquake (so that N = 10, rather than 2, for example), but I would like definite training data on people, cars, trucks, etc. for supervised learning, in order to develop those classes. Currently, however, the seismometers are being used for mine and Yaakov's triangulation project, so this may have to wait a few days.
- I apologize for all of the E-logs, but I changed the filters in the RMS system (to elliptic and butterworth filters) and changed the seismic.strip display file.
- I repositioned the seismometers so that Yaakov and I can triangulate signals and determine seismic noise hot-spots (as a side-project).
Right now I'm going to try for more classes based on USGS statistics, and I will also explore other data sources Den suggested.
Thanks for your help, everybody in 40m!
These past two weeks, I've been working on simulating a basic Fabry-Perot cavity. I finished up a simulation involving static, non-suspension mirrors last week. It was supposed to output the electric field in the cavities given a certain shaking (of the mirrors), and the interesting thing was that it outputted the real and imaginary components seperately, so I ended up with six different bode plots. Since we're only interested in the real part, bodes 2, 4, and 6 can be discarded (see attachment 1). There was a LOT of split-peak behavior, and I think it has to do either with matlab overloading or with the modes of the cavity being very close together (I actually think the first is more likely since a smaller value of T_1 resulted in actual peaks instead of split ones).
At any rate, there really wasn't much I could improve on that simulation (neither was there any point), but I attach the subsystem governing the electric field in the cavity as a matter of academic interest (see attachment 2). So I moved onto simulations where the mirrors are actually suspended pendulums as they are in reality.
A basic simulation of the suspended mirrors gave me fairly good results (see attachment 3). A negative Q resulted in a phase flip, detuning the resonance from the wrong side resulted in a complete loss of the resonance peak, and the peak looked fairly consistent with what it should be. The simulation itself is pretty bare bones, and relies on the two transfer functions P(s) and K(s); P(s) is the transfer function for translating the force of the shaking of the two test masses (lumped together into one transfer function) into actual displacement. Note that s = i*w, where w is the frequency of the force being applied. K(s), on the other hand, is the transfer function that feeds displacement back into the original applied force-based shaking. Like I said, pretty bare bones, but working (see attachment 4 for a bode plot of a standard detuning value and positive Q). Tweaking the restoring (or anti restoring, depending on the sign of the detuning) force constant (K_0 for short) results in some interesting behavior. The most realistic results are produced for K_0 = 1e4, when the gain is much lower overall but the peak in resonance gets you a gain of 100 in dB. For those curious as to where I got P(s) and K(s), see "Measurement of radiation-pressure-induced optomechanical dynamics in a suspended Fabry-Perot cavity" by Thomas Corbitt, et. al.
I'm currently working on a more realistic simulation, with frequency and force noise as well as electronic feedback (via transfer functions, see attachment 5). The biggest thing so far has been trying to get the electronic transfer functions right. Corbitt's group gave some really interesting transfer functions (H_f(s) and H_l(s) for short; H_f(s) gives the frequency-based electronic transfer function, while H_l(s) gives the length-based electronic transfer function), which I've been trying to copy so that I can reproduce their results (see attachment 6). It looks like H_l(s) is a lowpass Butterworth filter, while H_f(s) is a Bessel filter (order TBD). Once that is successful, I'll figure out what H_f(s) and H_l(s) are for us (they might be the same!), add in degrees of freedom, and my first shot at the OSEM system of figuring out where the mirror's position is.
I have been working on configuration of the Daily Summary webpages and have been attempting to create a "PSL health" page. This page will display the PMC power, the temperature on the PSL table and the PSL table microphone levels. Thus far, I have managed to make the extra PSL tab and configure the graph of the interior temperature, using channel C1:PSL-FSS_RMTEMP.
I have been attempting to make a spectrogram for one of the PMC channels, but there is an issue with the spectrogram setup, as Duncan Macleod noted in ELOG 6686:
"At the moment a package version issue means the spectrogram doesn't work, but the spectrum should. At the time of writing, to use the spectrum simple add 'plot-dataplot2'."
Because of this issue, I have also been trying to make the spectrogram plots work. Thus far, I have fixed the issue with one of the spectrogram plots, but there are several problems with the other four that I need to address. I have also been looking at the microphone channels and trying to make the plot for them work. I checked which microphone was on the PSL table and plotted it in matplotlib to make sure it was working. However, when I tried to incorporate it into the daily summary pages, the script stops at that point! It might simply be taking an excessively long time, but I have to figure out why this is the case.
(I am using channel C1:PEM-MIC_6_IN1_DQ, if this is blatantly wrong, please let me know!!)
The main point of this ELOG is that I have working test-daily summary pages online! They can be found here:
Also, if anyone has more requests for what they would like to see on the finalized summary pages site, please respond to this post or email me at: email@example.com
It is not as dramatic as PRMI, but I could see BS 3.3 Hz motion at AS and REFL when MI is locked at dark fringe.
Below is uncalibrated spectra of REFLDC and ASDC when
Red: MI is locked at dark fringe
Blue: there's no light (PSL shutter closed)
We have to do something to get rid of this.
My hypothesis from the measurements below, to explain PRMI beam spot motion is;
Stack motion at 3.3 Hz largely couples to BS and PRM angular motion.
LSC for PRMI try to compensate this 3.3 Hz motion because they appear in the error signal.
But since it's not length, failing and even adding more angular motion.
1. Uncalibrated spectra of POPDC and ASDC when PRMI is locked. This tells you that beam motion seen at POP is 3.3 Hz.
2. Uncalibrated spectra of feedback signal to BS and PRM. This tells you that LSC is actuating BS and PRM mainly at 3.3 Hz. I think this is because beam spot on PD moves at 3.3 Hz and so faking the error signal.
3. Below left is uncalibrated spectra of BS, ITMX, ITMY, PRM (and ETMY) angular motion measured using oplevs. I centered oplevs on these optics (except ETMY, which was mis-aligned during PRMI lock). It looks like BS and PRM motion at 3.3 Hz is larger than other optics. Also, there's some coherence between POPDC and BS/PRM motion. We see some coherence with ITMs and even with ETMY, which is completely independent from PRMI. I think this is because 3.3 Hz motion is originated from the ground (stack) motion.
4. Above right is the same spectra, but when PRMI is not locked. It looks like there's no big change compared with PRMI locked. When locked, there's some excess for BS and PRM at ~1-3 Hz. I think this is from LSC feedback, which in principle, doesn't affect any angular motion.
- Why BS and PRM has large 3.3 Hz peak compared with other optics?
- Is 3.3 Hz peak effecting MI lock or arm lock?
- How can we monitor PR2/3 angular motion?
PRMI glitch certainly comes from power recylcing gain fluctuation.
I confirmed this by
- Reading the value of POPDC at the time when there's glitch in error signals
-> There was some threshold for POPDC to make a glitch
- Look closer to the glitch
-> It was oscillation in ~400Hz, where we have phase flip in PRCL/MICH servo
Next is to find why we have power recycling gain fluctuation. I want to see the correlation between alignment fluctuation of optics and POPDC.
Below is the plot of
Red PRCL error signal (C1:LSC-REFL33_I_ERR)
Green MICH erorr signal (C1:LSC-AS55_Q_ERR)
Blue PRC intra-cavity power (C1:LSC-POPDC_OUT)
when PRMI is carrier locked.
Time when there is a glitch in error signal is marked. Value of POPDC at that time is also marked. It looks like there's some threshold (dotted blue line).
It sometimes doesn't show glitch even if POPDC is above the "threshold". It is maybe because of alignment fluctuation. Intra-cavity power gets high, but power at PDs get low, or vice versa.
Right plot is closer look. Glitch is a sudden oscillation at ~400 Hz. It is the frequency where we have phase flip in PRCL/MICH openloop transfer function now(see elog #6950).
I centetered PRM oplev, lowered gain and PRM oplev servo is not oscillating any more.
It is OK for more than a softball practice.
C1:SUS-PRM_OLPIT_GAIN = 0.15 (was 0.5)
C1:SUS-PRM_OLYAW_GAIN = -0.3 (was 0.7)
Openloop transfer function:
Oplev Pitch: gain ~ 12 at 0.69 Hz resonance
Oplev Yaw: gain ~ 18 at 0.83 Hz resonance
I adjusted the gain so that oplev damps resonance as much as possible, but not introduce additional noise. I did no calculation, but just measured OSEM spectra (SUSPIT and SUSYAW). Below, you can see the noise reduces at resonance when oplev servo is on, and not increasing at other frequencies. It was introducing noise before. Someone should do more systematic adjustment of oplev servos for all the optics.
Today I REPOSITIONED THE SEISMOMETERS in order to triangulate noise sources (as Rana suggested).
I re-levelled all of them, locked them, and turned them on. They should be located out of sight, but just in case:
GUR 1 IS DOWN THE X-ARM, behind the interferometer.
GUR 2 IS BETWEEN THE TWO ARMS, BEHIND THE CABLE TRAP THAT RUNS PARALLEL TO THE X-ARM.
STS 1 IS DOWN THE Y-ARM behind the interferometer.
I'll wait a day for them to stabilize (continuing to reset STS-1 every hour or so) and then begin taking data tomorrow morning, depending on the condition of the signal.
Ideally, I'd like a few days' worth of data, so I'll update when I've changed the configuration back to the way it was prior.
Highlighting good, ALL CAPS LESS SO!
I modified filiters for LSC_MICH and LSC_PRCL again to cope with power recycling gain fluctuation.
After some more alignment, power recycling gain increased (but still ~3.7). It fluctuates more than a factor of 2, and I began to see glitches again. So I needed more gain margin, as Koji pointed out.
I played around with filters, but I couldn't remove all the glitches. Gain margin now look OK in principle.
It looks like PRM motion is related. Since PRM doesn't have oplev now, I will see PRM oplev tomorrow.
New openloop transfer function:
UGF ~100 Hz, phase margin ~ 50 deg
no phase flip in less than factor of ~5 gain change
550 usec delay
UGF ~100 Hz, phase margin ~ 70 deg (phase bump at UGF)
no phase flip in less than factor of ~5 gain change
550 usec delay
Power recylcing gain:
It is now ~3.7. It fluctuates pretty much. See time series data below when I locked PRMI. MICH and PRCL locks at the same time.
G = (1600-244)/(266-244)*0.06 = 3.7
The phase margins looks still too small.
Do You need such high gain at LF? This is not a high finesse cavity so can we sacrifice
some DC gain while gaining more phase around UGFs?
Otherwise, the gain fluctuation should be nicely compensated (i.e. fancy normalization).
I modified filiters for LSC_MICH and LSC_PRCL.
Although modes we can see at POP and AS look still bad, error signals are less glitchy than I see before (elog #6886).
Measured power recylcing gain for PRMI was 1.6 (??)
Openloop transfer function for LSC_MICH:
UGF ~130Hz, phase margin ~30 deg
550 usec delay
APOLOGIES: I forgot "pi" in previous delay calculation. (I put notes on elogs #6940 and #6941)
Openloop transfer function for LSC_PRCL:
UGF ~130Hz, phase margin ~30 deg
550 usec delay
A bump cam be seen in ~200 Hz. Coupling of DOFs?
Beam shape and motion:
Below left is the Sensoray capture of AS/REFL/POP when PRMI is carrier locked.
Beam spot motion looks less bouncy than before, but it still shows motion mostly at ~3.3Hz. This might be from PRM motion. Above right is uncalibrated spectra of POPDC and REFLDC. You can see 3.3 Hz peak. This peak has some coherence with PRM motion measured by oplevs. I centered BS/PRM oplev to do this measurement.
Power recycling gain:
- Definition and designed value
Power recylcing gain is
G = (PRC intracavity power) / (incident power)
When MI is perfectly symmetric, this can be written as
G = (t_PRM/1-r_PRM*r_ITM)**2
where t_i, r_i is amplitude transmissivity, reflectivity. Inserting the designed values;
t_PRM = sqrt(0.0575)
r_ITM = sqrt(1-0.014)
designed power recycling gain for PRMI is
G = 44
POP power when PRM is misaligned and MI is locked at dark fringe is
P_mis = P_in * T_PRM * (1-T_PR3) * (1-T_ITM) * T_PR3
POP power when PRMI is locked is
P_PR = P_intra * T_PR3
G = P_intra / P_in = (P_PR / P_mis) * T_PRM * (1-T_PR3) * (1-T_ITM) ~ (P_PR / P_mis) * 0.06
I measured power of POP using C1:LSC-POPDC_OUT. It was 268 when PRM is misalined and MI is locked at dark fringe. Also, it was ~850 when PRMI is carrier locked. When closing PSL shutter, it was ~246. So,
G_PR = (850-246)/(268-246) * 0.06 = 1.6
It looks too small.
Ideally, I'd like a few days' worth of data, so I'll update when I've changed the configuration back to the way it was prior.
Masha is moving the seismometers, so they are all off right now. Were they on, they would see a bunch of noise from the guy outside the 40m front door who is installing a safety shower.
The c1oaf model hasn't been running for a few days (since the leap second problems we were having last week). I had looked into it, but finally figured it out (with Jamie's help) today.
The BURT restore has to be given to the model during startup, but for whatever reason it wasn't BURT restoring until *after* the model had already failed to start. The symptoms were: no 'heartbeat' for the oaf model, no connection to the fb, NO SYNC on the GDS screen, 0x4000. the BURT restore button was green, which threw me off the scent, but that's just because it did, in fact, get set, just way too late.
I ended up looking in the dmesg of the lsc computer, and the last set of stuff was several lines of "[3354303.626446] c1oaf: Epics burt restore is 0". Nothing else was written after that. Jamie pointed out that this meant the BURT restore wasn't getting sent before the model unloaded itself and decided not to run.
[3354303.626446] c1oaf: Epics burt restore is 0
The solution: restart the model, and manually click the BURT restore button as soon as you're able (after everything comes back from being white). We used to have to do this, but then there was a "fix", which apparently isn't super robust and failed for the oaf (even though it used to work just fine). Bugzilla report submitted.
The RMS signals generated by the updated filtering process are now on the wall. The NaN issue is gone it seems, and the template has been changed. Thanks for your help, Jenne.