Add IFF Analysis
This commit is contained in:
305
index.html
305
index.html
@@ -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>
|
||||
<!-- 2020-06-14 dim. 12:31 -->
|
||||
<!-- 2020-06-15 lun. 09:13 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<title>Finite Element Model with Simscape</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
@@ -34,20 +34,30 @@
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org677afcf">1. Amplified Piezoelectric Actuator - 3D elements</a>
|
||||
<li><a href="#org46300bd">1. Amplified Piezoelectric Actuator - 3D elements</a>
|
||||
<ul>
|
||||
<li><a href="#org966ca11">1.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
|
||||
<li><a href="#org4f69d52">1.2. Identification of the Dynamics</a></li>
|
||||
<li><a href="#orga73b4fa">1.3. Comparison with Ansys</a></li>
|
||||
<li><a href="#org7e1d6fb">1.4. Force Sensor</a></li>
|
||||
<li><a href="#org87ff1d9">1.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
|
||||
<li><a href="#org9fde833">1.2. Identification of the Dynamics</a></li>
|
||||
<li><a href="#org6745ee9">1.3. Comparison with Ansys</a></li>
|
||||
<li><a href="#orgdaa4dfc">1.4. Force Sensor</a></li>
|
||||
<li><a href="#orgfea0789">1.5. Distributed Actuator</a></li>
|
||||
<li><a href="#org7530c95">1.6. Distributed Actuator and Force Sensor</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orge246070">2. Integral Force Feedback with Amplified Piezo</a>
|
||||
<ul>
|
||||
<li><a href="#orgd04c610">2.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
|
||||
<li><a href="#org53d6187">2.2. IFF Plant</a></li>
|
||||
<li><a href="#org6249549">2.3. IFF controller</a></li>
|
||||
<li><a href="#org3796517">2.4. Closed Loop System</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org677afcf" class="outline-2">
|
||||
<h2 id="org677afcf"><span class="section-number-2">1</span> Amplified Piezoelectric Actuator - 3D elements</h2>
|
||||
<div id="outline-container-org46300bd" class="outline-2">
|
||||
<h2 id="org46300bd"><span class="section-number-2">1</span> Amplified Piezoelectric Actuator - 3D elements</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
The idea here is to:
|
||||
@@ -61,8 +71,8 @@ The idea here is to:
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org966ca11" class="outline-3">
|
||||
<h3 id="org966ca11"><span class="section-number-3">1.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
|
||||
<div id="outline-container-org87ff1d9" class="outline-3">
|
||||
<h3 id="org87ff1d9"><span class="section-number-3">1.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
We first extract the stiffness and mass matrices.
|
||||
@@ -113,7 +123,7 @@ Then, we extract the coordinates of the interface nodes.
|
||||
</table>
|
||||
|
||||
|
||||
<div id="orgb472295" class="figure">
|
||||
<div id="org7c56900" class="figure">
|
||||
<p><img src="figs/amplified_piezo_interface_nodes.png" alt="amplified_piezo_interface_nodes.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Interface Nodes for the Amplified Piezo Actuator</p>
|
||||
@@ -571,8 +581,8 @@ Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can use the <c
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org4f69d52" class="outline-3">
|
||||
<h3 id="org4f69d52"><span class="section-number-3">1.2</span> Identification of the Dynamics</h3>
|
||||
<div id="outline-container-org9fde833" class="outline-3">
|
||||
<h3 id="org9fde833"><span class="section-number-3">1.2</span> Identification of the Dynamics</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
The flexible element is imported using the <code>Reduced Order Flexible Solid</code> simscape block.
|
||||
@@ -624,7 +634,7 @@ And the dynamics is identified.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The two identified dynamics are compared in Figure <a href="#orgfc13fe0">2</a>.
|
||||
The two identified dynamics are compared in Figure <a href="#org99c1d63">2</a>.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">%% Name of the Simulink File
|
||||
@@ -640,7 +650,7 @@ Ghm = linearize(mdl, io);
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgfc13fe0" class="figure">
|
||||
<div id="org99c1d63" class="figure">
|
||||
<p><img src="figs/dynamics_act_disp_comp_mass.png" alt="dynamics_act_disp_comp_mass.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Dynamics from \(F\) to \(d\) without a payload and with a 10kg payload</p>
|
||||
@@ -648,8 +658,8 @@ Ghm = linearize(mdl, io);
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga73b4fa" class="outline-3">
|
||||
<h3 id="orga73b4fa"><span class="section-number-3">1.3</span> Comparison with Ansys</h3>
|
||||
<div id="outline-container-org6745ee9" class="outline-3">
|
||||
<h3 id="org6745ee9"><span class="section-number-3">1.3</span> Comparison with Ansys</h3>
|
||||
<div class="outline-text-3" id="text-1-3">
|
||||
<p>
|
||||
Let’s import the results from an Harmonic response analysis in Ansys.
|
||||
@@ -661,11 +671,11 @@ Gresp10 = readtable('FEA_HarmResponse_10kg.txt');
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The obtained dynamics from the Simscape model and from the Ansys analysis are compare in Figure <a href="#org587f215">3</a>.
|
||||
The obtained dynamics from the Simscape model and from the Ansys analysis are compare in Figure <a href="#org317c4e0">3</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="org587f215" class="figure">
|
||||
<div id="org317c4e0" class="figure">
|
||||
<p><img src="figs/dynamics_force_disp_comp_anasys.png" alt="dynamics_force_disp_comp_anasys.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Comparison of the obtained dynamics using Simscape with the harmonic response analysis using Ansys</p>
|
||||
@@ -673,15 +683,15 @@ The obtained dynamics from the Simscape model and from the Ansys analysis are co
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7e1d6fb" class="outline-3">
|
||||
<h3 id="org7e1d6fb"><span class="section-number-3">1.4</span> Force Sensor</h3>
|
||||
<div id="outline-container-orgdaa4dfc" class="outline-3">
|
||||
<h3 id="orgdaa4dfc"><span class="section-number-3">1.4</span> Force Sensor</h3>
|
||||
<div class="outline-text-3" id="text-1-4">
|
||||
<p>
|
||||
The dynamics is identified from internal forces applied between nodes 3 and 11 to the relative displacement of nodes 11 and 13.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The obtained dynamics is shown in Figure <a href="#org2f215c1">4</a>.
|
||||
The obtained dynamics is shown in Figure <a href="#org3803b79">4</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
@@ -721,18 +731,265 @@ Gfm = linearize(mdl, io);
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org2f215c1" class="figure">
|
||||
<div id="org3803b79" class="figure">
|
||||
<p><img src="figs/dynamics_force_force_sensor_comp_mass.png" alt="dynamics_force_force_sensor_comp_mass.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Dynamics from \(F\) to \(F_m\) for \(m=0\) and \(m = 10kg\)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfea0789" class="outline-3">
|
||||
<h3 id="orgfea0789"><span class="section-number-3">1.5</span> Distributed Actuator</h3>
|
||||
<div class="outline-text-3" id="text-1-5">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">m = 0;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The dynamics is identified from the applied force to the measured relative displacement.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">%% Name of the Simulink File
|
||||
mdl = 'piezo_amplified_3d_distri';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/y'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
Gd = linearize(mdl, io);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Then, we add 10Kg of mass:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">m = 10;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And the dynamics is identified.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">%% Name of the Simulink File
|
||||
mdl = 'piezo_amplified_3d_distri';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/y'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
Gdm = linearize(mdl, io);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7530c95" class="outline-3">
|
||||
<h3 id="org7530c95"><span class="section-number-3">1.6</span> Distributed Actuator and Force Sensor</h3>
|
||||
<div class="outline-text-3" id="text-1-6">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">m = 0;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">%% Name of the Simulink File
|
||||
mdl = 'piezo_amplified_3d_distri_act_sens';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/Fm'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
Gfd = linearize(mdl, io);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">m = 10;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">%% Name of the Simulink File
|
||||
mdl = 'piezo_amplified_3d_distri_act_sens';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/Fm'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
Gfdm = linearize(mdl, io);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge246070" class="outline-2">
|
||||
<h2 id="orge246070"><span class="section-number-2">2</span> Integral Force Feedback with Amplified Piezo</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-orgd04c610" class="outline-3">
|
||||
<h3 id="orgd04c610"><span class="section-number-3">2.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<p>
|
||||
We first extract the stiffness and mass matrices.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">K = extractMatrix('piezo_amplified_IFF_K.txt');
|
||||
M = extractMatrix('piezo_amplified_IFF_M.txt');
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Then, we extract the coordinates of the interface nodes.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">[int_xyz, int_i, n_xyz, n_i, nodes] = extractNodes('piezo_amplified_IFF.txt');
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org53d6187" class="outline-3">
|
||||
<h3 id="org53d6187"><span class="section-number-3">2.2</span> IFF Plant</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
The transfer function from the force actuator to the force sensor is identified and shown in Figure <a href="#orgdb6f163">5</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Kiff = tf(0);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">m = 0;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">%% Name of the Simulink File
|
||||
mdl = 'piezo_amplified_IFF';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/Kiff'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/G'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
|
||||
Gf = linearize(mdl, io);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">m = 10;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Gfm = linearize(mdl, io);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgdb6f163" class="figure">
|
||||
<p><img src="figs/piezo_amplified_iff_plant.png" alt="piezo_amplified_iff_plant.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>IFF Plant</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6249549" class="outline-3">
|
||||
<h3 id="org6249549"><span class="section-number-3">2.3</span> IFF controller</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
The controller is defined and the loop gain is shown in Figure <a href="#orgf044cb4">6</a>.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Kiff = -1e12/s;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgf044cb4" class="figure">
|
||||
<p><img src="figs/piezo_amplified_iff_loop_gain.png" alt="piezo_amplified_iff_loop_gain.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>IFF Loop Gain</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3796517" class="outline-3">
|
||||
<h3 id="org3796517"><span class="section-number-3">2.4</span> Closed Loop System</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">m = 10;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Kiff = -1e12/s;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">%% Name of the Simulink File
|
||||
mdl = 'piezo_amplified_IFF';
|
||||
|
||||
%% Input/Output definition
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/Dw'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/Fd'], 1, 'openinput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/d'], 1, 'openoutput'); io_i = io_i + 1;
|
||||
io(io_i) = linio([mdl, '/G'], 1, 'output'); io_i = io_i + 1;
|
||||
|
||||
Giff = linearize(mdl, io);
|
||||
Giff.InputName = {'w', 'f', 'F'};
|
||||
Giff.OutputName = {'x1', 'Fs'};
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Kiff = tf(0);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">G = linearize(mdl, io);
|
||||
G.InputName = {'w', 'f', 'F'};
|
||||
G.OutputName = {'x1', 'Fs'};
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org7291d4e" class="figure">
|
||||
<p><img src="figs/piezo_amplified_iff_comp.png" alt="piezo_amplified_iff_comp.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>OL and CL transfer functions</p>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div id="orgd423aa7" class="figure">
|
||||
<p><img src="figs/souleille18_results.png" alt="souleille18_results.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 8: </span>Results obtained in <a class='org-ref-reference' href="#souleille18_concep_activ_mount_space_applic">souleille18_concep_activ_mount_space_applic</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2020-06-14 dim. 12:31</p>
|
||||
<p class="date">Created: 2020-06-15 lun. 09:13</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user