2019-07-12 11:53:59 +02:00
<?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 >
2019-12-12 11:30:23 +01:00
<!-- 2019 - 12 - 12 jeu. 11:30 -->
2019-07-12 11:53:59 +02:00
< meta http-equiv = "Content-Type" content = "text/html;charset=utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
2019-10-08 11:19:45 +02:00
< title > Simscape Model of the Nano-Active-Stabilization-System< / title >
2019-07-12 11:53:59 +02:00
< meta name = "generator" content = "Org mode" / >
2019-10-08 11:19:45 +02:00
< meta name = "author" content = "Dehaeze Thomas" / >
2019-07-12 11:53:59 +02:00
< 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 >
2019-10-08 11:19:45 +02:00
< 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 >
2019-07-12 11:53:59 +02:00
< script type = "text/javascript" >
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2019 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
<!-- /* --> <![CDATA[/*> <!-- */
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
< / script >
< / head >
< body >
2019-10-08 11:19:45 +02:00
< 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" > Simscape Model of the Nano-Active-Stabilization-System< / h1 >
2019-12-11 17:08:53 +01:00
< div id = "table-of-contents" >
< h2 > Table of Contents< / h2 >
< div id = "text-table-of-contents" >
< ul >
2019-12-12 11:30:23 +01:00
< li > < a href = "#org1802d60" > 1. Simulink Project (link)< / a > < / li >
< li > < a href = "#org661969e" > 2. Simscape Model (link)< / a > < / li >
< li > < a href = "#org216fa1a" > 3. Simscape Subsystems (link)< / a > < / li >
< li > < a href = "#org1b05e50" > 4. Kinematics of the Station (link)< / a > < / li >
< li > < a href = "#orgd783aa3" > 5. Metrology (link)< / a > < / li >
< li > < a href = "#org4363a89" > 6. Computation of the positioning error of the Sample (link)< / a > < / li >
< li > < a href = "#orga8e3313" > 7. Tuning of the Dynamics of the Simscape model (link)< / a > < / li >
< li > < a href = "#org4b2a77c" > 8. Disturbances (link)< / a > < / li >
< li > < a href = "#org9c0bfac" > 9. Tomography Experiment (link)< / a > < / li >
< li > < a href = "#org98e8cc6" > 10. Useful Matlab Functions (link)< / a > < / li >
2019-10-08 11:19:45 +02:00
< / ul >
2019-07-12 11:53:59 +02:00
< / div >
2019-12-11 17:08:53 +01:00
< / div >
< p >
Here are links to the documents related to the Simscape model of the Nano-Active-Stabilization-System.
< / p >
2019-12-12 11:30:23 +01:00
< p >
< a href = "file:///home/thomas/Cloud/thesis/matlab/stewart-simscape/index.html" > test< / a >
< / p >
< div id = "outline-container-org1802d60" class = "outline-2" >
< h2 id = "org1802d60" > < span class = "section-number-2" > 1< / span > Simulink Project (< a href = "./simulink_project/index.html" > link< / a > )< / h2 >
2019-12-11 17:08:53 +01:00
< div class = "outline-text-2" id = "text-1" >
< p >
The project is managed with a Simulink Project.
Such project is briefly presented < a href = "./simulink_project/index.html" > here< / a > .
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-org661969e" class = "outline-2" >
< h2 id = "org661969e" > < span class = "section-number-2" > 2< / span > Simscape Model (< a href = "./simscape/index.html" > link< / a > )< / h2 >
2019-12-11 17:08:53 +01:00
< div class = "outline-text-2" id = "text-2" >
< p >
The model of the NASS is based on Simulink and Simscape Multi-Body.
Such toolbox is presented < a href = "./simscape/index.html" > here< / a > .
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-org216fa1a" class = "outline-2" >
< h2 id = "org216fa1a" > < span class = "section-number-2" > 3< / span > Simscape Subsystems (< a href = "./simscape_subsystems/index.html" > link< / a > )< / h2 >
2019-12-11 17:08:53 +01:00
< div class = "outline-text-2" id = "text-3" >
< p >
The model is decomposed of multiple subsystems.
Subsystems can represent physical elements such as complete stages or basic simulink blocs.
These subsystems are shared among multiple files.
< / p >
< p >
All these subsystems are described < a href = "./simscape_subsystems/index.html" > here< / a > .
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-org1b05e50" class = "outline-2" >
< h2 id = "org1b05e50" > < span class = "section-number-2" > 4< / span > Kinematics of the Station (< a href = "./kinematics/index.html" > link< / a > )< / h2 >
2019-12-11 17:08:53 +01:00
< 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.
2019-12-11 17:34:26 +01:00
This permits to test if each stage is moving correctly.
2019-12-11 17:08:53 +01:00
This is detailed < a href = "./kinematics/index.html" > here< / a > .
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-orgd783aa3" class = "outline-2" >
< h2 id = "orgd783aa3" > < span class = "section-number-2" > 5< / span > Metrology (< a href = "./metrology/index.html" > link< / a > )< / h2 >
2019-12-11 17:08:53 +01:00
< 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.
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-org4363a89" class = "outline-2" >
< h2 id = "org4363a89" > < span class = "section-number-2" > 6< / span > Computation of the positioning error of the Sample (< a href = "./positioning_error/index.html" > link< / a > )< / h2 >
2019-12-11 17:08:53 +01:00
< div class = "outline-text-2" id = "text-6" >
< p >
2019-12-11 17:34:26 +01:00
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.
This is done < a href = "./positioning_error/index.html" > here< / a > .
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-orga8e3313" class = "outline-2" >
< h2 id = "orga8e3313" > < span class = "section-number-2" > 7< / span > Tuning of the Dynamics of the Simscape model (< a href = "./identification/index.html" > link< / a > )< / h2 >
2019-12-11 17:34:26 +01:00
< div class = "outline-text-2" id = "text-7" >
< p >
2019-12-11 17:08:53 +01:00
From dynamical measurements perform on the real positioning station, we tune the parameters of the simscape model to have similar dynamics.
< / p >
< p >
This is explained < a href = "./identification/index.html" > here< / a > .
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-org4b2a77c" class = "outline-2" >
< h2 id = "org4b2a77c" > < span class = "section-number-2" > 8< / span > Disturbances (< a href = "./disturbances/index.html" > link< / a > )< / h2 >
2019-12-11 17:34:26 +01:00
< div class = "outline-text-2" id = "text-8" >
2019-12-11 17:08:53 +01:00
< p >
The effect of disturbances on the position of the micro-station have been measured.
These are now converted to force disturbances using the Simscape model.
< / p >
< p >
This is discussed < a href = "./disturbances/index.html" > here< / a > .
< / p >
< p >
We also discuss how the disturbances are implemented in the model.
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-org9c0bfac" class = "outline-2" >
< h2 id = "org9c0bfac" > < span class = "section-number-2" > 9< / span > Tomography Experiment (< a href = "./experiment_tomography/index.html" > link< / a > )< / h2 >
2019-12-11 17:34:26 +01:00
< div class = "outline-text-2" id = "text-9" >
2019-12-11 17:08:53 +01:00
< p >
Now that the dynamics of the Model have been tuned and the Disturbances have included, we can simulate experiments.
< / p >
< p >
Tomography experiments are simulated and the results are presented < a href = "./experiment_tomography/index.html" > here< / a > .
< / p >
< / div >
< / div >
2019-12-12 11:30:23 +01:00
< div id = "outline-container-org98e8cc6" class = "outline-2" >
< h2 id = "org98e8cc6" > < span class = "section-number-2" > 10< / span > Useful Matlab Functions (< a href = "./functions/index.html" > link< / a > )< / h2 >
2019-12-11 17:34:26 +01:00
< div class = "outline-text-2" id = "text-10" >
2019-12-11 17:08:53 +01:00
< p >
Many matlab functions are shared among all the files of the projects.
< / p >
< p >
These functions are all defined < a href = "./functions/index.html" > here< / a > .
< / p >
< / div >
< / div >
< / div >
2019-07-12 11:53:59 +02:00
< div id = "postamble" class = "status" >
2019-10-08 11:19:45 +02:00
< p class = "author" > Author: Dehaeze Thomas< / p >
2019-12-12 11:30:23 +01:00
< p class = "date" > Created: 2019-12-12 jeu. 11:30< / p >
2019-07-12 11:53:59 +02:00
< p class = "validation" > < a href = "http://validator.w3.org/check?uri=referer" > Validate< / a > < / p >
< / div >
< / body >
< / html >