diff --git a/css/custom.css b/css/custom.css new file mode 100644 index 0000000..00e7250 --- /dev/null +++ b/css/custom.css @@ -0,0 +1,14 @@ +.figure p{ + text-align: center; +} + +.figure img{ + max-width:100%; + display: block; + margin: auto; +} + +table { + margin-left: auto; + margin-right: auto; +} diff --git a/css/readtheorg.css b/css/readtheorg.css index 1690bd0..423a707 100644 --- a/css/readtheorg.css +++ b/css/readtheorg.css @@ -513,7 +513,7 @@ legend{ padding:0; white-space:normal} -.fa:before,#content .admonition-title:before,#content h1 .headerlink:before,#content h2 .headerlink:before,#content h3 .headerlink:before,#content h4 .headerlink:before,#content h5 .headerlink:before,#content h6 .headerlink:before,#content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,#content .note,#content .attention,#content .caution,#content .danger,#content .error,#content .hint,#content .important,#content .tip,#content .warning,#content .seealso,#content .admonitiontodo,.btn,input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"],select,textarea,#table-of-contents li.on a,#table-of-contents li.current>a,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{ +.fa:before,#content .admonition-title:before,#content h1 .headerlink:before,#content h2 .headerlink:before,#content h3 .headerlink:before,#content h4 .headerlink:before,#content h5 .headerlink:before,#content h6 .headerlink:before,#content dl dt .headerlink:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,#content .note,#content .attention,#content .caution,#content .danger,#content .error,#content .summary,#content .hint,#content .important,#content .tip,#content .warning,#content .question,#content .seealso,#content .admonitiontodo,.btn,input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"],select,textarea,#table-of-contents li.on a,#table-of-contents li.current>a,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{ -webkit-font-smoothing:antialiased} /*! @@ -576,7 +576,7 @@ a .fa,a #content .admonition-title,#content a .admonition-title{ .nav #content .admonition-title,#content .nav .admonition-title,.nav .icon{ display:inline} -.wy-alert,#content .note,#content .attention,#content .caution,#content .danger,#content .error,#content .hint,#content .important,#content .tip,#content .warning,#content .seealso,#content .admonitiontodo{ +.wy-alert,#content .note,#content .attention,#content .caution,#content .danger,#content .error,#content .summary,#content .hint,#content .important,#content .tip,#content .warning,#content .question,#content .seealso,#content .admonitiontodo{ padding:12px; line-height:24px; margin-bottom:24px; @@ -596,32 +596,45 @@ a .fa,a #content .admonition-title,#content a .admonition-title{ #content .danger,#content .error{ background:#fdf3f2} -.wy-alert.wy-alert-warning,#content .wy-alert-warning.note,#content .attention,#content .caution,#content .wy-alert-warning.danger,#content .wy-alert-warning.error,#content .wy-alert-warning.hint,#content .wy-alert-warning.important,#content .wy-alert-warning.tip,#content .warning,#content .wy-alert-warning.seealso,#content .admonitiontodo{ +.wy-alert.wy-alert-warning,#content .wy-alert-warning.note,#content .attention,#content .caution,#content .wy-alert-warning.danger,#content .wy-alert-warning.error,#content .wy-alert-warning.summary,#content .wy-alert-warning.hint,#content .wy-alert-warning.important,#content .wy-alert-warning.tip,#content .warning,#content .wy-alert-warning.seealso,#content .admonitiontodo{ background:#ffedcc} -#content .admonition-title.note:before, #content .admonition-title.seealso:before, -#content .admonition-title.warning:before, #content .admonition-title.caution:before, +#content .admonition-title.warning:before, +#content .admonition-title.caution:before, #content .admonition-title.attention:before, -#content .admonition-title.tip:before, #content .admonition-title.hint:before, #content .admonition-title.important:before, -#content .admonition-title.error:before, #content .admonition-title.danger:before{ +#content .admonition-title.error:before, +#content .admonition-title.danger:before{ font-family:FontAwesome; content: "";} -#content .note,#content .seealso{ +#content .admonition-title.question:before{ + font-family:FontAwesome; + content: "";} + +#content .admonition-title.note:before, +#content .admonition-title.seealso:before, +#content .admonition-title.tip:before, +#content .admonition-title.summary:before, +#content .admonition-title.hint:before{ + font-family:FontAwesome; + content: "";} + + +#content .note,#content .question,#content .seealso{ background:#e7f2fa} -.wy-alert p:last-child,#content .note p:last-child,#content .attention p:last-child,#content .caution p:last-child,#content .danger p:last-child,#content .error p:last-child,#content .hint p:last-child,#content .important p:last-child,#content .tip p:last-child,#content .warning p:last-child,#content .seealso p:last-child,#content .admonitiontodo p:last-child{ +.wy-alert p:last-child,#content .note p:last-child,#content .attention p:last-child,#content .caution p:last-child,#content .danger p:last-child,#content .error p:last-child,#content .summary p:last-child,#content .hint p:last-child,#content .important p:last-child,#content .tip p:last-child,#content .warning p:last-child,#content .question p:last-child,#content .seealso p:last-child,#content .admonitiontodo p:last-child{ margin-bottom:0} -#content .admonition-title.tip,#content .admonition-title.important,#content .admonition-title.hint{ +#content .admonition-title.tip,#content .admonition-title.important,#content .admonition-title.summary,#content .admonition-title.hint{ line-height: 1; background:#1abc9c} -#content .important,#content .tip,#content .hint{ +#content .important,#content .tip,#content .summary,#content .hint{ background:#dbfaf4} -#content .admonition-title.note,#content .admonition-title.seealso{ +#content .admonition-title.note,#content .admonition-title.question,#content .admonition-title.seealso{ line-height: 1; background:#6ab0de} @@ -938,7 +951,7 @@ footer p{ font-style:italic; } -#content .note .last,#content .attention .last,#content .caution .last,#content .danger .last,#content .error .last,#content .hint .last,#content .important .last,#content .tip .last,#content .warning .last,#content .seealso .last,#content .admonitiontodo .last{ +#content .note .last,#content .attention .last,#content .caution .last,#content .danger .last,#content .error .last,#content .hint .summary,#content .hint .last,#content .important .last,#content .tip .last,#content .warning .last,#content .question .last,#content .seealso .last,#content .admonitiontodo .last{ margin-bottom:0} #content .admonition-title:before{ diff --git a/figs/exp_setup_schematic.pdf b/figs/exp_setup_schematic.pdf new file mode 100644 index 0000000..12828c6 Binary files /dev/null and b/figs/exp_setup_schematic.pdf differ diff --git a/figs/exp_setup_schematic.png b/figs/exp_setup_schematic.png new file mode 100644 index 0000000..f43a013 Binary files /dev/null and b/figs/exp_setup_schematic.png differ diff --git a/figs/exp_setup_schematic.svg b/figs/exp_setup_schematic.svg new file mode 100644 index 0000000..aec6114 --- /dev/null +++ b/figs/exp_setup_schematic.svg @@ -0,0 +1,3663 @@ + + diff --git a/figs/int_enc_error_mean_position.pdf b/figs/int_enc_error_mean_position.pdf new file mode 100644 index 0000000..60634e2 Binary files /dev/null and b/figs/int_enc_error_mean_position.pdf differ diff --git a/figs/int_enc_error_mean_position.png b/figs/int_enc_error_mean_position.png new file mode 100644 index 0000000..241d5fe Binary files /dev/null and b/figs/int_enc_error_mean_position.png differ diff --git a/figs/int_enc_error_mean_time.png b/figs/int_enc_error_mean_time.png new file mode 100644 index 0000000..b78c5ec Binary files /dev/null and b/figs/int_enc_error_mean_time.png differ diff --git a/figs/int_enc_one_cycle.pdf b/figs/int_enc_one_cycle.pdf new file mode 100644 index 0000000..67ef09c Binary files /dev/null and b/figs/int_enc_one_cycle.pdf differ diff --git a/figs/int_enc_one_cycle.png b/figs/int_enc_one_cycle.png new file mode 100644 index 0000000..472478a Binary files /dev/null and b/figs/int_enc_one_cycle.png differ diff --git a/figs/int_enc_one_cycle_error.pdf b/figs/int_enc_one_cycle_error.pdf new file mode 100644 index 0000000..d8be1e4 Binary files /dev/null and b/figs/int_enc_one_cycle_error.pdf differ diff --git a/figs/int_enc_one_cycle_error.png b/figs/int_enc_one_cycle_error.png new file mode 100644 index 0000000..121d895 Binary files /dev/null and b/figs/int_enc_one_cycle_error.png differ diff --git a/figs/int_non_linearity_period_wavelength.pdf b/figs/int_non_linearity_period_wavelength.pdf new file mode 100644 index 0000000..bb90034 Binary files /dev/null and b/figs/int_non_linearity_period_wavelength.pdf differ diff --git a/figs/int_non_linearity_period_wavelength.png b/figs/int_non_linearity_period_wavelength.png new file mode 100644 index 0000000..1f532ea Binary files /dev/null and b/figs/int_non_linearity_period_wavelength.png differ diff --git a/figs/test-bench-schematic.pdf b/figs/test-bench-schematic.pdf new file mode 100644 index 0000000..84bed85 Binary files /dev/null and b/figs/test-bench-schematic.pdf differ diff --git a/figs/test-bench-shematic.png b/figs/test-bench-schematic.png similarity index 100% rename from figs/test-bench-shematic.png rename to figs/test-bench-schematic.png diff --git a/figs/test-bench-shematic.svg b/figs/test-bench-schematic.svg similarity index 100% rename from figs/test-bench-shematic.svg rename to figs/test-bench-schematic.svg diff --git a/index.html b/index.html index 47c7508..609d8a9 100644 --- a/index.html +++ b/index.html @@ -3,14 +3,14 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- ++
Figure 1: Test Bench Schematic
Figure 2: Picture of the test bench. The Attocube and mirror are covered by a “bubble sheet”
The first measurement was made during ~17 hours with a sampling time of \(T_s = 0.1\,s\). @@ -86,14 +94,14 @@ Ts = 0.1; % [s]
Figure 3: Long measurement time domain data
-Let’s fit the data with a step response to a first order low pass filter (Figure 4). +Let’s fit the data with a step response to a first order low pass filter (Figure 4).
Figure 4: Fit of the measurement data with a step response of a first order low pass filter
-We can see in Figure 3 that there is a transient period where the measured displacement experiences some drifts.
+We can see in Figure 3 that there is a transient period where the measured displacement experiences some drifts.
This is probably due to thermal effects.
We only select the data between t1
and t2
.
-The obtained displacement is shown in Figure 5.
+The obtained displacement is shown in Figure 5.
Figure 5: Kept data (removed slow drifts during the first hours)
@@ -176,8 +184,8 @@ f_1 = f_1(f_1 < 2);An second measurement is done in order to estimate the high frequency noise of the interferometer. @@ -196,11 +204,11 @@ Ts = 1e-4; % [s]
-The time domain measurement is shown in Figure 6. +The time domain measurement is shown in Figure 6.
-
Figure 6: Time domain measurement with the high sampling rate
@@ -217,15 +225,15 @@ The Power Spectral Density of the measured displacement is computed-The computed ASD of the two measurements are combined in Figure 7. +The computed ASD of the two measurements are combined in Figure 7.
-
Figure 7: Obtained Amplitude Spectral Density of the measured displacement
@@ -234,19 +242,19 @@ The computed ASD of the two measurements are combined in Figure -
Figure 8: Aluminium tube used to protect the beam path from disturbances
load('./mat/short_test_plastic.mat'); @@ -267,8 +275,8 @@ Ts = 1e-4; % [s]
load('./mat/short_test_alu_tube.mat'); @@ -282,7 +290,7 @@ Ts = 1e-4; % [s]
-The time domain measurement is shown in Figure 6. +The time domain measurement is shown in Figure 6.
win = hann(ceil(length(x)/10)); @@ -292,8 +300,8 @@ The time domain measurement is shown in Figure 6.
load('./mat/short_test_without_material.mat'); @@ -307,7 +315,7 @@ Ts = 1e-4; % [s]
-The time domain measurement is shown in Figure 6. +The time domain measurement is shown in Figure 6.
win = hann(ceil(length(x)/10)); @@ -317,11 +325,11 @@ The time domain measurement is shown in Figure 6.
Figure 9: Comparison of the noise ASD with and without bubble sheet
@@ -329,10 +337,183 @@ The time domain measurement is shown in Figure 6.+The measurement setup is shown in Figure 10. +
+ + ++
+Figure 10: Schematic of the Experiment
++A DAC and voltage amplified are used to move the mass with the Amplified Piezoelectric Actuator (APA95ML). +The encoder and the attocube are measure ring the same motion. +
+ ++As will be shown shortly, this measurement permitted to measure the period non-linearity of the Attocube. +
+
+The measurement data are loaded and the offset are removed using the detrend
command.
+
load('mat/int_enc_comp.mat', 'interferometer', 'encoder', 'u', 't'); +Ts = 1e-4; % Sampling Time [s] ++
interferometer = detrend(interferometer, 0); +encoder = detrend(encoder, 0); +u = detrend(u, 0); ++
+One period of the displacement of the mass as measured by the encoder and interferometer are shown in Figure 11. +It consist of the sinusoidal motion at 0.5Hz with an amplitude of approximately \(70\mu m\). +
+ ++The frequency of the motion is chosen such that no resonance in the system is excited. +This should improve the coherence between the measurements made by the encoder and interferometer. +
+ + ++
+Figure 11: One cycle measurement
++The difference between the two measurements during the same period is shown in Figure 12. +
+ + ++
+Figure 12: Difference between the Encoder and the interferometer during one cycle
++The data is filtered using a second order low pass filter with a cut-off frequency \(\omega_0\) as defined below. +
+ +w0 = 2*pi*5; % [rad/s] +xi = 0.7; + +G_lpf = 1/(1 + 2*xi/w0*s + s^2/w0^2); ++
+After filtering, the data is “re-shaped” such that we can superimpose all the measured periods as shown in Figure 13. +This gives an idea of the measurement error as given by the Attocube during a \(70 \mu m\) motion. +
+d_err_mean = reshape(lsim(G_lpf, encoder - interferometer, t), [2/Ts floor(Ts/2*length(encoder))]); +d_err_mean = d_err_mean - mean(d_err_mean); ++
+
+Figure 13: Difference between the two measurement in the time domain, averaged for all the cycles
++Figure 13 gives the measurement error as a function of time. +We here wish the compute this measurement error as a function of the position (as measured by the encoer). +
+ ++To do so, all the attocube measurements corresponding to each position measured by the Encoder (resolution of \(1nm\)) are averaged. +Figure 14 is obtained where we clearly see an error with a period comparable to the motion range and a much smaller period corresponding to the non-linear period errors that we wish the estimate. +
+[e_sorted, ~, e_ind] = unique(encoder); + +i_mean = zeros(length(e_sorted), 1); +for i = 1:length(e_sorted) + i_mean(i) = mean(interferometer(e_ind == i)); +end + +i_mean_error = (i_mean - e_sorted); ++
+
+Figure 14: Difference between the two measurement as a function of the measured position by the encoder, averaged for all the cycles
++The period of the non-linearity seems to be equal to \(765 nm\) which corresponds to half the wavelength of the Laser (\(1.53 \mu m\)). +For the motion range done here, the non-linearity is measured over ~18 periods which permits to do some averaging. +
+ +win_length = 1530/2; % length of the windows (corresponds to 765 nm) +num_avg = floor(length(e_sorted)/win_length); % number of averaging + +i_init = ceil((length(e_sorted) - win_length*num_avg)/2); % does not start at the extremity + +e_sorted_mean_over_period = mean(reshape(i_mean_error(i_init:i_init+win_length*num_avg-1), [win_length num_avg]), 2); ++
+The obtained periodic non-linearity is shown in Figure 15. +
+ + ++
+Figure 15: Non-Linearity of the Interferometer over the period of the wavelength
+Created: 2020-11-03 mar. 11:21
+Created: 2020-11-10 mar. 09:53
Hint
"); $('.error').before("Error
"); $('.danger').before("Danger
"); + $('.question').before("Question
"); + $('.summary').before("Summary
"); }); $( document ).ready(function() { diff --git a/mat/int_enc_comp.mat b/mat/int_enc_comp.mat new file mode 100644 index 0000000..692a457 Binary files /dev/null and b/mat/int_enc_comp.mat differ