40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log  Not logged in ELOG logo
Entry  Fri Jan 24 12:44:25 2014, Gabriele, HowTo, LSC, Procedure to measure PRC length 8x
    Reply  Fri Jan 24 13:10:12 2014, Jamie, HowTo, LSC, Procedure to measure PRC length path.pdf
       Reply  Sat Jan 25 21:09:16 2014, gabriele, HowTo, LSC, Procedure to measure PRC length 
Message ID: 9573     Entry time: Fri Jan 24 12:44:25 2014     Reply to this: 9574
Author: Gabriele 
Type: HowTo 
Category: LSC 
Subject: Procedure to measure PRC length 

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. 

Attachment 2: survey_v2.m  7 kB  | Hide | Hide all
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;
... 210 more lines ...
Attachment 3: distance.m  64 Bytes  | Hide | Hide all
function d = distance(c1, c2)
    d = sqrt(sum((c1-c2).^2));
Attachment 4: draw_beam.m  102 Bytes  | Hide | Hide all
function draw_beam(c1, c2, color)
    plot( [c1(1), c2(1)], [c1(2), c2(2)], color, 'LineWidth', 2)
Attachment 5: draw_measurement.m  258 Bytes  | Hide | Hide all
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', ...
         'VerticalAlignment', 'middle')
Attachment 6: draw_point.m  87 Bytes  | Hide | Hide all
function draw_point(c)
    plot(c(1), c(2), 'go', 'LineWidth', 2, 'MarkerSize', 3);
Attachment 7: draw_sos.m  866 Bytes  | Hide | Hide all
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;
... 18 more lines ...
Attachment 8: draw_tt.m  842 Bytes  | Hide | Hide all
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;
... 18 more lines ...
ELOG V3.1.3-