Publish html
This commit is contained in:
parent
4613c74ef3
commit
544bb82b10
594
docs/compensation_gravity_forces.html
Normal file
594
docs/compensation_gravity_forces.html
Normal file
@ -0,0 +1,594 @@
|
|||||||
|
<?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:14 -->
|
||||||
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
|
<title>Compensating the gravity forces to start at steady state</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&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>
|
||||||
|
</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">Compensating the gravity forces to start at steady state</h1>
|
||||||
|
<div id="table-of-contents">
|
||||||
|
<h2>Table of Contents</h2>
|
||||||
|
<div id="text-table-of-contents">
|
||||||
|
<ul>
|
||||||
|
<li><a href="#org356e04b">1. Initialization of the Experimental Conditions</a></li>
|
||||||
|
<li><a href="#org263e5db">2. Without compensation</a></li>
|
||||||
|
<li><a href="#orgfd6d9e9">3. Simulation to compute the required force in each joint</a></li>
|
||||||
|
<li><a href="#org44bde7a">4. New simulation with compensation of gravity forces</a></li>
|
||||||
|
<li><a href="#orgb714922">5. Conclusion</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In this file is shown a technique used to compensate the gravity forces at t=0.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The problem is that in presence of gravity, the system does not start at steady state and experience a transient phase (section <a href="#org4bc70b2">2</a>).
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
In order to start the simulation at steady state in presence of gravity:
|
||||||
|
</p>
|
||||||
|
<ul class="org-ul">
|
||||||
|
<li>section <a href="#org2de8ac1">3</a>: first the stages are initialize in such a way that they are rigid, and the forces/torques applied at the location of their joints is measured</li>
|
||||||
|
<li>section <a href="#org5364ea3">4</a>: Then, the equilibrium position of each joint is modified in such a way that at t=0, the forces in each joints exactly compensate the forces due to gravity forces</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<div id="outline-container-org356e04b" class="outline-2">
|
||||||
|
<h2 id="org356e04b"><span class="section-number-2">1</span> Initialization of the Experimental Conditions</h2>
|
||||||
|
<div class="outline-text-2" id="text-1">
|
||||||
|
<p>
|
||||||
|
We don’t inject any perturbations and no reference tracking.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeReferences();
|
||||||
|
initializeDisturbances(<span class="org-string">'enable'</span>, <span class="org-constant">false</span>);
|
||||||
|
initializeController();
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
We include the gravity and log all the signals to display.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeSimscapeConfiguration(<span class="org-string">'gravity'</span>, <span class="org-constant">true</span>);
|
||||||
|
initializeLoggingConfiguration(<span class="org-string">'log'</span>, <span class="org-string">'all'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org263e5db" class="outline-2">
|
||||||
|
<h2 id="org263e5db"><span class="section-number-2">2</span> Without compensation</h2>
|
||||||
|
<div class="outline-text-2" id="text-2">
|
||||||
|
<p>
|
||||||
|
<a id="org4bc70b2"></a>
|
||||||
|
Let’s simulate the system without any compensation of gravity forces.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeGround();
|
||||||
|
initializeGranite();
|
||||||
|
initializeTy();
|
||||||
|
initializeRy();
|
||||||
|
initializeRz();
|
||||||
|
initializeMicroHexapod();
|
||||||
|
initializeAxisc();
|
||||||
|
initializeMirror();
|
||||||
|
initializeNanoHexapod();
|
||||||
|
initializeSample();
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||||
|
<span class="org-matlab-simulink-keyword">set_param</span>(<span class="org-variable-name">conf_simulink</span>, <span class="org-string">'StopTime'</span>, <span class="org-string">'0.5'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
|
||||||
|
sim_no_compensation = simout;
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
And we can observe on Figure <a href="#org0568928">1</a> that there are some motion in the system.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="org0568928" class="figure">
|
||||||
|
<p><img src="figs/transient_phase_gravity_no_compensation.png" alt="transient_phase_gravity_no_compensation.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 1: </span>Motion of the sample at the start of the simulation in presence of gravity (<a href="./figs/transient_phase_gravity_no_compensation.png">png</a>, <a href="./figs/transient_phase_gravity_no_compensation.pdf">pdf</a>)</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orgfd6d9e9" class="outline-2">
|
||||||
|
<h2 id="orgfd6d9e9"><span class="section-number-2">3</span> Simulation to compute the required force in each joint</h2>
|
||||||
|
<div class="outline-text-2" id="text-3">
|
||||||
|
<p>
|
||||||
|
<a id="org2de8ac1"></a>
|
||||||
|
We here wish to simulate the system in order to compute the required force in each joint to compensate the gravity forces.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeGround();
|
||||||
|
initializeGranite(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||||
|
initializeTy(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||||
|
initializeRy(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||||
|
initializeRz(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||||
|
initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||||
|
initializeAxisc();
|
||||||
|
initializeMirror();
|
||||||
|
initializeNanoHexapod(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||||
|
initializeSample(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
We simulate for a short time period (all the bodies are solid, so nothing should move).
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||||
|
<span class="org-matlab-simulink-keyword">set_param</span>(<span class="org-variable-name">conf_simulink</span>, <span class="org-string">'StopTime'</span>, <span class="org-string">'0.1'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Verification that nothing is moving by looking at the maximum displacement of the sample:
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">max(max(simout.Em.En.Data))
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<pre class="example">
|
||||||
|
1.0681e-15
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
|
<p>
|
||||||
|
We here show the measured total force/torque applied at the location of each joint.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">data2orgtable([Fgm 0 0 0; Ftym; Fym; Fsm], {<span class="org-string">'Granite'</span>, <span class="org-string">'Translation Stage'</span>, <span class="org-string">'Tilt Stage'</span>, <span class="org-string">'Sample'</span>}, {<span class="org-string">'Fx'</span>, <span class="org-string">'Fy'</span>, <span class="org-string">'Fz'</span>, <span class="org-string">'Mx'</span>, <span class="org-string">'My'</span>, <span class="org-string">'Mz'</span>}, <span class="org-string">' %.1e '</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
|
|
||||||
|
|
||||||
|
<colgroup>
|
||||||
|
<col class="org-left" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col" class="org-left"> </th>
|
||||||
|
<th scope="col" class="org-right">Fx</th>
|
||||||
|
<th scope="col" class="org-right">Fy</th>
|
||||||
|
<th scope="col" class="org-right">Fz</th>
|
||||||
|
<th scope="col" class="org-right">Mx</th>
|
||||||
|
<th scope="col" class="org-right">My</th>
|
||||||
|
<th scope="col" class="org-right">Mz</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">Granite</td>
|
||||||
|
<td class="org-right">-7.6e-12</td>
|
||||||
|
<td class="org-right">1.2e-11</td>
|
||||||
|
<td class="org-right">-34000.0</td>
|
||||||
|
<td class="org-right">0.0</td>
|
||||||
|
<td class="org-right">0.0</td>
|
||||||
|
<td class="org-right">0.0</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">Translation Stage</td>
|
||||||
|
<td class="org-right">-7.6e-12</td>
|
||||||
|
<td class="org-right">1.2e-11</td>
|
||||||
|
<td class="org-right">-12000.0</td>
|
||||||
|
<td class="org-right">31.0</td>
|
||||||
|
<td class="org-right">2.5</td>
|
||||||
|
<td class="org-right">6.6e-13</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">Tilt Stage</td>
|
||||||
|
<td class="org-right">-7.6e-12</td>
|
||||||
|
<td class="org-right">1.2e-11</td>
|
||||||
|
<td class="org-right">-8800.0</td>
|
||||||
|
<td class="org-right">33.0</td>
|
||||||
|
<td class="org-right">-0.52</td>
|
||||||
|
<td class="org-right">6.6e-13</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">Sample</td>
|
||||||
|
<td class="org-right">-5.7e-12</td>
|
||||||
|
<td class="org-right">1.3e-11</td>
|
||||||
|
<td class="org-right">-490.0</td>
|
||||||
|
<td class="org-right">-2.5e-12</td>
|
||||||
|
<td class="org-right">-8.1e-13</td>
|
||||||
|
<td class="org-right">2.7e-13</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">data2orgtable([Fhm; Fnm], {<span class="org-string">'Micro-Hexapod'</span>, <span class="org-string">'Nano-Hexapod'</span>}, {<span class="org-string">'F1'</span>, <span class="org-string">'F2'</span>, <span class="org-string">'F3'</span>, <span class="org-string">'F4'</span>, <span class="org-string">'F5'</span>, <span class="org-string">'F6'</span>}, <span class="org-string">' %.1e '</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
|
|
||||||
|
|
||||||
|
<colgroup>
|
||||||
|
<col class="org-left" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
|
||||||
|
<col class="org-right" />
|
||||||
|
</colgroup>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th scope="col" class="org-left"> </th>
|
||||||
|
<th scope="col" class="org-right">F1</th>
|
||||||
|
<th scope="col" class="org-right">F2</th>
|
||||||
|
<th scope="col" class="org-right">F3</th>
|
||||||
|
<th scope="col" class="org-right">F4</th>
|
||||||
|
<th scope="col" class="org-right">F5</th>
|
||||||
|
<th scope="col" class="org-right">F6</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">Micro-Hexapod</td>
|
||||||
|
<td class="org-right">-180.0</td>
|
||||||
|
<td class="org-right">-180.0</td>
|
||||||
|
<td class="org-right">-180.0</td>
|
||||||
|
<td class="org-right">-180.0</td>
|
||||||
|
<td class="org-right">-180.0</td>
|
||||||
|
<td class="org-right">-180.0</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td class="org-left">Nano-Hexapod</td>
|
||||||
|
<td class="org-right">-160.0</td>
|
||||||
|
<td class="org-right">-160.0</td>
|
||||||
|
<td class="org-right">-160.0</td>
|
||||||
|
<td class="org-right">-160.0</td>
|
||||||
|
<td class="org-right">-160.0</td>
|
||||||
|
<td class="org-right">-160.0</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
We save these forces in <code>Foffset.mat</code>.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">save(<span class="org-string">'mat/Foffset.mat'</span>, <span class="org-string">'Fgm'</span>, <span class="org-string">'Ftym'</span>, <span class="org-string">'Fym'</span>, <span class="org-string">'Fzm'</span>, <span class="org-string">'Fhm'</span>, <span class="org-string">'Fnm'</span>, <span class="org-string">'Fsm'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org44bde7a" class="outline-2">
|
||||||
|
<h2 id="org44bde7a"><span class="section-number-2">4</span> New simulation with compensation of gravity forces</h2>
|
||||||
|
<div class="outline-text-2" id="text-4">
|
||||||
|
<p>
|
||||||
|
<a id="org5364ea3"></a>
|
||||||
|
We now initialize the stages with the option <code>Foffset</code>.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeGround();
|
||||||
|
initializeGranite(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||||
|
initializeTy(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||||
|
initializeRy(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||||
|
initializeRz(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||||
|
initializeMicroHexapod(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||||
|
initializeAxisc();
|
||||||
|
initializeMirror();
|
||||||
|
initializeNanoHexapod(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||||
|
initializeSample(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
And we simulate the system for 0.5 seconds.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||||
|
<span class="org-matlab-simulink-keyword">set_param</span>(<span class="org-variable-name">conf_simulink</span>, <span class="org-string">'StopTime'</span>, <span class="org-string">'0.5'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
|
||||||
|
sim_compensation = simout;
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Verification that nothing is moving
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="orgc677acf" class="figure">
|
||||||
|
<p><img src="figs/transient_phase_gravity_compensation.png" alt="transient_phase_gravity_compensation.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 2: </span>Motion of the sample at the start of the simulation in presence of gravity when compensating the gravity forces (<a href="./figs/transient_phase_gravity_compensation.png">png</a>, <a href="./figs/transient_phase_gravity_compensation.pdf">pdf</a>)</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="outline-container-orgb714922" class="outline-2">
|
||||||
|
<h2 id="orgb714922"><span class="section-number-2">5</span> Conclusion</h2>
|
||||||
|
<div class="outline-text-2" id="text-5">
|
||||||
|
<p>
|
||||||
|
This initialization technique permits to compute the required forces/torques to be applied in each joint in order to compensate for gravity forces.
|
||||||
|
This initialization should be redone for each configuration (change of sample mass, change of tilt angle), but not when changing the stiffness of joints, for instant when changing from lorentz based nano-hexapod or piezo based.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="postamble" class="status">
|
||||||
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
|
<p class="date">Created: 2020-04-01 mer. 16:14</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -4,7 +4,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2020-03-26 jeu. 17:25 -->
|
<!-- 2020-04-01 mer. 16:16 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Control of the Nano-Active-Stabilization-System</title>
|
<title>Control of the Nano-Active-Stabilization-System</title>
|
||||||
@ -202,30 +202,7 @@
|
|||||||
<script type="text/javascript" src="./js/jquery.stickytableheaders.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" src="./js/readtheorg.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
/*
|
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
|
||||||
@licstart The following is the entire license notice for the
|
|
||||||
JavaScript code in this tag.
|
|
||||||
|
|
||||||
Copyright (C) 2012-2020 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[/*><!--*/
|
<!--/*--><![CDATA[/*><!--*/
|
||||||
function CodeHighlightOn(elem, id)
|
function CodeHighlightOn(elem, id)
|
||||||
{
|
{
|
||||||
@ -246,6 +223,7 @@ for the JavaScript code in this tag.
|
|||||||
target.className = elem.cacheClassTarget;
|
target.className = elem.cacheClassTarget;
|
||||||
}
|
}
|
||||||
/*]]>*///-->
|
/*]]>*///-->
|
||||||
|
// @license-end
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
MathJax = {
|
MathJax = {
|
||||||
@ -286,7 +264,8 @@ for the JavaScript code in this tag.
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgd9c84f0">4.1. HAC-LAC using IFF and Tracking control in the frame of the Legs</a></li>
|
<li><a href="#orgd9c84f0">4.1. HAC-LAC using IFF and Tracking control in the frame of the Legs</a></li>
|
||||||
<li><a href="#orgeb80da1">4.2. HAC-LAC using IFF and Tracking control in the Cartesian frame</a></li>
|
<li><a href="#orgeb80da1">4.2. HAC-LAC using IFF and Tracking control in the Cartesian frame</a></li>
|
||||||
<li><a href="#org6054c1a">4.3. HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite</a></li>
|
<li><a href="#org8b2b21e">4.3. HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite in the task space</a></li>
|
||||||
|
<li><a href="#org1c04b26">4.4. HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite in the space of the legs</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#orgab73896">5. Cascade Architectures (link)</a>
|
<li><a href="#orgab73896">5. Cascade Architectures (link)</a>
|
||||||
@ -620,8 +599,8 @@ Usually, the Low Authority Controller is first design, and then the High Authori
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org6054c1a" class="outline-3">
|
<div id="outline-container-org8b2b21e" class="outline-3">
|
||||||
<h3 id="org6054c1a"><span class="section-number-3">4.3</span> HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite</h3>
|
<h3 id="org8b2b21e"><span class="section-number-3">4.3</span> HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite in the task space</h3>
|
||||||
<div class="outline-text-3" id="text-4-3">
|
<div class="outline-text-3" id="text-4-3">
|
||||||
|
|
||||||
<div class="figure">
|
<div class="figure">
|
||||||
@ -630,6 +609,17 @@ Usually, the Low Authority Controller is first design, and then the High Authori
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-org1c04b26" class="outline-3">
|
||||||
|
<h3 id="org1c04b26"><span class="section-number-3">4.4</span> HAC-LAC using IFF - the HAC controller is positioning the sample w.r.t. the granite in the space of the legs</h3>
|
||||||
|
<div class="outline-text-3" id="text-4-4">
|
||||||
|
|
||||||
|
<div class="figure">
|
||||||
|
<p><img src="figs/control_architecture_hac_iff_pos_L.png" alt="control_architecture_hac_iff_pos_L.png" />
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgab73896" class="outline-2">
|
<div id="outline-container-orgab73896" class="outline-2">
|
||||||
@ -639,13 +629,13 @@ Usually, the Low Authority Controller is first design, and then the High Authori
|
|||||||
<a id="orga038762"></a>
|
<a id="orga038762"></a>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
The principle of Cascade control is shown in Figure <a href="#org03ef231">12</a> and explained as follow:
|
The principle of Cascade control is shown in Figure <a href="#org03ef231">13</a> and explained as follow:
|
||||||
</p>
|
</p>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To follow <b>two objectives</b> with different properties in one control system, usually a <b>hierarchy</b> of two feedback loops is used in practice.
|
To follow <b>two objectives</b> with different properties in one control system, usually a <b>hierarchy</b> of two feedback loops is used in practice.
|
||||||
This kind of control topology is called <b>cascade control</b>, which is used when there are <b>several measurements and one prime control variable</b>.
|
This kind of control topology is called <b>cascade control</b>, which is used when there are <b>several measurements and one prime control variable</b>.
|
||||||
Cascade control is implemented by <b>nesting</b> the control loops, as shown in Figure <a href="#org03ef231">12</a>.
|
Cascade control is implemented by <b>nesting</b> the control loops, as shown in Figure <a href="#org03ef231">13</a>.
|
||||||
The output control loop is called the <b>primary loop</b>, while the inner loop is called the secondary loop and is used to fulfill a secondary objective in the closed-loop system. – <a class='org-ref-reference' href="#taghirad13_paral">taghirad13_paral</a>
|
The output control loop is called the <b>primary loop</b>, while the inner loop is called the secondary loop and is used to fulfill a secondary objective in the closed-loop system. – <a class='org-ref-reference' href="#taghirad13_paral">taghirad13_paral</a>
|
||||||
</p>
|
</p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
@ -654,7 +644,7 @@ The output control loop is called the <b>primary loop</b>, while the inner loop
|
|||||||
<div id="org03ef231" class="figure">
|
<div id="org03ef231" class="figure">
|
||||||
<p><img src="figs/control_architecture_cascade_control.png" alt="control_architecture_cascade_control.png" />
|
<p><img src="figs/control_architecture_cascade_control.png" alt="control_architecture_cascade_control.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 12: </span>Cascade Control Architecture</p>
|
<p><span class="figure-number">Figure 13: </span>Cascade Control Architecture</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -679,7 +669,7 @@ The inner loop can be composed of the system controlled with the HAC-LAC topolog
|
|||||||
<div id="orgff7dfc6" class="figure">
|
<div id="orgff7dfc6" class="figure">
|
||||||
<p><img src="figs/control_architecture_cascade_L.png" alt="control_architecture_cascade_L.png" />
|
<p><img src="figs/control_architecture_cascade_L.png" alt="control_architecture_cascade_L.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 13: </span>Cascaded Control consisting of (from inner to outer loop): IFF, Linearization Loop, Tracking Control in the frame of the Legs</p>
|
<p><span class="figure-number">Figure 14: </span>Cascaded Control consisting of (from inner to outer loop): IFF, Linearization Loop, Tracking Control in the frame of the Legs</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -691,7 +681,7 @@ The inner loop can be composed of the system controlled with the HAC-LAC topolog
|
|||||||
<div id="org4bc4c4c" class="figure">
|
<div id="org4bc4c4c" class="figure">
|
||||||
<p><img src="figs/control_architecture_cascade_X.png" alt="control_architecture_cascade_X.png" />
|
<p><img src="figs/control_architecture_cascade_X.png" alt="control_architecture_cascade_X.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 14: </span>Cascaded Control consisting of (from inner to outer loop): IFF, Linearization Loop, Tracking Control in the Cartesian Frame</p>
|
<p><span class="figure-number">Figure 15: </span>Cascaded Control consisting of (from inner to outer loop): IFF, Linearization Loop, Tracking Control in the Cartesian Frame</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -728,7 +718,7 @@ Signals:
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2020-03-26 jeu. 17:25</p>
|
<p class="date">Created: 2020-04-01 mer. 16:16</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2020-03-25 mer. 19:23 -->
|
<!-- 2020-04-01 mer. 16:16 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Cascade Control applied on the Simscape Model</title>
|
<title>Cascade Control applied on the Simscape Model</title>
|
||||||
@ -202,30 +202,7 @@
|
|||||||
<script type="text/javascript" src="./js/jquery.stickytableheaders.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" src="./js/readtheorg.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
/*
|
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
|
||||||
@licstart The following is the entire license notice for the
|
|
||||||
JavaScript code in this tag.
|
|
||||||
|
|
||||||
Copyright (C) 2012-2020 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[/*><!--*/
|
<!--/*--><![CDATA[/*><!--*/
|
||||||
function CodeHighlightOn(elem, id)
|
function CodeHighlightOn(elem, id)
|
||||||
{
|
{
|
||||||
@ -246,6 +223,7 @@ for the JavaScript code in this tag.
|
|||||||
target.className = elem.cacheClassTarget;
|
target.className = elem.cacheClassTarget;
|
||||||
}
|
}
|
||||||
/*]]>*///-->
|
/*]]>*///-->
|
||||||
|
// @license-end
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
MathJax = {
|
MathJax = {
|
||||||
@ -281,14 +259,14 @@ for the JavaScript code in this tag.
|
|||||||
<li><a href="#org101bfbc">3. High Authority Control in the joint space - \(\bm{K}_\mathcal{L}\)</a>
|
<li><a href="#org101bfbc">3. High Authority Control in the joint space - \(\bm{K}_\mathcal{L}\)</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org259240d">3.1. Identification of the damped plant</a></li>
|
<li><a href="#org259240d">3.1. Identification of the damped plant</a></li>
|
||||||
<li><a href="#org878cff7">3.2. Obtained Plant</a></li>
|
<li><a href="#orgb574395">3.2. Obtained Plant</a></li>
|
||||||
<li><a href="#orgdea5e17">3.3. Controller Design and Loop Gain</a></li>
|
<li><a href="#orgdea5e17">3.3. Controller Design and Loop Gain</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org58f9f32">4. Primary Controller in the task space - \(\bm{K}_\mathcal{X}\)</a>
|
<li><a href="#org58f9f32">4. Primary Controller in the task space - \(\bm{K}_\mathcal{X}\)</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org82ca884">4.1. Identification of the linearized plant</a></li>
|
<li><a href="#org82ca884">4.1. Identification of the linearized plant</a></li>
|
||||||
<li><a href="#orgb574395">4.2. Obtained Plant</a></li>
|
<li><a href="#org3b0d2c2">4.2. Obtained Plant</a></li>
|
||||||
<li><a href="#org839cdb3">4.3. Controller Design</a></li>
|
<li><a href="#org839cdb3">4.3. Controller Design</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
@ -385,7 +363,7 @@ We log the signals.
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">Kx = tf(zeros(6));
|
<pre class="src src-matlab">Kp = tf(zeros(6));
|
||||||
Kl = tf(zeros(6));
|
Kl = tf(zeros(6));
|
||||||
Kiff = tf(zeros(6));
|
Kiff = tf(zeros(6));
|
||||||
</pre>
|
</pre>
|
||||||
@ -517,8 +495,8 @@ isstable(Gl)
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org878cff7" class="outline-3">
|
<div id="outline-container-orgb574395" class="outline-3">
|
||||||
<h3 id="org878cff7"><span class="section-number-3">3.2</span> Obtained Plant</h3>
|
<h3 id="orgb574395"><span class="section-number-3">3.2</span> Obtained Plant</h3>
|
||||||
<div class="outline-text-3" id="text-3-2">
|
<div class="outline-text-3" id="text-3-2">
|
||||||
<p>
|
<p>
|
||||||
The obtain plant is shown in Figure <a href="#org455eb07">5</a>.
|
The obtain plant is shown in Figure <a href="#org455eb07">5</a>.
|
||||||
@ -593,7 +571,7 @@ mdl = <span class="org-string">'nass_model'</span>;
|
|||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, <span class="org-string">'/Controller/Cascade-HAC-LAC/Kx'</span>], 1, <span class="org-string">'input'</span>); io_i = io_i <span class="org-type">+</span> 1;
|
io(io_i) = linio([mdl, <span class="org-string">'/Controller/Cascade-HAC-LAC/Kp'</span>], 1, <span class="org-string">'input'</span>); io_i = io_i <span class="org-type">+</span> 1;
|
||||||
io(io_i) = linio([mdl, <span class="org-string">'/Tracking Error'</span>], 1, <span class="org-string">'output'</span>, [], <span class="org-string">'En'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Position Errror</span>
|
io(io_i) = linio([mdl, <span class="org-string">'/Tracking Error'</span>], 1, <span class="org-string">'output'</span>, [], <span class="org-string">'En'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Position Errror</span>
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
|
||||||
@ -615,8 +593,8 @@ isstable(Gx)
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgb574395" class="outline-3">
|
<div id="outline-container-org3b0d2c2" class="outline-3">
|
||||||
<h3 id="orgb574395"><span class="section-number-3">4.2</span> Obtained Plant</h3>
|
<h3 id="org3b0d2c2"><span class="section-number-3">4.2</span> Obtained Plant</h3>
|
||||||
<div class="outline-text-3" id="text-4-2">
|
<div class="outline-text-3" id="text-4-2">
|
||||||
|
|
||||||
<div id="orge364e46" class="figure">
|
<div id="orge364e46" class="figure">
|
||||||
@ -635,10 +613,10 @@ isstable(Gx)
|
|||||||
|
|
||||||
h = 2; <span class="org-comment">% Lead parameter</span>
|
h = 2; <span class="org-comment">% Lead parameter</span>
|
||||||
|
|
||||||
Kx = (1<span class="org-type">/</span>h) <span class="org-type">*</span> (1 <span class="org-type">+</span> s<span class="org-type">/</span>wc<span class="org-type">*</span>h)<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>wc<span class="org-type">/</span>h) <span class="org-type">*</span> wc<span class="org-type">/</span>s <span class="org-type">*</span> (s <span class="org-type">+</span> 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>5)<span class="org-type">/</span>s <span class="org-type">*</span> 1<span class="org-type">/</span>(1<span class="org-type">+</span>s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>20);
|
Kp = (1<span class="org-type">/</span>h) <span class="org-type">*</span> (1 <span class="org-type">+</span> s<span class="org-type">/</span>wc<span class="org-type">*</span>h)<span class="org-type">/</span>(1 <span class="org-type">+</span> s<span class="org-type">/</span>wc<span class="org-type">/</span>h) <span class="org-type">*</span> wc<span class="org-type">/</span>s <span class="org-type">*</span> (s <span class="org-type">+</span> 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>5)<span class="org-type">/</span>s <span class="org-type">*</span> 1<span class="org-type">/</span>(1<span class="org-type">+</span>s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>20);
|
||||||
|
|
||||||
<span class="org-comment">% Normalization of the gain of have a loop gain of 1 at frequency wc</span>
|
<span class="org-comment">% Normalization of the gain of have a loop gain of 1 at frequency wc</span>
|
||||||
Kx = Kx<span class="org-type">.*</span>diag(1<span class="org-type">./</span>diag(abs(freqresp(Gx<span class="org-type">*</span>Kx, wc))));
|
Kp = Kp<span class="org-type">.*</span>diag(1<span class="org-type">./</span>diag(abs(freqresp(Gx<span class="org-type">*</span>Kp, wc))));
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -726,7 +704,7 @@ Ts = t(2)<span class="org-type">-</span>t(1);
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2020-03-25 mer. 19:23</p>
|
<p class="date">Created: 2020-04-01 mer. 16:16</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2020-03-13 ven. 17:39 -->
|
<!-- 2020-04-01 mer. 16:14 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Identification</title>
|
<title>Identification</title>
|
||||||
@ -202,7 +202,7 @@
|
|||||||
<script type="text/javascript" src="./js/jquery.stickytableheaders.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" src="./js/readtheorg.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
|
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
|
||||||
<!--/*--><![CDATA[/*><!--*/
|
<!--/*--><![CDATA[/*><!--*/
|
||||||
function CodeHighlightOn(elem, id)
|
function CodeHighlightOn(elem, id)
|
||||||
{
|
{
|
||||||
@ -257,7 +257,12 @@
|
|||||||
<li><a href="#org0c6ab2b">2.5. Compare with measurements</a></li>
|
<li><a href="#org0c6ab2b">2.5. Compare with measurements</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#orga1de7a7">3. Conclusion</a></li>
|
<li><a href="#org4704f01">3. Obtained Compliance of the Micro-Station</a>
|
||||||
|
<ul>
|
||||||
|
<li><a href="#orge0c91d3">3.1. Initialization</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li><a href="#orga1de7a7">4. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -312,11 +317,6 @@ Some of the springs and dampers values can be estimated from the joints/stages s
|
|||||||
<div id="outline-container-orgcfb741d" class="outline-3">
|
<div id="outline-container-orgcfb741d" class="outline-3">
|
||||||
<h3 id="orgcfb741d"><span class="section-number-3">2.1</span> Prepare the Simulation</h3>
|
<h3 id="orgcfb741d"><span class="section-number-3">2.1</span> Prepare the Simulation</h3>
|
||||||
<div class="outline-text-3" id="text-2-1">
|
<div class="outline-text-3" id="text-2-1">
|
||||||
<div class="org-src-container">
|
|
||||||
<pre class="src src-matlab">open(<span class="org-string">'nass_model.slx'</span>)
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
We load the configuration.
|
We load the configuration.
|
||||||
</p>
|
</p>
|
||||||
@ -728,9 +728,82 @@ We then compare the measurements with the identified transfer functions using th
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="outline-container-orga1de7a7" class="outline-2">
|
<div id="outline-container-org4704f01" class="outline-2">
|
||||||
<h2 id="orga1de7a7"><span class="section-number-2">3</span> Conclusion</h2>
|
<h2 id="org4704f01"><span class="section-number-2">3</span> Obtained Compliance of the Micro-Station</h2>
|
||||||
<div class="outline-text-2" id="text-3">
|
<div class="outline-text-2" id="text-3">
|
||||||
|
</div>
|
||||||
|
<div id="outline-container-orge0c91d3" class="outline-3">
|
||||||
|
<h3 id="orge0c91d3"><span class="section-number-3">3.1</span> Initialization</h3>
|
||||||
|
<div class="outline-text-3" id="text-3-1">
|
||||||
|
<p>
|
||||||
|
We initialize all the stages with the default parameters.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeGround();
|
||||||
|
initializeGranite();
|
||||||
|
initializeTy();
|
||||||
|
initializeRy();
|
||||||
|
initializeRz();
|
||||||
|
initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-string">'compliance'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
We put nothing on top of the micro-hexapod.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeAxisc(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
initializeMirror(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
initializeNanoHexapod(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
initializeSample(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">initializeReferences();
|
||||||
|
initializeDisturbances();
|
||||||
|
initializeController();
|
||||||
|
initializeSimscapeConfiguration();
|
||||||
|
initializeLoggingConfiguration();
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
And we identify the dynamics from forces/torques applied on the micro-hexapod top platform to the motion of the micro-hexapod top platform at the same point.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
The obtained compliance is shown in Figure <a href="#org67dfd1a">4</a>.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
||||||
|
mdl = <span class="org-string">'nass_model'</span>;
|
||||||
|
|
||||||
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Micro Hexapod/Compliance/Fm'</span>], 1, <span class="org-string">'openinput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Direct Forces/Torques applied on the micro-hexapod top platform</span>
|
||||||
|
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Micro Hexapod/Compliance/Dm'</span>], 1, <span class="org-string">'output'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Absolute displacement of the top platform</span>
|
||||||
|
|
||||||
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
|
||||||
|
Gm = linearize(mdl, io, 0);
|
||||||
|
Gm.InputName = {<span class="org-string">'Fmx'</span>, <span class="org-string">'Fmy'</span>, <span class="org-string">'Fmz'</span>, <span class="org-string">'Mmx'</span>, <span class="org-string">'Mmy'</span>, <span class="org-string">'Mmz'</span>};
|
||||||
|
Gm.OutputName = {<span class="org-string">'Dx'</span>, <span class="org-string">'Dy'</span>, <span class="org-string">'Dz'</span>, <span class="org-string">'Drx'</span>, <span class="org-string">'Dry'</span>, <span class="org-string">'Drz'</span>};
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org67dfd1a" class="figure">
|
||||||
|
<p><img src="figs/compliance_micro_station.png" alt="compliance_micro_station.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 4: </span>Obtained compliance of the Micro-Station (<a href="./figs/compliance_micro_station.png">png</a>, <a href="./figs/compliance_micro_station.pdf">pdf</a>)</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orga1de7a7" class="outline-2">
|
||||||
|
<h2 id="orga1de7a7"><span class="section-number-2">4</span> Conclusion</h2>
|
||||||
|
<div class="outline-text-2" id="text-4">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
For such a complex system, we believe that the Simscape Model represents the dynamics of the system with enough fidelity.
|
For such a complex system, we believe that the Simscape Model represents the dynamics of the system with enough fidelity.
|
||||||
@ -742,7 +815,7 @@ For such a complex system, we believe that the Simscape Model represents the dyn
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2020-03-13 ven. 17:39</p>
|
<p class="date">Created: 2020-04-01 mer. 16:14</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,11 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<?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"
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2020-03-26 jeu. 17:25 -->
|
<!-- 2020-04-01 mer. 16:14 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Effect of Uncertainty on the payload’s dynamics on the isolation platform dynamics</title>
|
<title>Effect of Uncertainty on the payload’s dynamics on the isolation platform dynamics</title>
|
||||||
@ -203,30 +202,7 @@
|
|||||||
<script type="text/javascript" src="./js/jquery.stickytableheaders.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" src="./js/readtheorg.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
/*
|
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
|
||||||
@licstart The following is the entire license notice for the
|
|
||||||
JavaScript code in this tag.
|
|
||||||
|
|
||||||
Copyright (C) 2012-2020 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[/*><!--*/
|
<!--/*--><![CDATA[/*><!--*/
|
||||||
function CodeHighlightOn(elem, id)
|
function CodeHighlightOn(elem, id)
|
||||||
{
|
{
|
||||||
@ -247,6 +223,7 @@ for the JavaScript code in this tag.
|
|||||||
target.className = elem.cacheClassTarget;
|
target.className = elem.cacheClassTarget;
|
||||||
}
|
}
|
||||||
/*]]>*///-->
|
/*]]>*///-->
|
||||||
|
// @license-end
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
MathJax = {
|
MathJax = {
|
||||||
@ -272,22 +249,22 @@ for the JavaScript code in this tag.
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgcc5f0ec">1. Simple Introductory Example</a>
|
<li><a href="#orgcc5f0ec">1. Simple Introductory Example</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org00d3412">1.1. Equations of motion</a></li>
|
<li><a href="#org6264842">1.1. Equations of motion</a></li>
|
||||||
<li><a href="#org4efccbf">1.2. Initialization of the payload dynamics</a></li>
|
<li><a href="#org4efccbf">1.2. Initialization of the payload dynamics</a></li>
|
||||||
<li><a href="#orgb400ca3">1.3. Initialization of the isolation platform</a></li>
|
<li><a href="#orgb400ca3">1.3. Initialization of the isolation platform</a></li>
|
||||||
<li><a href="#orgd0dd88b">1.4. Comparison</a></li>
|
<li><a href="#orgd0dd88b">1.4. Comparison</a></li>
|
||||||
<li><a href="#org3bef024">1.5. Conclusion</a></li>
|
<li><a href="#org1b051ce">1.5. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org1f8e63e">2. Generalization to arbitrary dynamics</a>
|
<li><a href="#org1f8e63e">2. Generalization to arbitrary dynamics</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgc4fa63e">2.1. Introduction</a></li>
|
<li><a href="#orgc4fa63e">2.1. Introduction</a></li>
|
||||||
<li><a href="#org6264842">2.2. Equations of motion</a></li>
|
<li><a href="#org35ac80d">2.2. Equations of motion</a></li>
|
||||||
<li><a href="#orge217a33">2.3. Impedance \(G^\prime(s)\) of a mass-spring-damper payload</a></li>
|
<li><a href="#orge217a33">2.3. Impedance \(G^\prime(s)\) of a mass-spring-damper payload</a></li>
|
||||||
<li><a href="#org0ee44da">2.4. First Analytical analysis</a></li>
|
<li><a href="#org0ee44da">2.4. First Analytical analysis</a></li>
|
||||||
<li><a href="#orgfe81c1c">2.5. Impedance of the Payload and Dynamical Uncertainty</a></li>
|
<li><a href="#orgfe81c1c">2.5. Impedance of the Payload and Dynamical Uncertainty</a></li>
|
||||||
<li><a href="#orgcc0c290">2.6. Effect of the Isolation platform Stiffness</a></li>
|
<li><a href="#org5e0366d">2.6. Equivalent Inverse Multiplicative Uncertainty</a></li>
|
||||||
<li><a href="#org5e0366d">2.7. Equivalent Inverse Multiplicative Uncertainty</a></li>
|
<li><a href="#orgcc0c290">2.7. Effect of the Isolation platform Stiffness</a></li>
|
||||||
<li><a href="#org1466bd9">2.8. Reduce the Uncertainty on the plant</a>
|
<li><a href="#org1466bd9">2.8. Reduce the Uncertainty on the plant</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org4be463f">2.8.1. Effect of the platform’s stiffness \(k\)</a></li>
|
<li><a href="#org4be463f">2.8.1. Effect of the platform’s stiffness \(k\)</a></li>
|
||||||
@ -295,7 +272,7 @@ for the JavaScript code in this tag.
|
|||||||
<li><a href="#org9086831">2.8.3. Effect of the platform’s mass \(m\)</a></li>
|
<li><a href="#org9086831">2.8.3. Effect of the platform’s mass \(m\)</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org1b051ce">2.9. Conclusion</a></li>
|
<li><a href="#org43f33dc">2.9. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -349,8 +326,8 @@ The goal is to stabilize \(x\) using \(F\) in spite of uncertainty on the payloa
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org00d3412" class="outline-3">
|
<div id="outline-container-org6264842" class="outline-3">
|
||||||
<h3 id="org00d3412"><span class="section-number-3">1.1</span> Equations of motion</h3>
|
<h3 id="org6264842"><span class="section-number-3">1.1</span> Equations of motion</h3>
|
||||||
<div class="outline-text-3" id="text-1-1">
|
<div class="outline-text-3" id="text-1-1">
|
||||||
<p>
|
<p>
|
||||||
If we write the equation of motion of the system in Figure <a href="#orgaa77a57">1</a>, we obtain:
|
If we write the equation of motion of the system in Figure <a href="#orgaa77a57">1</a>, we obtain:
|
||||||
@ -418,6 +395,7 @@ One can see that the payload has a resonance frequency of \(\omega_0^\prime = 25
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgb400ca3" class="outline-3">
|
<div id="outline-container-orgb400ca3" class="outline-3">
|
||||||
<h3 id="orgb400ca3"><span class="section-number-3">1.3</span> Initialization of the isolation platform</h3>
|
<h3 id="orgb400ca3"><span class="section-number-3">1.3</span> Initialization of the isolation platform</h3>
|
||||||
<div class="outline-text-3" id="text-1-3">
|
<div class="outline-text-3" id="text-1-3">
|
||||||
@ -456,8 +434,8 @@ The obtained dynamics from \(F\) to \(x\) for the three isolation platform are s
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org3bef024" class="outline-3">
|
<div id="outline-container-org1b051ce" class="outline-3">
|
||||||
<h3 id="org3bef024"><span class="section-number-3">1.5</span> Conclusion</h3>
|
<h3 id="org1b051ce"><span class="section-number-3">1.5</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-1-5">
|
<div class="outline-text-3" id="text-1-5">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
@ -509,8 +487,8 @@ Now let’s consider the system consisting of a mass-spring-system (the isol
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org6264842" class="outline-3">
|
<div id="outline-container-org35ac80d" class="outline-3">
|
||||||
<h3 id="org6264842"><span class="section-number-3">2.2</span> Equations of motion</h3>
|
<h3 id="org35ac80d"><span class="section-number-3">2.2</span> Equations of motion</h3>
|
||||||
<div class="outline-text-3" id="text-2-2">
|
<div class="outline-text-3" id="text-2-2">
|
||||||
<p>
|
<p>
|
||||||
We have to following equations of motion:
|
We have to following equations of motion:
|
||||||
@ -757,10 +735,47 @@ A set of uncertainty payload’s impedance transfer functions is shown in Fi
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgcc0c290" class="outline-3">
|
<div id="outline-container-org5e0366d" class="outline-3">
|
||||||
<h3 id="orgcc0c290"><span class="section-number-3">2.6</span> Effect of the Isolation platform Stiffness</h3>
|
<h3 id="org5e0366d"><span class="section-number-3">2.6</span> Equivalent Inverse Multiplicative Uncertainty</h3>
|
||||||
<div class="outline-text-3" id="text-2-6">
|
<div class="outline-text-3" id="text-2-6">
|
||||||
<p>
|
<p>
|
||||||
|
Let’s express the uncertainty of the plant \(x/F\) as a function of the parameters as well as of the uncertainty on the platform’s compliance:
|
||||||
|
</p>
|
||||||
|
\begin{align*}
|
||||||
|
\frac{x}{F} &= \frac{1}{ms^2 + cs + k + G_0^\prime(s)(1 + w_I(s)\Delta(s))}\\
|
||||||
|
&= \frac{1}{ms^2 + cs + k + G_0^\prime(s)} \cdot \frac{1}{1 + \frac{G_0^\prime(s) w_I(s)}{ms^2 + cs + k + G_0^\prime(s)} \Delta(s)}\\
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
<div class="important">
|
||||||
|
<p>
|
||||||
|
We can the plant dynamics that as an inverse multiplicative uncertainty (Figure <a href="#org90e7eef">9</a>):
|
||||||
|
</p>
|
||||||
|
\begin{equation}
|
||||||
|
\frac{x}{F} = G_0(s) (1 + w_{iI}(s) \Delta(s))^{-1}
|
||||||
|
\end{equation}
|
||||||
|
<p>
|
||||||
|
with:
|
||||||
|
</p>
|
||||||
|
<ul class="org-ul">
|
||||||
|
<li>\(G_0(s) = \frac{1}{ms^2 + cs + k + G_0^\prime(s)}\)</li>
|
||||||
|
<li>\(w_{iI}(s) = \frac{G_0^\prime(s) w_I(s)}{ms^2 + cs + k + G_0^\prime(s)} = G_0(s) G_0^\prime(s) w_I(s)\)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org90e7eef" class="figure">
|
||||||
|
<p><img src="figs/inverse_uncertainty_set.png" alt="inverse_uncertainty_set.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 9: </span>Inverse Multiplicative Uncertainty</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orgcc0c290" class="outline-3">
|
||||||
|
<h3 id="orgcc0c290"><span class="section-number-3">2.7</span> Effect of the Isolation platform Stiffness</h3>
|
||||||
|
<div class="outline-text-3" id="text-2-7">
|
||||||
|
<p>
|
||||||
Let’s first fix the mass of the isolation platform:
|
Let’s first fix the mass of the isolation platform:
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -785,6 +800,8 @@ Soft Isolation Platform:
|
|||||||
c_soft = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_soft);
|
c_soft = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_soft);
|
||||||
|
|
||||||
G_soft = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft <span class="org-type">+</span> Gp);
|
G_soft = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft <span class="org-type">+</span> Gp);
|
||||||
|
G0_soft = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft <span class="org-type">+</span> Gp0);
|
||||||
|
wiI_soft = Gp0<span class="org-type">*</span>G0_soft<span class="org-type">*</span>wI;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -796,6 +813,8 @@ Mid Isolation Platform
|
|||||||
c_mid = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_mid);
|
c_mid = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_mid);
|
||||||
|
|
||||||
G_mid = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid <span class="org-type">+</span> Gp);
|
G_mid = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid <span class="org-type">+</span> Gp);
|
||||||
|
G0_mid = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid <span class="org-type">+</span> Gp0);
|
||||||
|
wiI_mid = Gp0<span class="org-type">*</span>G0_mid<span class="org-type">*</span>wI;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -807,55 +826,20 @@ Stiff Isolation Platform
|
|||||||
c_stiff = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_stiff);
|
c_stiff = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_stiff);
|
||||||
|
|
||||||
G_stiff = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff <span class="org-type">+</span> Gp);
|
G_stiff = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff <span class="org-type">+</span> Gp);
|
||||||
|
G0_stiff = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff <span class="org-type">+</span> Gp0);
|
||||||
|
wiI_stiff = Gp0<span class="org-type">*</span>G0_stiff<span class="org-type">*</span>wI;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The obtained transfer functions \(x/F\) for each of the three platforms are shown in Figure <a href="#org864ba65">9</a>.
|
The obtained transfer functions \(x/F\) for each of the three platforms are shown in Figure <a href="#org864ba65">10</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org864ba65" class="figure">
|
<div id="org864ba65" class="figure">
|
||||||
<p><img src="figs/plant_uncertainty_impedance_payload.png" alt="plant_uncertainty_impedance_payload.png" />
|
<p><img src="figs/plant_uncertainty_impedance_payload.png" alt="plant_uncertainty_impedance_payload.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 9: </span>Obtained plant for the three isolators (<a href="./figs/plant_uncertainty_impedance_payload.png">png</a>, <a href="./figs/plant_uncertainty_impedance_payload.pdf">pdf</a>)</p>
|
<p><span class="figure-number">Figure 10: </span>Obtained plant for the three isolators (<a href="./figs/plant_uncertainty_impedance_payload.png">png</a>, <a href="./figs/plant_uncertainty_impedance_payload.pdf">pdf</a>)</p>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="outline-container-org5e0366d" class="outline-3">
|
|
||||||
<h3 id="org5e0366d"><span class="section-number-3">2.7</span> Equivalent Inverse Multiplicative Uncertainty</h3>
|
|
||||||
<div class="outline-text-3" id="text-2-7">
|
|
||||||
<p>
|
|
||||||
Let’s express the uncertainty of the plant \(x/F\) as a function of the parameters as well as of the uncertainty on the platform’s compliance:
|
|
||||||
</p>
|
|
||||||
\begin{align*}
|
|
||||||
\frac{x}{F} &= \frac{1}{ms^2 + cs + k + G_0^\prime(s)(1 + w_I(s)\Delta(s))}\\
|
|
||||||
&= \frac{1}{ms^2 + cs + k + G_0^\prime(s)} \cdot \frac{1}{1 + \frac{G_0^\prime(s) w_I(s)}{ms^2 + cs + k + G_0^\prime(s)} \Delta(s)}\\
|
|
||||||
\end{align*}
|
|
||||||
|
|
||||||
<div class="important">
|
|
||||||
<p>
|
|
||||||
We can the plant dynamics that as an inverse multiplicative uncertainty (Figure <a href="#org90e7eef">10</a>):
|
|
||||||
</p>
|
|
||||||
\begin{equation}
|
|
||||||
\frac{x}{F} = G_0(s) (1 + w_{iI}(s) \Delta(s))^{-1}
|
|
||||||
\end{equation}
|
|
||||||
<p>
|
|
||||||
with:
|
|
||||||
</p>
|
|
||||||
<ul class="org-ul">
|
|
||||||
<li>\(G_0(s) = \frac{1}{ms^2 + cs + k + G_0^\prime(s)}\)</li>
|
|
||||||
<li>\(w_{iI}(s) = \frac{G_0^\prime(s) w_I(s)}{ms^2 + cs + k + G_0^\prime(s)} = G_0(s) G_0^\prime(s) w_I(s)\)</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div id="org90e7eef" class="figure">
|
|
||||||
<p><img src="figs/inverse_uncertainty_set.png" alt="inverse_uncertainty_set.png" />
|
|
||||||
</p>
|
|
||||||
<p><span class="figure-number">Figure 10: </span>Inverse Multiplicative Uncertainty</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -961,8 +945,8 @@ Let’s fix \(k = 10^7\ [N/m]\), \(\xi = \frac{c}{2\sqrt{km}} = 0.1\) and se
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org1b051ce" class="outline-3">
|
<div id="outline-container-org43f33dc" class="outline-3">
|
||||||
<h3 id="org1b051ce"><span class="section-number-3">2.9</span> Conclusion</h3>
|
<h3 id="org43f33dc"><span class="section-number-3">2.9</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-2-9">
|
<div class="outline-text-3" id="text-2-9">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
@ -986,7 +970,7 @@ In that case, maximizing the stiffness of the payload is a good idea.
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2020-03-26 jeu. 17:25</p>
|
<p class="date">Created: 2020-04-01 mer. 16:14</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2020-03-26 jeu. 17:24 -->
|
<!-- 2020-04-01 mer. 16:14 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Effect of Uncertainty on the support’s dynamics on the isolation platform dynamics</title>
|
<title>Effect of Uncertainty on the support’s dynamics on the isolation platform dynamics</title>
|
||||||
@ -202,30 +202,7 @@
|
|||||||
<script type="text/javascript" src="./js/jquery.stickytableheaders.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" src="./js/readtheorg.js"></script>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
/*
|
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
|
||||||
@licstart The following is the entire license notice for the
|
|
||||||
JavaScript code in this tag.
|
|
||||||
|
|
||||||
Copyright (C) 2012-2020 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[/*><!--*/
|
<!--/*--><![CDATA[/*><!--*/
|
||||||
function CodeHighlightOn(elem, id)
|
function CodeHighlightOn(elem, id)
|
||||||
{
|
{
|
||||||
@ -246,6 +223,7 @@ for the JavaScript code in this tag.
|
|||||||
target.className = elem.cacheClassTarget;
|
target.className = elem.cacheClassTarget;
|
||||||
}
|
}
|
||||||
/*]]>*///-->
|
/*]]>*///-->
|
||||||
|
// @license-end
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
MathJax = {
|
MathJax = {
|
||||||
@ -271,20 +249,20 @@ for the JavaScript code in this tag.
|
|||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgbe6e0b8">1. Simple Introductory Example</a>
|
<li><a href="#orgbe6e0b8">1. Simple Introductory Example</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org440a84d">1.1. Equations of motion</a></li>
|
<li><a href="#org283e8c3">1.1. Equations of motion</a></li>
|
||||||
<li><a href="#org8bd2a4a">1.2. Initialization of the support dynamics</a></li>
|
<li><a href="#org8bd2a4a">1.2. Initialization of the support dynamics</a></li>
|
||||||
<li><a href="#orgefb9b71">1.3. Initialization of the isolation platform</a></li>
|
<li><a href="#orgefb9b71">1.3. Initialization of the isolation platform</a></li>
|
||||||
<li><a href="#org3bc4ad1">1.4. Comparison</a></li>
|
<li><a href="#org3bc4ad1">1.4. Comparison</a></li>
|
||||||
<li><a href="#orgc2af076">1.5. Conclusion</a></li>
|
<li><a href="#orgd28ebd8">1.5. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#orge1d3484">2. Generalization to arbitrary dynamics</a>
|
<li><a href="#orge1d3484">2. Generalization to arbitrary dynamics</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org3948d1f">2.1. Introduction</a></li>
|
<li><a href="#org3948d1f">2.1. Introduction</a></li>
|
||||||
<li><a href="#org283e8c3">2.2. Equations of motion</a></li>
|
<li><a href="#org28c48e3">2.2. Equations of motion</a></li>
|
||||||
<li><a href="#orgc20cabb">2.3. Compliance of the Support</a></li>
|
<li><a href="#orgc20cabb">2.3. Compliance of the Support</a></li>
|
||||||
<li><a href="#orgf1c8c33">2.4. Effect of the Isolation platform Stiffness.</a></li>
|
<li><a href="#org67810a4">2.4. Equivalent Inverse Multiplicative Uncertainty</a></li>
|
||||||
<li><a href="#org67810a4">2.5. Equivalent Inverse Multiplicative Uncertainty</a></li>
|
<li><a href="#orge950395">2.5. Effect of the Isolation platform Stiffness</a></li>
|
||||||
<li><a href="#org6967854">2.6. Reduce the Uncertainty on the plant</a>
|
<li><a href="#org6967854">2.6. Reduce the Uncertainty on the plant</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgafebadd">2.6.1. Effect of the platform’s stiffness \(k\)</a></li>
|
<li><a href="#orgafebadd">2.6.1. Effect of the platform’s stiffness \(k\)</a></li>
|
||||||
@ -292,7 +270,7 @@ for the JavaScript code in this tag.
|
|||||||
<li><a href="#orgd2fc303">2.6.3. Effect of the platform’s mass \(m\)</a></li>
|
<li><a href="#orgd2fc303">2.6.3. Effect of the platform’s mass \(m\)</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#orgd28ebd8">2.7. Conclusion</a></li>
|
<li><a href="#org718f0f1">2.7. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -346,8 +324,8 @@ The goal is to stabilize \(x\) using \(F\) in spite of uncertainty on the suppor
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org440a84d" class="outline-3">
|
<div id="outline-container-org283e8c3" class="outline-3">
|
||||||
<h3 id="org440a84d"><span class="section-number-3">1.1</span> Equations of motion</h3>
|
<h3 id="org283e8c3"><span class="section-number-3">1.1</span> Equations of motion</h3>
|
||||||
<div class="outline-text-3" id="text-1-1">
|
<div class="outline-text-3" id="text-1-1">
|
||||||
<p>
|
<p>
|
||||||
If we write the equation of motion of the system in Figure <a href="#org41bc770">1</a>, we obtain:
|
If we write the equation of motion of the system in Figure <a href="#org41bc770">1</a>, we obtain:
|
||||||
@ -451,8 +429,8 @@ The obtained dynamics from \(F\) to \(x\) for the three isolation platform are s
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgc2af076" class="outline-3">
|
<div id="outline-container-orgd28ebd8" class="outline-3">
|
||||||
<h3 id="orgc2af076"><span class="section-number-3">1.5</span> Conclusion</h3>
|
<h3 id="orgd28ebd8"><span class="section-number-3">1.5</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-1-5">
|
<div class="outline-text-3" id="text-1-5">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
@ -497,8 +475,8 @@ Now let’s consider the system consisting of a mass-spring-system (the isol
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org283e8c3" class="outline-3">
|
<div id="outline-container-org28c48e3" class="outline-3">
|
||||||
<h3 id="org283e8c3"><span class="section-number-3">2.2</span> Equations of motion</h3>
|
<h3 id="org28c48e3"><span class="section-number-3">2.2</span> Equations of motion</h3>
|
||||||
<div class="outline-text-3" id="text-2-2">
|
<div class="outline-text-3" id="text-2-2">
|
||||||
<p>
|
<p>
|
||||||
We have to following equations of motion:
|
We have to following equations of motion:
|
||||||
@ -581,7 +559,7 @@ The parameters are defined below.
|
|||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">r0 = 0.5;
|
<pre class="src src-matlab">r0 = 0.5;
|
||||||
tau = 1<span class="org-type">/</span>(50<span class="org-type">*</span>2<span class="org-type">*</span><span class="org-constant">pi</span>);
|
tau = 1<span class="org-type">/</span>(100<span class="org-type">*</span>2<span class="org-type">*</span><span class="org-constant">pi</span>);
|
||||||
rinf = 10;
|
rinf = 10;
|
||||||
|
|
||||||
wI = (tau<span class="org-type">*</span>s <span class="org-type">+</span> r0)<span class="org-type">/</span>((tau<span class="org-type">/</span>rinf)<span class="org-type">*</span>s <span class="org-type">+</span> 1);
|
wI = (tau<span class="org-type">*</span>s <span class="org-type">+</span> r0)<span class="org-type">/</span>((tau<span class="org-type">/</span>rinf)<span class="org-type">*</span>s <span class="org-type">+</span> 1);
|
||||||
@ -617,10 +595,48 @@ A set of uncertainty support’s compliance transfer functions is shown in F
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgf1c8c33" class="outline-3">
|
<div id="outline-container-org67810a4" class="outline-3">
|
||||||
<h3 id="orgf1c8c33"><span class="section-number-3">2.4</span> Effect of the Isolation platform Stiffness.</h3>
|
<h3 id="org67810a4"><span class="section-number-3">2.4</span> Equivalent Inverse Multiplicative Uncertainty</h3>
|
||||||
<div class="outline-text-3" id="text-2-4">
|
<div class="outline-text-3" id="text-2-4">
|
||||||
<p>
|
<p>
|
||||||
|
Let’s express the uncertainty of the plant \(x/F\) as a function of the parameters as well as of the uncertainty on the platform’s compliance:
|
||||||
|
</p>
|
||||||
|
\begin{align*}
|
||||||
|
\frac{x}{F} &= \frac{1}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)(1 + w_I(s)\Delta(s))}\\
|
||||||
|
&= \frac{1}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s) + ms^2(cs + k)G_0^\prime(s) w_I(s)\Delta(s)}\\
|
||||||
|
&= \frac{1}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)} \cdot \frac{1}{1 + \frac{ms^2(cs + k)G_0^\prime(s) w_I(s)}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)} \Delta(s)}\\
|
||||||
|
\end{align*}
|
||||||
|
|
||||||
|
<div class="important">
|
||||||
|
<p>
|
||||||
|
We can the plant dynamics that as an inverse multiplicative uncertainty (Figure <a href="#orge738173">8</a>):
|
||||||
|
</p>
|
||||||
|
\begin{equation}
|
||||||
|
\frac{x}{F} = G_0(s) (1 + w_{iI}(s) \Delta(s))^{-1}
|
||||||
|
\end{equation}
|
||||||
|
<p>
|
||||||
|
with:
|
||||||
|
</p>
|
||||||
|
<ul class="org-ul">
|
||||||
|
<li>\(G_0(s) = \frac{1}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)}\)</li>
|
||||||
|
<li>\(w_{iI}(s) = \frac{ms^2(cs + k)G_0^\prime(s) w_I(s)}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)} = G_0(s) ms^2(cs + k)G_0^\prime(s) w_I(s)\)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orge738173" class="figure">
|
||||||
|
<p><img src="figs/inverse_uncertainty_set.png" alt="inverse_uncertainty_set.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 8: </span>Inverse Multiplicative Uncertainty</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="outline-container-orge950395" class="outline-3">
|
||||||
|
<h3 id="orge950395"><span class="section-number-3">2.5</span> Effect of the Isolation platform Stiffness</h3>
|
||||||
|
<div class="outline-text-3" id="text-2-5">
|
||||||
|
<p>
|
||||||
Let’s first fix the mass of the payload to be isolated:
|
Let’s first fix the mass of the payload to be isolated:
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -645,6 +661,8 @@ Soft Isolation Platform:
|
|||||||
c_soft = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_soft);
|
c_soft = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_soft);
|
||||||
|
|
||||||
G_soft = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft)<span class="org-type">*</span>Gp);
|
G_soft = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft)<span class="org-type">*</span>Gp);
|
||||||
|
G0_soft = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft)<span class="org-type">*</span>Gp0);
|
||||||
|
wiI_soft = Gp0<span class="org-type">*</span>m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_soft<span class="org-type">*</span>s <span class="org-type">+</span> k_soft)<span class="org-type">*</span>G0_soft<span class="org-type">*</span>wI;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -656,6 +674,8 @@ Mid Isolation Platform
|
|||||||
c_mid = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_mid);
|
c_mid = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_mid);
|
||||||
|
|
||||||
G_mid = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid)<span class="org-type">*</span>Gp);
|
G_mid = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid)<span class="org-type">*</span>Gp);
|
||||||
|
G0_mid = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid)<span class="org-type">*</span>Gp0);
|
||||||
|
wiI_mid = Gp0<span class="org-type">*</span>m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_mid<span class="org-type">*</span>s <span class="org-type">+</span> k_mid)<span class="org-type">*</span>G0_mid<span class="org-type">*</span>wI;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -667,18 +687,20 @@ Stiff Isolation Platform
|
|||||||
c_stiff = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_stiff);
|
c_stiff = 0.1<span class="org-type">*</span>sqrt(m<span class="org-type">*</span>k_stiff);
|
||||||
|
|
||||||
G_stiff = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff)<span class="org-type">*</span>Gp);
|
G_stiff = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff)<span class="org-type">*</span>Gp);
|
||||||
|
G0_stiff = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff <span class="org-type">+</span> m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff)<span class="org-type">*</span>Gp0);
|
||||||
|
wiI_stiff = Gp0<span class="org-type">*</span>m<span class="org-type">*</span>s<span class="org-type">^</span>2<span class="org-type">*</span>(c_stiff<span class="org-type">*</span>s <span class="org-type">+</span> k_stiff)<span class="org-type">*</span>G0_stiff<span class="org-type">*</span>wI;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The obtained transfer functions \(x/F\) for each of the three platforms are shown in Figure <a href="#org89aa89f">8</a>.
|
The obtained transfer functions \(x/F\) for each of the three platforms are shown in Figure <a href="#org89aa89f">9</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org89aa89f" class="figure">
|
<div id="org89aa89f" class="figure">
|
||||||
<p><img src="figs/plant_uncertainty_stiffness_isolator.png" alt="plant_uncertainty_stiffness_isolator.png" />
|
<p><img src="figs/plant_uncertainty_stiffness_isolator.png" alt="plant_uncertainty_stiffness_isolator.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 8: </span>Obtained plant for the three isolators (<a href="./figs/plant_uncertainty_stiffness_isolator.png">png</a>, <a href="./figs/plant_uncertainty_stiffness_isolator.pdf">pdf</a>)</p>
|
<p><span class="figure-number">Figure 9: </span>Obtained plant for the three isolators (<a href="./figs/plant_uncertainty_stiffness_isolator.png">png</a>, <a href="./figs/plant_uncertainty_stiffness_isolator.pdf">pdf</a>)</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -688,44 +710,6 @@ This is due to the fact that with the current model, at high frequency, the supp
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org67810a4" class="outline-3">
|
|
||||||
<h3 id="org67810a4"><span class="section-number-3">2.5</span> Equivalent Inverse Multiplicative Uncertainty</h3>
|
|
||||||
<div class="outline-text-3" id="text-2-5">
|
|
||||||
<p>
|
|
||||||
Let’s express the uncertainty of the plant \(x/F\) as a function of the parameters as well as of the uncertainty on the platform’s compliance:
|
|
||||||
</p>
|
|
||||||
\begin{align*}
|
|
||||||
\frac{x}{F} &= \frac{1}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)(1 + w_I(s)\Delta(s))}\\
|
|
||||||
&= \frac{1}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s) + ms^2(cs + k)G_0^\prime(s) w_I(s)\Delta(s)}\\
|
|
||||||
&= \frac{1}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)} \cdot \frac{1}{1 + \frac{ms^2(cs + k)G_0^\prime(s) w_I(s)}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)} \Delta(s)}\\
|
|
||||||
\end{align*}
|
|
||||||
|
|
||||||
<div class="important">
|
|
||||||
<p>
|
|
||||||
We can the plant dynamics that as an inverse multiplicative uncertainty (Figure <a href="#orge738173">9</a>):
|
|
||||||
</p>
|
|
||||||
\begin{equation}
|
|
||||||
\frac{x}{F} = G_0(s) (1 + w_{iI}(s) \Delta(s))^{-1}
|
|
||||||
\end{equation}
|
|
||||||
<p>
|
|
||||||
with:
|
|
||||||
</p>
|
|
||||||
<ul class="org-ul">
|
|
||||||
<li>\(G_0(s) = \frac{1}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)}\)</li>
|
|
||||||
<li>\(w_{iI}(s) = \frac{ms^2(cs + k)G_0^\prime(s) w_I(s)}{ms^2 + cs + k + ms^2(cs + k)G_0^\prime(s)} = G_0(s) ms^2(cs + k)G_0^\prime(s) w_I(s)\)</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div id="orge738173" class="figure">
|
|
||||||
<p><img src="figs/inverse_uncertainty_set.png" alt="inverse_uncertainty_set.png" />
|
|
||||||
</p>
|
|
||||||
<p><span class="figure-number">Figure 9: </span>Inverse Multiplicative Uncertainty</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="outline-container-org6967854" class="outline-3">
|
<div id="outline-container-org6967854" class="outline-3">
|
||||||
<h3 id="org6967854"><span class="section-number-3">2.6</span> Reduce the Uncertainty on the plant</h3>
|
<h3 id="org6967854"><span class="section-number-3">2.6</span> Reduce the Uncertainty on the plant</h3>
|
||||||
<div class="outline-text-3" id="text-2-6">
|
<div class="outline-text-3" id="text-2-6">
|
||||||
@ -828,8 +812,8 @@ Let’s fix \(k = 10^7\ [N/m]\), \(\xi = \frac{c}{2\sqrt{km}} = 0.1\) and se
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgd28ebd8" class="outline-3">
|
<div id="outline-container-org718f0f1" class="outline-3">
|
||||||
<h3 id="orgd28ebd8"><span class="section-number-3">2.7</span> Conclusion</h3>
|
<h3 id="org718f0f1"><span class="section-number-3">2.7</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-2-7">
|
<div class="outline-text-3" id="text-2-7">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
@ -857,7 +841,7 @@ Thus, if a stiff isolation platform is used, the recommendation is to have the l
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2020-03-26 jeu. 17:24</p>
|
<p class="date">Created: 2020-04-01 mer. 16:14</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
BIN
mat/Foffset.mat
BIN
mat/Foffset.mat
Binary file not shown.
BIN
mat/conf_log.mat
BIN
mat/conf_log.mat
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mat/stages.mat
BIN
mat/stages.mat
Binary file not shown.
Loading…
Reference in New Issue
Block a user