860 lines
35 KiB
HTML
860 lines
35 KiB
HTML
<?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-03-25 mer. 19:20 -->
|
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
|
<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>
|
|
<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">
|
|
/*
|
|
@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[/*><!--*/
|
|
function CodeHighlightOn(elem, id)
|
|
{
|
|
var target = document.getElementById(id);
|
|
if(null != target) {
|
|
elem.cacheClassElem = elem.className;
|
|
elem.cacheClassTarget = target.className;
|
|
target.className = "code-highlighted";
|
|
elem.className = "code-highlighted";
|
|
}
|
|
}
|
|
function CodeHighlightOff(elem, id)
|
|
{
|
|
var target = document.getElementById(id);
|
|
if(elem.cacheClassElem)
|
|
elem.className = elem.cacheClassElem;
|
|
if(elem.cacheClassTarget)
|
|
target.className = elem.cacheClassTarget;
|
|
}
|
|
/*]]>*///-->
|
|
</script>
|
|
<script>
|
|
MathJax = {
|
|
tex: { macros: {
|
|
bm: ["\\boldsymbol{#1}",1],
|
|
}
|
|
}
|
|
};
|
|
</script>
|
|
<script type="text/javascript"
|
|
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></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">Effect of Uncertainty on the support’s dynamics on the isolation platform dynamics</h1>
|
|
<div id="table-of-contents">
|
|
<h2>Table of Contents</h2>
|
|
<div id="text-table-of-contents">
|
|
<ul>
|
|
<li><a href="#orgbe6e0b8">1. Simple Introductory Example</a>
|
|
<ul>
|
|
<li><a href="#orgf5c9fe3">1.1. Equations of motion</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="#org3bc4ad1">1.4. Comparison</a></li>
|
|
<li><a href="#org2200b2c">1.5. Conclusion</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#orge1d3484">2. Generalization to arbitrary dynamics</a>
|
|
<ul>
|
|
<li><a href="#org3948d1f">2.1. Introduction</a></li>
|
|
<li><a href="#org96daf87">2.2. Equations of motion</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.5. Equivalent Inverse Multiplicative Uncertainty</a></li>
|
|
<li><a href="#org6967854">2.6. Reduce the Uncertainty on the plant</a>
|
|
<ul>
|
|
<li><a href="#orgafebadd">2.6.1. Effect of the platform’s stiffness \(k\)</a></li>
|
|
<li><a href="#orgd9a82cb">2.6.2. Effect of the platform’s damping \(c\)</a></li>
|
|
<li><a href="#orgd2fc303">2.6.3. Effect of the platform’s mass \(m\)</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#org9c46c2a">2.7. Conclusion</a></li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<p>
|
|
In this document we will consider an <b>isolation platform</b> (e.g. the nano-hexapod) on top of a <b>flexible support</b> (e.g. the micro-station).
|
|
</p>
|
|
|
|
<p>
|
|
The goal is to study:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>how does the dynamics of the support influence the dynamics of the plant to control</li>
|
|
<li>similarly: how does the uncertainty on the support’s dynamics will be transferred to uncertainty on the plant</li>
|
|
<li>what design choice should be made in order to minimize the resulting uncertainty on the plant</li>
|
|
</ul>
|
|
|
|
<p>
|
|
Two models are made to study these effects:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>In section <a href="#org232d01f">1</a>, simple mass-spring-damper systems are chosen to model both the isolation platform and the flexible support</li>
|
|
<li>In section <a href="#orgb01b074">2</a>, we consider arbitrary support dynamics with multiplicative input uncertainty to study the unmodelled dynamics of the support</li>
|
|
</ul>
|
|
|
|
<div id="outline-container-orgbe6e0b8" class="outline-2">
|
|
<h2 id="orgbe6e0b8"><span class="section-number-2">1</span> Simple Introductory Example</h2>
|
|
<div class="outline-text-2" id="text-1">
|
|
<p>
|
|
<a id="org232d01f"></a>
|
|
</p>
|
|
<p>
|
|
Let’s consider the system shown in Figure <a href="#org41bc770">1</a> consisting of:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>A <b>support</b> represented by a mass \(m^\prime\), a stiffness \(k^\prime\) and a dashpot \(c^\prime\)</li>
|
|
<li>An <b>isolation platform</b> represented by a mass \(m\), a stiffness \(k\) and a dashpot \(c\) and an actuator \(F\)</li>
|
|
</ul>
|
|
|
|
<p>
|
|
The goal is to stabilize \(x\) using \(F\) in spite of uncertainty on the support mechanical properties.
|
|
</p>
|
|
|
|
|
|
<div id="org41bc770" class="figure">
|
|
<p><img src="figs/2dof_system_stiffness_uncertainty.png" alt="2dof_system_stiffness_uncertainty.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 1: </span>Two degrees-of-freedom system</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-orgf5c9fe3" class="outline-3">
|
|
<h3 id="orgf5c9fe3"><span class="section-number-3">1.1</span> Equations of motion</h3>
|
|
<div class="outline-text-3" id="text-1-1">
|
|
<p>
|
|
If we write the equation of motion of the system in Figure <a href="#org41bc770">1</a>, we obtain:
|
|
</p>
|
|
\begin{align}
|
|
ms^2 x &= F + (cs + k) (x^\prime - x) \\
|
|
m^\prime s^2 x^\prime &= -F - (c^\prime s + k^\prime) x^\prime + (cs + k)(x - x^\prime)
|
|
\end{align}
|
|
|
|
<p>
|
|
After eliminating \(x^\prime\), we obtain:
|
|
</p>
|
|
\begin{equation}
|
|
\label{org2d73355}
|
|
\frac{x}{F} = \frac{m^\prime s^2 + c^\prime s + k^\prime}{ms^2(cs + k) + (ms^2 + cs + k)(m^\prime s^2 + c^\prime s + k^\prime)}
|
|
\end{equation}
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-org8bd2a4a" class="outline-3">
|
|
<h3 id="org8bd2a4a"><span class="section-number-3">1.2</span> Initialization of the support dynamics</h3>
|
|
<div class="outline-text-3" id="text-1-2">
|
|
<p>
|
|
Let the support have:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>a nominal mass of \(m^\prime = 1000\ [kg]\)</li>
|
|
<li>a nominal stiffness of \(k^\prime = 10^8\ [N/m]\)</li>
|
|
<li>a nominal damping of \(c^\prime = 10^5\ [N/(m/s)]\)</li>
|
|
</ul>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">mpi = 1e3;
|
|
cpi = 5e4;
|
|
kpi = 1e8;
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
Let’s also consider some uncertainty in those parameters:
|
|
</p>
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">mp = ureal(<span class="org-string">'m'</span>, mpi, <span class="org-string">'Percentage'</span>, 30);
|
|
cp = ureal(<span class="org-string">'c'</span>, cpi, <span class="org-string">'Percentage'</span>, 30);
|
|
kp = ureal(<span class="org-string">'k'</span>, kpi, <span class="org-string">'Percentage'</span>, 30);
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
The compliance of the support without the isolation platform is \(\frac{1}{m^\prime s^2 + c^\prime s + k^\prime}\) and its bode plot is shown in Figure <a href="#orgf0e5d13">2</a>.
|
|
</p>
|
|
|
|
<p>
|
|
One can see that support has a resonance frequency of \(\omega_0^\prime = 50\ Hz\).
|
|
</p>
|
|
|
|
|
|
<div id="orgf0e5d13" class="figure">
|
|
<p><img src="figs/nominal_support_compliance_dynamics.png" alt="nominal_support_compliance_dynamics.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 2: </span>Nominal compliance of the support (<a href="./figs/nominal_support_compliance_dynamics.png">png</a>, <a href="./figs/nominal_support_compliance_dynamics.pdf">pdf</a>)</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-orgefb9b71" class="outline-3">
|
|
<h3 id="orgefb9b71"><span class="section-number-3">1.3</span> Initialization of the isolation platform</h3>
|
|
<div class="outline-text-3" id="text-1-3">
|
|
<p>
|
|
Let’s first fix the mass of the payload to be isolated:
|
|
</p>
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">m = 100;
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
And we generate three isolation platforms:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>A soft one with \(\omega_0 = 0.1 \omega_0^\prime = 5\ Hz\)</li>
|
|
<li>A medium stiff one with \(\omega_0 = \omega_0^\prime = 50\ Hz\)</li>
|
|
<li>A stiff one with \(\omega_0 = 10 \omega_0^\prime = 500\ Hz\)</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-org3bc4ad1" class="outline-3">
|
|
<h3 id="org3bc4ad1"><span class="section-number-3">1.4</span> Comparison</h3>
|
|
<div class="outline-text-3" id="text-1-4">
|
|
<p>
|
|
The obtained dynamics from \(F\) to \(x\) for the three isolation platform are shown in Figure <a href="#org5fb09ae">3</a>.
|
|
</p>
|
|
|
|
|
|
<div id="org5fb09ae" class="figure">
|
|
<p><img src="figs/plant_dynamics_uncertainty_stiff_mid_soft.png" alt="plant_dynamics_uncertainty_stiff_mid_soft.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 3: </span>Obtained plant for the three isolation platforms considered (<a href="./figs/plant_dynamics_uncertainty_stiff_mid_soft.png">png</a>, <a href="./figs/plant_dynamics_uncertainty_stiff_mid_soft.pdf">pdf</a>)</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-org2200b2c" class="outline-3">
|
|
<h3 id="org2200b2c"><span class="section-number-3">1.5</span> Conclusion</h3>
|
|
<div class="outline-text-3" id="text-1-5">
|
|
<div class="important">
|
|
<p>
|
|
The soft platform dynamics does not seems to depend on the dynamics of the support.
|
|
</p>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-orge1d3484" class="outline-2">
|
|
<h2 id="orge1d3484"><span class="section-number-2">2</span> Generalization to arbitrary dynamics</h2>
|
|
<div class="outline-text-2" id="text-2">
|
|
<p>
|
|
<a id="orgb01b074"></a>
|
|
</p>
|
|
</div>
|
|
<div id="outline-container-org3948d1f" class="outline-3">
|
|
<h3 id="org3948d1f"><span class="section-number-3">2.1</span> Introduction</h3>
|
|
<div class="outline-text-3" id="text-2-1">
|
|
<p>
|
|
Let’s now consider a general support described by its <b>compliance</b> \(G^\prime(s) = \frac{x^\prime}{F^\prime}\) as shown in Figure <a href="#orgaa4cf23">4</a>.
|
|
</p>
|
|
|
|
|
|
<div id="orgaa4cf23" class="figure">
|
|
<p><img src="figs/general_support_compliance.png" alt="general_support_compliance.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 4: </span>General support</p>
|
|
</div>
|
|
|
|
<p>
|
|
Now let’s consider the system consisting of a mass-spring-system (the isolation platform) on top of a general support as shown in Figure <a href="#org524a33a">5</a>.
|
|
</p>
|
|
|
|
<div id="org524a33a" class="figure">
|
|
<p><img src="figs/general_support_with_isolator.png" alt="general_support_with_isolator.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 5: </span>Mass-Spring-Damper system on top of a general support</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-org96daf87" class="outline-3">
|
|
<h3 id="org96daf87"><span class="section-number-3">2.2</span> Equations of motion</h3>
|
|
<div class="outline-text-3" id="text-2-2">
|
|
<p>
|
|
We have to following equations of motion:
|
|
</p>
|
|
\begin{align}
|
|
ms^2 x &= F + (cs + k) (x^\prime - x) \\
|
|
F^\prime &= -F + (cs + k)(x - x^\prime) \\
|
|
\frac{x^\prime}{F^\prime} &= G^\prime(s)
|
|
\end{align}
|
|
|
|
<p>
|
|
And by eliminating \(F^\prime\) and \(x^\prime\), we find the plant dynamics \(G(s) = \frac{x}{F}\).
|
|
</p>
|
|
|
|
<div class="important">
|
|
\begin{equation}
|
|
\frac{x}{F} = \frac{1}{ms^2 + cs + k + ms^2(cs + k)G^\prime(s)} \label{eq:plant_dynamics_general_support}
|
|
\end{equation}
|
|
|
|
</div>
|
|
|
|
<p>
|
|
In order to verify that the formula is correct, let’s take the same mass-spring-damper system used in the system shown in Figure <a href="#org41bc770">1</a>:
|
|
\[ \frac{x^\prime}{F^\prime} = \frac{1}{m^\prime s^2 + c^\prime s + k^\prime} \]
|
|
</p>
|
|
|
|
<p>
|
|
And we obtain
|
|
\[ \frac{x}{F} = \frac{m^\prime s^2 + c^\prime s + k^\prime}{(ms^2 + cs + k)(m^\prime s^2 + c^\prime s + k^\prime) + ms^2(cs + k)} \]
|
|
Which is the same transfer function that was obtained in section <a href="#org232d01f">1</a> (Eq. \eqref{org2d73355}).
|
|
</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-orgc20cabb" class="outline-3">
|
|
<h3 id="orgc20cabb"><span class="section-number-3">2.3</span> Compliance of the Support</h3>
|
|
<div class="outline-text-3" id="text-2-3">
|
|
<p>
|
|
We model the support by a mass-spring-damper model with some uncertainty.
|
|
</p>
|
|
|
|
<p>
|
|
The nominal compliance of the support is corresponding to the compliance of a mass-spring-damper system with a mass of \(1000\ kg\) and a stiffness of \(10^8\ [N/m]\).
|
|
The main resonance of the support is then \(\omega^\prime = \sqrt{\frac{m^\prime}{k^\prime}} \approx 50\ Hz\).
|
|
</p>
|
|
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">m0 = 1e3;
|
|
c0 = 5e4;
|
|
k0 = 1e8;
|
|
|
|
Gp0 = 1<span class="org-type">/</span>(m0<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c0<span class="org-type">*</span>s <span class="org-type">+</span> k0);
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
Let’s represent the uncertainty on the compliance of the support by a multiplicative uncertainty (Figure <a href="#orgaaa2d77">6</a>):
|
|
\[ G^\prime(s) = G_0^\prime(s)(1 + w_I^\prime(s)\Delta_I(s)) \quad |\Delta_I(j\omega)| < 1\ \forall \omega \]
|
|
</p>
|
|
|
|
<p>
|
|
This could represent <b>unmodelled dynamics</b> or unknown parameters of the support.
|
|
</p>
|
|
|
|
|
|
<div id="orgaaa2d77" class="figure">
|
|
<p><img src="figs/input_uncertainty_set.png" alt="input_uncertainty_set.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 6: </span>Input Multiplicative Uncertainty</p>
|
|
</div>
|
|
|
|
<p>
|
|
We choose a simple uncertainty weight:
|
|
\[ w_I(s) = \frac{\tau s + r_0}{(\tau/r_\infty) s + 1} \]
|
|
where \(r_0\) is the relative uncertainty at steady-state, \(1/\tau\) is the frequency at which the relative uncertainty reaches \(100\ \%\), and \(r_\infty\) is the magnitude of the weight at high frequency.
|
|
</p>
|
|
|
|
<p>
|
|
The parameters are defined below.
|
|
</p>
|
|
<div class="org-src-container">
|
|
<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>);
|
|
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);
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
We then generate a complex \(\Delta\).
|
|
</p>
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">DeltaI = ucomplex(<span class="org-string">'A'</span>,0);
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
We generate the uncertain plant \(G^\prime(s)\).
|
|
</p>
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">Gp = Gp0<span class="org-type">*</span>(1<span class="org-type">+</span>wI<span class="org-type">*</span>DeltaI);
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
A set of uncertainty support’s compliance transfer functions is shown in Figure <a href="#orgcac0998">7</a>.
|
|
</p>
|
|
|
|
|
|
<div id="orgcac0998" class="figure">
|
|
<p><img src="figs/compliance_support_uncertainty.png" alt="compliance_support_uncertainty.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 7: </span>Uncertainty of the support’s compliance (<a href="./figs/compliance_support_uncertainty.png">png</a>, <a href="./figs/compliance_support_uncertainty.pdf">pdf</a>)</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-orgf1c8c33" class="outline-3">
|
|
<h3 id="orgf1c8c33"><span class="section-number-3">2.4</span> Effect of the Isolation platform Stiffness.</h3>
|
|
<div class="outline-text-3" id="text-2-4">
|
|
<p>
|
|
Let’s first fix the mass of the payload to be isolated:
|
|
</p>
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">m = 100;
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
And we generate three isolation platforms:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>A soft one with \(\omega_0 = 5\ Hz\)</li>
|
|
<li>A medium stiff one with \(\omega_0 = 50\ Hz\)</li>
|
|
<li>A stiff one with \(\omega_0 = 500\ Hz\)</li>
|
|
</ul>
|
|
|
|
<p>
|
|
Soft Isolation Platform:
|
|
</p>
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">k_soft = m<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>2;
|
|
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);
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
Mid Isolation Platform
|
|
</p>
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">k_mid = m<span class="org-type">*</span>(2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>50)<span class="org-type">^</span>2;
|
|
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);
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
Stiff Isolation Platform
|
|
</p>
|
|
<div class="org-src-container">
|
|
<pre class="src src-matlab">k_stiff = m<span class="org-type">*</span>(2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>500)<span class="org-type">^</span>2;
|
|
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);
|
|
</pre>
|
|
</div>
|
|
|
|
<p>
|
|
The obtained transfer functions \(x/F\) for each of the three platforms are shown in Figure <a href="#org89aa89f">8</a>.
|
|
</p>
|
|
|
|
<div id="org89aa89f" class="figure">
|
|
<p><img src="figs/plant_uncertainty_stiffness_isolator.png" alt="plant_uncertainty_stiffness_isolator.png" />
|
|
</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>
|
|
</div>
|
|
|
|
<p>
|
|
The obtain result is very similar to the one obtain in section <a href="#org232d01f">1</a>, except for the stiff isolation that experience lot’s of uncertainty at high frequency.
|
|
This is due to the fact that with the current model, at high frequency, the support’s compliance uncertainty is much higher than the previous model.
|
|
</p>
|
|
</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*}
|
|
|
|
<p>
|
|
We can rewrite that as an inverse multiplicative uncertainty (Figure <a href="#orge738173">9</a>):
|
|
</p>
|
|
<div class="important">
|
|
\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">
|
|
<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">
|
|
<p>
|
|
Now that we know the expression of the uncertainty on the plant, we can wonder what parameters of the isolation platform would lower the plant uncertainty, or at least bring the uncertainty to reasonable level.
|
|
</p>
|
|
|
|
<p>
|
|
The uncertainty of the plant is described by an inverse multiplicative uncertainty with the following weight:
|
|
\[ 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)} \]
|
|
</p>
|
|
|
|
<p>
|
|
Let’s study separately the effect of the platform’s mass, damping and stiffness.
|
|
</p>
|
|
</div>
|
|
|
|
<div id="outline-container-orgafebadd" class="outline-4">
|
|
<h4 id="orgafebadd"><span class="section-number-4">2.6.1</span> Effect of the platform’s stiffness \(k\)</h4>
|
|
<div class="outline-text-4" id="text-2-6-1">
|
|
<p>
|
|
Let’s fix \(\xi = \frac{c}{2\sqrt{km}} = 0.1\), \(m = 100\ [kg]\) and see the evolution of \(|w_{iI}(j\omega)|\) with \(k\).
|
|
</p>
|
|
|
|
<p>
|
|
This is first shown for few values of the stiffness \(k\) in figure <a href="#org5bc976b">10</a>
|
|
</p>
|
|
|
|
|
|
<div id="org5bc976b" class="figure">
|
|
<p><img src="figs/inverse_multiplicative_uncertainty_norm_few_k.png" alt="inverse_multiplicative_uncertainty_norm_few_k.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 10: </span>caption (<a href="./figs/inverse_multiplicative_uncertainty_norm_few_k.png">png</a>, <a href="./figs/inverse_multiplicative_uncertainty_norm_few_k.pdf">pdf</a>)</p>
|
|
</div>
|
|
|
|
<p>
|
|
The norm of the uncertainty weight \(|w_iI(j\omega)|\) is displayed as a function of \(\omega\) and \(k\) in Figure <a href="#orgb283d43">11</a>.
|
|
</p>
|
|
|
|
|
|
<div id="orgb283d43" class="figure">
|
|
<p><img src="figs/inverse_multiplicative_uncertainty_norm_k.png" alt="inverse_multiplicative_uncertainty_norm_k.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 11: </span>Evolution of the norm of the uncertainty weight \(|w_{iI}(j\omega)|\) as a function of the platform’s stiffness \(k\) (<a href="./figs/inverse_multiplicative_uncertainty_norm_k.png">png</a>, <a href="./figs/inverse_multiplicative_uncertainty_norm_k.pdf">pdf</a>)</p>
|
|
</div>
|
|
|
|
<p>
|
|
Instead of plotting as a function of the platform’s stiffness, we can plot as a function of \(\omega_0/\omega_0^\prime\) where:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>\(\omega_0\) is the resonance of the platform alone</li>
|
|
<li>\(\omega_0^\prime\) is the resonance of the support alone</li>
|
|
</ul>
|
|
|
|
<p>
|
|
The obtain plot is shown in Figure <a href="#org9adcd50">12</a>.
|
|
In that case, we can see that with a platform’s resonance frequency 10 times lower than the resonance of the support, we get less than \(1\%\) uncertainty.
|
|
</p>
|
|
|
|
|
|
<div id="org9adcd50" class="figure">
|
|
<p><img src="figs/inverse_multiplicative_uncertainty_k_normalized_frequency.png" alt="inverse_multiplicative_uncertainty_k_normalized_frequency.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 12: </span>Evolution of the norm of the uncertainty weight \(|w_{iI}(j\omega)|\) as a function of the frequency ratio \(\omega_0/\omega_0^\prime\) (<a href="./figs/inverse_multiplicative_uncertainty_k_normalized_frequency.png">png</a>, <a href="./figs/inverse_multiplicative_uncertainty_k_normalized_frequency.pdf">pdf</a>)</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-orgd9a82cb" class="outline-4">
|
|
<h4 id="orgd9a82cb"><span class="section-number-4">2.6.2</span> Effect of the platform’s damping \(c\)</h4>
|
|
<div class="outline-text-4" id="text-2-6-2">
|
|
<p>
|
|
Let’s fix \(k = 10^7\ [N/m]\), \(m = 100\ [kg]\) and see the evolution of \(|w_{iI}(j\omega)|\) with the isolator damping \(c\) (Figure <a href="#org983fa6b">13</a>).
|
|
</p>
|
|
|
|
|
|
<div id="org983fa6b" class="figure">
|
|
<p><img src="figs/inverse_multiplicative_uncertainty_norm_c.png" alt="inverse_multiplicative_uncertainty_norm_c.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 13: </span>Evolution of the norm of the uncertainty weight \(|w_{iI}(j\omega)|\) as a function of the platform’s damping ratio \(\xi\) (<a href="./figs/inverse_multiplicative_uncertainty_norm_c.png">png</a>, <a href="./figs/inverse_multiplicative_uncertainty_norm_c.pdf">pdf</a>)</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div id="outline-container-orgd2fc303" class="outline-4">
|
|
<h4 id="orgd2fc303"><span class="section-number-4">2.6.3</span> Effect of the platform’s mass \(m\)</h4>
|
|
<div class="outline-text-4" id="text-2-6-3">
|
|
<p>
|
|
Let’s fix \(k = 10^7\ [N/m]\), \(\xi = \frac{c}{2\sqrt{km}} = 0.1\) and see the evolution of \(|w_{iI}(j\omega)|\) with the payload mass \(m\) (Figure <a href="#orgf899c7a">14</a>).
|
|
</p>
|
|
|
|
|
|
<div id="orgf899c7a" class="figure">
|
|
<p><img src="figs/inverse_multiplicative_uncertainty_norm_m.png" alt="inverse_multiplicative_uncertainty_norm_m.png" />
|
|
</p>
|
|
<p><span class="figure-number">Figure 14: </span>Evolution of the norm of the uncertainty weight \(|w_{iI}(j\omega)|\) as a function of the payload mass \(m\) (<a href="./figs/inverse_multiplicative_uncertainty_norm_m.png">png</a>, <a href="./figs/inverse_multiplicative_uncertainty_norm_m.pdf">pdf</a>)</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="outline-container-org9c46c2a" class="outline-3">
|
|
<h3 id="org9c46c2a"><span class="section-number-3">2.7</span> Conclusion</h3>
|
|
<div class="outline-text-3" id="text-2-7">
|
|
<p>
|
|
If the goal is to have an acceptable (\(<10\%\)) uncertainty on the plant until the highest frequency, two design choice for the isolation platform are possible:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>a very soft isolation platform \(\omega_0 \ll \omega_0^\prime\)</li>
|
|
<li>a very stiff isolation platform \(\omega_0 \gg \omega_0^\prime\)</li>
|
|
</ul>
|
|
|
|
<p>
|
|
If a very soft isolation platform is used, the uncertainty due to the support’s compliance is filtered out and never reaches problematic values.
|
|
</p>
|
|
|
|
<p>
|
|
If a very stiff isolation platform is used, the uncertainty will be high around \(\omega_0^\prime\) and may reach unacceptable value.
|
|
It will then be high around \(\omega_0\) and probably be higher than one.
|
|
Thus, if a stiff isolation platform is used, the recommendation is to have the largest possible resonance frequency, as the control bandwidth will be limited by the first resonance of the isolation platform (if not already limited by the resonance of the support).
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="postamble" class="status">
|
|
<p class="author">Author: Dehaeze Thomas</p>
|
|
<p class="date">Created: 2020-03-25 mer. 19:20</p>
|
|
</div>
|
|
</body>
|
|
</html>
|