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>Active Damping applied on the Simscape 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 = {
@@ -273,17 +251,17 @@ for the JavaScript code in this tag.
<ul>
<li><a href="#orga668d6d">1.1. Identification of the dynamics for Active Damping</a>
<ul>
<li><a href="#orgd1a656e">1.1.1. Identification</a></li>
<li><a href="#org4d53135">1.1.1. Identification</a></li>
<li><a href="#orge632d78">1.1.2. Obtained Plants for Active Damping</a></li>
</ul>
</li>
<li><a href="#orgacbac97">1.2. Identification of the dynamics for High Authority Control</a>
<ul>
<li><a href="#org9dde5ce">1.2.1. Identification</a></li>
<li><a href="#org71a0d47">1.2.1. Identification</a></li>
<li><a href="#org245ebc9">1.2.2. Obtained Plants</a></li>
</ul>
</li>
<li><a href="#orgc633a52">1.3. Tomography Experiment</a>
<li><a href="#org6dbda79">1.3. Tomography Experiment</a>
<ul>
<li><a href="#orgd2384a9">1.3.1. Simulation</a></li>
<li><a href="#orgd00d359">1.3.2. Results</a></li>
@@ -303,55 +281,55 @@ for the JavaScript code in this tag.
</li>
<li><a href="#org89179a2">2.4. Variation of the Tilt Angle</a></li>
<li><a href="#org701d7f3">2.5. Scans of the Translation Stage</a></li>
<li><a href="#org1b61fb2">2.6. Conclusion</a></li>
<li><a href="#org8edc6af">2.6. Conclusion</a></li>
</ul>
</li>
<li><a href="#org28bb8b8">3. Integral Force Feedback</a>
<ul>
<li><a href="#org8147539">3.1. Control Design</a>
<li><a href="#orgd40d19e">3.1. Control Design</a>
<ul>
<li><a href="#org7579fa1">3.1.1. Plant</a></li>
<li><a href="#org1069779">3.1.2. Control Design</a></li>
<li><a href="#org0929a5f">3.1.3. Diagonal Controller</a></li>
<li><a href="#orgae652a4">3.1.1. Plant</a></li>
<li><a href="#org3cc819b">3.1.2. Control Design</a></li>
<li><a href="#orgd4051da">3.1.3. Diagonal Controller</a></li>
</ul>
</li>
<li><a href="#org92b7e4a">3.2. Tomography Experiment</a>
<li><a href="#org394b3ba">3.2. Tomography Experiment</a>
<ul>
<li><a href="#orge827289">3.2.1. Simulation with IFF Controller</a></li>
<li><a href="#org34c04f2">3.2.2. Compare with Undamped system</a></li>
<li><a href="#orgeb184b2">3.2.2. Compare with Undamped system</a></li>
</ul>
</li>
<li><a href="#orge208898">3.3. Conclusion</a></li>
<li><a href="#org6b98a86">3.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#orge2515a1">4. Direct Velocity Feedback</a>
<ul>
<li><a href="#org2454b5d">4.1. Control Design</a>
<li><a href="#orgac2118b">4.1. Control Design</a>
<ul>
<li><a href="#orgd36a459">4.1.1. Plant</a></li>
<li><a href="#orgf771969">4.1.2. Control Design</a></li>
<li><a href="#org1fa78ea">4.1.3. Diagonal Controller</a></li>
<li><a href="#orgb031bdb">4.1.1. Plant</a></li>
<li><a href="#orgd082061">4.1.2. Control Design</a></li>
<li><a href="#orgd3a0a62">4.1.3. Diagonal Controller</a></li>
</ul>
</li>
<li><a href="#orgdc2cc7d">4.2. Tomography Experiment</a>
<li><a href="#orge87de8b">4.2. Tomography Experiment</a>
<ul>
<li><a href="#org315e901">4.2.1. Initialize the Simulation</a></li>
<li><a href="#orgbe122b9">4.2.2. Compare with Undamped system</a></li>
<li><a href="#orge6278a1">4.2.1. Initialize the Simulation</a></li>
<li><a href="#orge7a0ad9">4.2.2. Compare with Undamped system</a></li>
</ul>
</li>
<li><a href="#org2edf5bd">4.3. Conclusion</a></li>
<li><a href="#orgc00cb88">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org5047e99">5. Inertial Control</a>
<ul>
<li><a href="#org5bec512">5.1. Control Design</a>
<li><a href="#org40e3ea7">5.1. Control Design</a>
<ul>
<li><a href="#org16795b0">5.1.1. Plant</a></li>
<li><a href="#org9ce4e10">5.1.2. Control Design</a></li>
<li><a href="#org132c666">5.1.3. Diagonal Controller</a></li>
<li><a href="#orgbceccd1">5.1.1. Plant</a></li>
<li><a href="#orgc8e27a6">5.1.2. Control Design</a></li>
<li><a href="#org165dd29">5.1.3. Diagonal Controller</a></li>
</ul>
</li>
<li><a href="#org408de58">5.2. Conclusion</a></li>
<li><a href="#org5587c6f">5.2. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgd2a9c18">6. Comparison</a>
@@ -366,16 +344,16 @@ for the JavaScript code in this tag.
<ul>
<li><a href="#orgcf56890">7.1. prepareLinearizeIdentification</a>
<ul>
<li><a href="#org2b7c7da">Function Description</a></li>
<li><a href="#org6e16103">Optional Parameters</a></li>
<li><a href="#org552f1ca">Initialize the Simulation</a></li>
<li><a href="#orgbcbb56e">Function Description</a></li>
<li><a href="#orgb2bfb6d">Optional Parameters</a></li>
<li><a href="#org491e801">Initialize the Simulation</a></li>
</ul>
</li>
<li><a href="#orgc2b4408">7.2. prepareTomographyExperiment</a>
<ul>
<li><a href="#org6dacc19">Function Description</a></li>
<li><a href="#org65022a7">Optional Parameters</a></li>
<li><a href="#orga0e6a80">Initialize the Simulation</a></li>
<li><a href="#org8c658fc">Function Description</a></li>
<li><a href="#org80c975b">Optional Parameters</a></li>
<li><a href="#org65e26b7">Initialize the Simulation</a></li>
</ul>
</li>
</ul>
@@ -447,8 +425,8 @@ After that, a tomography experiment is simulation without any active damping tec
<h3 id="orga668d6d"><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-orgd1a656e" class="outline-4">
<h4 id="orgd1a656e"><span class="section-number-4">1.1.1</span> Identification</h4>
<div id="outline-container-org4d53135" class="outline-4">
<h4 id="org4d53135"><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.
@@ -499,7 +477,7 @@ G_ine = minreal(G({<span class="org-string">'Vnlm1'</span>, <span class="org-str
And we save them for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./active_damping/mat/undamped_plants.mat'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'G_dvf'</span>, <span class="org-string">'G_ine'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/active_damping_undamped_plants.mat'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'G_dvf'</span>, <span class="org-string">'G_ine'</span>);
</pre>
</div>
</div>
@@ -509,7 +487,7 @@ And we save them for further analysis.
<h4 id="orge632d78"><span class="section-number-4">1.1.2</span> Obtained Plants for Active Damping</h4>
<div class="outline-text-4" id="text-1-1-2">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/undamped_plants.mat'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'G_dvf'</span>, <span class="org-string">'G_ine'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_undamped_plants.mat'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'G_dvf'</span>, <span class="org-string">'G_ine'</span>);
</pre>
</div>
@@ -541,8 +519,8 @@ And we save them for further analysis.
<h3 id="orgacbac97"><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-org9dde5ce" class="outline-4">
<h4 id="org9dde5ce"><span class="section-number-4">1.2.1</span> Identification</h4>
<div id="outline-container-org71a0d47" class="outline-4">
<h4 id="org71a0d47"><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.
@@ -579,7 +557,7 @@ io(io_i) = linio([mdl, <span class="org-string">'/Tracking Error'</span>], 1, <s
And we save them for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./active_damping/mat/cart_plants.mat'</span>, <span class="org-string">'G_cart'</span>, <span class="org-string">'masses'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/active_damping_cart_plants.mat'</span>, <span class="org-string">'G_cart'</span>, <span class="org-string">'masses'</span>);
</pre>
</div>
</div>
@@ -589,7 +567,7 @@ And we save them for further analysis.
<h4 id="org245ebc9"><span class="section-number-4">1.2.2</span> Obtained Plants</h4>
<div class="outline-text-4" id="text-1-2-2">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/cart_plants.mat'</span>, <span class="org-string">'G_cart'</span>, <span class="org-string">'masses'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_cart_plants.mat'</span>, <span class="org-string">'G_cart'</span>, <span class="org-string">'masses'</span>);
</pre>
</div>
@@ -611,8 +589,8 @@ And we save them for further analysis.
</div>
</div>
<div id="outline-container-orgc633a52" class="outline-3">
<h3 id="orgc633a52"><span class="section-number-3">1.3</span> Tomography Experiment</h3>
<div id="outline-container-org6dbda79" class="outline-3">
<h3 id="org6dbda79"><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-orgd2384a9" class="outline-4">
@@ -647,7 +625,7 @@ And we simulate the system.
Finally, we save the simulation results for further analysis
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./active_damping/mat/tomo_exp.mat'</span>, <span class="org-string">'En'</span>, <span class="org-string">'Eg'</span>, <span class="org-string">'-append'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span class="org-string">'En'</span>, <span class="org-string">'Eg'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
@@ -660,7 +638,7 @@ Finally, we save the simulation results for further analysis
We load the results of tomography experiments.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/tomo_exp.mat'</span>, <span class="org-string">'En'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span class="org-string">'En'</span>);
Fs = 1e3; <span class="org-comment">% Sampling Frequency of the Data</span>
t = (1<span class="org-type">/</span>Fs)<span class="org-type">*</span>[0<span class="org-type">:</span>length(En(<span class="org-type">:</span>,1))<span class="org-type">-</span>1];
</pre>
@@ -1000,8 +978,8 @@ We identify the dynamics at different positions (times) when scanning with the T
</div>
</div>
<div id="outline-container-org1b61fb2" class="outline-3">
<h3 id="org1b61fb2"><span class="section-number-3">2.6</span> Conclusion</h3>
<div id="outline-container-org8edc6af" class="outline-3">
<h3 id="org8edc6af"><span class="section-number-3">2.6</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-6">
<table id="org664ed44" 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>
@@ -1092,19 +1070,19 @@ The control architecture is represented in figure <a href="#org03ecebf">29</a> w
</div>
</div>
<div id="outline-container-org8147539" class="outline-3">
<h3 id="org8147539"><span class="section-number-3">3.1</span> Control Design</h3>
<div id="outline-container-orgd40d19e" class="outline-3">
<h3 id="orgd40d19e"><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-org7579fa1" class="outline-4">
<h4 id="org7579fa1"><span class="section-number-4">3.1.1</span> Plant</h4>
<div id="outline-container-orgae652a4" class="outline-4">
<h4 id="orgae652a4"><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:
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/undamped_plants.mat'</span>, <span class="org-string">'G_iff'</span>);
load(<span class="org-string">'./active_damping/mat/plants_variable.mat'</span>, <span class="org-string">'masses'</span>, <span class="org-string">'Gm_iff'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_undamped_plants.mat'</span>, <span class="org-string">'G_iff'</span>);
load(<span class="org-string">'./mat/active_damping_plants_variable.mat'</span>, <span class="org-string">'masses'</span>, <span class="org-string">'Gm_iff'</span>);
</pre>
</div>
@@ -1121,8 +1099,8 @@ Let&rsquo;s look at the transfer function from actuator forces in the nano-hexap
</div>
</div>
<div id="outline-container-org1069779" class="outline-4">
<h4 id="org1069779"><span class="section-number-4">3.1.2</span> Control Design</h4>
<div id="outline-container-org3cc819b" class="outline-4">
<h4 id="org3cc819b"><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:
@@ -1146,8 +1124,8 @@ The corresponding loop gains are shown in figure <a href="#orge32c0c8">31</a>.
</div>
</div>
<div id="outline-container-org0929a5f" class="outline-4">
<h4 id="org0929a5f"><span class="section-number-4">3.1.3</span> Diagonal Controller</h4>
<div id="outline-container-orgd4051da" class="outline-4">
<h4 id="orgd4051da"><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
@@ -1162,15 +1140,15 @@ feedback architecture.
We save the controller for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./active_damping/mat/K_iff.mat'</span>, <span class="org-string">'K_iff'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/active_damping_K_iff.mat'</span>, <span class="org-string">'K_iff'</span>);
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org92b7e4a" class="outline-3">
<h3 id="org92b7e4a"><span class="section-number-3">3.2</span> Tomography Experiment</h3>
<div id="outline-container-org394b3ba" class="outline-3">
<h3 id="org394b3ba"><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-orge827289" class="outline-4">
@@ -1188,7 +1166,7 @@ We initialize elements for the tomography experiment.
We set the IFF controller.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/K_iff.mat'</span>, <span class="org-string">'K_iff'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_K_iff.mat'</span>, <span class="org-string">'K_iff'</span>);
initializeController(<span class="org-string">'type'</span>, <span class="org-string">'iff'</span>, <span class="org-string">'K'</span>, K_iff);
</pre>
</div>
@@ -1216,14 +1194,14 @@ Finally, we save the simulation results for further analysis
<div class="org-src-container">
<pre class="src src-matlab">En_iff = En;
Eg_iff = Eg;
save(<span class="org-string">'./active_damping/mat/tomo_exp.mat'</span>, <span class="org-string">'En_iff'</span>, <span class="org-string">'Eg_iff'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span class="org-string">'En_iff'</span>, <span class="org-string">'Eg_iff'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-org34c04f2" class="outline-4">
<h4 id="org34c04f2"><span class="section-number-4">3.2.2</span> Compare with Undamped system</h4>
<div id="outline-container-orgeb184b2" class="outline-4">
<h4 id="orgeb184b2"><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="orgc83ffab" class="figure">
@@ -1249,8 +1227,8 @@ save(<span class="org-string">'./active_damping/mat/tomo_exp.mat'</span>, <span
</div>
</div>
<div id="outline-container-orge208898" class="outline-3">
<h3 id="orge208898"><span class="section-number-3">3.3</span> Conclusion</h3>
<div id="outline-container-org6b98a86" class="outline-3">
<h3 id="org6b98a86"><span class="section-number-3">3.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-3">
<div class="important">
<p>
@@ -1285,19 +1263,19 @@ The actuator displacement can be measured with a capacitive sensor for instance.
</p>
</div>
<div id="outline-container-org2454b5d" class="outline-3">
<h3 id="org2454b5d"><span class="section-number-3">4.1</span> Control Design</h3>
<div id="outline-container-orgac2118b" class="outline-3">
<h3 id="orgac2118b"><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-orgd36a459" class="outline-4">
<h4 id="orgd36a459"><span class="section-number-4">4.1.1</span> Plant</h4>
<div id="outline-container-orgb031bdb" class="outline-4">
<h4 id="orgb031bdb"><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:
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/undamped_plants.mat'</span>, <span class="org-string">'G_dvf'</span>);
load(<span class="org-string">'./active_damping/mat/plants_variable.mat'</span>, <span class="org-string">'masses'</span>, <span class="org-string">'Gm_dvf'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_undamped_plants.mat'</span>, <span class="org-string">'G_dvf'</span>);
load(<span class="org-string">'./mat/active_damping_plants_variable.mat'</span>, <span class="org-string">'masses'</span>, <span class="org-string">'Gm_dvf'</span>);
</pre>
</div>
@@ -1314,8 +1292,8 @@ Let&rsquo;s look at the transfer function from actuator forces in the nano-hexap
</div>
</div>
<div id="outline-container-orgf771969" class="outline-4">
<h4 id="orgf771969"><span class="section-number-4">4.1.2</span> Control Design</h4>
<div id="outline-container-orgd082061" class="outline-4">
<h4 id="orgd082061"><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.
@@ -1339,8 +1317,8 @@ The obtained loop gains are shown in figure <a href="#org713f5d4">36</a>.
</div>
</div>
<div id="outline-container-org1fa78ea" class="outline-4">
<h4 id="org1fa78ea"><span class="section-number-4">4.1.3</span> Diagonal Controller</h4>
<div id="outline-container-orgd3a0a62" class="outline-4">
<h4 id="orgd3a0a62"><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.
@@ -1354,19 +1332,19 @@ We create the diagonal controller and we add a minus sign as we have a positive
We save the controller for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./active_damping/mat/K_dvf.mat'</span>, <span class="org-string">'K_dvf'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/active_damping_K_dvf.mat'</span>, <span class="org-string">'K_dvf'</span>);
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-orgdc2cc7d" class="outline-3">
<h3 id="orgdc2cc7d"><span class="section-number-3">4.2</span> Tomography Experiment</h3>
<div id="outline-container-orge87de8b" class="outline-3">
<h3 id="orge87de8b"><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-org315e901" class="outline-4">
<h4 id="org315e901"><span class="section-number-4">4.2.1</span> Initialize the Simulation</h4>
<div id="outline-container-orge6278a1" class="outline-4">
<h4 id="orge6278a1"><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.
@@ -1380,7 +1358,7 @@ We initialize elements for the tomography experiment.
We set the DVF controller.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/K_dvf.mat'</span>, <span class="org-string">'K_dvf'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_K_dvf.mat'</span>, <span class="org-string">'K_dvf'</span>);
initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>, <span class="org-string">'K'</span>, K_dvf);
</pre>
</div>
@@ -1408,14 +1386,14 @@ Finally, we save the simulation results for further analysis
<div class="org-src-container">
<pre class="src src-matlab">En_dvf = En;
Eg_dvf = Eg;
save(<span class="org-string">'./active_damping/mat/tomo_exp.mat'</span>, <span class="org-string">'En_dvf'</span>, <span class="org-string">'Eg_dvf'</span>, <span class="org-string">'-append'</span>);
save(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span class="org-string">'En_dvf'</span>, <span class="org-string">'Eg_dvf'</span>, <span class="org-string">'-append'</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-orgbe122b9" class="outline-4">
<h4 id="orgbe122b9"><span class="section-number-4">4.2.2</span> Compare with Undamped system</h4>
<div id="outline-container-orge7a0ad9" class="outline-4">
<h4 id="orge7a0ad9"><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="orge2d1a4a" class="figure">
@@ -1441,8 +1419,8 @@ save(<span class="org-string">'./active_damping/mat/tomo_exp.mat'</span>, <span
</div>
</div>
<div id="outline-container-org2edf5bd" class="outline-3">
<h3 id="org2edf5bd"><span class="section-number-3">4.3</span> Conclusion</h3>
<div id="outline-container-orgc00cb88" class="outline-3">
<h3 id="orgc00cb88"><span class="section-number-3">4.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-3">
<div class="important">
<p>
@@ -1474,19 +1452,19 @@ In Inertial Control, a feedback is applied between the measured <b>absolute</b>
</p>
</div>
<div id="outline-container-org5bec512" class="outline-3">
<h3 id="org5bec512"><span class="section-number-3">5.1</span> Control Design</h3>
<div id="outline-container-org40e3ea7" class="outline-3">
<h3 id="org40e3ea7"><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-org16795b0" class="outline-4">
<h4 id="org16795b0"><span class="section-number-4">5.1.1</span> Plant</h4>
<div id="outline-container-orgbceccd1" class="outline-4">
<h4 id="orgbceccd1"><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:
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/undamped_plants.mat'</span>, <span class="org-string">'G_ine'</span>);
load(<span class="org-string">'./active_damping/mat/plants_variable.mat'</span>, <span class="org-string">'masses'</span>, <span class="org-string">'Gm_ine'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_undamped_plants.mat'</span>, <span class="org-string">'G_ine'</span>);
load(<span class="org-string">'./mat/active_damping_plants_variable.mat'</span>, <span class="org-string">'masses'</span>, <span class="org-string">'Gm_ine'</span>);
</pre>
</div>
@@ -1503,8 +1481,8 @@ Let&rsquo;s look at the transfer function from actuator forces in the nano-hexap
</div>
</div>
<div id="outline-container-org9ce4e10" class="outline-4">
<h4 id="org9ce4e10"><span class="section-number-4">5.1.2</span> Control Design</h4>
<div id="outline-container-orgc8e27a6" class="outline-4">
<h4 id="orgc8e27a6"><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="#org76d929a">41</a>.
@@ -1524,8 +1502,8 @@ The controller is defined below and the obtained loop gain is shown in figure <a
</div>
</div>
<div id="outline-container-org132c666" class="outline-4">
<h4 id="org132c666"><span class="section-number-4">5.1.3</span> Diagonal Controller</h4>
<div id="outline-container-org165dd29" class="outline-4">
<h4 id="org165dd29"><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.
@@ -1539,15 +1517,15 @@ We create the diagonal controller and we add a minus sign as we have a positive
We save the controller for further analysis.
</p>
<div class="org-src-container">
<pre class="src src-matlab">save(<span class="org-string">'./active_damping/mat/K_ine.mat'</span>, <span class="org-string">'K_ine'</span>);
<pre class="src src-matlab">save(<span class="org-string">'./mat/active_damping_K_ine.mat'</span>, <span class="org-string">'K_ine'</span>);
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org408de58" class="outline-3">
<h3 id="org408de58"><span class="section-number-3">5.2</span> Conclusion</h3>
<div id="outline-container-org5587c6f" class="outline-3">
<h3 id="org5587c6f"><span class="section-number-3">5.2</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-2">
<div class="important">
<p>
@@ -1570,7 +1548,7 @@ Inertial Control should not be used.
<h3 id="org68994db"><span class="section-number-3">6.1</span> Load the plants</h3>
<div class="outline-text-3" id="text-6-1">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/plants.mat'</span>, <span class="org-string">'G'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'G_ine'</span>, <span class="org-string">'G_dvf'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_plants.mat'</span>, <span class="org-string">'G'</span>, <span class="org-string">'G_iff'</span>, <span class="org-string">'G_ine'</span>, <span class="org-string">'G_dvf'</span>);
</pre>
</div>
</div>
@@ -1648,7 +1626,7 @@ Inertial Control should not be used.
<h3 id="orgd49b825"><span class="section-number-3">6.4</span> Tomography Experiment - Frequency Domain analysis</h3>
<div class="outline-text-3" id="text-6-4">
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'./active_damping/mat/tomo_exp.mat'</span>, <span class="org-string">'En'</span>, <span class="org-string">'En_iff'</span>, <span class="org-string">'En_dvf'</span>);
<pre class="src src-matlab">load(<span class="org-string">'./mat/active_damping_tomo_exp.mat'</span>, <span class="org-string">'En'</span>, <span class="org-string">'En_iff'</span>, <span class="org-string">'En_dvf'</span>);
Fs = 1e3; <span class="org-comment">% Sampling Frequency of the Data</span>
t = (1<span class="org-type">/</span>Fs)<span class="org-type">*</span>[0<span class="org-type">:</span>length(En(<span class="org-type">:</span>,1))<span class="org-type">-</span>1];
</pre>
@@ -1723,9 +1701,9 @@ This Matlab function is accessible <a href="src/prepareLinearizeIdentification.m
</p>
</div>
<div id="outline-container-org2b7c7da" class="outline-4">
<h4 id="org2b7c7da">Function Description</h4>
<div class="outline-text-4" id="text-org2b7c7da">
<div id="outline-container-orgbcbb56e" class="outline-4">
<h4 id="orgbcbb56e">Function Description</h4>
<div class="outline-text-4" id="text-orgbcbb56e">
<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>
@@ -1733,9 +1711,9 @@ This Matlab function is accessible <a href="src/prepareLinearizeIdentification.m
</div>
</div>
<div id="outline-container-org6e16103" class="outline-4">
<h4 id="org6e16103">Optional Parameters</h4>
<div class="outline-text-4" id="text-org6e16103">
<div id="outline-container-orgb2bfb6d" class="outline-4">
<h4 id="orgb2bfb6d">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgb2bfb6d">
<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>
@@ -1746,9 +1724,9 @@ This Matlab function is accessible <a href="src/prepareLinearizeIdentification.m
</div>
</div>
<div id="outline-container-org552f1ca" class="outline-4">
<h4 id="org552f1ca">Initialize the Simulation</h4>
<div class="outline-text-4" id="text-org552f1ca">
<div id="outline-container-org491e801" class="outline-4">
<h4 id="org491e801">Initialize the Simulation</h4>
<div class="outline-text-4" id="text-org491e801">
<p>
We initialize all the stages with the default parameters.
</p>
@@ -1821,9 +1799,9 @@ This Matlab function is accessible <a href="src/prepareTomographyExperiment.m">h
</p>
</div>
<div id="outline-container-org6dacc19" class="outline-4">
<h4 id="org6dacc19">Function Description</h4>
<div class="outline-text-4" id="text-org6dacc19">
<div id="outline-container-org8c658fc" class="outline-4">
<h4 id="org8c658fc">Function Description</h4>
<div class="outline-text-4" id="text-org8c658fc">
<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>
@@ -1831,9 +1809,9 @@ This Matlab function is accessible <a href="src/prepareTomographyExperiment.m">h
</div>
</div>
<div id="outline-container-org65022a7" class="outline-4">
<h4 id="org65022a7">Optional Parameters</h4>
<div class="outline-text-4" id="text-org65022a7">
<div id="outline-container-org80c975b" class="outline-4">
<h4 id="org80c975b">Optional Parameters</h4>
<div class="outline-text-4" id="text-org80c975b">
<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>
@@ -1845,9 +1823,9 @@ This Matlab function is accessible <a href="src/prepareTomographyExperiment.m">h
</div>
</div>
<div id="outline-container-orga0e6a80" class="outline-4">
<h4 id="orga0e6a80">Initialize the Simulation</h4>
<div class="outline-text-4" id="text-orga0e6a80">
<div id="outline-container-org65e26b7" class="outline-4">
<h4 id="org65e26b7">Initialize the Simulation</h4>
<div class="outline-text-4" id="text-org65e26b7">
<p>
We initialize all the stages with the default parameters.
</p>
@@ -1915,7 +1893,7 @@ We log the signals.
</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>