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-04-01 16:28:55 +02:00
<!-- 2020 - 04 - 01 mer. 16:28 -->
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-04-01 16:28:55 +02: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-04-01 16:28:55 +02: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 >
2020-04-01 16:28:55 +02:00
< li > < a href = "#org7af5540" > 7. Compensating Gravity forces to start simulation at steady state (link)< / a > < / li >
< li > < a href = "#org4dd191b" > 8. Disturbances (link)< / a > < / li >
< li > < a href = "#org8d9280d" > 9. Simulation of Experiment (link)< / a > < / li >
< li > < a href = "#orgafa75bf" > 10. Effect of support’ s compliance uncertainty on the plant (link)< / a > < / li >
< li > < a href = "#orga323881" > 11. Effect of Experimental conditions on the plant dynamics (link)< / a > < / li >
< li > < a href = "#org14a10e8" > 12. Active Damping Techniques on the full Simscape Model (link)< / a > < / li >
< li > < a href = "#orgd818a00" > 13. Control of the Nano-Active-Stabilization-System (link)< / a > < / li >
< li > < a href = "#org361f405" > 14. 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-04-01 16:28:55 +02:00
< div id = "outline-container-org7af5540" class = "outline-2" >
< h2 id = "org7af5540" > < span class = "section-number-2" > 7< / span > Compensating Gravity forces to start simulation at steady state (< a href = "compensation_gravity_forces.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 >
2020-04-01 16:28:55 +02:00
When gravity is included in the model, the simulation does not start at steady state.
< / p >
< p >
This can be problematic, especially when using a soft nano-hexapod as the deflection due to gravity will be quite large.
< / p >
< p >
A technique is described in this document in order to compensate the gravity forces and start the simulation at steady state without deflection.
< / p >
< / div >
< / div >
< div id = "outline-container-org4dd191b" class = "outline-2" >
< h2 id = "org4dd191b" > < span class = "section-number-2" > 8< / span > Disturbances (< a href = "./disturbances.html" > link< / a > )< / h2 >
< div class = "outline-text-2" id = "text-8" >
< p >
2019-12-11 17:08:53 +01:00
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-04-01 16:28:55 +02:00
< div id = "outline-container-org8d9280d" class = "outline-2" >
< h2 id = "org8d9280d" > < span class = "section-number-2" > 9< / span > Simulation of Experiment (< a href = "./experiments.html" > link< / a > )< / h2 >
< 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 >
2020-04-01 16:28:55 +02:00
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-03-25 19:23:22 +01:00
< div id = "outline-container-orgafa75bf" class = "outline-2" >
2020-04-01 16:28:55 +02:00
< h2 id = "orgafa75bf" > < span class = "section-number-2" > 10< / span > Effect of support’ s compliance uncertainty on the plant (< a href = "uncertainty_support.html" > link< / a > )< / h2 >
< div class = "outline-text-2" id = "text-10" >
2019-12-11 17:08:53 +01:00
< p >
2020-03-25 19:23:22 +01:00
In this document, is studied how uncertainty on the micro-station compliance will affect the uncertainty of the isolation platform to be designed.
< / p >
< / div >
< / div >
2020-04-01 16:28:55 +02:00
< div id = "outline-container-orga323881" class = "outline-2" >
< h2 id = "orga323881" > < span class = "section-number-2" > 11< / span > Effect of Experimental conditions on the plant dynamics (< a href = "uncertainty_experiment.html" > link< / a > )< / h2 >
< div class = "outline-text-2" id = "text-11" >
2020-03-25 19:23:22 +01:00
< p >
2020-04-01 16:28:55 +02:00
In this document, the effect of all the experimental conditions (rotation speed, sample mass, … ) on the plant dynamics are studied.
Conclusion are drawn about what experimental conditions are critical on the variability of the plant dynamics.
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" >
2020-04-01 16:28:55 +02:00
< h2 id = "org14a10e8" > < span class = "section-number-2" > 12< / span > Active Damping Techniques on the full Simscape Model (< a href = "control_active_damping.html" > link< / a > )< / h2 >
< div class = "outline-text-2" id = "text-12" >
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-03-25 19:23:22 +01:00
< div id = "outline-container-orgd818a00" class = "outline-2" >
2020-04-01 16:28:55 +02:00
< h2 id = "orgd818a00" > < span class = "section-number-2" > 13< / span > Control of the Nano-Active-Stabilization-System (< a href = "control.html" > link< / a > )< / h2 >
< div class = "outline-text-2" id = "text-13" >
< p >
In this file are gathered all studies about the control the Nano-Active-Stabilization-System.
< / p >
< / div >
2020-03-25 19:23:22 +01:00
< / div >
2020-04-01 16:28:55 +02:00
2020-02-25 18:18:44 +01:00
< div id = "outline-container-org361f405" class = "outline-2" >
2020-04-01 16:28:55 +02:00
< h2 id = "org361f405" > < span class = "section-number-2" > 14< / span > Useful Matlab Functions (< a href = "./functions.html" > link< / a > )< / h2 >
< div class = "outline-text-2" id = "text-14" >
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-04-01 16:28:55 +02:00
< p class = "date" > Created: 2020-04-01 mer. 16:28< / p >
2019-07-12 11:53:59 +02:00
< / div >
< / body >
< / html >