Update explaination about FEM => simpler model

This commit is contained in:
Thomas Dehaeze 2020-08-04 11:54:32 +02:00
parent 2b85e1f132
commit 9b9b52c25f
4 changed files with 327 additions and 153 deletions

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 148 KiB

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>
<!-- 2020-08-03 lun. 15:42 -->
<!-- 2020-08-04 mar. 11:53 -->
<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,60 +34,61 @@
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org71cd323">1. Amplified Piezoelectric Actuator - 3D elements</a>
<li><a href="#org4f0b86a">1. Amplified Piezoelectric Actuator - 3D elements</a>
<ul>
<li><a href="#orgab9c056">1.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
<li><a href="#org42c8d07">1.2. Output parameters</a></li>
<li><a href="#org6561967">1.3. Piezoelectric parameters</a></li>
<li><a href="#orgddd3cad">1.4. Identification of the Dynamics</a></li>
<li><a href="#org8daed84">1.5. Comparison with Ansys</a></li>
<li><a href="#orgc22a98a">1.6. Force Sensor</a></li>
<li><a href="#org251d0e8">1.7. Distributed Actuator</a></li>
<li><a href="#orgacd6070">1.8. Distributed Actuator and Force Sensor</a></li>
<li><a href="#org63ac6c4">1.9. Dynamics from input voltage to displacement</a></li>
<li><a href="#org07a18c3">1.10. Dynamics from input voltage to output voltage</a></li>
<li><a href="#org15fc227">1.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
<li><a href="#orgd262dde">1.2. Output parameters</a></li>
<li><a href="#org6aafed9">1.3. Piezoelectric parameters</a></li>
<li><a href="#orge996914">1.4. Identification of the Dynamics</a></li>
<li><a href="#orgff6331a">1.5. Comparison with Ansys</a></li>
<li><a href="#org9bf2a27">1.6. Force Sensor</a></li>
<li><a href="#org06d3501">1.7. Distributed Actuator</a></li>
<li><a href="#org324bb60">1.8. Distributed Actuator and Force Sensor</a></li>
<li><a href="#org5840571">1.9. Dynamics from input voltage to displacement</a></li>
<li><a href="#org7061a42">1.10. Dynamics from input voltage to output voltage</a></li>
</ul>
</li>
<li><a href="#org12ed48f">2. APA300ML</a>
<li><a href="#org4785733">2. APA300ML</a>
<ul>
<li><a href="#orgda6e732">2.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
<li><a href="#org4cf9c6e">2.2. Output parameters</a></li>
<li><a href="#org2b612f9">2.3. Piezoelectric parameters</a></li>
<li><a href="#orgedd29dc">2.4. Identification of the APA Characteristics</a>
<li><a href="#orgc8b6c2f">2.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
<li><a href="#org4f8843c">2.2. Output parameters</a></li>
<li><a href="#org7dc97c1">2.3. Piezoelectric parameters</a></li>
<li><a href="#orgf91f943">2.4. Identification of the APA Characteristics</a>
<ul>
<li><a href="#org9c27963">2.4.1. Stiffness</a></li>
<li><a href="#orgc01b2f9">2.4.2. Resonance Frequency</a></li>
<li><a href="#org934e234">2.4.3. Amplification factor</a></li>
<li><a href="#org2874b23">2.4.4. Stroke</a></li>
<li><a href="#orgcb12518">2.4.1. Stiffness</a></li>
<li><a href="#org43f261c">2.4.2. Resonance Frequency</a></li>
<li><a href="#org38ca11e">2.4.3. Amplification factor</a></li>
<li><a href="#org227839d">2.4.4. Stroke</a></li>
</ul>
</li>
<li><a href="#org5f49459">2.5. Identification of the Dynamics</a></li>
<li><a href="#org051104c">2.6. IFF</a></li>
<li><a href="#org1e28770">2.7. DVF</a></li>
<li><a href="#orgfeabffd">2.5. Identification of the Dynamics</a></li>
<li><a href="#orga13ac6b">2.6. IFF</a></li>
<li><a href="#org5ed7231">2.7. DVF</a></li>
<li><a href="#org7e2be0e">2.8. Identification for a simpler model</a></li>
</ul>
</li>
<li><a href="#orge4cfde0">3. Flexible Joint</a>
<li><a href="#org0fc361f">3. Flexible Joint</a>
<ul>
<li><a href="#orgca3d7e7">3.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
<li><a href="#orgb6376e0">3.2. Output parameters</a></li>
<li><a href="#org92f65bd">3.3. Flexible Joint Characteristics</a></li>
<li><a href="#orgd334b90">3.4. Identification</a></li>
<li><a href="#orgf82cf1b">3.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
<li><a href="#orgc3419f4">3.2. Output parameters</a></li>
<li><a href="#org60de458">3.3. Flexible Joint Characteristics</a></li>
<li><a href="#orgcd8bc89">3.4. Identification</a></li>
</ul>
</li>
<li><a href="#org1351f3f">4. Integral Force Feedback with Amplified Piezo</a>
<li><a href="#org258adf3">4. Integral Force Feedback with Amplified Piezo</a>
<ul>
<li><a href="#orga590a65">4.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
<li><a href="#org5ddfecc">4.2. IFF Plant</a></li>
<li><a href="#org76400d1">4.3. IFF controller</a></li>
<li><a href="#org8c42386">4.4. Closed Loop System</a></li>
<li><a href="#org3e49415">4.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
<li><a href="#org690b14e">4.2. IFF Plant</a></li>
<li><a href="#orga83d461">4.3. IFF controller</a></li>
<li><a href="#org1fd0639">4.4. Closed Loop System</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org71cd323" class="outline-2">
<h2 id="org71cd323"><span class="section-number-2">1</span> Amplified Piezoelectric Actuator - 3D elements</h2>
<div id="outline-container-org4f0b86a" class="outline-2">
<h2 id="org4f0b86a"><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:
@ -101,8 +102,8 @@ The idea here is to:
</ul>
</div>
<div id="outline-container-orgab9c056" class="outline-3">
<h3 id="orgab9c056"><span class="section-number-3">1.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
<div id="outline-container-org15fc227" class="outline-3">
<h3 id="org15fc227"><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.
@ -128,8 +129,8 @@ Then, we extract the coordinates of the interface nodes.
</div>
</div>
<div id="outline-container-org42c8d07" class="outline-3">
<h3 id="org42c8d07"><span class="section-number-3">1.2</span> Output parameters</h3>
<div id="outline-container-orgd262dde" class="outline-3">
<h3 id="orgd262dde"><span class="section-number-3">1.2</span> Output parameters</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-matlab">load('./mat/piezo_amplified_3d.mat', 'int_xyz', 'int_i', 'n_xyz', 'n_i', 'nodes', 'M', 'K');
@ -168,7 +169,7 @@ Then, we extract the coordinates of the interface nodes.
</table>
<div id="org8f635f5" class="figure">
<div id="org5e22c17" 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>
@ -626,8 +627,8 @@ Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can use the <c
</div>
<div id="outline-container-org6561967" class="outline-3">
<h3 id="org6561967"><span class="section-number-3">1.3</span> Piezoelectric parameters</h3>
<div id="outline-container-org6aafed9" class="outline-3">
<h3 id="org6aafed9"><span class="section-number-3">1.3</span> Piezoelectric parameters</h3>
<div class="outline-text-3" id="text-1-3">
<p>
Parameters for the APA95ML:
@ -688,8 +689,8 @@ where:
</div>
</div>
<div id="outline-container-orgddd3cad" class="outline-3">
<h3 id="orgddd3cad"><span class="section-number-3">1.4</span> Identification of the Dynamics</h3>
<div id="outline-container-orge996914" class="outline-3">
<h3 id="orge996914"><span class="section-number-3">1.4</span> Identification of the Dynamics</h3>
<div class="outline-text-3" id="text-1-4">
<p>
The flexible element is imported using the <code>Reduced Order Flexible Solid</code> simscape block.
@ -741,7 +742,7 @@ And the dynamics is identified.
</p>
<p>
The two identified dynamics are compared in Figure <a href="#org0d0b642">2</a>.
The two identified dynamics are compared in Figure <a href="#org9bccbed">2</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">%% Name of the Simulink File
@ -757,7 +758,7 @@ Ghm = -linearize(mdl, io);
</div>
<div id="org0d0b642" class="figure">
<div id="org9bccbed" 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>
@ -765,8 +766,8 @@ Ghm = -linearize(mdl, io);
</div>
</div>
<div id="outline-container-org8daed84" class="outline-3">
<h3 id="org8daed84"><span class="section-number-3">1.5</span> Comparison with Ansys</h3>
<div id="outline-container-orgff6331a" class="outline-3">
<h3 id="orgff6331a"><span class="section-number-3">1.5</span> Comparison with Ansys</h3>
<div class="outline-text-3" id="text-1-5">
<p>
Let&rsquo;s import the results from an Harmonic response analysis in Ansys.
@ -778,11 +779,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="#org3c4c607">3</a>.
The obtained dynamics from the Simscape model and from the Ansys analysis are compare in Figure <a href="#orgbddd59a">3</a>.
</p>
<div id="org3c4c607" class="figure">
<div id="orgbddd59a" 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>
@ -790,15 +791,15 @@ The obtained dynamics from the Simscape model and from the Ansys analysis are co
</div>
</div>
<div id="outline-container-orgc22a98a" class="outline-3">
<h3 id="orgc22a98a"><span class="section-number-3">1.6</span> Force Sensor</h3>
<div id="outline-container-org9bf2a27" class="outline-3">
<h3 id="org9bf2a27"><span class="section-number-3">1.6</span> Force Sensor</h3>
<div class="outline-text-3" id="text-1-6">
<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="#orgf53147f">4</a>.
The obtained dynamics is shown in Figure <a href="#org32d2842">4</a>.
</p>
<div class="org-src-container">
@ -838,7 +839,7 @@ Gfm = linearize(mdl, io);
</div>
<div id="orgf53147f" class="figure">
<div id="org32d2842" 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>
@ -846,8 +847,8 @@ Gfm = linearize(mdl, io);
</div>
</div>
<div id="outline-container-org251d0e8" class="outline-3">
<h3 id="org251d0e8"><span class="section-number-3">1.7</span> Distributed Actuator</h3>
<div id="outline-container-org06d3501" class="outline-3">
<h3 id="org06d3501"><span class="section-number-3">1.7</span> Distributed Actuator</h3>
<div class="outline-text-3" id="text-1-7">
<div class="org-src-container">
<pre class="src src-matlab">m = 0;
@ -896,8 +897,8 @@ Gdm = linearize(mdl, io);
</div>
</div>
<div id="outline-container-orgacd6070" class="outline-3">
<h3 id="orgacd6070"><span class="section-number-3">1.8</span> Distributed Actuator and Force Sensor</h3>
<div id="outline-container-org324bb60" class="outline-3">
<h3 id="org324bb60"><span class="section-number-3">1.8</span> Distributed Actuator and Force Sensor</h3>
<div class="outline-text-3" id="text-1-8">
<div class="org-src-container">
<pre class="src src-matlab">m = 0;
@ -937,8 +938,8 @@ Gfdm = linearize(mdl, io);
</div>
</div>
<div id="outline-container-org63ac6c4" class="outline-3">
<h3 id="org63ac6c4"><span class="section-number-3">1.9</span> Dynamics from input voltage to displacement</h3>
<div id="outline-container-org5840571" class="outline-3">
<h3 id="org5840571"><span class="section-number-3">1.9</span> Dynamics from input voltage to displacement</h3>
<div class="outline-text-3" id="text-1-9">
<div class="org-src-container">
<pre class="src src-matlab">m = 5;
@ -950,7 +951,7 @@ And the dynamics is identified.
</p>
<p>
The two identified dynamics are compared in Figure <a href="#org0d0b642">2</a>.
The two identified dynamics are compared in Figure <a href="#org9bccbed">2</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">%% Name of the Simulink File
@ -972,8 +973,8 @@ G = -linearize(mdl, io);
</div>
</div>
<div id="outline-container-org07a18c3" class="outline-3">
<h3 id="org07a18c3"><span class="section-number-3">1.10</span> Dynamics from input voltage to output voltage</h3>
<div id="outline-container-org7061a42" class="outline-3">
<h3 id="org7061a42"><span class="section-number-3">1.10</span> Dynamics from input voltage to output voltage</h3>
<div class="outline-text-3" id="text-1-10">
<div class="org-src-container">
<pre class="src src-matlab">m = 5;
@ -996,19 +997,19 @@ G = -linearize(mdl, io);
</div>
</div>
<div id="outline-container-org12ed48f" class="outline-2">
<h2 id="org12ed48f"><span class="section-number-2">2</span> APA300ML</h2>
<div id="outline-container-org4785733" class="outline-2">
<h2 id="org4785733"><span class="section-number-2">2</span> APA300ML</h2>
<div class="outline-text-2" id="text-2">
<div id="orgc4c274c" class="figure">
<div id="orgbae0d7b" class="figure">
<p><img src="figs/apa300ml_ansys.jpg" alt="apa300ml_ansys.jpg" />
</p>
<p><span class="figure-number">Figure 5: </span>Ansys FEM of the APA300ML</p>
</div>
</div>
<div id="outline-container-orgda6e732" class="outline-3">
<h3 id="orgda6e732"><span class="section-number-3">2.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
<div id="outline-container-orgc8b6c2f" class="outline-3">
<h3 id="orgc8b6c2f"><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.
@ -1040,8 +1041,8 @@ Then, we extract the coordinates of the interface nodes.
</div>
</div>
<div id="outline-container-org4cf9c6e" class="outline-3">
<h3 id="org4cf9c6e"><span class="section-number-3">2.2</span> Output parameters</h3>
<div id="outline-container-org4f8843c" class="outline-3">
<h3 id="org4f8843c"><span class="section-number-3">2.2</span> Output parameters</h3>
<div class="outline-text-3" id="text-2-2">
<div class="org-src-container">
<pre class="src src-matlab">load('./mat/APA300ML.mat', 'int_xyz', 'int_i', 'n_xyz', 'n_i', 'nodes', 'M', 'K');
@ -1482,11 +1483,11 @@ Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can use the <c
</div>
</div>
<div id="outline-container-org2b612f9" class="outline-3">
<h3 id="org2b612f9"><span class="section-number-3">2.3</span> Piezoelectric parameters</h3>
<div id="outline-container-org7dc97c1" class="outline-3">
<h3 id="org7dc97c1"><span class="section-number-3">2.3</span> Piezoelectric parameters</h3>
<div class="outline-text-3" id="text-2-3">
<p>
Parameters for the APA95ML:
Parameters for the APA300ML:
</p>
<div class="org-src-container">
@ -1500,8 +1501,8 @@ C = 5e-6; % Stack capactiance [F]
</div>
<div class="org-src-container">
<pre class="src src-matlab">na = 3; % Number of stacks used as actuator
ns = 0; % Number of stacks used as force sensor
<pre class="src src-matlab">na = 2; % Number of stacks used as actuator
ns = 1; % Number of stacks used as force sensor
</pre>
</div>
@ -1516,7 +1517,7 @@ We denote this constant by \(g_a\) and:
</div>
<pre class="example">
1.88
0.42941
</pre>
@ -1544,12 +1545,12 @@ where:
</div>
</div>
<div id="outline-container-orgedd29dc" class="outline-3">
<h3 id="orgedd29dc"><span class="section-number-3">2.4</span> Identification of the APA Characteristics</h3>
<div id="outline-container-orgf91f943" class="outline-3">
<h3 id="orgf91f943"><span class="section-number-3">2.4</span> Identification of the APA Characteristics</h3>
<div class="outline-text-3" id="text-2-4">
</div>
<div id="outline-container-org9c27963" class="outline-4">
<h4 id="org9c27963"><span class="section-number-4">2.4.1</span> Stiffness</h4>
<div id="outline-container-orgcb12518" class="outline-4">
<h4 id="orgcb12518"><span class="section-number-4">2.4.1</span> Stiffness</h4>
<div class="outline-text-4" id="text-2-4-1">
<p>
The transfer function from vertical external force to the relative vertical displacement is identified.
@ -1574,16 +1575,16 @@ The specified stiffness in the datasheet is \(k = 1.8\, [N/\mu m]\).
</div>
</div>
<div id="outline-container-orgc01b2f9" class="outline-4">
<h4 id="orgc01b2f9"><span class="section-number-4">2.4.2</span> Resonance Frequency</h4>
<div id="outline-container-org43f261c" class="outline-4">
<h4 id="org43f261c"><span class="section-number-4">2.4.2</span> Resonance Frequency</h4>
<div class="outline-text-4" id="text-2-4-2">
<p>
The resonance frequency is specified to be between 650Hz and 840Hz.
This is also the case for the FEM model (Figure <a href="#org78bd63c">6</a>).
This is also the case for the FEM model (Figure <a href="#org51e1766">6</a>).
</p>
<div id="org78bd63c" class="figure">
<div id="org51e1766" class="figure">
<p><img src="figs/apa300ml_resonance.png" alt="apa300ml_resonance.png" />
</p>
<p><span class="figure-number">Figure 6: </span>First resonance is around 800Hz</p>
@ -1591,8 +1592,8 @@ This is also the case for the FEM model (Figure <a href="#org78bd63c">6</a>).
</div>
</div>
<div id="outline-container-org934e234" class="outline-4">
<h4 id="org934e234"><span class="section-number-4">2.4.3</span> Amplification factor</h4>
<div id="outline-container-org38ca11e" class="outline-4">
<h4 id="org38ca11e"><span class="section-number-4">2.4.3</span> Amplification factor</h4>
<div class="outline-text-4" id="text-2-4-3">
<p>
The amplification factor is the ratio of the axial displacement to the stack displacement.
@ -1625,8 +1626,8 @@ If we take the ratio of the piezo height and length (approximation of the amplif
</div>
</div>
<div id="outline-container-org2874b23" class="outline-4">
<h4 id="org2874b23"><span class="section-number-4">2.4.4</span> Stroke</h4>
<div id="outline-container-org227839d" class="outline-4">
<h4 id="org227839d"><span class="section-number-4">2.4.4</span> Stroke</h4>
<div class="outline-text-4" id="text-2-4-4">
<p>
Estimation of the actuator stroke:
@ -1657,8 +1658,8 @@ This is exactly the specified stroke in the data-sheet.
</div>
</div>
<div id="outline-container-org5f49459" class="outline-3">
<h3 id="org5f49459"><span class="section-number-3">2.5</span> Identification of the Dynamics</h3>
<div id="outline-container-orgfeabffd" class="outline-3">
<h3 id="orgfeabffd"><span class="section-number-3">2.5</span> Identification of the Dynamics</h3>
<div class="outline-text-3" id="text-2-5">
<p>
The flexible element is imported using the <code>Reduced Order Flexible Solid</code> simscape block.
@ -1684,7 +1685,7 @@ The same dynamics is identified for a payload mass of 10Kg.
</div>
<div id="orgd6baf63" class="figure">
<div id="orgb3bcc13" class="figure">
<p><img src="figs/apa300ml_plant_dynamics.png" alt="apa300ml_plant_dynamics.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Transfer function from forces applied by the stack to the axial displacement of the APA</p>
@ -1692,29 +1693,29 @@ The same dynamics is identified for a payload mass of 10Kg.
</div>
</div>
<div id="outline-container-org051104c" class="outline-3">
<h3 id="org051104c"><span class="section-number-3">2.6</span> IFF</h3>
<div id="outline-container-orga13ac6b" class="outline-3">
<h3 id="orga13ac6b"><span class="section-number-3">2.6</span> IFF</h3>
<div class="outline-text-3" id="text-2-6">
<p>
Let&rsquo;s use 2 stacks as actuators and 1 stack as force sensor.
</p>
<p>
The transfer function from actuator to sensors is identified and shown in Figure <a href="#org521d0e8">8</a>.
The transfer function from actuator to sensors is identified and shown in Figure <a href="#org3cf9aa1">8</a>.
</p>
<div id="org521d0e8" class="figure">
<div id="org3cf9aa1" class="figure">
<p><img src="figs/apa300ml_iff_plant.png" alt="apa300ml_iff_plant.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Transfer function from actuator to force sensor</p>
</div>
<p>
For root locus corresponding to IFF is shown in Figure <a href="#org7ea3704">9</a>.
For root locus corresponding to IFF is shown in Figure <a href="#org876e0f8">9</a>.
</p>
<div id="org7ea3704" class="figure">
<div id="org876e0f8" class="figure">
<p><img src="figs/apa300ml_iff_root_locus.png" alt="apa300ml_iff_root_locus.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Root Locus for IFF</p>
@ -1722,46 +1723,221 @@ For root locus corresponding to IFF is shown in Figure <a href="#org7ea3704">9</
</div>
</div>
<div id="outline-container-org1e28770" class="outline-3">
<h3 id="org1e28770"><span class="section-number-3">2.7</span> DVF</h3>
<div id="outline-container-org5ed7231" class="outline-3">
<h3 id="org5ed7231"><span class="section-number-3">2.7</span> DVF</h3>
<div class="outline-text-3" id="text-2-7">
<p>
Now the dynamics from the stack actuator to the relative motion sensor is identified and shown in Figure <a href="#org84b27a1">10</a>.
Now the dynamics from the stack actuator to the relative motion sensor is identified and shown in Figure <a href="#org6126c83">10</a>.
</p>
<div id="org84b27a1" class="figure">
<div id="org6126c83" class="figure">
<p><img src="figs/apa300ml_dvf_plant.png" alt="apa300ml_dvf_plant.png" />
</p>
<p><span class="figure-number">Figure 10: </span>Transfer function from stack actuator to relative motion sensor</p>
</div>
<p>
The root locus for DVF is shown in Figure <a href="#org9f595b0">11</a>.
The root locus for DVF is shown in Figure <a href="#org01f9702">11</a>.
</p>
<div id="org9f595b0" class="figure">
<div id="org01f9702" class="figure">
<p><img src="figs/apa300ml_dvf_root_locus.png" alt="apa300ml_dvf_root_locus.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Root Locus for Direct Velocity Feedback</p>
</div>
</div>
</div>
<div id="outline-container-org7e2be0e" class="outline-3">
<h3 id="org7e2be0e"><span class="section-number-3">2.8</span> Identification for a simpler model</h3>
<div class="outline-text-3" id="text-2-8">
<p>
The goal in this section is to identify the parameters of a simple APA model from the FEM.
This can be useful is a lower order model is to be used for simulations.
</p>
<p>
The presented model is based on (<a href="#citeproc_bib_item_2">Souleille et al. 2018</a>).
</p>
<p>
The model represents the Amplified Piezo Actuator (APA) from Cedrat-Technologies (Figure <a href="#org60372a9">12</a>).
The parameters are shown in the table below.
</p>
<div id="org60372a9" class="figure">
<p><img src="./figs/souleille18_model_piezo.png" alt="souleille18_model_piezo.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Picture of an APA100M from Cedrat Technologies. Simplified model of a one DoF payload mounted on such isolator</p>
</div>
<div id="outline-container-orge4cfde0" class="outline-2">
<h2 id="orge4cfde0"><span class="section-number-2">3</span> Flexible Joint</h2>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 7:</span> Parameters used for the model of the APA 100M</caption>
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-left">Meaning</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">\(k_e\)</td>
<td class="org-left">Stiffness used to adjust the pole of the isolator</td>
</tr>
<tr>
<td class="org-left">\(k_1\)</td>
<td class="org-left">Stiffness of the metallic suspension when the stack is removed</td>
</tr>
<tr>
<td class="org-left">\(k_a\)</td>
<td class="org-left">Stiffness of the actuator</td>
</tr>
<tr>
<td class="org-left">\(c_1\)</td>
<td class="org-left">Added viscous damping</td>
</tr>
</tbody>
</table>
<p>
The goal is to determine \(k_e\), \(k_a\) and \(k_1\) so that the simplified model fits the FEM model.
</p>
<p>
\[ \alpha = \frac{x_1}{f}(\omega=0) = \frac{\frac{k_e}{k_e + k_a}}{k_1 + \frac{k_e k_a}{k_e + k_a}} \]
\[ \beta = \frac{x_1}{F}(\omega=0) = \frac{1}{k_1 + \frac{k_e k_a}{k_e + k_a}} \]
</p>
<p>
If we can fix \(k_a\), we can determine \(k_e\) and \(k_1\) with:
\[ k_e = \frac{k_a}{\frac{\beta}{\alpha} - 1} \]
\[ k_1 = \frac{1}{\beta} - \frac{k_e k_a}{k_e + k_a} \]
</p>
<p>
From the identified dynamics, compute \(\alpha\) and \(\beta\)
</p>
<div class="org-src-container">
<pre class="src src-matlab">alpha = abs(dcgain(G('y', 'Fa')));
beta = abs(dcgain(G('y', 'Fd')));
</pre>
</div>
<p>
\(k_a\) is estimated using the following formula:
</p>
<div class="org-src-container">
<pre class="src src-matlab">ka = 0.8/abs(dcgain(G('y', 'Fa')));
</pre>
</div>
<p>
The factor can be adjusted to better match the curves.
</p>
<p>
Then \(k_e\) and \(k_1\) are computed.
</p>
<div class="org-src-container">
<pre class="src src-matlab">ke = ka/(beta/alpha - 1);
k1 = 1/beta - ke*ka/(ke + ka);
</pre>
</div>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-right" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">&#xa0;</th>
<th scope="col" class="org-right">Value [N/um]</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">ka</td>
<td class="org-right">42.9</td>
</tr>
<tr>
<td class="org-left">ke</td>
<td class="org-right">1.5</td>
</tr>
<tr>
<td class="org-left">k1</td>
<td class="org-right">0.4</td>
</tr>
</tbody>
</table>
<p>
The damping in the system is adjusted to match the FEM model if necessary.
</p>
<div class="org-src-container">
<pre class="src src-matlab">c1 = 1e2;
</pre>
</div>
<p>
Analytical model of the simpler system:
</p>
<div class="org-src-container">
<pre class="src src-matlab">Ga = 1/(m*s^2 + k1 + c1*s + ke*ka/(ke + ka)) * ...
[ 1 , k1 + c1*s + ke*ka/(ke + ka) , ke/(ke + ka) ;
-ke*ka/(ke + ka), ke*ka/(ke + ka)*m*s^2 , -ke/(ke + ka)*(m*s^2 + c1*s + k1)];
Ga.InputName = {'Fd', 'w', 'Fa'};
Ga.OutputName = {'y', 'Fs'};
</pre>
</div>
<p>
Adjust the DC gain for the force sensor:
</p>
<div class="org-src-container">
<pre class="src src-matlab">lambda = dcgain(Ga('Fs', 'Fd'))/dcgain(G('Fs', 'Fd'));
</pre>
</div>
<div id="org67c5104" class="figure">
<p><img src="figs/apa300ml_comp_simpler_model.png" alt="apa300ml_comp_simpler_model.png" />
</p>
<p><span class="figure-number">Figure 13: </span>Comparison of the Dynamics between the FEM model and the simplified one</p>
</div>
</div>
</div>
</div>
<div id="outline-container-org0fc361f" class="outline-2">
<h2 id="org0fc361f"><span class="section-number-2">3</span> Flexible Joint</h2>
<div class="outline-text-2" id="text-3">
<div id="org329f4b9" class="figure">
<div id="orgd9dc946" class="figure">
<p><img src="figs/flexor_id16_screenshot.png" alt="flexor_id16_screenshot.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Flexor studied</p>
<p><span class="figure-number">Figure 14: </span>Flexor studied</p>
</div>
</div>
<div id="outline-container-orgca3d7e7" class="outline-3">
<h3 id="orgca3d7e7"><span class="section-number-3">3.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
<div id="outline-container-orgf82cf1b" class="outline-3">
<h3 id="orgf82cf1b"><span class="section-number-3">3.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We first extract the stiffness and mass matrices.
@ -1787,8 +1963,8 @@ Then, we extract the coordinates of the interface nodes.
</div>
</div>
<div id="outline-container-orgb6376e0" class="outline-3">
<h3 id="orgb6376e0"><span class="section-number-3">3.2</span> Output parameters</h3>
<div id="outline-container-orgc3419f4" class="outline-3">
<h3 id="orgc3419f4"><span class="section-number-3">3.2</span> Output parameters</h3>
<div class="outline-text-3" id="text-3-2">
<div class="org-src-container">
<pre class="src src-matlab">load('./mat/flexor_ID16.mat', 'int_xyz', 'int_i', 'n_xyz', 'n_i', 'nodes', 'M', 'K');
@ -1827,7 +2003,7 @@ Then, we extract the coordinates of the interface nodes.
</table>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 7:</span> Coordinates of the interface nodes</caption>
<caption class="t-above"><span class="table-number">Table 8:</span> Coordinates of the interface nodes</caption>
<colgroup>
<col class="org-right" />
@ -1869,7 +2045,7 @@ Then, we extract the coordinates of the interface nodes.
</table>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 8:</span> First 10x10 elements of the Stiffness matrix</caption>
<caption class="t-above"><span class="table-number">Table 9:</span> First 10x10 elements of the Stiffness matrix</caption>
<colgroup>
<col class="org-right" />
@ -2027,7 +2203,7 @@ Then, we extract the coordinates of the interface nodes.
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<caption class="t-above"><span class="table-number">Table 9:</span> First 10x10 elements of the Mass matrix</caption>
<caption class="t-above"><span class="table-number">Table 10:</span> First 10x10 elements of the Mass matrix</caption>
<colgroup>
<col class="org-right" />
@ -2189,8 +2365,8 @@ Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can use the <c
</div>
</div>
<div id="outline-container-org92f65bd" class="outline-3">
<h3 id="org92f65bd"><span class="section-number-3">3.3</span> Flexible Joint Characteristics</h3>
<div id="outline-container-org60de458" class="outline-3">
<h3 id="org60de458"><span class="section-number-3">3.3</span> Flexible Joint Characteristics</h3>
<div class="outline-text-3" id="text-3-3">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
@ -2238,8 +2414,8 @@ Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can use the <c
</div>
</div>
<div id="outline-container-orgd334b90" class="outline-3">
<h3 id="orgd334b90"><span class="section-number-3">3.4</span> Identification</h3>
<div id="outline-container-orgcd8bc89" class="outline-3">
<h3 id="orgcd8bc89"><span class="section-number-3">3.4</span> Identification</h3>
<div class="outline-text-3" id="text-3-4">
<div class="org-src-container">
<pre class="src src-matlab">m = 10;
@ -2309,16 +2485,16 @@ G = linearize(mdl, io);
</div>
</div>
<div id="outline-container-org1351f3f" class="outline-2">
<h2 id="org1351f3f"><span class="section-number-2">4</span> Integral Force Feedback with Amplified Piezo</h2>
<div id="outline-container-org258adf3" class="outline-2">
<h2 id="org258adf3"><span class="section-number-2">4</span> Integral Force Feedback with Amplified Piezo</h2>
<div class="outline-text-2" id="text-4">
<p>
In this section, we try to replicate the results obtained in (<a href="#citeproc_bib_item_2">Souleille et al. 2018</a>).
</p>
</div>
<div id="outline-container-orga590a65" class="outline-3">
<h3 id="orga590a65"><span class="section-number-3">4.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
<div id="outline-container-org3e49415" class="outline-3">
<h3 id="org3e49415"><span class="section-number-3">4.1</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
<div class="outline-text-3" id="text-4-1">
<p>
We first extract the stiffness and mass matrices.
@ -2339,11 +2515,11 @@ Then, we extract the coordinates of the interface nodes.
</div>
</div>
<div id="outline-container-org5ddfecc" class="outline-3">
<h3 id="org5ddfecc"><span class="section-number-3">4.2</span> IFF Plant</h3>
<div id="outline-container-org690b14e" class="outline-3">
<h3 id="org690b14e"><span class="section-number-3">4.2</span> IFF Plant</h3>
<div class="outline-text-3" id="text-4-2">
<p>
The transfer function from the force actuator to the force sensor is identified and shown in Figure <a href="#orgb98e9a1">13</a>.
The transfer function from the force actuator to the force sensor is identified and shown in Figure <a href="#org1ed2b1f">15</a>.
</p>
<div class="org-src-container">
@ -2380,19 +2556,19 @@ Gf = linearize(mdl, io);
</div>
<div id="orgb98e9a1" class="figure">
<div id="org1ed2b1f" class="figure">
<p><img src="figs/piezo_amplified_iff_plant.png" alt="piezo_amplified_iff_plant.png" />
</p>
<p><span class="figure-number">Figure 13: </span>IFF Plant</p>
<p><span class="figure-number">Figure 15: </span>IFF Plant</p>
</div>
</div>
</div>
<div id="outline-container-org76400d1" class="outline-3">
<h3 id="org76400d1"><span class="section-number-3">4.3</span> IFF controller</h3>
<div id="outline-container-orga83d461" class="outline-3">
<h3 id="orga83d461"><span class="section-number-3">4.3</span> IFF controller</h3>
<div class="outline-text-3" id="text-4-3">
<p>
The controller is defined and the loop gain is shown in Figure <a href="#org50ab4b8">14</a>.
The controller is defined and the loop gain is shown in Figure <a href="#org6eddfbc">16</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">Kiff = -1e12/s;
@ -2400,16 +2576,16 @@ The controller is defined and the loop gain is shown in Figure <a href="#org50ab
</div>
<div id="org50ab4b8" class="figure">
<div id="org6eddfbc" 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 14: </span>IFF Loop Gain</p>
<p><span class="figure-number">Figure 16: </span>IFF Loop Gain</p>
</div>
</div>
</div>
<div id="outline-container-org8c42386" class="outline-3">
<h3 id="org8c42386"><span class="section-number-3">4.4</span> Closed Loop System</h3>
<div id="outline-container-org1fd0639" class="outline-3">
<h3 id="org1fd0639"><span class="section-number-3">4.4</span> Closed Loop System</h3>
<div class="outline-text-3" id="text-4-4">
<div class="org-src-container">
<pre class="src src-matlab">m = 10;
@ -2452,18 +2628,18 @@ G.OutputName = {'x1', 'Fs'};
</div>
<div id="orgc068c38" class="figure">
<div id="org136372a" class="figure">
<p><img src="figs/piezo_amplified_iff_comp.png" alt="piezo_amplified_iff_comp.png" />
</p>
<p><span class="figure-number">Figure 15: </span>OL and CL transfer functions</p>
<p><span class="figure-number">Figure 17: </span>OL and CL transfer functions</p>
</div>
<div id="orgb4c1cac" class="figure">
<div id="orgccbb8ba" class="figure">
<p><img src="figs/souleille18_results.png" alt="souleille18_results.png" />
</p>
<p><span class="figure-number">Figure 16: </span>Results obtained in <a class='org-ref-reference' href="#souleille18_concep_activ_mount_space_applic">souleille18_concep_activ_mount_space_applic</a></p>
<p><span class="figure-number">Figure 18: </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>
@ -2481,7 +2657,7 @@ G.OutputName = {'x1', 'Fs'};
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-08-03 lun. 15:42</p>
<p class="date">Created: 2020-08-04 mar. 11:53</p>
</div>
</body>
</html>

View File

@ -1380,10 +1380,12 @@ The parameters are shown in the table below.
The goal is to determine $k_e$, $k_a$ and $k_1$ so that the simplified model fits the FEM model.
Three unknowns and three equations:
\[ \alpha = \frac{x_1}{f}(\omega=0) = \frac{\frac{k_e}{k_e + k_a}}{k_1 + \frac{k_e k_a}{k_e + k_a}} \]
\[ \beta = \frac{x_1}{F}(\omega=0) = \frac{1}{k_1 + \frac{k_e k_a}{k_e + k_a}} \]
\[ \gamma = \frac{dL}{f}(\omega=0) = \frac{1}{k_a + \frac{k_e k_1}{k_e + k_1}} \]
If we can fix $k_a$, we can determine $k_e$ and $k_1$ with:
\[ k_e = \frac{k_a}{\frac{\beta}{\alpha} - 1} \]
\[ k_1 = \frac{1}{\beta} - \frac{k_e k_a}{k_e + k_a} \]
#+begin_src matlab :exports none
m = 10;
@ -1408,24 +1410,20 @@ Three unknowns and three equations:
G.OutputName = {'y', 'Fs', 'd'};
#+end_src
From the identified dynamics, compute $\alpha$ and $\beta$
#+begin_src matlab
alpha = abs(dcgain(G('y', 'Fa')));
beta = abs(dcgain(G('y', 'Fd')));
gamma = abs(dcgain(G('d', 'Fa')));
#+end_src
$k_a$ is estimated using the following formula:
#+begin_src matlab
na = 1;
ns = 2;
ka = 0.8/abs(dcgain(G('y', 'Fa')));
#+end_src
The factor can be adjusted to better match the curves.
Amplification Factor
Then $k_e$ and $k_1$ are computed.
#+begin_src matlab
A = abs(dcgain(G('y', 'Fa'))/dcgain(G('d', 'Fa')));
#+end_src
#+begin_src matlab
ka = 0.8*(1/A)/gamma;
ke = ka/(beta/alpha - 1);
k1 = 1/beta - ke*ka/(ke + ka);
#+end_src
@ -1441,7 +1439,7 @@ Amplification Factor
| ke | 1.5 |
| k1 | 0.4 |
Adjust the damping in the system.
The damping in the system is adjusted to match the FEM model if necessary.
#+begin_src matlab
c1 = 1e2;
#+end_src
@ -1456,7 +1454,7 @@ Analytical model of the simpler system:
Ga.OutputName = {'y', 'Fs'};
#+end_src
Adjust the DC gain for the force sensor;
Adjust the DC gain for the force sensor:
#+begin_src matlab
lambda = dcgain(Ga('Fs', 'Fd'))/dcgain(G('Fs', 'Fd'));
#+end_src