Dist. sensitivity / optimal stiffness analysis
This commit is contained in:
parent
ae89d0ea19
commit
ca42338fe3
BIN
docs/figs/opt_stiff_sensitivity_Dw.pdf
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Dw.pdf
Normal file
Binary file not shown.
BIN
docs/figs/opt_stiff_sensitivity_Dw.png
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Dw.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 220 KiB |
BIN
docs/figs/opt_stiff_sensitivity_Fd.pdf
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Fd.pdf
Normal file
Binary file not shown.
BIN
docs/figs/opt_stiff_sensitivity_Fd.png
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Fd.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 221 KiB |
BIN
docs/figs/opt_stiff_sensitivity_Frz.pdf
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Frz.pdf
Normal file
Binary file not shown.
BIN
docs/figs/opt_stiff_sensitivity_Frz.png
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Frz.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 180 KiB |
BIN
docs/figs/opt_stiff_sensitivity_Fty_x.pdf
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Fty_x.pdf
Normal file
Binary file not shown.
BIN
docs/figs/opt_stiff_sensitivity_Fty_x.png
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Fty_x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 173 KiB |
BIN
docs/figs/opt_stiff_sensitivity_Fty_z.pdf
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Fty_z.pdf
Normal file
Binary file not shown.
BIN
docs/figs/opt_stiff_sensitivity_Fty_z.png
Normal file
BIN
docs/figs/opt_stiff_sensitivity_Fty_z.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 166 KiB |
@ -4,7 +4,7 @@
|
||||
"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-04-07 mar. 14:57 -->
|
||||
<!-- 2020-04-07 mar. 15:57 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Determination of the optimal nano-hexapod’s stiffness for reducing the effect of disturbances</title>
|
||||
@ -247,18 +247,15 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org72be3da">1. Spectral Density of Disturbances label:sec:psd_disturbances</a>
|
||||
<ul>
|
||||
<li><a href="#orge84ae10">1.1. Load of the identified disturbances</a></li>
|
||||
<li><a href="#org0bec7fc">1.2. Plots</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org9e9f810">1. Disturbances</a></li>
|
||||
<li><a href="#orgc44cf7e">2. Effect of disturbances on the position error</a>
|
||||
<ul>
|
||||
<li><a href="#org524df41">2.1. Initialization</a></li>
|
||||
<li><a href="#orgaf88c9f">2.2. Identification</a></li>
|
||||
<li><a href="#org2b8e5e0">2.3. Plots</a></li>
|
||||
<li><a href="#org71f73c5">2.4. Save</a></li>
|
||||
<li><a href="#org78dd34d">2.3. Sensitivity to Stages vibration (Filtering)</a></li>
|
||||
<li><a href="#orgd4ea2f4">2.4. Effect of Ground motion (Transmissibility).</a></li>
|
||||
<li><a href="#org0448746">2.5. Direct Forces (Compliance).</a></li>
|
||||
<li><a href="#orgea74617">2.6. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org6527e58">3. Effect of granite stiffness</a>
|
||||
@ -281,59 +278,79 @@
|
||||
<li><a href="#orgf2d36a1">5.1. Reduction thanks to feedback - Required bandwidth</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgea74617">6. Conclusion</a></li>
|
||||
<li><a href="#org0953c03">6. Conclusion</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
In this document is studied how the stiffness of the nano-hexapod will impact the effect of disturbances on the position error of the sample.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It is divided in the following sections:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li><a href="#org17d3d6a">1</a></li>
|
||||
<li><a href="#orgf9e4300">2</a></li>
|
||||
<li><a href="#orgd4105b6">3</a></li>
|
||||
<li><a href="#org5d05990">4</a></li>
|
||||
<li><a href="#orgd3503fb">5</a></li>
|
||||
<li>Section <a href="#org17d3d6a">1</a>: the disturbances are listed and their Power Spectral Densities (PSD) are shown</li>
|
||||
<li>Section <a href="#orgf9e4300">2</a>: the transfer functions from disturbances to the position error of the sample are computed for a wide range of nano-hexapod stiffnesses</li>
|
||||
<li>Section <a href="#orgd4105b6">3</a>:</li>
|
||||
<li>Section <a href="#org5d05990">4</a>: from both the PSD of the disturbances and the transfer function from disturbances to sample’s position errors, we compute the resulting PSD and Cumulative Amplitude Spectrum (CAS)</li>
|
||||
<li>Section <a href="#orgd3503fb">5</a>: from a simplistic model is computed the required control bandwidth to reduce the position error to acceptable values</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<ul class="org-ul">
|
||||
<li><a href="#sec:psd_disturbances">sec:psd_disturbances</a></li>
|
||||
<li><a href="#sec:effect_disturbances">sec:effect_disturbances</a></li>
|
||||
<li><a href="#sec:granite_stiffness">sec:granite_stiffness</a></li>
|
||||
<li><a href="#sec:open_loop_budget_error">sec:open_loop_budget_error</a></li>
|
||||
<li><a href="#sec:closed_loop_budget_error">sec:closed_loop_budget_error</a></li>
|
||||
</ul>
|
||||
|
||||
<div id="outline-container-org72be3da" class="outline-2">
|
||||
<h2 id="org72be3da"><span class="section-number-2">1</span> Spectral Density of Disturbances <div id="sec:psd_disturbances"></div></h2>
|
||||
<div id="outline-container-org9e9f810" class="outline-2">
|
||||
<h2 id="org9e9f810"><span class="section-number-2">1</span> Disturbances</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
<a id="org17d3d6a"></a>
|
||||
</p>
|
||||
<p>
|
||||
The level of disturbances has been identified form experiments.
|
||||
This is detailed in <a href="disturbances.html">this</a> document.
|
||||
The main disturbances considered here are:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>\(D_w\): Ground displacement in the \(x\), \(y\) and \(z\) directions</li>
|
||||
<li>\(F_{ty}\): Forces applied by the Translation stage in the \(x\) and \(z\) directions</li>
|
||||
<li>\(F_{rz}\): Forces applied by the Spindle in the \(z\) direction</li>
|
||||
<li>\(F_d\): Direct forces applied at the center of mass of the Payload</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The level of these disturbances has been identified form experiments which are detailed in <a href="disturbances.html">this</a> document.
|
||||
</p>
|
||||
<p>
|
||||
The measured Amplitude Spectral Densities (ASD) of these forces are shown in Figures <a href="#org6b4e47c">1</a> and <a href="#orgb7b8e77">2</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In this study, the expected frequency content of the direct forces applied to the payload is not considered.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org6b4e47c" class="figure">
|
||||
<p><img src="figs/opt_stiff_dist_gm.png" alt="opt_stiff_dist_gm.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Amplitude Spectral Density of the Ground Displacement (<a href="./figs/opt_stiff_dist_gm.png">png</a>, <a href="./figs/opt_stiff_dist_gm.pdf">pdf</a>)</p>
|
||||
</div>
|
||||
<div id="outline-container-orge84ae10" class="outline-3">
|
||||
<h3 id="orge84ae10"><span class="section-number-3">1.1</span> Load of the identified disturbances</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load(<span class="org-string">'./mat/dist_psd.mat'</span>, <span class="org-string">'dist_f'</span>);
|
||||
</pre>
|
||||
|
||||
|
||||
<div id="orgb7b8e77" class="figure">
|
||||
<p><img src="figs/opt_stiff_dist_fty_frz.png" alt="opt_stiff_dist_fty_frz.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Amplitude Spectral Density of the “parasitic” forces comming from the Translation stage and the spindle (<a href="./figs/opt_stiff_dist_fty_frz.png">png</a>, <a href="./figs/opt_stiff_dist_fty_frz.pdf">pdf</a>)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0bec7fc" class="outline-3">
|
||||
<h3 id="org0bec7fc"><span class="section-number-3">1.2</span> Plots</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgc44cf7e" class="outline-2">
|
||||
<h2 id="orgc44cf7e"><span class="section-number-2">2</span> Effect of disturbances on the position error</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
<a id="orgf9e4300"></a>
|
||||
</p>
|
||||
<p>
|
||||
In this section, we use the Simscape model to identify the transfer function from disturbances to the position error of the sample.
|
||||
We do that for a wide range of nano-hexapod stiffnesses and we compare the obtained results.
|
||||
</p>
|
||||
</div>
|
||||
<div id="outline-container-org524df41" class="outline-3">
|
||||
<h3 id="org524df41"><span class="section-number-3">2.1</span> Initialization</h3>
|
||||
@ -361,22 +378,24 @@ We use a sample mass of 10kg.
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
We include gravity, and we use no controller.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">initializeSimscapeConfiguration(<span class="org-string">'gravity'</span>, <span class="org-constant">true</span>);
|
||||
initializeController();
|
||||
initializeDisturbances(<span class="org-string">'enable'</span>, <span class="org-constant">false</span>);
|
||||
initializeLoggingConfiguration(<span class="org-string">'log'</span>, <span class="org-string">'none'</span>);
|
||||
initializeController();
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-orgaf88c9f" class="outline-3">
|
||||
<h3 id="orgaf88c9f"><span class="section-number-3">2.2</span> Identification</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
Inputs:
|
||||
The considered inputs are:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li><code>Dwx</code>: Ground displacement in the \(x\) direction</li>
|
||||
@ -388,60 +407,95 @@ Inputs:
|
||||
<li><code>Fd</code>: Direct forces applied at the center of mass of the Payload</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
The outputs are <code>Ex</code>, <code>Ey</code>, <code>Ez</code>, <code>Erx</code>, <code>Ery</code>, <code>Erz</code> which are the 3 positions and 3 orientations errors of the sample.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We initialize the set of the nano-hexapod stiffnesses, and for each of them, we identify the dynamics from defined inputs to defined outputs.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Ks = logspace(3,9,7); <span class="org-comment">% [N/m]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
||||
mdl = <span class="org-string">'nass_model'</span>;
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Micro-Hexapod</span></span>
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Dwx'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% X Ground motion</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Dwy'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Y Ground motion</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Dwz'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Z Ground motion</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Fty_x'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Parasitic force Ty - X</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Fty_z'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Parasitic force Ty - Z</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Frz_z'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Parasitic force Rz - Z</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Fd'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Direct forces</span>
|
||||
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Tracking Error'</span>], 1, <span class="org-string">'openoutput'</span>, [], <span class="org-string">'En'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Position Error</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-keyword">for</span> <span class="org-variable-name"><span class="org-constant">i</span></span> = <span class="org-constant">1:length(Ks)</span>
|
||||
initializeNanoHexapod(<span class="org-string">'k'</span>, Ks(<span class="org-constant">i</span>));
|
||||
|
||||
<span class="org-comment">% Run the linearization</span>
|
||||
G = linearize(mdl, io);
|
||||
G.InputName = {<span class="org-string">'Dwx'</span>, <span class="org-string">'Dwy'</span>, <span class="org-string">'Dwz'</span>, <span class="org-string">'Fty_x'</span>, <span class="org-string">'Fty_z'</span>, <span class="org-string">'Frz_z'</span>, <span class="org-string">'Fdx'</span>, <span class="org-string">'Fdy'</span>, <span class="org-string">'Fdz'</span>, <span class="org-string">'Mdx'</span>, <span class="org-string">'Mdy'</span>, <span class="org-string">'Mdz'</span>};
|
||||
G.OutputName = {<span class="org-string">'Ex'</span>, <span class="org-string">'Ey'</span>, <span class="org-string">'Ez'</span>, <span class="org-string">'Erx'</span>, <span class="org-string">'Ery'</span>, <span class="org-string">'Erz'</span>};
|
||||
Gd(<span class="org-constant">i</span>) = {minreal(G)};
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2b8e5e0" class="outline-3">
|
||||
<h3 id="org2b8e5e0"><span class="section-number-3">2.3</span> Plots</h3>
|
||||
<div id="outline-container-org78dd34d" class="outline-3">
|
||||
<h3 id="org78dd34d"><span class="section-number-3">2.3</span> Sensitivity to Stages vibration (Filtering)</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
Effect of Stages vibration (Filtering).
|
||||
Effect of Ground motion (Transmissibility).
|
||||
Direct Forces (Compliance).
|
||||
The sensitivity the stage vibrations are displayed:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>Figure <a href="#orgf55ba1b">3</a>: sensitivity to vertical spindle vibrations</li>
|
||||
<li>Figure <a href="#orgce1ac2c">4</a>: sensitivity to vertical translation stage vibrations</li>
|
||||
<li>Figure <a href="#org1a24ee2">5</a>: sensitivity to horizontal (x) translation stage vibrations</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<div id="orgf55ba1b" class="figure">
|
||||
<p><img src="figs/opt_stiff_sensitivity_Frz.png" alt="opt_stiff_sensitivity_Frz.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Sensitivity to Spindle vertical motion error (\(F_{rz}\)) to the vertical error position of the sample (\(E_z\)) (<a href="./figs/opt_stiff_sensitivity_Frz.png">png</a>, <a href="./figs/opt_stiff_sensitivity_Frz.pdf">pdf</a>)</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgce1ac2c" class="figure">
|
||||
<p><img src="figs/opt_stiff_sensitivity_Fty_z.png" alt="opt_stiff_sensitivity_Fty_z.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Sensitivity to Translation stage vertical motion error (\(F_{ty,z}\)) to the vertical error position of the sample (\(E_z\)) (<a href="./figs/opt_stiff_sensitivity_Fty_z.png">png</a>, <a href="./figs/opt_stiff_sensitivity_Fty_z.pdf">pdf</a>)</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org1a24ee2" class="figure">
|
||||
<p><img src="figs/opt_stiff_sensitivity_Fty_x.png" alt="opt_stiff_sensitivity_Fty_x.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>Sensitivity to Translation stage \(x\) motion error (\(F_{ty,x}\)) to the error position of the sample in the \(x\) direction (\(E_x\)) (<a href="./figs/opt_stiff_sensitivity_Fty_x.png">png</a>, <a href="./figs/opt_stiff_sensitivity_Fty_x.pdf">pdf</a>)</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-org71f73c5" class="outline-3">
|
||||
<h3 id="org71f73c5"><span class="section-number-3">2.4</span> Save</h3>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd4ea2f4" class="outline-3">
|
||||
<h3 id="orgd4ea2f4"><span class="section-number-3">2.4</span> Effect of Ground motion (Transmissibility).</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">save(<span class="org-string">'./mat/opt_stiffness_disturbances.mat'</span>, <span class="org-string">'Gd'</span>)
|
||||
</pre>
|
||||
<p>
|
||||
The effect of Ground motion on the position error of the sample is shown in Figure <a href="#org212587b">6</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org212587b" class="figure">
|
||||
<p><img src="figs/opt_stiff_sensitivity_Dw.png" alt="opt_stiff_sensitivity_Dw.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>Sensitivity to Ground motion (\(D_{w}\)) to the position error of the sample (\(E_y\) and \(E_z\)) (<a href="./figs/opt_stiff_sensitivity_Dw.png">png</a>, <a href="./figs/opt_stiff_sensitivity_Dw.pdf">pdf</a>)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0448746" class="outline-3">
|
||||
<h3 id="org0448746"><span class="section-number-3">2.5</span> Direct Forces (Compliance).</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
<p>
|
||||
The effect of direct forces/torques applied on the sample (cable forces for instance) on the position error of the sample is shown in Figure <a href="#orga33395f">7</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orga33395f" class="figure">
|
||||
<p><img src="figs/opt_stiff_sensitivity_Fd.png" alt="opt_stiff_sensitivity_Fd.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>Sensitivity to Direct forces and torques applied to the sample (\(F_d\), \(M_d\)) to the position error of the sample (<a href="./figs/opt_stiff_sensitivity_Fd.png">png</a>, <a href="./figs/opt_stiff_sensitivity_Fd.pdf">pdf</a>)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgea74617" class="outline-3">
|
||||
<h3 id="orgea74617"><span class="section-number-3">2.6</span> Conclusion</h3>
|
||||
<div class="outline-text-3" id="text-2-6">
|
||||
<div class="important">
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -461,11 +515,11 @@ Direct Forces (Compliance).
|
||||
<div id="org8fb9606" class="figure">
|
||||
<p><img src="figs/2dof_system_granite_stiffness.png" alt="2dof_system_granite_stiffness.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Figure caption</p>
|
||||
<p><span class="figure-number">Figure 8: </span>Figure caption</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
If we write the equation of motion of the system in Figure <a href="#org8fb9606">1</a>, we obtain:
|
||||
If we write the equation of motion of the system in Figure <a href="#org8fb9606">8</a>, we obtain:
|
||||
</p>
|
||||
\begin{align}
|
||||
m^\prime s^2 x^\prime &= (c^\prime s + k^\prime) (x - x^\prime) \\
|
||||
@ -792,13 +846,13 @@ xlim([1, 500]);
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="outline-container-orgea74617" class="outline-2">
|
||||
<h2 id="orgea74617"><span class="section-number-2">6</span> Conclusion</h2>
|
||||
<div id="outline-container-org0953c03" class="outline-2">
|
||||
<h2 id="org0953c03"><span class="section-number-2">6</span> Conclusion</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2020-04-07 mar. 14:57</p>
|
||||
<p class="date">Created: 2020-04-07 mar. 15:57</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -131,6 +131,9 @@ In this study, the expected frequency content of the direct forces applied to th
|
||||
* Effect of disturbances on the position error
|
||||
<<sec:effect_disturbances>>
|
||||
** Introduction :ignore:
|
||||
In this section, we use the Simscape model to identify the transfer function from disturbances to the position error of the sample.
|
||||
We do that for a wide range of nano-hexapod stiffnesses and we compare the obtained results.
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
@ -167,16 +170,16 @@ We use a sample mass of 10kg.
|
||||
initializeSample('mass', 10);
|
||||
#+end_src
|
||||
|
||||
We include gravity, and we use no controller.
|
||||
#+begin_src matlab
|
||||
initializeSimscapeConfiguration('gravity', true);
|
||||
initializeController();
|
||||
initializeDisturbances('enable', false);
|
||||
initializeLoggingConfiguration('log', 'none');
|
||||
initializeController();
|
||||
#+end_src
|
||||
|
||||
|
||||
** Identification
|
||||
Inputs:
|
||||
The considered inputs are:
|
||||
- =Dwx=: Ground displacement in the $x$ direction
|
||||
- =Dwy=: Ground displacement in the $y$ direction
|
||||
- =Dwz=: Ground displacement in the $z$ direction
|
||||
@ -185,15 +188,14 @@ Inputs:
|
||||
- =Frz_z=: Forces applied by the Spindle in the $z$ direction
|
||||
- =Fd=: Direct forces applied at the center of mass of the Payload
|
||||
|
||||
The outputs are =Ex=, =Ey=, =Ez=, =Erx=, =Ery=, =Erz= which are the 3 positions and 3 orientations errors of the sample.
|
||||
|
||||
We initialize the set of the nano-hexapod stiffnesses, and for each of them, we identify the dynamics from defined inputs to defined outputs.
|
||||
#+begin_src matlab
|
||||
Ks = logspace(3,9,7); % [N/m]
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
Gd = {zeros(length(Ks), 1)};
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
%% Name of the Simulink File
|
||||
mdl = 'nass_model';
|
||||
|
||||
@ -210,7 +212,9 @@ Inputs:
|
||||
io(io_i) = linio([mdl, '/Tracking Error'], 1, 'openoutput', [], 'En'); io_i = io_i + 1; % Position Error
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
#+begin_src matlab :exports none
|
||||
Gd = {zeros(length(Ks), 1)};
|
||||
|
||||
for i = 1:length(Ks)
|
||||
initializeNanoHexapod('k', Ks(i));
|
||||
|
||||
@ -222,8 +226,12 @@ Inputs:
|
||||
end
|
||||
#+end_src
|
||||
|
||||
** Plots
|
||||
Effect of Stages vibration (Filtering).
|
||||
** Sensitivity to Stages vibration (Filtering)
|
||||
The sensitivity the stage vibrations are displayed:
|
||||
- Figure [[fig:opt_stiff_sensitivity_Frz]]: sensitivity to vertical spindle vibrations
|
||||
- Figure [[fig:opt_stiff_sensitivity_Fty_z]]: sensitivity to vertical translation stage vibrations
|
||||
- Figure [[fig:opt_stiff_sensitivity_Fty_x]]: sensitivity to horizontal (x) translation stage vibrations
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
@ -235,26 +243,76 @@ Effect of Stages vibration (Filtering).
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]');
|
||||
ylabel('Effect of $F_{rz}$ on $E_z$ [m/N]'); xlabel('Frequency [Hz]');
|
||||
legend('location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
Effect of Ground motion (Transmissibility).
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Frz.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Frz
|
||||
#+caption: Sensitivity to Spindle vertical motion error ($F_{rz}$) to the vertical error position of the sample ($E_z$) ([[./figs/opt_stiff_sensitivity_Frz.png][png]], [[./figs/opt_stiff_sensitivity_Frz.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Frz.png]]
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ez', 'Fty_z'), freqs, 'Hz'))), '-', ...
|
||||
'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i)));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Effect of $F_{ty}$ on $E_z$ [m/N]'); xlabel('Frequency [Hz]');
|
||||
legend('location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Fty_z.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Fty_z
|
||||
#+caption: Sensitivity to Translation stage vertical motion error ($F_{ty,z}$) to the vertical error position of the sample ($E_z$) ([[./figs/opt_stiff_sensitivity_Fty_z.png][png]], [[./figs/opt_stiff_sensitivity_Fty_z.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Fty_z.png]]
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ex', 'Fty_x'), freqs, 'Hz'))), '-', ...
|
||||
'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i)));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Effect of $F_{ty}$ on $E_x$ [m/N]'); xlabel('Frequency [Hz]');
|
||||
legend('location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Fty_x.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Fty_x
|
||||
#+caption: Sensitivity to Translation stage $x$ motion error ($F_{ty,x}$) to the error position of the sample in the $x$ direction ($E_x$) ([[./figs/opt_stiff_sensitivity_Fty_x.png][png]], [[./figs/opt_stiff_sensitivity_Fty_x.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Fty_x.png]]
|
||||
|
||||
** Effect of Ground motion (Transmissibility).
|
||||
The effect of Ground motion on the position error of the sample is shown in Figure [[fig:opt_stiff_sensitivity_Dw]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(3, 1, 1);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ex', 'Dwx'), freqs, 'Hz'))), '-', ...
|
||||
'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i)));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/m]');
|
||||
|
||||
ax1 = subplot(3, 1, 2);
|
||||
ax1 = subplot(1, 2, 1);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ey', 'Dwy'), freqs, 'Hz'))), '-', ...
|
||||
@ -262,9 +320,9 @@ Effect of Ground motion (Transmissibility).
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/m]');
|
||||
ylabel('$E_y/D_{wy}$ [m/m]'); xlabel('Frequency [Hz]');
|
||||
|
||||
ax1 = subplot(3, 1, 3);
|
||||
ax2 = subplot(1, 2, 2);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ez', 'Dwz'), freqs, 'Hz'))), '-', ...
|
||||
@ -272,14 +330,36 @@ Effect of Ground motion (Transmissibility).
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/m]'); xlabel('Frequency [Hz]');
|
||||
ylabel('$E_z/D_{wz}$ [m/m]'); xlabel('Frequency [Hz]');
|
||||
#+end_src
|
||||
|
||||
Direct Forces (Compliance).
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Dw.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Dw
|
||||
#+caption: Sensitivity to Ground motion ($D_{w}$) to the position error of the sample ($E_y$ and $E_z$) ([[./figs/opt_stiff_sensitivity_Dw.png][png]], [[./figs/opt_stiff_sensitivity_Dw.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Dw.png]]
|
||||
|
||||
** Direct Forces (Compliance).
|
||||
The effect of direct forces/torques applied on the sample (cable forces for instance) on the position error of the sample is shown in Figure [[fig:opt_stiff_sensitivity_Fd]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(1, 2, 1);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ery', 'Mdy'), freqs, 'Hz'))), '-');
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('$E_{ry}/M_{d,y}\ \left[\frac{rad}{N m}\right]$'); xlabel('Frequency [Hz]');
|
||||
|
||||
ax2 = subplot(1, 2, 2);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ez', 'Fdz'), freqs, 'Hz'))), '-', ...
|
||||
@ -287,14 +367,31 @@ Direct Forces (Compliance).
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]');
|
||||
ylabel('$E_{z}/F_{d,z}$ [m/N]'); xlabel('Frequency [Hz]');
|
||||
legend('location', 'northeast');
|
||||
|
||||
linkaxes([ax1 ax2], 'xy')
|
||||
#+end_src
|
||||
|
||||
** Save
|
||||
#+begin_src matlab
|
||||
save('./mat/opt_stiffness_disturbances.mat', 'Gd')
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Fd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Fd
|
||||
#+caption: Sensitivity to Direct forces and torques applied to the sample ($F_d$, $M_d$) to the position error of the sample ([[./figs/opt_stiff_sensitivity_Fd.png][png]], [[./figs/opt_stiff_sensitivity_Fd.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Fd.png]]
|
||||
|
||||
** Save :noexport:
|
||||
#+begin_src matlab
|
||||
save('./mat/opt_stiffness_disturbances.mat', 'Ks', 'Gd')
|
||||
#+end_src
|
||||
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
|
||||
#+end_important
|
||||
|
||||
* Effect of granite stiffness
|
||||
<<sec:granite_stiffness>>
|
||||
** Analytical Analysis
|
||||
|
Loading…
Reference in New Issue
Block a user