Change all the organization of the files

This commit is contained in:
Thomas Dehaeze 2020-02-25 18:10:20 +01:00
parent abe29e9938
commit ceefaa91a3
518 changed files with 7749 additions and 6437 deletions

View File

@ -1 +0,0 @@
../figs/

Binary file not shown.

View File

@ -1 +0,0 @@
../figs/

File diff suppressed because it is too large Load Diff

View File

@ -1 +0,0 @@
../figs

View File

@ -1 +0,0 @@
../figs

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"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>
<!-- 2019-10-08 mar. 11:13 --> <!-- 2020-02-25 mar. 18:08 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Control of the NASS</title> <title>Control of the NASS</title>
@ -205,7 +207,7 @@
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
JavaScript code in this tag. JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc. Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU redistribute it and/or modify it under the terms of the GNU
@ -257,8 +259,7 @@ for the JavaScript code in this tag.
</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: 2019-10-08 mar. 11:13</p> <p class="date">Created: 2020-02-25 mar. 18:08</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"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-02-18 mar. 17:44 --> <!-- 2020-02-25 mar. 18:08 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Identification of the disturbances</title> <title>Identification of the disturbances</title>
@ -285,7 +286,7 @@ The goal here is to extract the Power Spectral Density of the sources of perturb
</p> </p>
<p> <p>
The sources of perturbations are (schematically shown in figure <a href="#org0dbac72">1</a>): The sources of perturbations are (schematically shown in figure <a href="#org3b8025c">1</a>):
</p> </p>
<ul class="org-ul"> <ul class="org-ul">
<li>\(D_w\): Ground Motion</li> <li>\(D_w\): Ground Motion</li>
@ -294,12 +295,12 @@ These forces can be due to imperfect guiding for instance.</li>
</ul> </ul>
<p> <p>
Because we cannot measure directly the perturbation forces, we have the measure the effect of those perturbations on the system (in terms of velocity for instance using geophones, \(D\) on figure <a href="#org0dbac72">1</a>) and then, using a model, compute the forces that induced such velocity. Because we cannot measure directly the perturbation forces, we have the measure the effect of those perturbations on the system (in terms of velocity for instance using geophones, \(D\) on figure <a href="#org3b8025c">1</a>) and then, using a model, compute the forces that induced such velocity.
</p> </p>
<div id="org0dbac72" class="figure"> <div id="org3b8025c" class="figure">
<p><img src="figs/uniaxial-model-micro-station.png" alt="uniaxial-model-micro-station.png" /> <p><img src="figs/uniaxial-model-micro-station.png" alt="uniaxial-model-micro-station.png" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Schematic of the Micro Station and the sources of disturbance</p> <p><span class="figure-number">Figure 1: </span>Schematic of the Micro Station and the sources of disturbance</p>
@ -310,19 +311,19 @@ Because we cannot measure directly the perturbation forces, we have the measure
This file is divided in the following sections: This file is divided in the following sections:
</p> </p>
<ul class="org-ul"> <ul class="org-ul">
<li>Section <a href="#org2c7a8eb">1</a>: the simscape model used here is presented</li> <li>Section <a href="#org7cdab70">1</a>: the simscape model used here is presented</li>
<li>Section <a href="#orgdef3420">2</a>: transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup</li> <li>Section <a href="#org43ec76b">2</a>: transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup</li>
<li>Section <a href="#org1eb00b2">3</a>: the bode plot of those transfer functions are shown</li> <li>Section <a href="#org5636fee">3</a>: the bode plot of those transfer functions are shown</li>
<li>Section <a href="#orgd955c86">4</a>: the measured PSD of the effect of the disturbances are shown</li> <li>Section <a href="#org40a7e4e">4</a>: the measured PSD of the effect of the disturbances are shown</li>
<li>Section <a href="#org6914212">5</a>: from the model and the measured PSD, the PSD of the disturbance forces are computed</li> <li>Section <a href="#orgd113ba5">5</a>: from the model and the measured PSD, the PSD of the disturbance forces are computed</li>
<li>Section <a href="#orgc51ba08">6</a>: with the computed PSD, the noise budget of the system is done</li> <li>Section <a href="#org71da6bd">6</a>: with the computed PSD, the noise budget of the system is done</li>
</ul> </ul>
<div id="outline-container-Simscape%20Model" class="outline-2"> <div id="outline-container-orgd6383a2" class="outline-2">
<h2 id="Simscape-Model"><span class="section-number-2">1</span> Simscape Model</h2> <h2 id="Simscape-Model"><span class="section-number-2">1</span> Simscape Model</h2>
<div class="outline-text-2" id="text-Simscape-Model"> <div class="outline-text-2" id="text-Simscape-Model">
<p> <p>
<a id="org2c7a8eb"></a> <a id="org7cdab70"></a>
</p> </p>
<p> <p>
@ -363,11 +364,11 @@ initializeSample(<span class="org-string">'type'</span>, <span class="org-string
</div> </div>
</div> </div>
<div id="outline-container-Identification" class="outline-2"> <div id="outline-container-orgab57d7a" class="outline-2">
<h2 id="Identification"><span class="section-number-2">2</span> Identification</h2> <h2 id="Identification"><span class="section-number-2">2</span> Identification</h2>
<div class="outline-text-2" id="text-Identification"> <div class="outline-text-2" id="text-Identification">
<p> <p>
<a id="orgdef3420"></a> <a id="org43ec76b"></a>
The transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup with the code below. The transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup with the code below.
</p> </p>
@ -416,15 +417,15 @@ G.OutputName = {<span class="org-string">'Vm'</span>};
</div> </div>
</div> </div>
<div id="outline-container-Sensitivity%20to%20Disturbances" class="outline-2"> <div id="outline-container-org26913fc" class="outline-2">
<h2 id="Sensitivity-to-Disturbances"><span class="section-number-2">3</span> Sensitivity to Disturbances</h2> <h2 id="Sensitivity-to-Disturbances"><span class="section-number-2">3</span> Sensitivity to Disturbances</h2>
<div class="outline-text-2" id="text-Sensitivity-to-Disturbances"> <div class="outline-text-2" id="text-Sensitivity-to-Disturbances">
<p> <p>
<a id="org1eb00b2"></a> <a id="org5636fee"></a>
</p> </p>
<div id="org40ebd12" class="figure"> <div id="org7fe296c" class="figure">
<p><img src="figs/sensitivity_dist_gm.png" alt="sensitivity_dist_gm.png" /> <p><img src="figs/sensitivity_dist_gm.png" alt="sensitivity_dist_gm.png" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Sensitivity to Ground Motion (<a href="./figs/sensitivity_dist_gm.png">png</a>, <a href="./figs/sensitivity_dist_gm.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 2: </span>Sensitivity to Ground Motion (<a href="./figs/sensitivity_dist_gm.png">png</a>, <a href="./figs/sensitivity_dist_gm.pdf">pdf</a>)</p>
@ -432,7 +433,7 @@ G.OutputName = {<span class="org-string">'Vm'</span>};
<div id="org488da2a" class="figure"> <div id="orgce9715c" class="figure">
<p><img src="figs/sensitivity_dist_fty.png" alt="sensitivity_dist_fty.png" /> <p><img src="figs/sensitivity_dist_fty.png" alt="sensitivity_dist_fty.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </span>Sensitivity to vertical forces applied by the Ty stage (<a href="./figs/sensitivity_dist_fty.png">png</a>, <a href="./figs/sensitivity_dist_fty.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 3: </span>Sensitivity to vertical forces applied by the Ty stage (<a href="./figs/sensitivity_dist_fty.png">png</a>, <a href="./figs/sensitivity_dist_fty.pdf">pdf</a>)</p>
@ -440,7 +441,7 @@ G.OutputName = {<span class="org-string">'Vm'</span>};
<div id="org8152b2c" class="figure"> <div id="orga3e6fbc" class="figure">
<p><img src="figs/sensitivity_dist_frz.png" alt="sensitivity_dist_frz.png" /> <p><img src="figs/sensitivity_dist_frz.png" alt="sensitivity_dist_frz.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Sensitivity to vertical forces applied by the Rz stage (<a href="./figs/sensitivity_dist_frz.png">png</a>, <a href="./figs/sensitivity_dist_frz.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 4: </span>Sensitivity to vertical forces applied by the Rz stage (<a href="./figs/sensitivity_dist_frz.png">png</a>, <a href="./figs/sensitivity_dist_frz.pdf">pdf</a>)</p>
@ -448,11 +449,11 @@ G.OutputName = {<span class="org-string">'Vm'</span>};
</div> </div>
</div> </div>
<div id="outline-container-Power%20Spectral%20Density%20of%20the%20effect%20of%20the%20disturbances" class="outline-2"> <div id="outline-container-org627e5cf" class="outline-2">
<h2 id="Power-Spectral-Density-of-the-effect-of-the-disturbances"><span class="section-number-2">4</span> Power Spectral Density of the effect of the disturbances</h2> <h2 id="Power-Spectral-Density-of-the-effect-of-the-disturbances"><span class="section-number-2">4</span> Power Spectral Density of the effect of the disturbances</h2>
<div class="outline-text-2" id="text-Power-Spectral-Density-of-the-effect-of-the-disturbances"> <div class="outline-text-2" id="text-Power-Spectral-Density-of-the-effect-of-the-disturbances">
<p> <p>
<a id="orgd955c86"></a> <a id="org40a7e4e"></a>
The PSD of the relative velocity between the hexapod and the marble in \([(m/s)^2/Hz]\) are loaded for the following sources of disturbance: The PSD of the relative velocity between the hexapod and the marble in \([(m/s)^2/Hz]\) are loaded for the following sources of disturbance:
</p> </p>
<ul class="org-ul"> <ul class="org-ul">
@ -481,15 +482,15 @@ We now compute the relative velocity between the hexapod and the granite due to
</div> </div>
<p> <p>
The Power Spectral Density of the relative motion/velocity of the hexapod with respect to the granite are shown in figures <a href="#orga80b694">5</a> and <a href="#org337df44">6</a>. The Power Spectral Density of the relative motion/velocity of the hexapod with respect to the granite are shown in figures <a href="#orgb815ef2">5</a> and <a href="#org4c2c215">6</a>.
</p> </p>
<p> <p>
The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a href="#org2f4ee86">7</a>. The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a href="#orgaf910f1">7</a>.
</p> </p>
<div id="orga80b694" class="figure"> <div id="orgb815ef2" class="figure">
<p><img src="figs/dist_effect_relative_velocity.png" alt="dist_effect_relative_velocity.png" /> <p><img src="figs/dist_effect_relative_velocity.png" alt="dist_effect_relative_velocity.png" />
</p> </p>
<p><span class="figure-number">Figure 5: </span>Amplitude Spectral Density of the relative velocity of the hexapod with respect to the granite due to different sources of perturbation (<a href="./figs/dist_effect_relative_velocity.png">png</a>, <a href="./figs/dist_effect_relative_velocity.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 5: </span>Amplitude Spectral Density of the relative velocity of the hexapod with respect to the granite due to different sources of perturbation (<a href="./figs/dist_effect_relative_velocity.png">png</a>, <a href="./figs/dist_effect_relative_velocity.pdf">pdf</a>)</p>
@ -497,14 +498,14 @@ The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a h
<div id="org337df44" class="figure"> <div id="org4c2c215" class="figure">
<p><img src="figs/dist_effect_relative_motion.png" alt="dist_effect_relative_motion.png" /> <p><img src="figs/dist_effect_relative_motion.png" alt="dist_effect_relative_motion.png" />
</p> </p>
<p><span class="figure-number">Figure 6: </span>Amplitude Spectral Density of the relative displacement of the hexapod with respect to the granite due to different sources of perturbation (<a href="./figs/dist_effect_relative_motion.png">png</a>, <a href="./figs/dist_effect_relative_motion.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 6: </span>Amplitude Spectral Density of the relative displacement of the hexapod with respect to the granite due to different sources of perturbation (<a href="./figs/dist_effect_relative_motion.png">png</a>, <a href="./figs/dist_effect_relative_motion.pdf">pdf</a>)</p>
</div> </div>
<div id="org2f4ee86" class="figure"> <div id="orgaf910f1" class="figure">
<p><img src="figs/dist_effect_relative_motion_cas.png" alt="dist_effect_relative_motion_cas.png" /> <p><img src="figs/dist_effect_relative_motion_cas.png" alt="dist_effect_relative_motion_cas.png" />
</p> </p>
<p><span class="figure-number">Figure 7: </span>Cumulative Amplitude Spectrum of the relative motion due to different sources of perturbation (<a href="./figs/dist_effect_relative_motion_cas.png">png</a>, <a href="./figs/dist_effect_relative_motion_cas.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 7: </span>Cumulative Amplitude Spectrum of the relative motion due to different sources of perturbation (<a href="./figs/dist_effect_relative_motion_cas.png">png</a>, <a href="./figs/dist_effect_relative_motion_cas.pdf">pdf</a>)</p>
@ -512,15 +513,15 @@ The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a h
</div> </div>
</div> </div>
<div id="outline-container-Compute%20the%20Power%20Spectral%20Density%20of%20the%20disturbance%20force" class="outline-2"> <div id="outline-container-orge27c71b" class="outline-2">
<h2 id="Compute-the-Power-Spectral-Density-of-the-disturbance-force"><span class="section-number-2">5</span> Compute the Power Spectral Density of the disturbance force</h2> <h2 id="Compute-the-Power-Spectral-Density-of-the-disturbance-force"><span class="section-number-2">5</span> Compute the Power Spectral Density of the disturbance force</h2>
<div class="outline-text-2" id="text-Compute-the-Power-Spectral-Density-of-the-disturbance-force"> <div class="outline-text-2" id="text-Compute-the-Power-Spectral-Density-of-the-disturbance-force">
<p> <p>
<a id="org6914212"></a> <a id="orgd113ba5"></a>
</p> </p>
<p> <p>
Now, from the extracted transfer functions from the disturbance force to the relative motion of the hexapod with respect to the granite (section <a href="#org1eb00b2">3</a>) and from the measured PSD of the relative motion (section <a href="#orgd955c86">4</a>), we can compute the PSD of the disturbance force. Now, from the extracted transfer functions from the disturbance force to the relative motion of the hexapod with respect to the granite (section <a href="#org5636fee">3</a>) and from the measured PSD of the relative motion (section <a href="#org40a7e4e">4</a>), we can compute the PSD of the disturbance force.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
@ -530,7 +531,7 @@ tyz.psd_f = tyz.pxz_ty_r<span class="org-type">./</span>abs(squeeze(freqresp(G(<
</div> </div>
<div id="org9a8bb49" class="figure"> <div id="org45cf35c" class="figure">
<p><img src="figs/dist_force_psd.png" alt="dist_force_psd.png" /> <p><img src="figs/dist_force_psd.png" alt="dist_force_psd.png" />
</p> </p>
<p><span class="figure-number">Figure 8: </span>Amplitude Spectral Density of the disturbance force (<a href="./figs/dist_force_psd.png">png</a>, <a href="./figs/dist_force_psd.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 8: </span>Amplitude Spectral Density of the disturbance force (<a href="./figs/dist_force_psd.png">png</a>, <a href="./figs/dist_force_psd.pdf">pdf</a>)</p>
@ -538,11 +539,11 @@ tyz.psd_f = tyz.pxz_ty_r<span class="org-type">./</span>abs(squeeze(freqresp(G(<
</div> </div>
</div> </div>
<div id="outline-container-Noise%20Budget" class="outline-2"> <div id="outline-container-org844ca42" class="outline-2">
<h2 id="Noise-Budget"><span class="section-number-2">6</span> Noise Budget</h2> <h2 id="Noise-Budget"><span class="section-number-2">6</span> Noise Budget</h2>
<div class="outline-text-2" id="text-Noise-Budget"> <div class="outline-text-2" id="text-Noise-Budget">
<p> <p>
<a id="orgc51ba08"></a> <a id="org71da6bd"></a>
</p> </p>
<p> <p>
@ -551,7 +552,7 @@ We should verify that this is coherent with the measurements.
</p> </p>
<div id="orgede2c8c" class="figure"> <div id="orgcacf809" class="figure">
<p><img src="figs/psd_effect_dist_verif.png" alt="psd_effect_dist_verif.png" /> <p><img src="figs/psd_effect_dist_verif.png" alt="psd_effect_dist_verif.png" />
</p> </p>
<p><span class="figure-number">Figure 9: </span>Computed Effect of the disturbances on the relative displacement hexapod/granite (<a href="./figs/psd_effect_dist_verif.png">png</a>, <a href="./figs/psd_effect_dist_verif.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 9: </span>Computed Effect of the disturbances on the relative displacement hexapod/granite (<a href="./figs/psd_effect_dist_verif.png">png</a>, <a href="./figs/psd_effect_dist_verif.pdf">pdf</a>)</p>
@ -559,7 +560,7 @@ We should verify that this is coherent with the measurements.
<div id="org4aeb9e5" class="figure"> <div id="orgf872ab1" class="figure">
<p><img src="figs/cas_computed_relative_displacement.png" alt="cas_computed_relative_displacement.png" /> <p><img src="figs/cas_computed_relative_displacement.png" alt="cas_computed_relative_displacement.png" />
</p> </p>
<p><span class="figure-number">Figure 10: </span>CAS of the total Relative Displacement due to all considered sources of perturbation (<a href="./figs/cas_computed_relative_displacement.png">png</a>, <a href="./figs/cas_computed_relative_displacement.pdf">pdf</a>)</p> <p><span class="figure-number">Figure 10: </span>CAS of the total Relative Displacement due to all considered sources of perturbation (<a href="./figs/cas_computed_relative_displacement.png">png</a>, <a href="./figs/cas_computed_relative_displacement.pdf">pdf</a>)</p>
@ -567,7 +568,7 @@ We should verify that this is coherent with the measurements.
</div> </div>
</div> </div>
<div id="outline-container-Save" class="outline-2"> <div id="outline-container-org800eaed" class="outline-2">
<h2 id="Save"><span class="section-number-2">7</span> Save</h2> <h2 id="Save"><span class="section-number-2">7</span> Save</h2>
<div class="outline-text-2" id="text-Save"> <div class="outline-text-2" id="text-Save">
<p> <p>
@ -591,7 +592,7 @@ save(<span class="org-string">'./disturbances/mat/dist_psd.mat'</span>, <span cl
</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-02-18 mar. 17:44</p> <p class="date">Created: 2020-02-25 mar. 18:08</p>
</div> </div>
</body> </body>
</html> </html>

801
docs/experiments.html Normal file
View File

@ -0,0 +1,801 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<?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-02-25 mar. 18:08 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Tomography Experiment</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
margin-bottom: .2em; }
.subtitle { text-align: center;
font-size: medium;
font-weight: bold;
margin-top:0; }
.todo { font-family: monospace; color: red; }
.done { font-family: monospace; color: green; }
.priority { font-family: monospace; color: orange; }
.tag { background-color: #eee; font-family: monospace;
padding: 2px; font-size: 80%; font-weight: normal; }
.timestamp { color: #bebebe; }
.timestamp-kwd { color: #5f9ea0; }
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
.underline { text-decoration: underline; }
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
p.verse { margin-left: 3%; }
pre {
border: 1px solid #ccc;
box-shadow: 3px 3px 3px #eee;
padding: 8pt;
font-family: monospace;
overflow: auto;
margin: 1.2em;
}
pre.src {
position: relative;
overflow: visible;
padding-top: 1.2em;
}
pre.src:before {
display: none;
position: absolute;
background-color: white;
top: -10px;
right: 10px;
padding: 3px;
border: 1px solid black;
}
pre.src:hover:before { display: inline;}
/* Languages per Org manual */
pre.src-asymptote:before { content: 'Asymptote'; }
pre.src-awk:before { content: 'Awk'; }
pre.src-C:before { content: 'C'; }
/* pre.src-C++ doesn't work in CSS */
pre.src-clojure:before { content: 'Clojure'; }
pre.src-css:before { content: 'CSS'; }
pre.src-D:before { content: 'D'; }
pre.src-ditaa:before { content: 'ditaa'; }
pre.src-dot:before { content: 'Graphviz'; }
pre.src-calc:before { content: 'Emacs Calc'; }
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
pre.src-fortran:before { content: 'Fortran'; }
pre.src-gnuplot:before { content: 'gnuplot'; }
pre.src-haskell:before { content: 'Haskell'; }
pre.src-hledger:before { content: 'hledger'; }
pre.src-java:before { content: 'Java'; }
pre.src-js:before { content: 'Javascript'; }
pre.src-latex:before { content: 'LaTeX'; }
pre.src-ledger:before { content: 'Ledger'; }
pre.src-lisp:before { content: 'Lisp'; }
pre.src-lilypond:before { content: 'Lilypond'; }
pre.src-lua:before { content: 'Lua'; }
pre.src-matlab:before { content: 'MATLAB'; }
pre.src-mscgen:before { content: 'Mscgen'; }
pre.src-ocaml:before { content: 'Objective Caml'; }
pre.src-octave:before { content: 'Octave'; }
pre.src-org:before { content: 'Org mode'; }
pre.src-oz:before { content: 'OZ'; }
pre.src-plantuml:before { content: 'Plantuml'; }
pre.src-processing:before { content: 'Processing.js'; }
pre.src-python:before { content: 'Python'; }
pre.src-R:before { content: 'R'; }
pre.src-ruby:before { content: 'Ruby'; }
pre.src-sass:before { content: 'Sass'; }
pre.src-scheme:before { content: 'Scheme'; }
pre.src-screen:before { content: 'Gnu Screen'; }
pre.src-sed:before { content: 'Sed'; }
pre.src-sh:before { content: 'shell'; }
pre.src-sql:before { content: 'SQL'; }
pre.src-sqlite:before { content: 'SQLite'; }
/* additional languages in org.el's org-babel-load-languages alist */
pre.src-forth:before { content: 'Forth'; }
pre.src-io:before { content: 'IO'; }
pre.src-J:before { content: 'J'; }
pre.src-makefile:before { content: 'Makefile'; }
pre.src-maxima:before { content: 'Maxima'; }
pre.src-perl:before { content: 'Perl'; }
pre.src-picolisp:before { content: 'Pico Lisp'; }
pre.src-scala:before { content: 'Scala'; }
pre.src-shell:before { content: 'Shell Script'; }
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
/* additional language identifiers per "defun org-babel-execute"
in ob-*.el */
pre.src-cpp:before { content: 'C++'; }
pre.src-abc:before { content: 'ABC'; }
pre.src-coq:before { content: 'Coq'; }
pre.src-groovy:before { content: 'Groovy'; }
/* additional language identifiers from org-babel-shell-names in
ob-shell.el: ob-shell is the only babel language using a lambda to put
the execution function name together. */
pre.src-bash:before { content: 'bash'; }
pre.src-csh:before { content: 'csh'; }
pre.src-ash:before { content: 'ash'; }
pre.src-dash:before { content: 'dash'; }
pre.src-ksh:before { content: 'ksh'; }
pre.src-mksh:before { content: 'mksh'; }
pre.src-posh:before { content: 'posh'; }
/* Additional Emacs modes also supported by the LaTeX listings package */
pre.src-ada:before { content: 'Ada'; }
pre.src-asm:before { content: 'Assembler'; }
pre.src-caml:before { content: 'Caml'; }
pre.src-delphi:before { content: 'Delphi'; }
pre.src-html:before { content: 'HTML'; }
pre.src-idl:before { content: 'IDL'; }
pre.src-mercury:before { content: 'Mercury'; }
pre.src-metapost:before { content: 'MetaPost'; }
pre.src-modula-2:before { content: 'Modula-2'; }
pre.src-pascal:before { content: 'Pascal'; }
pre.src-ps:before { content: 'PostScript'; }
pre.src-prolog:before { content: 'Prolog'; }
pre.src-simula:before { content: 'Simula'; }
pre.src-tcl:before { content: 'tcl'; }
pre.src-tex:before { content: 'TeX'; }
pre.src-plain-tex:before { content: 'Plain TeX'; }
pre.src-verilog:before { content: 'Verilog'; }
pre.src-vhdl:before { content: 'VHDL'; }
pre.src-xml:before { content: 'XML'; }
pre.src-nxml:before { content: 'XML'; }
/* add a generic configuration mode; LaTeX export needs an additional
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
pre.src-conf:before { content: 'Configuration File'; }
table { border-collapse:collapse; }
caption.t-above { caption-side: top; }
caption.t-bottom { caption-side: bottom; }
td, th { vertical-align:top; }
th.org-right { text-align: center; }
th.org-left { text-align: center; }
th.org-center { text-align: center; }
td.org-right { text-align: right; }
td.org-left { text-align: left; }
td.org-center { text-align: center; }
dt { font-weight: bold; }
.footpara { display: inline; }
.footdef { margin-bottom: 1em; }
.figure { padding: 1em; }
.figure p { text-align: center; }
.equation-container {
display: table;
text-align: center;
width: 100%;
}
.equation {
vertical-align: middle;
}
.equation-label {
display: table-cell;
text-align: right;
vertical-align: middle;
}
.inlinetask {
padding: 10px;
border: 2px solid gray;
margin: 10px;
background: #ffffcc;
}
#org-div-home-and-up
{ text-align: right; font-size: 70%; white-space: nowrap; }
textarea { overflow-x: auto; }
.linenr { font-size: smaller }
.code-highlighted { background-color: #ffff00; }
.org-info-js_info-navigation { border-style: none; }
#org-info-js_console-label
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
.org-info-js_search-highlight
{ background-color: #ffff00; color: #000000; font-weight: bold; }
.org-svg { width: 90%; }
/*]]>*/-->
</style>
<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/zenburn.css"/>
<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>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
</script>
</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">Tomography Experiment</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org03b2a76">1. Simscape Model</a></li>
<li><a href="#org6ed78a0">2. Tomography Experiment with no disturbances</a>
<ul>
<li><a href="#orgc1321b7">2.1. Simulation Setup</a></li>
<li><a href="#orgebeb6c3">2.2. Analysis</a></li>
<li><a href="#orge9a06c9">2.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org16d8e58">3. Tomography Experiment with included perturbations</a>
<ul>
<li><a href="#orgc6ab502">3.1. Simulation Setup</a></li>
<li><a href="#orga551571">3.2. Analysis</a></li>
<li><a href="#org3eee8bd">3.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org72f01ab">4. Tomography when the micro-hexapod is not centered</a>
<ul>
<li><a href="#orga42880e">4.1. Simulation Setup</a></li>
<li><a href="#org58e1909">4.2. Analysis</a></li>
<li><a href="#org4670aba">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org8fa1632">5. Raster Scans with the translation stage</a>
<ul>
<li><a href="#org5778305">5.1. Simulation Setup</a></li>
<li><a href="#org3f73a44">5.2. Analysis</a></li>
<li><a href="#org67ff024">5.3. Conclusion</a></li>
</ul>
</li>
</ul>
</div>
</div>
<p>
The goal here is to simulate some scientific experiments with the tuned Simscape model when no control is applied to the nano-hexapod.
</p>
<p>
This has several goals:
</p>
<ul class="org-ul">
<li>Validate the model</li>
<li>Estimate the expected error motion for the experiments</li>
<li>Estimate the stroke that we may need for the nano-hexapod</li>
</ul>
<p>
The document in organized as follow:
</p>
<ul class="org-ul">
<li>In section <a href="#orgfc7d050">1</a> the Simscape model is initialized</li>
<li>In section <a href="#org3effbb8">2</a> a tomography experiment is performed where the sample is aligned with the rotation axis. No disturbance is included</li>
<li>In section <a href="#org4e7f626">3</a>, the same is done but with disturbance included</li>
<li>In section <a href="#orgb31e3fb">4</a> the micro-hexapod translate the sample such that its center of mass is no longer aligned with the rotation axis. No disturbance is included</li>
<li>In section <a href="#org6aaeb53">5</a>, scans with the translation stage are simulated with no perturbation included</li>
</ul>
<div id="outline-container-org03b2a76" class="outline-2">
<h2 id="org03b2a76"><span class="section-number-2">1</span> Simscape Model</h2>
<div class="outline-text-2" id="text-1">
<p>
<a id="orgfc7d050"></a>
</p>
<div class="org-src-container">
<pre class="src src-matlab">open(<span class="org-string">'nass_model.slx'</span>);
</pre>
</div>
<p>
We load the shared simulink configuration and we set the <code>StopTime</code>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
<span class="org-matlab-simulink-keyword">set_param</span>(<span class="org-variable-name">conf_simulink</span>, <span class="org-string">'StopTime'</span>, <span class="org-string">'5'</span>);
</pre>
</div>
<p>
We first initialize all the stages.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod();
initializeAxisc();
initializeMirror();
initializeNanoHexapod(<span class="org-string">'actuator'</span>, <span class="org-string">'piezo'</span>);
initializeSample(<span class="org-string">'mass'</span>, 1);
</pre>
</div>
<p>
We initialize the reference path for all the stages.
All stage is set to its zero position except the Spindle which is rotating at 60rpm.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeReferences(<span class="org-string">'Rz_type'</span>, <span class="org-string">'rotating'</span>, <span class="org-string">'Rz_period'</span>, 1);
</pre>
</div>
</div>
</div>
<div id="outline-container-org6ed78a0" class="outline-2">
<h2 id="org6ed78a0"><span class="section-number-2">2</span> Tomography Experiment with no disturbances</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org3effbb8"></a>
</p>
</div>
<div id="outline-container-orgc1321b7" class="outline-3">
<h3 id="orgc1321b7"><span class="section-number-3">2.1</span> Simulation Setup</h3>
<div class="outline-text-3" id="text-2-1">
<p>
And we initialize the disturbances to be equal to zero.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeDisturbances(...
<span class="org-string">'Dwx'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - X direction</span>
<span class="org-string">'Dwy'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - Y direction</span>
<span class="org-string">'Dwz'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - Z direction</span>
<span class="org-string">'Fty_x'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Translation Stage - X direction</span>
<span class="org-string">'Fty_z'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Translation Stage - Z direction</span>
<span class="org-string">'Frz_z'</span>, <span class="org-constant">false</span> ...<span class="org-comment"> % Spindle - Z direction</span>
);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">tomo_align_no_dist = struct(<span class="org-string">'t'</span>, t, <span class="org-string">'MTr'</span>, MTr);
save(<span class="org-string">'experiment_tomography/mat/experiment.mat'</span>, <span class="org-string">'tomo_align_no_dist'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-orgebeb6c3" class="outline-3">
<h3 id="orgebeb6c3"><span class="section-number-3">2.2</span> Analysis</h3>
<div class="outline-text-3" id="text-2-2">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'experiment_tomography/mat/experiment.mat'</span>, <span class="org-string">'tomo_align_no_dist'</span>);
t = tomo_align_no_dist.t;
MTr = tomo_align_no_dist.MTr;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">Edx = squeeze(MTr(1, 4, <span class="org-type">:</span>));
Edy = squeeze(MTr(2, 4, <span class="org-type">:</span>));
Edz = squeeze(MTr(3, 4, <span class="org-type">:</span>));
<span class="org-comment">% The angles obtained are u-v-w Euler angles (rotations in the moving frame)</span>
Ery = atan2( squeeze(MTr(1, 3, <span class="org-type">:</span>)), squeeze(sqrt(MTr(1, 1, <span class="org-type">:</span>)<span class="org-type">.^</span>2 <span class="org-type">+</span> MTr(1, 2, <span class="org-type">:</span>)<span class="org-type">.^</span>2)));
Erx = atan2(<span class="org-type">-</span>squeeze(MTr(2, 3, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery), squeeze(MTr(3, 3, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery));
Erz = atan2(<span class="org-type">-</span>squeeze(MTr(1, 2, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery), squeeze(MTr(1, 1, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery));
</pre>
</div>
<div id="org47272c3" class="figure">
<p><img src="figs/exp_tomo_without_dist_trans.png" alt="exp_tomo_without_dist_trans.png" />
</p>
<p><span class="figure-number">Figure 1: </span>X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (<a href="./figs/exp_tomo_without_dist_trans.png">png</a>, <a href="./figs/exp_tomo_without_dist_trans.pdf">pdf</a>)</p>
</div>
<div id="org72f4825" class="figure">
<p><img src="figs/exp_tomo_without_dist_rot.png" alt="exp_tomo_without_dist_rot.png" />
</p>
<p><span class="figure-number">Figure 2: </span>X-Y-Z rotations of the sample w.r.t. granite when performing tomography experiment with no disturbances (<a href="./figs/exp_tomo_without_dist_rot.png">png</a>, <a href="./figs/exp_tomo_without_dist_rot.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-orge9a06c9" class="outline-3">
<h3 id="orge9a06c9"><span class="section-number-3">2.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-3">
<div class="important">
<p>
When everything is aligned, the resulting error motion is very small (nm range) and is quite negligible with respect to the error when disturbances are included.
This residual error motion probably comes from a small misalignment somewhere.
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org16d8e58" class="outline-2">
<h2 id="org16d8e58"><span class="section-number-2">3</span> Tomography Experiment with included perturbations</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="org4e7f626"></a>
</p>
</div>
<div id="outline-container-orgc6ab502" class="outline-3">
<h3 id="orgc6ab502"><span class="section-number-3">3.1</span> Simulation Setup</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We now activate the disturbances.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeDisturbances(...
<span class="org-string">'Dwx'</span>, <span class="org-constant">true</span>, ...<span class="org-comment"> % Ground Motion - X direction</span>
<span class="org-string">'Dwy'</span>, <span class="org-constant">true</span>, ...<span class="org-comment"> % Ground Motion - Y direction</span>
<span class="org-string">'Dwz'</span>, <span class="org-constant">true</span>, ...<span class="org-comment"> % Ground Motion - Z direction</span>
<span class="org-string">'Fty_x'</span>, <span class="org-constant">true</span>, ...<span class="org-comment"> % Translation Stage - X direction</span>
<span class="org-string">'Fty_z'</span>, <span class="org-constant">true</span>, ...<span class="org-comment"> % Translation Stage - Z direction</span>
<span class="org-string">'Frz_z'</span>, <span class="org-constant">true</span> ...<span class="org-comment"> % Spindle - Z direction</span>
);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">tomo_align_dist = struct(<span class="org-string">'t'</span>, t, <span class="org-string">'MTr'</span>, MTr);
save(<span class="org-string">'experiment_tomography/mat/experiment.mat'</span>, <span class="org-string">'tomo_align_dist'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-orga551571" class="outline-3">
<h3 id="orga551571"><span class="section-number-3">3.2</span> Analysis</h3>
<div class="outline-text-3" id="text-3-2">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'experiment_tomography/mat/experiment.mat'</span>, <span class="org-string">'tomo_align_dist'</span>);
t = tomo_align_dist.t;
MTr = tomo_align_dist.MTr;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">Edx = squeeze(MTr(1, 4, <span class="org-type">:</span>));
Edy = squeeze(MTr(2, 4, <span class="org-type">:</span>));
Edz = squeeze(MTr(3, 4, <span class="org-type">:</span>));
<span class="org-comment">% The angles obtained are u-v-w Euler angles (rotations in the moving frame)</span>
Ery = atan2( squeeze(MTr(1, 3, <span class="org-type">:</span>)), squeeze(sqrt(MTr(1, 1, <span class="org-type">:</span>)<span class="org-type">.^</span>2 <span class="org-type">+</span> MTr(1, 2, <span class="org-type">:</span>)<span class="org-type">.^</span>2)));
Erx = atan2(<span class="org-type">-</span>squeeze(MTr(2, 3, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery), squeeze(MTr(3, 3, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery));
Erz = atan2(<span class="org-type">-</span>squeeze(MTr(1, 2, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery), squeeze(MTr(1, 1, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery));
</pre>
</div>
<div id="org5b3411f" class="figure">
<p><img src="figs/exp_tomo_dist_trans.png" alt="exp_tomo_dist_trans.png" />
</p>
<p><span class="figure-number">Figure 3: </span>X-Y-Z translation of the sample w.r.t. the granite when performing tomography experiment with disturbances (<a href="./figs/exp_tomo_dist_trans.png">png</a>, <a href="./figs/exp_tomo_dist_trans.pdf">pdf</a>)</p>
</div>
<div id="org7934376" class="figure">
<p><img src="figs/exp_tomo_dist_rot.png" alt="exp_tomo_dist_rot.png" />
</p>
<p><span class="figure-number">Figure 4: </span>X-Y-Z rotations of the sample w.r.t. the granite when performing tomography experiment with disturbances (<a href="./figs/exp_tomo_dist_rot.png">png</a>, <a href="./figs/exp_tomo_dist_rot.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org3eee8bd" class="outline-3">
<h3 id="org3eee8bd"><span class="section-number-3">3.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-3">
<div class="important">
<p>
Error motion is what expected from the disturbance measurements.
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org72f01ab" class="outline-2">
<h2 id="org72f01ab"><span class="section-number-2">4</span> Tomography when the micro-hexapod is not centered</h2>
<div class="outline-text-2" id="text-4">
<p>
<a id="orgb31e3fb"></a>
</p>
</div>
<div id="outline-container-orga42880e" class="outline-3">
<h3 id="orga42880e"><span class="section-number-3">4.1</span> Simulation Setup</h3>
<div class="outline-text-3" id="text-4-1">
<p>
We first set the wanted translation of the Micro Hexapod.
</p>
<div class="org-src-container">
<pre class="src src-matlab">P_micro_hexapod = [0.01; 0; 0]; <span class="org-comment">% [m]</span>
</pre>
</div>
<p>
We initialize the reference path.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeReferences(<span class="org-string">'Dh_pos'</span>, [P_micro_hexapod; 0; 0; 0], <span class="org-string">'Rz_type'</span>, <span class="org-string">'rotating'</span>, <span class="org-string">'Rz_period'</span>, 1);
</pre>
</div>
<p>
We initialize the stages.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeMicroHexapod(<span class="org-string">'AP'</span>, P_micro_hexapod);
</pre>
</div>
<p>
And we initialize the disturbances to zero.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeDisturbances(...
<span class="org-string">'Dwx'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - X direction</span>
<span class="org-string">'Dwy'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - Y direction</span>
<span class="org-string">'Dwz'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - Z direction</span>
<span class="org-string">'Fty_x'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Translation Stage - X direction</span>
<span class="org-string">'Fty_z'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Translation Stage - Z direction</span>
<span class="org-string">'Frz_z'</span>, <span class="org-constant">false</span> ...<span class="org-comment"> % Spindle - Z direction</span>
);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">tomo_not_align = struct(<span class="org-string">'t'</span>, t, <span class="org-string">'MTr'</span>, MTr);
save(<span class="org-string">'experiment_tomography/mat/experiment.mat'</span>, <span class="org-string">'tomo_not_align'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-org58e1909" class="outline-3">
<h3 id="org58e1909"><span class="section-number-3">4.2</span> Analysis</h3>
<div class="outline-text-3" id="text-4-2">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'experiment_tomography/mat/experiment.mat'</span>, <span class="org-string">'tomo_not_align'</span>);
t = tomo_not_align.t;
MTr = tomo_not_align.MTr;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">Edx = squeeze(MTr(1, 4, <span class="org-type">:</span>));
Edy = squeeze(MTr(2, 4, <span class="org-type">:</span>));
Edz = squeeze(MTr(3, 4, <span class="org-type">:</span>));
<span class="org-comment">% The angles obtained are u-v-w Euler angles (rotations in the moving frame)</span>
Ery = atan2( squeeze(MTr(1, 3, <span class="org-type">:</span>)), squeeze(sqrt(MTr(1, 1, <span class="org-type">:</span>)<span class="org-type">.^</span>2 <span class="org-type">+</span> MTr(1, 2, <span class="org-type">:</span>)<span class="org-type">.^</span>2)));
Erx = atan2(<span class="org-type">-</span>squeeze(MTr(2, 3, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery), squeeze(MTr(3, 3, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery));
Erz = atan2(<span class="org-type">-</span>squeeze(MTr(1, 2, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery), squeeze(MTr(1, 1, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery));
</pre>
</div>
<div id="org40355c3" class="figure">
<p><img src="figs/exp_tomo_offset_trans.png" alt="exp_tomo_offset_trans.png" />
</p>
<p><span class="figure-number">Figure 5: </span>X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (<a href="./figs/exp_tomo_offset_trans.png">png</a>, <a href="./figs/exp_tomo_offset_trans.pdf">pdf</a>)</p>
</div>
<div id="org3f64362" class="figure">
<p><img src="figs/exp_tomo_offset_rot.png" alt="exp_tomo_offset_rot.png" />
</p>
<p><span class="figure-number">Figure 6: </span>X-Y-Z rotations of the sample w.r.t. granite when performing tomography experiment with no disturbances (<a href="./figs/exp_tomo_offset_rot.png">png</a>, <a href="./figs/exp_tomo_offset_rot.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org4670aba" class="outline-3">
<h3 id="org4670aba"><span class="section-number-3">4.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-3">
<div class="important">
<p>
The main motions are translations in the X direction of the mobile platform (corresponds to the eccentricity of the micro-hexapod) and rotations along the rotating Y axis.
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org8fa1632" class="outline-2">
<h2 id="org8fa1632"><span class="section-number-2">5</span> Raster Scans with the translation stage</h2>
<div class="outline-text-2" id="text-5">
<p>
<a id="org6aaeb53"></a>
</p>
</div>
<div id="outline-container-org5778305" class="outline-3">
<h3 id="org5778305"><span class="section-number-3">5.1</span> Simulation Setup</h3>
<div class="outline-text-3" id="text-5-1">
<p>
We set the reference path.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeReferences(<span class="org-string">'Dy_type'</span>, <span class="org-string">'triangular'</span>, <span class="org-string">'Dy_amplitude'</span>, 10e<span class="org-type">-</span>3, <span class="org-string">'Dy_period'</span>, 1);
</pre>
</div>
<p>
We initialize the stages.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod();
initializeAxisc();
initializeMirror();
initializeNanoHexapod(<span class="org-string">'actuator'</span>, <span class="org-string">'piezo'</span>);
initializeSample(<span class="org-string">'mass'</span>, 1);
</pre>
</div>
<p>
And we initialize the disturbances to zero.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeDisturbances(...
<span class="org-string">'Dwx'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - X direction</span>
<span class="org-string">'Dwy'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - Y direction</span>
<span class="org-string">'Dwz'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Ground Motion - Z direction</span>
<span class="org-string">'Fty_x'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Translation Stage - X direction</span>
<span class="org-string">'Fty_z'</span>, <span class="org-constant">false</span>, ...<span class="org-comment"> % Translation Stage - Z direction</span>
<span class="org-string">'Frz_z'</span>, <span class="org-constant">false</span> ...<span class="org-comment"> % Spindle - Z direction</span>
);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">ty_scan = struct(<span class="org-string">'t'</span>, t, <span class="org-string">'MTr'</span>, MTr);
save(<span class="org-string">'experiment_tomography/mat/experiment.mat'</span>, <span class="org-string">'ty_scan'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-org3f73a44" class="outline-3">
<h3 id="org3f73a44"><span class="section-number-3">5.2</span> Analysis</h3>
<div class="outline-text-3" id="text-5-2">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'experiment_tomography/mat/experiment.mat'</span>, <span class="org-string">'ty_scan'</span>);
t = ty_scan.t;
MTr = ty_scan.MTr;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">Edx = squeeze(MTr(1, 4, <span class="org-type">:</span>));
Edy = squeeze(MTr(2, 4, <span class="org-type">:</span>));
Edz = squeeze(MTr(3, 4, <span class="org-type">:</span>));
<span class="org-comment">% The angles obtained are u-v-w Euler angles (rotations in the moving frame)</span>
Ery = atan2( squeeze(MTr(1, 3, <span class="org-type">:</span>)), squeeze(sqrt(MTr(1, 1, <span class="org-type">:</span>)<span class="org-type">.^</span>2 <span class="org-type">+</span> MTr(1, 2, <span class="org-type">:</span>)<span class="org-type">.^</span>2)));
Erx = atan2(<span class="org-type">-</span>squeeze(MTr(2, 3, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery), squeeze(MTr(3, 3, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery));
Erz = atan2(<span class="org-type">-</span>squeeze(MTr(1, 2, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery), squeeze(MTr(1, 1, <span class="org-type">:</span>))<span class="org-type">./</span>cos(Ery));
</pre>
</div>
<div id="org042610c" class="figure">
<p><img src="figs/exp_ty_scan_trans.png" alt="exp_ty_scan_trans.png" />
</p>
<p><span class="figure-number">Figure 7: </span>X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (<a href="./figs/exp_ty_scan_trans.png">png</a>, <a href="./figs/exp_ty_scan_trans.pdf">pdf</a>)</p>
</div>
<div id="org26a730c" class="figure">
<p><img src="figs/exp_ty_scan_rot.png" alt="exp_ty_scan_rot.png" />
</p>
<p><span class="figure-number">Figure 8: </span>X-Y-Z rotations of the sample w.r.t. granite when performing tomography experiment with no disturbances (<a href="./figs/exp_ty_scan_rot.png">png</a>, <a href="./figs/exp_ty_scan_rot.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org67ff024" class="outline-3">
<h3 id="org67ff024"><span class="section-number-3">5.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-3">
<div class="important">
<p>
This is logic that the main error moving is translation along the Y axis and rotation along the X axis.
In order to reduce the errors, we can make a smoother reference path for the translation stage.
</p>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-25 mar. 18:08</p>
</div>
</body>
</html>

View File

Before

Width:  |  Height:  |  Size: 161 KiB

After

Width:  |  Height:  |  Size: 161 KiB

View File

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 154 KiB

View File

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

View File

Before

Width:  |  Height:  |  Size: 186 KiB

After

Width:  |  Height:  |  Size: 186 KiB

View File

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 117 KiB

View File

Before

Width:  |  Height:  |  Size: 116 KiB

After

Width:  |  Height:  |  Size: 116 KiB

View File

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 111 KiB

View File

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View File

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

View File

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

View File

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View File

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

View File

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

Before

Width:  |  Height:  |  Size: 140 KiB

After

Width:  |  Height:  |  Size: 140 KiB

View File

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 132 KiB

View File

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 123 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

View File

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

Before

Width:  |  Height:  |  Size: 142 KiB

After

Width:  |  Height:  |  Size: 142 KiB

View File

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View File

Before

Width:  |  Height:  |  Size: 178 KiB

After

Width:  |  Height:  |  Size: 178 KiB

View File

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 112 KiB

View File

Before

Width:  |  Height:  |  Size: 174 KiB

After

Width:  |  Height:  |  Size: 174 KiB

View File

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 165 KiB

View File

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

View File

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 167 KiB

View File

Before

Width:  |  Height:  |  Size: 120 KiB

After

Width:  |  Height:  |  Size: 120 KiB

View File

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

View File

Before

Width:  |  Height:  |  Size: 95 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

Before

Width:  |  Height:  |  Size: 206 KiB

After

Width:  |  Height:  |  Size: 206 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Some files were not shown because too many files have changed in this diff Show More