Work on Control (HAC-LAC) + Models

This commit is contained in:
2020-03-13 17:40:22 +01:00
parent 493268638b
commit fab78b6527
78 changed files with 5395 additions and 2475 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-02-25 mar. 18:20 -->
<!-- 2020-03-13 ven. 17:39 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Simscape Uniaxial Model</title>
@@ -202,50 +202,28 @@
<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.
*/
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
// @license-end
</script>
<script>
MathJax = {
@@ -272,69 +250,69 @@ for the JavaScript code in this tag.
<li><a href="#org227ba84">1. Simscape Model</a></li>
<li><a href="#org6bfb35d">2. Undamped System</a>
<ul>
<li><a href="#org5265d72">2.1. Init</a></li>
<li><a href="#org3b15675">2.2. Identification</a></li>
<li><a href="#org3492011">2.3. Sensitivity to Disturbances</a></li>
<li><a href="#orgd860077">2.4. Noise Budget</a></li>
<li><a href="#org006e24f">2.1. Init</a></li>
<li><a href="#org4fbbce9">2.2. Identification</a></li>
<li><a href="#org49ca9ab">2.3. Sensitivity to Disturbances</a></li>
<li><a href="#org346ebf3">2.4. Noise Budget</a></li>
<li><a href="#orgdb3535a">2.5. Plant</a></li>
</ul>
</li>
<li><a href="#org66a1e03">3. Integral Force Feedback</a>
<li><a href="#org33c3829">3. Integral Force Feedback</a>
<ul>
<li><a href="#org5d899b2">3.1. Control Design</a></li>
<li><a href="#orge386fb1">3.2. Identification</a></li>
<li><a href="#orgbd405f9">3.3. Sensitivity to Disturbance</a></li>
<li><a href="#orgbe8aa64">3.4. Damped Plant</a></li>
<li><a href="#orgfa342b9">3.5. Conclusion</a></li>
<li><a href="#org326d925">3.1. Control Design</a></li>
<li><a href="#org86f3473">3.2. Identification</a></li>
<li><a href="#org68c471e">3.3. Sensitivity to Disturbance</a></li>
<li><a href="#org5edf015">3.4. Damped Plant</a></li>
<li><a href="#orgfc93a1c">3.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org07ff58f">4. Relative Motion Control</a>
<ul>
<li><a href="#org971bdb9">4.1. Control Design</a></li>
<li><a href="#orgfce3b27">4.2. Identification</a></li>
<li><a href="#org2123e6c">4.3. Sensitivity to Disturbance</a></li>
<li><a href="#org7e3e638">4.4. Damped Plant</a></li>
<li><a href="#org0ec985e">4.5. Conclusion</a></li>
<li><a href="#org5704583">4.1. Control Design</a></li>
<li><a href="#orga436aa7">4.2. Identification</a></li>
<li><a href="#org133268a">4.3. Sensitivity to Disturbance</a></li>
<li><a href="#org2f974d4">4.4. Damped Plant</a></li>
<li><a href="#orgfdbd543">4.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgc9b3622">5. Direct Velocity Feedback</a>
<ul>
<li><a href="#orgd5df5f2">5.1. Control Design</a></li>
<li><a href="#orgca551cb">5.2. Identification</a></li>
<li><a href="#orga45e582">5.3. Sensitivity to Disturbance</a></li>
<li><a href="#orgdbf551f">5.4. Damped Plant</a></li>
<li><a href="#orge883751">5.5. Conclusion</a></li>
<li><a href="#org2050b01">5.1. Control Design</a></li>
<li><a href="#orgc946d88">5.2. Identification</a></li>
<li><a href="#orgde4b14e">5.3. Sensitivity to Disturbance</a></li>
<li><a href="#org640c7d9">5.4. Damped Plant</a></li>
<li><a href="#org94e9d5f">5.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org5ac7dda">6. With Cedrat Piezo-electric Actuators</a>
<ul>
<li><a href="#orgddd7da8">6.1. Identification</a></li>
<li><a href="#orgb6ef594">6.2. Control Design</a></li>
<li><a href="#org5314588">6.3. Identification</a></li>
<li><a href="#orgd226771">6.4. Sensitivity to Disturbance</a></li>
<li><a href="#org294b781">6.5. Damped Plant</a></li>
<li><a href="#orga768e31">6.6. Conclusion</a></li>
<li><a href="#org1bfaed7">6.1. Identification</a></li>
<li><a href="#orgf32651c">6.2. Control Design</a></li>
<li><a href="#orgc7383cd">6.3. Identification</a></li>
<li><a href="#org34de1fd">6.4. Sensitivity to Disturbance</a></li>
<li><a href="#org609c873">6.5. Damped Plant</a></li>
<li><a href="#org3c4f6ff">6.6. Conclusion</a></li>
</ul>
</li>
<li><a href="#org77a79e6">7. Comparison of Active Damping Techniques</a>
<ul>
<li><a href="#orgb0afe4f">7.1. Load the plants</a></li>
<li><a href="#org948b91d">7.2. Sensitivity to Disturbance</a></li>
<li><a href="#org234479d">7.3. Noise Budget</a></li>
<li><a href="#orgf591690">7.4. Damped Plant</a></li>
<li><a href="#orgf332379">7.5. Conclusion</a></li>
<li><a href="#orge08556d">7.2. Sensitivity to Disturbance</a></li>
<li><a href="#orgfff33b9">7.3. Noise Budget</a></li>
<li><a href="#orgc582849">7.4. Damped Plant</a></li>
<li><a href="#orgde3c3e7">7.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org15965e0">8. Voice Coil</a>
<ul>
<li><a href="#orgefc326e">8.1. Init</a></li>
<li><a href="#orgae49d6e">8.2. Identification</a></li>
<li><a href="#org72047d5">8.3. Sensitivity to Disturbances</a></li>
<li><a href="#orgbcac95d">8.4. Noise Budget</a></li>
<li><a href="#org95b95ac">8.5. Integral Force Feedback</a></li>
<li><a href="#orge0ae68a">8.1. Init</a></li>
<li><a href="#orgd0cdd7a">8.2. Identification</a></li>
<li><a href="#orgea2fb03">8.3. Sensitivity to Disturbances</a></li>
<li><a href="#org88de5a5">8.4. Noise Budget</a></li>
<li><a href="#org241513b">8.5. Integral Force Feedback</a></li>
<li><a href="#org2a655f7">8.6. Identification of the Damped Plant</a></li>
<li><a href="#orgc8d2daf">8.7. Noise Budget</a></li>
<li><a href="#orgb885664">8.8. Conclusion</a></li>
<li><a href="#orgb7cef4c">8.7. Noise Budget</a></li>
<li><a href="#orga9d9dce">8.8. Conclusion</a></li>
</ul>
</li>
</ul>
@@ -432,8 +410,8 @@ Schematics of the active damping techniques are displayed in figure <a href="#or
Let&rsquo;s start by study the undamped system.
</p>
</div>
<div id="outline-container-org5265d72" class="outline-3">
<h3 id="org5265d72"><span class="section-number-3">2.1</span> Init</h3>
<div id="outline-container-org006e24f" class="outline-3">
<h3 id="org006e24f"><span class="section-number-3">2.1</span> Init</h3>
<div class="outline-text-3" id="text-2-1">
<p>
We initialize all the stages with the default parameters.
@@ -445,8 +423,8 @@ All the controllers are set to 0 (Open Loop).
</p>
</div>
</div>
<div id="outline-container-org3b15675" class="outline-3">
<h3 id="org3b15675"><span class="section-number-3">2.2</span> Identification</h3>
<div id="outline-container-org4fbbce9" class="outline-3">
<h3 id="org4fbbce9"><span class="section-number-3">2.2</span> Identification</h3>
<div class="outline-text-3" id="text-2-2">
<p>
We identify the dynamics of the system.
@@ -503,14 +481,14 @@ G.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-comm
Finally, we save the identified system dynamics for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-org3492011" class="outline-3">
<h3 id="org3492011"><span class="section-number-3">2.3</span> Sensitivity to Disturbances</h3>
<div id="outline-container-org49ca9ab" class="outline-3">
<h3 id="org49ca9ab"><span class="section-number-3">2.3</span> Sensitivity to Disturbances</h3>
<div class="outline-text-3" id="text-2-3">
<p>
We show several plots representing the sensitivity to disturbances:
@@ -537,14 +515,14 @@ We show several plots representing the sensitivity to disturbances:
</div>
</div>
<div id="outline-container-orgd860077" class="outline-3">
<h3 id="orgd860077"><span class="section-number-3">2.4</span> Noise Budget</h3>
<div id="outline-container-org346ebf3" class="outline-3">
<h3 id="org346ebf3"><span class="section-number-3">2.4</span> Noise Budget</h3>
<div class="outline-text-3" id="text-2-4">
<p>
We first load the measured PSD of the disturbance.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./disturbances/mat/dist_psd.mat'</span>, <span class="org-string">'dist_f'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/disturbances_dist_psd.mat'</span>, <span class="org-string">'dist_f'</span>);
</pre>
</div>
@@ -597,8 +575,8 @@ It corresponds to the plant to control.
</div>
</div>
<div id="outline-container-org66a1e03" class="outline-2">
<h2 id="org66a1e03"><span class="section-number-2">3</span> Integral Force Feedback</h2>
<div id="outline-container-org33c3829" class="outline-2">
<h2 id="org33c3829"><span class="section-number-2">3</span> Integral Force Feedback</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="org37f1b7d"></a>
@@ -610,11 +588,11 @@ It corresponds to the plant to control.
<p><span class="figure-number">Figure 8: </span>Uniaxial IFF Control Schematic</p>
</div>
</div>
<div id="outline-container-org5d899b2" class="outline-3">
<h3 id="org5d899b2"><span class="section-number-3">3.1</span> Control Design</h3>
<div id="outline-container-org326d925" class="outline-3">
<h3 id="org326d925"><span class="section-number-3">3.1</span> Control Design</h3>
<div class="outline-text-3" id="text-3-1">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G'</span>);
</pre>
</div>
@@ -646,8 +624,8 @@ The controller for each pair of actuator/sensor is:
</div>
</div>
<div id="outline-container-orge386fb1" class="outline-3">
<h3 id="orge386fb1"><span class="section-number-3">3.2</span> Identification</h3>
<div id="outline-container-org86f3473" class="outline-3">
<h3 id="org86f3473"><span class="section-number-3">3.2</span> Identification</h3>
<div class="outline-text-3" id="text-3-2">
<p>
Let&rsquo;s initialize the system prior to identification.
@@ -671,13 +649,13 @@ All the controllers are set to 0.
</p>
<div class="org-src-container">
<pre class="src src-matlab">K = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
K_iff = <span class="org-type">-</span>K_iff;
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
K_rmc = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
K_dvf = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
@@ -724,14 +702,14 @@ G_iff.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'-append'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-orgbd405f9" class="outline-3">
<h3 id="orgbd405f9"><span class="section-number-3">3.3</span> Sensitivity to Disturbance</h3>
<div id="outline-container-org68c471e" class="outline-3">
<h3 id="org68c471e"><span class="section-number-3">3.3</span> Sensitivity to Disturbance</h3>
<div class="outline-text-3" id="text-3-3">
<div id="orge528565" class="figure">
@@ -749,8 +727,8 @@ G_iff.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
</div>
<div id="outline-container-orgbe8aa64" class="outline-3">
<h3 id="orgbe8aa64"><span class="section-number-3">3.4</span> Damped Plant</h3>
<div id="outline-container-org5edf015" class="outline-3">
<h3 id="org5edf015"><span class="section-number-3">3.4</span> Damped Plant</h3>
<div class="outline-text-3" id="text-3-4">
<div id="org57280cb" class="figure">
@@ -761,8 +739,8 @@ G_iff.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
</div>
<div id="outline-container-orgfa342b9" class="outline-3">
<h3 id="orgfa342b9"><span class="section-number-3">3.5</span> Conclusion</h3>
<div id="outline-container-orgfc93a1c" class="outline-3">
<h3 id="orgfc93a1c"><span class="section-number-3">3.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-5">
<div class="important">
<p>
@@ -791,11 +769,11 @@ In the Relative Motion Control (RMC), a derivative feedback is applied between t
<p><span class="figure-number">Figure 14: </span>Uniaxial RMC Control Schematic</p>
</div>
</div>
<div id="outline-container-org971bdb9" class="outline-3">
<h3 id="org971bdb9"><span class="section-number-3">4.1</span> Control Design</h3>
<div id="outline-container-org5704583" class="outline-3">
<h3 id="org5704583"><span class="section-number-3">4.1</span> Control Design</h3>
<div class="outline-text-3" id="text-4-1">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G'</span>);
</pre>
</div>
@@ -828,8 +806,8 @@ A Low pass Filter is added to make the controller transfer function proper.
</div>
</div>
<div id="outline-container-orgfce3b27" class="outline-3">
<h3 id="orgfce3b27"><span class="section-number-3">4.2</span> Identification</h3>
<div id="outline-container-orga436aa7" class="outline-3">
<h3 id="orga436aa7"><span class="section-number-3">4.2</span> Identification</h3>
<div class="outline-text-3" id="text-4-2">
<p>
Let&rsquo;s initialize the system prior to identification.
@@ -853,13 +831,13 @@ And initialize the controllers.
</p>
<div class="org-src-container">
<pre class="src src-matlab">K = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
K_iff = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
K_rmc = <span class="org-type">-</span>K_rmc;
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
K_dvf = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
@@ -906,15 +884,15 @@ G_rmc.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G_rmc'</span>, <span class="org-string">'-append'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G_rmc'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-org2123e6c" class="outline-3">
<h3 id="org2123e6c"><span class="section-number-3">4.3</span> Sensitivity to Disturbance</h3>
<div id="outline-container-org133268a" class="outline-3">
<h3 id="org133268a"><span class="section-number-3">4.3</span> Sensitivity to Disturbance</h3>
<div class="outline-text-3" id="text-4-3">
<div id="org9e0dde4" class="figure">
@@ -932,8 +910,8 @@ G_rmc.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
</div>
<div id="outline-container-org7e3e638" class="outline-3">
<h3 id="org7e3e638"><span class="section-number-3">4.4</span> Damped Plant</h3>
<div id="outline-container-org2f974d4" class="outline-3">
<h3 id="org2f974d4"><span class="section-number-3">4.4</span> Damped Plant</h3>
<div class="outline-text-3" id="text-4-4">
<div id="org18786e8" class="figure">
@@ -944,8 +922,8 @@ G_rmc.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
</div>
<div id="outline-container-org0ec985e" class="outline-3">
<h3 id="org0ec985e"><span class="section-number-3">4.5</span> Conclusion</h3>
<div id="outline-container-orgfdbd543" class="outline-3">
<h3 id="orgfdbd543"><span class="section-number-3">4.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-5">
<div class="important">
<p>
@@ -974,11 +952,11 @@ In the Relative Motion Control (RMC), a feedback is applied between the measured
<p><span class="figure-number">Figure 20: </span>Uniaxial DVF Control Schematic</p>
</div>
</div>
<div id="outline-container-orgd5df5f2" class="outline-3">
<h3 id="orgd5df5f2"><span class="section-number-3">5.1</span> Control Design</h3>
<div id="outline-container-org2050b01" class="outline-3">
<h3 id="org2050b01"><span class="section-number-3">5.1</span> Control Design</h3>
<div class="outline-text-3" id="text-5-1">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G'</span>);
</pre>
</div>
@@ -1003,8 +981,8 @@ In the Relative Motion Control (RMC), a feedback is applied between the measured
</div>
</div>
<div id="outline-container-orgca551cb" class="outline-3">
<h3 id="orgca551cb"><span class="section-number-3">5.2</span> Identification</h3>
<div id="outline-container-orgc946d88" class="outline-3">
<h3 id="orgc946d88"><span class="section-number-3">5.2</span> Identification</h3>
<div class="outline-text-3" id="text-5-2">
<p>
Let&rsquo;s initialize the system prior to identification.
@@ -1028,13 +1006,13 @@ And initialize the controllers.
</p>
<div class="org-src-container">
<pre class="src src-matlab">K = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
K_iff = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
K_rmc = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
K_dvf = <span class="org-type">-</span>K_dvf;
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
@@ -1081,14 +1059,14 @@ G_dvf.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G_dvf'</span>, <span class="org-string">'-append'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G_dvf'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-orga45e582" class="outline-3">
<h3 id="orga45e582"><span class="section-number-3">5.3</span> Sensitivity to Disturbance</h3>
<div id="outline-container-orgde4b14e" class="outline-3">
<h3 id="orgde4b14e"><span class="section-number-3">5.3</span> Sensitivity to Disturbance</h3>
<div class="outline-text-3" id="text-5-3">
<div id="orgf9d4052" class="figure">
@@ -1106,8 +1084,8 @@ G_dvf.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
</div>
<div id="outline-container-orgdbf551f" class="outline-3">
<h3 id="orgdbf551f"><span class="section-number-3">5.4</span> Damped Plant</h3>
<div id="outline-container-org640c7d9" class="outline-3">
<h3 id="org640c7d9"><span class="section-number-3">5.4</span> Damped Plant</h3>
<div class="outline-text-3" id="text-5-4">
<div id="orgbc9c953" class="figure">
@@ -1118,8 +1096,8 @@ G_dvf.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-
</div>
</div>
<div id="outline-container-orge883751" class="outline-3">
<h3 id="orge883751"><span class="section-number-3">5.5</span> Conclusion</h3>
<div id="outline-container-org94e9d5f" class="outline-3">
<h3 id="org94e9d5f"><span class="section-number-3">5.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-5">
<div class="important">
<p>
@@ -1147,8 +1125,8 @@ The model used for the Cedrat actuator is shown in figure <a href="#org83591fa">
<p><span class="figure-number">Figure 26: </span>Schematic of the model used for the Cedrat Actuator</p>
</div>
</div>
<div id="outline-container-orgddd7da8" class="outline-3">
<h3 id="orgddd7da8"><span class="section-number-3">6.1</span> Identification</h3>
<div id="outline-container-org1bfaed7" class="outline-3">
<h3 id="org1bfaed7"><span class="section-number-3">6.1</span> Identification</h3>
<div class="outline-text-3" id="text-6-1">
<p>
Let&rsquo;s initialize the system prior to identification.
@@ -1173,13 +1151,13 @@ And initialize the controllers.
</p>
<div class="org-src-container">
<pre class="src src-matlab">K = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
K_iff = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
K_rmc = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
K_dvf = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
@@ -1236,8 +1214,8 @@ G.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-comm
</div>
</div>
<div id="outline-container-orgb6ef594" class="outline-3">
<h3 id="orgb6ef594"><span class="section-number-3">6.2</span> Control Design</h3>
<div id="outline-container-orgf32651c" class="outline-3">
<h3 id="orgf32651c"><span class="section-number-3">6.2</span> Control Design</h3>
<div class="outline-text-3" id="text-6-2">
<p>
Let&rsquo;s look at the transfer function from actuator forces in the nano-hexapod to the force sensor in the nano-hexapod legs for all 6 pairs of actuator/sensor.
@@ -1267,8 +1245,8 @@ The controller for each pair of actuator/sensor is:
</div>
</div>
<div id="outline-container-org5314588" class="outline-3">
<h3 id="org5314588"><span class="section-number-3">6.3</span> Identification</h3>
<div id="outline-container-orgc7383cd" class="outline-3">
<h3 id="orgc7383cd"><span class="section-number-3">6.3</span> Identification</h3>
<div class="outline-text-3" id="text-6-3">
<p>
Let&rsquo;s initialize the system prior to identification.
@@ -1293,13 +1271,13 @@ All the controllers are set to 0.
</p>
<div class="org-src-container">
<pre class="src src-matlab">K = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
K_iff = <span class="org-type">-</span>K_cedrat;
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
K_rmc = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
K_dvf = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
@@ -1346,14 +1324,14 @@ G_cedrat.OutputName = {<span class="org-string">'D'</span>, ...<span class="o
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% save('./uniaxial/mat/plants.mat', 'G_cedrat', '-append');</span>
<pre class="src src-matlab"><span class="org-comment">% save('./mat/uniaxial_plants.mat', 'G_cedrat', '-append');</span>
</pre>
</div>
</div>
</div>
<div id="outline-container-orgd226771" class="outline-3">
<h3 id="orgd226771"><span class="section-number-3">6.4</span> Sensitivity to Disturbance</h3>
<div id="outline-container-org34de1fd" class="outline-3">
<h3 id="org34de1fd"><span class="section-number-3">6.4</span> Sensitivity to Disturbance</h3>
<div class="outline-text-3" id="text-6-4">
<div id="org90f5c2b" class="figure">
@@ -1371,8 +1349,8 @@ G_cedrat.OutputName = {<span class="org-string">'D'</span>, ...<span class="o
</div>
</div>
<div id="outline-container-org294b781" class="outline-3">
<h3 id="org294b781"><span class="section-number-3">6.5</span> Damped Plant</h3>
<div id="outline-container-org609c873" class="outline-3">
<h3 id="org609c873"><span class="section-number-3">6.5</span> Damped Plant</h3>
<div class="outline-text-3" id="text-6-5">
<div id="org0c4e61a" class="figure">
@@ -1383,8 +1361,8 @@ G_cedrat.OutputName = {<span class="org-string">'D'</span>, ...<span class="o
</div>
</div>
<div id="outline-container-orga768e31" class="outline-3">
<h3 id="orga768e31"><span class="section-number-3">6.6</span> Conclusion</h3>
<div id="outline-container-org3c4f6ff" class="outline-3">
<h3 id="org3c4f6ff"><span class="section-number-3">6.6</span> Conclusion</h3>
<div class="outline-text-3" id="text-6-6">
<div class="important">
<p>
@@ -1407,14 +1385,14 @@ This gives similar results than with a classical force sensor.
<h3 id="orgb0afe4f"><span class="section-number-3">7.1</span> Load the plants</h3>
<div class="outline-text-3" id="text-7-1">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'G_rmc'</span>, <span class="org-string">'G_dvf'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'G_rmc'</span>, <span class="org-string">'G_dvf'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-org948b91d" class="outline-3">
<h3 id="org948b91d"><span class="section-number-3">7.2</span> Sensitivity to Disturbance</h3>
<div id="outline-container-orge08556d" class="outline-3">
<h3 id="orge08556d"><span class="section-number-3">7.2</span> Sensitivity to Disturbance</h3>
<div class="outline-text-3" id="text-7-2">
<div id="org8c59440" class="figure">
@@ -1447,14 +1425,14 @@ This gives similar results than with a classical force sensor.
</div>
</div>
<div id="outline-container-org234479d" class="outline-3">
<h3 id="org234479d"><span class="section-number-3">7.3</span> Noise Budget</h3>
<div id="outline-container-orgfff33b9" class="outline-3">
<h3 id="orgfff33b9"><span class="section-number-3">7.3</span> Noise Budget</h3>
<div class="outline-text-3" id="text-7-3">
<p>
We first load the measured PSD of the disturbance.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./disturbances/mat/dist_psd.mat'</span>, <span class="org-string">'dist_f'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/disturbances_dist_psd.mat'</span>, <span class="org-string">'dist_f'</span>);
</pre>
</div>
@@ -1515,8 +1493,8 @@ It is important to note that the effect of direct forces applied to the sample a
</div>
</div>
<div id="outline-container-orgf591690" class="outline-3">
<h3 id="orgf591690"><span class="section-number-3">7.4</span> Damped Plant</h3>
<div id="outline-container-orgc582849" class="outline-3">
<h3 id="orgc582849"><span class="section-number-3">7.4</span> Damped Plant</h3>
<div class="outline-text-3" id="text-7-4">
<div id="orga0c1298" class="figure">
@@ -1527,8 +1505,8 @@ It is important to note that the effect of direct forces applied to the sample a
</div>
</div>
<div id="outline-container-orgf332379" class="outline-3">
<h3 id="orgf332379"><span class="section-number-3">7.5</span> Conclusion</h3>
<div id="outline-container-orgde3c3e7" class="outline-3">
<h3 id="orgde3c3e7"><span class="section-number-3">7.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-7-5">
<table id="org46e95c2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> Comparison of proposed active damping techniques</caption>
@@ -1604,8 +1582,8 @@ It is important to note that the effect of direct forces applied to the sample a
<a id="orgf9e9d51"></a>
</p>
</div>
<div id="outline-container-orgefc326e" class="outline-3">
<h3 id="orgefc326e"><span class="section-number-3">8.1</span> Init</h3>
<div id="outline-container-orge0ae68a" class="outline-3">
<h3 id="orge0ae68a"><span class="section-number-3">8.1</span> Init</h3>
<div class="outline-text-3" id="text-8-1">
<p>
We initialize all the stages with the default parameters.
@@ -1617,8 +1595,8 @@ All the controllers are set to 0 (Open Loop).
</p>
</div>
</div>
<div id="outline-container-orgae49d6e" class="outline-3">
<h3 id="orgae49d6e"><span class="section-number-3">8.2</span> Identification</h3>
<div id="outline-container-orgd0cdd7a" class="outline-3">
<h3 id="orgd0cdd7a"><span class="section-number-3">8.2</span> Identification</h3>
<div class="outline-text-3" id="text-8-2">
<p>
We identify the dynamics of the system.
@@ -1675,20 +1653,20 @@ G_vc.OutputName = {<span class="org-string">'D'</span>, ...<span class="org-c
Finally, we save the identified system dynamics for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G_vc'</span>, <span class="org-string">'-append'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G_vc'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-org72047d5" class="outline-3">
<h3 id="org72047d5"><span class="section-number-3">8.3</span> Sensitivity to Disturbances</h3>
<div id="outline-container-orgea2fb03" class="outline-3">
<h3 id="orgea2fb03"><span class="section-number-3">8.3</span> Sensitivity to Disturbances</h3>
<div class="outline-text-3" id="text-8-3">
<p>
We load the dynamics when using a piezo-electric nano hexapod to compare the results.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./uniaxial/mat/plants.mat'</span>, <span class="org-string">'G'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/uniaxial_plants.mat'</span>, <span class="org-string">'G'</span>);
</pre>
</div>
@@ -1716,14 +1694,14 @@ We show several plots representing the sensitivity to disturbances:
</div>
</div>
<div id="outline-container-orgbcac95d" class="outline-3">
<h3 id="orgbcac95d"><span class="section-number-3">8.4</span> Noise Budget</h3>
<div id="outline-container-org88de5a5" class="outline-3">
<h3 id="org88de5a5"><span class="section-number-3">8.4</span> Noise Budget</h3>
<div class="outline-text-3" id="text-8-4">
<p>
We first load the measured PSD of the disturbance.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./disturbances/mat/dist_psd.mat'</span>, <span class="org-string">'dist_f'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/disturbances_dist_psd.mat'</span>, <span class="org-string">'dist_f'</span>);
</pre>
</div>
@@ -1766,8 +1744,8 @@ Thus, it may be desirable to use voice coil actuators.
</div>
</div>
</div>
<div id="outline-container-org95b95ac" class="outline-3">
<h3 id="org95b95ac"><span class="section-number-3">8.5</span> Integral Force Feedback</h3>
<div id="outline-container-org241513b" class="outline-3">
<h3 id="org241513b"><span class="section-number-3">8.5</span> Integral Force Feedback</h3>
<div class="outline-text-3" id="text-8-5">
<div class="org-src-container">
<pre class="src src-matlab">K_iff = <span class="org-type">-</span>20<span class="org-type">/</span>s;
@@ -1808,13 +1786,13 @@ All the controllers are set to 0.
</p>
<div class="org-src-container">
<pre class="src src-matlab">K = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K'</span>, <span class="org-string">'-append'</span>);
K_iff = <span class="org-type">-</span>K_iff;
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_iff'</span>, <span class="org-string">'-append'</span>);
K_rmc = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_rmc'</span>, <span class="org-string">'-append'</span>);
K_dvf = tf(0);
save(<span class="org-string">'./mat/controllers.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/controllers_uniaxial.mat'</span>, <span class="org-string">'K_dvf'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
@@ -1862,8 +1840,8 @@ G_vc_iff.OutputName = {<span class="org-string">'D'</span>, ...<span class="o
</div>
</div>
<div id="outline-container-orgc8d2daf" class="outline-3">
<h3 id="orgc8d2daf"><span class="section-number-3">8.7</span> Noise Budget</h3>
<div id="outline-container-orgb7cef4c" class="outline-3">
<h3 id="orgb7cef4c"><span class="section-number-3">8.7</span> Noise Budget</h3>
<div class="outline-text-3" id="text-8-7">
<p>
We compute the obtain PSD of the displacement \(D\) when using IFF.
@@ -1877,8 +1855,8 @@ We compute the obtain PSD of the displacement \(D\) when using IFF.
</div>
</div>
<div id="outline-container-orgb885664" class="outline-3">
<h3 id="orgb885664"><span class="section-number-3">8.8</span> Conclusion</h3>
<div id="outline-container-orga9d9dce" class="outline-3">
<h3 id="orga9d9dce"><span class="section-number-3">8.8</span> Conclusion</h3>
<div class="outline-text-3" id="text-8-8">
<div class="important">
<p>
@@ -1896,7 +1874,7 @@ Similarly, it would require much lower bandwidth to attain the same level of dis
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-25 mar. 18:20</p>
<p class="date">Created: 2020-03-13 ven. 17:39</p>
</div>
</body>
</html>