Actually it is difficult to see any laser frequency line in the dark fringe signal, since the Schnupp asymmetry is small. It is much better to use a differential MICH excitation which gives a better signal at the dark port.
We repeated the simulation explained before. We can use both the AS55 or the AS11 signals, bout the first one has a limited linear range and the expected 4cm value is very close to saturation.
Its very doubtful that the MC yaw drift matters for the IFO. That's just a qualitative correlation; the numbers don't hang together.
Then there must be something else slowly drifting. It was very clear that the good alignment of the IFO was every time lost after few minutes...
We wanted to try the PRC length measurement,but we ended up spending all the afternoon to lock the PRMI on sidebands. Here are some results
Finally, we managed to lock PRMI on sidebands:
We could carry out the measurement of PRC length. The AS110 photodiode was plugged into REFL11. So REFL11 is giving us the AS11 signal. Here is the procedure.
We repeated the same measurement also using AS55, with the same procedure.
Roughly, the phase difference for AS11 was 11 degrees and for AS55 it was 23 degrees. A more detailed analysis and a calibration in terms of PRC length will follow.
I analyzed the data we took yesterday, both using AS11 and AS55. For each value of the phase I estimated the Q/P ratio using a demodulation code. Then I used a linear regression fit to estimate the zero crossing point.
Here are the plots of the data points with the fits:
The measurements a re more noisy in the PRMI configuration, as expected since we had a lot of angular motion. Also, the AS11 data is more noisy. However, the estimated phase differences between PRMI and MICH configurations are:
The simulation already described in slogs 9539 and 9541 provides the calibration in terms of PRC length. Here are the curves
The corresponding length errors are
The two results are not consistent one with the other and they are both not consistent with the previous estimate of 4 cm based on the 55MHz sideband peak splitting.
I don't know the reason for this incongruence. I checked the simulation, repeating it with Optickle and I got the same results. So I'm confident that the simulation is not completely wrong.
I also tried to understand which parameters of the IFO can affect the result. The following ones have no impact
The only parameters that could affect the curves are offsets in MICH and PRCL locking point. We should check if this is happening. A first quick look (with EricQ) seems to indicate that we indeed have an offset in PRCL. However, tonight the PRMI is not locking stably on the sidebands.
If possibile, we will repeat the measurement later on tonight, checking first the PRCL offset.
I analyzed the data taken yesterday.
The AS11 data in PRMI configuration is very bad, while the AS55 seems good enough:
The phase differences are
AS11 = 21 +- 18 degrees (almost useless due to the large error)
AS55 = 11.0 +- 0.4 degrees
The AS55 phase difference is not the same measured in the last trial, but about half of it. The new length estimates are:
AS11 = 3.2 +- 2.8 cm
AS55 = 0.47 +- 0.01 cm
We can probably forget about the AS11 measurement, but the AS55 result is different from the previous estimate... Maybe this is due to the fact that Eric adjusted the PRCL offset, but then we're going in the wrong direction....
Yesterday night I plugged back the REFL11 RF cable into the corresponding demodulation board.
Here is how to measure the PRC length with a set of distance measurements in the optical setup.
We need to take distance measurements between reference points on each mirror suspension. For the large ones (SOS) that are used for BS, PRM and ITMs, the reference points are the corners of the second rectangular base: not the one directly in contact with the optical bench (since the chamfers make difficult to define a clear corner), but the rectangular one just above it. For the small suspensions (TT) the points are directly the corners of the base plates.
From the mechanical drawings of the two kind of suspensions I got the distances between the mirror centers and the reference corners. The mirror is not centered in the base, so it is a good idea to cross check if the numbers are correct with some measurements on the dummy suspensions.
I assumed the dimensions of the mirrors, as well as the beam incidence angles are known and we don't need to measure them again. Small errors in the angles should have small impact on the results.
I wrote a MATLAB script that takes as input the measured distances and produce the optical path lengths. The script also produce a drawing of the setup as reconstructed, showing the measurement points, the mirrors, the reference base plates, and the beam path. Here is an example output, that can be used to understand which are the five distances to be measured. I used dummy measured distances to produce it.
In red the beam path in vacuum and in magenta the beam path in the substrate. The mirrors are the blue rectangles inside the reference bases which are in black. The thick lines are the HR faces. The green points are the measurement points and the green lines the distances to be measured. The names on the measurement lines are those used in the MATLAB script.
The MATLAB scripts are attached to this elog. The main file is survey_v2.m, which contains all the parameters and the measured values. Update it with the real numbers and run it to get the results, including the graphic output. The other files are auxiliary functions to create the graphics. I checked many times the code and the computations, but I can't be sure that there are no errors, since there's no way to check if the output is correct... The plot is produced in a way which is somehow independent from the computations, so if it makes sense this gives at least a self consistency test.
global sos_lx sos_ly sos_cx sos_cy tt_lx tt_ly tt_cx tt_cy
%% Survey of the PRC length
%% measured distances
d_MB2_MY = 2000.0;
d_MB3_MX = 2000.0;
d_MB1_M31 = 400.0;
d_M32_M21 = 3000.0;
d_M22_MP = 2000.0;
function d = distance(c1, c2)
d = sqrt(sum((c1-c2).^2));
function draw_beam(c1, c2, color)
plot( [c1(1), c2(1)], [c1(2), c2(2)], color, 'LineWidth', 2)
function draw_measurement(c1, c2, color, name)
plot( [c1(1), c2(1)], [c1(2), c2(2)], color)
text( (c1(1)+c2(1))/2, (c1(2)+c2(2))/2 + 20, name, ...
'FontSize', 5, 'HorizontalAlignment', 'center', ...
plot(c(1), c(2), 'go', 'LineWidth', 2, 'MarkerSize', 3);
function draw_sos(C, angle)
global sos_lx sos_ly sos_cx sos_cy tt_lx tt_ly tt_cx tt_cy
c(:,1) = [-sos_lx/2, -sos_ly/2 + sos_cy-sos_ly/2]';
c(:,2) = [-sos_lx/2, sos_ly/2 + sos_cy-sos_ly/2]';
c(:,3) = [sos_lx/2, sos_ly/2 + sos_cy-sos_ly/2]';
c(:,4) = [sos_lx/2, -sos_ly/2 + sos_cy-sos_ly/2]';
c(:,5) = [-sos_lx/2, -sos_ly/2 + sos_cy-sos_ly/2]';
m_lx = 25.4*2;
function draw_tt(C, angle)
global sos_lx sos_ly sos_cx sos_cy tt_lx tt_ly tt_cx tt_cy
c(:,1) = [-tt_lx/2, -tt_ly/2 + tt_cy-tt_ly/2]';
c(:,2) = [-tt_lx/2, tt_ly/2 + tt_cy-tt_ly/2]';
c(:,3) = [tt_lx/2, tt_ly/2 + tt_cy-tt_ly/2]';
c(:,4) = [tt_lx/2, -tt_ly/2 + tt_cy-tt_ly/2]';
c(:,5) = [-tt_lx/2, -tt_ly/2 + tt_cy-tt_ly/2]';
m_lx = 25.4;
[Manasa, EricQ, Gabriele]
We managed to measure the PRC length using a procedure close to the one described in slog 9573.
We had to modify a bit the reference points, since some of them were not accessible. The distances between points into the BS chamber were measured using a ruler. The distances between points on different chambers were measured using the Leica measurement tool. In total we measured five distances, shown in green in the attached map.
We also measured three additional distances that we used to cross check the results. These are shown in the map in magenta.
The values of the optical lengths we measured are:
LX = 6828.96 mm
LY = 6791.74 mm
LPRC = 6810.35 mm
LX-LY = 37.2196 mm
The three reference distances are computed by the script and they match well the measured one, within half centimeter:
M32_MP1 = 117.929 mm (measured = 119 mm)
MP2_MB3 = 242.221 mm (measured = 249 mm)
M23_MX1p = 220.442 mm (measured = 226 mm)
See the attached map to see what the names correspond to.
The nominal PRC length (the one that makes SB resonant without arms) can be computed from the IMC length and it is 6777 mm. So, the power recycling cavity is 33 mm too long w.r.t. the nominal length. This is in good agreement with the estimate we got with the SB splitting method (4cm).
According to the simulation in the wiki page the length we want to have the SB resonate when the arms are there is 6753 mm. So the cavity is 57 mm too long.
Attached the new version of the script used for the computation.
Today we changed the PRC length translating PR2 by 27 mm in the direction of the corner. After this movement we had to realign the PRC cavity to get the beam centered on PRM, PR2, PR3, BS (with apertures) and ITMY (with aperture). To realign we had to move a bit both PR2 and PR3. We could also see some flashes back from the ETMY . //Edit by Manasa : We could see the ETMY reflection close to the center of the ITMY but the arm is not aligned or flashing as yet//.
After the realignment we measured again the PRC length with the same method of yesterday. We only had to change one of the length to measure, because it was no more accessible today. The new map is attached as well as the new script (the script contains also the SRC length estimation, with random numbers in it).
The new PRC length is 6753 mm, which is exactly our target!
The consistency checks are within 5 mm, which is not bad.
We also measured some distances to estimate the SRC length, but right now I'm a bit confused looking at the notes and it seems there is one missing distance (number 1 in the notes). We'll have to check it again tomorrow.
global sos_lx sos_ly sos_cx sos_cy tt_lx ...
tt_ly tt_cx tt_cy sos_sx sos_sy sos_dy
%% Survey of the PRC+SRC lengths %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% measured distances
d_MB2_MY = 2114 + 27 + 9;
Today we measured the missing distance to reconstruct SRC length.
I also changed the way the mirror positions are reconstructed. In total for PRC and SRC we took 13 measurements between different points. The script runs a global fit to these distances based on eight distances and four incidence angles on PR2, PR2, SR2 and SR3. The optimal values are those that minimize the maximum error of the 13 measurements with respect to the ones reconstructed on the base of the parameters. The new script is attached (sorry, the code is not the cleanest one I ever wrote...)
The reconstructed distances are:
Reconstructed lengths [mm]:
LX = 6771
LY = 6734
LPRC = 6752
LX-LY = 37
LSX = 5493
LSY = 5456
LSRC = 5474
The angles of incidence of the beam on the mirrors are very close to those coming from the CAD drawing (within 0.15 degrees):
Reconstructed angles [deg]:
aoi PR3 = 41.11 (CAD 41)
aoi PR2 = 1.48 (CAD 1.5)
aoi SR3 = 43.90 (CAD 44)
aoi SR2 = 5.64 (CAD 5.5)
The errors in the measured distances w.r.t. the reconstructed one are all smaller than 1.5 mm. This seems a good check of the global consistency of the measurement and of the reconstruction method.
NOTES: in the reconstruction, the BS is assumed to be exactly at 45 degrees; wedges are not considered.
I then used the same settings as in ELOG 9554, except I used -1s instead of +1s for the POP110I trigger matrix elements. (I'm not sure why this is different, but I noticed that the PRC would lock on carrier with positive entries here, so I figured we wanted the peaks with opposite sign).
Nice work!! As with all the other RF PDs, POP110's phase likely needs tuning. You want POP110 (and POP22) I-quadratures to be maximally positive when you're locked on sidebands, and maximally negative when locked on carrier. What you can do to get close is lock PRC on carrier, then rotate the POP phases until you get maximally negative numbers. Then, when locked on sideband, you can tweak the phases a little, if need be.
Very good news! We should have a look at the POP110 sideband peak splitting, to see if we really got the right PRC length...
I'm not sure what may cause this. To back up this measurement/interpretation, I tried to take measurements of these transfer functions across different excitation frequencies via swept sine DTT, but seismic activity kept me from staying locked long enough...
I guess that you get an ellipse when the transfer functions to I and Q have a different phase. One mechanism could be that when driving MICH we make some residual PRCL and this couples with a different transfer function to both I and Q. However, I would expect no phase lag in the PRMI configuration, since there is no enough optical delay in the system to give significant dephasing at few hundreds Hz. This effect might come from mechanical resonances.
It is worth measuring the optical transfer functions from both PRCL and MICH to REFL signals at all frequencies, to see if we have strange features in the TFs.
I guess this is normal. DARM has (almost) the same effect of MICH on the corner interferometer signals, just increased in amplitude by the arm cavity amplification. When the arm is out of resonance, DARM is almost completely depressed and it is not affecting MICH at all. On the other hand, when the cavities are exactly at resonance, DARM signal is amplified w.r.t. MICH by the cavity gain (2F/pi).
Since DARM is still controlled with ALS, it is probably noisy. The closer to resonance you move the cavities, the more ALS noise in DARM will affect MICH.
When looking at the data, I see that the MICH error signal gets fuzzier when the arms get close to resonance. (Note here that because I forgot to zero the carm offset before finding the resonances, -3 is my zero point for this plot and the next.)
Koji asked me to perform a simulation of the response of POP QPD DC signal to mirror motions, as a function of the CARM offset. Later than promised, here are the first round of results.
I simulated a double cavity, and the PRC is folded with parameters close to the 40m configuration. POP is extracted in transmission of PR2 (1ppm, forward beam). For the moment I just placed the QPD one meter from PR2, if needed we can adjust the Gouy phase. There are two QPDs in the simulation: one senses all the field coming out in POP, the other one is filtered to sense only the contribution from the carrier field. The difference can be used to compute what a POP_2F_QPD would sense. All mirrors are moved at 1 Hz and the QPD signals are simulated:
This shows the signal on the POP QPD when all fields (carrier and 55 MHz sidebands) are sensed. This is what a real DC QPD will see. As expected at low offset ETM is dominant, while at large offset the PRC mirrors are dominant. It's interesting to note that for any mirror, there is one offset where the signal disappears.
This is the contribution coming only from the carrier. This is what an ideal QPD with an optical low pass will sense. The contribution from the carrier increases with decreasing offset, as expected since there is more power.
Finally, this is what a 2F QPD will sense. The contribution is always dominated by the PRC mirrors, and the ETM is negligible.
The zeros in the real QPD signal is clearly coming from a cancellation of the contributions from carrier and sidebands.
The code is attached.
const Pin 1 # input power
const Lprc 6.752 # power recycling cavity length
const d_BS_PR3 0.401 # folding mirror distances
const d_PR2_PR3 2.081
const d_PRM_PR2 1.876
const c 299792458 # speed of light
const fmod 5*c/(4*Lprc) # modulation frequency, matched to Lprc
% compile simulation class
m = MIST('foldeddoublecavity.mist');
% create simulation object
s = FoldedDoubleCavity(8);
% set angulat motion
In addition to the simulation described in my previous elog, I simulated the signal on a quadrant photodetector demodulated at 2F. The input laser beam is modulated at 11MHz up to the fifth order. There is no additional 55 MHz modulation.
The QPD demodulated at 2F shows good signals for PRC control for all CARM offsets, as expected from the previous simulation.
Jenne asked me to simulate the signals on POP QPD when moving different mirrors, as a function of the Gouy phase where the QPD is placed.
I used the opportunity to create a MIST simulation file of the entire 40m interferometer, essentially based on my aLIGO configuration file. I used the recycling cavity lengths obtained from our survey, and other parameters from the wiki page. The configuration file is attached (fortymeters.mist).
Coming back to the main simulation, here is the result, both for the "regular" POP QPD and for a 22MHz demodulated one. The Gouy phase is measured starting from PR2. Cavity mirrors are easily decoupled from PRM in the "regular" QPD. As already demonstrated in a previous simulation, ETMs signals are very small in the 22 MHz QPD. Moreover, it is possible to zero the contribution from ITMs by choosing the right Gouy phase, at the price of a reduction of the PRM signal by a factor of 3-4. Simulation files are attached.
# Configuration file for full dual recycled 40m interferometer
# General parameters
const Pin 1 # input power
# Mirror parameters
const T_ITM 0.01384 # ITM transmission [from https://wiki-40m.ligo.caltech.edu/Core_Optics]
# Configuration file for full dual recycled 40m interferometer
# General parameters
const Pin 1 # input power
# Mirror parameters
const T_ITM 0.01384 # ITM transmission [from https://wiki-40m.ligo.caltech.edu/Core_Optics]
% compile and create simulation class
s = FortyMetersPOP_QPD(4);
% set angular motion of ITMs, ETMs and PRM
In brief, I trained a deep neural network (DNN) to recosntuct the cavity length, using as input only the transmitted power and the reflection PDH signals. The training was performed with simulated data, computed along 0.25s long trajectories sampled at 8kHz, with random ending point in the [-lambda/4, lambda/4] unique region and with random velocity.
The goal of thsi work is to validate the whole approach of length reconstruction witn DNN in the Fabry-Perot case, by comparing the DNN reconstruction with the ALS caivity lenght measurement. The final target is to deploy a system to lock PRMI and DRMI. Actually, the Fabry-Perot cavity problem is harder for a DNN: the cavity linewidth is quite narrow, forcing me to use very high sampling frequency (8kHz) to be able to capture a few samples at each resonance crossing. I'm using a recurrent neural network (RNN), in the input layers of the DNN, and this is traine using truncated backpropagation in time (TBPT): during training each layer of RNN is unrolled into as many copies as there are input time samples (8192 * 0.25 = 2048). So in practice I'm training a DNN with >2000 layers! The limit here is computational, mostly the GPU memory. That's why I'm not able to use longer data stretches.
But in brief, the DNN reconstruction is performing well for the first attempt.
In the results shown below, I'm using a pre-trained network with parameters that do not match very well the actual data, in particular for the distribution of mirror velocity and the sensing noises. I'm working on improving the training.
I used the following parameters for the Fabry-Perot cavity:
The uncertaint is assumed to be the 90% confidence level of a gaussian distribution. The DNN is trained on 100000 examples, each one a 0.25/8kHz long trajectory with random velocity between 0.1 and 5 um/s, and ending point distributed as follow: 33% uniform on the [-lambda/4, lambda/4] region, plus 33% gaussian distribution peaked at the center with 5 nm width. In addition there are 33% more static examples, distributed near the center.
For each point along the trajectory, the signals TRA, POX11_I and POX11_Q are computed and used as input to the DNN.
Gautam collected about 10 minutes of data with the free swinging cavity, with ALS locked on the arm. Some more data were collected with the cavity driven, to increase the motion. I used the driven dataset in the analysis below.
The ALS signal is calibrated in green Hz. After converting it to meters, I checked the calibration by measuring the distance between carrier peaks. It turned out that the ALS signal is undercalibrated by about 26%. After correcting for this, I found that there is a small non-linearity in the ALS response over multiple FSR. So I binned the ALS signal over the entire range and averaged the TRA power in each bin, to get the transmission signals as a function of ALS (in nm) below:
I used a peak detection algorithm to extract the carrier and 11 MHz sideband peaks, and compared them with the nominal positions. The difference between the expected and measured peak positions as a function of the ALS signal is shown below, with a quadratic fit that I used to improve the ALS calibration
The result is
The ALS calibrated z error from the peak position is of the order of 3 nm (one sigma)
Using the calibrated ALS signal, I computed the cavity length velocity. The histogram below shows that this is well described by a gaussian with width of about 3 um/s. In my DNN training I used a different velocity distribution, but this shouldn't have a big impact. I'm retraining with a different distirbution.
The plot below shows a stretch of time domain DNN reconstruction, compared with the ALS calibrated signal. The DNN output is limited in the [-lambda/4, lambda/4] region, so the ALS signal is also wrapped in the same region. In general the DNN reconstruction follows reasonably well the real motion, mostly failing when the velocity is small and the cavity is simultanously out of resonance. This is a limitation that i see also in simulation, and it is due to the short training time of 0.25s.
I did not hand-pick a good period, this is representative of the average performance. To get a better understanding of the performance, here's a histogram of the error for 100 seconds of data:
The central peak was fitted with a gaussian, just to give a rough idea of its width, although the tails are much wider. A more interesting plot is the hisrogram below of the reconstructed position as a function of the ALS position, Ideally one would expect a perfect diagonal. The result isn't too far from the expectation:
The largest off diagonal peak is at (-27, 125) and marked with the red cross. Its origin is more clear in the plot below, which shows the mean, RMS and maximum error as a function of the cavity length. The second peak corresponds to where the 55 MHz sideband resonate. In my training model, there were no 55 MHz sidebands nor higher order modes.
The DNN reconstruction performance is already quite good, considering that the DNN couldn't be trained optimally because of computation power limitations. This is a validation of the whole idea of training the DNN offline on a simulation and then deploy the system online.
I'm working to improve the results by
However I won't spend too much time on this, since I think the idea has been already validated.
I included the 55 MHz sideband and higher order modes in my training examples. To keep things simple, I just assumed there are higher order modes up to n+m=4 in the input beam. The power in each HOM is randomly chosen from a random gaussian distribution with width determined from experimental cavity scans. I used a value of 0.913+-0.01 rad for the Gouy phase (again estimated from cavity scans, but in reasonable agreement with the nominal radius of curvature of ETMX)
Results are improved. The plot belows show the performance of the neural network on 100s of experimental data
For reference, the plots below show the performance of the same network on simulated data (that includes sensing noise but no higher order modes)
I trained a deep neural network (DNN) to reconstruct MICH and PRCL degrees of freedom in the PRMI configuration. For details on the DNN architecture please refer to G1701455 or G1701589. Or if you really want all the details you can look at the code. I used the following signals as input to the DNN: POPDC, POP22_Q, ASDC, REFL11_I/Q, REFL55_I/Q, AS55_I/Q.
Gautam took some PRMI data in free swinging and driven configuration:
In contrast to the Fabry-Perot cavity case, we don't have a direct measurement of the real PRCL/MICH degrees of freedom, so it's more difficult to assess if the DNN is working well.
All MICH and PRCL values are wrapped into the unique region [-lambda/4, lambda/4]^2. It's even a bit more complicated than simpling wrapping. Indeed, MICH is periodic over [-lambda/2, lambda/2]. However, the Michelson interferometer reflectivity (as seen from PRC) in the first half of the segment is the same as in the second half, except for a change in sign. This change of sign in Michelson reflectivity can be compensated by moving PRCL by lambda/4, thus generating a pi phase shift in the PRC round trip propagation that compensate for the MICH sign change. Therefore, the unit cell of unique values for all signals can be taken as [-lambda/4, lambda/4] x [-lambda/4, lambda/4] for MICH x PRCL. But when we hit the border of the MICH region, PRCL is also affected by addtion of lambda/4. Graphically, the square regions A B C below are all equivalent, as well as more that are not highlighted:
This makes it a bit hard to un-wrap the resonstructed signal, especially when you add in the factor that in the reconstruction the wrapping is "soft".
The plot below shows an example of the time domain reconstruction of MICH/PRCL during the free swinging period.
It's hard to tell if the positions look reasonable, with all the wrapping going on.
Here's an attempt at validating the DNN reconstruction. Using the reconstructed MICH/PRCL signal, I can create a 2d map of the values of the optical signals. I binned the reconstructed MICH/PRCL in a 51x51 grid, and computed the mean value of all optical signals for each bin. The result is shown in the plot below, directly compared with the expectation from a simulation.
The power signals (POP_DC, AS_DC, PO22_Q) looks reasonably good. REFL11_I/Q also looks good (please note that due to an early mistake in my code, I reversed the convention for I/Q, so PRCL signal is maximized in Q instead than in I). The 55MHz signals look a bit less clear...
This is an update on the results already presented earlier (refer to elog 13274 for more introductory details). I improved significantly the results with the following tricks:
An example of time domain reconstruction is visible below. It already looks better than the old results:
As before, to better evaluate the performance I plotted averaged values of the real signals as a function of the reconstructed MICH and PRCL positions. The results are compared with simulation below. They match quite well (left real data, right simualtion expectation)
One thing to better understand is that MICH seems to be somewhat compressed: most of the output values are between -100 and +100 nm, instead of the expected -lambda/4, lambda/4. The reason is still unclear to me. It might be a bug that I haven't been able to track down yet.
This is an update of my previous reports on applications of deep learning to the reconstruction of PRMI degrees of freedom (MICH/PRCL) from real free swinging data. The results shown here are improved with respect to elog 13274 and 13294. The training is performed in two steps, the first one using simulated data, and the second one fine tuning the parameters on real data.
This step is exactly the same already described in the previous entries and in my talks at the CSWG and LVC. For details on the DNN architecture please refer to G1701455 or G1701589. Or if you really want all the details you can look at the code. I used the following signals as input to the DNN: POPDC, POP22_Q, ASDC, REFL11_I/Q, REFL55_I/Q, AS55_I/Q. The network is trained using linear trajectories in the PRCL/MICH space, and signals obtained from a model that simulates the PRMI behavior in the plane wave approximation. A total of 150000 trajectories are used. The model includes uncertainties in all the optical parameters of the 40m PRMI configuration, so that the optical signals for each trajectory are actually computed using random optical parameteres, drwn from gaussian distributions with proper mean and width. Also, white random gaussian sensing noise is added to all signals with levels comparable to the measured sensing noise.
The typical performance on real data of a network pre-trained in this way was already described in elog 13274, and although being reasoble, it was not too good.
Real free swinging data is used in this step. I fine tuned the demodulation phases of the real signals. Please note that due to an old mistake, my convention for phases is 90 degrees off, so for example REFL11 is tuned such that PRCL is maximized in Q instead of I. Regardless of this convention confusion, here's how I tuned the phases:
Then I built the following training architecture. The neural network takes the real signals and produces estimates of PRCL and MICH for each time sample. Those estimates are used as the input for the PRMI model, to produce the corresponding simulated optical signals. My cost function is the squared difference of the simulated versus real signals. The training data is generated from the real signals, by selection 100000 random 0.25s long chunks: the history of real signal over the whole 0.25s is used as input, and only the last sample is used for the cost function computation. The weights and biases of the neural network, as well as the model parameters are allowed to change during the learning process. The model parameters are regularized to suppress large deviations from the nominal values.
One side note here. At first sight it might seems weird that I'm actually fedding as input the last sample and at the same time using it as the reference for the loss function. However, you have to remember that there is no "direct" path from input to output: instead all goes through the estimated MICH/PRCL degrees of freedom, and the optical model. So this actually forces the network to tune the reconstruction to the model. This approach is very similar to the auto-encoder architectures used in unsupervised feature learning in image recognition.
After trainng the network with the two previous steps, I can produce time domain plots like the one below, which show MICH and PRCL signals behaving reasonably well:
To get a feeling of how good the reconstruction is, I produced the 2d maps shown below. I divided the MICH/PRCL plane in 51x51 bins, and averaged the real optical signals with binning determined by the reconstructed MICH and PRCL degrees of freedom. For comparison the expected simulation results are shown. I would say that reconstructed and simulated results match quite well. It looks like MICH reconstruction is still a bit "compressed", but this should not be a big issue, since it should still work for lock acquisition.
There a few things that can be done to futher tune the network. Those are mostly details, and I don't expect significant improvements. However, I think the results are good enough to move on to the next step, which is the on-line implementation of the neural network in the real time system.
We'll need to set the phase rotation of the demodulated RF PD signals (REFL11, REFL55, AS55, POP22) to match them with what the NN expects...
Here are the demodulation phases and rotation matrices tuned for the network. For the matrices, I am assuming that the input is [I, Q] and the output is [I,Q].
phi = 153 degrees
phi = 93 degrees
phi = -90 degrees
phi = 7 degrees
We discovered that the analog whitening filter of the REFL55_I board is not switching when we operate the button on the user interface. We checked with the Stanford analyzer that the transfer function always correspond to the whitening on.
The digital one is actually switching. We decided to keep the digital de-whitening on to compensate for the analog one. Otherwise we get a very bad shape of the PDH signal. Sorry Rana...
I forgot to say that the analog gain of the REFL55 channels has been reduced to 9db
The ITMx Oplev was misaligned. Switched the ITMx Oplev back on and fixed the alignment.
EDIT, JCD: This is totally my fault, sorry. I turned it off the other day when I was working on the POP layout, and forgot to turn the laser back on. Also, I moved the fork on the lens directly in front of the laser (in order to accommodate one of the G&H mirrors), and I nudged that lens a bit, in both X and Y directions (although very minimally along the beam path). Anyhow, bad Jenne for forgetting to elog this part of my work.
There were 4 cables running over the front side of rack 1Y4 such that the front door could not be closed. I re-routed them (one at a time) through the opening on the top of the rack. The concerned channels were
Before and after pics attached.
Seems that the GPS is out of sync on donatella. We could not get any data from diaggui...
In order to switch on the angular alignment for the IMC mirrors, we needed to center the laser onto the quad-photodiodes at the IMC and the AS Table(WFS1 and WFS2)
I and Gautam went to the IMC table and did the dc centering for the quad-photodiode by varying the beamsplitter angles. After this, we turned the WFS loops off and performed beam centering for the Quad PDs at the AS Table, the WFS1 and WFS2.
Once we had the beam approximately centered for all of the above 3 PDs, we turned on the locking for IMC, and it seems to work just fine. We are waiting for another hour for switching on the angular allignment for the mirrors to make sure the alignment holds with WFS turned off.
Measuring POX11_Q_MON and injecting a signal into the ITMX_UL_IN port a signal could not be seen on the function generator. After debugging the source of the issue was two fold:
Unrelated to these issues the signal input was switched to POY11_Q_MON and ITMY_POS_IN as part of the debugging process. The function generator used was switched from the Stanford to the Siglant SDG 1032X.
An unrelated issue but note worthy was the Lenovo 40m laptop used to measure the IFO state (locked or unlocked) ran out of battery in a very short timespan.
To gauge where the resonance of the test masses are FEA model of a simple 40m test mass was computed to give an esitimate at what frequency the eigenmodes exist. For the first two modes the model gave resonances at 20.366 kHz (butterfly mode) and 28.820 kHz (drumhead mode). Then by measuring with an acquisition time of 1 s at they frequencies on the SR785 and injecting broad band white noise with a mean of 0 V and a stdev of 2 V, small peaks were seen above the noise at 20.260 kHz and 28.846 kHz. By then injecting a sine wave at those frequencies with 9 Vpp, the peak became clearly visible above the noise floor.
The last step is to measure the natural decay of these modes when the excitation is turned off. It is difficult to tell currently if these are indeed eigenmodes or just large cavity injections with an associated stabilisation time (what could appear as a ringdown decay). More investigation is required.
As the resonant modes of the 40m TMs are at high frequencies (starting at 28.8 kHz) we started background checks to understand if we would be able to see resonant frequency excitations in the DCPD output. We used the SR785 in the Q_OUT_DEMODULATOR port of the INPUT_MODE_CLEANER to measure around this frequency. Currently we could not see any natural excitation about the noise floor indicating it may not be possible to see such a small excitation. In any case we are conducting additional measurements in the I_MON port of 1Y2_POY11 to understand if this is a certainty.
Summary of This Week's Activities:
6/16: LIGO Orientation; First Weekly Meeting; 40m tour with Jenne; Removed WFS Box Upper Panel, Inserted Cable, Reinstalled panel
6/17: Read Chapter 1 of Control Systems Book; LIGO Safety Meeting; Koji's Talk about PDH Techniques, Fabry-Perot Cavities, and Sensing/Control; Meeting w/ Nancy and Koji
6/18: LIGO Talk Part II; Glossed over "LASERS" book; Read Control Systems Book Chapter 2; Literary Discussion Circle
6/21: Modecleaner Matrix Discussion with Nancy; Suggested Strategy: construct row-by-row with perturbations to each d.f. --> Leads to some questions on how to experimentally do this.
6/22: Learned Simulink; Learned some Terminal from Joe and Jenne; LIGO Meeting; Rana's Talk; Christian's Talk; Simulink Intro Tutorial
6/23 (morning): Simulink Controls Tutorial; Successfully got a preliminary feedback loop working (hooray for small accomplishments!)
Outlook for the Upcoming Week:
Tutorials (in order of priority): Finish Simulink Tutorials, Work through COMSOL Tutorials
Reading (in order of priority): Jenne's SURF Paper, Controls Book, COMSOL documentation, Lasers by Siegman.
Work: Primarily COMSOL-related and pre-discussed with Rana
Summary of this Week's Activities:
6/30: 2nd and 3rd drafts of Progress Report
7/1: 4th draft and final drafts of Progress Report; submitted to SFP
7/5: Began working through busbar COMSOL example
7/6: LIGO meeting and lecture; meeting with Koji and Steve to find drawing of stacks; read through Giaime's thesis, Chapter 2 as well as two other relevant papers.
7/7: Continued working on busbar in COMSOL; should finish this as well as get good headway on stack design by the end of the day.
Single layer of stack successfully modeled in COMSOL. I'm working on trying to add Viton springs now and extend it to a full stack. Having some difficulty with finding consistent parameters to work with.
determine the mirror stack transfer function which relates mechanical mirror response to a given ground-motion drive. The idea is to model the stacks in COMSOL and ultimately apply mechanical tests for manual calculation.
Procuring the correct drawings to base my 3D models off of was no simple task. There are two binders full of a random assortment of drawings, and some of them are associated with the smaller chambers, while others are appropriate for the main chamber, which is what we're interested in right now. For future workers, I suggest checking that your drawings are appropriate for the task at hand with other people before wasting time beginning the painstaking process of CAD design in COMSOL.
The drawings that I ultimately decided to use are attached below. They detail four layers of stacks, each which arrange 15, 12, 8, and 5 (going from bottom to top) Viton damping springs in an orderly fashion. The numbers have been chosen to keep the load per spring as constant as possible, in order for all springs to oscillate with as close a resonant frequency to each other as possible.
After making some minor simplifications, I have finished modeling the top stack:
After triangular meshing, before my many failed attempts at mechanical testing:
Both the Viton and steel portions have been given their material properties, and so I should be (theoretically ) ready to perform some eigenfrequency calculations on this simplified system. If my predictions are correct, these eigenfrequencies shouldn’t be too far of the eigenfrequencies of the 4-layer stacked system, because of the layout of the springs. I’ve tried doing mechanical tests on the top stack alone, but there hasn’t been much progress yet on this end, mostly because of some boundary value exceptions that COMSOL keeps throwing at me.
In the next couple weeks or so, I plan to extend this model to combine all four layers into one completed stack, along with a simple steel base and mirror platform. I also plan to figure out how to make eigenfrequency and transfer function measurements.
Lastly, to anyone who is experienced with COMSOL, I am facing two major roadblocks and could really use your help:
1) How to import one model into another, merge models together, or copy and paste the same model over and over.
2) Understanding and debugging run-time errors during mechanical testing.
If you have any idea how to attack either of these issues, please talk to me! Thanks!
Eigenfrequency analysis has been successfully completed in COMSOL on both a tutorial camshaft, as well as a homemade metal bar.
Upon increasing in complexity to the busbar, I once again began getting into run time errors and increased lag. It seems that this is due to undefined eigenvalues when solving the linear matrices. I tried many boundary values as well as initial conditions in case this was the issue, but it was not. There seems to be some sort of an internal inconsistency. This is no longer a matter of tweaking parameters.
1) Try using the same techniques on the actual mirror stacks to see if we get lucky.
2) In the likely case that this doesn't happen, continue the debugging process. If necessary, a good deal of time may need to be spent learning the COMSOL lower-level jargon.
Viton flouroelastomers have somewhat variable material properties. The following parameters are being used for eigenfrequency analysis.
Young's Modulus: 72,500-87,000 psi (cite: http://www.row-inc.com/pfa.html) *Accurate for PFAs
Poisson's Ratio: 0.48-0.50 (cite: http://www.engineeringtoolbox.com/poissons-ratio-d_1224.html) *Accurate for rubber
Density: 1800 kg/m^3 (cite: http://physics.nist.gov/cgi-bin/Star/compos.pl?matno=275)
Via reconfiguration of Viton parameters (previously posted), I managed to debug the COMSOL run time errors and null pointer exceptions. Listed are the resultant eigenfrequencies obtained through structural analysis testing. For all tests, the bottom of the Viton springs are constrained from motion, and all other parts are free to oscillate. Notice that color variations signify displacement from the equilibrium position. Also note that different initial conditions produce different eigenmodes:
No initial displacement:
0.01 m x-displacement:
0.01 m y-displacement:
0.01 m z-displacement:
Clearly, the plate has its first harmonic between 210-215 Hz, which is much greater than seismic noises (which never exceed the 10-Hz range). This suggests a highly attenuating transfer function. Since the remaining three plates have been designed to resonate similarly, it is likely that the entire stack system will also function very well.
1) Extend the eigenfrequency analysis to obtain a transfer function for the single-plate system
2) Expand the CAD model to include all four stack layers, and perhaps a base
The Young's Modulus for PFA turned out to be orders of magnitude greater than for Viton. The revised values produced much more accurate results:
Young's Modulus for Viton-75: 1950 psi or 6.6 MPa
(Courtesy Row, Inc. and Steve Vass)
This website contains other details: http://www.row-inc.com/viton.html
My previous eigenfrequency analysis was incorrect by two orders of magnitude due to the misuse of Young's Modulus information for Viton. After editing this parameter (as documented on 7/14 19:00), the eigenmodes became much more reasonable. I also discovered the Deformation option under the Surface Plotting Options, which makes the eigenmodes of the single stack much more apparant.
Attached are pictures of the first four eigenmodes:
First Eigenmode: y-translational, 7.49 Hz
Second Eigenmode: x-translational, 7.55 Hz
Third Eigenmode: z-rotational, 8.63 Hz
Fourth Eigenmode: z-translational, 18.26 Hz
I experimentally determined the spring constant of a single Vitol spring in order to obtain a rough estimate for the natural frequency of single-stack oscillation.
The procedure basically involved stacking metal bars of known mass onto the Vitol and using a caliper to measure deviations from the equilibrium length.
The plot below shows that, for small compressions, the response is linear to an R-squared of 0.98.
The experimental spring constant came out to be about 270 lb/ft, or 3900 N/m.
Previous documents have listed that the top stack takes on a load of approximately 43 kg. per individual spring. A bit of calculation yields an experimental resonant frequency of 9.5 Hz.
Compared with the theoretical COMSOL first harmonic of about 7.5 Hz, there is a reasonable amount of error. Of course, I used this calculation as a simple ballpark estimate: errors from misplacement onto the Viton were minimized through use of a level, but were still inevitable on the mm scale. Since the two methods yield answers with the same order of magnitude, we are ready to move forward and build the remaining layers of the stack.
Expanding on the single-layer model, I added the second, third, and fourth layers to the stack in COMSOL. Eigenfrequency analysis run times increased exponentially as the model multiplied in complexity. The following images document the some of the important eigenfrequencies:
First Eigenmode: y-translational, 3.34 Hz:
Second Eigenmode: x-translational, 3.39 Hz:
Third Eigenmode: z-rotational, 3.88 Hz:
Sixth Eigenmode: z-translational, 8.55 Hz:
As expected, the eigenfrequencies are generally lower, but still in the same range, as the single-layer model, because of greater mass but constant weight-per-spring distribution.
1) Extend a single stack to the full stack system, which consists of three stacks like this. Perform similar eigenmode analysis.
2) Analyze the mirror suspension system and incorporate a similar pendulum on the top plate.
3) Make transfer function measurements between seismic and mirror motions.
Some clarification is warranted regarding the different shapes of stacks. Corrections are appreciated:
1) The single-leg stack that I just completed should function as a working model for the IO, OO, and MC1/3. Rana commented, however, that the current dimensions are slightly off for MC1/3 (which makes sense since I could only find drawings for the IOC). If anyone knows the whereabouts of similar drawings for MC1/3, I'd much appreciate it.
2) A triple-leg stack can model the BS, ITMX, and ITMY chambers. I don't have exact dimensions for these, but I can make decent approximations from to-scale stack drawings. I'll probably work on a model for this style next, since at least I have some information regarding this version.
3) The MC2 chamber has its own stack model, about which I haven't found any drawings in the binders. I can't start on MC2C at all until I find such drawings.
Summary of this week's activities:
7/14: Analytical calculation of Viton spring constant; updated Viton values in models; experimental confirmation of COMSOL eigenfrequencies (single stack layer)
7/15: Extensions to 2-, 3-, and 4-layer stack legs. Eigenfrequency characterizations performed for each level. Meshing issues with 4-layer stack prevented completion.
7/19: Debugged the 4-layer stack. Turned out to be a boundary condition issue because of non-sequential work-plane definitions. Successful characterization of single-leg eigenfrequencies.
7/20: Prototype three-legged stack completed, but dimensions are incorrect. Read Sievers paper for details of triple-legged stack. Sorted through many stack design binders in efforts to distinguish IOC/OOC, BSC/ITMX/ITMY, MC1/MC3, and MC2 dimensions.
7/21: Researched frequency domain analysis testing in COMSOL. Attempting to first find transfer function of a single-layer stack --> currently running into some run-time errors that will need some more debugging in the afternoon.
Now that venting is complete, this is a request for anyone who opens any chamber:
1) Please notify me immediately so I can take pictures of the stacks in that chamber.
2) If I'm not around, please take a few pictures for me. I'm most interested in the shape, number of layers, size, and damper arrangements of each stack.
This is most important for the MC1/MC3 chamber, MC2 chamber, and BS/ITMX/ITMY chambers.
Over the past couple days, I discovered a simple, direct method for calculating frequency responses with a combination of COMSOL and any plotter such as Excel or MatLab. The simple case of rectangular prism of steel was analyzed using this method; details will be posted shortly on the COMSOL Wiki page. The frequency response matched theoretical reasoning: the bar acts as a simple mechanical low-pass filter, rapidly attenuating driving frequencies at the base beyond the first eigenmode.
It therefore shouldn't be too difficult to extend this analysis to the MC1/MC3 stack. The many eigenfrequencies will produce a more complicated transfer function, and so more data points will be taken.
The major shortcoming of this method involves dealing with the imaginary components of the eigenfrequencies. As of now, I haven't found a way of measuring the phase lag between the drive and the response. I also haven't found a way of changing the damping constants and therefore playing with phase components.
The attached pictures give a brief overview of my transfer function measurement procedure in COMSOL. For more details, please see the Wiki.
I have successfully completed a preliminary transfer function measurement test on the MC1/MC3 stack in COMSOL. Using the measurement scheme described on the Wiki, I initialized a 1 N/m^2 sinusoidal perturbation on the bottom of the stack and measured the maximum displacement of the top layer. This preliminary test just calculated the responses to 1-,2-,3-,4-, and 5-Hz drives along the x-axis (pictures attached).
Currently, I am rerunning the same test but from 1-10 Hz with 0.1-Hz steps. When both x- and y-axis responses have been plotted, I can move on to repeating this entire process on the MC2 stack.