Move accelerometer/geophone explaination

This commit is contained in:
Thomas Dehaeze 2020-02-13 15:48:03 +01:00
parent 024dc922ce
commit c947ed116f
4 changed files with 298 additions and 446 deletions

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2020-02-13 jeu. 14:42 --> <!-- 2020-02-13 jeu. 15:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Simscape Model</title> <title>Stewart Platform - Simscape Model</title>
@ -281,32 +281,20 @@ for the JavaScript code in this tag.
<ul> <ul>
<li><a href="#org3535b6d">6.1. Payload</a> <li><a href="#org3535b6d">6.1. Payload</a>
<ul> <ul>
<li><a href="#orgf4d7716">Function description</a></li> <li><a href="#org706f994">Function description</a></li>
<li><a href="#org071708c">Optional Parameters</a></li> <li><a href="#orgb15b49f">Optional Parameters</a></li>
<li><a href="#orgeeb8d35">Add Payload Type</a></li> <li><a href="#orgeeb8d35">Add Payload Type</a></li>
<li><a href="#org6d52ffc">Add Stiffness, Damping and Mass properties of the Payload</a></li> <li><a href="#org6d52ffc">Add Stiffness, Damping and Mass properties of the Payload</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgaaed406">6.2. Ground</a> <li><a href="#orgaaed406">6.2. Ground</a>
<ul> <ul>
<li><a href="#org706f994">Function description</a></li> <li><a href="#orge7f39a8">Function description</a></li>
<li><a href="#orgb15b49f">Optional Parameters</a></li> <li><a href="#orgb83df72">Optional Parameters</a></li>
<li><a href="#orgef7035d">Add Ground Type</a></li> <li><a href="#orgef7035d">Add Ground Type</a></li>
<li><a href="#org95633e8">Add Stiffness and Damping properties of the Ground</a></li> <li><a href="#org95633e8">Add Stiffness and Damping properties of the Ground</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org4bdfc33">6.3. Z-Axis Geophone</a>
<ul>
<li><a href="#orgf6e6126">6.3.1. Working Principle</a></li>
<li><a href="#org7b9c8ed">6.3.2. Initialization function</a></li>
</ul>
</li>
<li><a href="#org99786f1">6.4. Z-Axis Accelerometer</a>
<ul>
<li><a href="#org64fd353">6.4.1. Working Principle</a></li>
<li><a href="#orge8bb0f7">6.4.2. Initialization function</a></li>
</ul>
</li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -537,9 +525,9 @@ This Matlab function is accessible <a href="../src/initializePayload.m">here</a>
</p> </p>
</div> </div>
<div id="outline-container-orgf4d7716" class="outline-4"> <div id="outline-container-org706f994" class="outline-4">
<h4 id="orgf4d7716">Function description</h4> <h4 id="org706f994">Function description</h4>
<div class="outline-text-4" id="text-orgf4d7716"> <div class="outline-text-4" id="text-org706f994">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[payload]</span> = <span class="org-function-name">initializePayload</span>(<span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[payload]</span> = <span class="org-function-name">initializePayload</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% initializePayload - Initialize the Payload that can then be used for simulations and analysis</span> <span class="org-comment">% initializePayload - Initialize the Payload that can then be used for simulations and analysis</span>
@ -569,9 +557,9 @@ This Matlab function is accessible <a href="../src/initializePayload.m">here</a>
</div> </div>
</div> </div>
<div id="outline-container-org071708c" class="outline-4"> <div id="outline-container-orgb15b49f" class="outline-4">
<h4 id="org071708c">Optional Parameters</h4> <h4 id="orgb15b49f">Optional Parameters</h4>
<div class="outline-text-4" id="text-org071708c"> <div class="outline-text-4" id="text-orgb15b49f">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
args.type char {mustBeMember(args.type,{<span class="org-string">'none'</span>, <span class="org-string">'solid'</span>, <span class="org-string">'flexible'</span>, <span class="org-string">'cartesian'</span>})} = <span class="org-string">'none'</span> args.type char {mustBeMember(args.type,{<span class="org-string">'none'</span>, <span class="org-string">'solid'</span>, <span class="org-string">'flexible'</span>, <span class="org-string">'cartesian'</span>})} = <span class="org-string">'none'</span>
@ -633,9 +621,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</p> </p>
</div> </div>
<div id="outline-container-org706f994" class="outline-4"> <div id="outline-container-orge7f39a8" class="outline-4">
<h4 id="org706f994">Function description</h4> <h4 id="orge7f39a8">Function description</h4>
<div class="outline-text-4" id="text-org706f994"> <div class="outline-text-4" id="text-orge7f39a8">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[ground]</span> = <span class="org-function-name">initializeGround</span>(<span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[ground]</span> = <span class="org-function-name">initializeGround</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% initializeGround - Initialize the Ground that can then be used for simulations and analysis</span> <span class="org-comment">% initializeGround - Initialize the Ground that can then be used for simulations and analysis</span>
@ -658,9 +646,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</div> </div>
</div> </div>
<div id="outline-container-orgb15b49f" class="outline-4"> <div id="outline-container-orgb83df72" class="outline-4">
<h4 id="orgb15b49f">Optional Parameters</h4> <h4 id="orgb83df72">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgb15b49f"> <div class="outline-text-4" id="text-orgb83df72">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
args.type char {mustBeMember(args.type,{<span class="org-string">'none'</span>, <span class="org-string">'solid'</span>, <span class="org-string">'flexible'</span>})} = <span class="org-string">'none'</span> args.type char {mustBeMember(args.type,{<span class="org-string">'none'</span>, <span class="org-string">'solid'</span>, <span class="org-string">'flexible'</span>})} = <span class="org-string">'none'</span>
@ -700,168 +688,11 @@ ground.C = args.C;
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org4bdfc33" class="outline-3">
<h3 id="org4bdfc33"><span class="section-number-3">6.3</span> Z-Axis Geophone</h3>
<div class="outline-text-3" id="text-6-3">
</div>
<div id="outline-container-orgf6e6126" class="outline-4">
<h4 id="orgf6e6126"><span class="section-number-4">6.3.1</span> Working Principle</h4>
<div class="outline-text-4" id="text-6-3-1">
<p>
From the schematic of the Z-axis geophone shown in Figure <a href="#org819fba8">5</a>, we can write the transfer function from the support velocity \(\dot{w}\) to the relative velocity of the inertial mass \(\dot{d}\):
\[ \frac{\dot{d}}{\dot{w}} = \frac{-\frac{s^2}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \]
with:
</p>
<ul class="org-ul">
<li>\(\omega_0 = \sqrt{\frac{k}{m}}\)</li>
<li>\(\xi = \frac{1}{2} \sqrt{\frac{m}{k}}\)</li>
</ul>
<div id="org819fba8" class="figure">
<p><img src="figs/inertial_sensor.png" alt="inertial_sensor.png" />
</p>
<p><span class="figure-number">Figure 5: </span>Schematic of a Z-Axis geophone</p>
</div>
<p>
We see that at frequencies above \(\omega_0\):
\[ \frac{\dot{d}}{\dot{w}} \approx -1 \]
</p>
<p>
And thus, the measurement of the relative velocity of the mass with respect to its support gives the absolute velocity of the support.
</p>
<p>
We generally want to have the smallest resonant frequency \(\omega_0\) to measure low frequency absolute velocity, however there is a trade-off between \(\omega_0\) and the mass of the inertial mass.
</p>
</div>
</div>
<div id="outline-container-org7b9c8ed" class="outline-4">
<h4 id="org7b9c8ed"><span class="section-number-4">6.3.2</span> Initialization function</h4>
<div class="outline-text-4" id="text-6-3-2">
<p>
<a id="orgd31bda9"></a>
</p>
<p>
This Matlab function is accessible <a href="../src/initializeZAxisGeophone.m">here</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[geophone]</span> = <span class="org-function-name">initializeZAxisGeophone</span>(<span class="org-variable-name">args</span>)
arguments
args.mass (1,1) double {mustBeNumeric, mustBePositive} = 1e<span class="org-type">-</span>3 <span class="org-comment">% [kg]</span>
args.freq (1,1) double {mustBeNumeric, mustBePositive} = 1 <span class="org-comment">% [Hz]</span>
<span class="org-keyword">end</span>
<span class="org-matlab-cellbreak"><span class="org-comment">%%</span></span>
geophone.m = args.mass;
<span class="org-matlab-cellbreak"><span class="org-comment">%% The Stiffness is set to have the damping resonance frequency</span></span>
geophone.k = geophone.m <span class="org-type">*</span> (2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>args.freq)<span class="org-type">^</span>2;
<span class="org-matlab-cellbreak"><span class="org-comment">%% We set the damping value to have critical damping</span></span>
geophone.c = 2<span class="org-type">*</span>sqrt(geophone.m <span class="org-type">*</span> geophone.k);
<span class="org-matlab-cellbreak"><span class="org-comment">%% Save</span></span>
save(<span class="org-string">'./mat/geophone_z_axis.mat'</span>, <span class="org-string">'geophone'</span>);
<span class="org-keyword">end</span>
</pre>
</div>
</div>
</div>
</div>
<div id="outline-container-org99786f1" class="outline-3">
<h3 id="org99786f1"><span class="section-number-3">6.4</span> Z-Axis Accelerometer</h3>
<div class="outline-text-3" id="text-6-4">
</div>
<div id="outline-container-org64fd353" class="outline-4">
<h4 id="org64fd353"><span class="section-number-4">6.4.1</span> Working Principle</h4>
<div class="outline-text-4" id="text-6-4-1">
<p>
From the schematic of the Z-axis accelerometer shown in Figure <a href="#org1274602">6</a>, we can write the transfer function from the support acceleration \(\ddot{w}\) to the relative position of the inertial mass \(d\):
\[ \frac{d}{\ddot{w}} = \frac{-\frac{1}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \]
with:
</p>
<ul class="org-ul">
<li>\(\omega_0 = \sqrt{\frac{k}{m}}\)</li>
<li>\(\xi = \frac{1}{2} \sqrt{\frac{m}{k}}\)</li>
</ul>
<div id="org1274602" class="figure">
<p><img src="figs/inertial_sensor.png" alt="inertial_sensor.png" />
</p>
<p><span class="figure-number">Figure 6: </span>Schematic of a Z-Axis geophone</p>
</div>
<p>
We see that at frequencies below \(\omega_0\):
\[ \frac{d}{\ddot{w}} \approx -\frac{1}{{\omega_0}^2} \]
</p>
<p>
And thus, the measurement of the relative displacement of the mass with respect to its support gives the absolute acceleration of the support.
</p>
<p>
Note that there is trade-off between:
</p>
<ul class="org-ul">
<li>the highest measurable acceleration \(\omega_0\)</li>
<li>the sensitivity of the accelerometer which is equal to \(-\frac{1}{{\omega_0}^2}\)</li>
</ul>
</div>
</div>
<div id="outline-container-orge8bb0f7" class="outline-4">
<h4 id="orge8bb0f7"><span class="section-number-4">6.4.2</span> Initialization function</h4>
<div class="outline-text-4" id="text-6-4-2">
<p>
<a id="orge91f65f"></a>
</p>
<p>
This Matlab function is accessible <a href="../src/initializeZAxisAccelerometer.m">here</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[accelerometer]</span> = <span class="org-function-name">initializeZAxisAccelerometer</span>(<span class="org-variable-name">args</span>)
arguments
args.mass (1,1) double {mustBeNumeric, mustBePositive} = 5e<span class="org-type">-</span>3 <span class="org-comment">% [kg]</span>
args.freq (1,1) double {mustBeNumeric, mustBePositive} = 5e3 <span class="org-comment">% [Hz]</span>
<span class="org-keyword">end</span>
<span class="org-matlab-cellbreak"><span class="org-comment">%%</span></span>
accelerometer.m = args.mass;
<span class="org-matlab-cellbreak"><span class="org-comment">%% The Stiffness is set to have the damping resonance frequency</span></span>
accelerometer.k = accelerometer.m <span class="org-type">*</span> (2<span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>args.freq)<span class="org-type">^</span>2;
<span class="org-matlab-cellbreak"><span class="org-comment">%% We set the damping value to have critical damping</span></span>
accelerometer.c = 2<span class="org-type">*</span>sqrt(accelerometer.m <span class="org-type">*</span> accelerometer.k);
<span class="org-matlab-cellbreak"><span class="org-comment">%% Gain correction of the accelerometer to have a unity gain until the resonance</span></span>
accelerometer.gain = <span class="org-type">-</span>accelerometer.k<span class="org-type">/</span>accelerometer.m;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Save</span></span>
save(<span class="org-string">'./mat/accelerometer_z_axis.mat'</span>, <span class="org-string">'accelerometer'</span>);
<span class="org-keyword">end</span>
</pre>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-13 jeu. 14:42</p> <p class="date">Created: 2020-02-13 jeu. 15:47</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2020-02-12 mer. 14:16 --> <!-- 2020-02-13 jeu. 15:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Definition of the Architecture</title> <title>Stewart Platform - Definition of the Architecture</title>
@ -297,85 +297,85 @@ for the JavaScript code in this tag.
<ul> <ul>
<li><a href="#orgd89f0e1">5.1. <code>initializeStewartPlatform</code>: Initialize the Stewart Platform structure</a> <li><a href="#orgd89f0e1">5.1. <code>initializeStewartPlatform</code>: Initialize the Stewart Platform structure</a>
<ul> <ul>
<li><a href="#org7e0b516">Documentation</a></li> <li><a href="#org56918f3">Documentation</a></li>
<li><a href="#org51076d4">Function description</a></li> <li><a href="#org2bf8771">Function description</a></li>
<li><a href="#orgd567fc1">Initialize the Stewart structure</a></li> <li><a href="#orgd567fc1">Initialize the Stewart structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgb11894c">5.2. <code>initializeFramesPositions</code>: Initialize the positions of frames {A}, {B}, {F} and {M}</a> <li><a href="#orgb11894c">5.2. <code>initializeFramesPositions</code>: Initialize the positions of frames {A}, {B}, {F} and {M}</a>
<ul> <ul>
<li><a href="#org9ab3ee7">Documentation</a></li> <li><a href="#org75e004e">Documentation</a></li>
<li><a href="#org9e0f060">Function description</a></li> <li><a href="#org961f34d">Function description</a></li>
<li><a href="#org6a57a47">Optional Parameters</a></li> <li><a href="#org2259cf3">Optional Parameters</a></li>
<li><a href="#org458592e">Compute the position of each frame</a></li> <li><a href="#org458592e">Compute the position of each frame</a></li>
<li><a href="#org31b0fc0">Populate the <code>stewart</code> structure</a></li> <li><a href="#org46c0939">Populate the <code>stewart</code> structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org9057387">5.3. <code>generateGeneralConfiguration</code>: Generate a Very General Configuration</a> <li><a href="#org9057387">5.3. <code>generateGeneralConfiguration</code>: Generate a Very General Configuration</a>
<ul> <ul>
<li><a href="#org0272259">Documentation</a></li> <li><a href="#org35cd468">Documentation</a></li>
<li><a href="#orgbd08cb7">Function description</a></li> <li><a href="#org5e67fec">Function description</a></li>
<li><a href="#orgfade903">Optional Parameters</a></li> <li><a href="#org552a968">Optional Parameters</a></li>
<li><a href="#org232e4c2">Compute the pose</a></li> <li><a href="#org232e4c2">Compute the pose</a></li>
<li><a href="#org67d9f70">Populate the <code>stewart</code> structure</a></li> <li><a href="#org08036be">Populate the <code>stewart</code> structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org861f6de">5.4. <code>computeJointsPose</code>: Compute the Pose of the Joints</a> <li><a href="#org861f6de">5.4. <code>computeJointsPose</code>: Compute the Pose of the Joints</a>
<ul> <ul>
<li><a href="#org7f013d7">Documentation</a></li> <li><a href="#org310340f">Documentation</a></li>
<li><a href="#orgfb0d4ad">Function description</a></li> <li><a href="#orgb68ba66">Function description</a></li>
<li><a href="#org7bc221e">Check the <code>stewart</code> structure elements</a></li> <li><a href="#org2318f9d">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org52b0d4c">Compute the position of the Joints</a></li> <li><a href="#org52b0d4c">Compute the position of the Joints</a></li>
<li><a href="#org4b76b0f">Compute the strut length and orientation</a></li> <li><a href="#org4b76b0f">Compute the strut length and orientation</a></li>
<li><a href="#orgd621d5e">Compute the orientation of the Joints</a></li> <li><a href="#orgd621d5e">Compute the orientation of the Joints</a></li>
<li><a href="#orgc7895ed">Populate the <code>stewart</code> structure</a></li> <li><a href="#org85f125f">Populate the <code>stewart</code> structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org329bef9">5.5. <code>initializeStewartPose</code>: Determine the initial stroke in each leg to have the wanted pose</a> <li><a href="#org329bef9">5.5. <code>initializeStewartPose</code>: Determine the initial stroke in each leg to have the wanted pose</a>
<ul> <ul>
<li><a href="#org67023b1">Function description</a></li> <li><a href="#orge9eed8d">Function description</a></li>
<li><a href="#org1173285">Optional Parameters</a></li> <li><a href="#org2ecb2be">Optional Parameters</a></li>
<li><a href="#org3d3ef62">Use the Inverse Kinematic function</a></li> <li><a href="#org3d3ef62">Use the Inverse Kinematic function</a></li>
<li><a href="#orgd1a2f9c">Populate the <code>stewart</code> structure</a></li> <li><a href="#org91a0531">Populate the <code>stewart</code> structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org6ff5b31">5.6. <code>initializeCylindricalPlatforms</code>: Initialize the geometry of the Fixed and Mobile Platforms</a> <li><a href="#org6ff5b31">5.6. <code>initializeCylindricalPlatforms</code>: Initialize the geometry of the Fixed and Mobile Platforms</a>
<ul> <ul>
<li><a href="#orge50412f">Function description</a></li> <li><a href="#org7a76b52">Function description</a></li>
<li><a href="#org0be1736">Optional Parameters</a></li> <li><a href="#orgd2ac20d">Optional Parameters</a></li>
<li><a href="#org25a390a">Compute the Inertia matrices of platforms</a></li> <li><a href="#org25a390a">Compute the Inertia matrices of platforms</a></li>
<li><a href="#org7396a3c">Populate the <code>stewart</code> structure</a></li> <li><a href="#org54ca25a">Populate the <code>stewart</code> structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org60aa215">5.7. <code>initializeCylindricalStruts</code>: Define the inertia of cylindrical struts</a> <li><a href="#org60aa215">5.7. <code>initializeCylindricalStruts</code>: Define the inertia of cylindrical struts</a>
<ul> <ul>
<li><a href="#org3e05aa9">Function description</a></li> <li><a href="#orge902b6c">Function description</a></li>
<li><a href="#org0447834">Optional Parameters</a></li> <li><a href="#org9ed68cb">Optional Parameters</a></li>
<li><a href="#orgc056498">Compute the properties of the cylindrical struts</a></li> <li><a href="#orgc056498">Compute the properties of the cylindrical struts</a></li>
<li><a href="#org3e2ac57">Populate the <code>stewart</code> structure</a></li> <li><a href="#org4e084f4">Populate the <code>stewart</code> structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org3ad0cd1">5.8. <code>initializeStrutDynamics</code>: Add Stiffness and Damping properties of each strut</a> <li><a href="#org3ad0cd1">5.8. <code>initializeStrutDynamics</code>: Add Stiffness and Damping properties of each strut</a>
<ul> <ul>
<li><a href="#org53a2929">Documentation</a></li> <li><a href="#orgfbed90c">Documentation</a></li>
<li><a href="#org1ab40de">Function description</a></li> <li><a href="#org6f66ea1">Function description</a></li>
<li><a href="#org21f3e3c">Optional Parameters</a></li> <li><a href="#org5acb074">Optional Parameters</a></li>
<li><a href="#orgadb8327">Add Stiffness and Damping properties of each strut</a></li> <li><a href="#orgadb8327">Add Stiffness and Damping properties of each strut</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgd8d403e">5.9. <code>initializeAmplifiedStrutDynamics</code>: Add Stiffness and Damping properties of each strut for an amplified piezoelectric actuator</a> <li><a href="#orgd8d403e">5.9. <code>initializeAmplifiedStrutDynamics</code>: Add Stiffness and Damping properties of each strut for an amplified piezoelectric actuator</a>
<ul> <ul>
<li><a href="#org2d49efc">Documentation</a></li> <li><a href="#orga7c47bc">Documentation</a></li>
<li><a href="#orga83094e">Function description</a></li> <li><a href="#org899fc34">Function description</a></li>
<li><a href="#orgf97e68f">Optional Parameters</a></li> <li><a href="#orgc57dd52">Optional Parameters</a></li>
<li><a href="#org9b435e8">Compute the total stiffness and damping</a></li> <li><a href="#org9b435e8">Compute the total stiffness and damping</a></li>
<li><a href="#org2ca28bc">Populate the <code>stewart</code> structure</a></li> <li><a href="#org7a48c56">Populate the <code>stewart</code> structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgeb6173a">5.10. <code>initializeJointDynamics</code>: Add Stiffness and Damping properties for spherical joints</a> <li><a href="#orgeb6173a">5.10. <code>initializeJointDynamics</code>: Add Stiffness and Damping properties for spherical joints</a>
<ul> <ul>
<li><a href="#org92a2eb6">Function description</a></li> <li><a href="#orgbe1d3f6">Function description</a></li>
<li><a href="#org6de493f">Optional Parameters</a></li> <li><a href="#org3b77131">Optional Parameters</a></li>
<li><a href="#orgc6d4183">Add Actuator Type</a></li> <li><a href="#orgc6d4183">Add Actuator Type</a></li>
<li><a href="#orgc0e613c">Add Stiffness and Damping in Translation of each strut</a></li> <li><a href="#orgc0e613c">Add Stiffness and Damping in Translation of each strut</a></li>
<li><a href="#org04698fc">Add Stiffness and Damping in Rotation of each strut</a></li> <li><a href="#org04698fc">Add Stiffness and Damping in Rotation of each strut</a></li>
@ -383,17 +383,19 @@ for the JavaScript code in this tag.
</li> </li>
<li><a href="#orgea07e0e">5.11. <code>initializeInertialSensor</code>: Initialize the inertial sensor in each strut</a> <li><a href="#orgea07e0e">5.11. <code>initializeInertialSensor</code>: Initialize the inertial sensor in each strut</a>
<ul> <ul>
<li><a href="#org33251d6">Function description</a></li> <li><a href="#orgd667bbb">Geophone - Working Principle</a></li>
<li><a href="#org405e558">Optional Parameters</a></li> <li><a href="#orgca7729f">Accelerometer - Working Principle</a></li>
<li><a href="#org1eb17e3">Function description</a></li>
<li><a href="#orgc623e70">Optional Parameters</a></li>
<li><a href="#org463075d">Compute the properties of the sensor</a></li> <li><a href="#org463075d">Compute the properties of the sensor</a></li>
<li><a href="#orgfd7f4a6">Populate the <code>stewart</code> structure</a></li> <li><a href="#org55d115f">Populate the <code>stewart</code> structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org5266e9d">5.12. <code>displayArchitecture</code>: 3D plot of the Stewart platform architecture</a> <li><a href="#org5266e9d">5.12. <code>displayArchitecture</code>: 3D plot of the Stewart platform architecture</a>
<ul> <ul>
<li><a href="#orgbbfef24">Function description</a></li> <li><a href="#org59a5a2e">Function description</a></li>
<li><a href="#orgf940506">Optional Parameters</a></li> <li><a href="#org8bd5132">Optional Parameters</a></li>
<li><a href="#org12d315f">Check the <code>stewart</code> structure elements</a></li> <li><a href="#org92ac986">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgc088b18">Figure Creation, Frames and Homogeneous transformations</a></li> <li><a href="#orgc088b18">Figure Creation, Frames and Homogeneous transformations</a></li>
<li><a href="#orgc25a979">Fixed Base elements</a></li> <li><a href="#orgc25a979">Fixed Base elements</a></li>
<li><a href="#org8417772">Mobile Platform elements</a></li> <li><a href="#org8417772">Mobile Platform elements</a></li>
@ -843,11 +845,11 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</p> </p>
</div> </div>
<div id="outline-container-org7e0b516" class="outline-4"> <div id="outline-container-org56918f3" class="outline-4">
<h4 id="org7e0b516">Documentation</h4> <h4 id="org56918f3">Documentation</h4>
<div class="outline-text-4" id="text-org7e0b516"> <div class="outline-text-4" id="text-org56918f3">
<div id="org405cd8e" class="figure"> <div id="orgfeff460" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" /> <p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p> </p>
<p><span class="figure-number">Figure 7: </span>Definition of the position of the frames</p> <p><span class="figure-number">Figure 7: </span>Definition of the position of the frames</p>
@ -855,9 +857,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</div> </div>
</div> </div>
<div id="outline-container-org51076d4" class="outline-4"> <div id="outline-container-org2bf8771" class="outline-4">
<h4 id="org51076d4">Function description</h4> <h4 id="org2bf8771">Function description</h4>
<div class="outline-text-4" id="text-org51076d4"> <div class="outline-text-4" id="text-org2bf8771">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStewartPlatform</span>() <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStewartPlatform</span>()
<span class="org-comment">% initializeStewartPlatform - Initialize the stewart structure</span> <span class="org-comment">% initializeStewartPlatform - Initialize the stewart structure</span>
@ -916,11 +918,11 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</p> </p>
</div> </div>
<div id="outline-container-org9ab3ee7" class="outline-4"> <div id="outline-container-org75e004e" class="outline-4">
<h4 id="org9ab3ee7">Documentation</h4> <h4 id="org75e004e">Documentation</h4>
<div class="outline-text-4" id="text-org9ab3ee7"> <div class="outline-text-4" id="text-org75e004e">
<div id="orgf487bc2" class="figure"> <div id="org9d8b281" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" /> <p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p> </p>
<p><span class="figure-number">Figure 8: </span>Definition of the position of the frames</p> <p><span class="figure-number">Figure 8: </span>Definition of the position of the frames</p>
@ -928,9 +930,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div> </div>
</div> </div>
<div id="outline-container-org9e0f060" class="outline-4"> <div id="outline-container-org961f34d" class="outline-4">
<h4 id="org9e0f060">Function description</h4> <h4 id="org961f34d">Function description</h4>
<div class="outline-text-4" id="text-org9e0f060"> <div class="outline-text-4" id="text-org961f34d">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeFramesPositions</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeFramesPositions</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeFramesPositions - Initialize the positions of frames {A}, {B}, {F} and {M}</span> <span class="org-comment">% initializeFramesPositions - Initialize the positions of frames {A}, {B}, {F} and {M}</span>
@ -953,9 +955,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div> </div>
</div> </div>
<div id="outline-container-org6a57a47" class="outline-4"> <div id="outline-container-org2259cf3" class="outline-4">
<h4 id="org6a57a47">Optional Parameters</h4> <h4 id="org2259cf3">Optional Parameters</h4>
<div class="outline-text-4" id="text-org6a57a47"> <div class="outline-text-4" id="text-org2259cf3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -983,9 +985,9 @@ FO_A = MO_B <span class="org-type">+</span> FO_M; <span class="org-comment">% Po
</div> </div>
</div> </div>
<div id="outline-container-org31b0fc0" class="outline-4"> <div id="outline-container-org46c0939" class="outline-4">
<h4 id="org31b0fc0">Populate the <code>stewart</code> structure</h4> <h4 id="org46c0939">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org31b0fc0"> <div class="outline-text-4" id="text-org46c0939">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.H = H; <pre class="src src-matlab">stewart.geometry.H = H;
stewart.geometry.FO_M = FO_M; stewart.geometry.FO_M = FO_M;
@ -1009,9 +1011,9 @@ This Matlab function is accessible <a href="../src/generateGeneralConfiguration.
</p> </p>
</div> </div>
<div id="outline-container-org0272259" class="outline-4"> <div id="outline-container-org35cd468" class="outline-4">
<h4 id="org0272259">Documentation</h4> <h4 id="org35cd468">Documentation</h4>
<div class="outline-text-4" id="text-org0272259"> <div class="outline-text-4" id="text-org35cd468">
<p> <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}. 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="#org4c354b6">9</a>). The radius of the circles can be chosen as well as the angles where the joints are located (see Figure <a href="#org4c354b6">9</a>).
@ -1026,9 +1028,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div> </div>
</div> </div>
<div id="outline-container-orgbd08cb7" class="outline-4"> <div id="outline-container-org5e67fec" class="outline-4">
<h4 id="orgbd08cb7">Function description</h4> <h4 id="org5e67fec">Function description</h4>
<div class="outline-text-4" id="text-orgbd08cb7"> <div class="outline-text-4" id="text-org5e67fec">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">generateGeneralConfiguration</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">generateGeneralConfiguration</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% generateGeneralConfiguration - Generate a Very General Configuration</span> <span class="org-comment">% generateGeneralConfiguration - Generate a Very General Configuration</span>
@ -1053,9 +1055,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div> </div>
</div> </div>
<div id="outline-container-orgfade903" class="outline-4"> <div id="outline-container-org552a968" class="outline-4">
<h4 id="orgfade903">Optional Parameters</h4> <h4 id="org552a968">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgfade903"> <div class="outline-text-4" id="text-org552a968">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -1090,9 +1092,9 @@ Mb = zeros(3,6);
</div> </div>
</div> </div>
<div id="outline-container-org67d9f70" class="outline-4"> <div id="outline-container-org08036be" class="outline-4">
<h4 id="org67d9f70">Populate the <code>stewart</code> structure</h4> <h4 id="org08036be">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org67d9f70"> <div class="outline-text-4" id="text-org08036be">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa; <pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb; stewart.platform_M.Mb = Mb;
@ -1114,9 +1116,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</p> </p>
</div> </div>
<div id="outline-container-org7f013d7" class="outline-4"> <div id="outline-container-org310340f" class="outline-4">
<h4 id="org7f013d7">Documentation</h4> <h4 id="org310340f">Documentation</h4>
<div class="outline-text-4" id="text-org7f013d7"> <div class="outline-text-4" id="text-org310340f">
<div id="org8ffb841" class="figure"> <div id="org8ffb841" class="figure">
<p><img src="figs/stewart-struts.png" alt="stewart-struts.png" /> <p><img src="figs/stewart-struts.png" alt="stewart-struts.png" />
@ -1126,9 +1128,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div> </div>
</div> </div>
<div id="outline-container-orgfb0d4ad" class="outline-4"> <div id="outline-container-orgb68ba66" class="outline-4">
<h4 id="orgfb0d4ad">Function description</h4> <h4 id="orgb68ba66">Function description</h4>
<div class="outline-text-4" id="text-orgfb0d4ad"> <div class="outline-text-4" id="text-orgb68ba66">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">computeJointsPose</span>(<span class="org-variable-name">stewart</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">computeJointsPose</span>(<span class="org-variable-name">stewart</span>)
<span class="org-comment">% computeJointsPose -</span> <span class="org-comment">% computeJointsPose -</span>
@ -1161,9 +1163,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div> </div>
</div> </div>
<div id="outline-container-org7bc221e" class="outline-4"> <div id="outline-container-org2318f9d" class="outline-4">
<h4 id="org7bc221e">Check the <code>stewart</code> structure elements</h4> <h4 id="org2318f9d">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org7bc221e"> <div class="outline-text-4" id="text-org2318f9d">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.platform_F, <span class="org-string">'Fa'</span>), <span class="org-string">'stewart.platform_F should have attribute Fa'</span>) <pre class="src src-matlab">assert(isfield(stewart.platform_F, <span class="org-string">'Fa'</span>), <span class="org-string">'stewart.platform_F should have attribute Fa'</span>)
Fa = stewart.platform_F.Fa; Fa = stewart.platform_F.Fa;
@ -1234,9 +1236,9 @@ MRb = zeros(3,3,6);
</div> </div>
</div> </div>
<div id="outline-container-orgc7895ed" class="outline-4"> <div id="outline-container-org85f125f" class="outline-4">
<h4 id="orgc7895ed">Populate the <code>stewart</code> structure</h4> <h4 id="org85f125f">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgc7895ed"> <div class="outline-text-4" id="text-org85f125f">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.Aa = Aa; <pre class="src src-matlab">stewart.geometry.Aa = Aa;
stewart.geometry.Ab = Ab; stewart.geometry.Ab = Ab;
@ -1269,9 +1271,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</p> </p>
</div> </div>
<div id="outline-container-org67023b1" class="outline-4"> <div id="outline-container-orge9eed8d" class="outline-4">
<h4 id="org67023b1">Function description</h4> <h4 id="orge9eed8d">Function description</h4>
<div class="outline-text-4" id="text-org67023b1"> <div class="outline-text-4" id="text-orge9eed8d">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStewartPose</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStewartPose</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeStewartPose - Determine the initial stroke in each leg to have the wanted pose</span> <span class="org-comment">% initializeStewartPose - Determine the initial stroke in each leg to have the wanted pose</span>
@ -1295,9 +1297,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div> </div>
</div> </div>
<div id="outline-container-org1173285" class="outline-4"> <div id="outline-container-org2ecb2be" class="outline-4">
<h4 id="org1173285">Optional Parameters</h4> <h4 id="org2ecb2be">Optional Parameters</h4>
<div class="outline-text-4" id="text-org1173285"> <div class="outline-text-4" id="text-org2ecb2be">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -1319,9 +1321,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div> </div>
</div> </div>
<div id="outline-container-orgd1a2f9c" class="outline-4"> <div id="outline-container-org91a0531" class="outline-4">
<h4 id="orgd1a2f9c">Populate the <code>stewart</code> structure</h4> <h4 id="org91a0531">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgd1a2f9c"> <div class="outline-text-4" id="text-org91a0531">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.Leq = dLi; <pre class="src src-matlab">stewart.actuators.Leq = dLi;
</pre> </pre>
@ -1342,9 +1344,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</p> </p>
</div> </div>
<div id="outline-container-orge50412f" class="outline-4"> <div id="outline-container-org7a76b52" class="outline-4">
<h4 id="orge50412f">Function description</h4> <h4 id="org7a76b52">Function description</h4>
<div class="outline-text-4" id="text-orge50412f"> <div class="outline-text-4" id="text-org7a76b52">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeCylindricalPlatforms</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeCylindricalPlatforms</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms</span> <span class="org-comment">% initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms</span>
@ -1378,9 +1380,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div> </div>
</div> </div>
<div id="outline-container-org0be1736" class="outline-4"> <div id="outline-container-orgd2ac20d" class="outline-4">
<h4 id="org0be1736">Optional Parameters</h4> <h4 id="orgd2ac20d">Optional Parameters</h4>
<div class="outline-text-4" id="text-org0be1736"> <div class="outline-text-4" id="text-orgd2ac20d">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -1415,9 +1417,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div> </div>
</div> </div>
<div id="outline-container-org7396a3c" class="outline-4"> <div id="outline-container-org54ca25a" class="outline-4">
<h4 id="org7396a3c">Populate the <code>stewart</code> structure</h4> <h4 id="org54ca25a">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org7396a3c"> <div class="outline-text-4" id="text-org54ca25a">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.type = 1; <pre class="src src-matlab">stewart.platform_F.type = 1;
@ -1453,9 +1455,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</p> </p>
</div> </div>
<div id="outline-container-org3e05aa9" class="outline-4"> <div id="outline-container-orge902b6c" class="outline-4">
<h4 id="org3e05aa9">Function description</h4> <h4 id="orge902b6c">Function description</h4>
<div class="outline-text-4" id="text-org3e05aa9"> <div class="outline-text-4" id="text-orge902b6c">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeCylindricalStruts</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeCylindricalStruts</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts</span> <span class="org-comment">% initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts</span>
@ -1488,9 +1490,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</div> </div>
</div> </div>
<div id="outline-container-org0447834" class="outline-4"> <div id="outline-container-org9ed68cb" class="outline-4">
<h4 id="org0447834">Optional Parameters</h4> <h4 id="org9ed68cb">Optional Parameters</h4>
<div class="outline-text-4" id="text-org0447834"> <div class="outline-text-4" id="text-org9ed68cb">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -1538,9 +1540,9 @@ I_M = zeros(3, 3, 6); <span class="org-comment">% Inertia of the "mobile" part o
</div> </div>
</div> </div>
<div id="outline-container-org3e2ac57" class="outline-4"> <div id="outline-container-org4e084f4" class="outline-4">
<h4 id="org3e2ac57">Populate the <code>stewart</code> structure</h4> <h4 id="org4e084f4">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org3e2ac57"> <div class="outline-text-4" id="text-org4e084f4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.struts_M.type = 1; <pre class="src src-matlab">stewart.struts_M.type = 1;
@ -1576,9 +1578,9 @@ This Matlab function is accessible <a href="../src/initializeStrutDynamics.m">he
</p> </p>
</div> </div>
<div id="outline-container-org53a2929" class="outline-4"> <div id="outline-container-orgfbed90c" class="outline-4">
<h4 id="org53a2929">Documentation</h4> <h4 id="orgfbed90c">Documentation</h4>
<div class="outline-text-4" id="text-org53a2929"> <div class="outline-text-4" id="text-orgfbed90c">
<div id="orgbbfb204" class="figure"> <div id="orgbbfb204" class="figure">
<p><img src="figs/piezoelectric_stack.jpg" alt="piezoelectric_stack.jpg" width="500px" /> <p><img src="figs/piezoelectric_stack.jpg" alt="piezoelectric_stack.jpg" width="500px" />
@ -1607,9 +1609,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org62
</div> </div>
</div> </div>
<div id="outline-container-org1ab40de" class="outline-4"> <div id="outline-container-org6f66ea1" class="outline-4">
<h4 id="org1ab40de">Function description</h4> <h4 id="org6f66ea1">Function description</h4>
<div class="outline-text-4" id="text-org1ab40de"> <div class="outline-text-4" id="text-org6f66ea1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStrutDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStrutDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeStrutDynamics - Add Stiffness and Damping properties of each strut</span> <span class="org-comment">% initializeStrutDynamics - Add Stiffness and Damping properties of each strut</span>
@ -1631,9 +1633,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org62
</div> </div>
</div> </div>
<div id="outline-container-org21f3e3c" class="outline-4"> <div id="outline-container-org5acb074" class="outline-4">
<h4 id="org21f3e3c">Optional Parameters</h4> <h4 id="org5acb074">Optional Parameters</h4>
<div class="outline-text-4" id="text-org21f3e3c"> <div class="outline-text-4" id="text-org5acb074">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -1671,9 +1673,9 @@ This Matlab function is accessible <a href="../src/initializeAmplifiedStrutDynam
</p> </p>
</div> </div>
<div id="outline-container-org2d49efc" class="outline-4"> <div id="outline-container-orga7c47bc" class="outline-4">
<h4 id="org2d49efc">Documentation</h4> <h4 id="orga7c47bc">Documentation</h4>
<div class="outline-text-4" id="text-org2d49efc"> <div class="outline-text-4" id="text-orga7c47bc">
<p> <p>
An amplified piezoelectric actuator is shown in Figure <a href="#org9e7e9ad">13</a>. An amplified piezoelectric actuator is shown in Figure <a href="#org9e7e9ad">13</a>.
</p> </p>
@ -1706,9 +1708,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgcf
</div> </div>
</div> </div>
<div id="outline-container-orga83094e" class="outline-4"> <div id="outline-container-org899fc34" class="outline-4">
<h4 id="orga83094e">Function description</h4> <h4 id="org899fc34">Function description</h4>
<div class="outline-text-4" id="text-orga83094e"> <div class="outline-text-4" id="text-org899fc34">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeAmplifiedStrutDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeAmplifiedStrutDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut</span> <span class="org-comment">% initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut</span>
@ -1736,9 +1738,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgcf
</div> </div>
</div> </div>
<div id="outline-container-orgf97e68f" class="outline-4"> <div id="outline-container-orgc57dd52" class="outline-4">
<h4 id="orgf97e68f">Optional Parameters</h4> <h4 id="orgc57dd52">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgf97e68f"> <div class="outline-text-4" id="text-orgc57dd52">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -1763,9 +1765,9 @@ C = args.Ca <span class="org-type">+</span> args.Cr;
</div> </div>
</div> </div>
<div id="outline-container-org2ca28bc" class="outline-4"> <div id="outline-container-org7a48c56" class="outline-4">
<h4 id="org2ca28bc">Populate the <code>stewart</code> structure</h4> <h4 id="org7a48c56">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org2ca28bc"> <div class="outline-text-4" id="text-org7a48c56">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 2; <pre class="src src-matlab">stewart.actuators.type = 2;
@ -1795,9 +1797,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</p> </p>
</div> </div>
<div id="outline-container-org92a2eb6" class="outline-4"> <div id="outline-container-orgbe1d3f6" class="outline-4">
<h4 id="org92a2eb6">Function description</h4> <h4 id="orgbe1d3f6">Function description</h4>
<div class="outline-text-4" id="text-org92a2eb6"> <div class="outline-text-4" id="text-orgbe1d3f6">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeJointDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeJointDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeJointDynamics - Add Stiffness and Damping properties for the spherical joints</span> <span class="org-comment">% initializeJointDynamics - Add Stiffness and Damping properties for the spherical joints</span>
@ -1832,9 +1834,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</div> </div>
</div> </div>
<div id="outline-container-org6de493f" class="outline-4"> <div id="outline-container-org3b77131" class="outline-4">
<h4 id="org6de493f">Optional Parameters</h4> <h4 id="org3b77131">Optional Parameters</h4>
<div class="outline-text-4" id="text-org6de493f"> <div class="outline-text-4" id="text-org3b77131">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -1960,9 +1962,83 @@ This Matlab function is accessible <a href="../src/initializeInertialSensor.m">h
</p> </p>
</div> </div>
<div id="outline-container-org33251d6" class="outline-4"> <div id="outline-container-orgd667bbb" class="outline-4">
<h4 id="org33251d6">Function description</h4> <h4 id="orgd667bbb">Geophone - Working Principle</h4>
<div class="outline-text-4" id="text-org33251d6"> <div class="outline-text-4" id="text-orgd667bbb">
<p>
From the schematic of the Z-axis geophone shown in Figure <a href="#orge962c25">15</a>, we can write the transfer function from the support velocity \(\dot{w}\) to the relative velocity of the inertial mass \(\dot{d}\):
\[ \frac{\dot{d}}{\dot{w}} = \frac{-\frac{s^2}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \]
with:
</p>
<ul class="org-ul">
<li>\(\omega_0 = \sqrt{\frac{k}{m}}\)</li>
<li>\(\xi = \frac{1}{2} \sqrt{\frac{m}{k}}\)</li>
</ul>
<div id="orge962c25" class="figure">
<p><img src="figs/inertial_sensor.png" alt="inertial_sensor.png" />
</p>
<p><span class="figure-number">Figure 15: </span>Schematic of a Z-Axis geophone</p>
</div>
<p>
We see that at frequencies above \(\omega_0\):
\[ \frac{\dot{d}}{\dot{w}} \approx -1 \]
</p>
<p>
And thus, the measurement of the relative velocity of the mass with respect to its support gives the absolute velocity of the support.
</p>
<p>
We generally want to have the smallest resonant frequency \(\omega_0\) to measure low frequency absolute velocity, however there is a trade-off between \(\omega_0\) and the mass of the inertial mass.
</p>
</div>
</div>
<div id="outline-container-orgca7729f" class="outline-4">
<h4 id="orgca7729f">Accelerometer - Working Principle</h4>
<div class="outline-text-4" id="text-orgca7729f">
<p>
From the schematic of the Z-axis accelerometer shown in Figure <a href="#org6e272e3">16</a>, we can write the transfer function from the support acceleration \(\ddot{w}\) to the relative position of the inertial mass \(d\):
\[ \frac{d}{\ddot{w}} = \frac{-\frac{1}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \]
with:
</p>
<ul class="org-ul">
<li>\(\omega_0 = \sqrt{\frac{k}{m}}\)</li>
<li>\(\xi = \frac{1}{2} \sqrt{\frac{m}{k}}\)</li>
</ul>
<div id="org6e272e3" class="figure">
<p><img src="figs/inertial_sensor.png" alt="inertial_sensor.png" />
</p>
<p><span class="figure-number">Figure 16: </span>Schematic of a Z-Axis geophone</p>
</div>
<p>
We see that at frequencies below \(\omega_0\):
\[ \frac{d}{\ddot{w}} \approx -\frac{1}{{\omega_0}^2} \]
</p>
<p>
And thus, the measurement of the relative displacement of the mass with respect to its support gives the absolute acceleration of the support.
</p>
<p>
Note that there is trade-off between:
</p>
<ul class="org-ul">
<li>the highest measurable acceleration \(\omega_0\)</li>
<li>the sensitivity of the accelerometer which is equal to \(-\frac{1}{{\omega_0}^2}\)</li>
</ul>
</div>
</div>
<div id="outline-container-org1eb17e3" class="outline-4">
<h4 id="org1eb17e3">Function description</h4>
<div class="outline-text-4" id="text-org1eb17e3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeInertialSensor</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeInertialSensor</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeInertialSensor - Initialize the inertial sensor in each strut</span> <span class="org-comment">% initializeInertialSensor - Initialize the inertial sensor in each strut</span>
@ -1988,9 +2064,9 @@ This Matlab function is accessible <a href="../src/initializeInertialSensor.m">h
</div> </div>
</div> </div>
<div id="outline-container-org405e558" class="outline-4"> <div id="outline-container-orgc623e70" class="outline-4">
<h4 id="org405e558">Optional Parameters</h4> <h4 id="orgc623e70">Optional Parameters</h4>
<div class="outline-text-4" id="text-org405e558"> <div class="outline-text-4" id="text-orgc623e70">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -2031,9 +2107,9 @@ This Matlab function is accessible <a href="../src/initializeInertialSensor.m">h
</div> </div>
</div> </div>
<div id="outline-container-orgfd7f4a6" class="outline-4"> <div id="outline-container-org55d115f" class="outline-4">
<h4 id="orgfd7f4a6">Populate the <code>stewart</code> structure</h4> <h4 id="org55d115f">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgfd7f4a6"> <div class="outline-text-4" id="text-org55d115f">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.sensors.inertial = sensor; <pre class="src src-matlab">stewart.sensors.inertial = sensor;
</pre> </pre>
@ -2054,9 +2130,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</p> </p>
</div> </div>
<div id="outline-container-orgbbfef24" class="outline-4"> <div id="outline-container-org59a5a2e" class="outline-4">
<h4 id="orgbbfef24">Function description</h4> <h4 id="org59a5a2e">Function description</h4>
<div class="outline-text-4" id="text-orgbbfef24"> <div class="outline-text-4" id="text-org59a5a2e">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[]</span> = <span class="org-function-name">displayArchitecture</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[]</span> = <span class="org-function-name">displayArchitecture</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% displayArchitecture - 3D plot of the Stewart platform architecture</span> <span class="org-comment">% displayArchitecture - 3D plot of the Stewart platform architecture</span>
@ -2085,9 +2161,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div> </div>
</div> </div>
<div id="outline-container-orgf940506" class="outline-4"> <div id="outline-container-org8bd5132" class="outline-4">
<h4 id="orgf940506">Optional Parameters</h4> <h4 id="org8bd5132">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgf940506"> <div class="outline-text-4" id="text-org8bd5132">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">arguments <pre class="src src-matlab">arguments
stewart stewart
@ -2108,9 +2184,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div> </div>
</div> </div>
<div id="outline-container-org12d315f" class="outline-4"> <div id="outline-container-org92ac986" class="outline-4">
<h4 id="org12d315f">Check the <code>stewart</code> structure elements</h4> <h4 id="org92ac986">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org12d315f"> <div class="outline-text-4" id="text-org92ac986">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.platform_F, <span class="org-string">'FO_A'</span>), <span class="org-string">'stewart.platform_F should have attribute FO_A'</span>) <pre class="src src-matlab">assert(isfield(stewart.platform_F, <span class="org-string">'FO_A'</span>), <span class="org-string">'stewart.platform_F should have attribute FO_A'</span>)
FO_A = stewart.platform_F.FO_A; FO_A = stewart.platform_F.FO_A;
@ -2426,6 +2502,8 @@ Plot the legs connecting the joints of the fixed base to the joints of the mobil
<span class="org-type">axis</span> equal; <span class="org-type">axis</span> equal;
<span class="org-type">axis</span> off; <span class="org-type">axis</span> off;
title(<span class="org-string">'Side'</span>) title(<span class="org-string">'Side'</span>)
close(f);
<span class="org-keyword">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -2444,7 +2522,7 @@ Plot the legs connecting the joints of the fixed base to the joints of the mobil
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-12 mer. 14:16</p> <p class="date">Created: 2020-02-13 jeu. 15:47</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -301,106 +301,3 @@ This Matlab function is accessible [[file:../src/initializeGround.m][here]].
ground.C = args.C; ground.C = args.C;
#+end_src #+end_src
** Z-Axis Geophone
*** Working Principle
From the schematic of the Z-axis geophone shown in Figure [[fig:z_axis_geophone]], we can write the transfer function from the support velocity $\dot{w}$ to the relative velocity of the inertial mass $\dot{d}$:
\[ \frac{\dot{d}}{\dot{w}} = \frac{-\frac{s^2}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \]
with:
- $\omega_0 = \sqrt{\frac{k}{m}}$
- $\xi = \frac{1}{2} \sqrt{\frac{m}{k}}$
#+name: fig:z_axis_geophone
#+caption: Schematic of a Z-Axis geophone
[[file:figs/inertial_sensor.png]]
We see that at frequencies above $\omega_0$:
\[ \frac{\dot{d}}{\dot{w}} \approx -1 \]
And thus, the measurement of the relative velocity of the mass with respect to its support gives the absolute velocity of the support.
We generally want to have the smallest resonant frequency $\omega_0$ to measure low frequency absolute velocity, however there is a trade-off between $\omega_0$ and the mass of the inertial mass.
*** Initialization function
:PROPERTIES:
:header-args:matlab+: :tangle ../src/initializeZAxisGeophone.m
:header-args:matlab+: :comments none :mkdirp yes :eval no
:END:
<<sec:initializeZAxisGeophone>>
This Matlab function is accessible [[file:../src/initializeZAxisGeophone.m][here]].
#+begin_src matlab
function [geophone] = initializeZAxisGeophone(args)
arguments
args.mass (1,1) double {mustBeNumeric, mustBePositive} = 1e-3 % [kg]
args.freq (1,1) double {mustBeNumeric, mustBePositive} = 1 % [Hz]
end
%%
geophone.m = args.mass;
%% The Stiffness is set to have the damping resonance frequency
geophone.k = geophone.m * (2*pi*args.freq)^2;
%% We set the damping value to have critical damping
geophone.c = 2*sqrt(geophone.m * geophone.k);
%% Save
save('./mat/geophone_z_axis.mat', 'geophone');
end
#+end_src
** Z-Axis Accelerometer
*** Working Principle
From the schematic of the Z-axis accelerometer shown in Figure [[fig:z_axis_accelerometer]], we can write the transfer function from the support acceleration $\ddot{w}$ to the relative position of the inertial mass $d$:
\[ \frac{d}{\ddot{w}} = \frac{-\frac{1}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \]
with:
- $\omega_0 = \sqrt{\frac{k}{m}}$
- $\xi = \frac{1}{2} \sqrt{\frac{m}{k}}$
#+name: fig:z_axis_accelerometer
#+caption: Schematic of a Z-Axis geophone
[[file:figs/inertial_sensor.png]]
We see that at frequencies below $\omega_0$:
\[ \frac{d}{\ddot{w}} \approx -\frac{1}{{\omega_0}^2} \]
And thus, the measurement of the relative displacement of the mass with respect to its support gives the absolute acceleration of the support.
Note that there is trade-off between:
- the highest measurable acceleration $\omega_0$
- the sensitivity of the accelerometer which is equal to $-\frac{1}{{\omega_0}^2}$
*** Initialization function
:PROPERTIES:
:header-args:matlab+: :tangle ../src/initializeZAxisAccelerometer.m
:header-args:matlab+: :comments none :mkdirp yes :eval no
:END:
<<sec:initializeZAxisAccelerometer>>
This Matlab function is accessible [[file:../src/initializeZAxisAccelerometer.m][here]].
#+begin_src matlab
function [accelerometer] = initializeZAxisAccelerometer(args)
arguments
args.mass (1,1) double {mustBeNumeric, mustBePositive} = 5e-3 % [kg]
args.freq (1,1) double {mustBeNumeric, mustBePositive} = 5e3 % [Hz]
end
%%
accelerometer.m = args.mass;
%% The Stiffness is set to have the damping resonance frequency
accelerometer.k = accelerometer.m * (2*pi*args.freq)^2;
%% We set the damping value to have critical damping
accelerometer.c = 2*sqrt(accelerometer.m * accelerometer.k);
%% Gain correction of the accelerometer to have a unity gain until the resonance
accelerometer.gain = -accelerometer.k/accelerometer.m;
%% Save
save('./mat/accelerometer_z_axis.mat', 'accelerometer');
end
#+end_src

View File

@ -1344,6 +1344,50 @@ Rotational Damping
This Matlab function is accessible [[file:../src/initializeInertialSensor.m][here]]. This Matlab function is accessible [[file:../src/initializeInertialSensor.m][here]].
*** Geophone - Working Principle
:PROPERTIES:
:UNNUMBERED: t
:END:
From the schematic of the Z-axis geophone shown in Figure [[fig:z_axis_geophone]], we can write the transfer function from the support velocity $\dot{w}$ to the relative velocity of the inertial mass $\dot{d}$:
\[ \frac{\dot{d}}{\dot{w}} = \frac{-\frac{s^2}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \]
with:
- $\omega_0 = \sqrt{\frac{k}{m}}$
- $\xi = \frac{1}{2} \sqrt{\frac{m}{k}}$
#+name: fig:z_axis_geophone
#+caption: Schematic of a Z-Axis geophone
[[file:figs/inertial_sensor.png]]
We see that at frequencies above $\omega_0$:
\[ \frac{\dot{d}}{\dot{w}} \approx -1 \]
And thus, the measurement of the relative velocity of the mass with respect to its support gives the absolute velocity of the support.
We generally want to have the smallest resonant frequency $\omega_0$ to measure low frequency absolute velocity, however there is a trade-off between $\omega_0$ and the mass of the inertial mass.
*** Accelerometer - Working Principle
:PROPERTIES:
:UNNUMBERED: t
:END:
From the schematic of the Z-axis accelerometer shown in Figure [[fig:z_axis_accelerometer]], we can write the transfer function from the support acceleration $\ddot{w}$ to the relative position of the inertial mass $d$:
\[ \frac{d}{\ddot{w}} = \frac{-\frac{1}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \]
with:
- $\omega_0 = \sqrt{\frac{k}{m}}$
- $\xi = \frac{1}{2} \sqrt{\frac{m}{k}}$
#+name: fig:z_axis_accelerometer
#+caption: Schematic of a Z-Axis geophone
[[file:figs/inertial_sensor.png]]
We see that at frequencies below $\omega_0$:
\[ \frac{d}{\ddot{w}} \approx -\frac{1}{{\omega_0}^2} \]
And thus, the measurement of the relative displacement of the mass with respect to its support gives the absolute acceleration of the support.
Note that there is trade-off between:
- the highest measurable acceleration $\omega_0$
- the sensitivity of the accelerometer which is equal to $-\frac{1}{{\omega_0}^2}$
*** Function description *** Function description
:PROPERTIES: :PROPERTIES:
:UNNUMBERED: t :UNNUMBERED: t
@ -1744,6 +1788,8 @@ Plot the legs connecting the joints of the fixed base to the joints of the mobil
axis equal; axis equal;
axis off; axis off;
title('Side') title('Side')
close(f);
end end
#+end_src #+end_src