2019-07-12 11:53:59 +02:00
<?xml version="1.0" encoding="utf-8"?>
2020-02-03 17:51:47 +01:00
<?xml version="1.0" encoding="utf-8"?>
2019-07-12 11:53:59 +02:00
< !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-03-23 10:05:32 +01:00
<!-- 2020 - 03 - 17 mar. 17: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" >
2020-03-13 17:40:22 +01:00
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050& dn=gpl-3.0.txt GPL-v3-or-Later
2019-07-12 11:53:59 +02:00
<!-- /* --> <![CDATA[/*> <!-- */
2020-03-13 17:40:22 +01:00
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
2019-07-12 11:53:59 +02:00
< / script >
< / head >
< body >
2019-10-08 11:19:45 +02:00
< div id = "org-div-home-and-up" >
2020-02-25 18:18:44 +01:00
< a accesskey = "h" href = "index.html" > UP < / a >
2019-10-08 11:19:45 +02:00
|
2020-02-25 18:18:44 +01:00
< a accesskey = "H" href = "index.html" > HOME < / a >
2019-10-08 11:19:45 +02:00
< / 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 >
2020-02-25 18:18:44 +01:00
< li > < a href = "#orgc4bcf0b" > 1. Simulink Project (link)< / a > < / li >
< li > < a href = "#orge439c56" > 2. Simscape Model (link)< / a > < / li >
< li > < a href = "#orgc7bf13d" > 3. Simscape Subsystems (link)< / a > < / li >
< li > < a href = "#orgdb0ed73" > 4. Kinematics of the Station (link)< / a > < / li >
< li > < a href = "#org905bc44" > 5. Computation of the positioning error of the Sample (link)< / a > < / li >
< li > < a href = "#org402c8e6" > 6. Tuning of the Dynamics of the Simscape model (link)< / a > < / li >
< li > < a href = "#org4dd191b" > 7. Disturbances (link)< / a > < / li >
< li > < a href = "#org6d7e868" > 8. Tomography Experiment (link)< / a > < / li >
< li > < a href = "#org3b8f596" > 9. Active Damping Techniques on the Uni-axial Model (link)< / a > < / li >
2020-03-23 10:05:32 +01:00
< li > < a href = "#org14a10e8" > 10. Active Damping Techniques on the full Simscape Model (link)< / a > < / li >
2020-02-25 18:18:44 +01:00
< li > < a href = "#org361f405" > 11. 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 >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-orgc4bcf0b" class = "outline-2" >
< h2 id = "orgc4bcf0b" > < span class = "section-number-2" > 1< / span > Simulink Project (< a href = "./simulink_project.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.
2020-02-25 18:18:44 +01:00
Such project is briefly presented < a href = "./simulink_project.html" > here< / a > .
2019-12-11 17:08:53 +01:00
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-orge439c56" class = "outline-2" >
< h2 id = "orge439c56" > < span class = "section-number-2" > 2< / span > Simscape Model (< a href = "./simscape.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.
2020-02-25 18:18:44 +01:00
Such toolbox is presented < a href = "./simscape.html" > here< / a > .
2019-12-11 17:08:53 +01:00
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-orgc7bf13d" class = "outline-2" >
< h2 id = "orgc7bf13d" > < span class = "section-number-2" > 3< / span > Simscape Subsystems (< a href = "./simscape_subsystems.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 >
2020-02-25 18:18:44 +01:00
All these subsystems are described < a href = "./simscape_subsystems.html" > here< / a > .
2019-12-11 17:08:53 +01:00
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-orgdb0ed73" class = "outline-2" >
< h2 id = "orgdb0ed73" > < span class = "section-number-2" > 4< / span > Kinematics of the Station (< a href = "./kinematics.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.
2020-02-25 18:18:44 +01:00
This is detailed < a href = "./kinematics.html" > here< / a > .
2019-12-11 17:08:53 +01:00
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-org905bc44" class = "outline-2" >
< h2 id = "org905bc44" > < span class = "section-number-2" > 5< / span > Computation of the positioning error of the Sample (< a href = "./positioning_error.html" > link< / a > )< / h2 >
2019-12-11 17:08:53 +01:00
< div class = "outline-text-2" id = "text-5" >
< 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.
2020-02-25 18:18:44 +01:00
This is done < a href = "./positioning_error.html" > here< / a > .
2019-12-11 17:34:26 +01:00
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-org402c8e6" class = "outline-2" >
< h2 id = "org402c8e6" > < span class = "section-number-2" > 6< / span > Tuning of the Dynamics of the Simscape model (< a href = "./identification.html" > link< / a > )< / h2 >
2020-02-25 18:10:20 +01:00
< div class = "outline-text-2" id = "text-6" >
2019-12-11 17:34:26 +01:00
< 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 >
2020-02-25 18:18:44 +01:00
This is explained < a href = "./identification.html" > here< / a > .
2019-12-11 17:08:53 +01:00
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-org4dd191b" class = "outline-2" >
< h2 id = "org4dd191b" > < span class = "section-number-2" > 7< / span > Disturbances (< a href = "./disturbances.html" > link< / a > )< / h2 >
2020-02-25 18:10:20 +01:00
< div class = "outline-text-2" id = "text-7" >
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 >
2020-02-25 18:18:44 +01:00
This is discussed < a href = "./disturbances.html" > here< / a > .
2019-12-11 17:08:53 +01:00
< / p >
< p >
We also discuss how the disturbances are implemented in the model.
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-org6d7e868" class = "outline-2" >
< h2 id = "org6d7e868" > < span class = "section-number-2" > 8< / span > Tomography Experiment (< a href = "./experiments.html" > link< / a > )< / h2 >
2020-02-25 18:10:20 +01:00
< div class = "outline-text-2" id = "text-8" >
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 >
2020-02-25 18:18:44 +01:00
Tomography experiments are simulated and the results are presented < a href = "./experiments.html" > here< / a > .
2019-12-11 17:08:53 +01:00
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-org3b8f596" class = "outline-2" >
< h2 id = "org3b8f596" > < span class = "section-number-2" > 9< / span > Active Damping Techniques on the Uni-axial Model (< a href = "./active_damping_uniaxial.html" > link< / a > )< / h2 >
2020-02-25 18:10:20 +01:00
< div class = "outline-text-2" id = "text-9" >
2019-12-11 17:08:53 +01:00
< p >
2019-12-17 18:04:21 +01:00
Active damping techniques are applied to the Uniaxial Simscape model.
2019-12-13 19:07:54 +01:00
< / p >
< / div >
< / div >
2020-03-23 10:05:32 +01:00
< div id = "outline-container-org14a10e8" class = "outline-2" >
< h2 id = "org14a10e8" > < span class = "section-number-2" > 10< / span > Active Damping Techniques on the full Simscape Model (< a href = "control_active_damping.html" > link< / a > )< / h2 >
2020-02-25 18:10:20 +01:00
< div class = "outline-text-2" id = "text-10" >
2019-12-13 19:07:54 +01:00
< p >
2019-12-17 18:04:21 +01:00
Active damping techniques are applied to the full Simscape model.
< / p >
< / div >
< / div >
2020-02-25 18:18:44 +01:00
< div id = "outline-container-org361f405" class = "outline-2" >
< h2 id = "org361f405" > < span class = "section-number-2" > 11< / span > Useful Matlab Functions (< a href = "./functions.html" > link< / a > )< / h2 >
2020-02-25 18:10:20 +01:00
< div class = "outline-text-2" id = "text-11" >
2019-12-17 18:04:21 +01:00
< p >
2019-12-11 17:08:53 +01:00
Many matlab functions are shared among all the files of the projects.
< / p >
< p >
2020-02-25 18:18:44 +01:00
These functions are all defined < a href = "./functions.html" > here< / a > .
2019-12-11 17:08:53 +01:00
< / 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 >
2020-03-23 10:05:32 +01:00
< p class = "date" > Created: 2020-03-17 mar. 17:30< / p >
2019-07-12 11:53:59 +02:00
< / div >
< / body >
< / html >