Implemented amplified actuators

This commit is contained in:
2020-05-20 16:41:34 +02:00
parent 945741a795
commit 1466105c77
24 changed files with 1370 additions and 727 deletions

View File

@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-05-20 mer. 15:49 -->
<!-- 2020-05-20 mer. 16:41 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Amplified Piezoelectric Stack Actuator</title>
<meta name="generator" content="Org mode" />
@@ -36,19 +36,27 @@
<ul>
<li><a href="#org996fd7c">1. Simplified Model</a>
<ul>
<li><a href="#org47cc3c4">1.1. Parameters</a></li>
<li><a href="#org3b3c7ac">1.2. Identification</a></li>
<li><a href="#org97f356d">1.3. Root Locus</a></li>
<li><a href="#org0dc544d">1.1. Parameters</a></li>
<li><a href="#org08e3567">1.2. Identification</a></li>
<li><a href="#orgbba342e">1.3. Root Locus</a></li>
</ul>
</li>
<li><a href="#orgf1a765f">2. Rotating X-Y platform</a>
<ul>
<li><a href="#org0dc544d">2.1. Parameters</a></li>
<li><a href="#org08e3567">2.2. Identification</a></li>
<li><a href="#orgbba342e">2.3. Root Locus</a></li>
<li><a href="#org1e2b26f">2.1. Parameters</a></li>
<li><a href="#orgb0841c5">2.2. Identification</a></li>
<li><a href="#orgd6c324c">2.3. Root Locus</a></li>
<li><a href="#org069f401">2.4. Analysis</a></li>
</ul>
</li>
<li><a href="#org3c74f7f">3. Stewart Platform with Amplified Actuators</a>
<ul>
<li><a href="#org5a7c6dc">3.1. Initialization</a></li>
<li><a href="#orgac18acf">3.2. Identification</a></li>
<li><a href="#org14c7063">3.3. Controller Design</a></li>
<li><a href="#org043ce40">3.4. Effect of the Low Authority Control on the Primary Plant</a></li>
</ul>
</li>
</ul>
</div>
</div>
@@ -123,8 +131,8 @@ The parameters are shown in the table below.
<h2 id="org996fd7c"><span class="section-number-2">1</span> Simplified Model</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-org47cc3c4" class="outline-3">
<h3 id="org47cc3c4"><span class="section-number-3">1.1</span> Parameters</h3>
<div id="outline-container-org0dc544d" class="outline-3">
<h3 id="org0dc544d"><span class="section-number-3">1.1</span> Parameters</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-matlab">m = 1; % [kg]
@@ -154,8 +162,8 @@ IFF Controller:
</div>
</div>
<div id="outline-container-org3b3c7ac" class="outline-3">
<h3 id="org3b3c7ac"><span class="section-number-3">1.2</span> Identification</h3>
<div id="outline-container-org08e3567" class="outline-3">
<h3 id="org08e3567"><span class="section-number-3">1.2</span> Identification</h3>
<div class="outline-text-3" id="text-1-2">
<p>
Identification in open-loop.
@@ -210,8 +218,8 @@ Giff.OutputName = {'Fs', 'x1'};
</div>
</div>
<div id="outline-container-org97f356d" class="outline-3">
<h3 id="org97f356d"><span class="section-number-3">1.3</span> Root Locus</h3>
<div id="outline-container-orgbba342e" class="outline-3">
<h3 id="orgbba342e"><span class="section-number-3">1.3</span> Root Locus</h3>
<div class="outline-text-3" id="text-1-3">
<div id="org85cd6e5" class="figure">
@@ -227,8 +235,8 @@ Giff.OutputName = {'Fs', 'x1'};
<h2 id="orgf1a765f"><span class="section-number-2">2</span> Rotating X-Y platform</h2>
<div class="outline-text-2" id="text-2">
</div>
<div id="outline-container-org0dc544d" class="outline-3">
<h3 id="org0dc544d"><span class="section-number-3">2.1</span> Parameters</h3>
<div id="outline-container-org1e2b26f" class="outline-3">
<h3 id="org1e2b26f"><span class="section-number-3">2.1</span> Parameters</h3>
<div class="outline-text-3" id="text-2-1">
<div class="org-src-container">
<pre class="src src-matlab">m = 1; % [kg]
@@ -255,8 +263,8 @@ h = 0.2; % [m]
</div>
</div>
<div id="outline-container-org08e3567" class="outline-3">
<h3 id="org08e3567"><span class="section-number-3">2.2</span> Identification</h3>
<div id="outline-container-orgb0841c5" class="outline-3">
<h3 id="orgb0841c5"><span class="section-number-3">2.2</span> Identification</h3>
<div class="outline-text-3" id="text-2-2">
<p>
Rotating speed in rad/s:
@@ -305,8 +313,8 @@ end
</div>
</div>
<div id="outline-container-orgbba342e" class="outline-3">
<h3 id="orgbba342e"><span class="section-number-3">2.3</span> Root Locus</h3>
<div id="outline-container-orgd6c324c" class="outline-3">
<h3 id="orgd6c324c"><span class="section-number-3">2.3</span> Root Locus</h3>
<div class="outline-text-3" id="text-2-3">
<div id="orgccd3396" class="figure">
@@ -368,10 +376,115 @@ end
</div>
</div>
</div>
<div id="outline-container-org3c74f7f" class="outline-2">
<h2 id="org3c74f7f"><span class="section-number-2">3</span> Stewart Platform with Amplified Actuators</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-org5a7c6dc" class="outline-3">
<h3 id="org5a7c6dc"><span class="section-number-3">3.1</span> Initialization</h3>
<div class="outline-text-3" id="text-3-1">
<div class="org-src-container">
<pre class="src src-matlab">initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod();
initializeAxisc();
initializeMirror();
initializeSimscapeConfiguration();
initializeDisturbances('enable', false);
initializeLoggingConfiguration('log', 'none');
initializeController('type', 'hac-iff');
</pre>
</div>
<p>
We set the stiffness of the payload fixation:
</p>
<div class="org-src-container">
<pre class="src src-matlab">Kp = 1e8; % [N/m]
</pre>
</div>
</div>
</div>
<div id="outline-container-orgac18acf" class="outline-3">
<h3 id="orgac18acf"><span class="section-number-3">3.2</span> Identification</h3>
<div class="outline-text-3" id="text-3-2">
<div class="org-src-container">
<pre class="src src-matlab">K = tf(zeros(6));
Kiff = tf(zeros(6));
</pre>
</div>
<p>
We identify the system for the following payload masses:
</p>
<div class="org-src-container">
<pre class="src src-matlab">Ms = [1, 10, 50];
</pre>
</div>
<p>
The nano-hexapod has the following leg&rsquo;s stiffness and damping.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeNanoHexapod('actuator', 'amplified');
</pre>
</div>
</div>
</div>
<div id="outline-container-org14c7063" class="outline-3">
<h3 id="org14c7063"><span class="section-number-3">3.3</span> Controller Design</h3>
<div class="outline-text-3" id="text-3-3">
<div id="org0e2911a" class="figure">
<p><img src="figs/amplified_piezo_iff_loop_gain.png" alt="amplified_piezo_iff_loop_gain.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Dynamics for the Integral Force Feedback for three payload masses</p>
</div>
<div id="org5d7f6d3" class="figure">
<p><img src="figs/amplified_piezo_iff_root_locus.png" alt="amplified_piezo_iff_root_locus.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Root Locus for the IFF control for three payload masses</p>
</div>
<p>
Damping as function of the gain
</p>
<div id="org4743c83" class="figure">
<p><img src="figs/amplified_piezo_iff_damping_gain.png" alt="amplified_piezo_iff_damping_gain.png" />
</p>
<p><span class="figure-number">Figure 9: </span>Damping ratio of the poles as a function of the IFF gain</p>
</div>
<p>
Finally, we use the following controller for the Decentralized Direct Velocity Feedback:
</p>
<div class="org-src-container">
<pre class="src src-matlab">Kiff = -1e4/s*eye(6);
</pre>
</div>
</div>
</div>
<div id="outline-container-org043ce40" class="outline-3">
<h3 id="org043ce40"><span class="section-number-3">3.4</span> Effect of the Low Authority Control on the Primary Plant</h3>
</div>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-05-20 mer. 15:49</p>
<p class="date">Created: 2020-05-20 mer. 16:41</p>
</div>
</body>
</html>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-05-20 mer. 15:49 -->
<!-- 2020-05-20 mer. 16:41 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Control of the NASS with optimal stiffness</title>
<meta name="generator" content="Org mode" />
@@ -41,7 +41,7 @@
<li><a href="#orgfef1a3f">1.3. Controller Design</a></li>
<li><a href="#org3c73014">1.4. Effect of the Low Authority Control on the Primary Plant</a></li>
<li><a href="#orgee5dbee">1.5. Effect of the Low Authority Control on the Sensibility to Disturbances</a></li>
<li><a href="#orgd9e52e3">1.6. Conclusion</a></li>
<li><a href="#orgdc2eb5a">1.6. Conclusion</a></li>
</ul>
</li>
<li><a href="#org81dc0a8">2. Primary Control in the leg space</a>
@@ -50,23 +50,23 @@
<li><a href="#orgf39520c">2.2. Control in the leg space</a></li>
<li><a href="#org16d192f">2.3. Sensibility to Disturbances and Noise Budget</a></li>
<li><a href="#org8f34c09">2.4. Simulations of Tomography Experiment</a></li>
<li><a href="#org66b4613">2.5. Results</a></li>
<li><a href="#orgcc19864">2.5. Results</a></li>
<li><a href="#orgf709759">2.6. Actuator Stroke and Forces</a></li>
<li><a href="#org3b6d331">2.7. Conclusion</a></li>
<li><a href="#orgcf22d67">2.7. Conclusion</a></li>
</ul>
</li>
<li><a href="#org56b28cd">3. Further More complex simulations</a>
<ul>
<li><a href="#org6c1ddb5">3.1. Simulation with Micro-Hexapod Offset</a>
<ul>
<li><a href="#orgcd1c705">3.1.1. Simulation</a></li>
<li><a href="#org3387265">3.1.2. Results</a></li>
<li><a href="#org78cec1a">3.1.1. Simulation</a></li>
<li><a href="#org53a553d">3.1.2. Results</a></li>
</ul>
</li>
<li><a href="#org5cb899b">3.2. Simultaneous Translation scans and Spindle&rsquo;s rotation</a>
<ul>
<li><a href="#org48f5ed8">3.2.1. Simulation</a></li>
<li><a href="#orgcc19864">3.2.2. Results</a></li>
<li><a href="#orgf715899">3.2.1. Simulation</a></li>
<li><a href="#org056af12">3.2.2. Results</a></li>
</ul>
</li>
</ul>
@@ -79,8 +79,8 @@
<li><a href="#orgb28634b">4.2.1. Stability</a></li>
</ul>
</li>
<li><a href="#org78cec1a">4.3. Simulation</a></li>
<li><a href="#orgdc2eb5a">4.4. Conclusion</a></li>
<li><a href="#org8bd1f9d">4.3. Simulation</a></li>
<li><a href="#org3cfdfa3">4.4. Conclusion</a></li>
</ul>
</li>
</ul>
@@ -184,7 +184,7 @@ In order to choose the gain such that we obtain good damping for all the three p
<div id="org5814b4f" class="figure">
<p><img src="figs/opt_stiff_dvf_root_locus.png" alt="opt_stiff_dvf_root_locus.png" />
</p>
<p><span class="figure-number">Figure 3: </span>Root Locus for the DVF controll for three payload masses</p>
<p><span class="figure-number">Figure 3: </span>Root Locus for the DVF control for three payload masses</p>
</div>
<p>
@@ -324,8 +324,8 @@ Decentralized Direct Velocity Feedback is shown to increase the effect of stages
</div>
</div>
<div id="outline-container-orgd9e52e3" class="outline-3">
<h3 id="orgd9e52e3"><span class="section-number-3">1.6</span> Conclusion</h3>
<div id="outline-container-orgdc2eb5a" class="outline-3">
<h3 id="orgdc2eb5a"><span class="section-number-3">1.6</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-6">
<div class="important">
<p>
@@ -512,8 +512,8 @@ And we run the simulation for all three payload Masses.
</p>
</div>
</div>
<div id="outline-container-org66b4613" class="outline-3">
<h3 id="org66b4613"><span class="section-number-3">2.5</span> Results</h3>
<div id="outline-container-orgcc19864" class="outline-3">
<h3 id="orgcc19864"><span class="section-number-3">2.5</span> Results</h3>
<div class="outline-text-3" id="text-2-5">
<p>
Let&rsquo;s now see how this controller performs.
@@ -572,8 +572,8 @@ Finally, the time domain position error signals are shown in Figure <a href="#or
</div>
</div>
<div id="outline-container-org3b6d331" class="outline-3">
<h3 id="org3b6d331"><span class="section-number-3">2.7</span> Conclusion</h3>
<div id="outline-container-orgcf22d67" class="outline-3">
<h3 id="orgcf22d67"><span class="section-number-3">2.7</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-7">
<div class="important">
<p>
@@ -593,8 +593,8 @@ Finally, the time domain position error signals are shown in Figure <a href="#or
<h3 id="org6c1ddb5"><span class="section-number-3">3.1</span> Simulation with Micro-Hexapod Offset</h3>
<div class="outline-text-3" id="text-3-1">
</div>
<div id="outline-container-orgcd1c705" class="outline-4">
<h4 id="orgcd1c705"><span class="section-number-4">3.1.1</span> Simulation</h4>
<div id="outline-container-org78cec1a" class="outline-4">
<h4 id="org78cec1a"><span class="section-number-4">3.1.1</span> Simulation</h4>
<div class="outline-text-4" id="text-3-1-1">
<p>
The micro-hexapod is inducing a 10mm offset of the sample center of mass with the rotation axis.
@@ -622,8 +622,8 @@ sim('nass_model');
</div>
</div>
<div id="outline-container-org3387265" class="outline-4">
<h4 id="org3387265"><span class="section-number-4">3.1.2</span> Results</h4>
<div id="outline-container-org53a553d" class="outline-4">
<h4 id="org53a553d"><span class="section-number-4">3.1.2</span> Results</h4>
<div class="outline-text-4" id="text-3-1-2">
<div id="org6be7e46" class="figure">
@@ -650,8 +650,8 @@ sim('nass_model');
<h3 id="org5cb899b"><span class="section-number-3">3.2</span> Simultaneous Translation scans and Spindle&rsquo;s rotation</h3>
<div class="outline-text-3" id="text-3-2">
</div>
<div id="outline-container-org48f5ed8" class="outline-4">
<h4 id="org48f5ed8"><span class="section-number-4">3.2.1</span> Simulation</h4>
<div id="outline-container-orgf715899" class="outline-4">
<h4 id="orgf715899"><span class="section-number-4">3.2.1</span> Simulation</h4>
<div class="outline-text-4" id="text-3-2-1">
<p>
A simulation is now performed with translation scans and spindle rotation at the same time.
@@ -674,8 +674,8 @@ initializeReferences('Rz_type', 'rotating', 'Rz_period', 1, ...
</div>
</div>
<div id="outline-container-orgcc19864" class="outline-4">
<h4 id="orgcc19864"><span class="section-number-4">3.2.2</span> Results</h4>
<div id="outline-container-org056af12" class="outline-4">
<h4 id="org056af12"><span class="section-number-4">3.2.2</span> Results</h4>
<div class="outline-text-4" id="text-3-2-2">
<div id="orgbfa1d02" class="figure">
@@ -778,11 +778,11 @@ end
</div>
</div>
<div id="outline-container-org78cec1a" class="outline-3">
<h3 id="org78cec1a"><span class="section-number-3">4.3</span> Simulation</h3>
<div id="outline-container-org8bd1f9d" class="outline-3">
<h3 id="org8bd1f9d"><span class="section-number-3">4.3</span> Simulation</h3>
</div>
<div id="outline-container-orgdc2eb5a" class="outline-3">
<h3 id="orgdc2eb5a"><span class="section-number-3">4.4</span> Conclusion</h3>
<div id="outline-container-org3cfdfa3" class="outline-3">
<h3 id="org3cfdfa3"><span class="section-number-3">4.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-4">
<div class="important">
<p>
@@ -796,7 +796,7 @@ end
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-05-20 mer. 15:49</p>
<p class="date">Created: 2020-05-20 mer. 16:41</p>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-05-20 mer. 15:49 -->
<!-- 2020-05-20 mer. 16:41 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Simscape Model</title>
<meta name="generator" content="Org mode" />
@@ -36,85 +36,85 @@
<ul>
<li><a href="#orgcaca5e0">1. <code>initializeStewartPlatform</code>: Initialize the Stewart Platform structure</a>
<ul>
<li><a href="#org5817617">Documentation</a></li>
<li><a href="#org7d81110">Function description</a></li>
<li><a href="#org8dc2620">Documentation</a></li>
<li><a href="#orgb2b186c">Function description</a></li>
<li><a href="#org3622825">Initialize the Stewart structure</a></li>
</ul>
</li>
<li><a href="#orgac25f89">2. <code>initializeFramesPositions</code>: Initialize the positions of frames {A}, {B}, {F} and {M}</a>
<ul>
<li><a href="#org60fadfe">Documentation</a></li>
<li><a href="#org3f0f259">Function description</a></li>
<li><a href="#orgada2d6f">Optional Parameters</a></li>
<li><a href="#org736bb40">Documentation</a></li>
<li><a href="#orgb82d77f">Function description</a></li>
<li><a href="#org8e4bfab">Optional Parameters</a></li>
<li><a href="#org7d50d54">Compute the position of each frame</a></li>
<li><a href="#orgd7c92be">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgecc27b3">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgccb31c6">3. <code>generateGeneralConfiguration</code>: Generate a Very General Configuration</a>
<ul>
<li><a href="#org722f89f">Documentation</a></li>
<li><a href="#org37642a9">Function description</a></li>
<li><a href="#org8175ecb">Optional Parameters</a></li>
<li><a href="#orgc9244b9">Compute the pose</a></li>
<li><a href="#org010e928">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgd270a86">Documentation</a></li>
<li><a href="#org22aadcf">Function description</a></li>
<li><a href="#orga6492a4">Optional Parameters</a></li>
<li><a href="#org3231a85">Compute the pose</a></li>
<li><a href="#org13d89d2">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org9944c04">4. <code>computeJointsPose</code>: Compute the Pose of the Joints</a>
<ul>
<li><a href="#org1084538">Documentation</a></li>
<li><a href="#org1da2a38">Function description</a></li>
<li><a href="#org02f1320">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgf8b573b">Documentation</a></li>
<li><a href="#org85d30c9">Function description</a></li>
<li><a href="#org87cdb4a">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge87b302">Compute the position of the Joints</a></li>
<li><a href="#org3a7e3c5">Compute the strut length and orientation</a></li>
<li><a href="#org9e1258f">Compute the orientation of the Joints</a></li>
<li><a href="#orgab9893e">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org47a4205">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org1315282">5. <code>initializeStewartPose</code>: Determine the initial stroke in each leg to have the wanted pose</a>
<ul>
<li><a href="#org3df7fa5">Function description</a></li>
<li><a href="#org7ad7e23">Optional Parameters</a></li>
<li><a href="#org9a7c718">Function description</a></li>
<li><a href="#orga7f6cb4">Optional Parameters</a></li>
<li><a href="#orgbb9abb5">Use the Inverse Kinematic function</a></li>
<li><a href="#org8f6d297">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orga35dd52">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org4674203">6. <code>initializeCylindricalPlatforms</code>: Initialize the geometry of the Fixed and Mobile Platforms</a>
<ul>
<li><a href="#org600d8b6">Function description</a></li>
<li><a href="#org7126edc">Optional Parameters</a></li>
<li><a href="#orge53472d">Function description</a></li>
<li><a href="#orgc31cfe7">Optional Parameters</a></li>
<li><a href="#orgf654de0">Compute the Inertia matrices of platforms</a></li>
<li><a href="#org1282acb">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orga779e2f">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgb0a1d7b">7. <code>initializeCylindricalStruts</code>: Define the inertia of cylindrical struts</a>
<ul>
<li><a href="#org415806e">Function description</a></li>
<li><a href="#org46ba207">Optional Parameters</a></li>
<li><a href="#orgf6fcb94">Function description</a></li>
<li><a href="#org8990e71">Optional Parameters</a></li>
<li><a href="#orgd943059">Compute the properties of the cylindrical struts</a></li>
<li><a href="#orgec9a313">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org53395cc">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgae8d0dc">8. <code>initializeStrutDynamics</code>: Add Stiffness and Damping properties of each strut</a>
<ul>
<li><a href="#org1e0bcd1">Documentation</a></li>
<li><a href="#org70074aa">Function description</a></li>
<li><a href="#orgc77ced4">Optional Parameters</a></li>
<li><a href="#org15ad3b5">Documentation</a></li>
<li><a href="#org5318aec">Function description</a></li>
<li><a href="#org153d169">Optional Parameters</a></li>
<li><a href="#org3c2e550">Add Stiffness and Damping properties of each strut</a></li>
</ul>
</li>
<li><a href="#org682a09c">9. <code>initializeAmplifiedStrutDynamics</code>: Add Stiffness and Damping properties of each strut for an amplified piezoelectric actuator</a>
<ul>
<li><a href="#orgb4491ea">Documentation</a></li>
<li><a href="#org32024c4">Function description</a></li>
<li><a href="#orgb9c096a">Optional Parameters</a></li>
<li><a href="#orgc4169f8">Documentation</a></li>
<li><a href="#org44de918">Function description</a></li>
<li><a href="#org3966929">Optional Parameters</a></li>
<li><a href="#org2e42182">Compute the total stiffness and damping</a></li>
<li><a href="#orgd8d2d38">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgfed23b2">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgbc5232e">10. <code>initializeJointDynamics</code>: Add Stiffness and Damping properties for spherical joints</a>
<ul>
<li><a href="#org9987af0">Function description</a></li>
<li><a href="#orgfa09700">Optional Parameters</a></li>
<li><a href="#orgcc4b26d">Function description</a></li>
<li><a href="#org047804e">Optional Parameters</a></li>
<li><a href="#orgd5b8278">Add Actuator Type</a></li>
<li><a href="#org51cf135">Add Stiffness and Damping in Translation of each strut</a></li>
<li><a href="#org1e8eceb">Add Stiffness and Damping in Rotation of each strut</a></li>
@@ -124,17 +124,17 @@
<ul>
<li><a href="#orgcfc37af">Geophone - Working Principle</a></li>
<li><a href="#org986e38f">Accelerometer - Working Principle</a></li>
<li><a href="#orgf891c99">Function description</a></li>
<li><a href="#org3120ee8">Optional Parameters</a></li>
<li><a href="#orgcb6bebb">Function description</a></li>
<li><a href="#org5ec99a5">Optional Parameters</a></li>
<li><a href="#org1c3d7c8">Compute the properties of the sensor</a></li>
<li><a href="#org81ff88b">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org5e33aa2">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgd6baa46">12. <code>displayArchitecture</code>: 3D plot of the Stewart platform architecture</a>
<ul>
<li><a href="#org84f3d13">Function description</a></li>
<li><a href="#org74d4ce4">Optional Parameters</a></li>
<li><a href="#org3b35a3d">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgc70c9a5">Function description</a></li>
<li><a href="#org63006a7">Optional Parameters</a></li>
<li><a href="#org86735ca">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgb11fd92">Figure Creation, Frames and Homogeneous transformations</a></li>
<li><a href="#org7cd8fee">Fixed Base elements</a></li>
<li><a href="#orgacb8eb7">Mobile Platform elements</a></li>
@@ -145,8 +145,8 @@
</li>
<li><a href="#orgecfd55f">13. <code>describeStewartPlatform</code>: Display some text describing the current defined Stewart Platform</a>
<ul>
<li><a href="#org6e4f9f6">Function description</a></li>
<li><a href="#org1dcd763">Optional Parameters</a></li>
<li><a href="#orgb99230a">Function description</a></li>
<li><a href="#orged88325">Optional Parameters</a></li>
<li><a href="#org1d49caa">13.1. Geometry</a></li>
<li><a href="#orgcb66771">13.2. Actuators</a></li>
<li><a href="#org4630b77">13.3. Joints</a></li>
@@ -155,39 +155,39 @@
</li>
<li><a href="#org65fc289">14. <code>generateCubicConfiguration</code>: Generate a Cubic Configuration</a>
<ul>
<li><a href="#org56bb069">Function description</a></li>
<li><a href="#org8dc2620">Documentation</a></li>
<li><a href="#org9269fce">Optional Parameters</a></li>
<li><a href="#org90eac03">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgc164e8d">Function description</a></li>
<li><a href="#org0d467b7">Documentation</a></li>
<li><a href="#orgda76f80">Optional Parameters</a></li>
<li><a href="#org4a5a3cf">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge94a885">Position of the Cube</a></li>
<li><a href="#org3231a85">Compute the pose</a></li>
<li><a href="#orgb046d7e">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orge8af7a8">Compute the pose</a></li>
<li><a href="#org32b44aa">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org9e8cbfa">15. <code>computeJacobian</code>: Compute the Jacobian Matrix</a>
<ul>
<li><a href="#org9b984be">Function description</a></li>
<li><a href="#orga0158ff">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org2c08fbd">Function description</a></li>
<li><a href="#org8071a1b">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org9bcd9b9">Compute Jacobian Matrix</a></li>
<li><a href="#orgf08eda6">Compute Stiffness Matrix</a></li>
<li><a href="#orgd164132">Compute Compliance Matrix</a></li>
<li><a href="#orgecc27b3">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgbf70f7a">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org03168fc">16. <code>inverseKinematics</code>: Compute Inverse Kinematics</a>
<ul>
<li><a href="#orgbdc5fb1">Theory</a></li>
<li><a href="#org988305f">Function description</a></li>
<li><a href="#org954d921">Optional Parameters</a></li>
<li><a href="#org2e35685">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org18c9841">Function description</a></li>
<li><a href="#org848fb1f">Optional Parameters</a></li>
<li><a href="#org8be974b">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org8b70a76">Compute</a></li>
</ul>
</li>
<li><a href="#org278d55b">17. <code>forwardKinematicsApprox</code>: Compute the Approximate Forward Kinematics</a>
<ul>
<li><a href="#orgb2b186c">Function description</a></li>
<li><a href="#org8e4bfab">Optional Parameters</a></li>
<li><a href="#org87cdb4a">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org07e11bf">Function description</a></li>
<li><a href="#org918179d">Optional Parameters</a></li>
<li><a href="#orgf157791">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgf17cab9">Computation</a></li>
</ul>
</li>
@@ -273,11 +273,11 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</p>
</div>
<div id="outline-container-org5817617" class="outline-3">
<h3 id="org5817617">Documentation</h3>
<div class="outline-text-3" id="text-org5817617">
<div id="outline-container-org8dc2620" class="outline-3">
<h3 id="org8dc2620">Documentation</h3>
<div class="outline-text-3" id="text-org8dc2620">
<div id="orgb66cd49" class="figure">
<div id="org321fc67" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Definition of the position of the frames</p>
@@ -285,9 +285,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</div>
</div>
<div id="outline-container-org7d81110" class="outline-3">
<h3 id="org7d81110">Function description</h3>
<div class="outline-text-3" id="text-org7d81110">
<div id="outline-container-orgb2b186c" class="outline-3">
<h3 id="orgb2b186c">Function description</h3>
<div class="outline-text-3" id="text-orgb2b186c">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStewartPlatform()
% initializeStewartPlatform - Initialize the stewart structure
@@ -346,11 +346,11 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</p>
</div>
<div id="outline-container-org60fadfe" class="outline-3">
<h3 id="org60fadfe">Documentation</h3>
<div class="outline-text-3" id="text-org60fadfe">
<div id="outline-container-org736bb40" class="outline-3">
<h3 id="org736bb40">Documentation</h3>
<div class="outline-text-3" id="text-org736bb40">
<div id="org321fc67" class="figure">
<div id="org805d4f8" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Definition of the position of the frames</p>
@@ -358,9 +358,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org3f0f259" class="outline-3">
<h3 id="org3f0f259">Function description</h3>
<div class="outline-text-3" id="text-org3f0f259">
<div id="outline-container-orgb82d77f" class="outline-3">
<h3 id="orgb82d77f">Function description</h3>
<div class="outline-text-3" id="text-orgb82d77f">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeFramesPositions(stewart, args)
% initializeFramesPositions - Initialize the positions of frames {A}, {B}, {F} and {M}
@@ -383,9 +383,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-orgada2d6f" class="outline-3">
<h3 id="orgada2d6f">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgada2d6f">
<div id="outline-container-org8e4bfab" class="outline-3">
<h3 id="org8e4bfab">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8e4bfab">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -413,9 +413,9 @@ FO_A = MO_B + FO_M; % Position of {A} with respect to {F} [m]
</div>
</div>
<div id="outline-container-orgd7c92be" class="outline-3">
<h3 id="orgd7c92be">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgd7c92be">
<div id="outline-container-orgecc27b3" class="outline-3">
<h3 id="orgecc27b3">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgecc27b3">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.H = H;
stewart.geometry.FO_M = FO_M;
@@ -439,9 +439,9 @@ This Matlab function is accessible <a href="../src/generateGeneralConfiguration.
</p>
</div>
<div id="outline-container-org722f89f" class="outline-3">
<h3 id="org722f89f">Documentation</h3>
<div class="outline-text-3" id="text-org722f89f">
<div id="outline-container-orgd270a86" class="outline-3">
<h3 id="orgd270a86">Documentation</h3>
<div class="outline-text-3" id="text-orgd270a86">
<p>
Joints are positions on a circle centered with the Z axis of {F} and {M} and at a chosen distance from {F} and {M}.
The radius of the circles can be chosen as well as the angles where the joints are located (see Figure <a href="#org449c886">3</a>).
@@ -456,9 +456,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org37642a9" class="outline-3">
<h3 id="org37642a9">Function description</h3>
<div class="outline-text-3" id="text-org37642a9">
<div id="outline-container-org22aadcf" class="outline-3">
<h3 id="org22aadcf">Function description</h3>
<div class="outline-text-3" id="text-org22aadcf">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = generateGeneralConfiguration(stewart, args)
% generateGeneralConfiguration - Generate a Very General Configuration
@@ -483,9 +483,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org8175ecb" class="outline-3">
<h3 id="org8175ecb">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8175ecb">
<div id="outline-container-orga6492a4" class="outline-3">
<h3 id="orga6492a4">Optional Parameters</h3>
<div class="outline-text-3" id="text-orga6492a4">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -501,9 +501,9 @@ end
</div>
</div>
<div id="outline-container-orgc9244b9" class="outline-3">
<h3 id="orgc9244b9">Compute the pose</h3>
<div class="outline-text-3" id="text-orgc9244b9">
<div id="outline-container-org3231a85" class="outline-3">
<h3 id="org3231a85">Compute the pose</h3>
<div class="outline-text-3" id="text-org3231a85">
<div class="org-src-container">
<pre class="src src-matlab">Fa = zeros(3,6);
Mb = zeros(3,6);
@@ -520,9 +520,9 @@ end
</div>
</div>
<div id="outline-container-org010e928" class="outline-3">
<h3 id="org010e928">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org010e928">
<div id="outline-container-org13d89d2" class="outline-3">
<h3 id="org13d89d2">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org13d89d2">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@@ -544,9 +544,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</p>
</div>
<div id="outline-container-org1084538" class="outline-3">
<h3 id="org1084538">Documentation</h3>
<div class="outline-text-3" id="text-org1084538">
<div id="outline-container-orgf8b573b" class="outline-3">
<h3 id="orgf8b573b">Documentation</h3>
<div class="outline-text-3" id="text-orgf8b573b">
<div id="org20f7106" class="figure">
<p><img src="figs/stewart-struts.png" alt="stewart-struts.png" />
@@ -556,9 +556,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org1da2a38" class="outline-3">
<h3 id="org1da2a38">Function description</h3>
<div class="outline-text-3" id="text-org1da2a38">
<div id="outline-container-org85d30c9" class="outline-3">
<h3 id="org85d30c9">Function description</h3>
<div class="outline-text-3" id="text-org85d30c9">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = computeJointsPose(stewart)
% computeJointsPose -
@@ -591,9 +591,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org02f1320" class="outline-3">
<h3 id="org02f1320">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org02f1320">
<div id="outline-container-org87cdb4a" class="outline-3">
<h3 id="org87cdb4a">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org87cdb4a">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.platform_F, 'Fa'), 'stewart.platform_F should have attribute Fa')
Fa = stewart.platform_F.Fa;
@@ -664,9 +664,9 @@ end
</div>
</div>
<div id="outline-container-orgab9893e" class="outline-3">
<h3 id="orgab9893e">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgab9893e">
<div id="outline-container-org47a4205" class="outline-3">
<h3 id="org47a4205">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org47a4205">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.Aa = Aa;
stewart.geometry.Ab = Ab;
@@ -699,9 +699,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</p>
</div>
<div id="outline-container-org3df7fa5" class="outline-3">
<h3 id="org3df7fa5">Function description</h3>
<div class="outline-text-3" id="text-org3df7fa5">
<div id="outline-container-org9a7c718" class="outline-3">
<h3 id="org9a7c718">Function description</h3>
<div class="outline-text-3" id="text-org9a7c718">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStewartPose(stewart, args)
% initializeStewartPose - Determine the initial stroke in each leg to have the wanted pose
@@ -725,9 +725,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div>
</div>
<div id="outline-container-org7ad7e23" class="outline-3">
<h3 id="org7ad7e23">Optional Parameters</h3>
<div class="outline-text-3" id="text-org7ad7e23">
<div id="outline-container-orga7f6cb4" class="outline-3">
<h3 id="orga7f6cb4">Optional Parameters</h3>
<div class="outline-text-3" id="text-orga7f6cb4">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -749,9 +749,9 @@ end
</div>
</div>
<div id="outline-container-org8f6d297" class="outline-3">
<h3 id="org8f6d297">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org8f6d297">
<div id="outline-container-orga35dd52" class="outline-3">
<h3 id="orga35dd52">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orga35dd52">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.Leq = dLi;
</pre>
@@ -772,9 +772,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</p>
</div>
<div id="outline-container-org600d8b6" class="outline-3">
<h3 id="org600d8b6">Function description</h3>
<div class="outline-text-3" id="text-org600d8b6">
<div id="outline-container-orge53472d" class="outline-3">
<h3 id="orge53472d">Function description</h3>
<div class="outline-text-3" id="text-orge53472d">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeCylindricalPlatforms(stewart, args)
% initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms
@@ -808,9 +808,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div>
</div>
<div id="outline-container-org7126edc" class="outline-3">
<h3 id="org7126edc">Optional Parameters</h3>
<div class="outline-text-3" id="text-org7126edc">
<div id="outline-container-orgc31cfe7" class="outline-3">
<h3 id="orgc31cfe7">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgc31cfe7">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -845,9 +845,9 @@ end
</div>
</div>
<div id="outline-container-org1282acb" class="outline-3">
<h3 id="org1282acb">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org1282acb">
<div id="outline-container-orga779e2f" class="outline-3">
<h3 id="orga779e2f">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orga779e2f">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.type = 1;
@@ -883,9 +883,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</p>
</div>
<div id="outline-container-org415806e" class="outline-3">
<h3 id="org415806e">Function description</h3>
<div class="outline-text-3" id="text-org415806e">
<div id="outline-container-orgf6fcb94" class="outline-3">
<h3 id="orgf6fcb94">Function description</h3>
<div class="outline-text-3" id="text-orgf6fcb94">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeCylindricalStruts(stewart, args)
% initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts
@@ -918,9 +918,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</div>
</div>
<div id="outline-container-org46ba207" class="outline-3">
<h3 id="org46ba207">Optional Parameters</h3>
<div class="outline-text-3" id="text-org46ba207">
<div id="outline-container-org8990e71" class="outline-3">
<h3 id="org8990e71">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8990e71">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -968,9 +968,9 @@ end
</div>
</div>
<div id="outline-container-orgec9a313" class="outline-3">
<h3 id="orgec9a313">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgec9a313">
<div id="outline-container-org53395cc" class="outline-3">
<h3 id="org53395cc">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org53395cc">
<div class="org-src-container">
<pre class="src src-matlab">stewart.struts_M.type = 1;
@@ -1006,9 +1006,9 @@ This Matlab function is accessible <a href="../src/initializeStrutDynamics.m">he
</p>
</div>
<div id="outline-container-org1e0bcd1" class="outline-3">
<h3 id="org1e0bcd1">Documentation</h3>
<div class="outline-text-3" id="text-org1e0bcd1">
<div id="outline-container-org15ad3b5" class="outline-3">
<h3 id="org15ad3b5">Documentation</h3>
<div class="outline-text-3" id="text-org15ad3b5">
<div id="org99aef3e" class="figure">
<p><img src="figs/piezoelectric_stack.jpg" alt="piezoelectric_stack.jpg" width="500px" />
@@ -1037,9 +1037,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgd4
</div>
</div>
<div id="outline-container-org70074aa" class="outline-3">
<h3 id="org70074aa">Function description</h3>
<div class="outline-text-3" id="text-org70074aa">
<div id="outline-container-org5318aec" class="outline-3">
<h3 id="org5318aec">Function description</h3>
<div class="outline-text-3" id="text-org5318aec">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStrutDynamics(stewart, args)
% initializeStrutDynamics - Add Stiffness and Damping properties of each strut
@@ -1061,14 +1061,23 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgd4
</div>
</div>
<div id="outline-container-orgc77ced4" class="outline-3">
<h3 id="orgc77ced4">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgc77ced4">
<div id="outline-container-org153d169" class="outline-3">
<h3 id="org153d169">Optional Parameters</h3>
<div class="outline-text-3" id="text-org153d169">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
args.type char {mustBeMember(args.type,{'classical', 'amplified'})} = 'classical'
args.K (6,1) double {mustBeNumeric, mustBeNonnegative} = 20e6*ones(6,1)
args.C (6,1) double {mustBeNumeric, mustBeNonnegative} = 2e1*ones(6,1)
args.k1 (6,1) double {mustBeNumeric} = 1e6
args.ke (6,1) double {mustBeNumeric} = 5e6
args.ka (6,1) double {mustBeNumeric} = 60e6
args.c1 (6,1) double {mustBeNumeric} = 10
args.ce (6,1) double {mustBeNumeric} = 10
args.ca (6,1) double {mustBeNumeric} = 10
args.me (6,1) double {mustBeNumeric} = 0.05
args.ma (6,1) double {mustBeNumeric} = 0.05
end
</pre>
</div>
@@ -1079,10 +1088,26 @@ end
<h3 id="org3c2e550">Add Stiffness and Damping properties of each strut</h3>
<div class="outline-text-3" id="text-org3c2e550">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 1;
<pre class="src src-matlab">if strcmp(args.type, 'classical')
stewart.actuators.type = 1;
elseif strcmp(args.type, 'amplified')
stewart.actuators.type = 2;
end
stewart.actuators.K = args.K;
stewart.actuators.C = args.C;
stewart.actuators.k1 = args.k1;
stewart.actuators.c1 = args.c1;
stewart.actuators.ka = args.ka;
stewart.actuators.ca = args.ca;
stewart.actuators.ke = args.ke;
stewart.actuators.ce = args.ce;
stewart.actuators.ma = args.ma;
stewart.actuators.me = args.me;
</pre>
</div>
</div>
@@ -1101,9 +1126,9 @@ This Matlab function is accessible <a href="../src/initializeAmplifiedStrutDynam
</p>
</div>
<div id="outline-container-orgb4491ea" class="outline-3">
<h3 id="orgb4491ea">Documentation</h3>
<div class="outline-text-3" id="text-orgb4491ea">
<div id="outline-container-orgc4169f8" class="outline-3">
<h3 id="orgc4169f8">Documentation</h3>
<div class="outline-text-3" id="text-orgc4169f8">
<p>
An amplified piezoelectric actuator is shown in Figure <a href="#orgab58ac0">7</a>.
</p>
@@ -1136,9 +1161,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org7a
</div>
</div>
<div id="outline-container-org32024c4" class="outline-3">
<h3 id="org32024c4">Function description</h3>
<div class="outline-text-3" id="text-org32024c4">
<div id="outline-container-org44de918" class="outline-3">
<h3 id="org44de918">Function description</h3>
<div class="outline-text-3" id="text-org44de918">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeAmplifiedStrutDynamics(stewart, args)
% initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut
@@ -1166,9 +1191,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org7a
</div>
</div>
<div id="outline-container-orgb9c096a" class="outline-3">
<h3 id="orgb9c096a">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgb9c096a">
<div id="outline-container-org3966929" class="outline-3">
<h3 id="org3966929">Optional Parameters</h3>
<div class="outline-text-3" id="text-org3966929">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1193,9 +1218,9 @@ C = args.Ca + args.Cr;
</div>
</div>
<div id="outline-container-orgd8d2d38" class="outline-3">
<h3 id="orgd8d2d38">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgd8d2d38">
<div id="outline-container-orgfed23b2" class="outline-3">
<h3 id="orgfed23b2">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgfed23b2">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 2;
@@ -1225,9 +1250,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</p>
</div>
<div id="outline-container-org9987af0" class="outline-3">
<h3 id="org9987af0">Function description</h3>
<div class="outline-text-3" id="text-org9987af0">
<div id="outline-container-orgcc4b26d" class="outline-3">
<h3 id="orgcc4b26d">Function description</h3>
<div class="outline-text-3" id="text-orgcc4b26d">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeJointDynamics(stewart, args)
% initializeJointDynamics - Add Stiffness and Damping properties for the spherical joints
@@ -1266,9 +1291,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</div>
</div>
<div id="outline-container-orgfa09700" class="outline-3">
<h3 id="orgfa09700">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgfa09700">
<div id="outline-container-org047804e" class="outline-3">
<h3 id="org047804e">Optional Parameters</h3>
<div class="outline-text-3" id="text-org047804e">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1476,9 +1501,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-orgf891c99" class="outline-3">
<h3 id="orgf891c99">Function description</h3>
<div class="outline-text-3" id="text-orgf891c99">
<div id="outline-container-orgcb6bebb" class="outline-3">
<h3 id="orgcb6bebb">Function description</h3>
<div class="outline-text-3" id="text-orgcb6bebb">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeInertialSensor(stewart, args)
% initializeInertialSensor - Initialize the inertial sensor in each strut
@@ -1504,9 +1529,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-org3120ee8" class="outline-3">
<h3 id="org3120ee8">Optional Parameters</h3>
<div class="outline-text-3" id="text-org3120ee8">
<div id="outline-container-org5ec99a5" class="outline-3">
<h3 id="org5ec99a5">Optional Parameters</h3>
<div class="outline-text-3" id="text-org5ec99a5">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1547,9 +1572,9 @@ end
</div>
</div>
<div id="outline-container-org81ff88b" class="outline-3">
<h3 id="org81ff88b">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org81ff88b">
<div id="outline-container-org5e33aa2" class="outline-3">
<h3 id="org5e33aa2">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org5e33aa2">
<div class="org-src-container">
<pre class="src src-matlab">stewart.sensors.inertial = sensor;
</pre>
@@ -1570,9 +1595,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</p>
</div>
<div id="outline-container-org84f3d13" class="outline-3">
<h3 id="org84f3d13">Function description</h3>
<div class="outline-text-3" id="text-org84f3d13">
<div id="outline-container-orgc70c9a5" class="outline-3">
<h3 id="orgc70c9a5">Function description</h3>
<div class="outline-text-3" id="text-orgc70c9a5">
<div class="org-src-container">
<pre class="src src-matlab">function [] = displayArchitecture(stewart, args)
% displayArchitecture - 3D plot of the Stewart platform architecture
@@ -1601,9 +1626,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div>
</div>
<div id="outline-container-org74d4ce4" class="outline-3">
<h3 id="org74d4ce4">Optional Parameters</h3>
<div class="outline-text-3" id="text-org74d4ce4">
<div id="outline-container-org63006a7" class="outline-3">
<h3 id="org63006a7">Optional Parameters</h3>
<div class="outline-text-3" id="text-org63006a7">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1624,9 +1649,9 @@ end
</div>
</div>
<div id="outline-container-org3b35a3d" class="outline-3">
<h3 id="org3b35a3d">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org3b35a3d">
<div id="outline-container-org86735ca" class="outline-3">
<h3 id="org86735ca">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org86735ca">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.platform_F, 'FO_A'), 'stewart.platform_F should have attribute FO_A')
FO_A = stewart.platform_F.FO_A;
@@ -1964,9 +1989,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</p>
</div>
<div id="outline-container-org6e4f9f6" class="outline-3">
<h3 id="org6e4f9f6">Function description</h3>
<div class="outline-text-3" id="text-org6e4f9f6">
<div id="outline-container-orgb99230a" class="outline-3">
<h3 id="orgb99230a">Function description</h3>
<div class="outline-text-3" id="text-orgb99230a">
<div class="org-src-container">
<pre class="src src-matlab">function [] = describeStewartPlatform(stewart)
% describeStewartPlatform - Display some text describing the current defined Stewart Platform
@@ -1982,9 +2007,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</div>
</div>
<div id="outline-container-org1dcd763" class="outline-3">
<h3 id="org1dcd763">Optional Parameters</h3>
<div class="outline-text-3" id="text-org1dcd763">
<div id="outline-container-orged88325" class="outline-3">
<h3 id="orged88325">Optional Parameters</h3>
<div class="outline-text-3" id="text-orged88325">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2133,9 +2158,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</p>
</div>
<div id="outline-container-org56bb069" class="outline-3">
<h3 id="org56bb069">Function description</h3>
<div class="outline-text-3" id="text-org56bb069">
<div id="outline-container-orgc164e8d" class="outline-3">
<h3 id="orgc164e8d">Function description</h3>
<div class="outline-text-3" id="text-orgc164e8d">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = generateCubicConfiguration(stewart, args)
% generateCubicConfiguration - Generate a Cubic Configuration
@@ -2160,9 +2185,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</div>
</div>
<div id="outline-container-org8dc2620" class="outline-3">
<h3 id="org8dc2620">Documentation</h3>
<div class="outline-text-3" id="text-org8dc2620">
<div id="outline-container-org0d467b7" class="outline-3">
<h3 id="org0d467b7">Documentation</h3>
<div class="outline-text-3" id="text-org0d467b7">
<div id="org70070f0" class="figure">
<p><img src="figs/cubic-configuration-definition.png" alt="cubic-configuration-definition.png" />
@@ -2172,9 +2197,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</div>
</div>
<div id="outline-container-org9269fce" class="outline-3">
<h3 id="org9269fce">Optional Parameters</h3>
<div class="outline-text-3" id="text-org9269fce">
<div id="outline-container-orgda76f80" class="outline-3">
<h3 id="orgda76f80">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgda76f80">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2188,9 +2213,9 @@ end
</div>
</div>
<div id="outline-container-org90eac03" class="outline-3">
<h3 id="org90eac03">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org90eac03">
<div id="outline-container-org4a5a3cf" class="outline-3">
<h3 id="org4a5a3cf">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org4a5a3cf">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'H'), 'stewart.geometry should have attribute H')
H = stewart.geometry.H;
@@ -2225,9 +2250,9 @@ CCm = [Cc(:,2), Cc(:,2), Cc(:,4), Cc(:,4), Cc(:,6), Cc(:,6)]; % CCm(:,i) corresp
</div>
</div>
<div id="outline-container-org3231a85" class="outline-3">
<h3 id="org3231a85">Compute the pose</h3>
<div class="outline-text-3" id="text-org3231a85">
<div id="outline-container-orge8af7a8" class="outline-3">
<h3 id="orge8af7a8">Compute the pose</h3>
<div class="outline-text-3" id="text-orge8af7a8">
<p>
We can compute the vector of each leg \({}^{C}\hat{\bm{s}}_{i}\) (unit vector from \({}^{C}C_{f}\) to \({}^{C}C_{m}\)).
</p>
@@ -2247,9 +2272,9 @@ Mb = CCf + [0; 0; args.FOc-H] + ((H-args.MHb-(args.FOc-args.Hc/2))./CSi(3,:)).*C
</div>
</div>
<div id="outline-container-orgb046d7e" class="outline-3">
<h3 id="orgb046d7e">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgb046d7e">
<div id="outline-container-org32b44aa" class="outline-3">
<h3 id="org32b44aa">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org32b44aa">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@@ -2271,9 +2296,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</p>
</div>
<div id="outline-container-org9b984be" class="outline-3">
<h3 id="org9b984be">Function description</h3>
<div class="outline-text-3" id="text-org9b984be">
<div id="outline-container-org2c08fbd" class="outline-3">
<h3 id="org2c08fbd">Function description</h3>
<div class="outline-text-3" id="text-org2c08fbd">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = computeJacobian(stewart)
% computeJacobian -
@@ -2296,9 +2321,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</div>
</div>
<div id="outline-container-orga0158ff" class="outline-3">
<h3 id="orga0158ff">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-orga0158ff">
<div id="outline-container-org8071a1b" class="outline-3">
<h3 id="org8071a1b">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org8071a1b">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'As'), 'stewart.geometry should have attribute As')
As = stewart.geometry.As;
@@ -2344,9 +2369,9 @@ Ki = stewart.actuators.K;
</div>
</div>
<div id="outline-container-orgecc27b3" class="outline-3">
<h3 id="orgecc27b3">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgecc27b3">
<div id="outline-container-orgbf70f7a" class="outline-3">
<h3 id="orgbf70f7a">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgbf70f7a">
<div class="org-src-container">
<pre class="src src-matlab">stewart.kinematics.J = J;
stewart.kinematics.K = K;
@@ -2406,9 +2431,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org988305f" class="outline-3">
<h3 id="org988305f">Function description</h3>
<div class="outline-text-3" id="text-org988305f">
<div id="outline-container-org18c9841" class="outline-3">
<h3 id="org18c9841">Function description</h3>
<div class="outline-text-3" id="text-org18c9841">
<div class="org-src-container">
<pre class="src src-matlab">function [Li, dLi] = inverseKinematics(stewart, args)
% inverseKinematics - Compute the needed length of each strut to have the wanted position and orientation of {B} with respect to {A}
@@ -2432,9 +2457,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org954d921" class="outline-3">
<h3 id="org954d921">Optional Parameters</h3>
<div class="outline-text-3" id="text-org954d921">
<div id="outline-container-org848fb1f" class="outline-3">
<h3 id="org848fb1f">Optional Parameters</h3>
<div class="outline-text-3" id="text-org848fb1f">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2446,9 +2471,9 @@ end
</div>
</div>
<div id="outline-container-org2e35685" class="outline-3">
<h3 id="org2e35685">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org2e35685">
<div id="outline-container-org8be974b" class="outline-3">
<h3 id="org8be974b">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org8be974b">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'Aa'), 'stewart.geometry should have attribute Aa')
Aa = stewart.geometry.Aa;
@@ -2492,9 +2517,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</p>
</div>
<div id="outline-container-orgb2b186c" class="outline-3">
<h3 id="orgb2b186c">Function description</h3>
<div class="outline-text-3" id="text-orgb2b186c">
<div id="outline-container-org07e11bf" class="outline-3">
<h3 id="org07e11bf">Function description</h3>
<div class="outline-text-3" id="text-org07e11bf">
<div class="org-src-container">
<pre class="src src-matlab">function [P, R] = forwardKinematicsApprox(stewart, args)
% forwardKinematicsApprox - Computed the approximate pose of {B} with respect to {A} from the length of each strut and using
@@ -2516,9 +2541,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</div>
</div>
<div id="outline-container-org8e4bfab" class="outline-3">
<h3 id="org8e4bfab">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8e4bfab">
<div id="outline-container-org918179d" class="outline-3">
<h3 id="org918179d">Optional Parameters</h3>
<div class="outline-text-3" id="text-org918179d">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2529,9 +2554,9 @@ end
</div>
</div>
<div id="outline-container-org87cdb4a" class="outline-3">
<h3 id="org87cdb4a">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org87cdb4a">
<div id="outline-container-orgf157791" class="outline-3">
<h3 id="orgf157791">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-orgf157791">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.kinematics, 'J'), 'stewart.kinematics should have attribute J')
J = stewart.kinematics.J;
@@ -2586,7 +2611,7 @@ We then compute the corresponding rotation matrix.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-05-20 mer. 15:49</p>
<p class="date">Created: 2020-05-20 mer. 16:41</p>
</div>
</body>
</html>