minor changes

This commit is contained in:
Thomas Dehaeze 2019-12-12 12:49:03 +01:00
parent 8980329eb5
commit 72c9afb29f
5 changed files with 63 additions and 69 deletions

View File

@ -258,16 +258,16 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orga89c15d">1. Simulink Project (link)</a></li>
<li><a href="#org664ee3d">2. Simscape Model (link)</a></li>
<li><a href="#org2f8b315">3. Simscape Subsystems (link)</a></li>
<li><a href="#org2669734">4. Kinematics of the Station (link)</a></li>
<li><a href="#org6d34d67">5. Metrology (link)</a></li>
<li><a href="#orgb65c934">6. Computation of the positioning error of the Sample (link)</a></li>
<li><a href="#orga548c6b">7. Tuning of the Dynamics of the Simscape model (link)</a></li>
<li><a href="#org5750f16">8. Disturbances (link)</a></li>
<li><a href="#orgbd511b6">9. Tomography Experiment (link)</a></li>
<li><a href="#org7d0cf6d">10. Useful Matlab Functions (link)</a></li>
<li><a href="#orgb2c859c">1. Simulink Project (link)</a></li>
<li><a href="#org9727aa1">2. Simscape Model (link)</a></li>
<li><a href="#org203d0d1">3. Simscape Subsystems (link)</a></li>
<li><a href="#orgcd6fbe6">4. Kinematics of the Station (link)</a></li>
<li><a href="#orgcd6e706">5. Metrology (link)</a></li>
<li><a href="#orgbadb5c3">6. Computation of the positioning error of the Sample (link)</a></li>
<li><a href="#orgc5a914e">7. Tuning of the Dynamics of the Simscape model (link)</a></li>
<li><a href="#org3905335">8. Disturbances (link)</a></li>
<li><a href="#org0bc662a">9. Tomography Experiment (link)</a></li>
<li><a href="#org3e93696">10. Useful Matlab Functions (link)</a></li>
</ul>
</div>
</div>
@ -276,12 +276,8 @@ for the JavaScript code in this tag.
Here are links to the documents related to the Simscape model of the Nano-Active-Stabilization-System.
</p>
<p>
<a href="../stewart-simscape/index.html">test</a>
</p>
<div id="outline-container-orga89c15d" class="outline-2">
<h2 id="orga89c15d"><span class="section-number-2">1</span> Simulink Project (<a href="./simulink_project/index.html">link</a>)</h2>
<div id="outline-container-orgb2c859c" class="outline-2">
<h2 id="orgb2c859c"><span class="section-number-2">1</span> Simulink Project (<a href="./simulink_project/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-1">
<p>
The project is managed with a Simulink Project.
@ -290,8 +286,8 @@ Such project is briefly presented <a href="./simulink_project/index.html">here</
</div>
</div>
<div id="outline-container-org664ee3d" class="outline-2">
<h2 id="org664ee3d"><span class="section-number-2">2</span> Simscape Model (<a href="./simscape/index.html">link</a>)</h2>
<div id="outline-container-org9727aa1" class="outline-2">
<h2 id="org9727aa1"><span class="section-number-2">2</span> Simscape Model (<a href="./simscape/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-2">
<p>
The model of the NASS is based on Simulink and Simscape Multi-Body.
@ -300,8 +296,8 @@ Such toolbox is presented <a href="./simscape/index.html">here</a>.
</div>
</div>
<div id="outline-container-org2f8b315" class="outline-2">
<h2 id="org2f8b315"><span class="section-number-2">3</span> Simscape Subsystems (<a href="./simscape_subsystems/index.html">link</a>)</h2>
<div id="outline-container-org203d0d1" class="outline-2">
<h2 id="org203d0d1"><span class="section-number-2">3</span> Simscape Subsystems (<a href="./simscape_subsystems/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-3">
<p>
The model is decomposed of multiple subsystems.
@ -315,8 +311,8 @@ All these subsystems are described <a href="./simscape_subsystems/index.html">he
</div>
</div>
<div id="outline-container-org2669734" class="outline-2">
<h2 id="org2669734"><span class="section-number-2">4</span> Kinematics of the Station (<a href="./kinematics/index.html">link</a>)</h2>
<div id="outline-container-orgcd6fbe6" class="outline-2">
<h2 id="orgcd6fbe6"><span class="section-number-2">4</span> Kinematics of the Station (<a href="./kinematics/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-4">
<p>
First, we consider perfectly rigid elements and joints and we just study the kinematic of the station.
@ -326,8 +322,8 @@ This is detailed <a href="./kinematics/index.html">here</a>.
</div>
</div>
<div id="outline-container-org6d34d67" class="outline-2">
<h2 id="org6d34d67"><span class="section-number-2">5</span> Metrology (<a href="./metrology/index.html">link</a>)</h2>
<div id="outline-container-orgcd6e706" class="outline-2">
<h2 id="orgcd6e706"><span class="section-number-2">5</span> Metrology (<a href="./metrology/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-5">
<p>
In this document (accessible <a href="./metrology/index.html">here</a>), we discuss the measurement of the sample with respect to the granite.
@ -335,8 +331,8 @@ In this document (accessible <a href="./metrology/index.html">here</a>), we disc
</div>
</div>
<div id="outline-container-orgb65c934" class="outline-2">
<h2 id="orgb65c934"><span class="section-number-2">6</span> Computation of the positioning error of the Sample (<a href="./positioning_error/index.html">link</a>)</h2>
<div id="outline-container-orgbadb5c3" class="outline-2">
<h2 id="orgbadb5c3"><span class="section-number-2">6</span> Computation of the positioning error of the Sample (<a href="./positioning_error/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-6">
<p>
From the measurement of the position of the sample with respect to the granite and from the wanted position of each stage, we can compute the positioning error of the sample with respect to the nano-hexapod.
@ -345,8 +341,8 @@ This is done <a href="./positioning_error/index.html">here</a>.
</div>
</div>
<div id="outline-container-orga548c6b" class="outline-2">
<h2 id="orga548c6b"><span class="section-number-2">7</span> Tuning of the Dynamics of the Simscape model (<a href="./identification/index.html">link</a>)</h2>
<div id="outline-container-orgc5a914e" class="outline-2">
<h2 id="orgc5a914e"><span class="section-number-2">7</span> Tuning of the Dynamics of the Simscape model (<a href="./identification/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-7">
<p>
From dynamical measurements perform on the real positioning station, we tune the parameters of the simscape model to have similar dynamics.
@ -358,8 +354,8 @@ This is explained <a href="./identification/index.html">here</a>.
</div>
</div>
<div id="outline-container-org5750f16" class="outline-2">
<h2 id="org5750f16"><span class="section-number-2">8</span> Disturbances (<a href="./disturbances/index.html">link</a>)</h2>
<div id="outline-container-org3905335" class="outline-2">
<h2 id="org3905335"><span class="section-number-2">8</span> Disturbances (<a href="./disturbances/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-8">
<p>
The effect of disturbances on the position of the micro-station have been measured.
@ -376,8 +372,8 @@ We also discuss how the disturbances are implemented in the model.
</div>
</div>
<div id="outline-container-orgbd511b6" class="outline-2">
<h2 id="orgbd511b6"><span class="section-number-2">9</span> Tomography Experiment (<a href="./experiment_tomography/index.html">link</a>)</h2>
<div id="outline-container-org0bc662a" class="outline-2">
<h2 id="org0bc662a"><span class="section-number-2">9</span> Tomography Experiment (<a href="./experiment_tomography/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-9">
<p>
Now that the dynamics of the Model have been tuned and the Disturbances have included, we can simulate experiments.
@ -389,8 +385,8 @@ Tomography experiments are simulated and the results are presented <a href="./ex
</div>
</div>
<div id="outline-container-org7d0cf6d" class="outline-2">
<h2 id="org7d0cf6d"><span class="section-number-2">10</span> Useful Matlab Functions (<a href="./functions/index.html">link</a>)</h2>
<div id="outline-container-org3e93696" class="outline-2">
<h2 id="org3e93696"><span class="section-number-2">10</span> Useful Matlab Functions (<a href="./functions/index.html">link</a>)</h2>
<div class="outline-text-2" id="text-10">
<p>
Many matlab functions are shared among all the files of the projects.

View File

@ -43,8 +43,6 @@
Here are links to the documents related to the Simscape model of the Nano-Active-Stabilization-System.
[[file:../stewart-simscape/index.org][test]]
* Simulink Project ([[./simulink_project/index.org][link]])
The project is managed with a Simulink Project.
Such project is briefly presented [[./simulink_project/index.org][here]].

View File

@ -3,7 +3,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>
<!-- 2019-12-11 mer. 14:47 -->
<!-- 2019-12-12 jeu. 11:39 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Kinematics of the station</title>
@ -283,16 +283,16 @@ for the JavaScript code in this tag.
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgf49d055">1. Micro Hexapod</a>
<li><a href="#org1c1eaea">1. Micro Hexapod</a>
<ul>
<li><a href="#orgb024fa1">1.1. How the Symetrie Hexapod is controlled on the micro station</a></li>
<li><a href="#org34abe0f">1.2. Control of the Micro-Hexapod using Simscape</a>
<li><a href="#orgbed4ee9">1.1. How the Symetrie Hexapod is controlled on the micro station</a></li>
<li><a href="#org3fdba3a">1.2. Control of the Micro-Hexapod using Simscape</a>
<ul>
<li><a href="#org118cdf5">1.2.1. Using Bushing Joint</a></li>
<li><a href="#org37b4bdd">1.2.2. Using Inverse Kinematics and Leg Actuators</a>
<li><a href="#org6d226ad">1.2.1. Using Bushing Joint</a></li>
<li><a href="#orgd390910">1.2.2. Using Inverse Kinematics and Leg Actuators</a>
<ul>
<li><a href="#org9839e83">1.2.2.1. Theory</a></li>
<li><a href="#org78fd3cf">1.2.2.2. Matlab Implementation</a></li>
<li><a href="#orgf6ea97b">1.2.2.1. Theory</a></li>
<li><a href="#org67bcb7b">1.2.2.2. Matlab Implementation</a></li>
</ul>
</li>
</ul>
@ -307,12 +307,12 @@ for the JavaScript code in this tag.
In this document, we discuss the way the motion of each stage is defined.
</p>
<div id="outline-container-orgf49d055" class="outline-2">
<h2 id="orgf49d055"><span class="section-number-2">1</span> Micro Hexapod</h2>
<div id="outline-container-org1c1eaea" class="outline-2">
<h2 id="org1c1eaea"><span class="section-number-2">1</span> Micro Hexapod</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-orgb024fa1" class="outline-3">
<h3 id="orgb024fa1"><span class="section-number-3">1.1</span> How the Symetrie Hexapod is controlled on the micro station</h3>
<div id="outline-container-orgbed4ee9" class="outline-3">
<h3 id="orgbed4ee9"><span class="section-number-3">1.1</span> How the Symetrie Hexapod is controlled on the micro station</h3>
<div class="outline-text-3" id="text-1-1">
<p>
For the Micro-Hexapod, the convention for the angles are defined in <code>MAN_A_Software API_4.0.150918_EN.pdf</code> on page 13 (section 2.4 - Rotation Vectors):
@ -360,8 +360,8 @@ Thus, it does the translations and then the rotation around the new translated f
</div>
</div>
<div id="outline-container-org34abe0f" class="outline-3">
<h3 id="org34abe0f"><span class="section-number-3">1.2</span> Control of the Micro-Hexapod using Simscape</h3>
<div id="outline-container-org3fdba3a" class="outline-3">
<h3 id="org3fdba3a"><span class="section-number-3">1.2</span> Control of the Micro-Hexapod using Simscape</h3>
<div class="outline-text-3" id="text-1-2">
<p>
We can think of two main ways to position the Micro-Hexapod using Simscape.
@ -378,15 +378,15 @@ This require a little bit more of mathematical derivations but this is the chose
</p>
</div>
<div id="outline-container-org118cdf5" class="outline-4">
<h4 id="org118cdf5"><span class="section-number-4">1.2.1</span> Using Bushing Joint</h4>
<div id="outline-container-org6d226ad" class="outline-4">
<h4 id="org6d226ad"><span class="section-number-4">1.2.1</span> Using Bushing Joint</h4>
<div class="outline-text-4" id="text-1-2-1">
<p>
In the documentation of the Bushing Joint (<code>doc "Bushing Joint"</code>) that is used to position the Hexapods, it is mention that the following frame is positioned with respect to the base frame in a way shown in figure <a href="#orgbf74afe">1</a>.
In the documentation of the Bushing Joint (<code>doc "Bushing Joint"</code>) that is used to position the Hexapods, it is mention that the following frame is positioned with respect to the base frame in a way shown in figure <a href="#orgb016316">1</a>.
</p>
<div id="orgbf74afe" class="figure">
<div id="orgb016316" class="figure">
<p><img src="figs/bushing_joint_transform.png" alt="bushing_joint_transform.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Joint Transformation Sequence for the Bushing Joint</p>
@ -404,8 +404,8 @@ However, the Bushing Joint makes rotations around mobiles axes (X, Y' and then Z
</div>
</div>
<div id="outline-container-org37b4bdd" class="outline-4">
<h4 id="org37b4bdd"><span class="section-number-4">1.2.2</span> Using Inverse Kinematics and Leg Actuators</h4>
<div id="outline-container-orgd390910" class="outline-4">
<h4 id="orgd390910"><span class="section-number-4">1.2.2</span> Using Inverse Kinematics and Leg Actuators</h4>
<div class="outline-text-4" id="text-1-2-2">
<p>
Here, we can use the Inverse Kinematic of the Hexapod to determine the length of each leg in order to obtain some defined translation and rotation of the mobile platform.
@ -431,8 +431,8 @@ Thus, for this simulation, we <b>remove the gravity</b>.
</p>
</div>
<div id="outline-container-org9839e83" class="outline-5">
<h5 id="org9839e83"><span class="section-number-5">1.2.2.1</span> Theory</h5>
<div id="outline-container-orgf6ea97b" class="outline-5">
<h5 id="orgf6ea97b"><span class="section-number-5">1.2.2.1</span> Theory</h5>
<div class="outline-text-5" id="text-1-2-2-1">
<p>
For inverse kinematic analysis, it is assumed that the position \({}^A\bm{P}\) and orientation of the moving platform \({}^A\bm{R}_B\) are given and the problem is to obtain the joint variables, namely, \(\bm{L} = [l_1, l_2, \dots, l_6]^T\).
@ -467,14 +467,14 @@ Otherwise, when the limbs' lengths derived yield complex numbers, then the posit
</div>
</div>
<div id="outline-container-org78fd3cf" class="outline-5">
<h5 id="org78fd3cf"><span class="section-number-5">1.2.2.2</span> Matlab Implementation</h5>
<div id="outline-container-org67bcb7b" class="outline-5">
<h5 id="org67bcb7b"><span class="section-number-5">1.2.2.2</span> Matlab Implementation</h5>
<div class="outline-text-5" id="text-1-2-2-2">
<p>
We open the Simulink file.
</p>
<div class="org-src-container">
<pre class="src src-matlab">open <span class="org-string">'simscape/hexapod_tests.slx'</span>
<pre class="src src-matlab">open<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'kinematics/matlab/hexapod_tests.slx'</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@ -482,7 +482,7 @@ We open the Simulink file.
We load the configuration and set a small <code>StopTime</code>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'simscape/conf_simscape.mat'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/conf_simscape.mat'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-matlab-simulink-keyword">set_param</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">conf_simscape</span>, <span class="org-string">'StopTime'</span>, '<span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">5</span><span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
@ -518,7 +518,7 @@ hexapod = initializeMicroHexapod<span class="org-rainbow-delimiters-depth-1">(</
We run the simulation.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'simscape/hexapod_tests.slx'</span><span class="org-rainbow-delimiters-depth-1">)</span>
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'hexapod_tests'</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
@ -594,7 +594,7 @@ And we verify that we indeed succeed to go to the wanted position.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-12-11 mer. 14:47</p>
<p class="date">Created: 2019-12-12 jeu. 11:39</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>

View File

@ -182,7 +182,7 @@ We define the wanted position/orientation of the Hexapod under study.
We run the simulation.
#+begin_src matlab
sim('hexapod_tests.slx')
sim('hexapod_tests')
#+end_src
And we verify that we indeed succeed to go to the wanted position.

View File

@ -160,7 +160,7 @@ No position error for now (perfect positioning).
And we run the simulation.
#+begin_src matlab
sim('sim_nano_station_metrology.slx');
sim('sim_nano_station_metrology');
#+end_src
** Verify that the pose of the sample is the same as the computed one
@ -308,7 +308,7 @@ Now we introduce some positioning error.
And we run the simulation.
#+begin_src matlab
sim('sim_nano_station_metrology.slx');
sim('sim_nano_station_metrology');
#+end_src
** Compute the wanted pose of the sample in the NASS Base from the metrology and the reference
@ -407,7 +407,7 @@ We now keep the wanted pose but we impose a displacement of the nano hexapod cor
And we run the simulation.
#+begin_src matlab
sim('sim_nano_station_metrology.slx');
sim('sim_nano_station_metrology');
#+end_src
We keep the old computed computed reference pose ${}^W\bm{T}_r$ even though we have change the nano hexapod reference, but this is not a real wanted reference but rather a adaptation to reject the positioning errors.