nass-simscape/docs/experiments.html

655 lines
20 KiB
HTML

<?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-05-05 mar. 10:34 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Simulation of Scientific Experiments</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
<script src="./js/jquery.min.js"></script>
<script src="./js/bootstrap.min.js"></script>
<script src="./js/jquery.stickytableheaders.min.js"></script>
<script src="./js/readtheorg.js"></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">Simulation of Scientific Experiments</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="#orge3f0741">2.1. Simulation Setup</a></li>
<li><a href="#org1836f98">2.2. Analysis</a></li>
<li><a href="#org8cf54cb">2.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org16d8e58">3. Tomography Experiment with included perturbations</a>
<ul>
<li><a href="#org9d04c8b">3.1. Simulation Setup</a></li>
<li><a href="#org746ee08">3.2. Analysis</a></li>
<li><a href="#org42ba456">3.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org7202245">4. Tomography Experiment with Ty raster scans</a>
<ul>
<li><a href="#org0b606be">4.1. Simulation Setup</a></li>
<li><a href="#org2e0557a">4.2. Analysis</a></li>
<li><a href="#org6c8cc28">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org72f01ab">5. Tomography when the micro-hexapod is not centered</a>
<ul>
<li><a href="#org98d14be">5.1. Simulation Setup</a></li>
<li><a href="#org6dc8ae4">5.2. Analysis</a></li>
<li><a href="#orgb632268">5.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org8fa1632">6. Raster Scans with the translation stage</a>
<ul>
<li><a href="#orgdd9a5de">6.1. Simulation Setup</a></li>
<li><a href="#orgad49d2c">6.2. Analysis</a></li>
<li><a href="#org57c774f">6.3. Conclusion</a></li>
</ul>
</li>
</ul>
</div>
</div>
<p>
The goal here is to simulate some scientific experiments with the 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>
<li>Compare with experiments when control is applied</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">5</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">6</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>
<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('mat/conf_simulink.mat');
set_param(conf_simulink, 'StopTime', '2');
</pre>
</div>
<p>
We first initialize all the stages.
The nano-hexapod is considered to be a rigid body.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod();
initializeAxisc();
initializeMirror();
initializeNanoHexapod('type', 'rigid');
initializeSample('mass', 1);
</pre>
</div>
<p>
No controller is used (Open Loop).
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeController('type', 'open-loop');
</pre>
</div>
<p>
We don&rsquo;t gravity.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeSimscapeConfiguration('gravity', false);
</pre>
</div>
<p>
We log the signals for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeLoggingConfiguration('log', 'all');
</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>
<p>
In this section, a tomography experiment is performed with the sample aligned with the rotation axis.
No disturbance is included.
</p>
</div>
<div id="outline-container-orge3f0741" class="outline-3">
<h3 id="orge3f0741"><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(...
'Dwx', false, ... % Ground Motion - X direction
'Dwy', false, ... % Ground Motion - Y direction
'Dwz', false, ... % Ground Motion - Z direction
'Fty_x', false, ... % Translation Stage - X direction
'Fty_z', false, ... % Translation Stage - Z direction
'Frz_z', false ... % Spindle - Z direction
);
</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('Rz_type', 'rotating', 'Rz_period', 1);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab">sim('nass_model');
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">tomo_align_no_dist = simout;
save('./mat/experiment_tomography.mat', 'tomo_align_no_dist', '-append');
</pre>
</div>
</div>
</div>
<div id="outline-container-org1836f98" class="outline-3">
<h3 id="org1836f98"><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('./mat/experiment_tomography.mat', 'tomo_align_no_dist');
</pre>
</div>
<div id="orgfcc6055" class="figure">
<p><img src="figs/exp_tomo_without_dist.png" alt="exp_tomo_without_dist.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.png">png</a>, <a href="./figs/exp_tomo_without_dist.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org8cf54cb" class="outline-3">
<h3 id="org8cf54cb"><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>
<p>
In this section, we also perform a tomography experiment with the sample&rsquo;s center of mass aligned with the rotation axis.
However this time, we include perturbations such as ground motion and stage vibrations.
</p>
</div>
<div id="outline-container-org9d04c8b" class="outline-3">
<h3 id="org9d04c8b"><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(...
'Dwx', true, ... % Ground Motion - X direction
'Dwy', true, ... % Ground Motion - Y direction
'Dwz', true, ... % Ground Motion - Z direction
'Fty_x', false, ... % Translation Stage - X direction
'Fty_z', false, ... % Translation Stage - Z direction
'Frz_z', true ... % Spindle - Z direction
);
</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('Rz_type', 'rotating', 'Rz_period', 1);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab">sim('nass_model');
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">tomo_align_dist = simout;
save('./mat/experiment_tomography.mat', 'tomo_align_dist', '-append');
</pre>
</div>
</div>
</div>
<div id="outline-container-org746ee08" class="outline-3">
<h3 id="org746ee08"><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('./mat/experiment_tomography.mat', 'tomo_align_dist', 'tomo_align_no_dist');
</pre>
</div>
<div id="org8030dba" class="figure">
<p><img src="figs/exp_tomo_dist.png" alt="exp_tomo_dist.png" />
</p>
<p><span class="figure-number">Figure 2: </span>X-Y-Z translations and rotations of the sample w.r.t. the granite when performing tomography experiment with disturbances (<a href="./figs/exp_tomo_dist.png">png</a>, <a href="./figs/exp_tomo_dist.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org42ba456" class="outline-3">
<h3 id="org42ba456"><span class="section-number-3">3.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-3">
<div class="important">
<p>
Here, no vibration is included in the X and Y directions.
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org7202245" class="outline-2">
<h2 id="org7202245"><span class="section-number-2">4</span> Tomography Experiment with Ty raster scans</h2>
<div class="outline-text-2" id="text-4">
<p>
<a id="orgd4f0240"></a>
</p>
<p>
In this section, we also perform a tomography experiment with scans of the Translation stage.
All the perturbations are included.
</p>
</div>
<div id="outline-container-org0b606be" class="outline-3">
<h3 id="org0b606be"><span class="section-number-3">4.1</span> Simulation Setup</h3>
<div class="outline-text-3" id="text-4-1">
<p>
We now activate the disturbances.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeDisturbances(...
'Dwx', true, ... % Ground Motion - X direction
'Dwy', true, ... % Ground Motion - Y direction
'Dwz', true, ... % Ground Motion - Z direction
'Fty_x', true, ... % Translation Stage - X direction
'Fty_z', true, ... % Translation Stage - Z direction
'Frz_z', true ... % Spindle - Z direction
);
</pre>
</div>
<p>
We initialize the reference path for all the stages.
The Spindle which is rotating at 60rpm and the translation stage not moving as it would take a long time to simulate.
However, vibrations of the Ty stage are included.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeReferences('Rz_type', 'rotating', 'Rz_period', 1);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab">sim('nass_model');
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">scans_rz_align_dist = simout;
save('./mat/experiment_tomography.mat', 'scans_rz_align_dist', '-append');
</pre>
</div>
</div>
</div>
<div id="outline-container-org2e0557a" class="outline-3">
<h3 id="org2e0557a"><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('./mat/experiment_tomography.mat', 'scans_rz_align_dist');
</pre>
</div>
<div id="org38e229c" class="figure">
<p><img src="figs/exp_scans_rz_dist.png" alt="exp_scans_rz_dist.png" />
</p>
<p><span class="figure-number">Figure 3: </span>X-Y-Z translations and rotations of the sample w.r.t. the granite when performing tomography experiment and scans with the translation stage at the same time</p>
</div>
</div>
</div>
<div id="outline-container-org6c8cc28" class="outline-3">
<h3 id="org6c8cc28"><span class="section-number-3">4.3</span> Conclusion</h3>
</div>
</div>
<div id="outline-container-org72f01ab" class="outline-2">
<h2 id="org72f01ab"><span class="section-number-2">5</span> Tomography when the micro-hexapod is not centered</h2>
<div class="outline-text-2" id="text-5">
<p>
<a id="orgb31e3fb"></a>
</p>
<p>
In this section, the sample&rsquo;s center of mass is not aligned with the rotation axis anymore.
This is due to the fact that the micro-hexapod has performed some displacement.
</p>
<p>
No disturbances are included.
</p>
</div>
<div id="outline-container-org98d14be" class="outline-3">
<h3 id="org98d14be"><span class="section-number-3">5.1</span> Simulation Setup</h3>
<div class="outline-text-3" id="text-5-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]; % [m]
</pre>
</div>
<p>
We initialize the reference path.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeReferences('Dh_pos', [P_micro_hexapod; 0; 0; 0], 'Rz_type', 'rotating', 'Rz_period', 1);
</pre>
</div>
<p>
We initialize the stages.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeMicroHexapod('AP', 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(...
'Dwx', false, ... % Ground Motion - X direction
'Dwy', false, ... % Ground Motion - Y direction
'Dwz', false, ... % Ground Motion - Z direction
'Fty_x', false, ... % Translation Stage - X direction
'Fty_z', false, ... % Translation Stage - Z direction
'Frz_z', false ... % Spindle - Z direction
);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab">sim('nass_model');
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">tomo_not_align = simout;
save('./mat/experiment_tomography.mat', 'tomo_not_align', '-append');
</pre>
</div>
</div>
</div>
<div id="outline-container-org6dc8ae4" class="outline-3">
<h3 id="org6dc8ae4"><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('./mat/experiment_tomography.mat', 'tomo_not_align', 'tomo_align_no_dist');
</pre>
</div>
<div id="orgb824a01" class="figure">
<p><img src="figs/exp_tomo_offset.png" alt="exp_tomo_offset.png" />
</p>
<p><span class="figure-number">Figure 4: </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.png">png</a>, <a href="./figs/exp_tomo_offset.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-orgb632268" class="outline-3">
<h3 id="orgb632268"><span class="section-number-3">5.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-3">
<div class="important">
<p>
The main motion error are 1Hz X-Y translations and constant Ry error.
This is mainly due to finite stiffness of the elements.
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org8fa1632" class="outline-2">
<h2 id="org8fa1632"><span class="section-number-2">6</span> Raster Scans with the translation stage</h2>
<div class="outline-text-2" id="text-6">
<p>
<a id="org6aaeb53"></a>
</p>
<p>
In this section, scans with the translation stage are performed.
</p>
</div>
<div id="outline-container-orgdd9a5de" class="outline-3">
<h3 id="orgdd9a5de"><span class="section-number-3">6.1</span> Simulation Setup</h3>
<div class="outline-text-3" id="text-6-1">
<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('type', 'rigid');
initializeSample('mass', 1);
</pre>
</div>
<p>
And we initialize the disturbances to zero.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeDisturbances(...
'Dwx', false, ... % Ground Motion - X direction
'Dwy', false, ... % Ground Motion - Y direction
'Dwz', false, ... % Ground Motion - Z direction
'Fty_x', false, ... % Translation Stage - X direction
'Fty_z', false, ... % Translation Stage - Z direction
'Frz_z', false ... % Spindle - Z direction
);
</pre>
</div>
<p>
We set the reference path to be a triangular signal for the Translation Stage.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeReferences('Dy_type', 'triangular', 'Dy_amplitude', 10e-3, 'Dy_period', 1);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab">sim('nass_model');
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">ty_scan_triangle = simout;
save('./mat/experiment_tomography.mat', 'ty_scan_triangle', '-append');
</pre>
</div>
<p>
We now set the reference path to be a sinusoidal signal for the Translation Stage.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeReferences('Dy_type', 'sinusoidal', 'Dy_amplitude', 10e-3, 'Dy_period', 1);
</pre>
</div>
<p>
We simulate the model.
</p>
<div class="org-src-container">
<pre class="src src-matlab">sim('nass_model');
</pre>
</div>
<p>
And we save the obtained data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">ty_scan_sinus = simout;
save('./mat/experiment_tomography.mat', 'ty_scan_sinus', '-append');
</pre>
</div>
</div>
</div>
<div id="outline-container-orgad49d2c" class="outline-3">
<h3 id="orgad49d2c"><span class="section-number-3">6.2</span> Analysis</h3>
<div class="outline-text-3" id="text-6-2">
<div class="org-src-container">
<pre class="src src-matlab">load('./mat/experiment_tomography.mat', 'ty_scan_triangle', 'ty_scan_sinus');
</pre>
</div>
<div id="org888f0bf" class="figure">
<p><img src="figs/exp_ty_scan.png" alt="exp_ty_scan.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_ty_scan.png">png</a>, <a href="./figs/exp_ty_scan.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org57c774f" class="outline-3">
<h3 id="org57c774f"><span class="section-number-3">6.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-6-3">
<div class="important">
<p>
Scans with the translation stage induces some errors in the Y direction and Rx translations.
</p>
<p>
Also, scanning with a sinusoidal wave induces less position errors and at lower frequencies.
Thus, this should be preferred.
</p>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-05-05 mar. 10:34</p>
</div>
</body>
</html>