2823 lines
79 KiB
HTML
2823 lines
79 KiB
HTML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||
"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-11-12 jeu. 18:48 -->
|
||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||
<title>Finite Element Model with Simscape</title>
|
||
<meta name="generator" content="Org mode" />
|
||
<meta name="author" content="Dehaeze Thomas" />
|
||
<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>MathJax = {
|
||
tex: {
|
||
tags: 'ams',
|
||
macros: {bm: ["\\boldsymbol{#1}",1],}
|
||
}
|
||
};
|
||
</script>
|
||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||
</head>
|
||
<body>
|
||
<div id="org-div-home-and-up">
|
||
<a accesskey="h" href="../index.html"> UP </a>
|
||
|
|
||
<a accesskey="H" href="../index.html"> HOME </a>
|
||
</div><div id="content">
|
||
<h1 class="title">Finite Element Model with Simscape</h1>
|
||
<div id="table-of-contents">
|
||
<h2>Table of Contents</h2>
|
||
<div id="text-table-of-contents">
|
||
<ul>
|
||
<li><a href="#org18d2db8">1. APA300ML</a>
|
||
<ul>
|
||
<li><a href="#org5c45df4">1.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
|
||
<li><a href="#orga9811cf">1.2. Piezoelectric parameters</a></li>
|
||
<li><a href="#orgf60bf13">1.3. Simscape Model</a></li>
|
||
<li><a href="#org7589ca6">1.4. Identification of the APA Characteristics</a>
|
||
<ul>
|
||
<li><a href="#org839ecc0">1.4.1. Stiffness</a></li>
|
||
<li><a href="#org9b9cedd">1.4.2. Resonance Frequency</a></li>
|
||
<li><a href="#org87cbe72">1.4.3. Amplification factor</a></li>
|
||
<li><a href="#org0071048">1.4.4. Stroke</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#org4fdb600">1.5. Identification of the Dynamics from actuator to replace displacement</a></li>
|
||
<li><a href="#orga2f4fd6">1.6. Identification of the Dynamics from actuator to force sensor</a></li>
|
||
<li><a href="#org8ece2ce">1.7. Identification for a simpler model</a></li>
|
||
<li><a href="#org43ae9e5">1.8. Integral Force Feedback</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#orgc203c93">2. First Flexible Joint Geometry</a>
|
||
<ul>
|
||
<li><a href="#orga48c65c">2.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
|
||
<li><a href="#org5de18c6">2.2. Identification of the parameters using Simscape and looking at the Stiffness Matrix</a></li>
|
||
<li><a href="#orgb2d0259">2.3. Simpler Model</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#org4dadb53">3. Optimized Flexible Joint</a>
|
||
<ul>
|
||
<li><a href="#orgb1d1e31">3.1. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
|
||
<li><a href="#orgc7107db">3.2. Identification of the parameters using Simscape</a></li>
|
||
<li><a href="#org96d2775">3.3. Simpler Model</a></li>
|
||
<li><a href="#org2916e5d">3.4. Comparison with a stiffer Flexible Joint</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#org79ad15f">4. Complete Strut with Encoder</a>
|
||
<ul>
|
||
<li><a href="#org26e8494">4.1. Introduction</a></li>
|
||
<li><a href="#orgd702a5f">4.2. Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</a></li>
|
||
<li><a href="#org42c2461">4.3. Piezoelectric parameters</a></li>
|
||
<li><a href="#orga5ba630">4.4. Identification of the Dynamics</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
|
||
<p>
|
||
In this document, Finite Element Models (FEM) of parts of the Nano-Hexapod are developed and integrated into Simscape for dynamical analysis.
|
||
</p>
|
||
|
||
<ul class="org-ul">
|
||
<li>Section <a href="#org6804357">1</a>:
|
||
A super-element of the Amplified Piezoelectric Actuator APA300ML used for the NASS is exported using Ansys and imported in Simscape.
|
||
The static and dynamical properties of the APA300ML are then estimated using the Simscape model.</li>
|
||
<li>Section <a href="#orgb1abf80">2</a>:
|
||
A first geometry of a Flexible joint is modelled and its characteristics are identified from the Stiffness matrix as well as from the Simscape model.</li>
|
||
<li>Section <a href="#org146537a">3</a>:
|
||
An optimized flexible joint is developed for the Nano-Hexapod and is then imported in a Simscape model.</li>
|
||
<li>Section <a href="#orgc4b9146">4</a>:
|
||
A super element of a complete strut is exported.</li>
|
||
</ul>
|
||
|
||
<div id="outline-container-org18d2db8" class="outline-2">
|
||
<h2 id="org18d2db8"><span class="section-number-2">1</span> APA300ML</h2>
|
||
<div class="outline-text-2" id="text-1">
|
||
<p>
|
||
<a id="org6804357"></a>
|
||
</p>
|
||
<p>
|
||
In this section, the Amplified Piezoelectric Actuator APA300ML (<a href="doc/APA300ML.pdf">doc</a>) is modeled using a Finite Element Software.
|
||
Then a <i>super element</i> is exported and imported in Simscape where its dynamic is studied.
|
||
</p>
|
||
|
||
<p>
|
||
A 3D view of the Amplified Piezoelectric Actuator (APA300ML) is shown in Figure <a href="#org7a29cfe">1</a>.
|
||
The remote point used are also shown in this figure.
|
||
</p>
|
||
|
||
|
||
<div id="org7a29cfe" class="figure">
|
||
<p><img src="figs/apa300ml_ansys.jpg" alt="apa300ml_ansys.jpg" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 1: </span>Ansys FEM of the APA300ML</p>
|
||
</div>
|
||
</div>
|
||
<div id="outline-container-org5c45df4" class="outline-3">
|
||
<h3 id="org5c45df4"><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.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">K = readmatrix(<span class="org-string">'APA300ML_mat_K.CSV'</span>);
|
||
M = readmatrix(<span class="org-string">'APA300ML_mat_M.CSV'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 1:</span> First 10x10 elements of the Stiffness matrix</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">200000000.0</td>
|
||
<td class="org-right">30000.0</td>
|
||
<td class="org-right">-20000.0</td>
|
||
<td class="org-right">-70.0</td>
|
||
<td class="org-right">300000.0</td>
|
||
<td class="org-right">40.0</td>
|
||
<td class="org-right">10000000.0</td>
|
||
<td class="org-right">10000.0</td>
|
||
<td class="org-right">-6000.0</td>
|
||
<td class="org-right">30.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">30000.0</td>
|
||
<td class="org-right">30000000.0</td>
|
||
<td class="org-right">2000.0</td>
|
||
<td class="org-right">-200000.0</td>
|
||
<td class="org-right">60.0</td>
|
||
<td class="org-right">-10.0</td>
|
||
<td class="org-right">4000.0</td>
|
||
<td class="org-right">2000000.0</td>
|
||
<td class="org-right">-500.0</td>
|
||
<td class="org-right">9000.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-20000.0</td>
|
||
<td class="org-right">2000.0</td>
|
||
<td class="org-right">7000000.0</td>
|
||
<td class="org-right">-10.0</td>
|
||
<td class="org-right">-30.0</td>
|
||
<td class="org-right">10.0</td>
|
||
<td class="org-right">6000.0</td>
|
||
<td class="org-right">900.0</td>
|
||
<td class="org-right">-500000.0</td>
|
||
<td class="org-right">3</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-70.0</td>
|
||
<td class="org-right">-200000.0</td>
|
||
<td class="org-right">-10.0</td>
|
||
<td class="org-right">1000.0</td>
|
||
<td class="org-right">-0.1</td>
|
||
<td class="org-right">0.08</td>
|
||
<td class="org-right">-20.0</td>
|
||
<td class="org-right">-9000.0</td>
|
||
<td class="org-right">3</td>
|
||
<td class="org-right">-30.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">300000.0</td>
|
||
<td class="org-right">60.0</td>
|
||
<td class="org-right">-30.0</td>
|
||
<td class="org-right">-0.1</td>
|
||
<td class="org-right">900.0</td>
|
||
<td class="org-right">0.1</td>
|
||
<td class="org-right">30000.0</td>
|
||
<td class="org-right">20.0</td>
|
||
<td class="org-right">-10.0</td>
|
||
<td class="org-right">0.06</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">40.0</td>
|
||
<td class="org-right">-10.0</td>
|
||
<td class="org-right">10.0</td>
|
||
<td class="org-right">0.08</td>
|
||
<td class="org-right">0.1</td>
|
||
<td class="org-right">10000.0</td>
|
||
<td class="org-right">20.0</td>
|
||
<td class="org-right">9</td>
|
||
<td class="org-right">-5</td>
|
||
<td class="org-right">0.03</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">10000000.0</td>
|
||
<td class="org-right">4000.0</td>
|
||
<td class="org-right">6000.0</td>
|
||
<td class="org-right">-20.0</td>
|
||
<td class="org-right">30000.0</td>
|
||
<td class="org-right">20.0</td>
|
||
<td class="org-right">200000000.0</td>
|
||
<td class="org-right">10000.0</td>
|
||
<td class="org-right">9000.0</td>
|
||
<td class="org-right">50.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">10000.0</td>
|
||
<td class="org-right">2000000.0</td>
|
||
<td class="org-right">900.0</td>
|
||
<td class="org-right">-9000.0</td>
|
||
<td class="org-right">20.0</td>
|
||
<td class="org-right">9</td>
|
||
<td class="org-right">10000.0</td>
|
||
<td class="org-right">30000000.0</td>
|
||
<td class="org-right">-500.0</td>
|
||
<td class="org-right">200000.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-6000.0</td>
|
||
<td class="org-right">-500.0</td>
|
||
<td class="org-right">-500000.0</td>
|
||
<td class="org-right">3</td>
|
||
<td class="org-right">-10.0</td>
|
||
<td class="org-right">-5</td>
|
||
<td class="org-right">9000.0</td>
|
||
<td class="org-right">-500.0</td>
|
||
<td class="org-right">7000000.0</td>
|
||
<td class="org-right">-2</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">30.0</td>
|
||
<td class="org-right">9000.0</td>
|
||
<td class="org-right">3</td>
|
||
<td class="org-right">-30.0</td>
|
||
<td class="org-right">0.06</td>
|
||
<td class="org-right">0.03</td>
|
||
<td class="org-right">50.0</td>
|
||
<td class="org-right">200000.0</td>
|
||
<td class="org-right">-2</td>
|
||
<td class="org-right">1000.0</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 2:</span> First 10x10 elements of the Mass matrix</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">0.01</td>
|
||
<td class="org-right">-2e-06</td>
|
||
<td class="org-right">1e-06</td>
|
||
<td class="org-right">6e-09</td>
|
||
<td class="org-right">5e-05</td>
|
||
<td class="org-right">-5e-09</td>
|
||
<td class="org-right">-0.0005</td>
|
||
<td class="org-right">-7e-07</td>
|
||
<td class="org-right">6e-07</td>
|
||
<td class="org-right">-3e-09</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-2e-06</td>
|
||
<td class="org-right">0.01</td>
|
||
<td class="org-right">8e-07</td>
|
||
<td class="org-right">-2e-05</td>
|
||
<td class="org-right">-8e-09</td>
|
||
<td class="org-right">2e-09</td>
|
||
<td class="org-right">-9e-07</td>
|
||
<td class="org-right">-0.0002</td>
|
||
<td class="org-right">1e-08</td>
|
||
<td class="org-right">-9e-07</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">1e-06</td>
|
||
<td class="org-right">8e-07</td>
|
||
<td class="org-right">0.009</td>
|
||
<td class="org-right">5e-10</td>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">-1e-09</td>
|
||
<td class="org-right">-5e-07</td>
|
||
<td class="org-right">3e-08</td>
|
||
<td class="org-right">6e-05</td>
|
||
<td class="org-right">1e-10</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">6e-09</td>
|
||
<td class="org-right">-2e-05</td>
|
||
<td class="org-right">5e-10</td>
|
||
<td class="org-right">3e-07</td>
|
||
<td class="org-right">2e-11</td>
|
||
<td class="org-right">-3e-12</td>
|
||
<td class="org-right">3e-09</td>
|
||
<td class="org-right">9e-07</td>
|
||
<td class="org-right">-4e-10</td>
|
||
<td class="org-right">3e-09</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">5e-05</td>
|
||
<td class="org-right">-8e-09</td>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">2e-11</td>
|
||
<td class="org-right">6e-07</td>
|
||
<td class="org-right">-4e-11</td>
|
||
<td class="org-right">-1e-06</td>
|
||
<td class="org-right">-2e-09</td>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">-8e-12</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-5e-09</td>
|
||
<td class="org-right">2e-09</td>
|
||
<td class="org-right">-1e-09</td>
|
||
<td class="org-right">-3e-12</td>
|
||
<td class="org-right">-4e-11</td>
|
||
<td class="org-right">1e-07</td>
|
||
<td class="org-right">-2e-09</td>
|
||
<td class="org-right">-1e-09</td>
|
||
<td class="org-right">-4e-10</td>
|
||
<td class="org-right">-5e-12</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-0.0005</td>
|
||
<td class="org-right">-9e-07</td>
|
||
<td class="org-right">-5e-07</td>
|
||
<td class="org-right">3e-09</td>
|
||
<td class="org-right">-1e-06</td>
|
||
<td class="org-right">-2e-09</td>
|
||
<td class="org-right">0.01</td>
|
||
<td class="org-right">1e-07</td>
|
||
<td class="org-right">-3e-07</td>
|
||
<td class="org-right">-2e-08</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-7e-07</td>
|
||
<td class="org-right">-0.0002</td>
|
||
<td class="org-right">3e-08</td>
|
||
<td class="org-right">9e-07</td>
|
||
<td class="org-right">-2e-09</td>
|
||
<td class="org-right">-1e-09</td>
|
||
<td class="org-right">1e-07</td>
|
||
<td class="org-right">0.01</td>
|
||
<td class="org-right">-4e-07</td>
|
||
<td class="org-right">2e-05</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">6e-07</td>
|
||
<td class="org-right">1e-08</td>
|
||
<td class="org-right">6e-05</td>
|
||
<td class="org-right">-4e-10</td>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">-4e-10</td>
|
||
<td class="org-right">-3e-07</td>
|
||
<td class="org-right">-4e-07</td>
|
||
<td class="org-right">0.009</td>
|
||
<td class="org-right">-2e-10</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-3e-09</td>
|
||
<td class="org-right">-9e-07</td>
|
||
<td class="org-right">1e-10</td>
|
||
<td class="org-right">3e-09</td>
|
||
<td class="org-right">-8e-12</td>
|
||
<td class="org-right">-5e-12</td>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">2e-05</td>
|
||
<td class="org-right">-2e-10</td>
|
||
<td class="org-right">3e-07</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
|
||
<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(<span class="org-string">'APA300ML_out_nodes_3D.txt'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 3:</span> Coordinates of the interface nodes</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col" class="org-right">Node i</th>
|
||
<th scope="col" class="org-right">Node Number</th>
|
||
<th scope="col" class="org-right">x [m]</th>
|
||
<th scope="col" class="org-right">y [m]</th>
|
||
<th scope="col" class="org-right">z [m]</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">1.0</td>
|
||
<td class="org-right">697783.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">-0.015</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">2.0</td>
|
||
<td class="org-right">697784.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.015</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">3.0</td>
|
||
<td class="org-right">697785.0</td>
|
||
<td class="org-right">-0.0325</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">4.0</td>
|
||
<td class="org-right">697786.0</td>
|
||
<td class="org-right">-0.0125</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">5.0</td>
|
||
<td class="org-right">697787.0</td>
|
||
<td class="org-right">-0.0075</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">6.0</td>
|
||
<td class="org-right">697788.0</td>
|
||
<td class="org-right">0.0125</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">7.0</td>
|
||
<td class="org-right">697789.0</td>
|
||
<td class="org-right">0.0325</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 4:</span> Some extracted parameters of the FEM</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-left" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-left">Total number of Nodes</td>
|
||
<td class="org-right">7</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Number of interface Nodes</td>
|
||
<td class="org-right">7</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Number of Modes</td>
|
||
<td class="org-right">120</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Size of M and K matrices</td>
|
||
<td class="org-right">162</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p>
|
||
Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can now use the <code>Reduced Order Flexible Solid</code> simscape block.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-orga9811cf" class="outline-3">
|
||
<h3 id="orga9811cf"><span class="section-number-3">1.2</span> Piezoelectric parameters</h3>
|
||
<div class="outline-text-3" id="text-1-2">
|
||
<p>
|
||
In order to make the conversion from applied voltage to generated force or from the strain to the generated voltage, we need to defined some parameters corresponding to the piezoelectric material:
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">d33 = 300e<span class="org-type">-</span>12; <span class="org-comment">% Strain constant [m/V]</span>
|
||
n = 80; <span class="org-comment">% Number of layers per stack</span>
|
||
eT = 1.6e<span class="org-type">-</span>8; <span class="org-comment">% Permittivity under constant stress [F/m]</span>
|
||
sD = 1e<span class="org-type">-</span>11; <span class="org-comment">% Compliance under constant electric displacement [m2/N]</span>
|
||
ka = 235e6; <span class="org-comment">% Stack stiffness [N/m]</span>
|
||
C = 5e<span class="org-type">-</span>6; <span class="org-comment">% Stack capactiance [F]</span>
|
||
</pre>
|
||
</div>
|
||
|
||
<p>
|
||
The ratio of the developed force to applied voltage is:
|
||
</p>
|
||
\begin{equation}
|
||
\label{org0bf4f86}
|
||
F_a = g_a V_a, \quad g_a = d_{33} n k_a
|
||
\end{equation}
|
||
<p>
|
||
where:
|
||
</p>
|
||
<ul class="org-ul">
|
||
<li>\(F_a\): developed force in [N]</li>
|
||
<li>\(n\): number of layers of the actuator stack</li>
|
||
<li>\(d_{33}\): strain constant in [m/V]</li>
|
||
<li>\(k_a\): actuator stack stiffness in [N/m]</li>
|
||
<li>\(V_a\): applied voltage in [V]</li>
|
||
</ul>
|
||
|
||
<p>
|
||
If we take the numerical values, we obtain:
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">d33<span class="org-type">*</span>n<span class="org-type">*</span>ka <span class="org-comment">% [N/V]</span>
|
||
</pre>
|
||
</div>
|
||
|
||
<pre class="example">
|
||
5.64
|
||
</pre>
|
||
|
||
|
||
<p>
|
||
From (<a href="#citeproc_bib_item_1">Fleming and Leang 2014</a>) (page 123), the relation between relative displacement of the sensor stack and generated voltage is:
|
||
</p>
|
||
\begin{equation}
|
||
\label{org0478126}
|
||
V_s = \frac{d_{33}}{\epsilon^T s^D n} \Delta h
|
||
\end{equation}
|
||
<p>
|
||
where:
|
||
</p>
|
||
<ul class="org-ul">
|
||
<li>\(V_s\): measured voltage in [V]</li>
|
||
<li>\(d_{33}\): strain constant in [m/V]</li>
|
||
<li>\(\epsilon^T\): permittivity under constant stress in [F/m]</li>
|
||
<li>\(s^D\): elastic compliance under constant electric displacement in [m^2/N]</li>
|
||
<li>\(n\): number of layers of the sensor stack</li>
|
||
<li>\(\Delta h\): relative displacement in [m]</li>
|
||
</ul>
|
||
|
||
<p>
|
||
If we take the numerical values, we obtain:
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">1e<span class="org-type">-</span>6<span class="org-type">*</span>d33<span class="org-type">/</span>(eT<span class="org-type">*</span>sD<span class="org-type">*</span>n) <span class="org-comment">% [V/um]</span>
|
||
</pre>
|
||
</div>
|
||
|
||
<pre class="example">
|
||
23.438
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-orgf60bf13" class="outline-3">
|
||
<h3 id="orgf60bf13"><span class="section-number-3">1.3</span> Simscape Model</h3>
|
||
<div class="outline-text-3" id="text-1-3">
|
||
<p>
|
||
The flexible element is imported using the <code>Reduced Order Flexible Solid</code> simscape block.
|
||
</p>
|
||
|
||
<p>
|
||
Let’s say we use two stacks as a force sensor and one stack as an actuator:
|
||
</p>
|
||
<ul class="org-ul">
|
||
<li>A <code>Relative Motion Sensor</code> block is added between the nodes A and C</li>
|
||
<li>An <code>Internal Force</code> block is added between the remote points E and B</li>
|
||
</ul>
|
||
|
||
<p>
|
||
The interface nodes are shown in Figure <a href="#org7a29cfe">1</a>.
|
||
</p>
|
||
|
||
<p>
|
||
One mass is fixed at one end of the piezo-electric stack actuator (remove point F), the other end is fixed to the world frame (remote point G).
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org7589ca6" class="outline-3">
|
||
<h3 id="org7589ca6"><span class="section-number-3">1.4</span> Identification of the APA Characteristics</h3>
|
||
<div class="outline-text-3" id="text-1-4">
|
||
</div>
|
||
<div id="outline-container-org839ecc0" class="outline-4">
|
||
<h4 id="org839ecc0"><span class="section-number-4">1.4.1</span> Stiffness</h4>
|
||
<div class="outline-text-4" id="text-1-4-1">
|
||
<p>
|
||
The transfer function from vertical external force to the relative vertical displacement is identified.
|
||
</p>
|
||
|
||
<p>
|
||
The inverse of its DC gain is the axial stiffness of the APA:
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">1e<span class="org-type">-</span>6<span class="org-type">/</span>dcgain(G) <span class="org-comment">% [N/um]</span>
|
||
</pre>
|
||
</div>
|
||
|
||
<pre class="example">
|
||
1.753
|
||
</pre>
|
||
|
||
|
||
<p>
|
||
The specified stiffness in the datasheet is \(k = 1.8\, [N/\mu m]\).
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org9b9cedd" class="outline-4">
|
||
<h4 id="org9b9cedd"><span class="section-number-4">1.4.2</span> Resonance Frequency</h4>
|
||
<div class="outline-text-4" id="text-1-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="#org2662235">2</a>).
|
||
</p>
|
||
|
||
|
||
<div id="org2662235" class="figure">
|
||
<p><img src="figs/apa300ml_resonance.png" alt="apa300ml_resonance.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 2: </span>First resonance is around 800Hz</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org87cbe72" class="outline-4">
|
||
<h4 id="org87cbe72"><span class="section-number-4">1.4.3</span> Amplification factor</h4>
|
||
<div class="outline-text-4" id="text-1-4-3">
|
||
<p>
|
||
The amplification factor is the ratio of the vertical displacement to the stack displacement.
|
||
</p>
|
||
|
||
<p>
|
||
The ratio of the two displacement is computed from the FEM model.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">abs(dcgain(G(1,1))<span class="org-type">./</span>dcgain(G(2,1)))
|
||
</pre>
|
||
</div>
|
||
|
||
<pre class="example">
|
||
5.0749
|
||
</pre>
|
||
|
||
|
||
<p>
|
||
This is actually correct and approximately corresponds to the ratio of the piezo height and length:
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">75<span class="org-type">/</span>15
|
||
</pre>
|
||
</div>
|
||
|
||
<pre class="example">
|
||
5
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org0071048" class="outline-4">
|
||
<h4 id="org0071048"><span class="section-number-4">1.4.4</span> Stroke</h4>
|
||
<div class="outline-text-4" id="text-1-4-4">
|
||
<p>
|
||
Estimation of the actuator stroke:
|
||
\[ \Delta H = A n \Delta L \]
|
||
with:
|
||
</p>
|
||
<ul class="org-ul">
|
||
<li>\(\Delta H\) Axial Stroke of the APA</li>
|
||
<li>\(A\) Amplification factor (5 for the APA300ML)</li>
|
||
<li>\(n\) Number of stack used</li>
|
||
<li>\(\Delta L\) Stroke of the stack (0.1% of its length)</li>
|
||
</ul>
|
||
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">1e6 <span class="org-type">*</span> 5 <span class="org-type">*</span> 3 <span class="org-type">*</span> 20e<span class="org-type">-</span>3 <span class="org-type">*</span> 0.1e<span class="org-type">-</span>2
|
||
</pre>
|
||
</div>
|
||
|
||
<pre class="example">
|
||
300
|
||
</pre>
|
||
|
||
|
||
<p>
|
||
This is exactly the specified stroke in the data-sheet.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org4fdb600" class="outline-3">
|
||
<h3 id="org4fdb600"><span class="section-number-3">1.5</span> Identification of the Dynamics from actuator to replace displacement</h3>
|
||
<div class="outline-text-3" id="text-1-5">
|
||
<p>
|
||
We first set the mass to be approximately zero.
|
||
The dynamics is identified from the applied force to the measured relative displacement.
|
||
The same dynamics is identified for a payload mass of 10Kg.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">m = 10;
|
||
</pre>
|
||
</div>
|
||
|
||
|
||
<div id="orgb9beb05" class="figure">
|
||
<p><img src="figs/apa300ml_plant_dynamics.png" alt="apa300ml_plant_dynamics.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 3: </span>Transfer function from forces applied by the stack to the axial displacement of the APA</p>
|
||
</div>
|
||
|
||
<p>
|
||
The root locus corresponding to Direct Velocity Feedback with a mass of 10kg is shown in Figure <a href="#orgcdc7a42">4</a>.
|
||
</p>
|
||
|
||
<div id="orgcdc7a42" class="figure">
|
||
<p><img src="figs/apa300ml_dvf_root_locus.png" alt="apa300ml_dvf_root_locus.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 4: </span>Root Locus for Direct Velocity Feedback</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-orga2f4fd6" class="outline-3">
|
||
<h3 id="orga2f4fd6"><span class="section-number-3">1.6</span> Identification of the Dynamics from actuator to force sensor</h3>
|
||
<div class="outline-text-3" id="text-1-6">
|
||
<p>
|
||
Let’s use 2 stacks as a force sensor and 1 stack as force actuator.
|
||
</p>
|
||
|
||
<p>
|
||
The transfer function from actuator voltage to sensor voltage is identified and shown in Figure <a href="#org838a459">5</a>.
|
||
</p>
|
||
|
||
<div id="org838a459" class="figure">
|
||
<p><img src="figs/apa300ml_iff_plant.png" alt="apa300ml_iff_plant.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 5: </span>Transfer function from actuator to force sensor</p>
|
||
</div>
|
||
|
||
<p>
|
||
For root locus corresponding to IFF is shown in Figure <a href="#org6a92e46">6</a>.
|
||
</p>
|
||
|
||
<div id="org6a92e46" class="figure">
|
||
<p><img src="figs/apa300ml_iff_root_locus.png" alt="apa300ml_iff_root_locus.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 6: </span>Root Locus for IFF</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org8ece2ce" class="outline-3">
|
||
<h3 id="org8ece2ce"><span class="section-number-3">1.7</span> Identification for a simpler model</h3>
|
||
<div class="outline-text-3" id="text-1-7">
|
||
<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="#org6551a86">7</a>).
|
||
The parameters are shown in the table below.
|
||
</p>
|
||
|
||
|
||
<div id="org6551a86" class="figure">
|
||
<p><img src="./figs/souleille18_model_piezo.png" alt="souleille18_model_piezo.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 7: </span>Picture of an APA100M from Cedrat Technologies. Simplified model of a one DoF payload mounted on such isolator</p>
|
||
</div>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 5:</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"> </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(<span class="org-string">'y'</span>, <span class="org-string">'Fa'</span>)));
|
||
beta = abs(dcgain(G(<span class="org-string">'y'</span>, <span class="org-string">'Fd'</span>)));
|
||
</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<span class="org-type">/</span>abs(dcgain(G(<span class="org-string">'y'</span>, <span class="org-string">'Fa'</span>)));
|
||
</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<span class="org-type">/</span>(beta<span class="org-type">/</span>alpha <span class="org-type">-</span> 1);
|
||
k1 = 1<span class="org-type">/</span>beta <span class="org-type">-</span> ke<span class="org-type">*</span>ka<span class="org-type">/</span>(ke <span class="org-type">+</span> 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"> </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">40.5</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>
|
||
The analytical model of the simpler system is defined below:
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">Ga = 1<span class="org-type">/</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> k1 <span class="org-type">+</span> c1<span class="org-type">*</span>s <span class="org-type">+</span> ke<span class="org-type">*</span>ka<span class="org-type">/</span>(ke <span class="org-type">+</span> ka)) <span class="org-type">*</span> ...
|
||
[ 1 , k1 <span class="org-type">+</span> c1<span class="org-type">*</span>s <span class="org-type">+</span> ke<span class="org-type">*</span>ka<span class="org-type">/</span>(ke <span class="org-type">+</span> ka) , ke<span class="org-type">/</span>(ke <span class="org-type">+</span> ka) ;
|
||
<span class="org-type">-</span>ke<span class="org-type">*</span>ka<span class="org-type">/</span>(ke <span class="org-type">+</span> ka), ke<span class="org-type">*</span>ka<span class="org-type">/</span>(ke <span class="org-type">+</span> ka)<span class="org-type">*</span>m<span class="org-type">*</span>s<span class="org-type">^</span>2 , <span class="org-type">-</span>ke<span class="org-type">/</span>(ke <span class="org-type">+</span> ka)<span class="org-type">*</span>(m<span class="org-type">*</span>s<span class="org-type">^</span>2 <span class="org-type">+</span> c1<span class="org-type">*</span>s <span class="org-type">+</span> k1)];
|
||
|
||
Ga.InputName = {<span class="org-string">'Fd'</span>, <span class="org-string">'w'</span>, <span class="org-string">'Fa'</span>};
|
||
Ga.OutputName = {<span class="org-string">'y'</span>, <span class="org-string">'Fs'</span>};
|
||
</pre>
|
||
</div>
|
||
|
||
<p>
|
||
And the DC gain is adjusted for the force sensor:
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">F_gain = dcgain(G(<span class="org-string">'Fs'</span>, <span class="org-string">'Fd'</span>))<span class="org-type">/</span>dcgain(Ga(<span class="org-string">'Fs'</span>, <span class="org-string">'Fd'</span>));
|
||
</pre>
|
||
</div>
|
||
|
||
<p>
|
||
The dynamics of the FEM model and the simpler model are compared in Figure <a href="#orgbd0f182">8</a>.
|
||
</p>
|
||
|
||
|
||
<div id="orgbd0f182" class="figure">
|
||
<p><img src="figs/apa300ml_comp_simpler_model.png" alt="apa300ml_comp_simpler_model.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 8: </span>Comparison of the Dynamics between the FEM model and the simplified one</p>
|
||
</div>
|
||
|
||
<p>
|
||
The simplified model has also been implemented in Simscape.
|
||
</p>
|
||
|
||
<p>
|
||
The dynamics of the Simscape simplified model is identified and compared with the FEM one in Figure <a href="#orgc032d03">9</a>.
|
||
</p>
|
||
|
||
<div id="orgc032d03" class="figure">
|
||
<p><img src="figs/apa300ml_comp_simpler_simscape.png" alt="apa300ml_comp_simpler_simscape.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 9: </span>Comparison of the Dynamics between the FEM model and the simplified simscape model</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org43ae9e5" class="outline-3">
|
||
<h3 id="org43ae9e5"><span class="section-number-3">1.8</span> Integral Force Feedback</h3>
|
||
<div class="outline-text-3" id="text-1-8">
|
||
<p>
|
||
In this section, Integral Force Feedback control architecture is applied on the APA300ML.
|
||
</p>
|
||
|
||
<p>
|
||
First, the plant (dynamics from voltage actuator to voltage sensor is identified).
|
||
The payload mass is set to 10kg.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">m = 10;
|
||
</pre>
|
||
</div>
|
||
|
||
<p>
|
||
The obtained dynamics is shown in Figure <a href="#orga6e0dfc">10</a>.
|
||
</p>
|
||
|
||
|
||
<div id="orga6e0dfc" class="figure">
|
||
<p><img src="figs/piezo_amplified_iff_plant.png" alt="piezo_amplified_iff_plant.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 10: </span>IFF Plant</p>
|
||
</div>
|
||
|
||
<p>
|
||
The controller is defined below and the loop gain is shown in Figure <a href="#orgeb0376d">11</a>.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">Kiff = <span class="org-type">-</span>1e3<span class="org-type">/</span>s;
|
||
</pre>
|
||
</div>
|
||
|
||
|
||
<div id="orgeb0376d" 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 11: </span>IFF Loop Gain</p>
|
||
</div>
|
||
|
||
<p>
|
||
Now the closed-loop system is identified again and compare with the open loop system in Figure <a href="#org51f452b">12</a>.
|
||
</p>
|
||
|
||
<p>
|
||
It is the expected behavior as shown in the Figure <a href="#orged35295">13</a> (from (<a href="#citeproc_bib_item_2">Souleille et al. 2018</a>)).
|
||
</p>
|
||
|
||
|
||
<div id="org51f452b" class="figure">
|
||
<p><img src="figs/piezo_amplified_iff_comp.png" alt="piezo_amplified_iff_comp.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 12: </span>OL and CL transfer functions</p>
|
||
</div>
|
||
|
||
|
||
<div id="orged35295" class="figure">
|
||
<p><img src="figs/souleille18_results.png" alt="souleille18_results.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 13: </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 id="outline-container-orgc203c93" class="outline-2">
|
||
<h2 id="orgc203c93"><span class="section-number-2">2</span> First Flexible Joint Geometry</h2>
|
||
<div class="outline-text-2" id="text-2">
|
||
<p>
|
||
<a id="orgb1abf80"></a>
|
||
</p>
|
||
<p>
|
||
The studied flexor is shown in Figure <a href="#orgd3ad3b1">14</a>.
|
||
</p>
|
||
|
||
<p>
|
||
The stiffness and mass matrices representing the dynamics of the flexor are exported from a FEM.
|
||
It is then imported into Simscape.
|
||
</p>
|
||
|
||
<p>
|
||
A simplified model of the flexor is then developped.
|
||
</p>
|
||
|
||
|
||
<div id="orgd3ad3b1" class="figure">
|
||
<p><img src="figs/flexor_id16_screenshot.png" alt="flexor_id16_screenshot.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 14: </span>Flexor studied</p>
|
||
</div>
|
||
</div>
|
||
<div id="outline-container-orga48c65c" class="outline-3">
|
||
<h3 id="orga48c65c"><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(<span class="org-string">'mat_K_6modes_2MDoF.matrix'</span>);
|
||
M = extractMatrix(<span class="org-string">'mat_M_6modes_2MDoF.matrix'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 6:</span> First 10x10 elements of the Stiffness matrix</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">11200000.0</td>
|
||
<td class="org-right">195.0</td>
|
||
<td class="org-right">2220.0</td>
|
||
<td class="org-right">-0.719</td>
|
||
<td class="org-right">-265.0</td>
|
||
<td class="org-right">1.59</td>
|
||
<td class="org-right">-11200000.0</td>
|
||
<td class="org-right">-213.0</td>
|
||
<td class="org-right">-2220.0</td>
|
||
<td class="org-right">0.147</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">195.0</td>
|
||
<td class="org-right">11400000.0</td>
|
||
<td class="org-right">1290.0</td>
|
||
<td class="org-right">-148.0</td>
|
||
<td class="org-right">-0.188</td>
|
||
<td class="org-right">2.41</td>
|
||
<td class="org-right">-212.0</td>
|
||
<td class="org-right">-11400000.0</td>
|
||
<td class="org-right">-1290.0</td>
|
||
<td class="org-right">148.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">2220.0</td>
|
||
<td class="org-right">1290.0</td>
|
||
<td class="org-right">119000000.0</td>
|
||
<td class="org-right">1.31</td>
|
||
<td class="org-right">1.49</td>
|
||
<td class="org-right">1.79</td>
|
||
<td class="org-right">-2220.0</td>
|
||
<td class="org-right">-1290.0</td>
|
||
<td class="org-right">-119000000.0</td>
|
||
<td class="org-right">-1.31</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-0.719</td>
|
||
<td class="org-right">-148.0</td>
|
||
<td class="org-right">1.31</td>
|
||
<td class="org-right">33.0</td>
|
||
<td class="org-right">0.000488</td>
|
||
<td class="org-right">-0.000977</td>
|
||
<td class="org-right">0.141</td>
|
||
<td class="org-right">148.0</td>
|
||
<td class="org-right">-1.31</td>
|
||
<td class="org-right">-33.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-265.0</td>
|
||
<td class="org-right">-0.188</td>
|
||
<td class="org-right">1.49</td>
|
||
<td class="org-right">0.000488</td>
|
||
<td class="org-right">33.0</td>
|
||
<td class="org-right">0.00293</td>
|
||
<td class="org-right">266.0</td>
|
||
<td class="org-right">0.154</td>
|
||
<td class="org-right">-1.49</td>
|
||
<td class="org-right">0.00026</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">1.59</td>
|
||
<td class="org-right">2.41</td>
|
||
<td class="org-right">1.79</td>
|
||
<td class="org-right">-0.000977</td>
|
||
<td class="org-right">0.00293</td>
|
||
<td class="org-right">236.0</td>
|
||
<td class="org-right">-1.32</td>
|
||
<td class="org-right">-2.55</td>
|
||
<td class="org-right">-1.79</td>
|
||
<td class="org-right">0.000379</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-11200000.0</td>
|
||
<td class="org-right">-212.0</td>
|
||
<td class="org-right">-2220.0</td>
|
||
<td class="org-right">0.141</td>
|
||
<td class="org-right">266.0</td>
|
||
<td class="org-right">-1.32</td>
|
||
<td class="org-right">11400000.0</td>
|
||
<td class="org-right">24600.0</td>
|
||
<td class="org-right">1640.0</td>
|
||
<td class="org-right">120.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-213.0</td>
|
||
<td class="org-right">-11400000.0</td>
|
||
<td class="org-right">-1290.0</td>
|
||
<td class="org-right">148.0</td>
|
||
<td class="org-right">0.154</td>
|
||
<td class="org-right">-2.55</td>
|
||
<td class="org-right">24600.0</td>
|
||
<td class="org-right">11400000.0</td>
|
||
<td class="org-right">1290.0</td>
|
||
<td class="org-right">-72.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-2220.0</td>
|
||
<td class="org-right">-1290.0</td>
|
||
<td class="org-right">-119000000.0</td>
|
||
<td class="org-right">-1.31</td>
|
||
<td class="org-right">-1.49</td>
|
||
<td class="org-right">-1.79</td>
|
||
<td class="org-right">1640.0</td>
|
||
<td class="org-right">1290.0</td>
|
||
<td class="org-right">119000000.0</td>
|
||
<td class="org-right">1.32</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.147</td>
|
||
<td class="org-right">148.0</td>
|
||
<td class="org-right">-1.31</td>
|
||
<td class="org-right">-33.0</td>
|
||
<td class="org-right">0.00026</td>
|
||
<td class="org-right">0.000379</td>
|
||
<td class="org-right">120.0</td>
|
||
<td class="org-right">-72.0</td>
|
||
<td class="org-right">1.32</td>
|
||
<td class="org-right">34.7</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 7:</span> First 10x10 elements of the Mass matrix</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">-4e-08</td>
|
||
<td class="org-right">-1e-10</td>
|
||
<td class="org-right">0.0002</td>
|
||
<td class="org-right">-3e-11</td>
|
||
<td class="org-right">0.004</td>
|
||
<td class="org-right">5e-08</td>
|
||
<td class="org-right">7e-08</td>
|
||
<td class="org-right">1e-10</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">-3e-07</td>
|
||
<td class="org-right">-0.0002</td>
|
||
<td class="org-right">-1e-10</td>
|
||
<td class="org-right">-2e-09</td>
|
||
<td class="org-right">2e-08</td>
|
||
<td class="org-right">0.004</td>
|
||
<td class="org-right">3e-07</td>
|
||
<td class="org-right">1e-05</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-4e-08</td>
|
||
<td class="org-right">-3e-07</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">7e-10</td>
|
||
<td class="org-right">-2e-09</td>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">3e-07</td>
|
||
<td class="org-right">7e-08</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">1e-09</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-1e-10</td>
|
||
<td class="org-right">-0.0002</td>
|
||
<td class="org-right">7e-10</td>
|
||
<td class="org-right">4e-06</td>
|
||
<td class="org-right">-1e-12</td>
|
||
<td class="org-right">-6e-13</td>
|
||
<td class="org-right">2e-10</td>
|
||
<td class="org-right">-7e-06</td>
|
||
<td class="org-right">-8e-10</td>
|
||
<td class="org-right">-1e-09</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.0002</td>
|
||
<td class="org-right">-1e-10</td>
|
||
<td class="org-right">-2e-09</td>
|
||
<td class="org-right">-1e-12</td>
|
||
<td class="org-right">3e-06</td>
|
||
<td class="org-right">2e-13</td>
|
||
<td class="org-right">9e-06</td>
|
||
<td class="org-right">4e-11</td>
|
||
<td class="org-right">2e-09</td>
|
||
<td class="org-right">-3e-13</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-3e-11</td>
|
||
<td class="org-right">-2e-09</td>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">-6e-13</td>
|
||
<td class="org-right">2e-13</td>
|
||
<td class="org-right">4e-07</td>
|
||
<td class="org-right">8e-11</td>
|
||
<td class="org-right">9e-10</td>
|
||
<td class="org-right">-1e-09</td>
|
||
<td class="org-right">2e-12</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.004</td>
|
||
<td class="org-right">2e-08</td>
|
||
<td class="org-right">3e-07</td>
|
||
<td class="org-right">2e-10</td>
|
||
<td class="org-right">9e-06</td>
|
||
<td class="org-right">8e-11</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">-7e-08</td>
|
||
<td class="org-right">-3e-07</td>
|
||
<td class="org-right">-2e-10</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">5e-08</td>
|
||
<td class="org-right">0.004</td>
|
||
<td class="org-right">7e-08</td>
|
||
<td class="org-right">-7e-06</td>
|
||
<td class="org-right">4e-11</td>
|
||
<td class="org-right">9e-10</td>
|
||
<td class="org-right">-7e-08</td>
|
||
<td class="org-right">0.01</td>
|
||
<td class="org-right">-4e-08</td>
|
||
<td class="org-right">0.0002</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">7e-08</td>
|
||
<td class="org-right">3e-07</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">-8e-10</td>
|
||
<td class="org-right">2e-09</td>
|
||
<td class="org-right">-1e-09</td>
|
||
<td class="org-right">-3e-07</td>
|
||
<td class="org-right">-4e-08</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">-1e-09</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">1e-10</td>
|
||
<td class="org-right">1e-05</td>
|
||
<td class="org-right">1e-09</td>
|
||
<td class="org-right">-1e-09</td>
|
||
<td class="org-right">-3e-13</td>
|
||
<td class="org-right">2e-12</td>
|
||
<td class="org-right">-2e-10</td>
|
||
<td class="org-right">0.0002</td>
|
||
<td class="org-right">-1e-09</td>
|
||
<td class="org-right">2e-06</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<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(<span class="org-string">'out_nodes_3D.txt'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 8:</span> Coordinates of the interface nodes</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col" class="org-right">Node i</th>
|
||
<th scope="col" class="org-right">Node Number</th>
|
||
<th scope="col" class="org-right">x [m]</th>
|
||
<th scope="col" class="org-right">y [m]</th>
|
||
<th scope="col" class="org-right">z [m]</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">1.0</td>
|
||
<td class="org-right">181278.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">2.0</td>
|
||
<td class="org-right">181279.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">-0.0</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
|
||
|
||
<colgroup>
|
||
<col class="org-left" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-left">Total number of Nodes</td>
|
||
<td class="org-right">2</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Number of interface Nodes</td>
|
||
<td class="org-right">2</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Number of Modes</td>
|
||
<td class="org-right">6</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Size of M and K matrices</td>
|
||
<td class="org-right">18</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p>
|
||
Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can use the <code>Reduced Order Flexible Solid</code> simscape block.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org5de18c6" class="outline-3">
|
||
<h3 id="org5de18c6"><span class="section-number-3">2.2</span> Identification of the parameters using Simscape and looking at the Stiffness Matrix</h3>
|
||
<div class="outline-text-3" id="text-2-2">
|
||
<p>
|
||
The flexor is now imported into Simscape and its parameters are estimated using an identification.
|
||
</p>
|
||
|
||
<p>
|
||
The dynamics is identified from the applied force/torque to the measured displacement/rotation of the flexor.
|
||
And we find the same parameters as the one estimated from the Stiffness matrix.
|
||
</p>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
|
||
|
||
<colgroup>
|
||
<col class="org-left" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col" class="org-left"><b>Caracteristic</b></th>
|
||
<th scope="col" class="org-right"><b>Value</b></th>
|
||
<th scope="col" class="org-right"><b>Identification</b></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-left">Axial Stiffness Dz [N/um]</td>
|
||
<td class="org-right">119</td>
|
||
<td class="org-right">119</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Bending Stiffness Rx [Nm/rad]</td>
|
||
<td class="org-right">33</td>
|
||
<td class="org-right">33</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Bending Stiffness Ry [Nm/rad]</td>
|
||
<td class="org-right">33</td>
|
||
<td class="org-right">33</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Torsion Stiffness Rz [Nm/rad]</td>
|
||
<td class="org-right">236</td>
|
||
<td class="org-right">236</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-orgb2d0259" class="outline-3">
|
||
<h3 id="orgb2d0259"><span class="section-number-3">2.3</span> Simpler Model</h3>
|
||
<div class="outline-text-3" id="text-2-3">
|
||
<p>
|
||
Let’s now model the flexible joint with a “perfect” Bushing joint as shown in Figure <a href="#org8f309d8">15</a>.
|
||
</p>
|
||
|
||
|
||
<div id="org8f309d8" class="figure">
|
||
<p><img src="figs/flexible_joint_simscape.png" alt="flexible_joint_simscape.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 15: </span>Bushing Joint used to model the flexible joint</p>
|
||
</div>
|
||
|
||
<p>
|
||
The parameters of the Bushing joint (stiffnesses) are estimated from the Stiffness matrix that was computed from the FEM.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">Kx = K(1,1); <span class="org-comment">% [N/m]</span>
|
||
Ky = K(2,2); <span class="org-comment">% [N/m]</span>
|
||
Kz = K(3,3); <span class="org-comment">% [N/m]</span>
|
||
Krx = K(4,4); <span class="org-comment">% [Nm/rad]</span>
|
||
Kry = K(5,5); <span class="org-comment">% [Nm/rad]</span>
|
||
Krz = K(6,6); <span class="org-comment">% [Nm/rad]</span>
|
||
</pre>
|
||
</div>
|
||
|
||
<p>
|
||
The dynamics from the applied force/torque to the measured displacement/rotation of the flexor is identified again for this simpler model.
|
||
The two obtained dynamics are compared in Figure
|
||
</p>
|
||
|
||
|
||
<div id="orge65cd1b" class="figure">
|
||
<p><img src="figs/flexor_ID16_compare_bushing_joint.png" alt="flexor_ID16_compare_bushing_joint.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 16: </span>Comparison of the Joint compliance between the FEM model and the simpler model</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org4dadb53" class="outline-2">
|
||
<h2 id="org4dadb53"><span class="section-number-2">3</span> Optimized Flexible Joint</h2>
|
||
<div class="outline-text-2" id="text-3">
|
||
<p>
|
||
<a id="org146537a"></a>
|
||
</p>
|
||
<p>
|
||
The joint geometry has been optimized using Ansys to have lower bending stiffness while keeping a large axial stiffness.
|
||
</p>
|
||
|
||
<p>
|
||
The obtained geometry is shown in Figure <a href="#org89612a5">17</a>.
|
||
</p>
|
||
|
||
|
||
<div id="org89612a5" class="figure">
|
||
<p><img src="figs/flexor_025_MDoF.jpg" alt="flexor_025_MDoF.jpg" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 17: </span>Flexor studied</p>
|
||
</div>
|
||
</div>
|
||
<div id="outline-container-orgb1d1e31" class="outline-3">
|
||
<h3 id="orgb1d1e31"><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.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">K = readmatrix(<span class="org-string">'flex025_mat_K.CSV'</span>);
|
||
M = readmatrix(<span class="org-string">'flex025_mat_M.CSV'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<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 Stiffness matrix</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">12700000.0</td>
|
||
<td class="org-right">-18.5</td>
|
||
<td class="org-right">-26.8</td>
|
||
<td class="org-right">0.00162</td>
|
||
<td class="org-right">-4.63</td>
|
||
<td class="org-right">64.0</td>
|
||
<td class="org-right">-12700000.0</td>
|
||
<td class="org-right">18.3</td>
|
||
<td class="org-right">26.7</td>
|
||
<td class="org-right">0.00234</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-18.5</td>
|
||
<td class="org-right">12700000.0</td>
|
||
<td class="org-right">-499.0</td>
|
||
<td class="org-right">-132.0</td>
|
||
<td class="org-right">0.00414</td>
|
||
<td class="org-right">-0.495</td>
|
||
<td class="org-right">18.4</td>
|
||
<td class="org-right">-12700000.0</td>
|
||
<td class="org-right">499.0</td>
|
||
<td class="org-right">132.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-26.8</td>
|
||
<td class="org-right">-499.0</td>
|
||
<td class="org-right">94000000.0</td>
|
||
<td class="org-right">-470.0</td>
|
||
<td class="org-right">0.00771</td>
|
||
<td class="org-right">-0.855</td>
|
||
<td class="org-right">26.8</td>
|
||
<td class="org-right">498.0</td>
|
||
<td class="org-right">-94000000.0</td>
|
||
<td class="org-right">470.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.00162</td>
|
||
<td class="org-right">-132.0</td>
|
||
<td class="org-right">-470.0</td>
|
||
<td class="org-right">4.83</td>
|
||
<td class="org-right">2.61e-07</td>
|
||
<td class="org-right">0.000123</td>
|
||
<td class="org-right">-0.00163</td>
|
||
<td class="org-right">132.0</td>
|
||
<td class="org-right">470.0</td>
|
||
<td class="org-right">-4.83</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-4.63</td>
|
||
<td class="org-right">0.00414</td>
|
||
<td class="org-right">0.00771</td>
|
||
<td class="org-right">2.61e-07</td>
|
||
<td class="org-right">4.83</td>
|
||
<td class="org-right">4.43e-05</td>
|
||
<td class="org-right">4.63</td>
|
||
<td class="org-right">-0.00413</td>
|
||
<td class="org-right">-0.00772</td>
|
||
<td class="org-right">-4.3e-07</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">64.0</td>
|
||
<td class="org-right">-0.495</td>
|
||
<td class="org-right">-0.855</td>
|
||
<td class="org-right">0.000123</td>
|
||
<td class="org-right">4.43e-05</td>
|
||
<td class="org-right">260.0</td>
|
||
<td class="org-right">-64.0</td>
|
||
<td class="org-right">0.495</td>
|
||
<td class="org-right">0.855</td>
|
||
<td class="org-right">-0.000124</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-12700000.0</td>
|
||
<td class="org-right">18.4</td>
|
||
<td class="org-right">26.8</td>
|
||
<td class="org-right">-0.00163</td>
|
||
<td class="org-right">4.63</td>
|
||
<td class="org-right">-64.0</td>
|
||
<td class="org-right">12700000.0</td>
|
||
<td class="org-right">-18.2</td>
|
||
<td class="org-right">-26.7</td>
|
||
<td class="org-right">-0.00234</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">18.3</td>
|
||
<td class="org-right">-12700000.0</td>
|
||
<td class="org-right">498.0</td>
|
||
<td class="org-right">132.0</td>
|
||
<td class="org-right">-0.00413</td>
|
||
<td class="org-right">0.495</td>
|
||
<td class="org-right">-18.2</td>
|
||
<td class="org-right">12700000.0</td>
|
||
<td class="org-right">-498.0</td>
|
||
<td class="org-right">-132.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">26.7</td>
|
||
<td class="org-right">499.0</td>
|
||
<td class="org-right">-94000000.0</td>
|
||
<td class="org-right">470.0</td>
|
||
<td class="org-right">-0.00772</td>
|
||
<td class="org-right">0.855</td>
|
||
<td class="org-right">-26.7</td>
|
||
<td class="org-right">-498.0</td>
|
||
<td class="org-right">94000000.0</td>
|
||
<td class="org-right">-470.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.00234</td>
|
||
<td class="org-right">132.0</td>
|
||
<td class="org-right">470.0</td>
|
||
<td class="org-right">-4.83</td>
|
||
<td class="org-right">-4.3e-07</td>
|
||
<td class="org-right">-0.000124</td>
|
||
<td class="org-right">-0.00234</td>
|
||
<td class="org-right">-132.0</td>
|
||
<td class="org-right">-470.0</td>
|
||
<td class="org-right">4.83</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 10:</span> First 10x10 elements of the Mass matrix</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">0.006</td>
|
||
<td class="org-right">8e-09</td>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">-1e-10</td>
|
||
<td class="org-right">3e-05</td>
|
||
<td class="org-right">3e-08</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">-3e-09</td>
|
||
<td class="org-right">9e-09</td>
|
||
<td class="org-right">2e-12</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">8e-09</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">1e-07</td>
|
||
<td class="org-right">-3e-05</td>
|
||
<td class="org-right">1e-11</td>
|
||
<td class="org-right">6e-10</td>
|
||
<td class="org-right">1e-08</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">-5e-08</td>
|
||
<td class="org-right">3e-09</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">1e-07</td>
|
||
<td class="org-right">0.01</td>
|
||
<td class="org-right">-6e-08</td>
|
||
<td class="org-right">-6e-11</td>
|
||
<td class="org-right">-8e-12</td>
|
||
<td class="org-right">-1e-07</td>
|
||
<td class="org-right">1e-08</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">-1e-08</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-1e-10</td>
|
||
<td class="org-right">-3e-05</td>
|
||
<td class="org-right">-6e-08</td>
|
||
<td class="org-right">1e-06</td>
|
||
<td class="org-right">7e-14</td>
|
||
<td class="org-right">6e-13</td>
|
||
<td class="org-right">1e-10</td>
|
||
<td class="org-right">1e-06</td>
|
||
<td class="org-right">-1e-08</td>
|
||
<td class="org-right">3e-10</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">3e-05</td>
|
||
<td class="org-right">1e-11</td>
|
||
<td class="org-right">-6e-11</td>
|
||
<td class="org-right">7e-14</td>
|
||
<td class="org-right">2e-07</td>
|
||
<td class="org-right">1e-10</td>
|
||
<td class="org-right">3e-08</td>
|
||
<td class="org-right">-7e-12</td>
|
||
<td class="org-right">6e-11</td>
|
||
<td class="org-right">-6e-16</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">3e-08</td>
|
||
<td class="org-right">6e-10</td>
|
||
<td class="org-right">-8e-12</td>
|
||
<td class="org-right">6e-13</td>
|
||
<td class="org-right">1e-10</td>
|
||
<td class="org-right">5e-07</td>
|
||
<td class="org-right">1e-08</td>
|
||
<td class="org-right">-5e-10</td>
|
||
<td class="org-right">-1e-11</td>
|
||
<td class="org-right">1e-13</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">1e-08</td>
|
||
<td class="org-right">-1e-07</td>
|
||
<td class="org-right">1e-10</td>
|
||
<td class="org-right">3e-08</td>
|
||
<td class="org-right">1e-08</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">1e-07</td>
|
||
<td class="org-right">-4e-12</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-3e-09</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">1e-08</td>
|
||
<td class="org-right">1e-06</td>
|
||
<td class="org-right">-7e-12</td>
|
||
<td class="org-right">-5e-10</td>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">0.006</td>
|
||
<td class="org-right">-8e-08</td>
|
||
<td class="org-right">3e-05</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">9e-09</td>
|
||
<td class="org-right">-5e-08</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">-1e-08</td>
|
||
<td class="org-right">6e-11</td>
|
||
<td class="org-right">-1e-11</td>
|
||
<td class="org-right">1e-07</td>
|
||
<td class="org-right">-8e-08</td>
|
||
<td class="org-right">0.01</td>
|
||
<td class="org-right">-6e-08</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">2e-12</td>
|
||
<td class="org-right">3e-09</td>
|
||
<td class="org-right">-1e-08</td>
|
||
<td class="org-right">3e-10</td>
|
||
<td class="org-right">-6e-16</td>
|
||
<td class="org-right">1e-13</td>
|
||
<td class="org-right">-4e-12</td>
|
||
<td class="org-right">3e-05</td>
|
||
<td class="org-right">-6e-08</td>
|
||
<td class="org-right">2e-07</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
|
||
<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(<span class="org-string">'flex025_out_nodes_3D.txt'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
|
||
|
||
<colgroup>
|
||
<col class="org-left" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-left">Total number of Nodes</td>
|
||
<td class="org-right">2</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Number of interface Nodes</td>
|
||
<td class="org-right">2</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Number of Modes</td>
|
||
<td class="org-right">6</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Size of M and K matrices</td>
|
||
<td class="org-right">18</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 11:</span> Coordinates of the interface nodes</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col" class="org-right">Node i</th>
|
||
<th scope="col" class="org-right">Node Number</th>
|
||
<th scope="col" class="org-right">x [m]</th>
|
||
<th scope="col" class="org-right">y [m]</th>
|
||
<th scope="col" class="org-right">z [m]</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">1.0</td>
|
||
<td class="org-right">528875.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">2.0</td>
|
||
<td class="org-right">528876.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">-0.0</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p>
|
||
Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can use the <code>Reduced Order Flexible Solid</code> simscape block.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-orgc7107db" class="outline-3">
|
||
<h3 id="orgc7107db"><span class="section-number-3">3.2</span> Identification of the parameters using Simscape</h3>
|
||
<div class="outline-text-3" id="text-3-2">
|
||
<p>
|
||
The flexor is now imported into Simscape and its parameters are estimated using an identification.
|
||
</p>
|
||
|
||
<p>
|
||
The dynamics is identified from the applied force/torque to the measured displacement/rotation of the flexor.
|
||
And we find the same parameters as the one estimated from the Stiffness matrix.
|
||
</p>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
|
||
|
||
<colgroup>
|
||
<col class="org-left" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col" class="org-left"><b>Caracteristic</b></th>
|
||
<th scope="col" class="org-right"><b>Value</b></th>
|
||
<th scope="col" class="org-right"><b>Identification</b></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-left">Axial Stiffness Dz [N/um]</td>
|
||
<td class="org-right">94.0</td>
|
||
<td class="org-right">93.9</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Bending Stiffness Rx [Nm/rad]</td>
|
||
<td class="org-right">4.8</td>
|
||
<td class="org-right">4.8</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Bending Stiffness Ry [Nm/rad]</td>
|
||
<td class="org-right">4.8</td>
|
||
<td class="org-right">4.8</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Torsion Stiffness Rz [Nm/rad]</td>
|
||
<td class="org-right">260.2</td>
|
||
<td class="org-right">260.2</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org96d2775" class="outline-3">
|
||
<h3 id="org96d2775"><span class="section-number-3">3.3</span> Simpler Model</h3>
|
||
<div class="outline-text-3" id="text-3-3">
|
||
<p>
|
||
Let’s now model the flexible joint with a “perfect” Bushing joint as shown in Figure <a href="#org8f309d8">15</a>.
|
||
</p>
|
||
|
||
|
||
<div id="org9fc5457" class="figure">
|
||
<p><img src="figs/flexible_joint_simscape.png" alt="flexible_joint_simscape.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 18: </span>Bushing Joint used to model the flexible joint</p>
|
||
</div>
|
||
|
||
<p>
|
||
The parameters of the Bushing joint (stiffnesses) are estimated from the Stiffness matrix that was computed from the FEM.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">Kx = K(1,1); <span class="org-comment">% [N/m]</span>
|
||
Ky = K(2,2); <span class="org-comment">% [N/m]</span>
|
||
Kz = K(3,3); <span class="org-comment">% [N/m]</span>
|
||
Krx = K(4,4); <span class="org-comment">% [Nm/rad]</span>
|
||
Kry = K(5,5); <span class="org-comment">% [Nm/rad]</span>
|
||
Krz = K(6,6); <span class="org-comment">% [Nm/rad]</span>
|
||
</pre>
|
||
</div>
|
||
|
||
<p>
|
||
The dynamics from the applied force/torque to the measured displacement/rotation of the flexor is identified again for this simpler model.
|
||
The two obtained dynamics are compared in Figure
|
||
</p>
|
||
|
||
|
||
<div id="org3f0ca2d" class="figure">
|
||
<p><img src="figs/flexor_ID16_compare_bushing_joint.png" alt="flexor_ID16_compare_bushing_joint.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 19: </span>Comparison of the Joint compliance between the FEM model and the simpler model</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org2916e5d" class="outline-3">
|
||
<h3 id="org2916e5d"><span class="section-number-3">3.4</span> Comparison with a stiffer Flexible Joint</h3>
|
||
<div class="outline-text-3" id="text-3-4">
|
||
<p>
|
||
The stiffness matrix with the flexible joint with a “hinge” size of 0.50mm is loaded.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">K_050 = readmatrix(<span class="org-string">'flex050_mat_K.CSV'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<p>
|
||
Its parameters are compared with the Flexible Joint with a size of 0.25mm in the table below.
|
||
</p>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
|
||
|
||
<colgroup>
|
||
<col class="org-left" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col" class="org-left"><b>Caracteristic</b></th>
|
||
<th scope="col" class="org-right"><b>0.25 mm</b></th>
|
||
<th scope="col" class="org-right"><b>0.50 mm</b></th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-left">Axial Stiffness Dz [N/um]</td>
|
||
<td class="org-right">94.0</td>
|
||
<td class="org-right">124.7</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Shear Stiffness [N/um]</td>
|
||
<td class="org-right">12.7</td>
|
||
<td class="org-right">25.8</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Bending Stiffness Rx [Nm/rad]</td>
|
||
<td class="org-right">4.8</td>
|
||
<td class="org-right">26.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Bending Stiffness Ry [Nm/rad]</td>
|
||
<td class="org-right">4.8</td>
|
||
<td class="org-right">26.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Torsion Stiffness Rz [Nm/rad]</td>
|
||
<td class="org-right">260.2</td>
|
||
<td class="org-right">538.0</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org79ad15f" class="outline-2">
|
||
<h2 id="org79ad15f"><span class="section-number-2">4</span> Complete Strut with Encoder</h2>
|
||
<div class="outline-text-2" id="text-4">
|
||
<p>
|
||
<a id="orgc4b9146"></a>
|
||
</p>
|
||
</div>
|
||
<div id="outline-container-org26e8494" class="outline-3">
|
||
<h3 id="org26e8494"><span class="section-number-3">4.1</span> Introduction</h3>
|
||
<div class="outline-text-3" id="text-4-1">
|
||
<p>
|
||
Now, the full nano-hexapod strut is modelled using Ansys.
|
||
</p>
|
||
|
||
<p>
|
||
The 3D as well as the interface nodes are shown in Figure <a href="#org8a816bb">20</a>.
|
||
</p>
|
||
|
||
|
||
<div id="org8a816bb" class="figure">
|
||
<p><img src="figs/strut_encoder_nodes.jpg" alt="strut_encoder_nodes.jpg" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 20: </span>Interface points</p>
|
||
</div>
|
||
|
||
<p>
|
||
A side view is shown in Figure <a href="#org4c74f6e">21</a>.
|
||
</p>
|
||
|
||
|
||
<div id="org4c74f6e" class="figure">
|
||
<p><img src="figs/strut_encoder_nodes_side.jpg" alt="strut_encoder_nodes_side.jpg" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 21: </span>Interface points - Side view</p>
|
||
</div>
|
||
|
||
<p>
|
||
The flexible joints used have a 0.25mm width size.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-orgd702a5f" class="outline-3">
|
||
<h3 id="orgd702a5f"><span class="section-number-3">4.2</span> Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates</h3>
|
||
<div class="outline-text-3" id="text-4-2">
|
||
<p>
|
||
We first extract the stiffness and mass matrices.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">K = readmatrix(<span class="org-string">'strut_encoder_mat_K.CSV'</span>);
|
||
M = readmatrix(<span class="org-string">'strut_encoder_mat_M.CSV'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 12:</span> First 10x10 elements of the Stiffness matrix</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">2000000.0</td>
|
||
<td class="org-right">1000000.0</td>
|
||
<td class="org-right">-3000000.0</td>
|
||
<td class="org-right">-400.0</td>
|
||
<td class="org-right">300.0</td>
|
||
<td class="org-right">200.0</td>
|
||
<td class="org-right">-30.0</td>
|
||
<td class="org-right">2000.0</td>
|
||
<td class="org-right">-10000.0</td>
|
||
<td class="org-right">0.3</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">1000000.0</td>
|
||
<td class="org-right">4000000.0</td>
|
||
<td class="org-right">-8000000.0</td>
|
||
<td class="org-right">-900.0</td>
|
||
<td class="org-right">400.0</td>
|
||
<td class="org-right">-50.0</td>
|
||
<td class="org-right">-6000.0</td>
|
||
<td class="org-right">10000.0</td>
|
||
<td class="org-right">-20000.0</td>
|
||
<td class="org-right">3</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-3000000.0</td>
|
||
<td class="org-right">-8000000.0</td>
|
||
<td class="org-right">20000000.0</td>
|
||
<td class="org-right">2000.0</td>
|
||
<td class="org-right">-900.0</td>
|
||
<td class="org-right">200.0</td>
|
||
<td class="org-right">-10000.0</td>
|
||
<td class="org-right">20000.0</td>
|
||
<td class="org-right">-300000.0</td>
|
||
<td class="org-right">7</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-400.0</td>
|
||
<td class="org-right">-900.0</td>
|
||
<td class="org-right">2000.0</td>
|
||
<td class="org-right">5</td>
|
||
<td class="org-right">-0.1</td>
|
||
<td class="org-right">0.05</td>
|
||
<td class="org-right">1</td>
|
||
<td class="org-right">-3</td>
|
||
<td class="org-right">6</td>
|
||
<td class="org-right">-0.0007</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">300.0</td>
|
||
<td class="org-right">400.0</td>
|
||
<td class="org-right">-900.0</td>
|
||
<td class="org-right">-0.1</td>
|
||
<td class="org-right">5</td>
|
||
<td class="org-right">0.04</td>
|
||
<td class="org-right">-0.1</td>
|
||
<td class="org-right">0.5</td>
|
||
<td class="org-right">-3</td>
|
||
<td class="org-right">0.0001</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">200.0</td>
|
||
<td class="org-right">-50.0</td>
|
||
<td class="org-right">200.0</td>
|
||
<td class="org-right">0.05</td>
|
||
<td class="org-right">0.04</td>
|
||
<td class="org-right">300.0</td>
|
||
<td class="org-right">4</td>
|
||
<td class="org-right">-0.01</td>
|
||
<td class="org-right">-1</td>
|
||
<td class="org-right">3e-05</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-30.0</td>
|
||
<td class="org-right">-6000.0</td>
|
||
<td class="org-right">-10000.0</td>
|
||
<td class="org-right">1</td>
|
||
<td class="org-right">-0.1</td>
|
||
<td class="org-right">4</td>
|
||
<td class="org-right">3000000.0</td>
|
||
<td class="org-right">-1000000.0</td>
|
||
<td class="org-right">-2000000.0</td>
|
||
<td class="org-right">-300.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">2000.0</td>
|
||
<td class="org-right">10000.0</td>
|
||
<td class="org-right">20000.0</td>
|
||
<td class="org-right">-3</td>
|
||
<td class="org-right">0.5</td>
|
||
<td class="org-right">-0.01</td>
|
||
<td class="org-right">-1000000.0</td>
|
||
<td class="org-right">6000000.0</td>
|
||
<td class="org-right">7000000.0</td>
|
||
<td class="org-right">1000.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-10000.0</td>
|
||
<td class="org-right">-20000.0</td>
|
||
<td class="org-right">-300000.0</td>
|
||
<td class="org-right">6</td>
|
||
<td class="org-right">-3</td>
|
||
<td class="org-right">-1</td>
|
||
<td class="org-right">-2000000.0</td>
|
||
<td class="org-right">7000000.0</td>
|
||
<td class="org-right">20000000.0</td>
|
||
<td class="org-right">2000.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.3</td>
|
||
<td class="org-right">3</td>
|
||
<td class="org-right">7</td>
|
||
<td class="org-right">-0.0007</td>
|
||
<td class="org-right">0.0001</td>
|
||
<td class="org-right">3e-05</td>
|
||
<td class="org-right">-300.0</td>
|
||
<td class="org-right">1000.0</td>
|
||
<td class="org-right">2000.0</td>
|
||
<td class="org-right">5</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 13:</span> First 10x10 elements of the Mass matrix</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">0.04</td>
|
||
<td class="org-right">-0.005</td>
|
||
<td class="org-right">0.007</td>
|
||
<td class="org-right">2e-06</td>
|
||
<td class="org-right">0.0001</td>
|
||
<td class="org-right">-5e-07</td>
|
||
<td class="org-right">-1e-05</td>
|
||
<td class="org-right">-9e-07</td>
|
||
<td class="org-right">8e-05</td>
|
||
<td class="org-right">-5e-10</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-0.005</td>
|
||
<td class="org-right">0.03</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">-0.0001</td>
|
||
<td class="org-right">1e-06</td>
|
||
<td class="org-right">-3e-07</td>
|
||
<td class="org-right">3e-05</td>
|
||
<td class="org-right">-0.0001</td>
|
||
<td class="org-right">8e-05</td>
|
||
<td class="org-right">-3e-08</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.007</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">0.08</td>
|
||
<td class="org-right">-6e-06</td>
|
||
<td class="org-right">-5e-06</td>
|
||
<td class="org-right">-7e-07</td>
|
||
<td class="org-right">4e-05</td>
|
||
<td class="org-right">-0.0001</td>
|
||
<td class="org-right">0.0005</td>
|
||
<td class="org-right">-3e-08</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">2e-06</td>
|
||
<td class="org-right">-0.0001</td>
|
||
<td class="org-right">-6e-06</td>
|
||
<td class="org-right">2e-06</td>
|
||
<td class="org-right">-4e-10</td>
|
||
<td class="org-right">2e-11</td>
|
||
<td class="org-right">-8e-09</td>
|
||
<td class="org-right">3e-08</td>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">6e-12</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">0.0001</td>
|
||
<td class="org-right">1e-06</td>
|
||
<td class="org-right">-5e-06</td>
|
||
<td class="org-right">-4e-10</td>
|
||
<td class="org-right">3e-06</td>
|
||
<td class="org-right">2e-10</td>
|
||
<td class="org-right">-3e-09</td>
|
||
<td class="org-right">3e-09</td>
|
||
<td class="org-right">-7e-09</td>
|
||
<td class="org-right">6e-13</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-5e-07</td>
|
||
<td class="org-right">-3e-07</td>
|
||
<td class="org-right">-7e-07</td>
|
||
<td class="org-right">2e-11</td>
|
||
<td class="org-right">2e-10</td>
|
||
<td class="org-right">5e-07</td>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">5e-09</td>
|
||
<td class="org-right">-5e-09</td>
|
||
<td class="org-right">1e-12</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-1e-05</td>
|
||
<td class="org-right">3e-05</td>
|
||
<td class="org-right">4e-05</td>
|
||
<td class="org-right">-8e-09</td>
|
||
<td class="org-right">-3e-09</td>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">0.04</td>
|
||
<td class="org-right">0.004</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">1e-06</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-9e-07</td>
|
||
<td class="org-right">-0.0001</td>
|
||
<td class="org-right">-0.0001</td>
|
||
<td class="org-right">3e-08</td>
|
||
<td class="org-right">3e-09</td>
|
||
<td class="org-right">5e-09</td>
|
||
<td class="org-right">0.004</td>
|
||
<td class="org-right">0.02</td>
|
||
<td class="org-right">-0.02</td>
|
||
<td class="org-right">0.0001</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">8e-05</td>
|
||
<td class="org-right">8e-05</td>
|
||
<td class="org-right">0.0005</td>
|
||
<td class="org-right">-2e-08</td>
|
||
<td class="org-right">-7e-09</td>
|
||
<td class="org-right">-5e-09</td>
|
||
<td class="org-right">0.003</td>
|
||
<td class="org-right">-0.02</td>
|
||
<td class="org-right">0.08</td>
|
||
<td class="org-right">-5e-06</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">-5e-10</td>
|
||
<td class="org-right">-3e-08</td>
|
||
<td class="org-right">-3e-08</td>
|
||
<td class="org-right">6e-12</td>
|
||
<td class="org-right">6e-13</td>
|
||
<td class="org-right">1e-12</td>
|
||
<td class="org-right">1e-06</td>
|
||
<td class="org-right">0.0001</td>
|
||
<td class="org-right">-5e-06</td>
|
||
<td class="org-right">2e-06</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
|
||
<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(<span class="org-string">'strut_encoder_out_nodes_3D.txt'</span>);
|
||
</pre>
|
||
</div>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
|
||
|
||
<colgroup>
|
||
<col class="org-left" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-left">Total number of Nodes</td>
|
||
<td class="org-right">8</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Number of interface Nodes</td>
|
||
<td class="org-right">8</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Number of Modes</td>
|
||
<td class="org-right">6</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-left">Size of M and K matrices</td>
|
||
<td class="org-right">54</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||
<caption class="t-above"><span class="table-number">Table 14:</span> Coordinates of the interface nodes</caption>
|
||
|
||
<colgroup>
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
|
||
<col class="org-right" />
|
||
</colgroup>
|
||
<thead>
|
||
<tr>
|
||
<th scope="col" class="org-right">Node i</th>
|
||
<th scope="col" class="org-right">Node Number</th>
|
||
<th scope="col" class="org-right">x [m]</th>
|
||
<th scope="col" class="org-right">y [m]</th>
|
||
<th scope="col" class="org-right">z [m]</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td class="org-right">1.0</td>
|
||
<td class="org-right">504411.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0405</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">2.0</td>
|
||
<td class="org-right">504412.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">-0.0405</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">3.0</td>
|
||
<td class="org-right">504413.0</td>
|
||
<td class="org-right">-0.0325</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">4.0</td>
|
||
<td class="org-right">504414.0</td>
|
||
<td class="org-right">-0.0125</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">5.0</td>
|
||
<td class="org-right">504415.0</td>
|
||
<td class="org-right">-0.0075</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">6.0</td>
|
||
<td class="org-right">504416.0</td>
|
||
<td class="org-right">0.0325</td>
|
||
<td class="org-right">0.0</td>
|
||
<td class="org-right">0.0</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">7.0</td>
|
||
<td class="org-right">504417.0</td>
|
||
<td class="org-right">0.004</td>
|
||
<td class="org-right">0.0145</td>
|
||
<td class="org-right">-0.00175</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td class="org-right">8.0</td>
|
||
<td class="org-right">504418.0</td>
|
||
<td class="org-right">0.004</td>
|
||
<td class="org-right">0.0166</td>
|
||
<td class="org-right">-0.00175</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<p>
|
||
Using <code>K</code>, <code>M</code> and <code>int_xyz</code>, we can use the <code>Reduced Order Flexible Solid</code> simscape block.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-org42c2461" class="outline-3">
|
||
<h3 id="org42c2461"><span class="section-number-3">4.3</span> Piezoelectric parameters</h3>
|
||
<div class="outline-text-3" id="text-4-3">
|
||
<p>
|
||
Parameters for the APA300ML:
|
||
</p>
|
||
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">d33 = 3e<span class="org-type">-</span>10; <span class="org-comment">% Strain constant [m/V]</span>
|
||
n = 80; <span class="org-comment">% Number of layers per stack</span>
|
||
eT = 1.6e<span class="org-type">-</span>8; <span class="org-comment">% Permittivity under constant stress [F/m]</span>
|
||
sD = 2e<span class="org-type">-</span>11; <span class="org-comment">% Elastic compliance under constant electric displacement [m2/N]</span>
|
||
ka = 235e6; <span class="org-comment">% Stack stiffness [N/m]</span>
|
||
C = 5e<span class="org-type">-</span>6; <span class="org-comment">% Stack capactiance [F]</span>
|
||
</pre>
|
||
</div>
|
||
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">na = 2; <span class="org-comment">% Number of stacks used as actuator</span>
|
||
ns = 1; <span class="org-comment">% Number of stacks used as force sensor</span>
|
||
</pre>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="outline-container-orga5ba630" class="outline-3">
|
||
<h3 id="orga5ba630"><span class="section-number-3">4.4</span> Identification of the Dynamics</h3>
|
||
<div class="outline-text-3" id="text-4-4">
|
||
<p>
|
||
The dynamics is identified from the applied force to the measured relative displacement.
|
||
The same dynamics is identified for a payload mass of 10Kg.
|
||
</p>
|
||
<div class="org-src-container">
|
||
<pre class="src src-matlab">m = 10;
|
||
</pre>
|
||
</div>
|
||
|
||
|
||
<div id="org4ba34f1" class="figure">
|
||
<p><img src="figs/dynamics_encoder_full_strut.png" alt="dynamics_encoder_full_strut.png" />
|
||
</p>
|
||
<p><span class="figure-number">Figure 22: </span>Dynamics from the force actuator to the measured motion by the encoder</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<p>
|
||
|
||
</p>
|
||
|
||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><h2 class='citeproc-org-bib-h2'>Bibliography</h2>
|
||
<div class="csl-bib-body">
|
||
<div class="csl-entry"><a name="citeproc_bib_item_1"></a>Fleming, Andrew J., and Kam K. Leang. 2014. <i>Design, Modeling and Control of Nanopositioning Systems</i>. Advances in Industrial Control. Springer International Publishing. <a href="https://doi.org/10.1007/978-3-319-06617-2">https://doi.org/10.1007/978-3-319-06617-2</a>.</div>
|
||
<div class="csl-entry"><a name="citeproc_bib_item_2"></a>Souleille, Adrien, Thibault Lampert, V Lafarga, Sylvain Hellegouarch, Alan Rondineau, Gonçalo Rodrigues, and Christophe Collette. 2018. “A Concept of Active Mount for Space Applications.” <i>CEAS Space Journal</i> 10 (2). Springer:157–65.</div>
|
||
</div>
|
||
</div>
|
||
<div id="postamble" class="status">
|
||
<p class="author">Author: Dehaeze Thomas</p>
|
||
<p class="date">Created: 2020-11-12 jeu. 18:48</p>
|
||
</div>
|
||
</body>
|
||
</html>
|