Publish html

This commit is contained in:
Thomas Dehaeze 2020-03-26 17:25:43 +01:00
parent de8ba392ed
commit 8c6768f372
19 changed files with 1712 additions and 332 deletions

View File

@ -4,7 +4,7 @@
"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-20 ven. 18:52 -->
<!-- 2020-03-26 jeu. 17:25 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Control of the Nano-Active-Stabilization-System</title>
@ -202,28 +202,50 @@
<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
/*
@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;
}
/*]]>*///-->
// @license-end
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 = {
@ -248,33 +270,32 @@
<div id="text-table-of-contents">
<ul>
<li><a href="#org15699e9">1. Control Configuration - Introduction</a></li>
<li><a href="#orgfb6ef96">2. Tracking Control - Basic Architectures</a>
<li><a href="#org2be3166">2. Tracking Control in the Frame of the Nano-Hexapod - Basic Architectures</a>
<ul>
<li><a href="#org970ab39">2.1. Control in the frame of the Legs</a></li>
<li><a href="#org82193fb">2.2. Control in the Cartesian frame</a></li>
</ul>
</li>
<li><a href="#orgbfd345b">3. Active Damping Architecture - Collocated Control</a>
<li><a href="#org7d7b7f4">3. Active Damping Architecture - Collocated Control (link)</a>
<ul>
<li><a href="#org3546873">3.1. Integral Force Feedback</a></li>
<li><a href="#org722b371">3.2. Direct Relative Velocity Feedback</a></li>
</ul>
</li>
<li><a href="#orgaee8981">4. HAC-LAC Architectures</a>
<li><a href="#orgca70c79">4. HAC-LAC Architectures (link)</a>
<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="#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>
</ul>
</li>
<li><a href="#org1b20de0">5. Cascade Architectures</a>
<li><a href="#orgab73896">5. Cascade Architectures (link)</a>
<ul>
<li><a href="#org3e5154f">5.1. Cascade Control with HAC-LAC Inner Loop and Primary Controller in the task space</a></li>
<li><a href="#org4353aca">5.2. Cascade Control with HAC-LAC Inner Loop and Primary Controller in the joint space</a></li>
</ul>
</li>
<li><a href="#org49649c2">6. Sensor Fusion Architectures</a></li>
<li><a href="#org8b94438">7. \(\mathcal{H}_\infty\) Architectures</a></li>
<li><a href="#org7311546">8. Force Control</a></li>
<li><a href="#org4ac6d11">6. Force Control (link)</a></li>
</ul>
</div>
</div>
@ -367,8 +388,8 @@ The use of decentralized controllers is proposed in Section <a href="#orga038762
</div>
</div>
<div id="outline-container-orgfb6ef96" class="outline-2">
<h2 id="orgfb6ef96"><span class="section-number-2">2</span> Tracking Control - Basic Architectures</h2>
<div id="outline-container-org2be3166" class="outline-2">
<h2 id="org2be3166"><span class="section-number-2">2</span> Tracking Control in the Frame of the Nano-Hexapod - Basic Architectures</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org251e3c9"></a>
@ -435,8 +456,8 @@ These forces are then converted to forces applied in each of the nano-hexapod&rs
</div>
</div>
<div id="outline-container-orgbfd345b" class="outline-2">
<h2 id="orgbfd345b"><span class="section-number-2">3</span> Active Damping Architecture - Collocated Control</h2>
<div id="outline-container-org7d7b7f4" class="outline-2">
<h2 id="org7d7b7f4"><span class="section-number-2">3</span> Active Damping Architecture - Collocated Control (<a href="control_active_damping.html">link</a>)</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="org1b3cc21"></a>
@ -458,6 +479,10 @@ Two very well known active damping techniques are <b>Integral Force Feedback</b>
<p>
These two active damping techniques are collocated control techniques.
</p>
<p>
The active damping techniques are studied in <a href="control_active_damping.html">this</a> document.
</p>
</div>
<div id="outline-container-org3546873" class="outline-3">
<h3 id="org3546873"><span class="section-number-3">3.1</span> Integral Force Feedback</h3>
@ -525,8 +550,8 @@ Each diagonal element consists of:
</div>
</div>
<div id="outline-container-orgaee8981" class="outline-2">
<h2 id="orgaee8981"><span class="section-number-2">4</span> HAC-LAC Architectures</h2>
<div id="outline-container-orgca70c79" class="outline-2">
<h2 id="orgca70c79"><span class="section-number-2">4</span> HAC-LAC Architectures (<a href="control_hac_lac.html">link</a>)</h2>
<div class="outline-text-2" id="text-4">
<p>
<a id="org31fa800"></a>
@ -594,22 +619,33 @@ Usually, the Low Authority Controller is first design, and then the High Authori
</div>
</div>
</div>
<div id="outline-container-org6054c1a" 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>
<div class="outline-text-3" id="text-4-3">
<div class="figure">
<p><img src="figs/control_architecture_hac_iff_pos_X.png" alt="control_architecture_hac_iff_pos_X.png" />
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org1b20de0" class="outline-2">
<h2 id="org1b20de0"><span class="section-number-2">5</span> Cascade Architectures</h2>
<div id="outline-container-orgab73896" class="outline-2">
<h2 id="orgab73896"><span class="section-number-2">5</span> Cascade Architectures (<a href="control_cascade.html">link</a>)</h2>
<div class="outline-text-2" id="text-5">
<p>
<a id="orga038762"></a>
</p>
<p>
The principle of Cascade control is shown in Figure <a href="#org03ef231">11</a> and explained as follow:
The principle of Cascade control is shown in Figure <a href="#org03ef231">12</a> and explained as follow:
</p>
<blockquote>
<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.
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">11</a>.
Cascade control is implemented by <b>nesting</b> the control loops, as shown in Figure <a href="#org03ef231">12</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. &#x2013; <a class='org-ref-reference' href="#taghirad13_paral">taghirad13_paral</a>
</p>
</blockquote>
@ -618,7 +654,7 @@ The output control loop is called the <b>primary loop</b>, while the inner loop
<div id="org03ef231" class="figure">
<p><img src="figs/control_architecture_cascade_control.png" alt="control_architecture_cascade_control.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Cascade Control Architecture</p>
<p><span class="figure-number">Figure 12: </span>Cascade Control Architecture</p>
</div>
<p>
@ -643,7 +679,7 @@ The inner loop can be composed of the system controlled with the HAC-LAC topolog
<div id="orgff7dfc6" class="figure">
<p><img src="figs/control_architecture_cascade_L.png" alt="control_architecture_cascade_L.png" />
</p>
<p><span class="figure-number">Figure 12: </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 13: </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>
@ -655,34 +691,16 @@ The inner loop can be composed of the system controlled with the HAC-LAC topolog
<div id="org4bc4c4c" class="figure">
<p><img src="figs/control_architecture_cascade_X.png" alt="control_architecture_cascade_X.png" />
</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 Cartesian Frame</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>
</div>
</div>
</div>
</div>
<div id="outline-container-org49649c2" class="outline-2">
<h2 id="org49649c2"><span class="section-number-2">6</span> Sensor Fusion Architectures</h2>
<div id="outline-container-org4ac6d11" class="outline-2">
<h2 id="org4ac6d11"><span class="section-number-2">6</span> Force Control (<a href="control_force.html">link</a>)</h2>
<div class="outline-text-2" id="text-6">
<p>
<a id="org6e0650a"></a>
</p>
</div>
</div>
<div id="outline-container-org8b94438" class="outline-2">
<h2 id="org8b94438"><span class="section-number-2">7</span> \(\mathcal{H}_\infty\) Architectures</h2>
<div class="outline-text-2" id="text-7">
<p>
<a id="org0440352"></a>
</p>
</div>
</div>
<div id="outline-container-org7311546" class="outline-2">
<h2 id="org7311546"><span class="section-number-2">8</span> Force Control</h2>
<div class="outline-text-2" id="text-8">
<p>
Signals:
</p>
<ul class="org-ul">
@ -698,6 +716,7 @@ Signals:
</div>
</div>
</div>
<p>
<h1 class='org-ref-bib-h1'>Bibliography</h1>
@ -709,7 +728,7 @@ Signals:
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-03-20 ven. 18:52</p>
<p class="date">Created: 2020-03-26 jeu. 17:25</p>
</div>
</body>
</html>

View File

@ -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"?>
<!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-17 mar. 17:31 -->
<!-- 2020-03-26 jeu. 17:25 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Active Damping applied on the Simscape Model</title>
@ -203,28 +202,50 @@
<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
/*
@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;
}
/*]]>*///-->
// @license-end
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 = {
@ -252,17 +273,17 @@
<ul>
<li><a href="#orgb9bb91c">1.1. Identification of the dynamics for Active Damping</a>
<ul>
<li><a href="#org0f0da06">1.1.1. Identification</a></li>
<li><a href="#org9be7a0a">1.1.1. Identification</a></li>
<li><a href="#org821239d">1.1.2. Obtained Plants for Active Damping</a></li>
</ul>
</li>
<li><a href="#org21a2e91">1.2. Identification of the dynamics for High Authority Control</a>
<ul>
<li><a href="#org9be7a0a">1.2.1. Identification</a></li>
<li><a href="#orgae8b5f6">1.2.1. Identification</a></li>
<li><a href="#orgff85811">1.2.2. Obtained Plants</a></li>
</ul>
</li>
<li><a href="#org81c0932">1.3. Tomography Experiment</a>
<li><a href="#orgd249fa7">1.3. Tomography Experiment</a>
<ul>
<li><a href="#orgd5305ce">1.3.1. Simulation</a></li>
<li><a href="#orgd64a4bc">1.3.2. Results</a></li>
@ -282,55 +303,55 @@
</li>
<li><a href="#org47c5593">2.4. Variation of the Tilt Angle</a></li>
<li><a href="#org047e39c">2.5. Scans of the Translation Stage</a></li>
<li><a href="#orgcc847b4">2.6. Conclusion</a></li>
<li><a href="#orga3a88c5">2.6. Conclusion</a></li>
</ul>
</li>
<li><a href="#org11ab68f">3. Integral Force Feedback</a>
<ul>
<li><a href="#orgc33df7f">3.1. Control Design</a>
<li><a href="#org7469e89">3.1. Control Design</a>
<ul>
<li><a href="#orgb37aa8c">3.1.1. Plant</a></li>
<li><a href="#orgf48079a">3.1.2. Control Design</a></li>
<li><a href="#orgbe1ed5f">3.1.3. Diagonal Controller</a></li>
<li><a href="#org50113d6">3.1.1. Plant</a></li>
<li><a href="#org0279170">3.1.2. Control Design</a></li>
<li><a href="#orge6bfce6">3.1.3. Diagonal Controller</a></li>
</ul>
</li>
<li><a href="#org22b777e">3.2. Tomography Experiment</a>
<li><a href="#org93e3515">3.2. Tomography Experiment</a>
<ul>
<li><a href="#org132e692">3.2.1. Simulation with IFF Controller</a></li>
<li><a href="#orgea4037e">3.2.2. Compare with Undamped system</a></li>
<li><a href="#orge17626d">3.2.2. Compare with Undamped system</a></li>
</ul>
</li>
<li><a href="#org59bf532">3.3. Conclusion</a></li>
<li><a href="#org6bfc3c8">3.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org13393f4">4. Direct Velocity Feedback</a>
<ul>
<li><a href="#org7ffae11">4.1. Control Design</a>
<li><a href="#org6ab2a22">4.1. Control Design</a>
<ul>
<li><a href="#orgf0a922a">4.1.1. Plant</a></li>
<li><a href="#orge6b7551">4.1.2. Control Design</a></li>
<li><a href="#org8d3cc5b">4.1.3. Diagonal Controller</a></li>
<li><a href="#orged52a69">4.1.1. Plant</a></li>
<li><a href="#org44b5b14">4.1.2. Control Design</a></li>
<li><a href="#orgfb28f7d">4.1.3. Diagonal Controller</a></li>
</ul>
</li>
<li><a href="#orgd249fa7">4.2. Tomography Experiment</a>
<li><a href="#orgdc93329">4.2. Tomography Experiment</a>
<ul>
<li><a href="#orgb9a85e7">4.2.1. Initialize the Simulation</a></li>
<li><a href="#orge17626d">4.2.2. Compare with Undamped system</a></li>
<li><a href="#orgaf91898">4.2.1. Initialize the Simulation</a></li>
<li><a href="#orge68c2e6">4.2.2. Compare with Undamped system</a></li>
</ul>
</li>
<li><a href="#org70b25db">4.3. Conclusion</a></li>
<li><a href="#orgdd6b994">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org8f2508f">5. Inertial Control</a>
<ul>
<li><a href="#org0279170">5.1. Control Design</a>
<li><a href="#org78934a1">5.1. Control Design</a>
<ul>
<li><a href="#org50113d6">5.1.1. Plant</a></li>
<li><a href="#orgbb314af">5.1.2. Control Design</a></li>
<li><a href="#orge6bfce6">5.1.3. Diagonal Controller</a></li>
<li><a href="#orga97b3aa">5.1.1. Plant</a></li>
<li><a href="#org92b0a5f">5.1.2. Control Design</a></li>
<li><a href="#org9e08e48">5.1.3. Diagonal Controller</a></li>
</ul>
</li>
<li><a href="#orga3a88c5">5.2. Conclusion</a></li>
<li><a href="#org054aff8">5.2. Conclusion</a></li>
</ul>
</li>
<li><a href="#org3557ae9">6. Comparison</a>
@ -345,16 +366,16 @@
<ul>
<li><a href="#org8642cf5">7.1. prepareLinearizeIdentification</a>
<ul>
<li><a href="#org87c7f1d">Function Description</a></li>
<li><a href="#orga92724f">Optional Parameters</a></li>
<li><a href="#orgd2983c1">Initialize the Simulation</a></li>
<li><a href="#org6a968ef">Function Description</a></li>
<li><a href="#orgc14eed3">Optional Parameters</a></li>
<li><a href="#orgc7a07c5">Initialize the Simulation</a></li>
</ul>
</li>
<li><a href="#orgeb73896">7.2. prepareTomographyExperiment</a>
<ul>
<li><a href="#org6a968ef">Function Description</a></li>
<li><a href="#orgc14eed3">Optional Parameters</a></li>
<li><a href="#orgaf91898">Initialize the Simulation</a></li>
<li><a href="#org34e8f09">Function Description</a></li>
<li><a href="#org82d8c08">Optional Parameters</a></li>
<li><a href="#org2ece687">Initialize the Simulation</a></li>
</ul>
</li>
</ul>
@ -426,8 +447,8 @@ After that, a tomography experiment is simulation without any active damping tec
<h3 id="orgb9bb91c"><span class="section-number-3">1.1</span> Identification of the dynamics for Active Damping</h3>
<div class="outline-text-3" id="text-1-1">
</div>
<div id="outline-container-org0f0da06" class="outline-4">
<h4 id="org0f0da06"><span class="section-number-4">1.1.1</span> Identification</h4>
<div id="outline-container-org9be7a0a" class="outline-4">
<h4 id="org9be7a0a"><span class="section-number-4">1.1.1</span> Identification</h4>
<div class="outline-text-4" id="text-1-1-1">
<p>
We initialize all the stages with the default parameters.
@ -520,8 +541,8 @@ And we save them for further analysis.
<h3 id="org21a2e91"><span class="section-number-3">1.2</span> Identification of the dynamics for High Authority Control</h3>
<div class="outline-text-3" id="text-1-2">
</div>
<div id="outline-container-org9be7a0a" class="outline-4">
<h4 id="org9be7a0a"><span class="section-number-4">1.2.1</span> Identification</h4>
<div id="outline-container-orgae8b5f6" class="outline-4">
<h4 id="orgae8b5f6"><span class="section-number-4">1.2.1</span> Identification</h4>
<div class="outline-text-4" id="text-1-2-1">
<p>
We initialize all the stages with the default parameters.
@ -590,8 +611,8 @@ And we save them for further analysis.
</div>
</div>
<div id="outline-container-org81c0932" class="outline-3">
<h3 id="org81c0932"><span class="section-number-3">1.3</span> Tomography Experiment</h3>
<div id="outline-container-orgd249fa7" class="outline-3">
<h3 id="orgd249fa7"><span class="section-number-3">1.3</span> Tomography Experiment</h3>
<div class="outline-text-3" id="text-1-3">
</div>
<div id="outline-container-orgd5305ce" class="outline-4">
@ -979,8 +1000,8 @@ We identify the dynamics at different positions (times) when scanning with the T
</div>
</div>
<div id="outline-container-orgcc847b4" class="outline-3">
<h3 id="orgcc847b4"><span class="section-number-3">2.6</span> Conclusion</h3>
<div id="outline-container-orga3a88c5" class="outline-3">
<h3 id="orga3a88c5"><span class="section-number-3">2.6</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-6">
<table id="orgbd1a9f9" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> Conclusion on the variability of the system dynamics for active damping</caption>
@ -1071,12 +1092,12 @@ The control architecture is represented in figure <a href="#org3a1dbf1">29</a> w
</div>
</div>
<div id="outline-container-orgc33df7f" class="outline-3">
<h3 id="orgc33df7f"><span class="section-number-3">3.1</span> Control Design</h3>
<div id="outline-container-org7469e89" class="outline-3">
<h3 id="org7469e89"><span class="section-number-3">3.1</span> Control Design</h3>
<div class="outline-text-3" id="text-3-1">
</div>
<div id="outline-container-orgb37aa8c" class="outline-4">
<h4 id="orgb37aa8c"><span class="section-number-4">3.1.1</span> Plant</h4>
<div id="outline-container-org50113d6" class="outline-4">
<h4 id="org50113d6"><span class="section-number-4">3.1.1</span> Plant</h4>
<div class="outline-text-4" id="text-3-1-1">
<p>
Let&rsquo;s load the previously identified undamped plant:
@ -1100,8 +1121,8 @@ Let&rsquo;s look at the transfer function from actuator forces in the nano-hexap
</div>
</div>
<div id="outline-container-orgf48079a" class="outline-4">
<h4 id="orgf48079a"><span class="section-number-4">3.1.2</span> Control Design</h4>
<div id="outline-container-org0279170" class="outline-4">
<h4 id="org0279170"><span class="section-number-4">3.1.2</span> Control Design</h4>
<div class="outline-text-4" id="text-3-1-2">
<p>
The controller for each pair of actuator/sensor is:
@ -1125,8 +1146,8 @@ The corresponding loop gains are shown in figure <a href="#org1f5c623">31</a>.
</div>
</div>
<div id="outline-container-orgbe1ed5f" class="outline-4">
<h4 id="orgbe1ed5f"><span class="section-number-4">3.1.3</span> Diagonal Controller</h4>
<div id="outline-container-orge6bfce6" class="outline-4">
<h4 id="orge6bfce6"><span class="section-number-4">3.1.3</span> Diagonal Controller</h4>
<div class="outline-text-4" id="text-3-1-3">
<p>
We create the diagonal controller and we add a minus sign as we have a positive
@ -1148,8 +1169,8 @@ We save the controller for further analysis.
</div>
</div>
<div id="outline-container-org22b777e" class="outline-3">
<h3 id="org22b777e"><span class="section-number-3">3.2</span> Tomography Experiment</h3>
<div id="outline-container-org93e3515" class="outline-3">
<h3 id="org93e3515"><span class="section-number-3">3.2</span> Tomography Experiment</h3>
<div class="outline-text-3" id="text-3-2">
</div>
<div id="outline-container-org132e692" class="outline-4">
@ -1201,8 +1222,8 @@ save(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span
</div>
</div>
<div id="outline-container-orgea4037e" class="outline-4">
<h4 id="orgea4037e"><span class="section-number-4">3.2.2</span> Compare with Undamped system</h4>
<div id="outline-container-orge17626d" class="outline-4">
<h4 id="orge17626d"><span class="section-number-4">3.2.2</span> Compare with Undamped system</h4>
<div class="outline-text-4" id="text-3-2-2">
<div id="org7547861" class="figure">
@ -1228,8 +1249,8 @@ save(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span
</div>
</div>
<div id="outline-container-org59bf532" class="outline-3">
<h3 id="org59bf532"><span class="section-number-3">3.3</span> Conclusion</h3>
<div id="outline-container-org6bfc3c8" class="outline-3">
<h3 id="org6bfc3c8"><span class="section-number-3">3.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-3">
<div class="important">
<p>
@ -1264,12 +1285,12 @@ The actuator displacement can be measured with a capacitive sensor for instance.
</p>
</div>
<div id="outline-container-org7ffae11" class="outline-3">
<h3 id="org7ffae11"><span class="section-number-3">4.1</span> Control Design</h3>
<div id="outline-container-org6ab2a22" class="outline-3">
<h3 id="org6ab2a22"><span class="section-number-3">4.1</span> Control Design</h3>
<div class="outline-text-3" id="text-4-1">
</div>
<div id="outline-container-orgf0a922a" class="outline-4">
<h4 id="orgf0a922a"><span class="section-number-4">4.1.1</span> Plant</h4>
<div id="outline-container-orged52a69" class="outline-4">
<h4 id="orged52a69"><span class="section-number-4">4.1.1</span> Plant</h4>
<div class="outline-text-4" id="text-4-1-1">
<p>
Let&rsquo;s load the undamped plant:
@ -1293,8 +1314,8 @@ Let&rsquo;s look at the transfer function from actuator forces in the nano-hexap
</div>
</div>
<div id="outline-container-orge6b7551" class="outline-4">
<h4 id="orge6b7551"><span class="section-number-4">4.1.2</span> Control Design</h4>
<div id="outline-container-org44b5b14" class="outline-4">
<h4 id="org44b5b14"><span class="section-number-4">4.1.2</span> Control Design</h4>
<div class="outline-text-4" id="text-4-1-2">
<p>
The Direct Velocity Feedback is defined below.
@ -1318,8 +1339,8 @@ The obtained loop gains are shown in figure <a href="#org3568457">36</a>.
</div>
</div>
<div id="outline-container-org8d3cc5b" class="outline-4">
<h4 id="org8d3cc5b"><span class="section-number-4">4.1.3</span> Diagonal Controller</h4>
<div id="outline-container-orgfb28f7d" class="outline-4">
<h4 id="orgfb28f7d"><span class="section-number-4">4.1.3</span> Diagonal Controller</h4>
<div class="outline-text-4" id="text-4-1-3">
<p>
We create the diagonal controller and we add a minus sign as we have a positive feedback architecture.
@ -1340,12 +1361,12 @@ We save the controller for further analysis.
</div>
</div>
<div id="outline-container-orgd249fa7" class="outline-3">
<h3 id="orgd249fa7"><span class="section-number-3">4.2</span> Tomography Experiment</h3>
<div id="outline-container-orgdc93329" class="outline-3">
<h3 id="orgdc93329"><span class="section-number-3">4.2</span> Tomography Experiment</h3>
<div class="outline-text-3" id="text-4-2">
</div>
<div id="outline-container-orgb9a85e7" class="outline-4">
<h4 id="orgb9a85e7"><span class="section-number-4">4.2.1</span> Initialize the Simulation</h4>
<div id="outline-container-orgaf91898" class="outline-4">
<h4 id="orgaf91898"><span class="section-number-4">4.2.1</span> Initialize the Simulation</h4>
<div class="outline-text-4" id="text-4-2-1">
<p>
We initialize elements for the tomography experiment.
@ -1393,8 +1414,8 @@ save(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span
</div>
</div>
<div id="outline-container-orge17626d" class="outline-4">
<h4 id="orge17626d"><span class="section-number-4">4.2.2</span> Compare with Undamped system</h4>
<div id="outline-container-orge68c2e6" class="outline-4">
<h4 id="orge68c2e6"><span class="section-number-4">4.2.2</span> Compare with Undamped system</h4>
<div class="outline-text-4" id="text-4-2-2">
<div id="orgfe01054" class="figure">
@ -1420,8 +1441,8 @@ save(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span
</div>
</div>
<div id="outline-container-org70b25db" class="outline-3">
<h3 id="org70b25db"><span class="section-number-3">4.3</span> Conclusion</h3>
<div id="outline-container-orgdd6b994" class="outline-3">
<h3 id="orgdd6b994"><span class="section-number-3">4.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-3">
<div class="important">
<p>
@ -1453,12 +1474,12 @@ In Inertial Control, a feedback is applied between the measured <b>absolute</b>
</p>
</div>
<div id="outline-container-org0279170" class="outline-3">
<h3 id="org0279170"><span class="section-number-3">5.1</span> Control Design</h3>
<div id="outline-container-org78934a1" class="outline-3">
<h3 id="org78934a1"><span class="section-number-3">5.1</span> Control Design</h3>
<div class="outline-text-3" id="text-5-1">
</div>
<div id="outline-container-org50113d6" class="outline-4">
<h4 id="org50113d6"><span class="section-number-4">5.1.1</span> Plant</h4>
<div id="outline-container-orga97b3aa" class="outline-4">
<h4 id="orga97b3aa"><span class="section-number-4">5.1.1</span> Plant</h4>
<div class="outline-text-4" id="text-5-1-1">
<p>
Let&rsquo;s load the undamped plant:
@ -1482,8 +1503,8 @@ Let&rsquo;s look at the transfer function from actuator forces in the nano-hexap
</div>
</div>
<div id="outline-container-orgbb314af" class="outline-4">
<h4 id="orgbb314af"><span class="section-number-4">5.1.2</span> Control Design</h4>
<div id="outline-container-org92b0a5f" class="outline-4">
<h4 id="org92b0a5f"><span class="section-number-4">5.1.2</span> Control Design</h4>
<div class="outline-text-4" id="text-5-1-2">
<p>
The controller is defined below and the obtained loop gain is shown in figure <a href="#orga2f6fdb">41</a>.
@ -1503,8 +1524,8 @@ The controller is defined below and the obtained loop gain is shown in figure <a
</div>
</div>
<div id="outline-container-orge6bfce6" class="outline-4">
<h4 id="orge6bfce6"><span class="section-number-4">5.1.3</span> Diagonal Controller</h4>
<div id="outline-container-org9e08e48" class="outline-4">
<h4 id="org9e08e48"><span class="section-number-4">5.1.3</span> Diagonal Controller</h4>
<div class="outline-text-4" id="text-5-1-3">
<p>
We create the diagonal controller and we add a minus sign as we have a positive feedback architecture.
@ -1525,8 +1546,8 @@ We save the controller for further analysis.
</div>
</div>
<div id="outline-container-orga3a88c5" class="outline-3">
<h3 id="orga3a88c5"><span class="section-number-3">5.2</span> Conclusion</h3>
<div id="outline-container-org054aff8" class="outline-3">
<h3 id="org054aff8"><span class="section-number-3">5.2</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-2">
<div class="important">
<p>
@ -1702,9 +1723,9 @@ This Matlab function is accessible <a href="src/prepareLinearizeIdentification.m
</p>
</div>
<div id="outline-container-org87c7f1d" class="outline-4">
<h4 id="org87c7f1d">Function Description</h4>
<div class="outline-text-4" id="text-org87c7f1d">
<div id="outline-container-org6a968ef" class="outline-4">
<h4 id="org6a968ef">Function Description</h4>
<div class="outline-text-4" id="text-org6a968ef">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[]</span> = <span class="org-function-name">prepareLinearizeIdentification</span>(<span class="org-variable-name">args</span>)
</pre>
@ -1712,9 +1733,9 @@ This Matlab function is accessible <a href="src/prepareLinearizeIdentification.m
</div>
</div>
<div id="outline-container-orga92724f" class="outline-4">
<h4 id="orga92724f">Optional Parameters</h4>
<div class="outline-text-4" id="text-orga92724f">
<div id="outline-container-orgc14eed3" class="outline-4">
<h4 id="orgc14eed3">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc14eed3">
<div class="org-src-container">
<pre class="src src-matlab">arguments
args.nass_actuator char {mustBeMember(args.nass_actuator,{<span class="org-string">'piezo'</span>, <span class="org-string">'lorentz'</span>})} = <span class="org-string">'piezo'</span>
@ -1725,9 +1746,9 @@ This Matlab function is accessible <a href="src/prepareLinearizeIdentification.m
</div>
</div>
<div id="outline-container-orgd2983c1" class="outline-4">
<h4 id="orgd2983c1">Initialize the Simulation</h4>
<div class="outline-text-4" id="text-orgd2983c1">
<div id="outline-container-orgc7a07c5" class="outline-4">
<h4 id="orgc7a07c5">Initialize the Simulation</h4>
<div class="outline-text-4" id="text-orgc7a07c5">
<p>
We initialize all the stages with the default parameters.
</p>
@ -1800,9 +1821,9 @@ This Matlab function is accessible <a href="src/prepareTomographyExperiment.m">h
</p>
</div>
<div id="outline-container-org6a968ef" class="outline-4">
<h4 id="org6a968ef">Function Description</h4>
<div class="outline-text-4" id="text-org6a968ef">
<div id="outline-container-org34e8f09" class="outline-4">
<h4 id="org34e8f09">Function Description</h4>
<div class="outline-text-4" id="text-org34e8f09">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[]</span> = <span class="org-function-name">prepareTomographyExperiment</span>(<span class="org-variable-name">args</span>)
</pre>
@ -1810,9 +1831,9 @@ This Matlab function is accessible <a href="src/prepareTomographyExperiment.m">h
</div>
</div>
<div id="outline-container-orgc14eed3" class="outline-4">
<h4 id="orgc14eed3">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc14eed3">
<div id="outline-container-org82d8c08" class="outline-4">
<h4 id="org82d8c08">Optional Parameters</h4>
<div class="outline-text-4" id="text-org82d8c08">
<div class="org-src-container">
<pre class="src src-matlab">arguments
args.nass_actuator char {mustBeMember(args.nass_actuator,{<span class="org-string">'piezo'</span>, <span class="org-string">'lorentz'</span>})} = <span class="org-string">'piezo'</span>
@ -1824,9 +1845,9 @@ This Matlab function is accessible <a href="src/prepareTomographyExperiment.m">h
</div>
</div>
<div id="outline-container-orgaf91898" class="outline-4">
<h4 id="orgaf91898">Initialize the Simulation</h4>
<div class="outline-text-4" id="text-orgaf91898">
<div id="outline-container-org2ece687" class="outline-4">
<h4 id="org2ece687">Initialize the Simulation</h4>
<div class="outline-text-4" id="text-org2ece687">
<p>
We initialize all the stages with the default parameters.
</p>
@ -1894,7 +1915,7 @@ We log the signals.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-03-17 mar. 17:31</p>
<p class="date">Created: 2020-03-26 jeu. 17:25</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"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-20 ven. 16:35 -->
<!-- 2020-03-26 jeu. 17:25 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Control in the Frame of the Legs applied on the Simscape Model</title>
@ -202,28 +202,50 @@
<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
/*
@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;
}
/*]]>*///-->
// @license-end
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 = {
@ -249,26 +271,26 @@
<ul>
<li><a href="#org1f22cdb">1. Decentralized Control</a>
<ul>
<li><a href="#orgf7b3c37">1.1. Control Schematic</a></li>
<li><a href="#org15ed002">1.2. Initialize the Simscape Model</a></li>
<li><a href="#orgcd58f5e">1.1. Control Schematic</a></li>
<li><a href="#org4318f13">1.2. Initialize the Simscape Model</a></li>
<li><a href="#org42afc36">1.3. Identification of the plant</a></li>
<li><a href="#org871560e">1.4. Plant Analysis</a></li>
<li><a href="#orgb0aa319">1.5. Controller Design</a></li>
<li><a href="#org564e3b0">1.6. Simulation</a></li>
<li><a href="#org0f36edb">1.7. Results</a></li>
<li><a href="#orgdf3c9aa">1.5. Controller Design</a></li>
<li><a href="#org753f2c4">1.6. Simulation</a></li>
<li><a href="#orgd8c14ee">1.7. Results</a></li>
</ul>
</li>
<li><a href="#orgfa4be92">2. HAC-LAC (IFF) Decentralized Control</a>
<ul>
<li><a href="#orgcd58f5e">2.1. Control Schematic</a></li>
<li><a href="#org4318f13">2.2. Initialize the Simscape Model</a></li>
<li><a href="#org744f1a3">2.1. Control Schematic</a></li>
<li><a href="#org0e6472e">2.2. Initialize the Simscape Model</a></li>
<li><a href="#org0903106">2.3. Initialization</a></li>
<li><a href="#orge739f61">2.4. Identification for IFF</a></li>
<li><a href="#org08b6a99">2.5. Integral Force Feedback Controller</a></li>
<li><a href="#org06b5c75">2.6. Identification of the damped plant</a></li>
<li><a href="#orgdf3c9aa">2.7. Controller Design</a></li>
<li><a href="#org753f2c4">2.8. Simulation</a></li>
<li><a href="#orgd8c14ee">2.9. Results</a></li>
<li><a href="#orgf258d8b">2.7. Controller Design</a></li>
<li><a href="#org5f74b9e">2.8. Simulation</a></li>
<li><a href="#org42ecd75">2.9. Results</a></li>
</ul>
</li>
<li><a href="#org21a9294">3. Conclusion</a></li>
@ -284,11 +306,11 @@ In this document, we apply some decentralized control to the NASS and see what l
<h2 id="org1f22cdb"><span class="section-number-2">1</span> Decentralized Control</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-orgf7b3c37" class="outline-3">
<h3 id="orgf7b3c37"><span class="section-number-3">1.1</span> Control Schematic</h3>
<div id="outline-container-orgcd58f5e" class="outline-3">
<h3 id="orgcd58f5e"><span class="section-number-3">1.1</span> Control Schematic</h3>
<div class="outline-text-3" id="text-1-1">
<p>
The control architecture is shown in Figure <a href="#org7503773">1</a>.
The control architecture is shown in Figure <a href="#org5b991df">1</a>.
</p>
<p>
@ -304,7 +326,7 @@ The signals are:
</ul>
<div id="org7503773" class="figure">
<div id="org5b991df" class="figure">
<p><img src="figs/decentralized_reference_tracking_L.png" alt="decentralized_reference_tracking_L.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Decentralized control for reference tracking</p>
@ -312,8 +334,8 @@ The signals are:
</div>
</div>
<div id="outline-container-org15ed002" class="outline-3">
<h3 id="org15ed002"><span class="section-number-3">1.2</span> Initialize the Simscape Model</h3>
<div id="outline-container-org4318f13" class="outline-3">
<h3 id="org4318f13"><span class="section-number-3">1.2</span> Initialize the Simscape Model</h3>
<div class="outline-text-3" id="text-1-2">
<p>
We initialize all the stages with the default parameters.
@ -427,8 +449,8 @@ We can see that:
</div>
</div>
<div id="outline-container-orgb0aa319" class="outline-3">
<h3 id="orgb0aa319"><span class="section-number-3">1.5</span> Controller Design</h3>
<div id="outline-container-orgdf3c9aa" class="outline-3">
<h3 id="orgdf3c9aa"><span class="section-number-3">1.5</span> Controller Design</h3>
<div class="outline-text-3" id="text-1-5">
<p>
The controller consists of:
@ -474,8 +496,8 @@ We add a minus sign to the controller as it is not included in the Simscape mode
</div>
</div>
<div id="outline-container-org564e3b0" class="outline-3">
<h3 id="org564e3b0"><span class="section-number-3">1.6</span> Simulation</h3>
<div id="outline-container-org753f2c4" class="outline-3">
<h3 id="org753f2c4"><span class="section-number-3">1.6</span> Simulation</h3>
<div class="outline-text-3" id="text-1-6">
<div class="org-src-container">
<pre class="src src-matlab">initializeController(<span class="org-string">'type'</span>, <span class="org-string">'ref-track-L'</span>);
@ -501,8 +523,8 @@ save(<span class="org-string">'./mat/tomo_exp_decentalized.mat'</span>, <span cl
</div>
</div>
<div id="outline-container-org0f36edb" class="outline-3">
<h3 id="org0f36edb"><span class="section-number-3">1.7</span> Results</h3>
<div id="outline-container-orgd8c14ee" class="outline-3">
<h3 id="orgd8c14ee"><span class="section-number-3">1.7</span> Results</h3>
<div class="outline-text-3" id="text-1-7">
<p>
The reference path and the position of the mobile platform are shown in Figure <a href="#org247b3a0">4</a>.
@ -532,11 +554,11 @@ We here add an Active Damping Loop (Integral Force Feedback) prior to using the
</p>
</div>
<div id="outline-container-orgcd58f5e" class="outline-3">
<h3 id="orgcd58f5e"><span class="section-number-3">2.1</span> Control Schematic</h3>
<div id="outline-container-org744f1a3" class="outline-3">
<h3 id="org744f1a3"><span class="section-number-3">2.1</span> Control Schematic</h3>
<div class="outline-text-3" id="text-2-1">
<p>
The control architecture is shown in Figure <a href="#org7503773">1</a>.
The control architecture is shown in Figure <a href="#org5b991df">1</a>.
</p>
<p>
@ -552,7 +574,7 @@ The signals are:
</ul>
<div id="org5b991df" class="figure">
<div id="orgda1b906" class="figure">
<p><img src="figs/decentralized_reference_tracking_L.png" alt="decentralized_reference_tracking_L.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Decentralized control for reference tracking</p>
@ -560,8 +582,8 @@ The signals are:
</div>
</div>
<div id="outline-container-org4318f13" class="outline-3">
<h3 id="org4318f13"><span class="section-number-3">2.2</span> Initialize the Simscape Model</h3>
<div id="outline-container-org0e6472e" class="outline-3">
<h3 id="org0e6472e"><span class="section-number-3">2.2</span> Initialize the Simscape Model</h3>
<div class="outline-text-3" id="text-2-2">
<p>
We initialize all the stages with the default parameters.
@ -697,8 +719,8 @@ Gd.OutputName = {<span class="org-string">'El1'</span>, <span class="org-string"
</div>
</div>
<div id="outline-container-orgdf3c9aa" class="outline-3">
<h3 id="orgdf3c9aa"><span class="section-number-3">2.7</span> Controller Design</h3>
<div id="outline-container-orgf258d8b" class="outline-3">
<h3 id="orgf258d8b"><span class="section-number-3">2.7</span> Controller Design</h3>
<div class="outline-text-3" id="text-2-7">
<div class="org-src-container">
<pre class="src src-matlab">wc = 2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>300;
@ -726,8 +748,8 @@ Kl = diag(1<span class="org-type">./</span>diag(abs(freqresp(Gd, wc)))) <span cl
</div>
<div id="outline-container-org753f2c4" class="outline-3">
<h3 id="org753f2c4"><span class="section-number-3">2.8</span> Simulation</h3>
<div id="outline-container-org5f74b9e" class="outline-3">
<h3 id="org5f74b9e"><span class="section-number-3">2.8</span> Simulation</h3>
<div class="outline-text-3" id="text-2-8">
<div class="org-src-container">
<pre class="src src-matlab">initializeController(<span class="org-string">'type'</span>, <span class="org-string">'ref-track-iff-L'</span>);
@ -753,8 +775,8 @@ save(<span class="org-string">'./mat/tomo_exp_decentalized.mat'</span>, <span cl
</div>
</div>
<div id="outline-container-orgd8c14ee" class="outline-3">
<h3 id="orgd8c14ee"><span class="section-number-3">2.9</span> Results</h3>
<div id="outline-container-org42ecd75" class="outline-3">
<h3 id="org42ecd75"><span class="section-number-3">2.9</span> Results</h3>
</div>
</div>
<div id="outline-container-org21a9294" class="outline-2">
@ -763,7 +785,7 @@ save(<span class="org-string">'./mat/tomo_exp_decentalized.mat'</span>, <span cl
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-03-20 ven. 16:35</p>
<p class="date">Created: 2020-03-26 jeu. 17:25</p>
</div>
</body>
</html>

302
docs/control_force.html Normal file
View File

@ -0,0 +1,302 @@
<?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-03-26 jeu. 17:25 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Force Control applied on the Simscape Model</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">Force Control applied on the Simscape Model</h1>
<p>
Cascade Control where the inner loop goal is to control the total wrench (forces and torques) applied to the upper part of the nano-hexapod.
</p>
<p>
The force will induce an acceleration of the upper part, thus we can consider the new input \(\bm{r}_\mathcal{F}\) as an acceleration input.
</p>
<p>
Ideas:
</p>
<ul class="org-ul">
<li>This can be used as <b>feedforward</b>: we now the wanted 6dof reference path for the sample, thus we can compute the required acceleration and thus the required force. To do so, we need information on the inertia of the sample.</li>
</ul>
<div class="figure">
<p><img src="figs/control_cascade_force_F.png" alt="control_cascade_force_F.png" />
</p>
</div>
<div class="figure">
<p><img src="figs/control_cascade_force_tau.png" alt="control_cascade_force_tau.png" />
</p>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-03-26 jeu. 17:25</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"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-17 mar. 11:22 -->
<!-- 2020-03-26 jeu. 17:25 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Control Requirements</title>
@ -202,28 +202,50 @@
<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
/*
@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;
}
/*]]>*///-->
// @license-end
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 = {
@ -259,13 +281,13 @@
<li><a href="#org19b83b7">2.1. Definition of the values</a></li>
<li><a href="#org0e9811a">2.2. Control using \(d\)</a>
<ul>
<li><a href="#org02a7ab1">2.2.1. Control Architecture</a></li>
<li><a href="#org9828aed">2.2.1. Control Architecture</a></li>
<li><a href="#org5a120e1">2.2.2. Analytical Analysis</a></li>
</ul>
</li>
<li><a href="#orga741e48">2.3. Control using \(F_m\)</a>
<ul>
<li><a href="#org9828aed">2.3.1. Control Architecture</a></li>
<li><a href="#org4c74e08">2.3.1. Control Architecture</a></li>
<li><a href="#orgdd5134e">2.3.2. Pure Integrator</a></li>
<li><a href="#org5011ab0">2.3.3. Low pass filter</a></li>
</ul>
@ -275,7 +297,7 @@
<ul>
<li><a href="#orgfab8395">2.5.1. Analytical analysis</a></li>
<li><a href="#org625e3c2">2.5.2. Control implementation</a></li>
<li><a href="#org8d34d7f">2.5.3. Results</a></li>
<li><a href="#org3db77f5">2.5.3. Results</a></li>
</ul>
</li>
</ul>
@ -290,7 +312,7 @@
<li><a href="#org50054f2">5.4. Generalized Weighted plant</a></li>
<li><a href="#org949ab66">5.5. Synthesis</a></li>
<li><a href="#orgfe970e4">5.6. Loop Gain</a></li>
<li><a href="#org3db77f5">5.7. Results</a></li>
<li><a href="#org5211e8c">5.7. Results</a></li>
<li><a href="#orgb18d7df">5.8. Requirements</a></li>
</ul>
</li>
@ -586,8 +608,8 @@ Gpz = connect(Gn, S, Wsplit, Tw, Tmu, Sw, {<span class="org-string">'Fd'</span>,
<h3 id="org0e9811a"><span class="section-number-3">2.2</span> Control using \(d\)</h3>
<div class="outline-text-3" id="text-2-2">
</div>
<div id="outline-container-org02a7ab1" class="outline-4">
<h4 id="org02a7ab1"><span class="section-number-4">2.2.1</span> Control Architecture</h4>
<div id="outline-container-org9828aed" class="outline-4">
<h4 id="org9828aed"><span class="section-number-4">2.2.1</span> Control Architecture</h4>
<div class="outline-text-4" id="text-2-2-1">
<p>
Let&rsquo;s consider a feedback loop using \(d\) as shown in Figure <a href="#orgb50386a">4</a>.
@ -670,8 +692,8 @@ And \(\epsilon = r - x\):
<h3 id="orga741e48"><span class="section-number-3">2.3</span> Control using \(F_m\)</h3>
<div class="outline-text-3" id="text-2-3">
</div>
<div id="outline-container-org9828aed" class="outline-4">
<h4 id="org9828aed"><span class="section-number-4">2.3.1</span> Control Architecture</h4>
<div id="outline-container-org4c74e08" class="outline-4">
<h4 id="org4c74e08"><span class="section-number-4">2.3.1</span> Control Architecture</h4>
<div class="outline-text-4" id="text-2-3-1">
<p>
Let&rsquo;s consider a feedback loop using \(Fm\) as shown in Figure <a href="#org5012ef2">5</a>.
@ -788,8 +810,8 @@ Instead of a pure integrator, let&rsquo;s use a low pass filter with a cut-off f
<tr>
<td class="org-left">DVF</td>
<td class="org-left">inverse</td>
<td class="org-left">inverse</td>
<td class="org-left">Opposite</td>
<td class="org-left">Opposite</td>
<td class="org-left">Little bit better at low frequencies</td>
</tr>
</tbody>
@ -982,8 +1004,8 @@ Gpz_fb_iff = connect(Gpz_iff, Kpz_iff, R, Sfb, F, {<span class="org-string">'r'<
</div>
</div>
<div id="outline-container-org8d34d7f" class="outline-4">
<h4 id="org8d34d7f"><span class="section-number-4">2.5.3</span> Results</h4>
<div id="outline-container-org3db77f5" class="outline-4">
<h4 id="org3db77f5"><span class="section-number-4">2.5.3</span> Results</h4>
<div class="outline-text-4" id="text-2-5-3">
<div id="org2b4e783" class="figure">
@ -1464,8 +1486,8 @@ Gvc_fb_dvf = connect(Gvc_dvf, <span class="org-type">-</span>Kvc_dvf, R, Sfb, F,
</div>
</div>
<div id="outline-container-org3db77f5" class="outline-3">
<h3 id="org3db77f5"><span class="section-number-3">5.7</span> Results</h3>
<div id="outline-container-org5211e8c" class="outline-3">
<h3 id="org5211e8c"><span class="section-number-3">5.7</span> Results</h3>
</div>
<div id="outline-container-orgb18d7df" class="outline-3">
<h3 id="orgb18d7df"><span class="section-number-3">5.8</span> Requirements</h3>
@ -1506,7 +1528,7 @@ Gvc_fb_dvf = connect(Gvc_dvf, <span class="org-type">-</span>Kvc_dvf, R, Sfb, F,
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-03-17 mar. 11:22</p>
<p class="date">Created: 2020-03-26 jeu. 17:25</p>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 127 KiB

View File

@ -0,0 +1,992 @@
<?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-03-26 jeu. 17:25 -->
<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 payload&rsquo;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 payload&rsquo;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="#orgcc5f0ec">1. Simple Introductory Example</a>
<ul>
<li><a href="#org00d3412">1.1. Equations of motion</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="#orgd0dd88b">1.4. Comparison</a></li>
<li><a href="#org3bef024">1.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org1f8e63e">2. Generalization to arbitrary dynamics</a>
<ul>
<li><a href="#orgc4fa63e">2.1. Introduction</a></li>
<li><a href="#org6264842">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="#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="#orgcc0c290">2.6. Effect of the Isolation platform Stiffness</a></li>
<li><a href="#org5e0366d">2.7. Equivalent Inverse Multiplicative Uncertainty</a></li>
<li><a href="#org1466bd9">2.8. Reduce the Uncertainty on the plant</a>
<ul>
<li><a href="#org4be463f">2.8.1. Effect of the platform&rsquo;s stiffness \(k\)</a></li>
<li><a href="#org4c45fb5">2.8.2. Effect of the platform&rsquo;s damping \(c\)</a></li>
<li><a href="#org9086831">2.8.3. Effect of the platform&rsquo;s mass \(m\)</a></li>
</ul>
</li>
<li><a href="#org1b051ce">2.9. 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) with a <b>payload</b> on top (e.g. the the sample to be positioned).
</p>
<p>
The goal is to study:
</p>
<ul class="org-ul">
<li>how does the dynamics of the payload influence the dynamics of the isolation platform</li>
<li>similarly: how does the uncertainty on the payload&rsquo;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="#org971d11c">1</a>, simple mass-spring-damper systems are chosen to model both the isolation platform and the payload</li>
<li>In section <a href="#org7065358">2</a>, we consider arbitrary payload dynamics with multiplicative input uncertainty to study the unmodelled dynamics of the payload</li>
</ul>
<div id="outline-container-orgcc5f0ec" class="outline-2">
<h2 id="orgcc5f0ec"><span class="section-number-2">1</span> Simple Introductory Example</h2>
<div class="outline-text-2" id="text-1">
<p>
<a id="org971d11c"></a>
</p>
<p>
Let&rsquo;s consider the system shown in Figure <a href="#orgaa77a57">1</a> consisting of:
</p>
<ul class="org-ul">
<li>An <b>isolation platform</b> represented by a mass \(m\), a stiffness \(k\) and a dashpot \(c\) and an actuator \(F\)</li>
<li>A <b>payload</b> represented by a mass \(m^\prime\), a stiffness \(k^\prime\) and a dashpot \(c^\prime\)</li>
</ul>
<p>
The goal is to stabilize \(x\) using \(F\) in spite of uncertainty on the payload mechanical properties.
</p>
<div id="orgaa77a57" class="figure">
<p><img src="figs/2dof_system_stiffness_uncertainty_payload.png" alt="2dof_system_stiffness_uncertainty_payload.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Two degrees-of-freedom system</p>
</div>
</div>
<div id="outline-container-org00d3412" class="outline-3">
<h3 id="org00d3412"><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="#orgaa77a57">1</a>, we obtain:
</p>
\begin{align}
ms^2 x &= F - (cs + k) x + (c^\prime s + k^\prime) (x^\prime - x) \\
m^\prime s^2 x^\prime &= - (c^\prime s + k^\prime) (x^\prime - x)
\end{align}
<p>
After eliminating \(x^\prime\), we obtain:
</p>
\begin{equation}
\label{orge5d69a3}
\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) + m^\prime s^2(c^\prime s + k^\prime)}
\end{equation}
</div>
</div>
<div id="outline-container-org4efccbf" class="outline-3">
<h3 id="org4efccbf"><span class="section-number-3">1.2</span> Initialization of the payload dynamics</h3>
<div class="outline-text-3" id="text-1-2">
<p>
Let the payload have:
</p>
<ul class="org-ul">
<li>a nominal mass of \(m^\prime = 50\ [kg]\)</li>
<li>a nominal stiffness of \(k^\prime = 5 \cdot 10^6\ [N/m]\)</li>
<li>a nominal damping of \(c^\prime = 3 \cdot 10^3\ [N/(m/s)]\)</li>
</ul>
<div class="org-src-container">
<pre class="src src-matlab">mpi = 50;
kpi = 5e6;
cpi = 3e3;
kpi = (2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>50)<span class="org-type">^</span>2<span class="org-type">*</span>mpi;
cpi = 0.2<span class="org-type">*</span>sqrt(kpi<span class="org-type">*</span>mpi);
</pre>
</div>
<p>
Let&rsquo;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">'Range'</span>, [1, 100]);
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 payload 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="#org3c89797">2</a>.
</p>
<p>
One can see that the payload has a resonance frequency of \(\omega_0^\prime = 250\ Hz\).
</p>
<div id="org3c89797" class="figure">
<p><img src="figs/nominal_payload_compliance_dynamics.png" alt="nominal_payload_compliance_dynamics.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Nominal compliance of the payload (<a href="./figs/nominal_payload_compliance_dynamics.png">png</a>, <a href="./figs/nominal_payload_compliance_dynamics.pdf">pdf</a>)</p>
</div>
</div>
</div>
<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>
<div class="outline-text-3" id="text-1-3">
<p>
Let&rsquo;s first fix the mass of the isolation platform:
</p>
<div class="org-src-container">
<pre class="src src-matlab">m = 10;
</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-orgd0dd88b" class="outline-3">
<h3 id="orgd0dd88b"><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="#org1a62889">3</a>.
</p>
<div id="org1a62889" class="figure">
<p><img src="figs/plant_dynamics_uncertainty_payload_variability.png" alt="plant_dynamics_uncertainty_payload_variability.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Obtained plant for the three isolation platforms considered (<a href="./figs/plant_dynamics_uncertainty_payload_variability.png">png</a>, <a href="./figs/plant_dynamics_uncertainty_payload_variability.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org3bef024" class="outline-3">
<h3 id="org3bef024"><span class="section-number-3">1.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-5">
<div class="important">
<p>
The stiff platform dynamics does not seems to depend on the dynamics of the payload.
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org1f8e63e" class="outline-2">
<h2 id="org1f8e63e"><span class="section-number-2">2</span> Generalization to arbitrary dynamics</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org7065358"></a>
</p>
</div>
<div id="outline-container-orgc4fa63e" class="outline-3">
<h3 id="orgc4fa63e"><span class="section-number-3">2.1</span> Introduction</h3>
<div class="outline-text-3" id="text-2-1">
<p>
Let&rsquo;s now consider a general payload described by its <b>impedance</b> \(G^\prime(s) = \frac{x}{F^\prime}\) as shown in Figure <a href="#orgb54b79a">4</a>.
</p>
<div class="note">
<p>
Note here that we use the term <i>impedance</i>, however, the mechanical impedance is usually defined as the ratio of the velocity over the force \(\dot{x}/F^\prime\). We should refer to <i>resistance</i> instead of <i>impedance</i>.
</p>
</div>
<div id="orgb54b79a" class="figure">
<p><img src="figs/general_payload_impedance.png" alt="general_payload_impedance.png" />
</p>
<p><span class="figure-number">Figure 4: </span>General support</p>
</div>
<p>
Now let&rsquo;s consider the system consisting of a mass-spring-system (the isolation platform) supporting the general payload as shown in Figure <a href="#orga07f362">5</a>.
</p>
<div id="orga07f362" class="figure">
<p><img src="figs/general_payload_with_isolator.png" alt="general_payload_with_isolator.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Mass-Spring-Damper (isolation platform) supporting a general payload</p>
</div>
</div>
</div>
<div id="outline-container-org6264842" class="outline-3">
<h3 id="org6264842"><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 - F^\prime \\
F^\prime &= G^\prime(s) x
\end{align}
<p>
And by eliminating \(F^\prime\), we find the plant dynamics \(G(s) = \frac{x}{F}\).
</p>
<div class="important">
\begin{equation}
\label{org8b9a6a7}
\frac{x}{F} = \frac{1}{ms^2 + cs + k + G^\prime(s)}
\end{equation}
</div>
<p>
We can learn few things about the obtained transfer function:
</p>
<ul class="org-ul">
<li>the zeros of \(x/F\) will be the poles of \(G^\prime(s)\).</li>
<li>if the impedance of the payload is small \(|G^\prime(s)| \ll |ms^2 + cs + k|\), then the payload will have small influence on the obtained dynamics</li>
</ul>
</div>
</div>
<div id="outline-container-orge217a33" class="outline-3">
<h3 id="orge217a33"><span class="section-number-3">2.3</span> Impedance \(G^\prime(s)\) of a mass-spring-damper payload</h3>
<div class="outline-text-3" id="text-2-3">
<p>
In order to verify that the formula is correct, let&rsquo;s take the same mass-spring-damper system used in the system shown in Figure <a href="#orgaa77a57">1</a>:
</p>
\begin{align*}
m^\prime s^2 x^\prime &= (x - x^\prime) (c^\prime s + k^\prime) \\
F^\prime &= (x - x^\prime) (c^\prime s + k^\prime)
\end{align*}
<p>
By eliminating \(x^\prime\) of the equations, we obtain:
</p>
<div class="important">
\begin{equation}
\label{orgae0b162}
G^\prime(s) = \frac{F^\prime}{x} = \frac{m^\prime s^2 (c^\prime s + k)}{m^\prime s^2 + c^\prime s + k^\prime}
\end{equation}
<p>
The impedance of a 1dof mass-spring-damper system is described by Eq. \eqref{orgae0b162}.
</p>
</div>
<p>
And we obtain
</p>
\begin{align*}
\frac{x}{F} &= \frac{1}{ms^2 + cs + k + G^\prime(s)} \\
&= \frac{1}{ms^2 + cs + k + \frac{m^\prime s^2 (c^\prime s + k)}{m^\prime s^2 + c^\prime s + k^\prime}} \\
&= \frac{m^\prime s^2 + c^\prime s + k^\prime}{(ms^2 + cs + k) (m^\prime s^2 + c^\prime s + k^\prime) + m^\prime s^2 (c^\prime s + k)}
\end{align*}
<p>
Which is the same transfer function that was obtained in section <a href="#org971d11c">1</a> (Eq. \eqref{orge5d69a3}).
</p>
<p>
The impedance of the mass-spring-damper system is shown in Figure <a href="#org61b9db6">6</a>.
</p>
<ul class="org-ul">
<li>Before the resonance frequency \(\omega_0^\prime\), the impedance follows the mass line</li>
<li>After the resonance, the impedance will follow the stiffness line (depending on the relative values of the stiffness and damping)</li>
<li>At high frequency, it will follow the damping line</li>
</ul>
<div id="org61b9db6" class="figure">
<p><img src="figs/example_impedance_mass_spring_damper.png" alt="example_impedance_mass_spring_damper.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Example of the impedance of a mass-spring-damper system (<a href="./figs/example_impedance_mass_spring_damper.png">png</a>, <a href="./figs/example_impedance_mass_spring_damper.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org0ee44da" class="outline-3">
<h3 id="org0ee44da"><span class="section-number-3">2.4</span> First Analytical analysis</h3>
<div class="outline-text-3" id="text-2-4">
<p>
To summarize, we consider:
</p>
<ul class="org-ul">
<li>an Isolation platform represented by a mass \(m\), a damper \(c\) and a stiffness \(k\).
This system resonate at \(\omega_0 = \sqrt{\frac{k}{m}}\)</li>
<li>A payload represented by a mass \(m^\prime\), a damper \(c^\prime\) and a stiffness \(k^\prime\).
The payload resonate at \(\omega_0^\prime = \sqrt{\frac{k^\prime}{m^\prime}}\)</li>
</ul>
<p>
The &ldquo;impedance&rdquo; of the payload is represented by:
\[ G^\prime(s) = \frac{m^\prime s^2 (c^\prime s + k^\prime)}{m^\prime s^2 + c^\prime s + k^\prime} \]
</p>
<p>
And the plant is:
\[ G(s) = \frac{x}{F} = \frac{1}{ms^2 + cs + k + G^\prime(s)} \]
</p>
<p>
Let&rsquo;s write the asymptotic behavior of \(|G^\prime(j\omega)|\):
</p>
<ul class="org-ul">
<li>\(\lim_{\omega \to 0} |G^\prime(j\omega)| = m^\prime s^2\)</li>
<li>\(|G^\prime(j\omega_0)| = \frac{k^\prime \sqrt{1 + (2\xi^\prime)^2}}{2 \xi^\prime}\)</li>
<li>\(\lim_{\omega \to \infty} |G^\prime(j\omega)| = c^\prime s + k\)</li>
</ul>
<p>
Let&rsquo;s find some conditions in order to have that the dynamics of the payload does not influence to much the dynamics of the plant:
\[ |G^\prime(s)| \ll |ms^2 + cs + k| \]
</p>
<p>
Let&rsquo;s take the case of a <b>stiff payload</b> (\(\omega_0^\prime \gg \omega_0\)).
</p>
<p>
Below \(\omega_0\), the condition becomes:
\[ |G^\prime(s)| \ll k \Leftrightarrow m^\prime \omega_0^2 \ll k \Leftrightarrow m^\prime \ll m \]
The <b>payload mass should be small with respect to the isolation platform mass</b>.
</p>
<p>
Above \(\omega_0\):
\[ |G^\prime(j\omega)| \ll m \omega^2 \]
</p>
<p>
Until \(\omega_0^\prime\), we have \(m^\prime \ll m\) which is the same condition as before.
Above \(\omega_0^\prime\), we obtain \(|jc^\prime \omega + k| \ll m \omega^2\).
</p>
<div class="important">
<p>
When using a soft isolation platform and a stiff payload such that the payload resonate above the first resonance of the isolation platform, the mass of the payload should be small compared to the isolation platform mass in order to not disturb the dynamics of the isolation platform.
</p>
</div>
</div>
</div>
<div id="outline-container-orgfe81c1c" class="outline-3">
<h3 id="orgfe81c1c"><span class="section-number-3">2.5</span> Impedance of the Payload and Dynamical Uncertainty</h3>
<div class="outline-text-3" id="text-2-5">
<p>
We model the payload by a mass-spring-damper model with some uncertainty.
</p>
<p>
Let the payload have:
</p>
<ul class="org-ul">
<li>a nominal mass of \(m^\prime = 50\ [kg]\)</li>
<li>a nominal stiffness of \(k^\prime = 5 \cdot 10^6\ [N/m]\)</li>
<li>a nominal damping of \(c^\prime = 3 \cdot 10^3\ [N/(m/s)]\)</li>
</ul>
<p>
The main resonance of the payload 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 = 10;
c0 = 3e2;
k0 = 5e5;
Gp0 = (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))<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&rsquo;s represent the uncertainty on the impedance of the payload by a multiplicative uncertainty (Figure <a href="#org880bb53">7</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 payload.
</p>
<div id="org880bb53" class="figure">
<p><img src="figs/input_uncertainty_set.png" alt="input_uncertainty_set.png" />
</p>
<p><span class="figure-number">Figure 7: </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 payload&rsquo;s impedance transfer functions is shown in Figure <a href="#orgc40ac91">8</a>.
</p>
<div id="orgc40ac91" class="figure">
<p><img src="figs/payload_impedance_uncertainty.png" alt="payload_impedance_uncertainty.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Uncertainty of the payload&rsquo;s impedance (<a href="./figs/payload_impedance_uncertainty.png">png</a>, <a href="./figs/payload_impedance_uncertainty.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-orgcc0c290" class="outline-3">
<h3 id="orgcc0c290"><span class="section-number-3">2.6</span> Effect of the Isolation platform Stiffness</h3>
<div class="outline-text-3" id="text-2-6">
<p>
Let&rsquo;s first fix the mass of the isolation platform:
</p>
<div class="org-src-container">
<pre class="src src-matlab">m = 20;
</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> 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> 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> Gp);
</pre>
</div>
<p>
The obtained transfer functions \(x/F\) for each of the three platforms are shown in Figure <a href="#org864ba65">9</a>.
</p>
<div id="org864ba65" class="figure">
<p><img src="figs/plant_uncertainty_impedance_payload.png" alt="plant_uncertainty_impedance_payload.png" />
</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>
</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&rsquo;s express the uncertainty of the plant \(x/F\) as a function of the parameters as well as of the uncertainty on the platform&rsquo;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 id="outline-container-org1466bd9" class="outline-3">
<h3 id="org1466bd9"><span class="section-number-3">2.8</span> Reduce the Uncertainty on the plant</h3>
<div class="outline-text-3" id="text-2-8">
<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{G_0^\prime(s) w_I(s)}{ms^2 + cs + k + G_0^\prime(s)} \]
</p>
<p>
Let&rsquo;s study separately the effect of the platform&rsquo;s mass, damping and stiffness.
</p>
</div>
<div id="outline-container-org4be463f" class="outline-4">
<h4 id="org4be463f"><span class="section-number-4">2.8.1</span> Effect of the platform&rsquo;s stiffness \(k\)</h4>
<div class="outline-text-4" id="text-2-8-1">
<p>
Let&rsquo;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="#org5456162">11</a>
</p>
<div id="org5456162" class="figure">
<p><img src="figs/inverse_multiplicative_uncertainty_payload_few_k.png" alt="inverse_multiplicative_uncertainty_payload_few_k.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Norm of the inverse multiplicative uncertainty weight for various values of the the isolation platform&rsquo;s stiffness (<a href="./figs/inverse_multiplicative_uncertainty_payload_few_k.png">png</a>, <a href="./figs/inverse_multiplicative_uncertainty_payload_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="#org362ed76">12</a>.
</p>
<div id="org362ed76" class="figure">
<p><img src="figs/inverse_multiplicative_payload_uncertainty_norm_k.png" alt="inverse_multiplicative_payload_uncertainty_norm_k.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 platform&rsquo;s stiffness \(k\) (<a href="./figs/inverse_multiplicative_payload_uncertainty_norm_k.png">png</a>, <a href="./figs/inverse_multiplicative_payload_uncertainty_norm_k.pdf">pdf</a>)</p>
</div>
<p>
Instead of plotting as a function of the platform&rsquo;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="#org27fe0c1">13</a>.
In that case, we can see that with a platform&rsquo;s resonance frequency 10 times higher than the resonance of the payload, we get less than \(1\%\) uncertainty until some fairly high frequency.
</p>
<div id="org27fe0c1" class="figure">
<p><img src="figs/inverse_multiplicative_payload_uncertainty_k_normalized_frequency.png" alt="inverse_multiplicative_payload_uncertainty_k_normalized_frequency.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 frequency ratio \(\omega_0/\omega_0^\prime\) (<a href="./figs/inverse_multiplicative_payload_uncertainty_k_normalized_frequency.png">png</a>, <a href="./figs/inverse_multiplicative_payload_uncertainty_k_normalized_frequency.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org4c45fb5" class="outline-4">
<h4 id="org4c45fb5"><span class="section-number-4">2.8.2</span> Effect of the platform&rsquo;s damping \(c\)</h4>
<div class="outline-text-4" id="text-2-8-2">
<p>
Let&rsquo;s fix \(k = 10^7\ [N/m]\), \(m = 100\ [kg]\) and see the evolution of \(|w_{iI}(j\omega)|\) with the isolation platform damping \(c\) (Figure <a href="#org51df34a">14</a>).
</p>
<div id="org51df34a" class="figure">
<p><img src="figs/inverse_multiplicative_payload_uncertainty_c.png" alt="inverse_multiplicative_payload_uncertainty_c.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 platform&rsquo;s damping ratio \(\xi\) (<a href="./figs/inverse_multiplicative_payload_uncertainty_c.png">png</a>, <a href="./figs/inverse_multiplicative_payload_uncertainty_c.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org9086831" class="outline-4">
<h4 id="org9086831"><span class="section-number-4">2.8.3</span> Effect of the platform&rsquo;s mass \(m\)</h4>
<div class="outline-text-4" id="text-2-8-3">
<p>
Let&rsquo;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="#orgd260e86">15</a>).
</p>
<div id="orgd260e86" class="figure">
<p><img src="figs/inverse_multiplicative_payload_uncertainty_m.png" alt="inverse_multiplicative_payload_uncertainty_m.png" />
</p>
<p><span class="figure-number">Figure 15: </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_payload_uncertainty_m.png">png</a>, <a href="./figs/inverse_multiplicative_payload_uncertainty_m.pdf">pdf</a>)</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org1b051ce" class="outline-3">
<h3 id="org1b051ce"><span class="section-number-3">2.9</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-9">
<div class="important">
<p>
As was expected from Eq. \eqref{org8b9a6a7}, it is usually a good idea to maximize the mass, damping and stiffness of the isolation platform in order to be less sensible to the payload dynamics.
</p>
<p>
The best thing to do is to have a stiff isolation platform.
</p>
<p>
If a soft isolation platform is to be used, it is first a good idea to damp the isolation platform as shown in Figure <a href="#org51df34a">14</a>.
This can make the uncertainty quite low until the first resonance of the payload.
In that case, maximizing the stiffness of the payload is a good idea.
</p>
</div>
</div>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-03-26 jeu. 17:25</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"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 -->
<!-- 2020-03-26 jeu. 17:24 -->
<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&rsquo;s dynamics on the isolation platform dynamics</title>
@ -271,17 +271,17 @@ for the JavaScript code in this tag.
<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="#org440a84d">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>
<li><a href="#orgc2af076">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="#org283e8c3">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>
@ -292,7 +292,7 @@ for the JavaScript code in this tag.
<li><a href="#orgd2fc303">2.6.3. Effect of the platform&rsquo;s mass \(m\)</a></li>
</ul>
</li>
<li><a href="#org9c46c2a">2.7. Conclusion</a></li>
<li><a href="#orgd28ebd8">2.7. Conclusion</a></li>
</ul>
</li>
</ul>
@ -346,8 +346,8 @@ The goal is to stabilize \(x\) using \(F\) in spite of uncertainty on the suppor
</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 id="outline-container-org440a84d" class="outline-3">
<h3 id="org440a84d"><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:
@ -451,12 +451,12 @@ The obtained dynamics from \(F\) to \(x\) for the three isolation platform are s
</div>
</div>
<div id="outline-container-org2200b2c" class="outline-3">
<h3 id="org2200b2c"><span class="section-number-3">1.5</span> Conclusion</h3>
<div id="outline-container-orgc2af076" class="outline-3">
<h3 id="orgc2af076"><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.
The soft platform dynamics does not seems to depend on the dynamics of the support nor to be affect by the dynamic uncertainty of the support.
</p>
</div>
@ -497,8 +497,8 @@ Now let&rsquo;s consider the system consisting of a mass-spring-system (the isol
</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 id="outline-container-org283e8c3" class="outline-3">
<h3 id="org283e8c3"><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:
@ -674,6 +674,7 @@ G_stiff = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<spa
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>
@ -699,10 +700,10 @@ Let&rsquo;s express the uncertainty of the plant \(x/F\) as a function of the pa
&= \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">
<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}
@ -827,9 +828,10 @@ Let&rsquo;s fix \(k = 10^7\ [N/m]\), \(\xi = \frac{c}{2\sqrt{km}} = 0.1\) and se
</div>
</div>
<div id="outline-container-org9c46c2a" class="outline-3">
<h3 id="org9c46c2a"><span class="section-number-3">2.7</span> Conclusion</h3>
<div id="outline-container-orgd28ebd8" class="outline-3">
<h3 id="orgd28ebd8"><span class="section-number-3">2.7</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-7">
<div class="important">
<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>
@ -847,13 +849,15 @@ If a very stiff isolation platform is used, the uncertainty will be high around
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>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-03-25 mer. 19:20</p>
<p class="date">Created: 2020-03-26 jeu. 17:24</p>
</div>
</body>
</html>

View File

@ -87,7 +87,7 @@ After that, a tomography experiment is simulation without any active damping tec
<<matlab-init>>
#+end_src
#+begin_src matlab :tangle no
#+begin_src matlab
simulinkproject('../');
#+end_src
@ -2985,7 +2985,7 @@ Inertial Control should not be used.
#+end_src
#+begin_src matlab
cd('../');
simulinkproject('../');
#+end_src
** Load the plants

View File

@ -99,10 +99,6 @@ The signals are:
\draw[->] (Ex.east) -- (J.west) node[above left]{$\bm{r}_{\mathcal{X}_n}$};
\draw[->] (J.east) -- (subr.west) node[above left]{$\bm{r}_{\mathcal{L}}$};
\draw[<-] (Ex.west)node[above left]{$\bm{r}_{\mathcal{X}}$} -- ++(-1, 0);
% \draw[->] (J.east) -- (subr.west) node[above left]{$\bm{r}_{\mathcal{L}}$};
% \draw[->] (subr.east) -- (K.west) node[above left]{$\bm{\epsilon}_\mathcal{L}$};
% \draw[->] (G.east) node[above right]{$\bm{\mathcal{L}}$} -| ($(G.east)+(1, -1)$) -| (subr.south);
\end{tikzpicture}
#+end_src

View File

@ -554,7 +554,7 @@ Instead of a pure integrator, let's use a low pass filter with a cut-off frequen
| | $d_\mu$ | $F_d$ | $w$ |
|-----+------------------------------------+-----------------------------------+--------------------------------------|
| IFF | Better filtering of the vibrations | More sensitive to External forces | |
| DVF | inverse | inverse | Little bit better at low frequencies |
| DVF | Opposite | Opposite | Little bit better at low frequencies |
** Control using $x$
*** Analytical analysis

View File

@ -350,13 +350,13 @@ The obtained dynamics from $F$ to $x$ for the three isolation platform are shown
* Generalization to arbitrary dynamics
<<sec:arbitrary_dynamics>>
** Introduction
Let's now consider a general payload described by its *impedance* $G^\prime(s) = \frac{x}{F^\prime}$ as shown in Figure [[fig:general_payload_impdeance]].
Let's now consider a general payload described by its *impedance* $G^\prime(s) = \frac{x}{F^\prime}$ as shown in Figure [[fig:general_payload_impedance]].
#+begin_note
Note here that we use the term /impedance/, however, the mechanical impedance is usually defined as the ratio of the velocity over the force $\dot{x}/F^\prime$. We should refer to /resistance/ instead of /impedance/.
#+end_note
#+begin_src latex :file general_payload_impdeance.pdf
#+begin_src latex :file general_payload_impedance.pdf
\begin{tikzpicture}
\def\massw{2.2} % Width of the masses
\def\massh{0.8} % Height of the masses
@ -379,10 +379,10 @@ Note here that we use the term /impedance/, however, the mechanical impedance is
\end{tikzpicture}
#+end_src
#+name: fig:general_support_compliance
#+name: fig:general_payload_impedance
#+caption: General support
#+RESULTS:
[[file:figs/general_payload_impdeance.png]]
[[file:figs/general_payload_impedance.png]]
Now let's consider the system consisting of a mass-spring-system (the isolation platform) supporting the general payload as shown in Figure [[fig:general_payload_with_isolator]].
#+begin_src latex :file general_payload_with_isolator.pdf
@ -441,8 +441,9 @@ We have to following equations of motion:
And by eliminating $F^\prime$, we find the plant dynamics $G(s) = \frac{x}{F}$.
#+begin_important
#+name: eq:plant_dynamics_general_payload
\begin{equation}
\frac{x}{F} = \frac{1}{ms^2 + cs + k + G^\prime(s)} \label{eq:plant_dynamics_general_payload}
\frac{x}{F} = \frac{1}{ms^2 + cs + k + G^\prime(s)}
\end{equation}
#+end_important
@ -467,8 +468,9 @@ In order to verify that the formula is correct, let's take the same mass-spring-
By eliminating $x^\prime$ of the equations, we obtain:
#+begin_important
#+name: eq:impedance_mass_spring_damper
\begin{equation}
G^\prime(s) = \frac{F^\prime}{x} = \frac{m^\prime s^2 (c^\prime s + k)}{m^\prime s^2 + c^\prime s + k^\prime} \label{eq:impedance_mass_spring_damper}
G^\prime(s) = \frac{F^\prime}{x} = \frac{m^\prime s^2 (c^\prime s + k)}{m^\prime s^2 + c^\prime s + k^\prime}
\end{equation}
The impedance of a 1dof mass-spring-damper system is described by Eq. [[eq:impedance_mass_spring_damper]].
@ -667,7 +669,8 @@ Stiff Isolation Platform
G_stiff = 1/(m*s^2 + c_stiff*s + k_stiff + Gp);
#+end_src
The obtained transfer functions $x/F$ for each of the three platforms are shown in Figure [[fig:plant_uncertainty_stiffness_isolator]].
The obtained transfer functions $x/F$ for each of the three platforms are shown in Figure [[fig:plant_uncertainty_impedance_payload]].
#+begin_src matlab :exports none
freqs = logspace(0, 3, 1000);

View File

@ -272,7 +272,7 @@ The obtained dynamics from $F$ to $x$ for the three isolation platform are shown
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
set(gca, 'XTickLabel',[]);
ylabel('Magnitude [m/N]');
title('Soft Platform');
title('$\omega_0 \ll \omega_0^\prime$');
hold off;
ax4 = subplot(2,3,4);
@ -293,7 +293,7 @@ The obtained dynamics from $F$ to $x$ for the three isolation platform are shown
end
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
set(gca, 'XTickLabel',[]);
title('Medium Stiff Platform');
title('$\omega_0 \approx \omega_0^\prime$');
hold off;
ax5 = subplot(2,3,5);
@ -314,7 +314,7 @@ The obtained dynamics from $F$ to $x$ for the three isolation platform are shown
end
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
set(gca, 'XTickLabel',[]);
title('Stiff Platform');
title('$\omega_0 \gg \omega_0^\prime$');
hold off;
ax6 = subplot(2,3,6);
@ -344,7 +344,7 @@ The obtained dynamics from $F$ to $x$ for the three isolation platform are shown
** Conclusion
#+begin_important
The soft platform dynamics does not seems to depend on the dynamics of the support.
The soft platform dynamics does not seems to depend on the dynamics of the support nor to be affect by the dynamic uncertainty of the support.
#+end_important
* Generalization to arbitrary dynamics
@ -615,6 +615,7 @@ Stiff Isolation Platform
#+end_src
The obtained transfer functions $x/F$ for each of the three platforms are shown in Figure [[fig:plant_uncertainty_stiffness_isolator]].
#+begin_src matlab :exports none
freqs = logspace(0, 3, 1000);
@ -633,9 +634,9 @@ The obtained transfer functions $x/F$ for each of the three platforms are shown
set(gca, 'XTickLabel',[]);
ylabel('Magnitude [dB]');
hold off;
title('Soft Isolator');
title('$\omega_0 \ll \omega_0^\prime$');
ax2 = subplot(2,3,4);
ax4 = subplot(2,3,4);
hold on;
for i = 1:length(Gs_soft)
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs_soft(:, :, i), freqs, 'Hz'))), '-', 'color', [0, 0, 0, 0.2]);
@ -646,10 +647,7 @@ The obtained transfer functions $x/F$ for each of the three platforms are shown
ylabel('Phase [deg]');
hold off;
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
ax1 = subplot(2,3,2);
ax2 = subplot(2,3,2);
hold on;
for i = 1:length(Gs_mid)
plot(freqs, abs(squeeze(freqresp(Gs_mid(:, :, i), freqs, 'Hz'))), '-', 'color', [0, 0, 0, 0.2]);
@ -657,9 +655,9 @@ The obtained transfer functions $x/F$ for each of the three platforms are shown
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
set(gca, 'XTickLabel',[]);
hold off;
title('Medium Stiff Isolator');
title('$\omega_0 \approx \omega_0^\prime$');
ax2 = subplot(2,3,5);
ax5 = subplot(2,3,5);
hold on;
for i = 1:length(Gs_mid)
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs_mid(:, :, i), freqs, 'Hz'))), '-', 'color', [0, 0, 0, 0.2]);
@ -670,10 +668,7 @@ The obtained transfer functions $x/F$ for each of the three platforms are shown
xlabel('Frequency [Hz]');
hold off;
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
ax1 = subplot(2,3,3);
ax3 = subplot(2,3,3);
hold on;
for i = 1:length(Gs_stiff)
plot(freqs, abs(squeeze(freqresp(Gs_stiff(:, :, i), freqs, 'Hz'))), '-', 'color', [0, 0, 0, 0.2]);
@ -681,9 +676,9 @@ The obtained transfer functions $x/F$ for each of the three platforms are shown
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
set(gca, 'XTickLabel',[]);
hold off;
title('Stiff Isolator');
title('$\omega_0 \gg \omega_0^\prime$');
ax2 = subplot(2,3,6);
ax6 = subplot(2,3,6);
hold on;
for i = 1:length(Gs_stiff)
plot(freqs, 180/pi*angle(squeeze(freqresp(Gs_stiff(:, :, i), freqs, 'Hz'))), '-', 'color', [0, 0, 0, 0.2]);
@ -693,8 +688,10 @@ The obtained transfer functions $x/F$ for each of the three platforms are shown
ylim([-180 180]);
hold off;
linkaxes([ax1,ax2],'x');
linkaxes([ax1,ax2,ax3,ax4,ax5,ax6],'x');
xlim([freqs(1), freqs(end)]);
linkaxes([ax1,ax2,ax3],'y');
#+end_src
#+header: :tangle no :exports results :results none :noweb yes
@ -717,8 +714,8 @@ Let's express the uncertainty of the plant $x/F$ as a function of the parameters
&= \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*}
We can rewrite that as an inverse multiplicative uncertainty (Figure [[fig:inverse_uncertainty_set]]):
#+begin_important
We can the plant dynamics that as an inverse multiplicative uncertainty (Figure [[fig:inverse_uncertainty_set]]):
\begin{equation}
\frac{x}{F} = G_0(s) (1 + w_{iI}(s) \Delta(s))^{-1}
\end{equation}
@ -906,7 +903,7 @@ Let's fix $k = 10^7\ [N/m]$, $m = 100\ [kg]$ and see the evolution of $|w_{iI}(j
surf(freqs, xi, wiI_c_soft', 'FaceColor', 'interp', 'EdgeColor', 'none')
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Damping Ratio');
title('Soft Platform');
title('$\omega_0 \ll \omega_0^\prime$');
view([0 0 1]);
set(gca,'ColorScale','log')
colorbar('location', 'west');
@ -916,7 +913,7 @@ Let's fix $k = 10^7\ [N/m]$, $m = 100\ [kg]$ and see the evolution of $|w_{iI}(j
surf(freqs, xi, wiI_c_mid', 'FaceColor', 'interp', 'EdgeColor', 'none')
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
xlabel('Frequency [Hz]');
title('Medium Stiff Platform');
title('$\omega_0 \approx \omega_0^\prime$');
view([0 0 1]);
set(gca,'ColorScale','log')
caxis([1e-3, 1]);
@ -924,7 +921,7 @@ Let's fix $k = 10^7\ [N/m]$, $m = 100\ [kg]$ and see the evolution of $|w_{iI}(j
ax3 = subplot(1, 3, 3);
surf(freqs, xi, wiI_c_stiff', 'FaceColor', 'interp', 'EdgeColor', 'none')
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
title('Stiff Platform');
title('$\omega_0 \gg \omega_0^\prime$');
view([0 0 1]);
set(gca,'ColorScale','log')
caxis([1e-3 1e0]);
@ -983,6 +980,7 @@ Let's fix $k = 10^7\ [N/m]$, $\xi = \frac{c}{2\sqrt{km}} = 0.1$ and see the evol
[[file:figs/inverse_multiplicative_uncertainty_norm_m.png]]
** Conclusion
#+begin_important
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:
- a very soft isolation platform $\omega_0 \ll \omega_0^\prime$
- a very stiff isolation platform $\omega_0 \gg \omega_0^\prime$
@ -992,6 +990,7 @@ If a very soft isolation platform is used, the uncertainty due to the support's
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).
#+end_important
* Numerical Analysis for the NASS :noexport:
<<sec:nass>>