Move to matlab folder / tangle / list of sections
This commit is contained in:
parent
bb51a528c5
commit
7a174b630f
181
index.html
181
index.html
@ -3,7 +3,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2020-11-10 mar. 10:21 -->
|
<!-- 2020-11-10 mar. 12:50 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<title>Attocube - Test Bench</title>
|
<title>Attocube - Test Bench</title>
|
||||||
<meta name="generator" content="Org mode" />
|
<meta name="generator" content="Org mode" />
|
||||||
@ -34,73 +34,84 @@
|
|||||||
<h2>Table of Contents</h2>
|
<h2>Table of Contents</h2>
|
||||||
<div id="text-table-of-contents">
|
<div id="text-table-of-contents">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org904a034">1. Estimation of the Spectral Density of the Attocube Noise</a>
|
<li><a href="#orgd8ce409">1. Estimation of the Spectral Density of the Attocube Noise</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org82d6608">1.1. Long and Slow measurement</a></li>
|
<li><a href="#org78cd963">1.1. Long and Slow measurement</a></li>
|
||||||
<li><a href="#org3c3c1f8">1.2. Short and Fast measurement</a></li>
|
<li><a href="#org46eb0d4">1.2. Short and Fast measurement</a></li>
|
||||||
<li><a href="#orgcaa0ccd">1.3. Obtained Amplitude Spectral Density of the measured displacement</a></li>
|
<li><a href="#org3de4174">1.3. Obtained Amplitude Spectral Density of the measured displacement</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org1b2ca10">2. Effect of the “bubble sheet” and “Aluminium tube”</a>
|
<li><a href="#orga823efb">2. Effect of the “bubble sheet” and “Aluminium tube”</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgecd70c2">2.1. Aluminium Tube and Bubble Sheet</a></li>
|
<li><a href="#orga7204eb">2.1. Aluminium Tube and Bubble Sheet</a></li>
|
||||||
<li><a href="#orgc9ed213">2.2. Only Aluminium Tube</a></li>
|
<li><a href="#org15d9822">2.2. Only Aluminium Tube</a></li>
|
||||||
<li><a href="#org8e5170d">2.3. Nothing</a></li>
|
<li><a href="#org2f5206b">2.3. Nothing</a></li>
|
||||||
<li><a href="#org38a78d3">2.4. Comparison</a></li>
|
<li><a href="#orge439118">2.4. Comparison</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org2ece93a">3. Measurement of the Attocube’s non-linearity</a>
|
<li><a href="#org025397b">3. Measurement of the Attocube’s non-linearity</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org224e296">3.1. Load Data</a></li>
|
<li><a href="#org01e947d">3.1. Load Data</a></li>
|
||||||
<li><a href="#org587ad8c">3.2. Time Domain Results</a></li>
|
<li><a href="#org32a4e2c">3.2. Time Domain Results</a></li>
|
||||||
<li><a href="#orgbc1a5af">3.3. Difference between Encoder and Interferometer as a function of time</a></li>
|
<li><a href="#org5be7e09">3.3. Difference between Encoder and Interferometer as a function of time</a></li>
|
||||||
<li><a href="#org50e2719">3.4. Difference between Encoder and Interferometer as a function of position</a></li>
|
<li><a href="#org75b2a6d">3.4. Difference between Encoder and Interferometer as a function of position</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org904a034" class="outline-2">
|
<p>
|
||||||
<h2 id="org904a034"><span class="section-number-2">1</span> Estimation of the Spectral Density of the Attocube Noise</h2>
|
In this document, few caracteristics of the Attocube Displacement Measuring Interferometer IDS3010 (<a href="https://www.attocube.com/en/products/laser-displacement-sensor/displacement-measuring-interferometer">link</a>) are studied:
|
||||||
|
</p>
|
||||||
|
<ul class="org-ul">
|
||||||
|
<li>Section <a href="#org9419f0e">1</a>: the ASD noise of the measured displacement is estimated</li>
|
||||||
|
<li>Section <a href="#org7cc1f65">2</a>: the effect of two air protections on the stability of the measurement is studied</li>
|
||||||
|
<li>Section <a href="#org382d51d">3</a>: the cyclic non-linearity of the attocube is estimated using a encoder</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="outline-container-orgd8ce409" class="outline-2">
|
||||||
|
<h2 id="orgd8ce409"><span class="section-number-2">1</span> Estimation of the Spectral Density of the Attocube Noise</h2>
|
||||||
<div class="outline-text-2" id="text-1">
|
<div class="outline-text-2" id="text-1">
|
||||||
|
<p>
|
||||||
|
<a id="org9419f0e"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
<div id="org95807e5" class="figure">
|
<div id="orge10425f" class="figure">
|
||||||
<p><img src="figs/test-bench-schematic.png" alt="test-bench-schematic.png" />
|
<p><img src="figs/test-bench-schematic.png" alt="test-bench-schematic.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 1: </span>Test Bench Schematic</p>
|
<p><span class="figure-number">Figure 1: </span>Test Bench Schematic</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org7768f2f" class="figure">
|
<div id="orgac54f33" class="figure">
|
||||||
<p><img src="figs/IMG-7865.JPG" alt="IMG-7865.JPG" />
|
<p><img src="figs/IMG-7865.JPG" alt="IMG-7865.JPG" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 2: </span>Picture of the test bench. The Attocube and mirror are covered by a “bubble sheet”</p>
|
<p><span class="figure-number">Figure 2: </span>Picture of the test bench. The Attocube and mirror are covered by a “bubble sheet”</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="outline-container-org78cd963" class="outline-3">
|
||||||
<div id="outline-container-org82d6608" class="outline-3">
|
<h3 id="org78cd963"><span class="section-number-3">1.1</span> Long and Slow measurement</h3>
|
||||||
<h3 id="org82d6608"><span class="section-number-3">1.1</span> Long and Slow measurement</h3>
|
|
||||||
<div class="outline-text-3" id="text-1-1">
|
<div class="outline-text-3" id="text-1-1">
|
||||||
<p>
|
<p>
|
||||||
The first measurement was made during ~17 hours with a sampling time of \(T_s = 0.1\,s\).
|
The first measurement was made during ~17 hours with a sampling time of \(T_s = 0.1\,s\).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<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>)
|
<pre class="src src-matlab">load(<span class="org-string">'long_test_plastic.mat'</span>, <span class="org-string">'x'</span>, <span class="org-string">'t'</span>)
|
||||||
Ts = 0.1; <span class="org-comment">% [s]</span>
|
Ts = 0.1; <span class="org-comment">% [s]</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="orgcfab522" class="figure">
|
<div id="org3a063a4" class="figure">
|
||||||
<p><img src="figs/long_meas_time_domain_full.png" alt="long_meas_time_domain_full.png" />
|
<p><img src="figs/long_meas_time_domain_full.png" alt="long_meas_time_domain_full.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 3: </span>Long measurement time domain data</p>
|
<p><span class="figure-number">Figure 3: </span>Long measurement time domain data</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Let’s fit the data with a step response to a first order low pass filter (Figure <a href="#org3c0ac65">4</a>).
|
Let’s fit the data with a step response to a first order low pass filter (Figure <a href="#org3619821">4</a>).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -124,17 +135,17 @@ The corresponding time constant is (in [h]):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="org3c0ac65" class="figure">
|
<div id="org3619821" class="figure">
|
||||||
<p><img src="figs/long_meas_time_domain_fit.png" alt="long_meas_time_domain_fit.png" />
|
<p><img src="figs/long_meas_time_domain_fit.png" alt="long_meas_time_domain_fit.png" />
|
||||||
</p>
|
</p>
|
||||||
<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>
|
<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>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
We can see in Figure <a href="#orgcfab522">3</a> that there is a transient period where the measured displacement experiences some drifts.
|
We can see in Figure <a href="#org3a063a4">3</a> that there is a transient period where the measured displacement experiences some drifts.
|
||||||
This is probably due to thermal effects.
|
This is probably due to thermal effects.
|
||||||
We only select the data between <code>t1</code> and <code>t2</code>.
|
We only select the data between <code>t1</code> and <code>t2</code>.
|
||||||
The obtained displacement is shown in Figure <a href="#orgfb35792">5</a>.
|
The obtained displacement is shown in Figure <a href="#org0516899">5</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -148,7 +159,7 @@ t = t <span class="org-type">-</span> t(1);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="orgfb35792" class="figure">
|
<div id="org0516899" class="figure">
|
||||||
<p><img src="figs/long_meas_time_domain_zoom.png" alt="long_meas_time_domain_zoom.png" />
|
<p><img src="figs/long_meas_time_domain_zoom.png" alt="long_meas_time_domain_zoom.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 5: </span>Kept data (removed slow drifts during the first hours)</p>
|
<p><span class="figure-number">Figure 5: </span>Kept data (removed slow drifts during the first hours)</p>
|
||||||
@ -183,8 +194,8 @@ f_1 = f_1(f_1 <span class="org-type"><</span> 2);
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org3c3c1f8" class="outline-3">
|
<div id="outline-container-org46eb0d4" class="outline-3">
|
||||||
<h3 id="org3c3c1f8"><span class="section-number-3">1.2</span> Short and Fast measurement</h3>
|
<h3 id="org46eb0d4"><span class="section-number-3">1.2</span> Short and Fast measurement</h3>
|
||||||
<div class="outline-text-3" id="text-1-2">
|
<div class="outline-text-3" id="text-1-2">
|
||||||
<p>
|
<p>
|
||||||
An second measurement is done in order to estimate the high frequency noise of the interferometer.
|
An second measurement is done in order to estimate the high frequency noise of the interferometer.
|
||||||
@ -192,7 +203,7 @@ The measurement is done with a sampling time of \(T_s = 0.1\,ms\) and a duration
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">load(<span class="org-string">'./mat/short_test_plastic.mat'</span>)
|
<pre class="src src-matlab">load(<span class="org-string">'short_test_plastic.mat'</span>)
|
||||||
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
@ -203,11 +214,11 @@ Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The time domain measurement is shown in Figure <a href="#org526dbb8">6</a>.
|
The time domain measurement is shown in Figure <a href="#orgf3ce8f9">6</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org526dbb8" class="figure">
|
<div id="orgf3ce8f9" class="figure">
|
||||||
<p><img src="figs/short_meas_time_domain.png" alt="short_meas_time_domain.png" />
|
<p><img src="figs/short_meas_time_domain.png" alt="short_meas_time_domain.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 6: </span>Time domain measurement with the high sampling rate</p>
|
<p><span class="figure-number">Figure 6: </span>Time domain measurement with the high sampling rate</p>
|
||||||
@ -224,15 +235,15 @@ The Power Spectral Density of the measured displacement is computed
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgcaa0ccd" class="outline-3">
|
<div id="outline-container-org3de4174" class="outline-3">
|
||||||
<h3 id="orgcaa0ccd"><span class="section-number-3">1.3</span> Obtained Amplitude Spectral Density of the measured displacement</h3>
|
<h3 id="org3de4174"><span class="section-number-3">1.3</span> Obtained Amplitude Spectral Density of the measured displacement</h3>
|
||||||
<div class="outline-text-3" id="text-1-3">
|
<div class="outline-text-3" id="text-1-3">
|
||||||
<p>
|
<p>
|
||||||
The computed ASD of the two measurements are combined in Figure <a href="#orgcd7a108">7</a>.
|
The computed ASD of the two measurements are combined in Figure <a href="#orgcff33dc">7</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="orgcd7a108" class="figure">
|
<div id="orgcff33dc" class="figure">
|
||||||
<p><img src="figs/psd_combined.png" alt="psd_combined.png" />
|
<p><img src="figs/psd_combined.png" alt="psd_combined.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 7: </span>Obtained Amplitude Spectral Density of the measured displacement</p>
|
<p><span class="figure-number">Figure 7: </span>Obtained Amplitude Spectral Density of the measured displacement</p>
|
||||||
@ -241,22 +252,24 @@ The computed ASD of the two measurements are combined in Figure <a href="#orgcd7
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org1b2ca10" class="outline-2">
|
<div id="outline-container-orga823efb" class="outline-2">
|
||||||
<h2 id="org1b2ca10"><span class="section-number-2">2</span> Effect of the “bubble sheet” and “Aluminium tube”</h2>
|
<h2 id="orga823efb"><span class="section-number-2">2</span> Effect of the “bubble sheet” and “Aluminium tube”</h2>
|
||||||
<div class="outline-text-2" id="text-2">
|
<div class="outline-text-2" id="text-2">
|
||||||
|
<p>
|
||||||
|
<a id="org7cc1f65"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
<div id="orgcda5fc5" class="figure">
|
<div id="org54f25e9" class="figure">
|
||||||
<p><img src="figs/IMG-7864.JPG" alt="IMG-7864.JPG" />
|
<p><img src="figs/IMG-7864.JPG" alt="IMG-7864.JPG" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 8: </span>Aluminium tube used to protect the beam path from disturbances</p>
|
<p><span class="figure-number">Figure 8: </span>Aluminium tube used to protect the beam path from disturbances</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="outline-container-orga7204eb" class="outline-3">
|
||||||
<div id="outline-container-orgecd70c2" class="outline-3">
|
<h3 id="orga7204eb"><span class="section-number-3">2.1</span> Aluminium Tube and Bubble Sheet</h3>
|
||||||
<h3 id="orgecd70c2"><span class="section-number-3">2.1</span> Aluminium Tube and Bubble Sheet</h3>
|
|
||||||
<div class="outline-text-3" id="text-2-1">
|
<div class="outline-text-3" id="text-2-1">
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">load(<span class="org-string">'./mat/short_test_plastic.mat'</span>);
|
<pre class="src src-matlab">load(<span class="org-string">'short_test_plastic.mat'</span>);
|
||||||
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
@ -274,11 +287,11 @@ Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgc9ed213" class="outline-3">
|
<div id="outline-container-org15d9822" class="outline-3">
|
||||||
<h3 id="orgc9ed213"><span class="section-number-3">2.2</span> Only Aluminium Tube</h3>
|
<h3 id="org15d9822"><span class="section-number-3">2.2</span> Only Aluminium Tube</h3>
|
||||||
<div class="outline-text-3" id="text-2-2">
|
<div class="outline-text-3" id="text-2-2">
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">load(<span class="org-string">'./mat/short_test_alu_tube.mat'</span>);
|
<pre class="src src-matlab">load(<span class="org-string">'short_test_alu_tube.mat'</span>);
|
||||||
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
@ -289,7 +302,7 @@ Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The time domain measurement is shown in Figure <a href="#org526dbb8">6</a>.
|
The time domain measurement is shown in Figure <a href="#orgf3ce8f9">6</a>.
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>10));
|
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>10));
|
||||||
@ -299,11 +312,11 @@ The time domain measurement is shown in Figure <a href="#org526dbb8">6</a>.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org8e5170d" class="outline-3">
|
<div id="outline-container-org2f5206b" class="outline-3">
|
||||||
<h3 id="org8e5170d"><span class="section-number-3">2.3</span> Nothing</h3>
|
<h3 id="org2f5206b"><span class="section-number-3">2.3</span> Nothing</h3>
|
||||||
<div class="outline-text-3" id="text-2-3">
|
<div class="outline-text-3" id="text-2-3">
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">load(<span class="org-string">'./mat/short_test_without_material.mat'</span>);
|
<pre class="src src-matlab">load(<span class="org-string">'short_test_without_material.mat'</span>);
|
||||||
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
@ -314,7 +327,7 @@ Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% [s]</span>
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The time domain measurement is shown in Figure <a href="#org526dbb8">6</a>.
|
The time domain measurement is shown in Figure <a href="#orgf3ce8f9">6</a>.
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>10));
|
<pre class="src src-matlab">win = hann(ceil(length(x)<span class="org-type">/</span>10));
|
||||||
@ -324,11 +337,11 @@ The time domain measurement is shown in Figure <a href="#org526dbb8">6</a>.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org38a78d3" class="outline-3">
|
<div id="outline-container-orge439118" class="outline-3">
|
||||||
<h3 id="org38a78d3"><span class="section-number-3">2.4</span> Comparison</h3>
|
<h3 id="orge439118"><span class="section-number-3">2.4</span> Comparison</h3>
|
||||||
<div class="outline-text-3" id="text-2-4">
|
<div class="outline-text-3" id="text-2-4">
|
||||||
|
|
||||||
<div id="orgda221c2" class="figure">
|
<div id="org3d446e2" class="figure">
|
||||||
<p><img src="figs/asd_noise_comp_bubble_aluminium.png" alt="asd_noise_comp_bubble_aluminium.png" />
|
<p><img src="figs/asd_noise_comp_bubble_aluminium.png" alt="asd_noise_comp_bubble_aluminium.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 9: </span>Comparison of the noise ASD with and without bubble sheet</p>
|
<p><span class="figure-number">Figure 9: </span>Comparison of the noise ASD with and without bubble sheet</p>
|
||||||
@ -337,14 +350,17 @@ The time domain measurement is shown in Figure <a href="#org526dbb8">6</a>.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org2ece93a" class="outline-2">
|
<div id="outline-container-org025397b" class="outline-2">
|
||||||
<h2 id="org2ece93a"><span class="section-number-2">3</span> Measurement of the Attocube’s non-linearity</h2>
|
<h2 id="org025397b"><span class="section-number-2">3</span> Measurement of the Attocube’s non-linearity</h2>
|
||||||
<div class="outline-text-2" id="text-3">
|
<div class="outline-text-2" id="text-3">
|
||||||
<p>
|
<p>
|
||||||
The measurement setup is shown in Figure <a href="#org7db5634">10</a>.
|
<a id="org382d51d"></a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The measurement setup is shown in Figure <a href="#orgce1d646">10</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="note" id="org292fd7d">
|
<div class="note" id="orgc9bc822">
|
||||||
<p>
|
<p>
|
||||||
Here are the equipment used in the test bench:
|
Here are the equipment used in the test bench:
|
||||||
</p>
|
</p>
|
||||||
@ -359,7 +375,7 @@ Here are the equipment used in the test bench:
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org7db5634" class="figure">
|
<div id="orgce1d646" class="figure">
|
||||||
<p><img src="figs/exp_setup_schematic.png" alt="exp_setup_schematic.png" />
|
<p><img src="figs/exp_setup_schematic.png" alt="exp_setup_schematic.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 10: </span>Schematic of the Experiment</p>
|
<p><span class="figure-number">Figure 10: </span>Schematic of the Experiment</p>
|
||||||
@ -374,16 +390,15 @@ 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.
|
As will be shown shortly, this measurement permitted to measure the period non-linearity of the Attocube.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div id="outline-container-org01e947d" class="outline-3">
|
||||||
<div id="outline-container-org224e296" class="outline-3">
|
<h3 id="org01e947d"><span class="section-number-3">3.1</span> Load Data</h3>
|
||||||
<h3 id="org224e296"><span class="section-number-3">3.1</span> Load Data</h3>
|
|
||||||
<div class="outline-text-3" id="text-3-1">
|
<div class="outline-text-3" id="text-3-1">
|
||||||
<p>
|
<p>
|
||||||
The measurement data are loaded and the offset are removed using the <code>detrend</code> command.
|
The measurement data are loaded and the offset are removed using the <code>detrend</code> command.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<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>);
|
<pre class="src src-matlab">load(<span class="org-string">'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>
|
Ts = 1e<span class="org-type">-</span>4; <span class="org-comment">% Sampling Time [s]</span>
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
@ -397,11 +412,11 @@ u = detrend(u, 0);
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org587ad8c" class="outline-3">
|
<div id="outline-container-org32a4e2c" class="outline-3">
|
||||||
<h3 id="org587ad8c"><span class="section-number-3">3.2</span> Time Domain Results</h3>
|
<h3 id="org32a4e2c"><span class="section-number-3">3.2</span> Time Domain Results</h3>
|
||||||
<div class="outline-text-3" id="text-3-2">
|
<div class="outline-text-3" id="text-3-2">
|
||||||
<p>
|
<p>
|
||||||
One period of the displacement of the mass as measured by the encoder and interferometer are shown in Figure <a href="#org5cfca4b">11</a>.
|
One period of the displacement of the mass as measured by the encoder and interferometer are shown in Figure <a href="#org0f33cd3">11</a>.
|
||||||
It consist of the sinusoidal motion at 0.5Hz with an amplitude of approximately \(70\mu m\).
|
It consist of the sinusoidal motion at 0.5Hz with an amplitude of approximately \(70\mu m\).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
@ -411,18 +426,18 @@ This should improve the coherence between the measurements made by the encoder a
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org5cfca4b" class="figure">
|
<div id="org0f33cd3" class="figure">
|
||||||
<p><img src="figs/int_enc_one_cycle.png" alt="int_enc_one_cycle.png" />
|
<p><img src="figs/int_enc_one_cycle.png" alt="int_enc_one_cycle.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 11: </span>One cycle measurement</p>
|
<p><span class="figure-number">Figure 11: </span>One cycle measurement</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The difference between the two measurements during the same period is shown in Figure <a href="#org58e59b1">12</a>.
|
The difference between the two measurements during the same period is shown in Figure <a href="#org5c61cd3">12</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org58e59b1" class="figure">
|
<div id="org5c61cd3" class="figure">
|
||||||
<p><img src="figs/int_enc_one_cycle_error.png" alt="int_enc_one_cycle_error.png" />
|
<p><img src="figs/int_enc_one_cycle_error.png" alt="int_enc_one_cycle_error.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 12: </span>Difference between the Encoder and the interferometer during one cycle</p>
|
<p><span class="figure-number">Figure 12: </span>Difference between the Encoder and the interferometer during one cycle</p>
|
||||||
@ -430,8 +445,8 @@ The difference between the two measurements during the same period is shown in F
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgbc1a5af" class="outline-3">
|
<div id="outline-container-org5be7e09" class="outline-3">
|
||||||
<h3 id="orgbc1a5af"><span class="section-number-3">3.3</span> Difference between Encoder and Interferometer as a function of time</h3>
|
<h3 id="org5be7e09"><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">
|
<div class="outline-text-3" id="text-3-3">
|
||||||
<p>
|
<p>
|
||||||
The data is filtered using a second order low pass filter with a cut-off frequency \(\omega_0\) as defined below.
|
The data is filtered using a second order low pass filter with a cut-off frequency \(\omega_0\) as defined below.
|
||||||
@ -446,7 +461,7 @@ G_lpf = 1<span class="org-type">/</span>(1 <span class="org-type">+</span> 2<spa
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
After filtering, the data is “re-shaped” such that we can superimpose all the measured periods as shown in Figure <a href="#orgef18651">13</a>.
|
After filtering, the data is “re-shaped” such that we can superimpose all the measured periods as shown in Figure <a href="#orgc98f587">13</a>.
|
||||||
This gives an idea of the measurement error as given by the Attocube during a \(70 \mu m\) motion.
|
This gives an idea of the measurement error as given by the Attocube during a \(70 \mu m\) motion.
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -456,7 +471,7 @@ d_err_mean = d_err_mean <span class="org-type">-</span> mean(d_err_mean);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="orgef18651" class="figure">
|
<div id="orgc98f587" class="figure">
|
||||||
<p><img src="figs/int_enc_error_mean_time.png" alt="int_enc_error_mean_time.png" />
|
<p><img src="figs/int_enc_error_mean_time.png" alt="int_enc_error_mean_time.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 13: </span>Difference between the two measurement in the time domain, averaged for all the cycles</p>
|
<p><span class="figure-number">Figure 13: </span>Difference between the two measurement in the time domain, averaged for all the cycles</p>
|
||||||
@ -464,17 +479,17 @@ d_err_mean = d_err_mean <span class="org-type">-</span> mean(d_err_mean);
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org50e2719" class="outline-3">
|
<div id="outline-container-org75b2a6d" class="outline-3">
|
||||||
<h3 id="org50e2719"><span class="section-number-3">3.4</span> Difference between Encoder and Interferometer as a function of position</h3>
|
<h3 id="org75b2a6d"><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">
|
<div class="outline-text-3" id="text-3-4">
|
||||||
<p>
|
<p>
|
||||||
Figure <a href="#orgef18651">13</a> gives the measurement error as a function of time.
|
Figure <a href="#orgc98f587">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).
|
We here wish the compute this measurement error as a function of the position (as measured by the encoer).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
To do so, all the attocube measurements corresponding to each position measured by the Encoder (resolution of \(1nm\)) are averaged.
|
To do so, all the attocube measurements corresponding to each position measured by the Encoder (resolution of \(1nm\)) are averaged.
|
||||||
Figure <a href="#orgfbf0bc5">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.
|
Figure <a href="#org1c54e43">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>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">[e_sorted, <span class="org-type">~</span>, e_ind] = unique(encoder);
|
<pre class="src src-matlab">[e_sorted, <span class="org-type">~</span>, e_ind] = unique(encoder);
|
||||||
@ -489,7 +504,7 @@ i_mean_error = (i_mean <span class="org-type">-</span> e_sorted);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="orgfbf0bc5" class="figure">
|
<div id="org1c54e43" class="figure">
|
||||||
<p><img src="figs/int_enc_error_mean_position.png" alt="int_enc_error_mean_position.png" />
|
<p><img src="figs/int_enc_error_mean_position.png" alt="int_enc_error_mean_position.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -511,11 +526,11 @@ e_sorted_mean_over_period = mean(reshape(i_mean_error(i_init<span class="org-typ
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The obtained periodic non-linearity is shown in Figure <a href="#org9e948e3">15</a>.
|
The obtained periodic non-linearity is shown in Figure <a href="#orgd0a5e3b">15</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org9e948e3" class="figure">
|
<div id="orgd0a5e3b" class="figure">
|
||||||
<p><img src="figs/int_non_linearity_period_wavelength.png" alt="int_non_linearity_period_wavelength.png" />
|
<p><img src="figs/int_non_linearity_period_wavelength.png" alt="int_non_linearity_period_wavelength.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 15: </span>Non-Linearity of the Interferometer over the period of the wavelength</p>
|
<p><span class="figure-number">Figure 15: </span>Non-Linearity of the Interferometer over the period of the wavelength</p>
|
||||||
@ -526,7 +541,7 @@ The obtained periodic non-linearity is shown in Figure <a href="#org9e948e3">15<
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2020-11-10 mar. 10:21</p>
|
<p class="date">Created: 2020-11-10 mar. 12:50</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
56
index.org
56
index.org
@ -15,7 +15,6 @@
|
|||||||
#+HTML_HEAD: <script type="text/javascript" src="./js/readtheorg.js"></script>
|
#+HTML_HEAD: <script type="text/javascript" src="./js/readtheorg.js"></script>
|
||||||
|
|
||||||
#+PROPERTY: header-args:matlab :session *MATLAB*
|
#+PROPERTY: header-args:matlab :session *MATLAB*
|
||||||
#+PROPERTY: header-args:matlab+ :tangle no
|
|
||||||
#+PROPERTY: header-args:matlab+ :comments org
|
#+PROPERTY: header-args:matlab+ :comments org
|
||||||
#+PROPERTY: header-args:matlab+ :exports both
|
#+PROPERTY: header-args:matlab+ :exports both
|
||||||
#+PROPERTY: header-args:matlab+ :results none
|
#+PROPERTY: header-args:matlab+ :results none
|
||||||
@ -25,7 +24,18 @@
|
|||||||
#+PROPERTY: header-args:matlab+ :output-dir figs
|
#+PROPERTY: header-args:matlab+ :output-dir figs
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
|
* Introduction :ignore:
|
||||||
|
|
||||||
|
In this document, few caracteristics of the Attocube Displacement Measuring Interferometer IDS3010 ([[https://www.attocube.com/en/products/laser-displacement-sensor/displacement-measuring-interferometer][link]]) are studied:
|
||||||
|
- Section [[sec:attocube_asd_noise]]: the ASD noise of the measured displacement is estimated
|
||||||
|
- Section [[sec:effect_air_protection]]: the effect of two air protections on the stability of the measurement is studied
|
||||||
|
- Section [[sec:attocube_non_linearity]]: the cyclic non-linearity of the attocube is estimated using a encoder
|
||||||
|
|
||||||
* Estimation of the Spectral Density of the Attocube Noise
|
* Estimation of the Spectral Density of the Attocube Noise
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args:matlab+: :tangle matlab/attocube_asd_noise.m
|
||||||
|
:END:
|
||||||
|
<<sec:attocube_asd_noise>>
|
||||||
** Introduction :ignore:
|
** Introduction :ignore:
|
||||||
|
|
||||||
#+name: fig:test-bench-schematic
|
#+name: fig:test-bench-schematic
|
||||||
@ -46,11 +56,19 @@
|
|||||||
<<matlab-init>>
|
<<matlab-init>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no
|
||||||
|
addpath('./matlab/mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :eval no
|
||||||
|
addpath('./mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Long and Slow measurement
|
** Long and Slow measurement
|
||||||
The first measurement was made during ~17 hours with a sampling time of $T_s = 0.1\,s$.
|
The first measurement was made during ~17 hours with a sampling time of $T_s = 0.1\,s$.
|
||||||
|
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
load('./mat/long_test_plastic.mat', 'x', 't')
|
load('long_test_plastic.mat', 'x', 't')
|
||||||
Ts = 0.1; % [s]
|
Ts = 0.1; % [s]
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -162,7 +180,7 @@ An second measurement is done in order to estimate the high frequency noise of t
|
|||||||
The measurement is done with a sampling time of $T_s = 0.1\,ms$ and a duration of ~100s.
|
The measurement is done with a sampling time of $T_s = 0.1\,ms$ and a duration of ~100s.
|
||||||
|
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
load('./mat/short_test_plastic.mat')
|
load('short_test_plastic.mat')
|
||||||
Ts = 1e-4; % [s]
|
Ts = 1e-4; % [s]
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -217,6 +235,10 @@ The computed ASD of the two measurements are combined in Figure [[fig:psd_combin
|
|||||||
[[file:figs/psd_combined.png]]
|
[[file:figs/psd_combined.png]]
|
||||||
|
|
||||||
* Effect of the "bubble sheet" and "Aluminium tube"
|
* Effect of the "bubble sheet" and "Aluminium tube"
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args:matlab+: :tangle matlab/effect_air_protection.m
|
||||||
|
:END:
|
||||||
|
<<sec:effect_air_protection>>
|
||||||
** Introduction :ignore:
|
** Introduction :ignore:
|
||||||
|
|
||||||
#+name: fig:picture-test-bench-aluminium-tube
|
#+name: fig:picture-test-bench-aluminium-tube
|
||||||
@ -233,9 +255,17 @@ The computed ASD of the two measurements are combined in Figure [[fig:psd_combin
|
|||||||
<<matlab-init>>
|
<<matlab-init>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no
|
||||||
|
addpath('./matlab/mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :eval no
|
||||||
|
addpath('./mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Aluminium Tube and Bubble Sheet
|
** Aluminium Tube and Bubble Sheet
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
load('./mat/short_test_plastic.mat');
|
load('short_test_plastic.mat');
|
||||||
Ts = 1e-4; % [s]
|
Ts = 1e-4; % [s]
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -256,7 +286,7 @@ The computed ASD of the two measurements are combined in Figure [[fig:psd_combin
|
|||||||
|
|
||||||
** Only Aluminium Tube
|
** Only Aluminium Tube
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
load('./mat/short_test_alu_tube.mat');
|
load('short_test_alu_tube.mat');
|
||||||
Ts = 1e-4; % [s]
|
Ts = 1e-4; % [s]
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -278,7 +308,7 @@ The time domain measurement is shown in Figure [[fig:short_meas_time_domain]].
|
|||||||
|
|
||||||
** Nothing
|
** Nothing
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
load('./mat/short_test_without_material.mat');
|
load('short_test_without_material.mat');
|
||||||
Ts = 1e-4; % [s]
|
Ts = 1e-4; % [s]
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -325,6 +355,10 @@ The time domain measurement is shown in Figure [[fig:short_meas_time_domain]].
|
|||||||
[[file:figs/asd_noise_comp_bubble_aluminium.png]]
|
[[file:figs/asd_noise_comp_bubble_aluminium.png]]
|
||||||
|
|
||||||
* Measurement of the Attocube's non-linearity
|
* Measurement of the Attocube's non-linearity
|
||||||
|
:PROPERTIES:
|
||||||
|
:header-args:matlab+: :tangle matlab/attocube_non_linearity.m
|
||||||
|
:END:
|
||||||
|
<<sec:attocube_non_linearity>>
|
||||||
** Introduction :ignore:
|
** Introduction :ignore:
|
||||||
The measurement setup is shown in Figure [[fig:exp_setup_schematic]].
|
The measurement setup is shown in Figure [[fig:exp_setup_schematic]].
|
||||||
|
|
||||||
@ -355,11 +389,19 @@ As will be shown shortly, this measurement permitted to measure the period non-l
|
|||||||
<<matlab-init>>
|
<<matlab-init>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no
|
||||||
|
addpath('./matlab/mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :eval no
|
||||||
|
addpath('./mat/');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Load Data
|
** Load Data
|
||||||
The measurement data are loaded and the offset are removed using the =detrend= command.
|
The measurement data are loaded and the offset are removed using the =detrend= command.
|
||||||
|
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
load('mat/int_enc_comp.mat', 'interferometer', 'encoder', 'u', 't');
|
load('int_enc_comp.mat', 'interferometer', 'encoder', 'u', 't');
|
||||||
Ts = 1e-4; % Sampling Time [s]
|
Ts = 1e-4; % Sampling Time [s]
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
@ -1,7 +0,0 @@
|
|||||||
load('./mat/test.mat', 't', 'x');
|
|
||||||
|
|
||||||
figure; plot(t, x)
|
|
||||||
|
|
||||||
load('./mat/long_test.mat', 't', 'x');
|
|
||||||
|
|
||||||
figure; plot(t/60/60, 1e9*x)
|
|
152
matlab/attocube_asd_noise.m
Normal file
152
matlab/attocube_asd_noise.m
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
%% Clear Workspace and Close figures
|
||||||
|
clear; close all; clc;
|
||||||
|
|
||||||
|
%% Intialize Laplace variable
|
||||||
|
s = zpk('s');
|
||||||
|
|
||||||
|
addpath('./mat/');
|
||||||
|
|
||||||
|
% Long and Slow measurement
|
||||||
|
% The first measurement was made during ~17 hours with a sampling time of $T_s = 0.1\,s$.
|
||||||
|
|
||||||
|
|
||||||
|
load('long_test_plastic.mat', 'x', 't')
|
||||||
|
Ts = 0.1; % [s]
|
||||||
|
|
||||||
|
figure;
|
||||||
|
plot(t/60/60, 1e9*x)
|
||||||
|
xlim([0, 17.5]);
|
||||||
|
xlabel('Time [h]'); ylabel('Displacement [nm]');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% #+name: fig:long_meas_time_domain_full
|
||||||
|
% #+caption: Long measurement time domain data
|
||||||
|
% #+RESULTS:
|
||||||
|
% [[file:figs/long_meas_time_domain_full.png]]
|
||||||
|
|
||||||
|
% Let's fit the data with a step response to a first order low pass filter (Figure [[fig:long_meas_time_domain_fit]]).
|
||||||
|
|
||||||
|
|
||||||
|
f = @(b,x) b(1)*(1 - exp(-x/b(2)));
|
||||||
|
|
||||||
|
y_cur = x(t < 17.5*60*60);
|
||||||
|
t_cur = t(t < 17.5*60*60);
|
||||||
|
|
||||||
|
nrmrsd = @(b) norm(y_cur - f(b,t_cur)); % Residual Norm Cost Function
|
||||||
|
B0 = [400e-9, 2*60*60]; % Choose Appropriate Initial Estimates
|
||||||
|
[B,rnrm] = fminsearch(nrmrsd, B0); % Estimate Parameters ‘B’
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% The corresponding time constant is (in [h]):
|
||||||
|
|
||||||
|
B(2)/60/60
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% #+RESULTS:
|
||||||
|
% : 2.0658
|
||||||
|
|
||||||
|
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
plot(t_cur/60/60, 1e9*y_cur);
|
||||||
|
plot(t_cur/60/60, 1e9*f(B, t_cur));
|
||||||
|
hold off;
|
||||||
|
xlim([0, 17.5])
|
||||||
|
xlabel('Time [h]'); ylabel('Displacement [nm]');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% #+name: fig:long_meas_time_domain_fit
|
||||||
|
% #+caption: Fit of the measurement data with a step response of a first order low pass filter
|
||||||
|
% #+RESULTS:
|
||||||
|
% [[file:figs/long_meas_time_domain_fit.png]]
|
||||||
|
|
||||||
|
% We can see in Figure [[fig:long_meas_time_domain_full]] 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 [[fig:long_meas_time_domain_zoom]].
|
||||||
|
|
||||||
|
|
||||||
|
t1 = 10.5; t2 = 17.5; % [h]
|
||||||
|
|
||||||
|
x = x(t > t1*60*60 & t < t2*60*60);
|
||||||
|
x = x - mean(x);
|
||||||
|
t = t(t > t1*60*60 & t < t2*60*60);
|
||||||
|
t = t - t(1);
|
||||||
|
|
||||||
|
figure;
|
||||||
|
plot(t/60/60, 1e9*x);
|
||||||
|
xlabel('Time [h]'); ylabel('Measured Displacement [nm]')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% #+name: fig:long_meas_time_domain_zoom
|
||||||
|
% #+caption: Kept data (removed slow drifts during the first hours)
|
||||||
|
% #+RESULTS:
|
||||||
|
% [[file:figs/long_meas_time_domain_zoom.png]]
|
||||||
|
|
||||||
|
% The Power Spectral Density of the measured displacement is computed
|
||||||
|
|
||||||
|
win = hann(ceil(length(x)/20));
|
||||||
|
[p_1, f_1] = pwelch(x, win, [], [], 1/Ts);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% As a low pass filter was used in the measurement process, we multiply the PSD by the square of the inverse of the filter's norm.
|
||||||
|
|
||||||
|
G_lpf = 1/(1 + s/2/pi);
|
||||||
|
p_1 = p_1./abs(squeeze(freqresp(G_lpf, f_1, 'Hz'))).^2;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% Only frequencies below 2Hz are taken into account (high frequency noise will be measured afterwards).
|
||||||
|
|
||||||
|
p_1 = p_1(f_1 < 2);
|
||||||
|
f_1 = f_1(f_1 < 2);
|
||||||
|
|
||||||
|
% Short and Fast measurement
|
||||||
|
% 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.
|
||||||
|
|
||||||
|
|
||||||
|
load('short_test_plastic.mat')
|
||||||
|
Ts = 1e-4; % [s]
|
||||||
|
|
||||||
|
x = detrend(x, 0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% The time domain measurement is shown in Figure [[fig:short_meas_time_domain]].
|
||||||
|
|
||||||
|
|
||||||
|
figure;
|
||||||
|
plot(t, 1e9*x)
|
||||||
|
xlabel('Time [s]'); ylabel('Displacement [nm]');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% #+name: fig:short_meas_time_domain
|
||||||
|
% #+caption: Time domain measurement with the high sampling rate
|
||||||
|
% #+RESULTS:
|
||||||
|
% [[file:figs/short_meas_time_domain.png]]
|
||||||
|
|
||||||
|
% The Power Spectral Density of the measured displacement is computed
|
||||||
|
|
||||||
|
win = hann(ceil(length(x)/20));
|
||||||
|
[p_2, f_2] = pwelch(x, win, [], [], 1/Ts);
|
||||||
|
|
||||||
|
% Obtained Amplitude Spectral Density of the measured displacement
|
||||||
|
|
||||||
|
% The computed ASD of the two measurements are combined in Figure [[fig:psd_combined]].
|
||||||
|
|
||||||
|
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
plot(f_1(8:end), sqrt(p_1(8:end)), 'k-');
|
||||||
|
plot(f_2(8:end), sqrt(p_2(8:end)), 'k-');
|
||||||
|
hold off;
|
||||||
|
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
|
||||||
|
ylabel('ASD [$m/\sqrt{Hz}$]'); xlabel('Frequency [Hz]');
|
131
matlab/attocube_non_linearity.m
Normal file
131
matlab/attocube_non_linearity.m
Normal file
@ -0,0 +1,131 @@
|
|||||||
|
%% Clear Workspace and Close figures
|
||||||
|
clear; close all; clc;
|
||||||
|
|
||||||
|
%% Intialize Laplace variable
|
||||||
|
s = zpk('s');
|
||||||
|
|
||||||
|
addpath('./mat/');
|
||||||
|
|
||||||
|
% Load Data
|
||||||
|
% The measurement data are loaded and the offset are removed using the =detrend= command.
|
||||||
|
|
||||||
|
|
||||||
|
load('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);
|
||||||
|
|
||||||
|
% Time Domain Results
|
||||||
|
% One period of the displacement of the mass as measured by the encoder and interferometer are shown in Figure [[fig:int_enc_one_cycle]].
|
||||||
|
% 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;
|
||||||
|
hold on;
|
||||||
|
plot(t, encoder, '-', 'DisplayName', 'Encoder')
|
||||||
|
plot(t, interferometer, '--', 'DisplayName', 'Interferometer')
|
||||||
|
hold off;
|
||||||
|
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||||
|
legend('location', 'southeast');
|
||||||
|
xlim([50, 52])
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% #+name: fig:int_enc_one_cycle
|
||||||
|
% #+caption: One cycle measurement
|
||||||
|
% #+RESULTS:
|
||||||
|
% [[file:figs/int_enc_one_cycle.png]]
|
||||||
|
|
||||||
|
% The difference between the two measurements during the same period is shown in Figure [[fig:int_enc_one_cycle_error]].
|
||||||
|
|
||||||
|
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
plot(t, encoder - interferometer, 'DisplayName', 'Difference')
|
||||||
|
hold off;
|
||||||
|
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||||
|
legend('location', 'northeast');
|
||||||
|
xlim([50, 52])
|
||||||
|
|
||||||
|
% Difference between Encoder and Interferometer as a function of time
|
||||||
|
% 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 [[fig:int_enc_error_mean_time]].
|
||||||
|
% 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;
|
||||||
|
hold on;
|
||||||
|
for i_i = 1:size(d_err_mean, 2)
|
||||||
|
plot(t(1:size(d_err_mean, 1)), d_err_mean(:, i_i), 'k-')
|
||||||
|
end
|
||||||
|
plot(t(1:size(d_err_mean, 1)), mean(d_err_mean, 2), 'r-')
|
||||||
|
hold off;
|
||||||
|
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||||
|
|
||||||
|
% Difference between Encoder and Interferometer as a function of position
|
||||||
|
% Figure [[fig:int_enc_error_mean_time]] 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 [[fig:int_enc_error_mean_position]] 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;
|
||||||
|
hold on;
|
||||||
|
% plot(encoder, interferometer - encoder, 'k.', 'DisplayName', 'Difference')
|
||||||
|
plot(1e6*(e_sorted), 1e9*(i_mean_error))
|
||||||
|
hold off;
|
||||||
|
xlabel('Encoder Measurement [$\mu m$]'); ylabel('Measrement Error [nm]');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% #+name: fig:int_enc_error_mean_position
|
||||||
|
% #+caption: Difference between the two measurement as a function of the measured position by the encoder, averaged for all the cycles
|
||||||
|
% #+RESULTS:
|
||||||
|
% [[file:figs/int_enc_error_mean_position.png]]
|
||||||
|
|
||||||
|
% 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 [[fig:int_non_linearity_period_wavelength]].
|
||||||
|
|
||||||
|
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
plot(1e-3*(0:win_length-1), 1e9*(e_sorted_mean_over_period))
|
||||||
|
hold off;
|
||||||
|
xlabel('Displacement [$\mu m$]'); ylabel('Measurement Non-Linearity [nm]');
|
73
matlab/effect_air_protection.m
Normal file
73
matlab/effect_air_protection.m
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
%% Clear Workspace and Close figures
|
||||||
|
clear; close all; clc;
|
||||||
|
|
||||||
|
%% Intialize Laplace variable
|
||||||
|
s = zpk('s');
|
||||||
|
|
||||||
|
addpath('./mat/');
|
||||||
|
|
||||||
|
% Aluminium Tube and Bubble Sheet
|
||||||
|
|
||||||
|
load('short_test_plastic.mat');
|
||||||
|
Ts = 1e-4; % [s]
|
||||||
|
|
||||||
|
x = detrend(x, 0);
|
||||||
|
|
||||||
|
figure;
|
||||||
|
plot(t, 1e9*x)
|
||||||
|
xlabel('Time [s]'); ylabel('Displacement [nm]');
|
||||||
|
|
||||||
|
win = hann(ceil(length(x)/10));
|
||||||
|
[p_1, f_1] = pwelch(x, win, [], [], 1/Ts);
|
||||||
|
|
||||||
|
% Only Aluminium Tube
|
||||||
|
|
||||||
|
load('short_test_alu_tube.mat');
|
||||||
|
Ts = 1e-4; % [s]
|
||||||
|
|
||||||
|
x = detrend(x, 0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% The time domain measurement is shown in Figure [[fig:short_meas_time_domain]].
|
||||||
|
|
||||||
|
figure;
|
||||||
|
plot(t, 1e9*x)
|
||||||
|
xlabel('Time [s]'); ylabel('Displacement [nm]');
|
||||||
|
|
||||||
|
win = hann(ceil(length(x)/10));
|
||||||
|
[p_2, f_2] = pwelch(x, win, [], [], 1/Ts);
|
||||||
|
|
||||||
|
% Nothing
|
||||||
|
|
||||||
|
load('short_test_without_material.mat');
|
||||||
|
Ts = 1e-4; % [s]
|
||||||
|
|
||||||
|
x = detrend(x, 0);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
% The time domain measurement is shown in Figure [[fig:short_meas_time_domain]].
|
||||||
|
|
||||||
|
figure;
|
||||||
|
plot(t, 1e9*x)
|
||||||
|
xlabel('Time [s]'); ylabel('Displacement [nm]');
|
||||||
|
|
||||||
|
win = hann(ceil(length(x)/10));
|
||||||
|
[p_3, f_3] = pwelch(x, win, [], [], 1/Ts);
|
||||||
|
|
||||||
|
% Comparison
|
||||||
|
|
||||||
|
figure;
|
||||||
|
hold on;
|
||||||
|
plot(f_1(8:end), sqrt(p_1(8:end)), '-', ...
|
||||||
|
'DisplayName', 'Alunimium + Bubble');
|
||||||
|
plot(f_2(8:end), sqrt(p_2(8:end)), '-', ...
|
||||||
|
'DisplayName', 'Aluminium');
|
||||||
|
plot(f_3(8:end), sqrt(p_3(8:end)), '-', ...
|
||||||
|
'DisplayName', 'nothing');
|
||||||
|
hold off;
|
||||||
|
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
|
||||||
|
ylabel('ASD [$m/\sqrt{Hz}$]'); xlabel('Frequency [Hz]');
|
||||||
|
xlim([1e-1, 5e3]);
|
||||||
|
legend('location', 'northeast');
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user