Model flexible nano-hexapod elements

This commit is contained in:
2020-11-03 09:45:50 +01:00
parent 184c755fb8
commit bd054638b2
23 changed files with 2872 additions and 2739 deletions

View File

@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?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-05-05 mar. 11:50 -->
<!-- 2020-11-03 mar. 09:45 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Study of the Flexible Joints</title>
<meta name="generator" content="Org mode" />
@@ -37,19 +36,19 @@
<ul>
<li><a href="#orge032d30">1. Bending and Torsional Stiffness</a>
<ul>
<li><a href="#org8fdef7f">1.1. Initialization</a></li>
<li><a href="#orge82a7c2">1.1. Initialization</a></li>
<li><a href="#orgde60939">1.2. Realistic Bending Stiffness Values</a>
<ul>
<li><a href="#orgdb214f9">1.2.1. Direct Velocity Feedback</a></li>
<li><a href="#org4069e58">1.2.2. Primary Plant</a></li>
<li><a href="#orga32adf0">1.2.3. Conclusion</a></li>
<li><a href="#orge13b41c">1.2.1. Direct Velocity Feedback</a></li>
<li><a href="#orgd5fd59b">1.2.2. Primary Plant</a></li>
<li><a href="#org865157e">1.2.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org8ad3f34">1.3. Parametric Study</a>
<ul>
<li><a href="#org4adf147">1.3.1. Direct Velocity Feedback</a></li>
<li><a href="#org53e5f08">1.3.2. Primary Control</a></li>
<li><a href="#orgc45ccb0">1.3.3. Conclusion</a></li>
<li><a href="#orgc98ee7c">1.3.1. Direct Velocity Feedback</a></li>
<li><a href="#org15c2c08">1.3.2. Primary Control</a></li>
<li><a href="#org5322ecd">1.3.3. Conclusion</a></li>
</ul>
</li>
</ul>
@@ -58,22 +57,29 @@
<ul>
<li><a href="#org969d9e7">2.1. Realistic Translation Stiffness Values</a>
<ul>
<li><a href="#orge82a7c2">2.1.1. Initialization</a></li>
<li><a href="#org44f67b8">2.1.2. Direct Velocity Feedback</a></li>
<li><a href="#orgd5fd59b">2.1.3. Primary Plant</a></li>
<li><a href="#org552093a">2.1.4. Conclusion</a></li>
<li><a href="#org7dd21d5">2.1.1. Initialization</a></li>
<li><a href="#org47be52b">2.1.2. Direct Velocity Feedback</a></li>
<li><a href="#org15105f5">2.1.3. Primary Plant</a></li>
<li><a href="#org2098f1e">2.1.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#org0275632">2.2. Parametric study</a>
<ul>
<li><a href="#orge13b41c">2.2.1. Direct Velocity Feedback</a></li>
<li><a href="#org15c2c08">2.2.2. Primary Control</a></li>
<li><a href="#orgd87b94b">2.2.1. Direct Velocity Feedback</a></li>
<li><a href="#orge5d1c12">2.2.2. Primary Control</a></li>
</ul>
</li>
<li><a href="#orgce1052e">2.3. Conclusion</a></li>
<li><a href="#org382b3cb">2.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgb6f6c0a">3. Conclusion</a></li>
<li><a href="#orgdf2870d">4. Designed Flexible Joints</a>
<ul>
<li><a href="#orgd355fcb">4.1. Initialization</a></li>
<li><a href="#org43c7d3c">4.2. Direct Velocity Feedback</a></li>
<li><a href="#org056a1de">4.3. Integral Force Feedback</a></li>
</ul>
</li>
<li><a href="#org865157e">3. Conclusion</a></li>
</ul>
</div>
</div>
@@ -106,8 +112,8 @@ In this section, we wish to study the effect of the rotation flexibility of the
</p>
</div>
<div id="outline-container-org8fdef7f" class="outline-3">
<h3 id="org8fdef7f"><span class="section-number-3">1.1</span> Initialization</h3>
<div id="outline-container-orge82a7c2" class="outline-3">
<h3 id="orge82a7c2"><span class="section-number-3">1.1</span> Initialization</h3>
<div class="outline-text-3" id="text-1-1">
<p>
Let&rsquo;s initialize all the stages with default parameters.
@@ -128,8 +134,8 @@ initializeMirror();
Let&rsquo;s consider the heaviest mass which should we the most problematic with it comes to the flexible joints.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeSample('mass', 50, 'freq', 200*ones(6,1));
initializeReferences('Rz_type', 'rotating-not-filtered', 'Rz_period', 60);
<pre class="src src-matlab">initializeSample(<span class="org-string">'mass'</span>, 50, <span class="org-string">'freq'</span>, 200<span class="org-type">*</span>ones(6,1));
initializeReferences(<span class="org-string">'Rz_type'</span>, <span class="org-string">'rotating-not-filtered'</span>, <span class="org-string">'Rz_period'</span>, 60);
</pre>
</div>
</div>
@@ -147,10 +153,10 @@ Let&rsquo;s compare the ideal case (zero stiffness in rotation and infinite stif
</ul>
<div class="org-src-container">
<pre class="src src-matlab">Kf_M = 15*ones(6,1);
Kf_F = 15*ones(6,1);
Kt_M = 20*ones(6,1);
Kt_F = 20*ones(6,1);
<pre class="src src-matlab">Kf_M = 15<span class="org-type">*</span>ones(6,1);
Kf_F = 15<span class="org-type">*</span>ones(6,1);
Kt_M = 20<span class="org-type">*</span>ones(6,1);
Kt_F = 20<span class="org-type">*</span>ones(6,1);
</pre>
</div>
@@ -158,8 +164,8 @@ Kt_F = 20*ones(6,1);
The stiffness and damping of the nano-hexapod&rsquo;s legs are:
</p>
<div class="org-src-container">
<pre class="src src-matlab">k_opt = 1e5; % [N/m]
c_opt = 2e2; % [N/(m/s)]
<pre class="src src-matlab">k_opt = 1e5; <span class="org-comment">% [N/m]</span>
c_opt = 2e2; <span class="org-comment">% [N/(m/s)]</span>
</pre>
</div>
@@ -168,8 +174,8 @@ This corresponds to the optimal identified stiffness.
</p>
</div>
<div id="outline-container-orgdb214f9" class="outline-4">
<h4 id="orgdb214f9"><span class="section-number-4">1.2.1</span> Direct Velocity Feedback</h4>
<div id="outline-container-orge13b41c" class="outline-4">
<h4 id="orge13b41c"><span class="section-number-4">1.2.1</span> Direct Velocity Feedback</h4>
<div class="outline-text-4" id="text-1-2-1">
<p>
We identify the dynamics from actuators force \(\tau_i\) to relative motion sensors \(d\mathcal{L}_i\) with and without considering the flexible joint stiffness.
@@ -189,8 +195,8 @@ It is shown that the adding of stiffness for the flexible joints does increase a
</div>
</div>
<div id="outline-container-org4069e58" class="outline-4">
<h4 id="org4069e58"><span class="section-number-4">1.2.2</span> Primary Plant</h4>
<div id="outline-container-orgd5fd59b" class="outline-4">
<h4 id="orgd5fd59b"><span class="section-number-4">1.2.2</span> Primary Plant</h4>
<div class="outline-text-4" id="text-1-2-2">
<p>
Let&rsquo;s now identify the dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs).
@@ -210,10 +216,10 @@ The plant dynamics is not found to be changing significantly.
</div>
</div>
<div id="outline-container-orga32adf0" class="outline-4">
<h4 id="orga32adf0"><span class="section-number-4">1.2.3</span> Conclusion</h4>
<div id="outline-container-org865157e" class="outline-4">
<h4 id="org865157e"><span class="section-number-4">1.2.3</span> Conclusion</h4>
<div class="outline-text-4" id="text-1-2-3">
<div class="important">
<div class="important" id="org69f9617">
<p>
Considering realistic flexible joint bending stiffness for the nano-hexapod does not seems to impose any limitation on the DVF control nor on the primary control.
</p>
@@ -239,7 +245,7 @@ This will help to determine the requirements on the joint&rsquo;s stiffness.
Let&rsquo;s consider the following bending stiffness of the flexible joints:
</p>
<div class="org-src-container">
<pre class="src src-matlab">Ks = [1, 5, 10, 50, 100]; % [Nm/rad]
<pre class="src src-matlab">Ks = [1, 5, 10, 50, 100]; <span class="org-comment">% [Nm/rad]</span>
</pre>
</div>
@@ -248,8 +254,8 @@ We also consider here a nano-hexapod with the identified optimal actuator stiffn
</p>
</div>
<div id="outline-container-org4adf147" class="outline-4">
<h4 id="org4adf147"><span class="section-number-4">1.3.1</span> Direct Velocity Feedback</h4>
<div id="outline-container-orgc98ee7c" class="outline-4">
<h4 id="orgc98ee7c"><span class="section-number-4">1.3.1</span> Direct Velocity Feedback</h4>
<div class="outline-text-4" id="text-1-3-1">
<p>
The dynamics from the actuators to the relative displacement sensor in each leg is identified and shown in Figure <a href="#org8fbbf9d">3</a>.
@@ -279,8 +285,8 @@ It is shown that the bending stiffness of the flexible joints does indeed change
</div>
</div>
<div id="outline-container-org53e5f08" class="outline-4">
<h4 id="org53e5f08"><span class="section-number-4">1.3.2</span> Primary Control</h4>
<div id="outline-container-org15c2c08" class="outline-4">
<h4 id="org15c2c08"><span class="section-number-4">1.3.2</span> Primary Control</h4>
<div class="outline-text-4" id="text-1-3-2">
<p>
The dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs) is shown in Figure <a href="#orgb739560">5</a>.
@@ -299,10 +305,10 @@ It is shown that the bending stiffness of the flexible joints have very little i
</div>
</div>
<div id="outline-container-orgc45ccb0" class="outline-4">
<h4 id="orgc45ccb0"><span class="section-number-4">1.3.3</span> Conclusion</h4>
<div id="outline-container-org5322ecd" class="outline-4">
<h4 id="org5322ecd"><span class="section-number-4">1.3.3</span> Conclusion</h4>
<div class="outline-text-4" id="text-1-3-3">
<div class="important">
<div class="important" id="orga223c1a">
<p>
The bending stiffness of the flexible joint does not significantly change the dynamics.
</p>
@@ -333,16 +339,16 @@ We choose realistic values of the axial stiffness of the joints:
</p>
<div class="org-src-container">
<pre class="src src-matlab">Kz_F = 60e6*ones(6,1); % [N/m]
Kz_M = 60e6*ones(6,1); % [N/m]
Cz_F = 1*ones(6,1); % [N/(m/s)]
Cz_M = 1*ones(6,1); % [N/(m/s)]
<pre class="src src-matlab">Ka_F = 60e6<span class="org-type">*</span>ones(6,1); <span class="org-comment">% [N/m]</span>
Ka_M = 60e6<span class="org-type">*</span>ones(6,1); <span class="org-comment">% [N/m]</span>
Ca_F = 1<span class="org-type">*</span>ones(6,1); <span class="org-comment">% [N/(m/s)]</span>
Ca_M = 1<span class="org-type">*</span>ones(6,1); <span class="org-comment">% [N/(m/s)]</span>
</pre>
</div>
</div>
<div id="outline-container-orge82a7c2" class="outline-4">
<h4 id="orge82a7c2"><span class="section-number-4">2.1.1</span> Initialization</h4>
<div id="outline-container-org7dd21d5" class="outline-4">
<h4 id="org7dd21d5"><span class="section-number-4">2.1.1</span> Initialization</h4>
<div class="outline-text-4" id="text-2-1-1">
<p>
Let&rsquo;s initialize all the stages with default parameters.
@@ -363,15 +369,15 @@ initializeMirror();
Let&rsquo;s consider the heaviest mass which should we the most problematic with it comes to the flexible joints.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeSample('mass', 50, 'freq', 200*ones(6,1));
initializeReferences('Rz_type', 'rotating-not-filtered', 'Rz_period', 60);
<pre class="src src-matlab">initializeSample(<span class="org-string">'mass'</span>, 50, <span class="org-string">'freq'</span>, 200<span class="org-type">*</span>ones(6,1));
initializeReferences(<span class="org-string">'Rz_type'</span>, <span class="org-string">'rotating-not-filtered'</span>, <span class="org-string">'Rz_period'</span>, 60);
</pre>
</div>
</div>
</div>
<div id="outline-container-org44f67b8" class="outline-4">
<h4 id="org44f67b8"><span class="section-number-4">2.1.2</span> Direct Velocity Feedback</h4>
<div id="outline-container-org47be52b" class="outline-4">
<h4 id="org47be52b"><span class="section-number-4">2.1.2</span> Direct Velocity Feedback</h4>
<div class="outline-text-4" id="text-2-1-2">
<p>
The dynamics from actuators force \(\tau_i\) to relative motion sensors \(d\mathcal{L}_i\) with and without considering the flexible joint stiffness are identified.
@@ -390,11 +396,11 @@ The obtained dynamics are shown in Figure <a href="#org78dd87a">6</a>.
</div>
</div>
<div id="outline-container-orgd5fd59b" class="outline-4">
<h4 id="orgd5fd59b"><span class="section-number-4">2.1.3</span> Primary Plant</h4>
<div id="outline-container-org15105f5" class="outline-4">
<h4 id="org15105f5"><span class="section-number-4">2.1.3</span> Primary Plant</h4>
<div class="outline-text-4" id="text-2-1-3">
<div class="org-src-container">
<pre class="src src-matlab">Kdvf = 5e3*s/(1+s/2/pi/1e3)*eye(6);
<pre class="src src-matlab">Kdvf = 5e3<span class="org-type">*</span>s<span class="org-type">/</span>(1<span class="org-type">+</span>s<span class="org-type">/</span>2<span class="org-type">/</span><span class="org-constant">pi</span><span class="org-type">/</span>1e3)<span class="org-type">*</span>eye(6);
</pre>
</div>
@@ -415,10 +421,10 @@ The dynamics is compare with and without the joint flexibility in Figure <a href
</div>
</div>
<div id="outline-container-org552093a" class="outline-4">
<h4 id="org552093a"><span class="section-number-4">2.1.4</span> Conclusion</h4>
<div id="outline-container-org2098f1e" class="outline-4">
<h4 id="org2098f1e"><span class="section-number-4">2.1.4</span> Conclusion</h4>
<div class="outline-text-4" id="text-2-1-4">
<div class="important">
<div class="important" id="org3a7d9f4">
<p>
For the realistic value of the flexible joint axial stiffness, the dynamics is not much impact, and this should not be a problem for control.
</p>
@@ -439,7 +445,7 @@ We wish now to see what is the impact of the <b>axial</b> stiffness of the flexi
Let&rsquo;s consider the following values for the axial stiffness:
</p>
<div class="org-src-container">
<pre class="src src-matlab">Kzs = [1e4, 1e5, 1e6, 1e7, 1e8, 1e9]; % [N/m]
<pre class="src src-matlab">Kas = [1e4, 1e5, 1e6, 1e7, 1e8, 1e9]; <span class="org-comment">% [N/m]</span>
</pre>
</div>
@@ -448,8 +454,8 @@ We also consider here a nano-hexapod with the identified optimal actuator stiffn
</p>
</div>
<div id="outline-container-orge13b41c" class="outline-4">
<h4 id="orge13b41c"><span class="section-number-4">2.2.1</span> Direct Velocity Feedback</h4>
<div id="outline-container-orgd87b94b" class="outline-4">
<h4 id="orgd87b94b"><span class="section-number-4">2.2.1</span> Direct Velocity Feedback</h4>
<div class="outline-text-4" id="text-2-2-1">
<p>
The dynamics from the actuators to the relative displacement sensor in each leg is identified and shown in Figure <a href="#orgab9ab86">8</a>.
@@ -491,8 +497,8 @@ It can be seen that very little active damping can be achieve for axial stiffnes
</div>
</div>
<div id="outline-container-org15c2c08" class="outline-4">
<h4 id="org15c2c08"><span class="section-number-4">2.2.2</span> Primary Control</h4>
<div id="outline-container-orge5d1c12" class="outline-4">
<h4 id="orge5d1c12"><span class="section-number-4">2.2.2</span> Primary Control</h4>
<div class="outline-text-4" id="text-2-2-2">
<p>
The dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for the primary controller designed in the frame of the legs) is shown in Figure <a href="#org6070692">11</a>.
@@ -508,10 +514,10 @@ The dynamics from \(\bm{\tau}^\prime\) to \(\bm{\epsilon}_{\mathcal{X}_n}\) (for
</div>
</div>
<div id="outline-container-orgce1052e" class="outline-3">
<h3 id="orgce1052e"><span class="section-number-3">2.3</span> Conclusion</h3>
<div id="outline-container-org382b3cb" class="outline-3">
<h3 id="org382b3cb"><span class="section-number-3">2.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-3">
<div class="important">
<div class="important" id="org422e802">
<p>
The axial stiffness of the flexible joints should be maximized.
</p>
@@ -533,14 +539,14 @@ We may interpolate the results and say that the axial joint stiffness should be
</div>
</div>
<div id="outline-container-org865157e" class="outline-2">
<h2 id="org865157e"><span class="section-number-2">3</span> Conclusion</h2>
<div id="outline-container-orgb6f6c0a" class="outline-2">
<h2 id="orgb6f6c0a"><span class="section-number-2">3</span> Conclusion</h2>
<div class="outline-text-2" id="text-3">
<p>
<a id="org6614f42"></a>
</p>
<div class="important">
<div class="important" id="org3cbf243">
<p>
In this study we considered the bending, torsional and axial stiffnesses of the flexible joints used for the nano-hexapod.
</p>
@@ -575,10 +581,80 @@ As there is generally a trade-off between bending stiffness and axial stiffness,
</div>
</div>
</div>
<div id="outline-container-orgdf2870d" class="outline-2">
<h2 id="orgdf2870d"><span class="section-number-2">4</span> Designed Flexible Joints</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-orgd355fcb" class="outline-3">
<h3 id="orgd355fcb"><span class="section-number-3">4.1</span> Initialization</h3>
<div class="outline-text-3" id="text-4-1">
<p>
Let&rsquo;s initialize all the stages with default parameters.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod();
initializeAxisc(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
initializeMirror(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
initializeMirror();
</pre>
</div>
<p>
Let&rsquo;s consider the heaviest mass which should we the most problematic with it comes to the flexible joints.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeSample(<span class="org-string">'mass'</span>, 50, <span class="org-string">'freq'</span>, 200<span class="org-type">*</span>ones(6,1));
initializeReferences(<span class="org-string">'Rz_type'</span>, <span class="org-string">'rotating-not-filtered'</span>, <span class="org-string">'Rz_period'</span>, 60);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">flex_joint = load(<span class="org-string">'./mat/flexor_025.mat'</span>, <span class="org-string">'int_xyz'</span>, <span class="org-string">'int_i'</span>, <span class="org-string">'n_xyz'</span>, <span class="org-string">'n_i'</span>, <span class="org-string">'nodes'</span>, <span class="org-string">'M'</span>, <span class="org-string">'K'</span>);
apa = load(<span class="org-string">'./mat/APA300ML_simplified_model.mat'</span>);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">initializeNanoHexapod(<span class="org-string">'actuator'</span>, <span class="org-string">'amplified'</span>, ...
<span class="org-string">'ke'</span>, apa.ke, <span class="org-string">'ka'</span>, apa.ka, <span class="org-string">'k1'</span>, apa.k1, <span class="org-string">'c1'</span>, apa.c1, <span class="org-string">'F_gain'</span>, apa.F_gain, ...
<span class="org-string">'type_M'</span>, <span class="org-string">'spherical_3dof'</span>, ...
<span class="org-string">'Kr_M'</span>, flex_joint.K(1,1)<span class="org-type">*</span>ones(6,1), ...
<span class="org-string">'Ka_M'</span>, flex_joint.K(3,3)<span class="org-type">*</span>ones(6,1), ...
<span class="org-string">'Kf_M'</span>, flex_joint.K(4,4)<span class="org-type">*</span>ones(6,1), ...
<span class="org-string">'Kt_M'</span>, flex_joint.K(6,6)<span class="org-type">*</span>ones(6,1), ...
<span class="org-string">'type_F'</span>, <span class="org-string">'spherical_3dof'</span>, ...
<span class="org-string">'Kr_F'</span>, flex_joint.K(1,1)<span class="org-type">*</span>ones(6,1), ...
<span class="org-string">'Ka_F'</span>, flex_joint.K(3,3)<span class="org-type">*</span>ones(6,1), ...
<span class="org-string">'Kf_F'</span>, flex_joint.K(4,4)<span class="org-type">*</span>ones(6,1), ...
<span class="org-string">'Kt_F'</span>, flex_joint.K(6,6)<span class="org-type">*</span>ones(6,1));
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">initializeNanoHexapod();
</pre>
</div>
</div>
</div>
<div id="outline-container-org43c7d3c" class="outline-3">
<h3 id="org43c7d3c"><span class="section-number-3">4.2</span> Direct Velocity Feedback</h3>
</div>
<div id="outline-container-org056a1de" class="outline-3">
<h3 id="org056a1de"><span class="section-number-3">4.3</span> Integral Force Feedback</h3>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-05-05 mar. 11:50</p>
<p class="date">Created: 2020-11-03 mar. 09:45</p>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff