Update uncertainty analysis to micro-hexapod pose

This commit is contained in:
Thomas Dehaeze 2020-04-01 16:17:13 +02:00
parent 1c27850fc3
commit 4613c74ef3
11 changed files with 1074 additions and 10 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

View File

@ -0,0 +1,822 @@
<?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-04-01 mer. 16:16 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Evaluating the Plant Uncertainty in various experimental conditions</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">
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&amp;dn=gpl-3.0.txt GPL-v3-or-Later
<!--/*--><![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;
}
/*]]>*///-->
// @license-end
</script>
<script>
MathJax = {
tex: { macros: {
bm: ["\\boldsymbol{#1}",1],
}
}
};
</script>
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.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">Evaluating the Plant Uncertainty in various experimental conditions</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgea4f0d4">1. Variation of the Sample Mass</a></li>
<li><a href="#orga0077c1">2. Variation of the Sample Resonance Frequency</a></li>
<li><a href="#orgb49a967">3. Variation of the Spindle Angle</a>
<ul>
<li><a href="#org63447f1">3.1. Identification</a></li>
</ul>
</li>
<li><a href="#org9081b0f">4. Variation of the Spindle Rotation Speed</a>
<ul>
<li><a href="#orgd625617">4.1. Initialization of gravity compensation forces</a></li>
<li><a href="#org54babd6">4.2. Identification</a></li>
<li><a href="#org70dd336">4.3. Plots</a></li>
</ul>
</li>
<li><a href="#orgc4bba39">5. Variation of the Tilt Angle</a></li>
<li><a href="#orgd6b6bfd">6. Variation of the micro-hexapod pose</a></li>
<li><a href="#org9b1c640">7. Conclusion</a></li>
</ul>
</div>
</div>
<p>
The goal of this document is to study how the dynamics of the system is changing with the experimental conditions.
</p>
<p>
These experimental conditions are:
</p>
<ul class="org-ul">
<li>Section <a href="#org73362ad">1</a>: Sample mass (from 1Kg to 50Kg)</li>
<li>Section <a href="#org5d9a396">2</a>: Sample dynamics (mostly main resonance frequency)</li>
<li>Section <a href="#org58b9cae">3</a>: The spindle angle</li>
<li>Section <a href="#org5b594de">4</a>: The spindle rotation speed (from 1rpm to 60rpm)</li>
<li>Section <a href="#org4fe1245">5</a>: The tilt angle (from -3 to 3 degrees)</li>
<li>Section <a href="#orgec1048c">6</a>: Pose of the micro-hexapod</li>
</ul>
<p>
We are interested in the dynamics from the nano-hexapod actuators to:
</p>
<ul class="org-ul">
<li>the sensors included in the nano-hexapod (force sensor, relative motion sensor)</li>
<li>the measured position of the sample with respect to the granite</li>
</ul>
<p>
The variability of the dynamics is studied for two nano-hexapod concepts:
</p>
<ul class="org-ul">
<li>a soft nano-hexapod</li>
<li>a stiff nano-hexapod</li>
</ul>
<p>
The conclusions are drawn in Section <a href="#org16cf0c6">7</a>
</p>
<div id="outline-container-orgea4f0d4" class="outline-2">
<h2 id="orgea4f0d4"><span class="section-number-2">1</span> Variation of the Sample Mass</h2>
<div class="outline-text-2" id="text-1">
<p>
<a id="org73362ad"></a>
</p>
<p>
We here study the change of dynamics due to the sample mass.
To see only the effect of the sample mass, we keep the same resonance frequency of the sample, and we set it to 10kHz so it is above the dynamics of interest.
</p>
<p>
We initialize all the stages with the default parameters.
We identify the dynamics for the following sample masses, both with a soft and stiff nano-hexapod.
</p>
<div class="org-src-container">
<pre class="src src-matlab">masses = [1, 10, 50]; <span class="org-comment">% [kg]</span>
</pre>
</div>
<p>
The following transfer functions are shown:
</p>
<ul class="org-ul">
<li>Figure <a href="#orgfcb2492">1</a>: From actuator forces to force sensors in each nano-hexapod&rsquo;s leg</li>
<li>Figure <a href="#orga2c8402">2</a>: From actuator forces to relative displacement of each nano-hexapod&rsquo;s leg</li>
<li>Figure <a href="#org389df4f">3</a> (resp. <a href="#orgb5aaedd">4</a>): From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction (resp. in the Z direction)</li>
</ul>
<div id="orgfcb2492" class="figure">
<p><img src="figs/dynamics_variability_iff_sample_mass.png" alt="dynamics_variability_iff_sample_mass.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Variability of the dynamics from actuator force to force sensor with the Sample Mass (<a href="./figs/dynamics_variability_iff_sample_mass.png">png</a>, <a href="./figs/dynamics_variability_iff_sample_mass.pdf">pdf</a>)</p>
</div>
<div id="orga2c8402" class="figure">
<p><img src="figs/dynamics_variability_dvf_sample_mass.png" alt="dynamics_variability_dvf_sample_mass.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Variability of the dynamics from actuator force to relative motion sensor with the Sample Mass (<a href="./figs/dynamics_variability_dvf_sample_mass.png">png</a>, <a href="./figs/dynamics_variability_dvf_sample_mass.pdf">pdf</a>)</p>
</div>
<div id="org389df4f" class="figure">
<p><img src="figs/dynamics_variability_err_x_sample_mass.png" alt="dynamics_variability_err_x_sample_mass.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Variability of the dynamics from Forces applied in task space (X direction) to the displacement of the sample in the X direction (<a href="./figs/dynamics_variability_err_x_sample_mass.png">png</a>, <a href="./figs/dynamics_variability_err_x_sample_mass.pdf">pdf</a>)</p>
</div>
<div id="orgb5aaedd" class="figure">
<p><img src="figs/dynamics_variability_err_z_sample_mass.png" alt="dynamics_variability_err_z_sample_mass.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Variability of the dynamics from vertical forces applied in the task space to the displacement of the sample in the vertical direction (<a href="./figs/dynamics_variability_err_z_sample_mass.png">png</a>, <a href="./figs/dynamics_variability_err_z_sample_mass.pdf">pdf</a>)</p>
</div>
<div class="important">
<p>
Let&rsquo;s note \(\omega_0\) the first resonance which corresponds to the resonance of the payload+nano-hexapod top platform resonating on top of the nano-hexapod base.
</p>
<p>
An increase of the payload mass decreases \(\omega_0\).
This is more easily seem with the soft nano-hexapod as the resonance \(\omega_0\) is separated from the resonances of the micro-station.
</p>
<ul class="org-ul">
<li>For the soft nano-hexapod, the main effect is the change of \(\omega_0\).</li>
<li>For the stiff nano-hexapod, it also affects the others resonances corresponding to the resonances of the micro-station</li>
</ul>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">\(\frac{\tau_{mi}}{\tau_m}\)</th>
<th scope="col" class="org-left">\(\frac{d\mathcal{L}_i}{\tau_i}\)</th>
<th scope="col" class="org-left">\(\frac{\mathcal{X}_i}{\mathcal{F}_i}\)</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Soft Nano-Hexapod</td>
<td class="org-left">Changes the low frequency gain</td>
<td class="org-left">Changes the high frequency gain</td>
<td class="org-left">Changes \(\omega_0\) and high frequency gain</td>
</tr>
<tr>
<td class="org-left">Stiff Nano-Hexapod</td>
<td class="org-left">Changes the location of the modes and low frequency gain</td>
<td class="org-left">Changes the location of the modes and high frequency gain</td>
<td class="org-left">Changes the dynamics above \(\omega_0\)</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div id="outline-container-orga0077c1" class="outline-2">
<h2 id="orga0077c1"><span class="section-number-2">2</span> Variation of the Sample Resonance Frequency</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org5d9a396"></a>
</p>
<p>
We initialize all the stages with the default parameters.
We identify the dynamics for the following sample resonance frequency.
</p>
<div class="org-src-container">
<pre class="src src-matlab">mass_w = [50, 100, 500]; <span class="org-comment">% [Hz]</span>
mass = 10; <span class="org-comment">% [Kg]</span>
</pre>
</div>
<p>
The following transfer functions are shown:
</p>
<ul class="org-ul">
<li>Figure <a href="#org9b4645f">5</a>: From actuator forces to force sensors in each nano-hexapod&rsquo;s leg</li>
<li>Figure <a href="#orga4f9971">6</a>: From actuator forces to relative displacement of each nano-hexapod&rsquo;s leg</li>
<li>Figure <a href="#orgfdf548b">7</a>: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction</li>
</ul>
<div id="org9b4645f" class="figure">
<p><img src="figs/dynamics_variability_iff_sample_w.png" alt="dynamics_variability_iff_sample_w.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Variability of the dynamics from actuator force to force sensor with the Sample Mass (<a href="./figs/dynamics_variability_iff_sample_w.png">png</a>, <a href="./figs/dynamics_variability_iff_sample_w.pdf">pdf</a>)</p>
</div>
<div id="orga4f9971" class="figure">
<p><img src="figs/dynamics_variability_dvf_sample_w.png" alt="dynamics_variability_dvf_sample_w.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Variability of the dynamics from actuator force to relative motion sensor with the Sample Mass (<a href="./figs/dynamics_variability_dvf_sample_w.png">png</a>, <a href="./figs/dynamics_variability_dvf_sample_w.pdf">pdf</a>)</p>
</div>
<div id="orgfdf548b" class="figure">
<p><img src="figs/dynamics_variability_err_sample_w.png" alt="dynamics_variability_err_sample_w.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Variability of the dynamics from a torque applied on the sample by the nano-hexapod in the X direction to the rotation of the sample around the X axis (<a href="./figs/dynamics_variability_err_sample_w.png">png</a>, <a href="./figs/dynamics_variability_err_sample_w.pdf">pdf</a>)</p>
</div>
<div class="important">
<p>
Let&rsquo;s note \(\omega_m\) the frequency of the resonance of the Payload.
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">\(\frac{\tau_{mi}}{\tau_m}\)</th>
<th scope="col" class="org-left">\(\frac{d\mathcal{L}_i}{\tau_i}\)</th>
<th scope="col" class="org-left">\(\frac{\mathcal{X}_i}{\mathcal{F}_i}\)</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Soft Nano-Hexapod</td>
<td class="org-left">No visible effect</td>
<td class="org-left">Small effect around \(\omega_m\)</td>
<td class="org-left">Two c.c. zeros at \(\omega_m\) followed by two c.c. poles</td>
</tr>
<tr>
<td class="org-left">Stiff Nano-Hexapod</td>
<td class="org-left">Slightly change the dynamics</td>
<td class="org-left">Slightly change the dynamics</td>
<td class="org-left">Greatly affect the dynamics above the first resonance</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div id="outline-container-orgb49a967" class="outline-2">
<h2 id="orgb49a967"><span class="section-number-2">3</span> Variation of the Spindle Angle</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="org58b9cae"></a>
</p>
</div>
<div id="outline-container-org63447f1" class="outline-3">
<h3 id="org63447f1"><span class="section-number-3">3.1</span> Identification</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We identify the dynamics for the following Tilt stage angles.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeSample(<span class="org-string">'mass'</span>, 50);
Rz_amplitudes = [0, <span class="org-constant">pi</span><span class="org-type">/</span>4, <span class="org-constant">pi</span><span class="org-type">/</span>2, <span class="org-constant">pi</span>]; <span class="org-comment">% [rad]</span>
</pre>
</div>
</div>
</div>
<div class="outline-text-2" id="text-3">
<p>
The following transfer functions are shown:
</p>
<ul class="org-ul">
<li>Figure <a href="#orgcfb9db7">8</a>: From actuator forces to force sensors in each nano-hexapod&rsquo;s leg</li>
<li>Figure <a href="#orgd07dc03">9</a>: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction</li>
</ul>
<div id="orgcfb9db7" class="figure">
<p><img src="figs/dynamics_variability_iff_spindle_angle.png" alt="dynamics_variability_iff_spindle_angle.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Variability of the dynamics from the actuator force to the force sensor with the Spindle Angle (<a href="./figs/dynamics_variability_iff_spindle_angle.png">png</a>, <a href="./figs/dynamics_variability_iff_spindle_angle.pdf">pdf</a>)</p>
</div>
<div id="orgd07dc03" class="figure">
<p><img src="figs/dynamics_variability_err_spindle_angle.png" alt="dynamics_variability_err_spindle_angle.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Variability of the dynamics from actuator force to absolute velocity with the Spindle Angle (<a href="./figs/dynamics_variability_err_spindle_angle.png">png</a>, <a href="./figs/dynamics_variability_err_spindle_angle.pdf">pdf</a>)</p>
</div>
</div>
<div class="outline-text-2" id="text-3">
<div class="important">
<p>
The Spindle angle has no visible effect for the soft nano-hexapod.
</p>
<p>
It has little effect on the dynamics when a stiff nano-hexapod is used.
This is seem between 50Hz and 100Hz.
This is probably due to the fact that the micro-station compliance is not uniform in the X and Y directions.
</p>
</div>
</div>
</div>
<div id="outline-container-org9081b0f" class="outline-2">
<h2 id="org9081b0f"><span class="section-number-2">4</span> Variation of the Spindle Rotation Speed</h2>
<div class="outline-text-2" id="text-4">
<p>
<a id="org5b594de"></a>
</p>
</div>
<div id="outline-container-orgd625617" class="outline-3">
<h3 id="orgd625617"><span class="section-number-3">4.1</span> Initialization of gravity compensation forces</h3>
<div class="outline-text-3" id="text-4-1">
<p>
We initialize all the stages such that their joints are blocked and we record the total forces/torques applied in each of these joints.
We set a payload mass of 10Kg.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeSample(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>, <span class="org-string">'mass'</span>, 10);
nano_hexapod = initializeNanoHexapod( <span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
</pre>
</div>
<p>
Finally, we simulate the system and same the forces/torques applied in each joint.
</p>
</div>
</div>
<div id="outline-container-org54babd6" class="outline-3">
<h3 id="org54babd6"><span class="section-number-3">4.2</span> Identification</h3>
<div class="outline-text-3" id="text-4-2">
<p>
We initialize the stages with forces/torques compensating the gravity forces.
We identify the dynamics for the following Spindle rotation periods.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Rz_periods = [60, 6, 2, 1]; <span class="org-comment">% [s]</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-org70dd336" class="outline-3">
<h3 id="org70dd336"><span class="section-number-3">4.3</span> Plots</h3>
<div class="outline-text-3" id="text-4-3">
<p>
The following transfer functions are shown:
</p>
<ul class="org-ul">
<li>Figure <a href="#org82ab7aa">10</a>: From actuator forces to force sensors in each nano-hexapod&rsquo;s leg</li>
<li>Figure <a href="#org3f98487">11</a>: From actuator forces to relative displacement of each nano-hexapod&rsquo;s leg</li>
<li>Figure <a href="#org0d347dd">12</a>: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction</li>
<li>Figure <a href="#org61e9acd">13</a>: From forces applied in the task space in the X direction by the nano-hexapod to displacement of the sample in the Y direction (coupling)</li>
</ul>
<div id="org82ab7aa" class="figure">
<p><img src="figs/dynamics_variability_iff_spindle_speed.png" alt="dynamics_variability_iff_spindle_speed.png" />
</p>
<p><span class="figure-number">Figure 10: </span>Variability of the dynamics from the actuator force to the force sensor with the Spindle rotation speed (<a href="./figs/dynamics_variability_iff_spindle_speed.png">png</a>, <a href="./figs/dynamics_variability_iff_spindle_speed.pdf">pdf</a>)</p>
</div>
<div id="org3f98487" class="figure">
<p><img src="figs/dynamics_variability_dvf_spindle_speed.png" alt="dynamics_variability_dvf_spindle_speed.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Variability of the dynamics from the actuator force to the relative motion sensor with the Spindle rotation speed (<a href="./figs/dynamics_variability_dvf_spindle_speed.png">png</a>, <a href="./figs/dynamics_variability_dvf_spindle_speed.pdf">pdf</a>)</p>
</div>
<div id="org0d347dd" class="figure">
<p><img src="figs/dynamics_variability_err_spindle_speed.png" alt="dynamics_variability_err_spindle_speed.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Variability of the dynamics from the actuator force in the task force to the position error of the sample (<a href="./figs/dynamics_variability_err_spindle_speed.png">png</a>, <a href="./figs/dynamics_variability_err_spindle_speed.pdf">pdf</a>)</p>
</div>
<div id="org61e9acd" class="figure">
<p><img src="figs/dynamics_variability_err_spindle_speed_coupling.png" alt="dynamics_variability_err_spindle_speed_coupling.png" />
</p>
<p><span class="figure-number">Figure 13: </span>Variability of the coupling from the actuator force in the task force to the position error of the sample (<a href="./figs/dynamics_variability_err_spindle_speed_coupling.png">png</a>, <a href="./figs/dynamics_variability_err_spindle_speed_coupling.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div class="outline-text-2" id="text-4">
<div class="important">
<p>
For the stiff nano-hexapod, the rotation speed of the Spindle does not affect the (main) dynamics.
It only affects the coupling due to Coriolis forces.
</p>
<p>
For the soft nano-hexapod, it greatly affects the obtained dynamics around the main resonance which corresponds to the payload vibrating on top of the nano-hexapod.
</p>
<p>
This effect is similar to the one described in rotating machinery, the c.c. poles is separated into two sets of c.c. poles, one going to decreasing frequencies while the other going to positive frequencies.
This effect is due to centrifugal forces that can be modeled as negative stiffness.
At some point, one of the pair of c.c. pole becomes unstable.
</p>
<p>
Also, the coupling from forces applied in the X direction to induced displacement in the Y direction becomes very high when the rotating speed is increased.
</p>
</div>
</div>
</div>
<div id="outline-container-orgc4bba39" class="outline-2">
<h2 id="orgc4bba39"><span class="section-number-2">5</span> Variation of the Tilt Angle</h2>
<div class="outline-text-2" id="text-5">
<p>
<a id="org4fe1245"></a>
</p>
<p>
We initialize all the stages with the default parameters.
We identify the dynamics for the following Tilt stage angles.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeSample(<span class="org-string">'mass'</span>, 50);
Ry_amplitudes = [<span class="org-type">-</span>3<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">/</span>180 0 3<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">/</span>180]; <span class="org-comment">% [rad]</span>
</pre>
</div>
<p>
The following transfer functions are shown:
</p>
<ul class="org-ul">
<li>Figure <a href="#org8eda147">14</a>: From actuator forces to force sensors in each nano-hexapod&rsquo;s leg</li>
<li>Figure <a href="#orgfacbfbb">15</a>: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction</li>
</ul>
<div id="org8eda147" class="figure">
<p><img src="figs/dynamics_variability_iff_tilt_angle.png" alt="dynamics_variability_iff_tilt_angle.png" />
</p>
<p><span class="figure-number">Figure 14: </span>Variability of the dynamics from the actuator force to the force sensor with the Tilt stage Angle (<a href="./figs/dynamics_variability_iff_tilt_angle.png">png</a>, <a href="./figs/dynamics_variability_iff_tilt_angle.pdf">pdf</a>)</p>
</div>
<div id="orgfacbfbb" class="figure">
<p><img src="figs/dynamics_variability_err_tilt_angle.png" alt="dynamics_variability_err_tilt_angle.png" />
</p>
<p><span class="figure-number">Figure 15: </span>Variability of the dynamics from the actuator force in the task space to the displacement of the sample (<a href="./figs/dynamics_variability_err_tilt_angle.png">png</a>, <a href="./figs/dynamics_variability_err_tilt_angle.pdf">pdf</a>)</p>
</div>
<div class="important">
<p>
The tilt angle has no visible effect on the dynamics.
</p>
</div>
</div>
</div>
<div id="outline-container-orgd6b6bfd" class="outline-2">
<h2 id="orgd6b6bfd"><span class="section-number-2">6</span> Variation of the micro-hexapod pose</h2>
<div class="outline-text-2" id="text-6">
<p>
<a id="orgec1048c"></a>
</p>
<p>
We initialize all the stages with the default parameters.
We identify the dynamics for the following translations of the micro-hexapod in the X direction.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Tx_amplitudes = [0, 5e<span class="org-type">-</span>3, 10e<span class="org-type">-</span>3]; <span class="org-comment">% [m]</span>
</pre>
</div>
<div id="org110386d" class="figure">
<p><img src="figs/dynamics_variability_iff_micro_hexapod_x.png" alt="dynamics_variability_iff_micro_hexapod_x.png" />
</p>
<p><span class="figure-number">Figure 16: </span>Variability of the dynamics from the actuator force to the force sensor with the Tilt stage Angle (<a href="./figs/dynamics_variability_iff_micro_hexapod_x.png">png</a>, <a href="./figs/dynamics_variability_iff_micro_hexapod_x.pdf">pdf</a>)</p>
</div>
<div id="org62de399" class="figure">
<p><img src="figs/dynamics_variability_err_micro_hexapod_x.png" alt="dynamics_variability_err_micro_hexapod_x.png" />
</p>
<p><span class="figure-number">Figure 17: </span>Variability of the dynamics from the actuator force in the task space to the displacement of the sample (<a href="./figs/dynamics_variability_err_micro_hexapod_x.png">png</a>, <a href="./figs/dynamics_variability_err_micro_hexapod_x.pdf">pdf</a>)</p>
</div>
<div class="important">
<p>
The pose of the micro-hexapod has negligible effect on the dynamics.
</p>
</div>
</div>
</div>
<div id="outline-container-org9b1c640" class="outline-2">
<h2 id="org9b1c640"><span class="section-number-2">7</span> Conclusion</h2>
<div class="outline-text-2" id="text-7">
<p>
<a id="org16cf0c6"></a>
</p>
<div class="important">
<p>
From all the experimental condition studied, the only ones that have significant effect on the dynamics are:
</p>
<ul class="org-ul">
<li>the <b>sample mass</b></li>
<li>the <b>resonance frequency of the sample</b></li>
<li>the <b>rotation speed</b> of the spindle</li>
</ul>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">Soft</th>
<th scope="col" class="org-left">Stiff</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Sample Mass</td>
<td class="org-left">Localized effect on the resonance of the sample</td>
<td class="org-left">Effect on all the modes</td>
</tr>
<tr>
<td class="org-left">Sample Resonance</td>
<td class="org-left">Localized effect at the resonance of the sample</td>
<td class="org-left">Effect on all the modes</td>
</tr>
<tr>
<td class="org-left">Rotation Speed</td>
<td class="org-left">Greatly influences the dynamics and coupling</td>
<td class="org-left">No effect</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-04-01 mer. 16:16</p>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

View File

@ -45,12 +45,12 @@
The goal of this document is to study how the dynamics of the system is changing with the experimental conditions.
These experimental conditions are:
- Sample mass (from 1Kg to 50Kg)
- Sample dynamics (mostly main resonance frequency)
- The spindle angle
- The spindle rotation speed (from 1rpm to 60rpm)
- The tilt angle (from -3 to 3 degrees)
- The scans of the translation stage
- Section [[sec:variability_sample_mass]]: Sample mass (from 1Kg to 50Kg)
- Section [[sec:variability_sample_freq]]: Sample dynamics (mostly main resonance frequency)
- Section [[sec:variability_spindle_angle]]: The spindle angle
- Section [[sec:variability_rotation_speed]]: The spindle rotation speed (from 1rpm to 60rpm)
- Section [[sec:variability_tilt_angle]]: The tilt angle (from -3 to 3 degrees)
- Section [[sec:micro_hexapod_pose]]: Pose of the micro-hexapod
We are interested in the dynamics from the nano-hexapod actuators to:
- the sensors included in the nano-hexapod (force sensor, relative motion sensor)
@ -60,6 +60,8 @@ The variability of the dynamics is studied for two nano-hexapod concepts:
- a soft nano-hexapod
- a stiff nano-hexapod
The conclusions are drawn in Section [[sec:conclusion]]
* 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>>
@ -548,7 +550,7 @@ We identify the dynamics for the following sample resonance frequency.
The following transfer functions are shown:
- Figure [[fig:dynamics_variability_iff_sample_w]]: From actuator forces to force sensors in each nano-hexapod's leg
- Figure [[fig:dynamics_variability_dvf_sample_w]]: From actuator forces to relative displacement of each nano-hexapod's leg
- Figure [[fig:dynamics_variability_err_x_sample_w]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
- Figure [[fig:dynamics_variability_err_sample_w]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
#+begin_src matlab :exports none
freqs = logspace(-1, 3, 1000);
@ -850,7 +852,7 @@ We identify the dynamics for the following Tilt stage angles.
The following transfer functions are shown:
- Figure [[fig:dynamics_variability_iff_spindle_angle]]: From actuator forces to force sensors in each nano-hexapod's leg
- Figure [[fig:dynamics_variability_err_x_spindle_angle]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
- Figure [[fig:dynamics_variability_err_spindle_angle]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
#+begin_src matlab :exports none
freqs = logspace(-1, 2, 1000);
@ -1478,7 +1480,7 @@ We identify the dynamics for the following Tilt stage angles.
The following transfer functions are shown:
- Figure [[fig:dynamics_variability_iff_tilt_angle]]: From actuator forces to force sensors in each nano-hexapod's leg
- Figure [[fig:dynamics_variability_err_x_tilt_angle]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
- Figure [[fig:dynamics_variability_err_tilt_angle]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
#+begin_src matlab :exports none
freqs = logspace(-1, 2, 1000);
@ -1623,8 +1625,248 @@ The following transfer functions are shown:
The tilt angle has no visible effect on the dynamics.
#+end_important
* Conclusion
* Variation of the micro-hexapod pose
<<sec:micro_hexapod_pose>>
** Introduction :ignore:
** Identification :ignore:
We initialize all the stages with the default parameters.
#+begin_src matlab :exports none :noweb yes
<<init-sim>>
<<init-identification>>
initializeSample('mass', 1);
#+end_src
We identify the dynamics for the following translations of the micro-hexapod in the X direction.
#+begin_src matlab
Tx_amplitudes = [0, 5e-3, 10e-3]; % [m]
#+end_src
#+begin_src matlab :exports none
nano_hexapod = initializeNanoHexapod('actuator', 'lorentz');
Gry_vc_iff = {zeros(length(Tx_amplitudes))};
Gry_vc_dvf = {zeros(length(Tx_amplitudes))};
Gry_vc_err = {zeros(length(Tx_amplitudes))};
for i = 1:length(Tx_amplitudes)
initializeMicroHexapod('AP', [Tx_amplitudes(i) 0 0]);
initializeReferences('Dh_type', 'constant', 'Dh_pos', [Tx_amplitudes(i) 0 0 0 0 0])
%% Run the linearization
G = linearize(mdl, io, 1e-3);
G.InputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'};
G.OutputName = {'Dnlm1', 'Dnlm2', 'Dnlm3', 'Dnlm4', 'Dnlm5', 'Dnlm6', ...
'Fnlm1', 'Fnlm2', 'Fnlm3', 'Fnlm4', 'Fnlm5', 'Fnlm6', ...
'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'};
Gtx_vc_iff(i) = {minreal(G({'Fnlm1', 'Fnlm2', 'Fnlm3', 'Fnlm4', 'Fnlm5', 'Fnlm6'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))};
Gtx_vc_dvf(i) = {minreal(G({'Dnlm1', 'Dnlm2', 'Dnlm3', 'Dnlm4', 'Dnlm5', 'Dnlm6'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))};
Jinvt = tf(inv(nano_hexapod.J)');
Jinvt.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'};
Jinvt.OutputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'};
Gtx_vc_err(i) = {-minreal(G({'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))*Jinvt};
end
#+end_src
#+begin_src matlab :exports none
nano_hexapod = initializeNanoHexapod('actuator', 'piezo');
Gtx_pz_iff = {zeros(length(Tx_amplitudes))};
Gtx_pz_dvf = {zeros(length(Tx_amplitudes))};
Gtx_pz_err = {zeros(length(Tx_amplitudes))};
for i = 1:length(Tx_amplitudes)
initializeMicroHexapod('AP', [Tx_amplitudes(i) 0 0]);
initializeReferences('Dh_type', 'constant', 'Dh_pos', [Tx_amplitudes(i) 0 0 0 0 0])
%% Run the linearization
G = linearize(mdl, io, 1e-3);
G.InputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'};
G.OutputName = {'Dnlm1', 'Dnlm2', 'Dnlm3', 'Dnlm4', 'Dnlm5', 'Dnlm6', ...
'Fnlm1', 'Fnlm2', 'Fnlm3', 'Fnlm4', 'Fnlm5', 'Fnlm6', ...
'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'};
Gtx_pz_iff(i) = {minreal(G({'Fnlm1', 'Fnlm2', 'Fnlm3', 'Fnlm4', 'Fnlm5', 'Fnlm6'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))};
Gtx_pz_dvf(i) = {minreal(G({'Dnlm1', 'Dnlm2', 'Dnlm3', 'Dnlm4', 'Dnlm5', 'Dnlm6'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))};
Jinvt = tf(inv(nano_hexapod.J)');
Jinvt.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'};
Jinvt.OutputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'};
Gtx_pz_err(i) = {-minreal(G({'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))*Jinvt};
end
#+end_src
#+begin_src matlab :exports none
save('./mat/dynamics_variability_Tx.mat', 'Tx_amplitudes', ...
'Gtx_vc_iff', 'Gtx_vc_dvf', 'Gtx_vc_err', ...
'Gtx_pz_iff', 'Gtx_pz_dvf', 'Gtx_pz_err');
#+end_src
** Plots :ignore:
#+begin_src matlab :exports none
load('./mat/dynamics_variability_Tx.mat');
#+end_src
#+begin_src matlab :exports none
freqs = logspace(-1, 2, 1000);
figure;
ax1 = subplot(2, 2, 1);
hold on;
for i = 1:length(Gtx_vc_iff)
plot(freqs, abs(squeeze(freqresp(Gtx_vc_iff{i}('Fnlm1', 'Fnl1'), freqs, 'Hz'))));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
title('Soft Nano-Hexapod');
ax2 = subplot(2, 2, 3);
hold on;
for i = 1:length(Gtx_vc_iff)
plot(freqs, 180/pi*angle(squeeze(freqresp(Gtx_vc_iff{i}('Fnlm1', 'Fnl1'), freqs, 'Hz'))), ...
'DisplayName', sprintf('$T_x = %.0f$ [m]', 1e3*Tx_amplitudes(i)));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
legend('location', 'northeast');
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
freqs = logspace(0, 3, 1000);
ax1 = subplot(2, 2, 2);
hold on;
for i = 1:length(Gtx_pz_iff)
plot(freqs, abs(squeeze(freqresp(Gtx_pz_iff{i}('Fnlm1', 'Fnl1'), freqs, 'Hz'))));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
title('Stiff Nano-Hexapod');
ax2 = subplot(2, 2, 4);
hold on;
for i = 1:length(Gtx_pz_iff)
plot(freqs, 180/pi*angle(squeeze(freqresp(Gtx_pz_iff{i}('Fnlm1', 'Fnl1'), freqs, 'Hz'))), ...
'DisplayName', sprintf('$T_x = %.0f$ [m]', 1e3*Tx_amplitudes(i)));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
legend('location', 'northeast');
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/dynamics_variability_iff_micro_hexapod_x.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+name: fig:dynamics_variability_iff_micro_hexapod_x
#+caption: Variability of the dynamics from the actuator force to the force sensor with the Tilt stage Angle ([[./figs/dynamics_variability_iff_micro_hexapod_x.png][png]], [[./figs/dynamics_variability_iff_micro_hexapod_x.pdf][pdf]])
[[file:figs/dynamics_variability_iff_micro_hexapod_x.png]]
#+begin_src matlab :exports none
freqs = logspace(-1, 3, 1000);
figure;
ax1 = subplot(2, 2, 1);
hold on;
for i = 1:length(Gtx_vc_err)
plot(freqs, abs(squeeze(freqresp(Gtx_vc_err{i}('Erx', 'Mx'), freqs, 'Hz'))));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
title('Soft Nano-Hexapod');
ax2 = subplot(2, 2, 3);
hold on;
for i = 1:length(Gtx_vc_err)
plot(freqs, 180/pi*angle(squeeze(freqresp(Gtx_vc_err{i}('Erx', 'Mx'), freqs, 'Hz'))), ...
'DisplayName', sprintf('$T_x = %.0f$ [m]', 1e3*Tx_amplitudes(i)));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
legend('location', 'northeast');
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
freqs = logspace(0, 3, 1000);
ax1 = subplot(2, 2, 2);
hold on;
for i = 1:length(Gtx_pz_err)
plot(freqs, abs(squeeze(freqresp(Gtx_pz_err{i}('Erx', 'Mx'), freqs, 'Hz'))));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
title('Stiff Nano-Hexapod');
ax2 = subplot(2, 2, 4);
hold on;
for i = 1:length(Gtx_pz_err)
plot(freqs, 180/pi*angle(squeeze(freqresp(Gtx_pz_err{i}('Erx', 'Mx'), freqs, 'Hz'))), ...
'DisplayName', sprintf('$T_x = %.0f$ [m]', 1e3*Tx_amplitudes(i)));
end
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
legend('location', 'northeast');
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
#+end_src
#+HEADER: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/dynamics_variability_err_micro_hexapod_x.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+name: fig:dynamics_variability_err_micro_hexapod_x
#+caption: Variability of the dynamics from the actuator force in the task space to the displacement of the sample ([[./figs/dynamics_variability_err_micro_hexapod_x.png][png]], [[./figs/dynamics_variability_err_micro_hexapod_x.pdf][pdf]])
[[file:figs/dynamics_variability_err_micro_hexapod_x.png]]
** Conclusion :ignore:
#+begin_important
The pose of the micro-hexapod has negligible effect on the dynamics.
#+end_important
* Conclusion
<<sec:conclusion>>
#+begin_important
From all the experimental condition studied, the only ones that have significant effect on the dynamics are:
- the *sample mass*
- the *resonance frequency of the sample*
- the *rotation speed* of the spindle
| | Soft | Stiff |
|------------------+-------------------------------------------------+-------------------------|
| Sample Mass | Localized effect on the resonance of the sample | Effect on all the modes |
| Sample Resonance | Localized effect at the resonance of the sample | Effect on all the modes |
| Rotation Speed | Greatly influences the dynamics and coupling | No effect |
#+end_important
* Useful Blocks :noexport: