[WIP] add amplified piezo for the nano-hexapod

This commit is contained in:
2020-05-20 16:04:05 +02:00
parent 04c2ee06dc
commit 945741a795
21 changed files with 324 additions and 301 deletions

View File

@@ -1,11 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<?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. 10:34 -->
<!-- 2020-05-07 jeu. 14:05 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Centrifugal Forces</title>
<meta name="generator" content="Org mode" />
@@ -98,7 +97,7 @@ w_heavy = 2*pi/60; % rotational speed [rad/s]
Finally, we consider a mass eccentricity of \(10\,mm\).
</p>
<div class="org-src-container">
<pre class="src src-matlab">R = 0.1; % Excentricity [m]
<pre class="src src-matlab">R = 0.01; % Excentricity [m]
</pre>
</div>
</div>
@@ -128,12 +127,12 @@ From the formula \(F_c = m \omega^2 r\), we obtain the values shown below.
<tbody>
<tr>
<td class="org-left">light</td>
<td class="org-right">63.2</td>
<td class="org-right">6.32</td>
</tr>
<tr>
<td class="org-left">heavy</td>
<td class="org-right">0.1</td>
<td class="org-right">0.01</td>
</tr>
</tbody>
</table>
@@ -164,13 +163,13 @@ We plot the maximum rotation speed as a function of the mass for different maxim
</p>
<p>
From a specified maximum allowed centrifugal force (here set to \(100\,[N]\)), the maximum rotation speed as a function of the sample&rsquo;s mass is shown in Figure <a href="#org6ee8f38">3</a>.
From a specified maximum allowed centrifugal force (here set to \(10\,[N]\)), the maximum rotation speed as a function of the sample&rsquo;s mass is shown in Figure <a href="#org6ee8f38">3</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">F_max = 100; % Maximum accepted centrifugal forces [N]
<pre class="src src-matlab">F_max = 10; % Maximum accepted centrifugal forces [N]
R = 0.1;
R = 0.01;
M_sample = 0:1:100;
M_reflector = 15;
@@ -188,7 +187,7 @@ M_reflector = 15;
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-05-05 mar. 10:34</p>
<p class="date">Created: 2020-05-07 jeu. 14:05</p>
</div>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 150 KiB

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. 10:34 -->
<!-- 2020-05-20 mer. 15:49 -->
<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" />
@@ -42,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="#org8c0882d">1.6. Conclusion</a></li>
<li><a href="#orgd9e52e3">1.6. Conclusion</a></li>
</ul>
</li>
<li><a href="#org81dc0a8">2. Primary Control in the leg space</a>
@@ -51,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="#orgbeadec8">2.5. Results</a></li>
<li><a href="#org66b4613">2.5. Results</a></li>
<li><a href="#orgf709759">2.6. Actuator Stroke and Forces</a></li>
<li><a href="#orgb0f5db9">2.7. Conclusion</a></li>
<li><a href="#org3b6d331">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="#org57e2cfd">3.1.1. Simulation</a></li>
<li><a href="#org2c93370">3.1.2. Results</a></li>
<li><a href="#orgcd1c705">3.1.1. Simulation</a></li>
<li><a href="#org3387265">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="#org6710f28">3.2.1. Simulation</a></li>
<li><a href="#org035df39">3.2.2. Results</a></li>
<li><a href="#org48f5ed8">3.2.1. Simulation</a></li>
<li><a href="#orgcc19864">3.2.2. Results</a></li>
</ul>
</li>
</ul>
@@ -80,8 +79,8 @@
<li><a href="#orgb28634b">4.2.1. Stability</a></li>
</ul>
</li>
<li><a href="#org9ea6a0a">4.3. Simulation</a></li>
<li><a href="#org21304f7">4.4. Conclusion</a></li>
<li><a href="#org78cec1a">4.3. Simulation</a></li>
<li><a href="#orgdc2eb5a">4.4. Conclusion</a></li>
</ul>
</li>
</ul>
@@ -325,8 +324,8 @@ Decentralized Direct Velocity Feedback is shown to increase the effect of stages
</div>
</div>
<div id="outline-container-org8c0882d" class="outline-3">
<h3 id="org8c0882d"><span class="section-number-3">1.6</span> Conclusion</h3>
<div id="outline-container-orgd9e52e3" class="outline-3">
<h3 id="orgd9e52e3"><span class="section-number-3">1.6</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-6">
<div class="important">
<p>
@@ -513,8 +512,8 @@ And we run the simulation for all three payload Masses.
</p>
</div>
</div>
<div id="outline-container-orgbeadec8" class="outline-3">
<h3 id="orgbeadec8"><span class="section-number-3">2.5</span> Results</h3>
<div id="outline-container-org66b4613" class="outline-3">
<h3 id="org66b4613"><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.
@@ -573,8 +572,8 @@ Finally, the time domain position error signals are shown in Figure <a href="#or
</div>
</div>
<div id="outline-container-orgb0f5db9" class="outline-3">
<h3 id="orgb0f5db9"><span class="section-number-3">2.7</span> Conclusion</h3>
<div id="outline-container-org3b6d331" class="outline-3">
<h3 id="org3b6d331"><span class="section-number-3">2.7</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-7">
<div class="important">
<p>
@@ -594,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-org57e2cfd" class="outline-4">
<h4 id="org57e2cfd"><span class="section-number-4">3.1.1</span> Simulation</h4>
<div id="outline-container-orgcd1c705" class="outline-4">
<h4 id="orgcd1c705"><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.
@@ -623,8 +622,8 @@ sim('nass_model');
</div>
</div>
<div id="outline-container-org2c93370" class="outline-4">
<h4 id="org2c93370"><span class="section-number-4">3.1.2</span> Results</h4>
<div id="outline-container-org3387265" class="outline-4">
<h4 id="org3387265"><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">
@@ -651,15 +650,15 @@ 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-org6710f28" class="outline-4">
<h4 id="org6710f28"><span class="section-number-4">3.2.1</span> Simulation</h4>
<div id="outline-container-org48f5ed8" class="outline-4">
<h4 id="org48f5ed8"><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.
</p>
<p>
The sample has a mass one 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape.
The sample has a mass of 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape.
</p>
<div class="org-src-container">
@@ -675,8 +674,8 @@ initializeReferences('Rz_type', 'rotating', 'Rz_period', 1, ...
</div>
</div>
<div id="outline-container-org035df39" class="outline-4">
<h4 id="org035df39"><span class="section-number-4">3.2.2</span> Results</h4>
<div id="outline-container-orgcc19864" class="outline-4">
<h4 id="orgcc19864"><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">
@@ -779,11 +778,11 @@ end
</div>
</div>
<div id="outline-container-org9ea6a0a" class="outline-3">
<h3 id="org9ea6a0a"><span class="section-number-3">4.3</span> Simulation</h3>
<div id="outline-container-org78cec1a" class="outline-3">
<h3 id="org78cec1a"><span class="section-number-3">4.3</span> Simulation</h3>
</div>
<div id="outline-container-org21304f7" class="outline-3">
<h3 id="org21304f7"><span class="section-number-3">4.4</span> Conclusion</h3>
<div id="outline-container-orgdc2eb5a" class="outline-3">
<h3 id="orgdc2eb5a"><span class="section-number-3">4.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-4">
<div class="important">
<p>
@@ -797,7 +796,7 @@ end
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-05-05 mar. 10:34</p>
<p class="date">Created: 2020-05-20 mer. 15:49</p>
</div>
</body>
</html>

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. 10:34 -->
<!-- 2020-05-20 mer. 15:49 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Simscape Model</title>
<meta name="generator" content="Org mode" />
@@ -37,85 +36,85 @@
<ul>
<li><a href="#orgcaca5e0">1. <code>initializeStewartPlatform</code>: Initialize the Stewart Platform structure</a>
<ul>
<li><a href="#orgc11609b">Documentation</a></li>
<li><a href="#org37e6edf">Function description</a></li>
<li><a href="#org5817617">Documentation</a></li>
<li><a href="#org7d81110">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="#org2011b55">Documentation</a></li>
<li><a href="#org40fe9e8">Function description</a></li>
<li><a href="#org6441308">Optional Parameters</a></li>
<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="#org7d50d54">Compute the position of each frame</a></li>
<li><a href="#orgf6ce3ee">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgd7c92be">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="#org0759816">Documentation</a></li>
<li><a href="#orgaac37b6">Function description</a></li>
<li><a href="#org2af2f34">Optional Parameters</a></li>
<li><a href="#orgfac23f3">Compute the pose</a></li>
<li><a href="#org69f4916">Populate the <code>stewart</code> structure</a></li>
<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>
</ul>
</li>
<li><a href="#org9944c04">4. <code>computeJointsPose</code>: Compute the Pose of the Joints</a>
<ul>
<li><a href="#org2d1a6c0">Documentation</a></li>
<li><a href="#org50f74a1">Function description</a></li>
<li><a href="#orgf462a70">Check the <code>stewart</code> structure elements</a></li>
<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="#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="#org2c160bb">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgab9893e">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="#org1e2fafd">Function description</a></li>
<li><a href="#org034bf20">Optional Parameters</a></li>
<li><a href="#org3df7fa5">Function description</a></li>
<li><a href="#org7ad7e23">Optional Parameters</a></li>
<li><a href="#orgbb9abb5">Use the Inverse Kinematic function</a></li>
<li><a href="#orgf124a3e">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org8f6d297">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="#org84a14a5">Function description</a></li>
<li><a href="#orge580054">Optional Parameters</a></li>
<li><a href="#org600d8b6">Function description</a></li>
<li><a href="#org7126edc">Optional Parameters</a></li>
<li><a href="#orgf654de0">Compute the Inertia matrices of platforms</a></li>
<li><a href="#orge34849b">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org1282acb">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="#org27c9756">Function description</a></li>
<li><a href="#org060b144">Optional Parameters</a></li>
<li><a href="#org415806e">Function description</a></li>
<li><a href="#org46ba207">Optional Parameters</a></li>
<li><a href="#orgd943059">Compute the properties of the cylindrical struts</a></li>
<li><a href="#org5d7924e">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgec9a313">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="#org70888ee">Documentation</a></li>
<li><a href="#org2fd9286">Function description</a></li>
<li><a href="#orgebba910">Optional Parameters</a></li>
<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="#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="#org70c61fd">Documentation</a></li>
<li><a href="#org4b8bd84">Function description</a></li>
<li><a href="#org94cace2">Optional Parameters</a></li>
<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="#org2e42182">Compute the total stiffness and damping</a></li>
<li><a href="#orgee22bea">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgd8d2d38">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="#orgc806fca">Function description</a></li>
<li><a href="#org4403345">Optional Parameters</a></li>
<li><a href="#org9987af0">Function description</a></li>
<li><a href="#orgfa09700">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>
@@ -125,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="#orgdf893fa">Function description</a></li>
<li><a href="#org1a86834">Optional Parameters</a></li>
<li><a href="#orgf891c99">Function description</a></li>
<li><a href="#org3120ee8">Optional Parameters</a></li>
<li><a href="#org1c3d7c8">Compute the properties of the sensor</a></li>
<li><a href="#org5ee57cc">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org81ff88b">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="#org763a2e4">Function description</a></li>
<li><a href="#orgfefbc0b">Optional Parameters</a></li>
<li><a href="#org49ecb6b">Check the <code>stewart</code> structure elements</a></li>
<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="#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>
@@ -146,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="#orgea76862">Function description</a></li>
<li><a href="#org8ead6fb">Optional Parameters</a></li>
<li><a href="#org6e4f9f6">Function description</a></li>
<li><a href="#org1dcd763">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>
@@ -156,39 +155,39 @@
</li>
<li><a href="#org65fc289">14. <code>generateCubicConfiguration</code>: Generate a Cubic Configuration</a>
<ul>
<li><a href="#org458448a">Function description</a></li>
<li><a href="#org5817617">Documentation</a></li>
<li><a href="#org56ed950">Optional Parameters</a></li>
<li><a href="#org341a5bd">Check the <code>stewart</code> structure elements</a></li>
<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="#orge94a885">Position of the Cube</a></li>
<li><a href="#orgc9244b9">Compute the pose</a></li>
<li><a href="#org503addd">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org3231a85">Compute the pose</a></li>
<li><a href="#orgb046d7e">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="#orga999616">Function description</a></li>
<li><a href="#orgac50fa7">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org9b984be">Function description</a></li>
<li><a href="#orga0158ff">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="#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="#org03168fc">16. <code>inverseKinematics</code>: Compute Inverse Kinematics</a>
<ul>
<li><a href="#orgbdc5fb1">Theory</a></li>
<li><a href="#orgd247ad5">Function description</a></li>
<li><a href="#org3259665">Optional Parameters</a></li>
<li><a href="#org4ca8cd1">Check the <code>stewart</code> structure elements</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="#org8b70a76">Compute</a></li>
</ul>
</li>
<li><a href="#org278d55b">17. <code>forwardKinematicsApprox</code>: Compute the Approximate Forward Kinematics</a>
<ul>
<li><a href="#org7d81110">Function description</a></li>
<li><a href="#orgada2d6f">Optional Parameters</a></li>
<li><a href="#org02f1320">Check the <code>stewart</code> structure elements</a></li>
<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="#orgf17cab9">Computation</a></li>
</ul>
</li>
@@ -274,11 +273,11 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</p>
</div>
<div id="outline-container-orgc11609b" class="outline-3">
<h3 id="orgc11609b">Documentation</h3>
<div class="outline-text-3" id="text-orgc11609b">
<div id="outline-container-org5817617" class="outline-3">
<h3 id="org5817617">Documentation</h3>
<div class="outline-text-3" id="text-org5817617">
<div id="orgebd0f49" class="figure">
<div id="orgb66cd49" 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>
@@ -286,9 +285,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</div>
</div>
<div id="outline-container-org37e6edf" class="outline-3">
<h3 id="org37e6edf">Function description</h3>
<div class="outline-text-3" id="text-org37e6edf">
<div id="outline-container-org7d81110" class="outline-3">
<h3 id="org7d81110">Function description</h3>
<div class="outline-text-3" id="text-org7d81110">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStewartPlatform()
% initializeStewartPlatform - Initialize the stewart structure
@@ -347,11 +346,11 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</p>
</div>
<div id="outline-container-org2011b55" class="outline-3">
<h3 id="org2011b55">Documentation</h3>
<div class="outline-text-3" id="text-org2011b55">
<div id="outline-container-org60fadfe" class="outline-3">
<h3 id="org60fadfe">Documentation</h3>
<div class="outline-text-3" id="text-org60fadfe">
<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 2: </span>Definition of the position of the frames</p>
@@ -359,9 +358,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org40fe9e8" class="outline-3">
<h3 id="org40fe9e8">Function description</h3>
<div class="outline-text-3" id="text-org40fe9e8">
<div id="outline-container-org3f0f259" class="outline-3">
<h3 id="org3f0f259">Function description</h3>
<div class="outline-text-3" id="text-org3f0f259">
<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}
@@ -384,9 +383,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org6441308" class="outline-3">
<h3 id="org6441308">Optional Parameters</h3>
<div class="outline-text-3" id="text-org6441308">
<div id="outline-container-orgada2d6f" class="outline-3">
<h3 id="orgada2d6f">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgada2d6f">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -414,9 +413,9 @@ FO_A = MO_B + FO_M; % Position of {A} with respect to {F} [m]
</div>
</div>
<div id="outline-container-orgf6ce3ee" class="outline-3">
<h3 id="orgf6ce3ee">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgf6ce3ee">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.geometry.H = H;
stewart.geometry.FO_M = FO_M;
@@ -440,9 +439,9 @@ This Matlab function is accessible <a href="../src/generateGeneralConfiguration.
</p>
</div>
<div id="outline-container-org0759816" class="outline-3">
<h3 id="org0759816">Documentation</h3>
<div class="outline-text-3" id="text-org0759816">
<div id="outline-container-org722f89f" class="outline-3">
<h3 id="org722f89f">Documentation</h3>
<div class="outline-text-3" id="text-org722f89f">
<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>).
@@ -457,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-orgaac37b6" class="outline-3">
<h3 id="orgaac37b6">Function description</h3>
<div class="outline-text-3" id="text-orgaac37b6">
<div id="outline-container-org37642a9" class="outline-3">
<h3 id="org37642a9">Function description</h3>
<div class="outline-text-3" id="text-org37642a9">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = generateGeneralConfiguration(stewart, args)
% generateGeneralConfiguration - Generate a Very General Configuration
@@ -484,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-org2af2f34" class="outline-3">
<h3 id="org2af2f34">Optional Parameters</h3>
<div class="outline-text-3" id="text-org2af2f34">
<div id="outline-container-org8175ecb" class="outline-3">
<h3 id="org8175ecb">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8175ecb">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -502,9 +501,9 @@ end
</div>
</div>
<div id="outline-container-orgfac23f3" class="outline-3">
<h3 id="orgfac23f3">Compute the pose</h3>
<div class="outline-text-3" id="text-orgfac23f3">
<div id="outline-container-orgc9244b9" class="outline-3">
<h3 id="orgc9244b9">Compute the pose</h3>
<div class="outline-text-3" id="text-orgc9244b9">
<div class="org-src-container">
<pre class="src src-matlab">Fa = zeros(3,6);
Mb = zeros(3,6);
@@ -521,9 +520,9 @@ end
</div>
</div>
<div id="outline-container-org69f4916" class="outline-3">
<h3 id="org69f4916">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org69f4916">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@@ -545,9 +544,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</p>
</div>
<div id="outline-container-org2d1a6c0" class="outline-3">
<h3 id="org2d1a6c0">Documentation</h3>
<div class="outline-text-3" id="text-org2d1a6c0">
<div id="outline-container-org1084538" class="outline-3">
<h3 id="org1084538">Documentation</h3>
<div class="outline-text-3" id="text-org1084538">
<div id="org20f7106" class="figure">
<p><img src="figs/stewart-struts.png" alt="stewart-struts.png" />
@@ -557,9 +556,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org50f74a1" class="outline-3">
<h3 id="org50f74a1">Function description</h3>
<div class="outline-text-3" id="text-org50f74a1">
<div id="outline-container-org1da2a38" class="outline-3">
<h3 id="org1da2a38">Function description</h3>
<div class="outline-text-3" id="text-org1da2a38">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = computeJointsPose(stewart)
% computeJointsPose -
@@ -592,9 +591,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-orgf462a70" class="outline-3">
<h3 id="orgf462a70">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-orgf462a70">
<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 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;
@@ -665,9 +664,9 @@ end
</div>
</div>
<div id="outline-container-org2c160bb" class="outline-3">
<h3 id="org2c160bb">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org2c160bb">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.geometry.Aa = Aa;
stewart.geometry.Ab = Ab;
@@ -700,9 +699,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</p>
</div>
<div id="outline-container-org1e2fafd" class="outline-3">
<h3 id="org1e2fafd">Function description</h3>
<div class="outline-text-3" id="text-org1e2fafd">
<div id="outline-container-org3df7fa5" class="outline-3">
<h3 id="org3df7fa5">Function description</h3>
<div class="outline-text-3" id="text-org3df7fa5">
<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
@@ -726,9 +725,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div>
</div>
<div id="outline-container-org034bf20" class="outline-3">
<h3 id="org034bf20">Optional Parameters</h3>
<div class="outline-text-3" id="text-org034bf20">
<div id="outline-container-org7ad7e23" class="outline-3">
<h3 id="org7ad7e23">Optional Parameters</h3>
<div class="outline-text-3" id="text-org7ad7e23">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -750,9 +749,9 @@ end
</div>
</div>
<div id="outline-container-orgf124a3e" class="outline-3">
<h3 id="orgf124a3e">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgf124a3e">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.actuators.Leq = dLi;
</pre>
@@ -773,9 +772,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</p>
</div>
<div id="outline-container-org84a14a5" class="outline-3">
<h3 id="org84a14a5">Function description</h3>
<div class="outline-text-3" id="text-org84a14a5">
<div id="outline-container-org600d8b6" class="outline-3">
<h3 id="org600d8b6">Function description</h3>
<div class="outline-text-3" id="text-org600d8b6">
<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
@@ -809,9 +808,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div>
</div>
<div id="outline-container-orge580054" class="outline-3">
<h3 id="orge580054">Optional Parameters</h3>
<div class="outline-text-3" id="text-orge580054">
<div id="outline-container-org7126edc" class="outline-3">
<h3 id="org7126edc">Optional Parameters</h3>
<div class="outline-text-3" id="text-org7126edc">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -846,9 +845,9 @@ end
</div>
</div>
<div id="outline-container-orge34849b" class="outline-3">
<h3 id="orge34849b">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orge34849b">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.type = 1;
@@ -884,9 +883,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</p>
</div>
<div id="outline-container-org27c9756" class="outline-3">
<h3 id="org27c9756">Function description</h3>
<div class="outline-text-3" id="text-org27c9756">
<div id="outline-container-org415806e" class="outline-3">
<h3 id="org415806e">Function description</h3>
<div class="outline-text-3" id="text-org415806e">
<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
@@ -919,9 +918,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</div>
</div>
<div id="outline-container-org060b144" class="outline-3">
<h3 id="org060b144">Optional Parameters</h3>
<div class="outline-text-3" id="text-org060b144">
<div id="outline-container-org46ba207" class="outline-3">
<h3 id="org46ba207">Optional Parameters</h3>
<div class="outline-text-3" id="text-org46ba207">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -969,9 +968,9 @@ end
</div>
</div>
<div id="outline-container-org5d7924e" class="outline-3">
<h3 id="org5d7924e">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org5d7924e">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.struts_M.type = 1;
@@ -1007,9 +1006,9 @@ This Matlab function is accessible <a href="../src/initializeStrutDynamics.m">he
</p>
</div>
<div id="outline-container-org70888ee" class="outline-3">
<h3 id="org70888ee">Documentation</h3>
<div class="outline-text-3" id="text-org70888ee">
<div id="outline-container-org1e0bcd1" class="outline-3">
<h3 id="org1e0bcd1">Documentation</h3>
<div class="outline-text-3" id="text-org1e0bcd1">
<div id="org99aef3e" class="figure">
<p><img src="figs/piezoelectric_stack.jpg" alt="piezoelectric_stack.jpg" width="500px" />
@@ -1038,9 +1037,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgd4
</div>
</div>
<div id="outline-container-org2fd9286" class="outline-3">
<h3 id="org2fd9286">Function description</h3>
<div class="outline-text-3" id="text-org2fd9286">
<div id="outline-container-org70074aa" class="outline-3">
<h3 id="org70074aa">Function description</h3>
<div class="outline-text-3" id="text-org70074aa">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeStrutDynamics(stewart, args)
% initializeStrutDynamics - Add Stiffness and Damping properties of each strut
@@ -1062,9 +1061,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgd4
</div>
</div>
<div id="outline-container-orgebba910" class="outline-3">
<h3 id="orgebba910">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgebba910">
<div id="outline-container-orgc77ced4" class="outline-3">
<h3 id="orgc77ced4">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgc77ced4">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1102,9 +1101,9 @@ This Matlab function is accessible <a href="../src/initializeAmplifiedStrutDynam
</p>
</div>
<div id="outline-container-org70c61fd" class="outline-3">
<h3 id="org70c61fd">Documentation</h3>
<div class="outline-text-3" id="text-org70c61fd">
<div id="outline-container-orgb4491ea" class="outline-3">
<h3 id="orgb4491ea">Documentation</h3>
<div class="outline-text-3" id="text-orgb4491ea">
<p>
An amplified piezoelectric actuator is shown in Figure <a href="#orgab58ac0">7</a>.
</p>
@@ -1137,9 +1136,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org7a
</div>
</div>
<div id="outline-container-org4b8bd84" class="outline-3">
<h3 id="org4b8bd84">Function description</h3>
<div class="outline-text-3" id="text-org4b8bd84">
<div id="outline-container-org32024c4" class="outline-3">
<h3 id="org32024c4">Function description</h3>
<div class="outline-text-3" id="text-org32024c4">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeAmplifiedStrutDynamics(stewart, args)
% initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut
@@ -1167,9 +1166,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org7a
</div>
</div>
<div id="outline-container-org94cace2" class="outline-3">
<h3 id="org94cace2">Optional Parameters</h3>
<div class="outline-text-3" id="text-org94cace2">
<div id="outline-container-orgb9c096a" class="outline-3">
<h3 id="orgb9c096a">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgb9c096a">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1194,9 +1193,9 @@ C = args.Ca + args.Cr;
</div>
</div>
<div id="outline-container-orgee22bea" class="outline-3">
<h3 id="orgee22bea">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-orgee22bea">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 2;
@@ -1226,9 +1225,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</p>
</div>
<div id="outline-container-orgc806fca" class="outline-3">
<h3 id="orgc806fca">Function description</h3>
<div class="outline-text-3" id="text-orgc806fca">
<div id="outline-container-org9987af0" class="outline-3">
<h3 id="org9987af0">Function description</h3>
<div class="outline-text-3" id="text-org9987af0">
<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
@@ -1267,9 +1266,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</div>
</div>
<div id="outline-container-org4403345" class="outline-3">
<h3 id="org4403345">Optional Parameters</h3>
<div class="outline-text-3" id="text-org4403345">
<div id="outline-container-orgfa09700" class="outline-3">
<h3 id="orgfa09700">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgfa09700">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1477,9 +1476,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-orgdf893fa" class="outline-3">
<h3 id="orgdf893fa">Function description</h3>
<div class="outline-text-3" id="text-orgdf893fa">
<div id="outline-container-orgf891c99" class="outline-3">
<h3 id="orgf891c99">Function description</h3>
<div class="outline-text-3" id="text-orgf891c99">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = initializeInertialSensor(stewart, args)
% initializeInertialSensor - Initialize the inertial sensor in each strut
@@ -1505,9 +1504,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-org1a86834" class="outline-3">
<h3 id="org1a86834">Optional Parameters</h3>
<div class="outline-text-3" id="text-org1a86834">
<div id="outline-container-org3120ee8" class="outline-3">
<h3 id="org3120ee8">Optional Parameters</h3>
<div class="outline-text-3" id="text-org3120ee8">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1548,9 +1547,9 @@ end
</div>
</div>
<div id="outline-container-org5ee57cc" class="outline-3">
<h3 id="org5ee57cc">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org5ee57cc">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.sensors.inertial = sensor;
</pre>
@@ -1571,9 +1570,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</p>
</div>
<div id="outline-container-org763a2e4" class="outline-3">
<h3 id="org763a2e4">Function description</h3>
<div class="outline-text-3" id="text-org763a2e4">
<div id="outline-container-org84f3d13" class="outline-3">
<h3 id="org84f3d13">Function description</h3>
<div class="outline-text-3" id="text-org84f3d13">
<div class="org-src-container">
<pre class="src src-matlab">function [] = displayArchitecture(stewart, args)
% displayArchitecture - 3D plot of the Stewart platform architecture
@@ -1602,9 +1601,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div>
</div>
<div id="outline-container-orgfefbc0b" class="outline-3">
<h3 id="orgfefbc0b">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgfefbc0b">
<div id="outline-container-org74d4ce4" class="outline-3">
<h3 id="org74d4ce4">Optional Parameters</h3>
<div class="outline-text-3" id="text-org74d4ce4">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -1625,9 +1624,9 @@ end
</div>
</div>
<div id="outline-container-org49ecb6b" class="outline-3">
<h3 id="org49ecb6b">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org49ecb6b">
<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 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;
@@ -1965,9 +1964,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</p>
</div>
<div id="outline-container-orgea76862" class="outline-3">
<h3 id="orgea76862">Function description</h3>
<div class="outline-text-3" id="text-orgea76862">
<div id="outline-container-org6e4f9f6" class="outline-3">
<h3 id="org6e4f9f6">Function description</h3>
<div class="outline-text-3" id="text-org6e4f9f6">
<div class="org-src-container">
<pre class="src src-matlab">function [] = describeStewartPlatform(stewart)
% describeStewartPlatform - Display some text describing the current defined Stewart Platform
@@ -1983,9 +1982,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</div>
</div>
<div id="outline-container-org8ead6fb" class="outline-3">
<h3 id="org8ead6fb">Optional Parameters</h3>
<div class="outline-text-3" id="text-org8ead6fb">
<div id="outline-container-org1dcd763" class="outline-3">
<h3 id="org1dcd763">Optional Parameters</h3>
<div class="outline-text-3" id="text-org1dcd763">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2134,9 +2133,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</p>
</div>
<div id="outline-container-org458448a" class="outline-3">
<h3 id="org458448a">Function description</h3>
<div class="outline-text-3" id="text-org458448a">
<div id="outline-container-org56bb069" class="outline-3">
<h3 id="org56bb069">Function description</h3>
<div class="outline-text-3" id="text-org56bb069">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = generateCubicConfiguration(stewart, args)
% generateCubicConfiguration - Generate a Cubic Configuration
@@ -2161,9 +2160,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</div>
</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="org70070f0" class="figure">
<p><img src="figs/cubic-configuration-definition.png" alt="cubic-configuration-definition.png" />
@@ -2173,9 +2172,9 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
</div>
</div>
<div id="outline-container-org56ed950" class="outline-3">
<h3 id="org56ed950">Optional Parameters</h3>
<div class="outline-text-3" id="text-org56ed950">
<div id="outline-container-org9269fce" class="outline-3">
<h3 id="org9269fce">Optional Parameters</h3>
<div class="outline-text-3" id="text-org9269fce">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2189,9 +2188,9 @@ end
</div>
</div>
<div id="outline-container-org341a5bd" class="outline-3">
<h3 id="org341a5bd">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org341a5bd">
<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 class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'H'), 'stewart.geometry should have attribute H')
H = stewart.geometry.H;
@@ -2226,9 +2225,9 @@ CCm = [Cc(:,2), Cc(:,2), Cc(:,4), Cc(:,4), Cc(:,6), Cc(:,6)]; % CCm(:,i) corresp
</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">
<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>
@@ -2248,9 +2247,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-org503addd" class="outline-3">
<h3 id="org503addd">Populate the <code>stewart</code> structure</h3>
<div class="outline-text-3" id="text-org503addd">
<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 class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@@ -2272,9 +2271,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</p>
</div>
<div id="outline-container-orga999616" class="outline-3">
<h3 id="orga999616">Function description</h3>
<div class="outline-text-3" id="text-orga999616">
<div id="outline-container-org9b984be" class="outline-3">
<h3 id="org9b984be">Function description</h3>
<div class="outline-text-3" id="text-org9b984be">
<div class="org-src-container">
<pre class="src src-matlab">function [stewart] = computeJacobian(stewart)
% computeJacobian -
@@ -2297,9 +2296,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</div>
</div>
<div id="outline-container-orgac50fa7" class="outline-3">
<h3 id="orgac50fa7">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-orgac50fa7">
<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 class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'As'), 'stewart.geometry should have attribute As')
As = stewart.geometry.As;
@@ -2345,9 +2344,9 @@ Ki = stewart.actuators.K;
</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.kinematics.J = J;
stewart.kinematics.K = K;
@@ -2407,9 +2406,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-orgd247ad5" class="outline-3">
<h3 id="orgd247ad5">Function description</h3>
<div class="outline-text-3" id="text-orgd247ad5">
<div id="outline-container-org988305f" class="outline-3">
<h3 id="org988305f">Function description</h3>
<div class="outline-text-3" id="text-org988305f">
<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}
@@ -2433,9 +2432,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org3259665" class="outline-3">
<h3 id="org3259665">Optional Parameters</h3>
<div class="outline-text-3" id="text-org3259665">
<div id="outline-container-org954d921" class="outline-3">
<h3 id="org954d921">Optional Parameters</h3>
<div class="outline-text-3" id="text-org954d921">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@@ -2447,9 +2446,9 @@ end
</div>
</div>
<div id="outline-container-org4ca8cd1" class="outline-3">
<h3 id="org4ca8cd1">Check the <code>stewart</code> structure elements</h3>
<div class="outline-text-3" id="text-org4ca8cd1">
<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 class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, 'Aa'), 'stewart.geometry should have attribute Aa')
Aa = stewart.geometry.Aa;
@@ -2493,9 +2492,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</p>
</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 [P, R] = forwardKinematicsApprox(stewart, args)
% forwardKinematicsApprox - Computed the approximate pose of {B} with respect to {A} from the length of each strut and using
@@ -2517,9 +2516,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</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
@@ -2530,9 +2529,9 @@ end
</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.kinematics, 'J'), 'stewart.kinematics should have attribute J')
J = stewart.kinematics.J;
@@ -2587,7 +2586,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-05 mar. 10:34</p>
<p class="date">Created: 2020-05-20 mer. 15:49</p>
</div>
</body>
</html>

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. 10:33 -->
<!-- 2020-05-20 mer. 15:49 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Determination of the optimal nano-hexapod&rsquo;s stiffness</title>
<meta name="generator" content="Org mode" />
@@ -37,7 +36,7 @@
<ul>
<li><a href="#org157c07d">1. Spindle Rotation Speed</a>
<ul>
<li><a href="#orgd45a5be">1.1. Initialization</a></li>
<li><a href="#org654fcb6">1.1. Initialization</a></li>
<li><a href="#org687bdef">1.2. Identification when rotating at maximum speed</a></li>
<li><a href="#org7dcfddb">1.3. Change of dynamics</a></li>
</ul>
@@ -52,7 +51,7 @@
</li>
<li><a href="#org19559b0">3. Payload &ldquo;Impedance&rdquo; Effect</a>
<ul>
<li><a href="#org654fcb6">3.1. Initialization</a></li>
<li><a href="#orgd20f43d">3.1. Initialization</a></li>
<li><a href="#org73f1c6e">3.2. Identification of the dynamics while change the payload dynamics</a></li>
<li><a href="#orgd7a519b">3.3. Change of dynamics for the primary controller</a>
<ul>
@@ -109,8 +108,8 @@ The rotation speed will have an effect due to the Coriolis effect.
</p>
</div>
<div id="outline-container-orgd45a5be" class="outline-3">
<h3 id="orgd45a5be"><span class="section-number-3">1.1</span> Initialization</h3>
<div id="outline-container-org654fcb6" class="outline-3">
<h3 id="org654fcb6"><span class="section-number-3">1.1</span> Initialization</h3>
<div class="outline-text-3" id="text-1-1">
<p>
We initialize all the stages with the default parameters.
@@ -386,8 +385,8 @@ When the nano-hexapod is stiff (\(k>10^7\ [N/m]\)), the compliance of the micro-
</p>
</div>
<div id="outline-container-org654fcb6" class="outline-3">
<h3 id="org654fcb6"><span class="section-number-3">3.1</span> Initialization</h3>
<div id="outline-container-orgd20f43d" class="outline-3">
<h3 id="orgd20f43d"><span class="section-number-3">3.1</span> Initialization</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We initialize all the stages with the default parameters.
@@ -470,7 +469,7 @@ We can see two mass lines for the soft nano-hexapod (Figure <a href="#org00db693
<div id="org00db693" class="figure">
<p><img src="figs/opt_stiffness_payload_freq_fz_dz.png" alt="opt_stiffness_payload_freq_fz_dz.png" />
</p>
<p><span class="figure-number">Figure 11: </span>Dynamics from \(\mathcal{F}_z\) to \(\mathcal{X}_z\) for varying payload resonance frequency, both for a soft nano-hexapod and a stiff nano-hexapod (<a href="./figs/opt_stiffness_payload_freq_fz_dz.png">png</a>, <a href="./figs/opt_stiffness_payload_freq_fz_dz.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 11: </span>Dynamics from \(\mathcal{F}_z\) to \(\mathcal{X}_z\) for varying payload resonance frequency, both for a soft nano-hexapod and a stiff nano-hexapod</p>
</div>
@@ -507,7 +506,7 @@ We can see here that for the soft nano-hexapod:
<div id="orga1343a7" class="figure">
<p><img src="figs/opt_stiffness_payload_mass_fz_dz.png" alt="opt_stiffness_payload_mass_fz_dz.png" />
</p>
<p><span class="figure-number">Figure 13: </span>Dynamics from \(\mathcal{F}_z\) to \(\mathcal{X}_z\) for varying payload mass, both for a soft nano-hexapod and a stiff nano-hexapod (<a href="./figs/opt_stiffness_payload_mass_fz_dz.png">png</a>, <a href="./figs/opt_stiffness_payload_mass_fz_dz.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 13: </span>Dynamics from \(\mathcal{F}_z\) to \(\mathcal{X}_z\) for varying payload mass, both for a soft nano-hexapod and a stiff nano-hexapod</p>
</div>
@@ -629,7 +628,7 @@ And finally, in Figures <a href="#orge05feb5">21</a> and <a href="#org17c5c95">2
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-05-05 mar. 10:33</p>
<p class="date">Created: 2020-05-20 mer. 15:49</p>
</div>
</body>
</html>