attocube-test-bench/index.html

520 lines
21 KiB
HTML
Raw Normal View History

2020-10-29 10:07:20 +01:00
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-11-10 mar. 09:53 -->
2020-10-29 10:07:20 +01:00
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Attocube - Test Bench</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
<link rel="stylesheet" type="text/css" href="./css/custom.css"/>
2020-10-29 10:07:20 +01:00
<script type="text/javascript" src="./js/jquery.min.js"></script>
<script type="text/javascript" src="./js/bootstrap.min.js"></script>
<script type="text/javascript" src="./js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="./js/readtheorg.js"></script>
2020-10-29 10:42:00 +01:00
<script>MathJax = {
tex: {
tags: 'ams',
macros: {bm: ["\\boldsymbol{#1}",1],}
}
};
</script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
2020-10-29 10:07:20 +01:00
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="../index.html"> UP </a>
|
<a accesskey="H" href="../index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Attocube - Test Bench</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org31551fe">1. Estimation of the Spectral Density of the Attocube Noise</a>
2020-10-29 10:07:20 +01:00
<ul>
<li><a href="#org2ca70e8">1.1. Long and Slow measurement</a></li>
<li><a href="#org4dffcb8">1.2. Short and Fast measurement</a></li>
<li><a href="#org83ac827">1.3. Obtained Amplitude Spectral Density of the measured displacement</a></li>
2020-11-02 16:03:55 +01:00
</ul>
</li>
<li><a href="#orgf63ae3e">2. Effect of the &ldquo;bubble sheet&rdquo; and &ldquo;Aluminium tube&rdquo;</a>
2020-11-02 16:03:55 +01:00
<ul>
<li><a href="#org1f1ce7f">2.1. Aluminium Tube and Bubble Sheet</a></li>
<li><a href="#orgb26f1e7">2.2. Only Aluminium Tube</a></li>
<li><a href="#org38d2ea6">2.3. Nothing</a></li>
<li><a href="#orgc931b82">2.4. Comparison</a></li>
</ul>
</li>
<li><a href="#org8ec3157">3. Measurement of the Attocube&rsquo;s non-linearity</a>
<ul>
<li><a href="#orgd049784">3.1. Load Data</a></li>
<li><a href="#orga29027e">3.2. Time Domain Results</a></li>
<li><a href="#orgce6e0ff">3.3. Difference between Encoder and Interferometer as a function of time</a></li>
<li><a href="#org2008a1e">3.4. Difference between Encoder and Interferometer as a function of position</a></li>
2020-10-29 10:07:20 +01:00
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org31551fe" class="outline-2">
<h2 id="org31551fe"><span class="section-number-2">1</span> Estimation of the Spectral Density of the Attocube Noise</h2>
2020-10-29 10:07:20 +01:00
<div class="outline-text-2" id="text-1">
2020-10-29 11:20:34 +01:00
<div id="org5b9ba48" class="figure">
<p><img src="figs/test-bench-schematic.png" alt="test-bench-schematic.png" />
2020-10-29 11:20:34 +01:00
</p>
<p><span class="figure-number">Figure 1: </span>Test Bench Schematic</p>
2020-10-29 10:07:20 +01:00
</div>
2020-11-02 16:03:55 +01:00
<div id="org9ef7a86" class="figure">
2020-11-02 16:03:55 +01:00
<p><img src="figs/IMG-7865.JPG" alt="IMG-7865.JPG" />
</p>
<p><span class="figure-number">Figure 2: </span>Picture of the test bench. The Attocube and mirror are covered by a &ldquo;bubble sheet&rdquo;</p>
</div>
2020-10-29 11:20:34 +01:00
</div>
<div id="outline-container-org2ca70e8" class="outline-3">
<h3 id="org2ca70e8"><span class="section-number-3">1.1</span> Long and Slow measurement</h3>
2020-10-29 10:07:20 +01:00
<div class="outline-text-3" id="text-1-1">
2020-10-29 10:42:00 +01:00
<p>
The first measurement was made during ~17 hours with a sampling time of \(T_s = 0.1\,s\).
</p>
<div class="org-src-container">
2020-11-03 11:24:53 +01:00
<pre class="src src-matlab">load(<span class="org-string">'./mat/long_test_plastic.mat'</span>, <span class="org-string">'x'</span>, <span class="org-string">'t'</span>)
2020-10-29 10:42:00 +01:00
Ts = 0.1; <span class="org-comment">% [s]</span>
</pre>
</div>
<div id="org4b6374b" class="figure">
2020-10-29 10:42:00 +01:00
<p><img src="figs/long_meas_time_domain_full.png" alt="long_meas_time_domain_full.png" />
</p>
2020-11-02 16:03:55 +01:00
<p><span class="figure-number">Figure 3: </span>Long measurement time domain data</p>
2020-10-29 10:42:00 +01:00
</div>
<p>
Let&rsquo;s fit the data with a step response to a first order low pass filter (Figure <a href="#org36afa1e">4</a>).
</p>
<div class="org-src-container">
<pre class="src src-matlab">f = @(b,x) b(1)<span class="org-type">*</span>(1 <span class="org-type">-</span> exp(<span class="org-type">-</span>x<span class="org-type">/</span>b(2)));
2020-11-03 11:24:53 +01:00
y_cur = x(t <span class="org-type">&lt;</span> 17.5<span class="org-type">*</span>60<span class="org-type">*</span>60);
t_cur = t(t <span class="org-type">&lt;</span> 17.5<span class="org-type">*</span>60<span class="org-type">*</span>60);
nrmrsd = @(b) norm(y_cur <span class="org-type">-</span> f(b,t_cur)); <span class="org-comment">% Residual Norm Cost Function</span>
B0 = [400e<span class="org-type">-</span>9, 2<span class="org-type">*</span>60<span class="org-type">*</span>60]; <span class="org-comment">% Choose Appropriate Initial Estimates</span>
[B,rnrm] = fminsearch(nrmrsd, B0); <span class="org-comment">% Estimate Parameters &#8216;B&#8217;</span>
</pre>
</div>
<p>
The corresponding time constant is (in [h]):
</p>
<pre class="example">
2020-11-03 11:24:53 +01:00
2.0658
</pre>
2020-10-29 11:07:35 +01:00
<div id="org36afa1e" class="figure">
2020-10-29 11:07:35 +01:00
<p><img src="figs/long_meas_time_domain_fit.png" alt="long_meas_time_domain_fit.png" />
</p>
2020-11-02 16:03:55 +01:00
<p><span class="figure-number">Figure 4: </span>Fit of the measurement data with a step response of a first order low pass filter</p>
2020-10-29 11:07:35 +01:00
</div>
<p>
We can see in Figure <a href="#org4b6374b">3</a> that there is a transient period where the measured displacement experiences some drifts.
2020-10-29 10:42:00 +01:00
This is probably due to thermal effects.
We only select the data between <code>t1</code> and <code>t2</code>.
The obtained displacement is shown in Figure <a href="#orgf2cfa94">5</a>.
2020-10-29 10:42:00 +01:00
</p>
2020-10-29 10:07:20 +01:00
<div class="org-src-container">
2020-11-03 11:24:53 +01:00
<pre class="src src-matlab">t1 = 10.5; t2 = 17.5; <span class="org-comment">% [h]</span>
2020-10-29 10:42:00 +01:00
x = x(t <span class="org-type">&gt;</span> t1<span class="org-type">*</span>60<span class="org-type">*</span>60 <span class="org-type">&amp;</span> t <span class="org-type">&lt;</span> t2<span class="org-type">*</span>60<span class="org-type">*</span>60);
x = x <span class="org-type">-</span> mean(x);
t = t(t <span class="org-type">&gt;</span> t1<span class="org-type">*</span>60<span class="org-type">*</span>60 <span class="org-type">&amp;</span> t <span class="org-type">&lt;</span> t2<span class="org-type">*</span>60<span class="org-type">*</span>60);
t = t <span class="org-type">-</span> t(1);
</pre>
</div>
2020-10-29 10:07:20 +01:00
2020-10-29 10:42:00 +01:00
<div id="orgf2cfa94" class="figure">
2020-10-29 10:42:00 +01:00
<p><img src="figs/long_meas_time_domain_zoom.png" alt="long_meas_time_domain_zoom.png" />
</p>
2020-11-02 16:03:55 +01:00
<p><span class="figure-number">Figure 5: </span>Kept data (removed slow drifts during the first hours)</p>
2020-10-29 10:42:00 +01:00
</div>
<p>
The Power Spectral Density of the measured displacement is computed
</p>
<div class="org-src-container">
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>20));
2020-10-29 10:07:20 +01:00
[p_1, f_1] = pwelch(x, win, [], [], 1<span class="org-type">/</span>Ts);
</pre>
</div>
2020-11-02 16:03:55 +01:00
<p>
As a low pass filter was used in the measurement process, we multiply the PSD by the square of the inverse of the filter&rsquo;s norm.
</p>
<div class="org-src-container">
<pre class="src src-matlab">G_lpf = 1<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span>);
p_1 = p_1<span class="org-type">./</span>abs(squeeze(freqresp(G_lpf, f_1, <span class="org-string">'Hz'</span>)))<span class="org-type">.^</span>2;
</pre>
</div>
<p>
Only frequencies below 2Hz are taken into account (high frequency noise will be measured afterwards).
</p>
<div class="org-src-container">
<pre class="src src-matlab">p_1 = p_1(f_1 <span class="org-type">&lt;</span> 2);
f_1 = f_1(f_1 <span class="org-type">&lt;</span> 2);
</pre>
</div>
2020-10-29 10:42:00 +01:00
</div>
</div>
<div id="outline-container-org4dffcb8" class="outline-3">
<h3 id="org4dffcb8"><span class="section-number-3">1.2</span> Short and Fast measurement</h3>
2020-10-29 10:42:00 +01:00
<div class="outline-text-3" id="text-1-2">
<p>
An second measurement is done in order to estimate the high frequency noise of the interferometer.
The measurement is done with a sampling time of \(T_s = 0.1\,ms\) and a duration of ~100s.
</p>
2020-10-29 10:07:20 +01:00
<div class="org-src-container">
2020-11-02 16:03:55 +01:00
<pre class="src src-matlab">load(<span class="org-string">'./mat/short_test_plastic.mat'</span>)
2020-10-29 10:07:20 +01:00
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
2020-10-29 10:42:00 +01:00
</pre>
</div>
2020-11-02 16:03:55 +01:00
<div class="org-src-container">
<pre class="src src-matlab">x = detrend(x, 0);
</pre>
</div>
2020-10-29 10:42:00 +01:00
<p>
The time domain measurement is shown in Figure <a href="#org0f2f571">6</a>.
2020-10-29 10:42:00 +01:00
</p>
<div id="org0f2f571" class="figure">
2020-10-29 10:42:00 +01:00
<p><img src="figs/short_meas_time_domain.png" alt="short_meas_time_domain.png" />
</p>
2020-11-02 16:03:55 +01:00
<p><span class="figure-number">Figure 6: </span>Time domain measurement with the high sampling rate</p>
2020-10-29 10:42:00 +01:00
</div>
2020-10-29 10:07:20 +01:00
2020-10-29 10:42:00 +01:00
<p>
The Power Spectral Density of the measured displacement is computed
</p>
<div class="org-src-container">
2020-11-03 11:24:53 +01:00
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>20));
2020-10-29 10:07:20 +01:00
[p_2, f_2] = pwelch(x, win, [], [], 1<span class="org-type">/</span>Ts);
</pre>
</div>
</div>
</div>
2020-10-29 10:42:00 +01:00
<div id="outline-container-org83ac827" class="outline-3">
<h3 id="org83ac827"><span class="section-number-3">1.3</span> Obtained Amplitude Spectral Density of the measured displacement</h3>
2020-10-29 10:42:00 +01:00
<div class="outline-text-3" id="text-1-3">
<p>
The computed ASD of the two measurements are combined in Figure <a href="#orga897ad9">7</a>.
2020-10-29 10:42:00 +01:00
</p>
<div id="orga897ad9" class="figure">
2020-10-29 10:42:00 +01:00
<p><img src="figs/psd_combined.png" alt="psd_combined.png" />
</p>
2020-11-02 16:03:55 +01:00
<p><span class="figure-number">Figure 7: </span>Obtained Amplitude Spectral Density of the measured displacement</p>
</div>
</div>
</div>
</div>
<div id="outline-container-orgf63ae3e" class="outline-2">
<h2 id="orgf63ae3e"><span class="section-number-2">2</span> Effect of the &ldquo;bubble sheet&rdquo; and &ldquo;Aluminium tube&rdquo;</h2>
2020-11-02 16:03:55 +01:00
<div class="outline-text-2" id="text-2">
<div id="orgff246fc" class="figure">
2020-11-02 16:03:55 +01:00
<p><img src="figs/IMG-7864.JPG" alt="IMG-7864.JPG" />
</p>
<p><span class="figure-number">Figure 8: </span>Aluminium tube used to protect the beam path from disturbances</p>
</div>
</div>
<div id="outline-container-org1f1ce7f" class="outline-3">
<h3 id="org1f1ce7f"><span class="section-number-3">2.1</span> Aluminium Tube and Bubble Sheet</h3>
2020-11-02 16:03:55 +01:00
<div class="outline-text-3" id="text-2-1">
<div class="org-src-container">
2020-11-03 11:24:53 +01:00
<pre class="src src-matlab">load(<span class="org-string">'./mat/short_test_plastic.mat'</span>);
2020-11-02 16:03:55 +01:00
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">x = detrend(x, 0);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>10));
[p_1, f_1] = pwelch(x, win, [], [], 1<span class="org-type">/</span>Ts);
</pre>
</div>
</div>
</div>
<div id="outline-container-orgb26f1e7" class="outline-3">
<h3 id="orgb26f1e7"><span class="section-number-3">2.2</span> Only Aluminium Tube</h3>
2020-11-02 16:03:55 +01:00
<div class="outline-text-3" id="text-2-2">
<div class="org-src-container">
2020-11-03 11:24:53 +01:00
<pre class="src src-matlab">load(<span class="org-string">'./mat/short_test_alu_tube.mat'</span>);
2020-11-02 16:03:55 +01:00
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">x = detrend(x, 0);
</pre>
</div>
<p>
The time domain measurement is shown in Figure <a href="#org0f2f571">6</a>.
2020-11-02 16:03:55 +01:00
</p>
<div class="org-src-container">
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>10));
[p_2, f_2] = pwelch(x, win, [], [], 1<span class="org-type">/</span>Ts);
</pre>
</div>
</div>
</div>
<div id="outline-container-org38d2ea6" class="outline-3">
<h3 id="org38d2ea6"><span class="section-number-3">2.3</span> Nothing</h3>
2020-11-03 11:24:53 +01:00
<div class="outline-text-3" id="text-2-3">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./mat/short_test_without_material.mat'</span>);
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">x = detrend(x, 0);
</pre>
</div>
<p>
The time domain measurement is shown in Figure <a href="#org0f2f571">6</a>.
2020-11-03 11:24:53 +01:00
</p>
<div class="org-src-container">
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>10));
[p_3, f_3] = pwelch(x, win, [], [], 1<span class="org-type">/</span>Ts);
</pre>
</div>
</div>
2020-11-02 16:03:55 +01:00
</div>
<div id="outline-container-orgc931b82" class="outline-3">
<h3 id="orgc931b82"><span class="section-number-3">2.4</span> Comparison</h3>
2020-11-02 16:03:55 +01:00
<div class="outline-text-3" id="text-2-4">
<div id="org0e0ae0d" class="figure">
2020-11-02 16:03:55 +01:00
<p><img src="figs/asd_noise_comp_bubble_aluminium.png" alt="asd_noise_comp_bubble_aluminium.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Comparison of the noise ASD with and without bubble sheet</p>
2020-10-29 10:42:00 +01:00
</div>
</div>
</div>
2020-10-29 10:07:20 +01:00
</div>
<div id="outline-container-org8ec3157" class="outline-2">
<h2 id="org8ec3157"><span class="section-number-2">3</span> Measurement of the Attocube&rsquo;s non-linearity</h2>
<div class="outline-text-2" id="text-3">
<p>
The measurement setup is shown in Figure <a href="#org30833d7">10</a>.
</p>
<div id="org30833d7" class="figure">
<p><img src="figs/exp_setup_schematic.png" alt="exp_setup_schematic.png" />
</p>
<p><span class="figure-number">Figure 10: </span>Schematic of the Experiment</p>
</div>
<p>
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.
</p>
<p>
As will be shown shortly, this measurement permitted to measure the period non-linearity of the Attocube.
</p>
</div>
<div id="outline-container-orgd049784" class="outline-3">
<h3 id="orgd049784"><span class="section-number-3">3.1</span> Load Data</h3>
<div class="outline-text-3" id="text-3-1">
<p>
The measurement data are loaded and the offset are removed using the <code>detrend</code> command.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'mat/int_enc_comp.mat'</span>, <span class="org-string">'interferometer'</span>, <span class="org-string">'encoder'</span>, <span class="org-string">'u'</span>, <span class="org-string">'t'</span>);
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% Sampling Time [s]</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">interferometer = detrend(interferometer, 0);
encoder = detrend(encoder, 0);
u = detrend(u, 0);
</pre>
</div>
</div>
</div>
<div id="outline-container-orga29027e" class="outline-3">
<h3 id="orga29027e"><span class="section-number-3">3.2</span> Time Domain Results</h3>
<div class="outline-text-3" id="text-3-2">
<p>
One period of the displacement of the mass as measured by the encoder and interferometer are shown in Figure <a href="#orgeb04850">11</a>.
It consist of the sinusoidal motion at 0.5Hz with an amplitude of approximately \(70\mu m\).
</p>
<p>
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.
</p>
<div id="orgeb04850" class="figure">
<p><img src="figs/int_enc_one_cycle.png" alt="int_enc_one_cycle.png" />
</p>
<p><span class="figure-number">Figure 11: </span>One cycle measurement</p>
</div>
<p>
The difference between the two measurements during the same period is shown in Figure <a href="#org3ddfc88">12</a>.
</p>
<div id="org3ddfc88" class="figure">
<p><img src="figs/int_enc_one_cycle_error.png" alt="int_enc_one_cycle_error.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Difference between the Encoder and the interferometer during one cycle</p>
</div>
</div>
</div>
<div id="outline-container-orgce6e0ff" class="outline-3">
<h3 id="orgce6e0ff"><span class="section-number-3">3.3</span> Difference between Encoder and Interferometer as a function of time</h3>
<div class="outline-text-3" id="text-3-3">
<p>
The data is filtered using a second order low pass filter with a cut-off frequency \(\omega_0\) as defined below.
</p>
<div class="org-src-container">
<pre class="src src-matlab">w0 = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>5; <span class="org-comment">% [rad/s]</span>
xi = 0.7;
G_lpf = 1<span class="org-type">/</span>(1 <span class="org-type">+</span> 2<span class="org-type">*</span>xi<span class="org-type">/</span>w0<span class="org-type">*</span>s <span class="org-type">+</span> s<span class="org-type">^</span>2<span class="org-type">/</span>w0<span class="org-type">^</span>2);
</pre>
</div>
<p>
After filtering, the data is &ldquo;re-shaped&rdquo; such that we can superimpose all the measured periods as shown in Figure <a href="#org18b1b55">13</a>.
This gives an idea of the measurement error as given by the Attocube during a \(70 \mu m\) motion.
</p>
<div class="org-src-container">
<pre class="src src-matlab">d_err_mean = reshape(lsim(G_lpf, encoder <span class="org-type">-</span> interferometer, t), [2<span class="org-type">/</span>Ts floor(Ts<span class="org-type">/</span>2<span class="org-type">*</span>length(encoder))]);
d_err_mean = d_err_mean <span class="org-type">-</span> mean(d_err_mean);
</pre>
</div>
<div id="org18b1b55" class="figure">
<p><img src="figs/int_enc_error_mean_time.png" alt="int_enc_error_mean_time.png" />
</p>
<p><span class="figure-number">Figure 13: </span>Difference between the two measurement in the time domain, averaged for all the cycles</p>
</div>
</div>
</div>
<div id="outline-container-org2008a1e" class="outline-3">
<h3 id="org2008a1e"><span class="section-number-3">3.4</span> Difference between Encoder and Interferometer as a function of position</h3>
<div class="outline-text-3" id="text-3-4">
<p>
Figure <a href="#org18b1b55">13</a> 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).
</p>
<p>
To do so, all the attocube measurements corresponding to each position measured by the Encoder (resolution of \(1nm\)) are averaged.
Figure <a href="#orgdfccfb5">14</a> 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.
</p>
<div class="org-src-container">
<pre class="src src-matlab">[e_sorted, <span class="org-type">~</span>, e_ind] = unique(encoder);
i_mean = zeros(length(e_sorted), 1);
<span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant">1:length(e_sorted)</span>
i_mean(<span class="org-constant">i</span>) = mean(interferometer(e_ind <span class="org-type">==</span> <span class="org-constant">i</span>));
<span class="org-keyword">end</span>
i_mean_error = (i_mean <span class="org-type">-</span> e_sorted);
</pre>
</div>
<div id="orgdfccfb5" class="figure">
<p><img src="figs/int_enc_error_mean_position.png" alt="int_enc_error_mean_position.png" />
</p>
<p><span class="figure-number">Figure 14: </span>Difference between the two measurement as a function of the measured position by the encoder, averaged for all the cycles</p>
</div>
<p>
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.
</p>
<div class="org-src-container">
<pre class="src src-matlab">win_length = 1530<span class="org-type">/</span>2; <span class="org-comment">% length of the windows (corresponds to 765 nm)</span>
num_avg = floor(length(e_sorted)<span class="org-type">/</span>win_length); <span class="org-comment">% number of averaging</span>
i_init = ceil((length(e_sorted) <span class="org-type">-</span> win_length<span class="org-type">*</span>num_avg)<span class="org-type">/</span>2); <span class="org-comment">% does not start at the extremity</span>
e_sorted_mean_over_period = mean(reshape(i_mean_error(i_init<span class="org-type">:</span>i_init<span class="org-type">+</span>win_length<span class="org-type">*</span>num_avg<span class="org-type">-</span>1), [win_length num_avg]), 2);
</pre>
</div>
<p>
The obtained periodic non-linearity is shown in Figure <a href="#orgcfbb9a2">15</a>.
</p>
<div id="orgcfbb9a2" class="figure">
<p><img src="figs/int_non_linearity_period_wavelength.png" alt="int_non_linearity_period_wavelength.png" />
</p>
<p><span class="figure-number">Figure 15: </span>Non-Linearity of the Interferometer over the period of the wavelength</p>
</div>
</div>
</div>
</div>
2020-10-29 10:07:20 +01:00
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-11-10 mar. 09:53</p>
2020-10-29 10:07:20 +01:00
</div>
</body>
</html>