Update analysis
This commit is contained in:
parent
81808a93d4
commit
ffaf716af0
BIN
figs/enc_struts_dvf_cart_frf.pdf
Normal file
BIN
figs/enc_struts_dvf_cart_frf.pdf
Normal file
Binary file not shown.
BIN
figs/enc_struts_dvf_cart_frf.png
Normal file
BIN
figs/enc_struts_dvf_cart_frf.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 260 KiB |
BIN
figs/enc_struts_iff_cart_frf.pdf
Normal file
BIN
figs/enc_struts_iff_cart_frf.pdf
Normal file
Binary file not shown.
BIN
figs/enc_struts_iff_cart_frf.png
Normal file
BIN
figs/enc_struts_iff_cart_frf.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 261 KiB |
BIN
figs/schematic_jacobian_in_out.pdf
Normal file
BIN
figs/schematic_jacobian_in_out.pdf
Normal file
Binary file not shown.
BIN
figs/schematic_jacobian_in_out.png
Normal file
BIN
figs/schematic_jacobian_in_out.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.2 KiB |
BIN
figs/schematic_jacobian_in_out.svg
Normal file
BIN
figs/schematic_jacobian_in_out.svg
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
@ -3,13 +3,30 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2021-06-08 mar. 22:15 -->
|
<!-- 2021-06-08 mar. 22:38 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<title>Nano-Hexapod - Test Bench</title>
|
<title>Nano-Hexapod - Test Bench</title>
|
||||||
<meta name="author" content="Dehaeze Thomas" />
|
<meta name="author" content="Dehaeze Thomas" />
|
||||||
<meta name="generator" content="Org Mode" />
|
<meta name="generator" content="Org Mode" />
|
||||||
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
|
||||||
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
|
||||||
|
<script>
|
||||||
|
MathJax = {
|
||||||
|
svg: {
|
||||||
|
scale: 1,
|
||||||
|
fontCache: "global"
|
||||||
|
},
|
||||||
|
tex: {
|
||||||
|
tags: "ams",
|
||||||
|
multlineWidth: "%MULTLINEWIDTH",
|
||||||
|
tagSide: "right",
|
||||||
|
macros: {bm: ["\\boldsymbol{#1}",1],},
|
||||||
|
tagIndent: ".8em"
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<script id="MathJax-script" async
|
||||||
|
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="org-div-home-and-up">
|
<div id="org-div-home-and-up">
|
||||||
@ -22,17 +39,17 @@
|
|||||||
<h2>Table of Contents</h2>
|
<h2>Table of Contents</h2>
|
||||||
<div id="text-table-of-contents">
|
<div id="text-table-of-contents">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orge60a691">1. Encoders fixed to the Struts</a>
|
<li><a href="#orgd7e7f5e">1. Encoders fixed to the Struts</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org7010817">1.1. Introduction</a></li>
|
<li><a href="#org00dcf35">1.1. Introduction</a></li>
|
||||||
<li><a href="#orga8cffa3">1.2. Load Data</a></li>
|
<li><a href="#orgb763144">1.2. Load Data</a></li>
|
||||||
<li><a href="#org46d9ef0">1.3. Spectral Analysis - Setup</a></li>
|
<li><a href="#orgb853f20">1.3. Spectral Analysis - Setup</a></li>
|
||||||
<li><a href="#org8d17470">1.4. DVF Plant</a></li>
|
<li><a href="#orge1489cc">1.4. DVF Plant</a></li>
|
||||||
<li><a href="#org22119eb">1.5. IFF Plant</a></li>
|
<li><a href="#org0c1cf8a">1.5. IFF Plant</a></li>
|
||||||
<li><a href="#org9f943b4">1.6. Jacobian</a>
|
<li><a href="#orgc6ecc36">1.6. Jacobian</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org31b15c3">1.6.1. DVF Plant</a></li>
|
<li><a href="#org1c3941e">1.6.1. DVF Plant</a></li>
|
||||||
<li><a href="#org6b0e225">1.6.2. IFF Plant</a></li>
|
<li><a href="#org31caf05">1.6.2. IFF Plant</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
@ -44,7 +61,7 @@
|
|||||||
<p>This report is also available as a <a href="./test-bench-nano-hexapod.pdf">pdf</a>.</p>
|
<p>This report is also available as a <a href="./test-bench-nano-hexapod.pdf">pdf</a>.</p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<div class="note" id="org6b76075">
|
<div class="note" id="orgf7b18a3">
|
||||||
<p>
|
<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:
|
||||||
</p>
|
</p>
|
||||||
@ -59,29 +76,34 @@ Here are the documentation of the equipment used for this test bench:
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org6594005" class="figure">
|
<div id="org2a6b667" class="figure">
|
||||||
<p><img src="figs/IMG_20210608_152917.jpg" alt="IMG_20210608_152917.jpg" />
|
<p><img src="figs/IMG_20210608_152917.jpg" alt="IMG_20210608_152917.jpg" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 1: </span>Nano-Hexapod</p>
|
<p><span class="figure-number">Figure 1: </span>Nano-Hexapod</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org0571a2e" class="figure">
|
<div id="org7b600dc" class="figure">
|
||||||
<p><img src="figs/IMG_20210608_154722.jpg" alt="IMG_20210608_154722.jpg" />
|
<p><img src="figs/IMG_20210608_154722.jpg" alt="IMG_20210608_154722.jpg" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 2: </span>Nano-Hexapod and the control electronics</p>
|
<p><span class="figure-number">Figure 2: </span>Nano-Hexapod and the control electronics</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orge60a691" class="outline-2">
|
<div id="outline-container-orgd7e7f5e" class="outline-2">
|
||||||
<h2 id="orge60a691"><span class="section-number-2">1</span> Encoders fixed to the Struts</h2>
|
<h2 id="orgd7e7f5e"><span class="section-number-2">1</span> Encoders fixed to the Struts</h2>
|
||||||
<div class="outline-text-2" id="text-1">
|
<div class="outline-text-2" id="text-1">
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-org7010817" class="outline-3">
|
<div id="outline-container-org00dcf35" class="outline-3">
|
||||||
<h3 id="org7010817"><span class="section-number-3">1.1</span> Introduction</h3>
|
<h3 id="org00dcf35"><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>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orga8cffa3" class="outline-3">
|
<div id="outline-container-orgb763144" class="outline-3">
|
||||||
<h3 id="orga8cffa3"><span class="section-number-3">1.2</span> Load Data</h3>
|
<h3 id="orgb763144"><span class="section-number-3">1.2</span> Load Data</h3>
|
||||||
<div class="outline-text-3" id="text-1-2">
|
<div class="outline-text-3" id="text-1-2">
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">meas_data_lf = {};
|
<pre class="src src-matlab">meas_data_lf = {};
|
||||||
@ -95,8 +117,8 @@ Here are the documentation of the equipment used for this test bench:
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org46d9ef0" class="outline-3">
|
<div id="outline-container-orgb853f20" class="outline-3">
|
||||||
<h3 id="org46d9ef0"><span class="section-number-3">1.3</span> Spectral Analysis - Setup</h3>
|
<h3 id="orgb853f20"><span class="section-number-3">1.3</span> Spectral Analysis - Setup</h3>
|
||||||
<div class="outline-text-3" id="text-1-3">
|
<div class="outline-text-3" id="text-1-3">
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab"><span class="org-comment">% Sampling Time [s]</span>
|
<pre class="src src-matlab"><span class="org-comment">% Sampling Time [s]</span>
|
||||||
@ -126,11 +148,11 @@ i_hf = f <span class="org-type">></span> 250; <span class="org-comment">% Poi
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org8d17470" class="outline-3">
|
<div id="outline-container-orge1489cc" class="outline-3">
|
||||||
<h3 id="org8d17470"><span class="section-number-3">1.4</span> DVF Plant</h3>
|
<h3 id="orge1489cc"><span class="section-number-3">1.4</span> DVF Plant</h3>
|
||||||
<div class="outline-text-3" id="text-1-4">
|
<div class="outline-text-3" id="text-1-4">
|
||||||
<p>
|
<p>
|
||||||
First, let’s compute the coherence from the excitation voltage and the displacement as measured by the encoders (Figure <a href="#org67e2048">3</a>).
|
First, let’s compute the coherence from the excitation voltage and the displacement as measured by the encoders (Figure <a href="#orgdf189a0">3</a>).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -147,14 +169,14 @@ coh_dvf_hf = zeros(length(f), 6, 6);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org67e2048" class="figure">
|
<div id="orgdf189a0" class="figure">
|
||||||
<p><img src="figs/enc_struts_dvf_coh.png" alt="enc_struts_dvf_coh.png" />
|
<p><img src="figs/enc_struts_dvf_coh.png" alt="enc_struts_dvf_coh.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 3: </span>Obtained coherence for the DVF plant</p>
|
<p><span class="figure-number">Figure 3: </span>Obtained coherence for the DVF plant</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Then the 6x6 transfer function matrix is estimated (Figure <a href="#org4e87d8b">4</a>).
|
Then the 6x6 transfer function matrix is estimated (Figure <a href="#orgce0ab32">4</a>).
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% DVF Plant</span></span>
|
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% DVF Plant</span></span>
|
||||||
@ -169,7 +191,7 @@ G_dvf_hf = zeros(length(f), 6, 6);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org4e87d8b" class="figure">
|
<div id="orgce0ab32" class="figure">
|
||||||
<p><img src="figs/enc_struts_dvf_frf.png" alt="enc_struts_dvf_frf.png" />
|
<p><img src="figs/enc_struts_dvf_frf.png" alt="enc_struts_dvf_frf.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 4: </span>Measured FRF for the DVF plant</p>
|
<p><span class="figure-number">Figure 4: </span>Measured FRF for the DVF plant</p>
|
||||||
@ -178,11 +200,11 @@ G_dvf_hf = zeros(length(f), 6, 6);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="outline-container-org22119eb" class="outline-3">
|
<div id="outline-container-org0c1cf8a" class="outline-3">
|
||||||
<h3 id="org22119eb"><span class="section-number-3">1.5</span> IFF Plant</h3>
|
<h3 id="org0c1cf8a"><span class="section-number-3">1.5</span> IFF Plant</h3>
|
||||||
<div class="outline-text-3" id="text-1-5">
|
<div class="outline-text-3" id="text-1-5">
|
||||||
<p>
|
<p>
|
||||||
First, let’s compute the coherence from the excitation voltage and the displacement as measured by the encoders (Figure <a href="#org38ac16f">5</a>).
|
First, let’s compute the coherence from the excitation voltage and the displacement as measured by the encoders (Figure <a href="#org1ba438b">5</a>).
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -199,14 +221,14 @@ coh_iff_hf = zeros(length(f), 6, 6);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org38ac16f" class="figure">
|
<div id="org1ba438b" class="figure">
|
||||||
<p><img src="figs/enc_struts_iff_coh.png" alt="enc_struts_iff_coh.png" />
|
<p><img src="figs/enc_struts_iff_coh.png" alt="enc_struts_iff_coh.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 5: </span>Obtained coherence for the IFF plant</p>
|
<p><span class="figure-number">Figure 5: </span>Obtained coherence for the IFF plant</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Then the 6x6 transfer function matrix is estimated (Figure <a href="#org0b97d99">6</a>).
|
Then the 6x6 transfer function matrix is estimated (Figure <a href="#orge2cbf29">6</a>).
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% IFF Plant</span></span>
|
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% IFF Plant</span></span>
|
||||||
@ -221,7 +243,7 @@ G_iff_hf = zeros(length(f), 6, 6);
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org0b97d99" class="figure">
|
<div id="orge2cbf29" class="figure">
|
||||||
<p><img src="figs/enc_struts_iff_frf.png" alt="enc_struts_iff_frf.png" />
|
<p><img src="figs/enc_struts_iff_frf.png" alt="enc_struts_iff_frf.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 6: </span>Measured FRF for the IFF plant</p>
|
<p><span class="figure-number">Figure 6: </span>Measured FRF for the IFF plant</p>
|
||||||
@ -229,33 +251,80 @@ G_iff_hf = zeros(length(f), 6, 6);
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org9f943b4" class="outline-3">
|
<div id="outline-container-orgc6ecc36" class="outline-3">
|
||||||
<h3 id="org9f943b4"><span class="section-number-3">1.6</span> Jacobian</h3>
|
<h3 id="orgc6ecc36"><span class="section-number-3">1.6</span> Jacobian</h3>
|
||||||
<div class="outline-text-3" id="text-1-6">
|
<div class="outline-text-3" id="text-1-6">
|
||||||
|
<p>
|
||||||
|
The Jacobian is used to transform the excitation force in the cartesian frame as well as the displacements.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
Consider the plant shown in Figure <a href="#org573cce0">7</a> with:
|
||||||
|
</p>
|
||||||
|
<ul class="org-ul">
|
||||||
|
<li>\(\tau\) the 6 input voltages (going to the PD200 amplifier and then to the APA)</li>
|
||||||
|
<li>\(d\mathcal{L}\) the relative motion sensor outputs (encoders)</li>
|
||||||
|
<li>\(\bm{\tau}_m\) the generated voltage of the force sensor stacks</li>
|
||||||
|
<li>\(J_a\) and \(J_s\) the Jacobians for the actuators and sensors</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org573cce0" class="figure">
|
||||||
|
<p><img src="figs/schematic_jacobian_in_out.png" alt="schematic_jacobian_in_out.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 7: </span>Plant in the cartesian Frame</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
First, we load the Jacobian matrix (same for the actuators and sensors).
|
||||||
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">load(<span class="org-string">'jacobian.mat'</span>, <span class="org-string">'J'</span>);
|
<pre class="src src-matlab">load(<span class="org-string">'jacobian.mat'</span>, <span class="org-string">'J'</span>);
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="outline-container-org31b15c3" class="outline-4">
|
|
||||||
<h4 id="org31b15c3"><span class="section-number-4">1.6.1</span> DVF Plant</h4>
|
<div id="outline-container-org1c3941e" class="outline-4">
|
||||||
|
<h4 id="org1c3941e"><span class="section-number-4">1.6.1</span> DVF Plant</h4>
|
||||||
<div class="outline-text-4" id="text-1-6-1">
|
<div class="outline-text-4" id="text-1-6-1">
|
||||||
|
<p>
|
||||||
|
The transfer function from \(\bm{\mathcal{F}}\) to \(d\bm{\mathcal{X}}\) is computed and shown in Figure <a href="#org92f038e">8</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">G_dvf_J_lf = permute(pagemtimes(inv(J), pagemtimes(permute(G_dvf_lf, [2 3 1]), inv(J<span class="org-type">'</span>))), [3 1 2]);
|
<pre class="src src-matlab">G_dvf_J_lf = permute(pagemtimes(inv(J), pagemtimes(permute(G_dvf_lf, [2 3 1]), inv(J<span class="org-type">'</span>))), [3 1 2]);
|
||||||
G_dvf_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_dvf_hf, [2 3 1]), inv(J<span class="org-type">'</span>))), [3 1 2]);
|
G_dvf_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_dvf_hf, [2 3 1]), inv(J<span class="org-type">'</span>))), [3 1 2]);
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="org92f038e" class="figure">
|
||||||
|
<p><img src="figs/enc_struts_dvf_cart_frf.png" alt="enc_struts_dvf_cart_frf.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 8: </span>Measured FRF for the DVF plant in the cartesian frame</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org6b0e225" class="outline-4">
|
<div id="outline-container-org31caf05" class="outline-4">
|
||||||
<h4 id="org6b0e225"><span class="section-number-4">1.6.2</span> IFF Plant</h4>
|
<h4 id="org31caf05"><span class="section-number-4">1.6.2</span> IFF Plant</h4>
|
||||||
<div class="outline-text-4" id="text-1-6-2">
|
<div class="outline-text-4" id="text-1-6-2">
|
||||||
|
<p>
|
||||||
|
The transfer function from \(\bm{\mathcal{F}}\) to \(\bm{\mathcal{F}}_m\) is computed and shown in Figure <a href="#orge1b3404">9</a>.
|
||||||
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">G_iff_J_lf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_lf, [2 3 1]), inv(J<span class="org-type">'</span>))), [3 1 2]);
|
<pre class="src src-matlab">G_iff_J_lf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_lf, [2 3 1]), inv(J<span class="org-type">'</span>))), [3 1 2]);
|
||||||
G_iff_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_hf, [2 3 1]), inv(J<span class="org-type">'</span>))), [3 1 2]);
|
G_iff_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_hf, [2 3 1]), inv(J<span class="org-type">'</span>))), [3 1 2]);
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div id="orge1b3404" class="figure">
|
||||||
|
<p><img src="figs/enc_struts_iff_cart_frf.png" alt="enc_struts_iff_cart_frf.png" />
|
||||||
|
</p>
|
||||||
|
<p><span class="figure-number">Figure 9: </span>Measured FRF for the IFF plant in the cartesian frame</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -263,7 +332,7 @@ G_iff_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_hf, [2 3 1]), i
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2021-06-08 mar. 22:15</p>
|
<p class="date">Created: 2021-06-08 mar. 22:38</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -47,8 +47,6 @@
|
|||||||
#+end_export
|
#+end_export
|
||||||
|
|
||||||
* Introduction :ignore:
|
* Introduction :ignore:
|
||||||
* Test-Bench Description
|
|
||||||
|
|
||||||
#+begin_note
|
#+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:
|
||||||
- Voltage Amplifier: PiezoDrive [[file:doc/PD200-V7-R1.pdf][PD200]]
|
- Voltage Amplifier: PiezoDrive [[file:doc/PD200-V7-R1.pdf][PD200]]
|
||||||
@ -60,14 +58,17 @@ Here are the documentation of the equipment used for this test bench:
|
|||||||
|
|
||||||
#+name: fig:picture_bench_granite_nano_hexapod
|
#+name: fig:picture_bench_granite_nano_hexapod
|
||||||
#+caption: Nano-Hexapod
|
#+caption: Nano-Hexapod
|
||||||
|
#+attr_latex: :width \linewidth
|
||||||
[[file:figs/IMG_20210608_152917.jpg]]
|
[[file:figs/IMG_20210608_152917.jpg]]
|
||||||
|
|
||||||
#+name: fig:picture_bench_granite_overview
|
#+name: fig:picture_bench_granite_overview
|
||||||
#+caption: Nano-Hexapod and the control electronics
|
#+caption: Nano-Hexapod and the control electronics
|
||||||
|
#+attr_latex: :width \linewidth
|
||||||
[[file:figs/IMG_20210608_154722.jpg]]
|
[[file:figs/IMG_20210608_154722.jpg]]
|
||||||
|
|
||||||
* Encoders fixed to the Struts
|
* Encoders fixed to the Struts
|
||||||
** Introduction
|
** Introduction
|
||||||
|
In this section, the encoders are fixed to the struts.
|
||||||
|
|
||||||
** Matlab Init :noexport:ignore:
|
** Matlab Init :noexport:ignore:
|
||||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||||
@ -365,10 +366,50 @@ exportFig('figs/enc_struts_iff_frf.pdf', 'width', 'wide', 'height', 'tall');
|
|||||||
[[file:figs/enc_struts_iff_frf.png]]
|
[[file:figs/enc_struts_iff_frf.png]]
|
||||||
|
|
||||||
** Jacobian
|
** Jacobian
|
||||||
|
*** Introduction :ignore:
|
||||||
|
The Jacobian is used to transform the excitation force in the cartesian frame as well as the displacements.
|
||||||
|
|
||||||
|
Consider the plant shown in Figure [[fig:nano_hexapod_decentralized_schematic]] with:
|
||||||
|
- $\tau$ the 6 input voltages (going to the PD200 amplifier and then to the APA)
|
||||||
|
- $d\mathcal{L}$ the relative motion sensor outputs (encoders)
|
||||||
|
- $\bm{\tau}_m$ the generated voltage of the force sensor stacks
|
||||||
|
- $J_a$ and $J_s$ the Jacobians for the actuators and sensors
|
||||||
|
|
||||||
|
#+begin_src latex :file schematic_jacobian_in_out.pdf
|
||||||
|
\begin{tikzpicture}
|
||||||
|
% Blocs
|
||||||
|
\node[block={2.0cm}{2.0cm}] (P) {Plant};
|
||||||
|
\coordinate[] (inputF) at (P.west);
|
||||||
|
\coordinate[] (outputL) at ($(P.south east)!0.8!(P.north east)$);
|
||||||
|
\coordinate[] (outputF) at ($(P.south east)!0.2!(P.north east)$);
|
||||||
|
|
||||||
|
\node[block, left= of inputF] (Ja) {$\bm{J}^{-T}_a$};
|
||||||
|
\node[block, right= of outputL] (Js) {$\bm{J}^{-1}_s$};
|
||||||
|
\node[block, right= of outputF] (Jf) {$\bm{J}^{-1}_s$};
|
||||||
|
|
||||||
|
% Connections and labels
|
||||||
|
\draw[->] ($(Ja.west)+(-1,0)$) -- (Ja.west) node[above left]{$\bm{\mathcal{F}}$};
|
||||||
|
\draw[->] (Ja.east) -- (inputF) node[above left]{$\bm{\tau}$};
|
||||||
|
\draw[->] (outputL) -- (Js.west) node[above left]{$d\bm{\mathcal{L}}$};
|
||||||
|
\draw[->] (Js.east) -- ++(1, 0) node[above left]{$d\bm{\mathcal{X}}$};
|
||||||
|
\draw[->] (outputF) -- (Jf.west) node[above left]{$\bm{\tau}_m$};
|
||||||
|
\draw[->] (Jf.east) -- ++(1, 0) node[above left]{$\bm{\mathcal{F}}_m$};
|
||||||
|
\end{tikzpicture}
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+name: fig:schematic_jacobian_in_out
|
||||||
|
#+caption: Plant in the cartesian Frame
|
||||||
|
#+RESULTS:
|
||||||
|
[[file:figs/schematic_jacobian_in_out.png]]
|
||||||
|
|
||||||
|
First, we load the Jacobian matrix (same for the actuators and sensors).
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
load('jacobian.mat', 'J');
|
load('jacobian.mat', 'J');
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
*** DVF Plant
|
*** DVF Plant
|
||||||
|
The transfer function from $\bm{\mathcal{F}}$ to $d\bm{\mathcal{X}}$ is computed and shown in Figure [[fig:enc_struts_dvf_cart_frf]].
|
||||||
|
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
G_dvf_J_lf = permute(pagemtimes(inv(J), pagemtimes(permute(G_dvf_lf, [2 3 1]), inv(J'))), [3 1 2]);
|
G_dvf_J_lf = permute(pagemtimes(inv(J), pagemtimes(permute(G_dvf_lf, [2 3 1]), inv(J'))), [3 1 2]);
|
||||||
G_dvf_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_dvf_hf, [2 3 1]), inv(J'))), [3 1 2]);
|
G_dvf_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_dvf_hf, [2 3 1]), inv(J'))), [3 1 2]);
|
||||||
@ -424,7 +465,18 @@ linkaxes([ax1,ax2],'x');
|
|||||||
xlim([20, 2e3]);
|
xlim([20, 2e3]);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no :exports results :results file replace
|
||||||
|
exportFig('figs/enc_struts_dvf_cart_frf.pdf', 'width', 'wide', 'height', 'tall');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+name: fig:enc_struts_dvf_cart_frf
|
||||||
|
#+caption: Measured FRF for the DVF plant in the cartesian frame
|
||||||
|
#+RESULTS:
|
||||||
|
[[file:figs/enc_struts_dvf_cart_frf.png]]
|
||||||
|
|
||||||
*** IFF Plant
|
*** IFF Plant
|
||||||
|
The transfer function from $\bm{\mathcal{F}}$ to $\bm{\mathcal{F}}_m$ is computed and shown in Figure [[fig:enc_struts_iff_cart_frf]].
|
||||||
|
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
G_iff_J_lf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_lf, [2 3 1]), inv(J'))), [3 1 2]);
|
G_iff_J_lf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_lf, [2 3 1]), inv(J'))), [3 1 2]);
|
||||||
G_iff_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_hf, [2 3 1]), inv(J'))), [3 1 2]);
|
G_iff_J_hf = permute(pagemtimes(inv(J), pagemtimes(permute(G_iff_hf, [2 3 1]), inv(J'))), [3 1 2]);
|
||||||
@ -459,7 +511,7 @@ plot(f(i_lf), abs(G_iff_J_lf(i_lf, 1, 2)), 'color', [0, 0, 0, 0.2], ...
|
|||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
ylabel('Amplitude $d_e/V_a$ [m/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude $d_e/V_a$ [m/V]'); set(gca, 'XTickLabel',[]);
|
||||||
ylim([1e-7, 1e-1]);
|
ylim([1e-3, 1e4]);
|
||||||
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 3);
|
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 3);
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
@ -479,3 +531,12 @@ yticks(-360:90:360);
|
|||||||
linkaxes([ax1,ax2],'x');
|
linkaxes([ax1,ax2],'x');
|
||||||
xlim([20, 2e3]);
|
xlim([20, 2e3]);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :tangle no :exports results :results file replace
|
||||||
|
exportFig('figs/enc_struts_iff_cart_frf.pdf', 'width', 'wide', 'height', 'tall');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+name: fig:enc_struts_iff_cart_frf
|
||||||
|
#+caption: Measured FRF for the IFF plant in the cartesian frame
|
||||||
|
#+RESULTS:
|
||||||
|
[[file:figs/enc_struts_iff_cart_frf.png]]
|
||||||
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user