Correct some typos

This commit is contained in:
Thomas Dehaeze 2021-06-14 18:08:46 +02:00
parent fabc3d2cb8
commit 6bf63cdbc2
3 changed files with 241 additions and 156 deletions

View File

@ -3,7 +3,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>
<!-- 2021-06-14 lun. 17:24 -->
<!-- 2021-06-14 lun. 18:07 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Nano-Hexapod - Test Bench</title>
<meta name="author" content="Dehaeze Thomas" />
@ -39,54 +39,54 @@
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org5c42276">1. Encoders fixed to the Struts</a>
<li><a href="#org4f28452">1. Encoders fixed to the Struts</a>
<ul>
<li><a href="#orge93a02f">1.1. Introduction</a></li>
<li><a href="#org0640b0f">1.2. Identification of the dynamics</a>
<li><a href="#orgdb58b6b">1.1. Introduction</a></li>
<li><a href="#orga23f4a3">1.2. Identification of the dynamics</a>
<ul>
<li><a href="#org1fc2e33">1.2.1. Load Data</a></li>
<li><a href="#org27129af">1.2.2. Spectral Analysis - Setup</a></li>
<li><a href="#orgfe67585">1.2.3. DVF Plant</a></li>
<li><a href="#org3674942">1.2.4. IFF Plant</a></li>
<li><a href="#org463f1c5">1.2.1. Load Data</a></li>
<li><a href="#orga89822b">1.2.2. Spectral Analysis - Setup</a></li>
<li><a href="#org2ea8050">1.2.3. DVF Plant</a></li>
<li><a href="#org3af4d82">1.2.4. IFF Plant</a></li>
</ul>
</li>
<li><a href="#org90b8ca8">1.3. Comparison with the Simscape Model</a>
<li><a href="#org0d5bead">1.3. Comparison with the Simscape Model</a>
<ul>
<li><a href="#org7f3653d">1.3.1. Dynamics from Actuator to Force Sensors</a></li>
<li><a href="#orgf2b8f1a">1.3.2. Dynamics from Actuator to Encoder</a></li>
<li><a href="#org52ed397">1.3.1. Dynamics from Actuator to Force Sensors</a></li>
<li><a href="#org6bb92e5">1.3.2. Dynamics from Actuator to Encoder</a></li>
</ul>
</li>
<li><a href="#orgcb40fee">1.4. Integral Force Feedback</a>
<li><a href="#org9537bdd">1.4. Integral Force Feedback</a>
<ul>
<li><a href="#org454aab2">1.4.1. Root Locus and Decentralized Loop gain</a></li>
<li><a href="#orgf25396d">1.4.2. Multiple Gains - Simulation</a></li>
<li><a href="#org9e5a43a">1.4.3. Experimental Results - Gains</a>
<li><a href="#org1092513">1.4.1. Root Locus and Decentralized Loop gain</a></li>
<li><a href="#orgb15799f">1.4.2. Multiple Gains - Simulation</a></li>
<li><a href="#orgfc28d74">1.4.3. Experimental Results - Gains</a>
<ul>
<li><a href="#org7528195">1.4.3.1. Load Data</a></li>
<li><a href="#org014c26e">1.4.3.2. Spectral Analysis - Setup</a></li>
<li><a href="#orga410c78">1.4.3.3. DVF Plant</a></li>
<li><a href="#org97f2ad7">1.4.3.4. Experimental Results - Comparison of the un-damped and fully damped system</a></li>
<li><a href="#orgc87e132">1.4.3.1. Load Data</a></li>
<li><a href="#org082cedd">1.4.3.2. Spectral Analysis - Setup</a></li>
<li><a href="#orgf617003">1.4.3.3. DVF Plant</a></li>
<li><a href="#orgfaa6821">1.4.3.4. Experimental Results - Comparison of the un-damped and fully damped system</a></li>
</ul>
</li>
<li><a href="#org38e77db">1.4.4. Experimental Results - Damped Plant with Optimal gain</a>
<li><a href="#orgc0e0293">1.4.4. Experimental Results - Damped Plant with Optimal gain</a>
<ul>
<li><a href="#org5b64143">1.4.4.1. Load Data</a></li>
<li><a href="#org9d60597">1.4.4.2. Spectral Analysis - Setup</a></li>
<li><a href="#org5e16098">1.4.4.3. DVF Plant</a></li>
<li><a href="#org04a0c15">1.4.4.1. Load Data</a></li>
<li><a href="#org288970e">1.4.4.2. Spectral Analysis - Setup</a></li>
<li><a href="#orgbe5d7c4">1.4.4.3. DVF Plant</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#orgcf93367">1.5. Modal Analysis</a>
<li><a href="#org4d2a6a9">1.5. Modal Analysis</a>
<ul>
<li><a href="#org4380b82">1.5.1. Effectiveness of the IFF Strategy - Compliance</a></li>
<li><a href="#org432b9c9">1.5.2. Comparison with the Simscape Model</a></li>
<li><a href="#org9e1cc1a">1.5.3. Obtained Mode Shapes</a></li>
<li><a href="#org76f1cc6">1.5.1. Effectiveness of the IFF Strategy - Compliance</a></li>
<li><a href="#org1c35d39">1.5.2. Comparison with the Simscape Model</a></li>
<li><a href="#org2fb301f">1.5.3. Obtained Mode Shapes</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#org6382ca3">2. Encoders fixed to the plates</a></li>
<li><a href="#orgfd9b3f1">2. Encoders fixed to the plates</a></li>
</ul>
</div>
</div>
@ -95,12 +95,19 @@
<hr>
<p>
In this document, the dynamics of the nano-hexapod shown in Figure <a href="#org19c1f7f">1</a> is identified.
This document is dedicated to the experimental study of the nano-hexapod shown in Figure <a href="#orgf67b6ef">1</a>.
</p>
<div class="note" id="org1ec7b22">
<div id="orgf67b6ef" class="figure">
<p><img src="figs/IMG_20210608_152917.jpg" alt="IMG_20210608_152917.jpg" />
</p>
<p><span class="figure-number">Figure 1: </span>Nano-Hexapod</p>
</div>
<div class="note" id="org75105c3">
<p>
Here are the documentation of the equipment used for this test bench:
Here are the documentation of the equipment used for this test bench (lots of them are shwon in Figure <a href="#org800f7b8">2</a>):
</p>
<ul class="org-ul">
<li>Voltage Amplifier: PiezoDrive <a href="doc/PD200-V7-R1.pdf">PD200</a></li>
@ -113,27 +120,25 @@ Here are the documentation of the equipment used for this test bench:
</div>
<div id="org19c1f7f" class="figure">
<p><img src="figs/IMG_20210608_152917.jpg" alt="IMG_20210608_152917.jpg" />
</p>
<p><span class="figure-number">Figure 1: </span>Nano-Hexapod</p>
</div>
<div id="org224dec6" class="figure">
<div id="org800f7b8" class="figure">
<p><img src="figs/IMG_20210608_154722.jpg" alt="IMG_20210608_154722.jpg" />
</p>
<p><span class="figure-number">Figure 2: </span>Nano-Hexapod and the control electronics</p>
</div>
<p>
In Figure <a href="#orgc1fc8a4">3</a> is shown a block diagram of the experimental setup.
When possible, the notations are consistent with this diagram and summarized in Table <a href="#org211ae1e">1</a>.
</p>
<div id="orgd82bcd1" class="figure">
<div id="orgc1fc8a4" class="figure">
<p><img src="figs/nano_hexapod_signals.png" alt="nano_hexapod_signals.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Block diagram of the system with named signals</p>
</div>
<table id="orga3794c2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org211ae1e" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 1:</span> List of signals</caption>
<colgroup>
@ -250,25 +255,50 @@ Here are the documentation of the equipment used for this test bench:
</tbody>
</table>
<div id="outline-container-org5c42276" class="outline-2">
<h2 id="org5c42276"><span class="section-number-2">1</span> Encoders fixed to the Struts</h2>
<p>
This document is divided in the following sections:
</p>
<ul class="org-ul">
<li>Section <a href="#org7e4eeef">1</a>: the encoders are fixed to the struts</li>
<li>Section <a href="#org6f5eb76">2</a>: the encoders are fixed to the plates</li>
</ul>
<div id="outline-container-org4f28452" class="outline-2">
<h2 id="org4f28452"><span class="section-number-2">1</span> Encoders fixed to the Struts</h2>
<div class="outline-text-2" id="text-1">
<p>
<a id="org7e4eeef"></a>
</p>
</div>
<div id="outline-container-orge93a02f" class="outline-3">
<h3 id="orge93a02f"><span class="section-number-3">1.1</span> Introduction</h3>
<div id="outline-container-orgdb58b6b" class="outline-3">
<h3 id="orgdb58b6b"><span class="section-number-3">1.1</span> Introduction</h3>
<div class="outline-text-3" id="text-1-1">
<p>
In this section, the encoders are fixed to the struts.
</p>
<p>
It is divided in the following sections:
</p>
<ul class="org-ul">
<li>Section <a href="#org9c2cb86">1.2</a>: the transfer function matrix from the actuators to the force sensors and to the encoders is experimentally identified.</li>
<li>Section <a href="#org860409f">1.3</a>: the obtained FRF matrix is compared with the dynamics of the simscape model</li>
<li>Section <a href="#org941b355">1.4</a>: decentralized Integral Force Feedback (IFF) is applied and its performances are evaluated.</li>
<li>Section <a href="#orgb37d2f8">1.5</a>: a modal analysis of the nano-hexapod is performed</li>
</ul>
</div>
</div>
<div id="outline-container-org0640b0f" class="outline-3">
<h3 id="org0640b0f"><span class="section-number-3">1.2</span> Identification of the dynamics</h3>
<div id="outline-container-orga23f4a3" class="outline-3">
<h3 id="orga23f4a3"><span class="section-number-3">1.2</span> Identification of the dynamics</h3>
<div class="outline-text-3" id="text-1-2">
<p>
<a id="org9c2cb86"></a>
</p>
</div>
<div id="outline-container-org1fc2e33" class="outline-4">
<h4 id="org1fc2e33"><span class="section-number-4">1.2.1</span> Load Data</h4>
<div id="outline-container-org463f1c5" class="outline-4">
<h4 id="org463f1c5"><span class="section-number-4">1.2.1</span> Load Data</h4>
<div class="outline-text-4" id="text-1-2-1">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Load Identification Data</span></span>
@ -283,8 +313,8 @@ meas_data_lf = {};
</div>
</div>
<div id="outline-container-org27129af" class="outline-4">
<h4 id="org27129af"><span class="section-number-4">1.2.2</span> Spectral Analysis - Setup</h4>
<div id="outline-container-orga89822b" class="outline-4">
<h4 id="orga89822b"><span class="section-number-4">1.2.2</span> Spectral Analysis - Setup</h4>
<div class="outline-text-4" id="text-1-2-2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Setup useful variables</span></span>
@ -307,11 +337,11 @@ i_hf = f <span class="org-type">&gt;</span> 250; <span class="org-comment">% Poi
</div>
</div>
<div id="outline-container-orgfe67585" class="outline-4">
<h4 id="orgfe67585"><span class="section-number-4">1.2.3</span> DVF Plant</h4>
<div id="outline-container-org2ea8050" class="outline-4">
<h4 id="org2ea8050"><span class="section-number-4">1.2.3</span> DVF Plant</h4>
<div class="outline-text-4" id="text-1-2-3">
<p>
First, let&rsquo;s compute the coherence from the excitation voltage and the displacement as measured by the encoders (Figure <a href="#org47768a4">4</a>).
First, let&rsquo;s compute the coherence from the excitation voltage and the displacement as measured by the encoders (Figure <a href="#org83cc12f">4</a>).
</p>
<div class="org-src-container">
@ -327,14 +357,14 @@ coh_dvf_hf = zeros(length(f), 6, 6);
</div>
<div id="org47768a4" class="figure">
<div id="org83cc12f" class="figure">
<p><img src="figs/enc_struts_dvf_coh.png" alt="enc_struts_dvf_coh.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Obtained coherence for the DVF plant</p>
</div>
<p>
Then the 6x6 transfer function matrix is estimated (Figure <a href="#orgff1ab10">5</a>).
Then the 6x6 transfer function matrix is estimated (Figure <a href="#org18fb1d6">5</a>).
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% DVF Plant (transfer function from u to dLm)</span></span>
@ -349,7 +379,7 @@ G_dvf_hf = zeros(length(f), 6, 6);
</div>
<div id="orgff1ab10" class="figure">
<div id="org18fb1d6" class="figure">
<p><img src="figs/enc_struts_dvf_frf.png" alt="enc_struts_dvf_frf.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Measured FRF for the DVF plant</p>
@ -358,11 +388,11 @@ G_dvf_hf = zeros(length(f), 6, 6);
</div>
<div id="outline-container-org3674942" class="outline-4">
<h4 id="org3674942"><span class="section-number-4">1.2.4</span> IFF Plant</h4>
<div id="outline-container-org3af4d82" class="outline-4">
<h4 id="org3af4d82"><span class="section-number-4">1.2.4</span> IFF Plant</h4>
<div class="outline-text-4" id="text-1-2-4">
<p>
First, let&rsquo;s compute the coherence from the excitation voltage and the displacement as measured by the encoders (Figure <a href="#org5d46af6">6</a>).
First, let&rsquo;s compute the coherence from the excitation voltage and the displacement as measured by the encoders (Figure <a href="#org01dd40a">6</a>).
</p>
<div class="org-src-container">
@ -379,14 +409,14 @@ coh_iff_hf = zeros(length(f), 6, 6);
</div>
<div id="org5d46af6" class="figure">
<div id="org01dd40a" class="figure">
<p><img src="figs/enc_struts_iff_coh.png" alt="enc_struts_iff_coh.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Obtained coherence for the IFF plant</p>
</div>
<p>
Then the 6x6 transfer function matrix is estimated (Figure <a href="#org7d56a08">7</a>).
Then the 6x6 transfer function matrix is estimated (Figure <a href="#org671b27d">7</a>).
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% IFF Plant</span></span>
@ -401,7 +431,7 @@ G_iff_hf = zeros(length(f), 6, 6);
</div>
<div id="org7d56a08" class="figure">
<div id="org671b27d" class="figure">
<p><img src="figs/enc_struts_iff_frf.png" alt="enc_struts_iff_frf.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Measured FRF for the IFF plant</p>
@ -410,16 +440,18 @@ G_iff_hf = zeros(length(f), 6, 6);
</div>
</div>
<div id="outline-container-org90b8ca8" class="outline-3">
<h3 id="org90b8ca8"><span class="section-number-3">1.3</span> Comparison with the Simscape Model</h3>
<div id="outline-container-org0d5bead" class="outline-3">
<h3 id="org0d5bead"><span class="section-number-3">1.3</span> Comparison with the Simscape Model</h3>
<div class="outline-text-3" id="text-1-3">
<p>
<a id="org860409f"></a>
</p>
<p>
In this section, the measured dynamics is compared with the dynamics estimated from the Simscape model.
</p>
</div>
<div id="outline-container-org7f3653d" class="outline-4">
<h4 id="org7f3653d"><span class="section-number-4">1.3.1</span> Dynamics from Actuator to Force Sensors</h4>
<div id="outline-container-org52ed397" class="outline-4">
<h4 id="org52ed397"><span class="section-number-4">1.3.1</span> Dynamics from Actuator to Force Sensors</h4>
<div class="outline-text-4" id="text-1-3-1">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Initialize Nano-Hexapod</span></span>
@ -441,14 +473,14 @@ Giff = exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts)<sp
</div>
<div id="orgaec8567" class="figure">
<div id="orgfe01cea" class="figure">
<p><img src="figs/enc_struts_iff_comp_simscape.png" alt="enc_struts_iff_comp_simscape.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Diagonal elements of the IFF Plant</p>
</div>
<div id="orged3779d" class="figure">
<div id="org37f6405" class="figure">
<p><img src="figs/enc_struts_iff_comp_offdiag_simscape.png" alt="enc_struts_iff_comp_offdiag_simscape.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Off diagonal elements of the IFF Plant</p>
@ -456,8 +488,8 @@ Giff = exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts)<sp
</div>
</div>
<div id="outline-container-orgf2b8f1a" class="outline-4">
<h4 id="orgf2b8f1a"><span class="section-number-4">1.3.2</span> Dynamics from Actuator to Encoder</h4>
<div id="outline-container-org6bb92e5" class="outline-4">
<h4 id="org6bb92e5"><span class="section-number-4">1.3.2</span> Dynamics from Actuator to Encoder</h4>
<div class="outline-text-4" id="text-1-3-2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Initialization of the Nano-Hexapod</span></span>
@ -479,14 +511,14 @@ Gdvf = exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts)<sp
</div>
<div id="org2041eb7" class="figure">
<div id="org27467a4" class="figure">
<p><img src="figs/enc_struts_dvf_comp_simscape.png" alt="enc_struts_dvf_comp_simscape.png" />
</p>
<p><span class="figure-number">Figure 10: </span>Diagonal elements of the DVF Plant</p>
</div>
<div id="orgeb4abcc" class="figure">
<div id="orgf864568" class="figure">
<p><img src="figs/enc_struts_dvf_comp_offdiag_simscape.png" alt="enc_struts_dvf_comp_offdiag_simscape.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Off diagonal elements of the DVF Plant</p>
@ -495,12 +527,15 @@ Gdvf = exp(<span class="org-type">-</span>s<span class="org-type">*</span>Ts)<sp
</div>
</div>
<div id="outline-container-orgcb40fee" class="outline-3">
<h3 id="orgcb40fee"><span class="section-number-3">1.4</span> Integral Force Feedback</h3>
<div id="outline-container-org9537bdd" class="outline-3">
<h3 id="org9537bdd"><span class="section-number-3">1.4</span> Integral Force Feedback</h3>
<div class="outline-text-3" id="text-1-4">
<p>
<a id="org941b355"></a>
</p>
</div>
<div id="outline-container-org454aab2" class="outline-4">
<h4 id="org454aab2"><span class="section-number-4">1.4.1</span> Root Locus and Decentralized Loop gain</h4>
<div id="outline-container-org1092513" class="outline-4">
<h4 id="org1092513"><span class="section-number-4">1.4.1</span> Root Locus and Decentralized Loop gain</h4>
<div class="outline-text-4" id="text-1-4-1">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% IFF Controller</span></span>
@ -512,7 +547,7 @@ Kiff_g1 = (1<span class="org-type">/</span>(s <span class="org-type">+</span> 2<
</div>
<div id="orgd9ca9de" class="figure">
<div id="orgbecd90a" class="figure">
<p><img src="figs/enc_struts_iff_root_locus.png" alt="enc_struts_iff_root_locus.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Root Locus for the IFF control strategy</p>
@ -528,7 +563,7 @@ Kiff = g<span class="org-type">*</span>Kiff_g1;
</div>
<div id="org428110f" class="figure">
<div id="org67421cd" class="figure">
<p><img src="figs/enc_struts_iff_opt_loop_gain.png" alt="enc_struts_iff_opt_loop_gain.png" />
</p>
<p><span class="figure-number">Figure 13: </span>Bode plot of the &ldquo;decentralized loop gain&rdquo; \(G_\text{iff}(i,i) \times K_\text{iff}(i,i)\)</p>
@ -536,8 +571,8 @@ Kiff = g<span class="org-type">*</span>Kiff_g1;
</div>
</div>
<div id="outline-container-orgf25396d" class="outline-4">
<h4 id="orgf25396d"><span class="section-number-4">1.4.2</span> Multiple Gains - Simulation</h4>
<div id="outline-container-orgb15799f" class="outline-4">
<h4 id="orgb15799f"><span class="section-number-4">1.4.2</span> Multiple Gains - Simulation</h4>
<div class="outline-text-4" id="text-1-4-2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Tested IFF gains</span></span>
@ -573,7 +608,7 @@ io(io_i) = linio([mdl, <span class="org-string">'/D'</span>], 1, <span class="o
</div>
<div id="orgf455f45" class="figure">
<div id="org5e12ba5" class="figure">
<p><img src="figs/enc_struts_iff_gains_effect_dvf_plant.png" alt="enc_struts_iff_gains_effect_dvf_plant.png" />
</p>
<p><span class="figure-number">Figure 14: </span>Effect of the IFF gain \(g\) on the transfer function from \(\bm{\tau}\) to \(d\bm{\mathcal{L}}_m\)</p>
@ -581,16 +616,16 @@ io(io_i) = linio([mdl, <span class="org-string">'/D'</span>], 1, <span class="o
</div>
</div>
<div id="outline-container-org9e5a43a" class="outline-4">
<h4 id="org9e5a43a"><span class="section-number-4">1.4.3</span> Experimental Results - Gains</h4>
<div id="outline-container-orgfc28d74" class="outline-4">
<h4 id="orgfc28d74"><span class="section-number-4">1.4.3</span> Experimental Results - Gains</h4>
<div class="outline-text-4" id="text-1-4-3">
<p>
Let&rsquo;s look at the damping introduced by IFF as a function of the IFF gain and compare that with the results obtained using the Simscape model.
</p>
</div>
<div id="outline-container-org7528195" class="outline-5">
<h5 id="org7528195"><span class="section-number-5">1.4.3.1</span> Load Data</h5>
<div id="outline-container-orgc87e132" class="outline-5">
<h5 id="orgc87e132"><span class="section-number-5">1.4.3.1</span> Load Data</h5>
<div class="outline-text-5" id="text-1-4-3-1">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Load Identification Data</span></span>
@ -604,8 +639,8 @@ meas_iff_gains = {};
</div>
</div>
<div id="outline-container-org014c26e" class="outline-5">
<h5 id="org014c26e"><span class="section-number-5">1.4.3.2</span> Spectral Analysis - Setup</h5>
<div id="outline-container-org082cedd" class="outline-5">
<h5 id="org082cedd"><span class="section-number-5">1.4.3.2</span> Spectral Analysis - Setup</h5>
<div class="outline-text-5" id="text-1-4-3-2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Setup useful variables</span></span>
@ -625,8 +660,8 @@ win = hanning(ceil(1<span class="org-type">*</span>Fs));
</div>
</div>
<div id="outline-container-orga410c78" class="outline-5">
<h5 id="orga410c78"><span class="section-number-5">1.4.3.3</span> DVF Plant</h5>
<div id="outline-container-orgf617003" class="outline-5">
<h5 id="orgf617003"><span class="section-number-5">1.4.3.3</span> DVF Plant</h5>
<div class="outline-text-5" id="text-1-4-3-3">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% DVF Plant (transfer function from u to dLm)</span></span>
@ -639,20 +674,20 @@ G_iff_gains = {};
</div>
<div id="org4661cd1" class="figure">
<div id="org16336f2" class="figure">
<p><img src="figs/comp_iff_gains_dvf_plant.png" alt="comp_iff_gains_dvf_plant.png" />
</p>
<p><span class="figure-number">Figure 15: </span>Transfer function from \(u\) to \(d\mathcal{L}_m\) for multiple values of the IFF gain</p>
</div>
<div id="org106c1ed" class="figure">
<div id="orgcef8028" class="figure">
<p><img src="figs/comp_iff_gains_dvf_plant_zoom.png" alt="comp_iff_gains_dvf_plant_zoom.png" />
</p>
<p><span class="figure-number">Figure 16: </span>Transfer function from \(u\) to \(d\mathcal{L}_m\) for multiple values of the IFF gain (Zoom)</p>
</div>
<div class="important" id="org2517529">
<div class="important" id="orgf90d42d">
<p>
The IFF control strategy is very effective for the damping of the suspension modes.
It however does not damp the modes at 200Hz, 300Hz and 400Hz (flexible modes of the APA).
@ -667,29 +702,40 @@ Also, the experimental results and the models obtained from the Simscape model a
</div>
</div>
<div id="outline-container-org97f2ad7" class="outline-5">
<h5 id="org97f2ad7"><span class="section-number-5">1.4.3.4</span> Experimental Results - Comparison of the un-damped and fully damped system</h5>
<div id="outline-container-orgfaa6821" class="outline-5">
<h5 id="orgfaa6821"><span class="section-number-5">1.4.3.4</span> Experimental Results - Comparison of the un-damped and fully damped system</h5>
<div class="outline-text-5" id="text-1-4-3-4">
<div id="org58aadc4" class="figure">
<div id="org16f8986" class="figure">
<p><img src="figs/comp_undamped_opt_iff_gain_diagonal.png" alt="comp_undamped_opt_iff_gain_diagonal.png" />
</p>
<p><span class="figure-number">Figure 17: </span>Comparison of the diagonal elements of the tranfer function from \(\bm{u}\) to \(d\bm{\mathcal{L}}_m\) without active damping and with optimal IFF gain</p>
</div>
<div class="question" id="orgb8cc006">
<p>
A series of modes at around 205Hz are also damped.
</p>
<p>
Are these damped modes at 205Hz additional &ldquo;suspension&rdquo; modes or flexible modes of the struts?
</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org38e77db" class="outline-4">
<h4 id="org38e77db"><span class="section-number-4">1.4.4</span> Experimental Results - Damped Plant with Optimal gain</h4>
<div id="outline-container-orgc0e0293" class="outline-4">
<h4 id="orgc0e0293"><span class="section-number-4">1.4.4</span> Experimental Results - Damped Plant with Optimal gain</h4>
<div class="outline-text-4" id="text-1-4-4">
<p>
Let&rsquo;s now look at the \(6 \times 6\) damped plant with the optimal gain \(g = 400\).
</p>
</div>
<div id="outline-container-org5b64143" class="outline-5">
<h5 id="org5b64143"><span class="section-number-5">1.4.4.1</span> Load Data</h5>
<div id="outline-container-org04a0c15" class="outline-5">
<h5 id="org04a0c15"><span class="section-number-5">1.4.4.1</span> Load Data</h5>
<div class="outline-text-5" id="text-1-4-4-1">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Load Identification Data</span></span>
@ -703,8 +749,8 @@ meas_iff_struts = {};
</div>
</div>
<div id="outline-container-org9d60597" class="outline-5">
<h5 id="org9d60597"><span class="section-number-5">1.4.4.2</span> Spectral Analysis - Setup</h5>
<div id="outline-container-org288970e" class="outline-5">
<h5 id="org288970e"><span class="section-number-5">1.4.4.2</span> Spectral Analysis - Setup</h5>
<div class="outline-text-5" id="text-1-4-4-2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Setup useful variables</span></span>
@ -724,8 +770,8 @@ win = hanning(ceil(1<span class="org-type">*</span>Fs));
</div>
</div>
<div id="outline-container-org5e16098" class="outline-5">
<h5 id="org5e16098"><span class="section-number-5">1.4.4.3</span> DVF Plant</h5>
<div id="outline-container-orgbe5d7c4" class="outline-5">
<h5 id="orgbe5d7c4"><span class="section-number-5">1.4.4.3</span> DVF Plant</h5>
<div class="outline-text-5" id="text-1-4-4-3">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% DVF Plant (transfer function from u to dLm)</span></span>
@ -738,23 +784,23 @@ G_iff_opt = {};
</div>
<div id="org863be1b" class="figure">
<div id="org02df88f" class="figure">
<p><img src="figs/damped_iff_plant_comp_diagonal.png" alt="damped_iff_plant_comp_diagonal.png" />
</p>
<p><span class="figure-number">Figure 18: </span>Comparison of the diagonal elements of the transfer functions from \(\bm{u}\) to \(d\bm{\mathcal{L}}_m\) with active damping (IFF) applied with an optimal gain \(g = 400\)</p>
</div>
<div id="org071cb05" class="figure">
<div id="orgc6361cd" class="figure">
<p><img src="figs/damped_iff_plant_comp_off_diagonal.png" alt="damped_iff_plant_comp_off_diagonal.png" />
</p>
<p><span class="figure-number">Figure 19: </span>Comparison of the off-diagonal elements of the transfer functions from \(\bm{u}\) to \(d\bm{\mathcal{L}}_m\) with active damping (IFF) applied with an optimal gain \(g = 400\)</p>
</div>
<div class="important" id="org57eccf4">
<div class="important" id="org1353115">
<p>
With the IFF control strategy applied and the optimal gain used, the suspension modes are very well dapmed.
Remains the undamped flexible modes of the APA, and the modes of the plates.
With the IFF control strategy applied and the optimal gain used, the suspension modes are very well damped.
Remains the undamped flexible modes of the APA (200Hz, 300Hz, 400Hz), and the modes of the plates (700Hz).
</p>
<p>
@ -767,34 +813,36 @@ The Simscape model and the experimental results are in very good agreement.
</div>
</div>
<div id="outline-container-orgcf93367" class="outline-3">
<h3 id="orgcf93367"><span class="section-number-3">1.5</span> Modal Analysis</h3>
<div id="outline-container-org4d2a6a9" class="outline-3">
<h3 id="org4d2a6a9"><span class="section-number-3">1.5</span> Modal Analysis</h3>
<div class="outline-text-3" id="text-1-5">
<p>
Several 3-axis accelerometers are fixed on the top platform of the nano-hexapod as shown in Figure <a href="#orgbafa9c1">22</a>.
<a id="orgb37d2f8"></a>
</p>
<p>
Several 3-axis accelerometers are fixed on the top platform of the nano-hexapod as shown in Figure <a href="#orgcc43dbe">22</a>.
</p>
<div id="org30849ed" class="figure">
<div id="org6f43329" class="figure">
<p><img src="figs/accelerometers_nano_hexapod.jpg" alt="accelerometers_nano_hexapod.jpg" />
</p>
<p><span class="figure-number">Figure 20: </span>Location of the accelerometers on top of the nano-hexapod</p>
</div>
<p>
The top platform is then excited using an instrumented hammer as shown in Figure <a href="#orge948ff2">21</a>.
The top platform is then excited using an instrumented hammer as shown in Figure <a href="#org5333181">21</a>.
</p>
<div id="orge948ff2" class="figure">
<div id="org5333181" class="figure">
<p><img src="figs/hammer_excitation_compliance_meas.jpg" alt="hammer_excitation_compliance_meas.jpg" />
</p>
<p><span class="figure-number">Figure 21: </span>Example of an excitation using an instrumented hammer</p>
</div>
</div>
<div id="outline-container-org4380b82" class="outline-4">
<h4 id="org4380b82"><span class="section-number-4">1.5.1</span> Effectiveness of the IFF Strategy - Compliance</h4>
<div id="outline-container-org76f1cc6" class="outline-4">
<h4 id="org76f1cc6"><span class="section-number-4">1.5.1</span> Effectiveness of the IFF Strategy - Compliance</h4>
<div class="outline-text-4" id="text-1-5-1">
<p>
In this section, we wish to estimated the effectiveness of the IFF strategy concerning the compliance.
@ -828,28 +876,32 @@ d_frf_iff = 10<span class="org-type">/</span>5<span class="org-type">*</span>(fr
</div>
<p>
The vertical compliance (magnitude of the transfer function from a vertical force applied on the top plate to the vertical motion of the top plate) is shown in Figure <a href="#orgbafa9c1">22</a>.
The vertical compliance (magnitude of the transfer function from a vertical force applied on the top plate to the vertical motion of the top plate) is shown in Figure <a href="#orgcc43dbe">22</a>.
</p>
<div id="orgbafa9c1" class="figure">
<div id="orgcc43dbe" class="figure">
<p><img src="figs/compliance_vertical_comp_iff.png" alt="compliance_vertical_comp_iff.png" />
</p>
<p><span class="figure-number">Figure 22: </span>Measured vertical compliance with and without IFF</p>
</div>
<div class="important" id="orgada0906">
<div class="important" id="org38045ac">
<p>
From Figure <a href="#orgbafa9c1">22</a>, it is clear that the IFF control strategy is very effective in damping the suspensions modes of the nano-hexapode.
From Figure <a href="#orgcc43dbe">22</a>, it is clear that the IFF control strategy is very effective in damping the suspensions modes of the nano-hexapode.
It also has the effect of degrading (slightly) the vertical compliance at low frequency.
</p>
<p>
It also seems some damping can be added to the modes at around 205Hz which are flexible modes of the struts.
</p>
</div>
</div>
</div>
<div id="outline-container-org432b9c9" class="outline-4">
<h4 id="org432b9c9"><span class="section-number-4">1.5.2</span> Comparison with the Simscape Model</h4>
<div id="outline-container-org1c35d39" class="outline-4">
<h4 id="org1c35d39"><span class="section-number-4">1.5.2</span> Comparison with the Simscape Model</h4>
<div class="outline-text-4" id="text-1-5-2">
<p>
Let&rsquo;s now compare the measured vertical compliance with the vertical compliance as estimated from the Simscape model.
@ -857,11 +909,11 @@ Let&rsquo;s now compare the measured vertical compliance with the vertical compl
<p>
The transfer function from a vertical external force to the absolute motion of the top platform is identified (with and without IFF) using the Simscape model.
The comparison is done in Figure <a href="#org871a1cd">23</a>.
Again, the model is quire accurate!
The comparison is done in Figure <a href="#org8a08cb4">23</a>.
Again, the model is quite accurate!
</p>
<div id="org871a1cd" class="figure">
<div id="org8a08cb4" class="figure">
<p><img src="figs/compliance_vertical_comp_model_iff.png" alt="compliance_vertical_comp_model_iff.png" />
</p>
<p><span class="figure-number">Figure 23: </span>Measured vertical compliance with and without IFF</p>
@ -869,40 +921,40 @@ Again, the model is quire accurate!
</div>
</div>
<div id="outline-container-org9e1cc1a" class="outline-4">
<h4 id="org9e1cc1a"><span class="section-number-4">1.5.3</span> Obtained Mode Shapes</h4>
<div id="outline-container-org2fb301f" class="outline-4">
<h4 id="org2fb301f"><span class="section-number-4">1.5.3</span> Obtained Mode Shapes</h4>
<div class="outline-text-4" id="text-1-5-3">
<p>
Then, several excitation are performed using the instrumented Hammer and the mode shapes are extracted.
</p>
<p>
We can observe the mode shapes of the first 6 modes that are the suspension modes (the plate is behaving as a solid body) in Figure <a href="#org46cb63b">24</a>.
We can observe the mode shapes of the first 6 modes that are the suspension modes (the plate is behaving as a solid body) in Figure <a href="#org5b33924">24</a>.
</p>
<div id="org46cb63b" class="figure">
<div id="org5b33924" class="figure">
<p><img src="figs/mode_shapes_annotated.gif" alt="mode_shapes_annotated.gif" />
</p>
<p><span class="figure-number">Figure 24: </span>Measured mode shapes for the first six modes</p>
</div>
<p>
Then, there is a mode at 692Hz which corresponds to a flexible mode of the top plate (Figure <a href="#org46cb63b">24</a>).
Then, there is a mode at 692Hz which corresponds to a flexible mode of the top plate (Figure <a href="#org5b33924">24</a>).
</p>
<div id="org04d65e3" class="figure">
<div id="orgb4a4a07" class="figure">
<p><img src="figs/ModeShapeFlex1_crop.gif" alt="ModeShapeFlex1_crop.gif" />
</p>
<p><span class="figure-number">Figure 25: </span>First flexible mode at 692Hz</p>
</div>
<p>
The obtained modes are summarized in Table <a href="#org3a99570">2</a>.
The obtained modes are summarized in Table <a href="#org0c9e4da">2</a>.
</p>
<table id="org3a99570" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="org0c9e4da" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 2:</span> Description of the identified modes</caption>
<colgroup>
@ -914,8 +966,8 @@ The obtained modes are summarized in Table <a href="#org3a99570">2</a>.
</colgroup>
<thead>
<tr>
<th scope="col" class="org-right">Mode Number</th>
<th scope="col" class="org-right">Frequency [Hz]</th>
<th scope="col" class="org-right">Mode</th>
<th scope="col" class="org-right">Freq. [Hz]</th>
<th scope="col" class="org-left">Description</th>
</tr>
</thead>
@ -923,13 +975,13 @@ The obtained modes are summarized in Table <a href="#org3a99570">2</a>.
<tr>
<td class="org-right">1</td>
<td class="org-right">105</td>
<td class="org-left">Suspension Mode: ~Y-translation</td>
<td class="org-left">Suspension Mode: Y-translation</td>
</tr>
<tr>
<td class="org-right">2</td>
<td class="org-right">107</td>
<td class="org-left">Suspension Mode: ~X-translation</td>
<td class="org-left">Suspension Mode: X-translation</td>
</tr>
<tr>
@ -941,13 +993,13 @@ The obtained modes are summarized in Table <a href="#org3a99570">2</a>.
<tr>
<td class="org-right">4</td>
<td class="org-right">161</td>
<td class="org-left">Suspension Mode: ~Y-tilt</td>
<td class="org-left">Suspension Mode: Y-tilt</td>
</tr>
<tr>
<td class="org-right">5</td>
<td class="org-right">162</td>
<td class="org-left">Suspension Mode: ~X-tilt</td>
<td class="org-left">Suspension Mode: X-tilt</td>
</tr>
<tr>
@ -968,13 +1020,18 @@ The obtained modes are summarized in Table <a href="#org3a99570">2</a>.
</div>
</div>
<div id="outline-container-org6382ca3" class="outline-2">
<h2 id="org6382ca3"><span class="section-number-2">2</span> Encoders fixed to the plates</h2>
<div id="outline-container-orgfd9b3f1" class="outline-2">
<h2 id="orgfd9b3f1"><span class="section-number-2">2</span> Encoders fixed to the plates</h2>
<div class="outline-text-2" id="text-2">
<p>
<a id="org6f5eb76"></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-06-14 lun. 17:24</p>
<p class="date">Created: 2021-06-14 lun. 18:07</p>
</div>
</body>
</html>

View File

@ -49,10 +49,15 @@
#+latex: \clearpage
* Introduction :ignore:
In this document, the dynamics of the nano-hexapod shown in Figure [[fig:picture_bench_granite_nano_hexapod]] is identified.
This document is dedicated to the experimental study of the nano-hexapod shown in Figure [[fig:picture_bench_granite_nano_hexapod]].
#+name: fig:picture_bench_granite_nano_hexapod
#+caption: Nano-Hexapod
#+attr_latex: :width \linewidth
[[file:figs/IMG_20210608_152917.jpg]]
#+begin_note
Here are the documentation of the equipment used for this test bench:
Here are the documentation of the equipment used for this test bench (lots of them are shwon in Figure [[fig:picture_bench_granite_overview]]):
- Voltage Amplifier: PiezoDrive [[file:doc/PD200-V7-R1.pdf][PD200]]
- Amplified Piezoelectric Actuator: Cedrat [[file:doc/APA300ML.pdf][APA300ML]]
- DAC/ADC: Speedgoat [[file:doc/IO131-OEM-Datasheet.pdf][IO313]]
@ -60,16 +65,14 @@ Here are the documentation of the equipment used for this test bench:
- Interferometers: Attocube
#+end_note
#+name: fig:picture_bench_granite_nano_hexapod
#+caption: Nano-Hexapod
#+attr_latex: :width \linewidth
[[file:figs/IMG_20210608_152917.jpg]]
#+name: fig:picture_bench_granite_overview
#+caption: Nano-Hexapod and the control electronics
#+attr_latex: :width \linewidth
[[file:figs/IMG_20210608_154722.jpg]]
In Figure [[fig:nano_hexapod_signals]] is shown a block diagram of the experimental setup.
When possible, the notations are consistent with this diagram and summarized in Table [[tab:list_signals]].
#+begin_src latex :file nano_hexapod_signals.pdf
\definecolor{instrumentation}{rgb}{0, 0.447, 0.741}
\definecolor{mechanics}{rgb}{0.8500, 0.325, 0.098}
@ -112,7 +115,6 @@ Here are the documentation of the equipment used for this test bench:
#+name: fig:nano_hexapod_signals
#+caption: Block diagram of the system with named signals
#+attr_latex: :scale 1
#+RESULTS:
[[file:figs/nano_hexapod_signals.png]]
#+name: tab:list_signals
@ -136,10 +138,22 @@ Here are the documentation of the equipment used for this test bench:
| Motion of the top platform | =[m,rad]= | =dX= | $d\bm{\mathcal{X}}$ | $d\mathcal{X}_i$ |
| Metrology measured displacement | =[m,rad]= | =dXm= | $d\bm{\mathcal{X}}_m$ | $d\mathcal{X}_{m,i}$ |
This document is divided in the following sections:
- Section [[sec:encoders_struts]]: the encoders are fixed to the struts
- Section [[sec:encoders_plates]]: the encoders are fixed to the plates
* Encoders fixed to the Struts
<<sec:encoders_struts>>
** Introduction
In this section, the encoders are fixed to the struts.
It is divided in the following sections:
- Section [[sec:enc_struts_plant_id]]: the transfer function matrix from the actuators to the force sensors and to the encoders is experimentally identified.
- Section [[sec:enc_struts_comp_simscape]]: the obtained FRF matrix is compared with the dynamics of the simscape model
- Section [[sec:enc_struts_iff]]: decentralized Integral Force Feedback (IFF) is applied and its performances are evaluated.
- Section [[sec:enc_struts_modal_analysis]]: a modal analysis of the nano-hexapod is performed
** Matlab Init :noexport:ignore:
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
<<matlab-dir>>
@ -161,6 +175,7 @@ addpath('./src/');
#+end_src
** Identification of the dynamics
<<sec:enc_struts_plant_id>>
*** Load Data
#+begin_src matlab
%% Load Identification Data
@ -614,6 +629,7 @@ exportFig('figs/enc_struts_iff_cart_frf.pdf', 'width', 'wide', 'height', 'tall')
[[file:figs/enc_struts_iff_cart_frf.png]]
** Comparison with the Simscape Model
<<sec:enc_struts_comp_simscape>>
*** Introduction :ignore:
In this section, the measured dynamics is compared with the dynamics estimated from the Simscape model.
@ -893,6 +909,7 @@ exportFig('figs/enc_struts_dvf_comp_offdiag_simscape.pdf', 'width', 'wide', 'hei
[[file:figs/enc_struts_dvf_comp_offdiag_simscape.png]]
** Integral Force Feedback
<<sec:enc_struts_iff>>
*** Root Locus and Decentralized Loop gain
#+begin_src matlab
%% IFF Controller
@ -1263,6 +1280,12 @@ exportFig('figs/comp_undamped_opt_iff_gain_diagonal.pdf', 'width', 'wide', 'heig
#+RESULTS:
[[file:figs/comp_undamped_opt_iff_gain_diagonal.png]]
#+begin_question
A series of modes at around 205Hz are also damped.
Are these damped modes at 205Hz additional "suspension" modes or flexible modes of the struts?
#+end_question
*** Experimental Results - Damped Plant with Optimal gain
**** Introduction :ignore:
Let's now look at the $6 \times 6$ damped plant with the optimal gain $g = 400$.
@ -1435,13 +1458,14 @@ exportFig('figs/damped_iff_plant_comp_off_diagonal.pdf', 'width', 'wide', 'heigh
[[file:figs/damped_iff_plant_comp_off_diagonal.png]]
#+begin_important
With the IFF control strategy applied and the optimal gain used, the suspension modes are very well dapmed.
Remains the undamped flexible modes of the APA, and the modes of the plates.
With the IFF control strategy applied and the optimal gain used, the suspension modes are very well damped.
Remains the undamped flexible modes of the APA (200Hz, 300Hz, 400Hz), and the modes of the plates (700Hz).
The Simscape model and the experimental results are in very good agreement.
#+end_important
** Modal Analysis
<<sec:enc_struts_modal_analysis>>
*** Introduction :ignore:
Several 3-axis accelerometers are fixed on the top platform of the nano-hexapod as shown in Figure [[fig:compliance_vertical_comp_iff]].
@ -1503,6 +1527,8 @@ exportFig('figs/compliance_vertical_comp_iff.pdf', 'width', 'wide', 'height', 'n
#+begin_important
From Figure [[fig:compliance_vertical_comp_iff]], it is clear that the IFF control strategy is very effective in damping the suspensions modes of the nano-hexapode.
It also has the effect of degrading (slightly) the vertical compliance at low frequency.
It also seems some damping can be added to the modes at around 205Hz which are flexible modes of the struts.
#+end_important
*** Comparison with the Simscape Model
@ -1539,7 +1565,7 @@ G_compl_z_iff = linearize(mdl, io, 0.0, options);
#+end_src
The comparison is done in Figure [[fig:compliance_vertical_comp_model_iff]].
Again, the model is quire accurate!
Again, the model is quite accurate!
#+begin_src matlab :exports none
%% Comparison of the measured compliance and the one obtained from the model
freqs = 2*logspace(1,3,1000);
@ -1601,4 +1627,6 @@ The obtained modes are summarized in Table [[tab:description_modes]].
| 7 | 692 | (flexible) Membrane mode of the top platform |
* Encoders fixed to the plates
<<sec:encoders_plates>>
** Introduction :ignore:

Binary file not shown.