Compare commits

...

2 Commits

Author SHA1 Message Date
ed0c18829b Change all indentation 2021-01-08 15:54:58 +01:00
f5922ca970 Delete local CS/JSS 2021-01-08 15:36:11 +01:00
35 changed files with 8682 additions and 10020 deletions

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:30 -->
<!-- 2021-01-08 ven. 15:53 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Decentralized Active Damping</title>
<meta name="generator" content="Org mode" />
@ -42,25 +42,25 @@
<li><a href="#orgddaf52f">1. Inertial Control</a>
<ul>
<li><a href="#org933440d">1.1. Identification of the Dynamics</a></li>
<li><a href="#orged6d23c">1.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org533c409">1.3. Obtained Damping</a></li>
<li><a href="#orgc76021e">1.4. Conclusion</a></li>
<li><a href="#org2875dd1">1.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org0cea759">1.3. Obtained Damping</a></li>
<li><a href="#orga866100">1.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgf8ed544">2. Integral Force Feedback</a>
<ul>
<li><a href="#org7b81fe5">2.1. Identification of the Dynamics with perfect Joints</a></li>
<li><a href="#org3dca396">2.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org7044ed4">2.3. Obtained Damping</a></li>
<li><a href="#org9c769b9">2.4. Conclusion</a></li>
<li><a href="#orga2d019b">2.1. Identification of the Dynamics with perfect Joints</a></li>
<li><a href="#org6ac04ee">2.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org06e1086">2.3. Obtained Damping</a></li>
<li><a href="#orgfa832d6">2.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgabec4e1">3. Direct Velocity Feedback</a>
<ul>
<li><a href="#orga2d019b">3.1. Identification of the Dynamics with perfect Joints</a></li>
<li><a href="#org2875dd1">3.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org0cea759">3.3. Obtained Damping</a></li>
<li><a href="#orga866100">3.4. Conclusion</a></li>
<li><a href="#org19cbcee">3.1. Identification of the Dynamics with perfect Joints</a></li>
<li><a href="#org0fabf01">3.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org6c74c9a">3.3. Obtained Damping</a></li>
<li><a href="#org81b2156">3.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgc7e2089">4. Compliance and Transmissibility Comparison</a>
@ -90,7 +90,7 @@ The following decentralized active damping techniques are briefly studied:
<a id="org709d56c"></a>
</p>
<div class="note" id="org8a14d8c">
<div class="note" id="org1ae7526">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/active_damping_inertial.m">here</a>.
</p>
@ -159,8 +159,8 @@ The transfer function from actuator forces to force sensors is shown in Figure <
</div>
</div>
<div id="outline-container-orged6d23c" class="outline-3">
<h3 id="orged6d23c"><span class="section-number-3">1.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div id="outline-container-org2875dd1" class="outline-3">
<h3 id="org2875dd1"><span class="section-number-3">1.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div class="outline-text-3" id="text-1-2">
<p>
We add some stiffness and damping in the flexible joints and we re-identify the dynamics.
@ -196,8 +196,8 @@ The new dynamics from force actuator to force sensor is shown in Figure <a href=
</div>
</div>
<div id="outline-container-org533c409" class="outline-3">
<h3 id="org533c409"><span class="section-number-3">1.3</span> Obtained Damping</h3>
<div id="outline-container-org0cea759" class="outline-3">
<h3 id="org0cea759"><span class="section-number-3">1.3</span> Obtained Damping</h3>
<div class="outline-text-3" id="text-1-3">
<p>
The control is a performed in a decentralized manner.
@ -222,10 +222,10 @@ The root locus is shown in figure <a href="#orgaea8656">3</a>.
</div>
</div>
<div id="outline-container-orgc76021e" class="outline-3">
<h3 id="orgc76021e"><span class="section-number-3">1.4</span> Conclusion</h3>
<div id="outline-container-orga866100" class="outline-3">
<h3 id="orga866100"><span class="section-number-3">1.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-4">
<div class="important" id="org37b8ef0">
<div class="important" id="org91c21ee">
<p>
We do not have guaranteed stability with Inertial control. This is because of the flexibility inside the internal sensor.
</p>
@ -242,7 +242,7 @@ We do not have guaranteed stability with Inertial control. This is because of th
<a id="org1f0d316"></a>
</p>
<div class="note" id="org54cec4b">
<div class="note" id="org30f755d">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/active_damping_iff.m">here</a>.
</p>
@ -254,8 +254,8 @@ To run the script, open the Simulink Project, and type <code>run active_damping_
</div>
</div>
<div id="outline-container-org7b81fe5" class="outline-3">
<h3 id="org7b81fe5"><span class="section-number-3">2.1</span> Identification of the Dynamics with perfect Joints</h3>
<div id="outline-container-orga2d019b" class="outline-3">
<h3 id="orga2d019b"><span class="section-number-3">2.1</span> Identification of the Dynamics with perfect Joints</h3>
<div class="outline-text-3" id="text-2-1">
<p>
We first initialize the Stewart platform without joint stiffness.
@ -313,8 +313,8 @@ The transfer function from actuator forces to force sensors is shown in Figure <
</div>
</div>
<div id="outline-container-org3dca396" class="outline-3">
<h3 id="org3dca396"><span class="section-number-3">2.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div id="outline-container-org6ac04ee" class="outline-3">
<h3 id="org6ac04ee"><span class="section-number-3">2.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div class="outline-text-3" id="text-2-2">
<p>
We add some stiffness and damping in the flexible joints and we re-identify the dynamics.
@ -350,8 +350,8 @@ The new dynamics from force actuator to force sensor is shown in Figure <a href=
</div>
</div>
<div id="outline-container-org7044ed4" class="outline-3">
<h3 id="org7044ed4"><span class="section-number-3">2.3</span> Obtained Damping</h3>
<div id="outline-container-org06e1086" class="outline-3">
<h3 id="org06e1086"><span class="section-number-3">2.3</span> Obtained Damping</h3>
<div class="outline-text-3" id="text-2-3">
<p>
The control is a performed in a decentralized manner.
@ -383,10 +383,10 @@ The root locus is shown in figure <a href="#orgce5d8d8">6</a> and the obtained p
</div>
</div>
<div id="outline-container-org9c769b9" class="outline-3">
<h3 id="org9c769b9"><span class="section-number-3">2.4</span> Conclusion</h3>
<div id="outline-container-orgfa832d6" class="outline-3">
<h3 id="orgfa832d6"><span class="section-number-3">2.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-4">
<div class="important" id="orged36719">
<div class="important" id="orgad0c17b">
<p>
The joint stiffness has a huge impact on the attainable active damping performance when using force sensors.
Thus, if Integral Force Feedback is to be used in a Stewart platform with flexible joints, the rotational stiffness of the joints should be minimized.
@ -404,7 +404,7 @@ Thus, if Integral Force Feedback is to be used in a Stewart platform with flexib
<a id="org63027d0"></a>
</p>
<div class="note" id="orgfb739d8">
<div class="note" id="orgadea9d6">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/active_damping_dvf.m">here</a>.
</p>
@ -416,8 +416,8 @@ To run the script, open the Simulink Project, and type <code>run active_damping_
</div>
</div>
<div id="outline-container-orga2d019b" class="outline-3">
<h3 id="orga2d019b"><span class="section-number-3">3.1</span> Identification of the Dynamics with perfect Joints</h3>
<div id="outline-container-org19cbcee" class="outline-3">
<h3 id="org19cbcee"><span class="section-number-3">3.1</span> Identification of the Dynamics with perfect Joints</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We first initialize the Stewart platform without joint stiffness.
@ -480,8 +480,8 @@ The transfer function from actuator forces to relative motion sensors is shown i
</div>
<div id="outline-container-org2875dd1" class="outline-3">
<h3 id="org2875dd1"><span class="section-number-3">3.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div id="outline-container-org0fabf01" class="outline-3">
<h3 id="org0fabf01"><span class="section-number-3">3.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div class="outline-text-3" id="text-3-2">
<p>
We add some stiffness and damping in the flexible joints and we re-identify the dynamics.
@ -517,8 +517,8 @@ The new dynamics from force actuator to relative motion sensor is shown in Figur
</div>
</div>
<div id="outline-container-org0cea759" class="outline-3">
<h3 id="org0cea759"><span class="section-number-3">3.3</span> Obtained Damping</h3>
<div id="outline-container-org6c74c9a" class="outline-3">
<h3 id="org6c74c9a"><span class="section-number-3">3.3</span> Obtained Damping</h3>
<div class="outline-text-3" id="text-3-3">
<p>
The control is a performed in a decentralized manner.
@ -543,10 +543,10 @@ The root locus is shown in figure <a href="#org0436b4d">10</a>.
</div>
</div>
<div id="outline-container-orga866100" class="outline-3">
<h3 id="orga866100"><span class="section-number-3">3.4</span> Conclusion</h3>
<div id="outline-container-org81b2156" class="outline-3">
<h3 id="org81b2156"><span class="section-number-3">3.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-4">
<div class="important" id="org2640d3c">
<div class="important" id="orgb486ca9">
<p>
Joint stiffness does increase the resonance frequencies of the system but does not change the attainable damping when using relative motion sensors.
</p>
@ -661,7 +661,7 @@ And for the Direct Velocity Feedback.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p>
<p class="date">Created: 2021-01-08 ven. 15:53</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:30 -->
<!-- 2021-01-08 ven. 15:53 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Tracking Control</title>
<meta name="generator" content="Org mode" />
@ -41,42 +41,42 @@
<ul>
<li><a href="#org38bd29c">1. Decentralized Control Architecture using Strut Length</a>
<ul>
<li><a href="#org777f63a">1.1. Control Schematic</a></li>
<li><a href="#org0f17ddf">1.2. Initialize the Stewart platform</a></li>
<li><a href="#org938bf43">1.3. Identification of the plant</a></li>
<li><a href="#orgd85e556">1.4. Plant Analysis</a></li>
<li><a href="#org012f9ba">1.5. Controller Design</a></li>
<li><a href="#orgc46651b">1.6. Simulation</a></li>
<li><a href="#org26beab0">1.1. Control Schematic</a></li>
<li><a href="#org4974b70">1.2. Initialize the Stewart platform</a></li>
<li><a href="#orgffac384">1.3. Identification of the plant</a></li>
<li><a href="#org6b0f741">1.4. Plant Analysis</a></li>
<li><a href="#org4ac52e4">1.5. Controller Design</a></li>
<li><a href="#orgcc561b1">1.6. Simulation</a></li>
<li><a href="#org27e5895">1.7. Results</a></li>
<li><a href="#orgf950695">1.8. Conclusion</a></li>
<li><a href="#orga08a7c7">1.8. Conclusion</a></li>
</ul>
</li>
<li><a href="#org6def216">2. Centralized Control Architecture using Pose Measurement</a>
<ul>
<li><a href="#orgb6b4431">2.1. Control Schematic</a></li>
<li><a href="#org13b9974">2.2. Initialize the Stewart platform</a></li>
<li><a href="#orgffac384">2.3. Identification of the plant</a></li>
<li><a href="#org0a198bd">2.1. Control Schematic</a></li>
<li><a href="#orgcd92fdd">2.2. Initialize the Stewart platform</a></li>
<li><a href="#org07a44ca">2.3. Identification of the plant</a></li>
<li><a href="#org247c983">2.4. Diagonal Control - Leg&rsquo;s Frame</a>
<ul>
<li><a href="#org6e8aae5">2.4.1. Control Architecture</a></li>
<li><a href="#orgc39fe3e">2.4.2. Plant Analysis</a></li>
<li><a href="#org7bc4037">2.4.3. Controller Design</a></li>
<li><a href="#org8348a67">2.4.4. Simulation</a></li>
<li><a href="#org89a9e53">2.4.1. Control Architecture</a></li>
<li><a href="#org1ec2254">2.4.2. Plant Analysis</a></li>
<li><a href="#org1153366">2.4.3. Controller Design</a></li>
<li><a href="#orgcdb2d37">2.4.4. Simulation</a></li>
</ul>
</li>
<li><a href="#org016a64d">2.5. Diagonal Control - Cartesian Frame</a>
<ul>
<li><a href="#org694df0e">2.5.1. Control Architecture</a></li>
<li><a href="#orgddb8057">2.5.2. Plant Analysis</a></li>
<li><a href="#org9cff4f2">2.5.3. Controller Design</a></li>
<li><a href="#orgcc561b1">2.5.4. Simulation</a></li>
<li><a href="#orgd397e3e">2.5.1. Control Architecture</a></li>
<li><a href="#orgeb6847d">2.5.2. Plant Analysis</a></li>
<li><a href="#org75860e5">2.5.3. Controller Design</a></li>
<li><a href="#org2c9c807">2.5.4. Simulation</a></li>
</ul>
</li>
<li><a href="#orgc91604c">2.6. Diagonal Control - Steady State Decoupling</a>
<ul>
<li><a href="#org89a9e53">2.6.1. Control Architecture</a></li>
<li><a href="#org6b0f741">2.6.2. Plant Analysis</a></li>
<li><a href="#org710c764">2.6.3. Controller Design</a></li>
<li><a href="#org6c1baeb">2.6.1. Control Architecture</a></li>
<li><a href="#orgbff8dd9">2.6.2. Plant Analysis</a></li>
<li><a href="#org7bfa1fd">2.6.3. Controller Design</a></li>
</ul>
</li>
<li><a href="#org83bccab">2.7. Comparison</a>
@ -85,29 +85,29 @@
<li><a href="#org9360078">2.7.2. Simulation Results</a></li>
</ul>
</li>
<li><a href="#org4558ccf">2.8. Conclusion</a></li>
<li><a href="#org80dbaca">2.8. Conclusion</a></li>
</ul>
</li>
<li><a href="#org7107cf9">3. Hybrid Control Architecture - HAC-LAC with relative DVF</a>
<ul>
<li><a href="#org26beab0">3.1. Control Schematic</a></li>
<li><a href="#org4974b70">3.2. Initialize the Stewart platform</a></li>
<li><a href="#org659eed7">3.1. Control Schematic</a></li>
<li><a href="#orge9def22">3.2. Initialize the Stewart platform</a></li>
<li><a href="#org491cea7">3.3. First Control Loop - \(\bm{K}_\mathcal{L}\)</a>
<ul>
<li><a href="#orgd3e6a90">3.3.1. Identification</a></li>
<li><a href="#org1347b53">3.3.2. Obtained Plant</a></li>
<li><a href="#org1299d6c">3.3.3. Controller Design</a></li>
<li><a href="#org5cc334f">3.3.1. Identification</a></li>
<li><a href="#org3be701b">3.3.2. Obtained Plant</a></li>
<li><a href="#org4623e8f">3.3.3. Controller Design</a></li>
</ul>
</li>
<li><a href="#org53cbafc">3.4. Second Control Loop - \(\bm{K}_\mathcal{X}\)</a>
<ul>
<li><a href="#org5cc334f">3.4.1. Identification</a></li>
<li><a href="#org3be701b">3.4.2. Obtained Plant</a></li>
<li><a href="#org4ac52e4">3.4.3. Controller Design</a></li>
<li><a href="#orgfc299ed">3.4.1. Identification</a></li>
<li><a href="#org1680642">3.4.2. Obtained Plant</a></li>
<li><a href="#orgae806c2">3.4.3. Controller Design</a></li>
</ul>
</li>
<li><a href="#org96f8c42">3.5. Simulations</a></li>
<li><a href="#orga08a7c7">3.6. Conclusion</a></li>
<li><a href="#orgcf8f38f">3.6. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgffc4966">4. Comparison of all the methods</a></li>
@ -144,8 +144,8 @@ The control configuration are compare in section <a href="#org8ae0d7b">4</a>.
<a id="orgf224027"></a>
</p>
</div>
<div id="outline-container-org777f63a" class="outline-3">
<h3 id="org777f63a"><span class="section-number-3">1.1</span> Control Schematic</h3>
<div id="outline-container-org26beab0" class="outline-3">
<h3 id="org26beab0"><span class="section-number-3">1.1</span> Control Schematic</h3>
<div class="outline-text-3" id="text-1-1">
<p>
The control architecture is shown in Figure <a href="#orga408812">1</a>.
@ -168,8 +168,8 @@ Then, a diagonal (decentralized) controller \(\bm{K}_\mathcal{L}\) is used such
</div>
</div>
<div id="outline-container-org0f17ddf" class="outline-3">
<h3 id="org0f17ddf"><span class="section-number-3">1.2</span> Initialize the Stewart platform</h3>
<div id="outline-container-org4974b70" class="outline-3">
<h3 id="org4974b70"><span class="section-number-3">1.2</span> Initialize the Stewart platform</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% Stewart Platform</span>
@ -200,8 +200,8 @@ Then, a diagonal (decentralized) controller \(\bm{K}_\mathcal{L}\) is used such
</div>
</div>
<div id="outline-container-org938bf43" class="outline-3">
<h3 id="org938bf43"><span class="section-number-3">1.3</span> Identification of the plant</h3>
<div id="outline-container-orgffac384" class="outline-3">
<h3 id="orgffac384"><span class="section-number-3">1.3</span> Identification of the plant</h3>
<div class="outline-text-3" id="text-1-3">
<p>
Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{L}}\).
@ -224,8 +224,8 @@ Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{
</div>
</div>
<div id="outline-container-orgd85e556" class="outline-3">
<h3 id="orgd85e556"><span class="section-number-3">1.4</span> Plant Analysis</h3>
<div id="outline-container-org6b0f741" class="outline-3">
<h3 id="org6b0f741"><span class="section-number-3">1.4</span> Plant Analysis</h3>
<div class="outline-text-3" id="text-1-4">
<p>
The diagonal and off-diagonal terms of the plant are shown in Figure <a href="#org98f0b3d">2</a>.
@ -245,8 +245,8 @@ We see that the plant is decoupled at low frequency which indicate that decentra
</div>
</div>
<div id="outline-container-org012f9ba" class="outline-3">
<h3 id="org012f9ba"><span class="section-number-3">1.5</span> Controller Design</h3>
<div id="outline-container-org4ac52e4" class="outline-3">
<h3 id="org4ac52e4"><span class="section-number-3">1.5</span> Controller Design</h3>
<div class="outline-text-3" id="text-1-5">
<p>
The controller consists of:
@ -275,8 +275,8 @@ The obtained loop gains corresponding to the diagonal elements are shown in Figu
</div>
</div>
<div id="outline-container-orgc46651b" class="outline-3">
<h3 id="orgc46651b"><span class="section-number-3">1.6</span> Simulation</h3>
<div id="outline-container-orgcc561b1" class="outline-3">
<h3 id="orgcc561b1"><span class="section-number-3">1.6</span> Simulation</h3>
<div class="outline-text-3" id="text-1-6">
<p>
Let&rsquo;s define some reference path to follow.
@ -375,8 +375,8 @@ The reference path and the position of the mobile platform are shown in Figure <
</div>
</div>
<div id="outline-container-orgf950695" class="outline-3">
<h3 id="orgf950695"><span class="section-number-3">1.8</span> Conclusion</h3>
<div id="outline-container-orga08a7c7" class="outline-3">
<h3 id="orga08a7c7"><span class="section-number-3">1.8</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-8">
<p>
Such control architecture is easy to implement and give good results.
@ -397,8 +397,8 @@ However, as \(\mathcal{X}\) is not directly measured, it is possible that import
<a id="org17ac109"></a>
</p>
</div>
<div id="outline-container-orgb6b4431" class="outline-3">
<h3 id="orgb6b4431"><span class="section-number-3">2.1</span> Control Schematic</h3>
<div id="outline-container-org0a198bd" class="outline-3">
<h3 id="org0a198bd"><span class="section-number-3">2.1</span> Control Schematic</h3>
<div class="outline-text-3" id="text-2-1">
<p>
The centralized controller takes the position error \(\bm{\epsilon}_\mathcal{X}\) as an inputs and generate actuator forces \(\bm{\tau}\) (see Figure <a href="#org70b7a89">8</a>).
@ -426,7 +426,7 @@ Instead of designing a full MIMO controller \(K\), we first try to make the plan
We can think of two ways to make the plant more diagonal that are described in sections <a href="#org245333d">2.4</a> and <a href="#org391e5c7">2.5</a>.
</p>
<div class="important" id="org7a0c8d4">
<div class="important" id="orgfe9fde9">
<p>
Note here that the subtraction shown in Figure <a href="#org70b7a89">8</a> is not a real subtraction.
It is indeed a more complex computation explained in section <a href="#org2f1ce27">5</a>.
@ -436,8 +436,8 @@ It is indeed a more complex computation explained in section <a href="#org2f1ce2
</div>
</div>
<div id="outline-container-org13b9974" class="outline-3">
<h3 id="org13b9974"><span class="section-number-3">2.2</span> Initialize the Stewart platform</h3>
<div id="outline-container-orgcd92fdd" class="outline-3">
<h3 id="orgcd92fdd"><span class="section-number-3">2.2</span> Initialize the Stewart platform</h3>
<div class="outline-text-3" id="text-2-2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% Stewart Platform</span>
@ -468,8 +468,8 @@ It is indeed a more complex computation explained in section <a href="#org2f1ce2
</div>
</div>
<div id="outline-container-orgffac384" class="outline-3">
<h3 id="orgffac384"><span class="section-number-3">2.3</span> Identification of the plant</h3>
<div id="outline-container-org07a44ca" class="outline-3">
<h3 id="org07a44ca"><span class="section-number-3">2.3</span> Identification of the plant</h3>
<div class="outline-text-3" id="text-2-3">
<p>
Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{X}}\).
@ -499,8 +499,8 @@ Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{
<a id="org245333d"></a>
</p>
</div>
<div id="outline-container-org6e8aae5" class="outline-4">
<h4 id="org6e8aae5"><span class="section-number-4">2.4.1</span> Control Architecture</h4>
<div id="outline-container-org89a9e53" class="outline-4">
<h4 id="org89a9e53"><span class="section-number-4">2.4.1</span> Control Architecture</h4>
<div class="outline-text-4" id="text-2-4-1">
<p>
The pose error \(\bm{\epsilon}_\mathcal{X}\) is first converted in the frame of the leg by using the Jacobian matrix.
@ -521,8 +521,8 @@ Note here that the transformation from the pose error \(\bm{\epsilon}_\mathcal{X
</div>
</div>
<div id="outline-container-orgc39fe3e" class="outline-4">
<h4 id="orgc39fe3e"><span class="section-number-4">2.4.2</span> Plant Analysis</h4>
<div id="outline-container-org1ec2254" class="outline-4">
<h4 id="org1ec2254"><span class="section-number-4">2.4.2</span> Plant Analysis</h4>
<div class="outline-text-4" id="text-2-4-2">
<p>
We now multiply the plant by the Jacobian matrix as shown in Figure <a href="#org622fa29">9</a> to obtain a more diagonal plant.
@ -562,8 +562,8 @@ Thus \(J \cdot G(\omega = 0) = J \cdot \frac{\delta\bm{\mathcal{X}}}{\delta\bm{\
</div>
</div>
<div id="outline-container-org7bc4037" class="outline-4">
<h4 id="org7bc4037"><span class="section-number-4">2.4.3</span> Controller Design</h4>
<div id="outline-container-org1153366" class="outline-4">
<h4 id="org1153366"><span class="section-number-4">2.4.3</span> Controller Design</h4>
<div class="outline-text-4" id="text-2-4-3">
<p>
The controller consists of:
@ -600,8 +600,8 @@ The controller \(\bm{K} = \bm{K}_\mathcal{L} \bm{J}\) is computed.
</div>
</div>
<div id="outline-container-org8348a67" class="outline-4">
<h4 id="org8348a67"><span class="section-number-4">2.4.4</span> Simulation</h4>
<div id="outline-container-orgcdb2d37" class="outline-4">
<h4 id="orgcdb2d37"><span class="section-number-4">2.4.4</span> Simulation</h4>
<div class="outline-text-4" id="text-2-4-4">
<p>
We specify the reference path to follow.
@ -645,8 +645,8 @@ We run the simulation and we save the results.
<a id="org391e5c7"></a>
</p>
</div>
<div id="outline-container-org694df0e" class="outline-4">
<h4 id="org694df0e"><span class="section-number-4">2.5.1</span> Control Architecture</h4>
<div id="outline-container-orgd397e3e" class="outline-4">
<h4 id="orgd397e3e"><span class="section-number-4">2.5.1</span> Control Architecture</h4>
<div class="outline-text-4" id="text-2-5-1">
<p>
A diagonal controller \(\bm{K}_\mathcal{X}\) take the pose error \(\bm{\epsilon}_\mathcal{X}\) and generate cartesian forces \(\bm{\mathcal{F}}\) that are then converted to actuators forces using the Jacobian as shown in Figure e <a href="#org3aa556e">12</a>.
@ -665,8 +665,8 @@ The final implemented controller is \(\bm{K} = \bm{J}^{-T} \cdot \bm{K}_\mathcal
</div>
</div>
<div id="outline-container-orgddb8057" class="outline-4">
<h4 id="orgddb8057"><span class="section-number-4">2.5.2</span> Plant Analysis</h4>
<div id="outline-container-orgeb6847d" class="outline-4">
<h4 id="orgeb6847d"><span class="section-number-4">2.5.2</span> Plant Analysis</h4>
<div class="outline-text-4" id="text-2-5-2">
<p>
We now multiply the plant by the Jacobian matrix as shown in Figure <a href="#org3aa556e">12</a> to obtain a more diagonal plant.
@ -781,8 +781,8 @@ This control architecture can also give a dynamically decoupled plant if the Cen
</div>
</div>
<div id="outline-container-org9cff4f2" class="outline-4">
<h4 id="org9cff4f2"><span class="section-number-4">2.5.3</span> Controller Design</h4>
<div id="outline-container-org75860e5" class="outline-4">
<h4 id="org75860e5"><span class="section-number-4">2.5.3</span> Controller Design</h4>
<div class="outline-text-4" id="text-2-5-3">
<p>
The controller consists of:
@ -819,8 +819,8 @@ The controller \(\bm{K} = \bm{J}^{-T} \bm{K}_\mathcal{X}\) is computed.
</div>
</div>
<div id="outline-container-orgcc561b1" class="outline-4">
<h4 id="orgcc561b1"><span class="section-number-4">2.5.4</span> Simulation</h4>
<div id="outline-container-org2c9c807" class="outline-4">
<h4 id="org2c9c807"><span class="section-number-4">2.5.4</span> Simulation</h4>
<div class="outline-text-4" id="text-2-5-4">
<p>
We specify the reference path to follow.
@ -864,8 +864,8 @@ We run the simulation and we save the results.
<a id="org2fcbaba"></a>
</p>
</div>
<div id="outline-container-org89a9e53" class="outline-4">
<h4 id="org89a9e53"><span class="section-number-4">2.6.1</span> Control Architecture</h4>
<div id="outline-container-org6c1baeb" class="outline-4">
<h4 id="org6c1baeb"><span class="section-number-4">2.6.1</span> Control Architecture</h4>
<div class="outline-text-4" id="text-2-6-1">
<p>
The plant \(\bm{G}\) is pre-multiply by \(\bm{G}^{-1}(\omega = 0)\) such that the &ldquo;shaped plant&rdquo; \(\bm{G}_0 = \bm{G} \bm{G}^{-1}(\omega = 0)\) is diagonal at low frequency.
@ -888,8 +888,8 @@ The control architecture is shown in Figure <a href="#orgcf8fa7b">15</a>.
</div>
</div>
<div id="outline-container-org6b0f741" class="outline-4">
<h4 id="org6b0f741"><span class="section-number-4">2.6.2</span> Plant Analysis</h4>
<div id="outline-container-orgbff8dd9" class="outline-4">
<h4 id="orgbff8dd9"><span class="section-number-4">2.6.2</span> Plant Analysis</h4>
<div class="outline-text-4" id="text-2-6-2">
<p>
The plant is pre-multiplied by \(\bm{G}^{-1}(\omega = 0)\).
@ -910,8 +910,8 @@ The diagonal and off-diagonal elements of the shaped plant are shown in Figure <
</div>
</div>
<div id="outline-container-org710c764" class="outline-4">
<h4 id="org710c764"><span class="section-number-4">2.6.3</span> Controller Design</h4>
<div id="outline-container-org7bfa1fd" class="outline-4">
<h4 id="org7bfa1fd"><span class="section-number-4">2.6.3</span> Controller Design</h4>
<div class="outline-text-4" id="text-2-6-3">
<p>
We have that:
@ -977,8 +977,8 @@ This error is much lower when using the diagonal control in the frame of the leg
</div>
</div>
<div id="outline-container-org4558ccf" class="outline-3">
<h3 id="org4558ccf"><span class="section-number-3">2.8</span> Conclusion</h3>
<div id="outline-container-org80dbaca" class="outline-3">
<h3 id="org80dbaca"><span class="section-number-3">2.8</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-8">
<p>
Both control architecture gives similar results even tough the control in the Leg&rsquo;s frame gives slightly better results.
@ -1061,8 +1061,8 @@ Thus, this method should be quite robust against parameter variation (e.g. the p
<a id="orgb001207"></a>
</p>
</div>
<div id="outline-container-org26beab0" class="outline-3">
<h3 id="org26beab0"><span class="section-number-3">3.1</span> Control Schematic</h3>
<div id="outline-container-org659eed7" class="outline-3">
<h3 id="org659eed7"><span class="section-number-3">3.1</span> Control Schematic</h3>
<div class="outline-text-3" id="text-3-1">
<p>
Let&rsquo;s consider the control schematic shown in Figure <a href="#orga867420">19</a>.
@ -1103,8 +1103,8 @@ This second loop is responsible for the reference tracking.
</div>
</div>
<div id="outline-container-org4974b70" class="outline-3">
<h3 id="org4974b70"><span class="section-number-3">3.2</span> Initialize the Stewart platform</h3>
<div id="outline-container-orge9def22" class="outline-3">
<h3 id="orge9def22"><span class="section-number-3">3.2</span> Initialize the Stewart platform</h3>
<div class="outline-text-3" id="text-3-2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% Stewart Platform</span>
@ -1139,8 +1139,8 @@ This second loop is responsible for the reference tracking.
<h3 id="org491cea7"><span class="section-number-3">3.3</span> First Control Loop - \(\bm{K}_\mathcal{L}\)</h3>
<div class="outline-text-3" id="text-3-3">
</div>
<div id="outline-container-orgd3e6a90" class="outline-4">
<h4 id="orgd3e6a90"><span class="section-number-4">3.3.1</span> Identification</h4>
<div id="outline-container-org5cc334f" class="outline-4">
<h4 id="org5cc334f"><span class="section-number-4">3.3.1</span> Identification</h4>
<div class="outline-text-4" id="text-3-3-1">
<p>
Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{L}\).
@ -1163,8 +1163,8 @@ Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{L}\).
</div>
</div>
<div id="outline-container-org1347b53" class="outline-4">
<h4 id="org1347b53"><span class="section-number-4">3.3.2</span> Obtained Plant</h4>
<div id="outline-container-org3be701b" class="outline-4">
<h4 id="org3be701b"><span class="section-number-4">3.3.2</span> Obtained Plant</h4>
<div class="outline-text-4" id="text-3-3-2">
<p>
The obtained plant is shown in Figure <a href="#org54b5aae">20</a>.
@ -1179,8 +1179,8 @@ The obtained plant is shown in Figure <a href="#org54b5aae">20</a>.
</div>
</div>
<div id="outline-container-org1299d6c" class="outline-4">
<h4 id="org1299d6c"><span class="section-number-4">3.3.3</span> Controller Design</h4>
<div id="outline-container-org4623e8f" class="outline-4">
<h4 id="org4623e8f"><span class="section-number-4">3.3.3</span> Controller Design</h4>
<div class="outline-text-4" id="text-3-3-3">
<p>
We apply a decentralized (diagonal) direct velocity feedback.
@ -1212,8 +1212,8 @@ The obtain loop gain is shown in Figure <a href="#org66bd8fb">21</a>.
<h3 id="org53cbafc"><span class="section-number-3">3.4</span> Second Control Loop - \(\bm{K}_\mathcal{X}\)</h3>
<div class="outline-text-3" id="text-3-4">
</div>
<div id="outline-container-org5cc334f" class="outline-4">
<h4 id="org5cc334f"><span class="section-number-4">3.4.1</span> Identification</h4>
<div id="outline-container-orgfc299ed" class="outline-4">
<h4 id="orgfc299ed"><span class="section-number-4">3.4.1</span> Identification</h4>
<div class="outline-text-4" id="text-3-4-1">
<div class="org-src-container">
<pre class="src src-matlab">Kx = tf(zeros(6));
@ -1240,8 +1240,8 @@ The obtain loop gain is shown in Figure <a href="#org66bd8fb">21</a>.
</div>
</div>
<div id="outline-container-org3be701b" class="outline-4">
<h4 id="org3be701b"><span class="section-number-4">3.4.2</span> Obtained Plant</h4>
<div id="outline-container-org1680642" class="outline-4">
<h4 id="org1680642"><span class="section-number-4">3.4.2</span> Obtained Plant</h4>
<div class="outline-text-4" id="text-3-4-2">
<p>
We use the Jacobian matrix to apply forces in the cartesian frame.
@ -1264,8 +1264,8 @@ The obtained plant is shown in Figure <a href="#org6d6ab43">22</a>.
</div>
</div>
<div id="outline-container-org4ac52e4" class="outline-4">
<h4 id="org4ac52e4"><span class="section-number-4">3.4.3</span> Controller Design</h4>
<div id="outline-container-orgae806c2" class="outline-4">
<h4 id="orgae806c2"><span class="section-number-4">3.4.3</span> Controller Design</h4>
<div class="outline-text-4" id="text-3-4-3">
<p>
The controller consists of:
@ -1350,8 +1350,8 @@ The obtained position error is shown in Figure <a href="#org32b868d">24</a>.
</div>
</div>
<div id="outline-container-orga08a7c7" class="outline-3">
<h3 id="orga08a7c7"><span class="section-number-3">3.6</span> Conclusion</h3>
<div id="outline-container-orgcf8f38f" class="outline-3">
<h3 id="orgcf8f38f"><span class="section-number-3">3.6</span> Conclusion</h3>
</div>
</div>
@ -1515,7 +1515,7 @@ Now we want to express \({}^VT_R\):
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p>
<p class="date">Created: 2021-01-08 ven. 15:53</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:29 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Vibration Isolation</title>
<meta name="generator" content="Org mode" />
@ -42,28 +42,28 @@
<li><a href="#org4b4dce5">1. HAC-LAC (Cascade) Control - Integral Control</a>
<ul>
<li><a href="#org9a6463e">1.1. Introduction</a></li>
<li><a href="#org3a99845">1.2. Initialization</a></li>
<li><a href="#org14c6b40">1.3. Identification</a>
<li><a href="#org2308492">1.2. Initialization</a></li>
<li><a href="#orgb5e88a6">1.3. Identification</a>
<ul>
<li><a href="#org0472596">1.3.1. HAC - Without LAC</a></li>
<li><a href="#org4f15e52">1.3.2. HAC - IFF</a></li>
<li><a href="#org7a58249">1.3.3. HAC - DVF</a></li>
<li><a href="#org7e602f6">1.3.1. HAC - Without LAC</a></li>
<li><a href="#org49dd47c">1.3.2. HAC - IFF</a></li>
<li><a href="#orgc4bf514">1.3.3. HAC - DVF</a></li>
</ul>
</li>
<li><a href="#org68ac3ce">1.4. Control Architecture</a></li>
<li><a href="#org668a952">1.5. 6x6 Plant Comparison</a></li>
<li><a href="#org57a64c4">1.6. HAC - DVF</a>
<li><a href="#orgc2cdba3">1.6. HAC - DVF</a>
<ul>
<li><a href="#orgd38d3c3">1.6.1. Plant</a></li>
<li><a href="#org9f6bb59">1.6.2. Controller Design</a></li>
<li><a href="#orga03849e">1.6.3. Obtained Performance</a></li>
<li><a href="#orgff953e4">1.6.1. Plant</a></li>
<li><a href="#orgbd635c1">1.6.2. Controller Design</a></li>
<li><a href="#org83c15a9">1.6.3. Obtained Performance</a></li>
</ul>
</li>
<li><a href="#org49dd47c">1.7. HAC - IFF</a>
<li><a href="#org5dfa0fd">1.7. HAC - IFF</a>
<ul>
<li><a href="#orgff953e4">1.7.1. Plant</a></li>
<li><a href="#orgbd635c1">1.7.2. Controller Design</a></li>
<li><a href="#org83c15a9">1.7.3. Obtained Performance</a></li>
<li><a href="#orgeedcb6b">1.7.1. Plant</a></li>
<li><a href="#orgd723b75">1.7.2. Controller Design</a></li>
<li><a href="#org54813bf">1.7.3. Obtained Performance</a></li>
</ul>
</li>
<li><a href="#org8e15485">1.8. Comparison</a></li>
@ -71,11 +71,11 @@
</li>
<li><a href="#orgdc1bcf2">2. MIMO Analysis</a>
<ul>
<li><a href="#orgb2d0659">2.1. Initialization</a></li>
<li><a href="#org2c99279">2.2. Identification</a>
<li><a href="#org7fd66be">2.1. Initialization</a></li>
<li><a href="#org06a70cd">2.2. Identification</a>
<ul>
<li><a href="#org7e602f6">2.2.1. HAC - Without LAC</a></li>
<li><a href="#orgc4bf514">2.2.2. HAC - DVF</a></li>
<li><a href="#org88e17f4">2.2.1. HAC - Without LAC</a></li>
<li><a href="#orgb75c6b7">2.2.2. HAC - DVF</a></li>
<li><a href="#orgba8c7bf">2.2.3. Cartesian Frame</a></li>
</ul>
</li>
@ -84,13 +84,13 @@
</li>
<li><a href="#orga095fa8">3. Diagonal Control based on the damped plant</a>
<ul>
<li><a href="#org7b7245e">3.1. Initialization</a></li>
<li><a href="#orgb5e88a6">3.2. Identification</a></li>
<li><a href="#orge901603">3.1. Initialization</a></li>
<li><a href="#orgce73f0c">3.2. Identification</a></li>
<li><a href="#orgb5a063b">3.3. Steady State Decoupling</a>
<ul>
<li><a href="#orgd0ce552">3.3.1. Pre-Compensator Design</a></li>
<li><a href="#org41b76c6">3.3.2. Diagonal Control Design</a></li>
<li><a href="#org923f450">3.3.3. Results</a></li>
<li><a href="#org3228759">3.3.3. Results</a></li>
</ul>
</li>
<li><a href="#orgb53dd48">3.4. Decoupling at Crossover</a></li>
@ -98,10 +98,10 @@
</li>
<li><a href="#org639412c">4. Time Domain Simulation</a>
<ul>
<li><a href="#org2308492">4.1. Initialization</a></li>
<li><a href="#orgc332811">4.1. Initialization</a></li>
<li><a href="#orgc72e6b5">4.2. HAC IFF</a></li>
<li><a href="#org757f9e9">4.3. HAC-DVF</a></li>
<li><a href="#org3228759">4.4. Results</a></li>
<li><a href="#org620278d">4.4. Results</a></li>
</ul>
</li>
<li><a href="#org6a9c87c">5. Functions</a>
@ -156,8 +156,8 @@ First, the LAC loop is closed (the LAC control is described <a href="active-damp
</div>
</div>
<div id="outline-container-org3a99845" class="outline-3">
<h3 id="org3a99845"><span class="section-number-3">1.2</span> Initialization</h3>
<div id="outline-container-org2308492" class="outline-3">
<h3 id="org2308492"><span class="section-number-3">1.2</span> Initialization</h3>
<div class="outline-text-3" id="text-1-2">
<p>
We first initialize the Stewart platform.
@ -188,8 +188,8 @@ The rotation point of the ground is located at the origin of frame \(\{A\}\).
</div>
</div>
<div id="outline-container-org14c6b40" class="outline-3">
<h3 id="org14c6b40"><span class="section-number-3">1.3</span> Identification</h3>
<div id="outline-container-orgb5e88a6" class="outline-3">
<h3 id="orgb5e88a6"><span class="section-number-3">1.3</span> Identification</h3>
<div class="outline-text-3" id="text-1-3">
<p>
We identify the transfer function from the actuator forces \(\bm{\tau}\) to the absolute displacement of the mobile platform \(\bm{\mathcal{X}}\) in three different cases:
@ -201,8 +201,8 @@ We identify the transfer function from the actuator forces \(\bm{\tau}\) to the
</ul>
</div>
<div id="outline-container-org0472596" class="outline-4">
<h4 id="org0472596"><span class="section-number-4">1.3.1</span> HAC - Without LAC</h4>
<div id="outline-container-org7e602f6" class="outline-4">
<h4 id="org7e602f6"><span class="section-number-4">1.3.1</span> HAC - Without LAC</h4>
<div class="outline-text-4" id="text-1-3-1">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'open-loop'</span>);
@ -227,8 +227,8 @@ We identify the transfer function from the actuator forces \(\bm{\tau}\) to the
</div>
</div>
<div id="outline-container-org4f15e52" class="outline-4">
<h4 id="org4f15e52"><span class="section-number-4">1.3.2</span> HAC - IFF</h4>
<div id="outline-container-org49dd47c" class="outline-4">
<h4 id="org49dd47c"><span class="section-number-4">1.3.2</span> HAC - IFF</h4>
<div class="outline-text-4" id="text-1-3-2">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'iff'</span>);
@ -254,8 +254,8 @@ We identify the transfer function from the actuator forces \(\bm{\tau}\) to the
</div>
</div>
<div id="outline-container-org7a58249" class="outline-4">
<h4 id="org7a58249"><span class="section-number-4">1.3.3</span> HAC - DVF</h4>
<div id="outline-container-orgc4bf514" class="outline-4">
<h4 id="orgc4bf514"><span class="section-number-4">1.3.3</span> HAC - DVF</h4>
<div class="outline-text-4" id="text-1-3-3">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>);
@ -319,12 +319,12 @@ We then design a controller based on the transfer functions from \(\bm{\mathcal{
</div>
</div>
<div id="outline-container-org57a64c4" class="outline-3">
<h3 id="org57a64c4"><span class="section-number-3">1.6</span> HAC - DVF</h3>
<div id="outline-container-orgc2cdba3" class="outline-3">
<h3 id="orgc2cdba3"><span class="section-number-3">1.6</span> HAC - DVF</h3>
<div class="outline-text-3" id="text-1-6">
</div>
<div id="outline-container-orgd38d3c3" class="outline-4">
<h4 id="orgd38d3c3"><span class="section-number-4">1.6.1</span> Plant</h4>
<div id="outline-container-orgff953e4" class="outline-4">
<h4 id="orgff953e4"><span class="section-number-4">1.6.1</span> Plant</h4>
<div class="outline-text-4" id="text-1-6-1">
<div id="orgc08547a" class="figure">
@ -335,8 +335,8 @@ We then design a controller based on the transfer functions from \(\bm{\mathcal{
</div>
</div>
<div id="outline-container-org9f6bb59" class="outline-4">
<h4 id="org9f6bb59"><span class="section-number-4">1.6.2</span> Controller Design</h4>
<div id="outline-container-orgbd635c1" class="outline-4">
<h4 id="orgbd635c1"><span class="section-number-4">1.6.2</span> Controller Design</h4>
<div class="outline-text-4" id="text-1-6-2">
<p>
We design a diagonal controller with equal bandwidth for the 6 terms.
@ -371,8 +371,8 @@ Finally, we pre-multiply the diagonal controller by \(\bm{J}^{-T}\) prior implem
</div>
</div>
<div id="outline-container-orga03849e" class="outline-4">
<h4 id="orga03849e"><span class="section-number-4">1.6.3</span> Obtained Performance</h4>
<div id="outline-container-org83c15a9" class="outline-4">
<h4 id="org83c15a9"><span class="section-number-4">1.6.3</span> Obtained Performance</h4>
<div class="outline-text-4" id="text-1-6-3">
<p>
We identify the transmissibility and compliance of the system.
@ -409,12 +409,12 @@ We identify the transmissibility and compliance of the system.
</div>
</div>
<div id="outline-container-org49dd47c" class="outline-3">
<h3 id="org49dd47c"><span class="section-number-3">1.7</span> HAC - IFF</h3>
<div id="outline-container-org5dfa0fd" class="outline-3">
<h3 id="org5dfa0fd"><span class="section-number-3">1.7</span> HAC - IFF</h3>
<div class="outline-text-3" id="text-1-7">
</div>
<div id="outline-container-orgff953e4" class="outline-4">
<h4 id="orgff953e4"><span class="section-number-4">1.7.1</span> Plant</h4>
<div id="outline-container-orgeedcb6b" class="outline-4">
<h4 id="orgeedcb6b"><span class="section-number-4">1.7.1</span> Plant</h4>
<div class="outline-text-4" id="text-1-7-1">
<div id="org66710a7" class="figure">
@ -425,8 +425,8 @@ We identify the transmissibility and compliance of the system.
</div>
</div>
<div id="outline-container-orgbd635c1" class="outline-4">
<h4 id="orgbd635c1"><span class="section-number-4">1.7.2</span> Controller Design</h4>
<div id="outline-container-orgd723b75" class="outline-4">
<h4 id="orgd723b75"><span class="section-number-4">1.7.2</span> Controller Design</h4>
<div class="outline-text-4" id="text-1-7-2">
<p>
We design a diagonal controller with equal bandwidth for the 6 terms.
@ -461,8 +461,8 @@ Finally, we pre-multiply the diagonal controller by \(\bm{J}^{-T}\) prior implem
</div>
</div>
<div id="outline-container-org83c15a9" class="outline-4">
<h4 id="org83c15a9"><span class="section-number-4">1.7.3</span> Obtained Performance</h4>
<div id="outline-container-org54813bf" class="outline-4">
<h4 id="org54813bf"><span class="section-number-4">1.7.3</span> Obtained Performance</h4>
<div class="outline-text-4" id="text-1-7-3">
<p>
We identify the transmissibility and compliance of the system.
@ -618,8 +618,8 @@ Let&rsquo;s define the system as shown in figure <a href="#org6f95566">13</a>.
</table>
</div>
<div id="outline-container-orgb2d0659" class="outline-3">
<h3 id="orgb2d0659"><span class="section-number-3">2.1</span> Initialization</h3>
<div id="outline-container-org7fd66be" class="outline-3">
<h3 id="org7fd66be"><span class="section-number-3">2.1</span> Initialization</h3>
<div class="outline-text-3" id="text-2-1">
<p>
We first initialize the Stewart platform.
@ -650,12 +650,12 @@ The rotation point of the ground is located at the origin of frame \(\{A\}\).
</div>
</div>
<div id="outline-container-org2c99279" class="outline-3">
<h3 id="org2c99279"><span class="section-number-3">2.2</span> Identification</h3>
<div id="outline-container-org06a70cd" class="outline-3">
<h3 id="org06a70cd"><span class="section-number-3">2.2</span> Identification</h3>
<div class="outline-text-3" id="text-2-2">
</div>
<div id="outline-container-org7e602f6" class="outline-4">
<h4 id="org7e602f6"><span class="section-number-4">2.2.1</span> HAC - Without LAC</h4>
<div id="outline-container-org88e17f4" class="outline-4">
<h4 id="org88e17f4"><span class="section-number-4">2.2.1</span> HAC - Without LAC</h4>
<div class="outline-text-4" id="text-2-2-1">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'open-loop'</span>);
@ -680,8 +680,8 @@ The rotation point of the ground is located at the origin of frame \(\{A\}\).
</div>
</div>
<div id="outline-container-orgc4bf514" class="outline-4">
<h4 id="orgc4bf514"><span class="section-number-4">2.2.2</span> HAC - DVF</h4>
<div id="outline-container-orgb75c6b7" class="outline-4">
<h4 id="orgb75c6b7"><span class="section-number-4">2.2.2</span> HAC - DVF</h4>
<div class="outline-text-4" id="text-2-2-2">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>);
@ -779,8 +779,8 @@ There are mainly three different cases:
</ol>
</div>
<div id="outline-container-org7b7245e" class="outline-3">
<h3 id="org7b7245e"><span class="section-number-3">3.1</span> Initialization</h3>
<div id="outline-container-orge901603" class="outline-3">
<h3 id="orge901603"><span class="section-number-3">3.1</span> Initialization</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We first initialize the Stewart platform.
@ -811,8 +811,8 @@ The rotation point of the ground is located at the origin of frame \(\{A\}\).
</div>
</div>
<div id="outline-container-orgb5e88a6" class="outline-3">
<h3 id="orgb5e88a6"><span class="section-number-3">3.2</span> Identification</h3>
<div id="outline-container-orgce73f0c" class="outline-3">
<h3 id="orgce73f0c"><span class="section-number-3">3.2</span> Identification</h3>
<div class="outline-text-3" id="text-3-2">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>);
@ -927,8 +927,8 @@ The overall controller is then \(K(s) = W_1 K_s(s)\) as shown in Figure <a href=
</div>
</div>
<div id="outline-container-org923f450" class="outline-4">
<h4 id="org923f450"><span class="section-number-4">3.3.3</span> Results</h4>
<div id="outline-container-org3228759" class="outline-4">
<h4 id="org3228759"><span class="section-number-4">3.3.3</span> Results</h4>
<div class="outline-text-4" id="text-3-3-3">
<p>
We identify the transmissibility and compliance of the Stewart platform under open-loop and closed-loop control.
@ -976,8 +976,8 @@ The results are shown in figure
<h2 id="org639412c"><span class="section-number-2">4</span> Time Domain Simulation</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-org2308492" class="outline-3">
<h3 id="org2308492"><span class="section-number-3">4.1</span> Initialization</h3>
<div id="outline-container-orgc332811" class="outline-3">
<h3 id="orgc332811"><span class="section-number-3">4.1</span> Initialization</h3>
<div class="outline-text-3" id="text-4-1">
<p>
We first initialize the Stewart platform.
@ -1100,8 +1100,8 @@ The rotation point of the ground is located at the origin of frame \(\{A\}\).
</div>
</div>
<div id="outline-container-org3228759" class="outline-3">
<h3 id="org3228759"><span class="section-number-3">4.4</span> Results</h3>
<div id="outline-container-org620278d" class="outline-3">
<h3 id="org620278d"><span class="section-number-3">4.4</span> Results</h3>
<div class="outline-text-3" id="text-4-4">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
@ -1215,7 +1215,7 @@ The rotation point of the ground is located at the origin of frame \(\{A\}\).
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:29</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

View File

@ -1,145 +0,0 @@
.org-bold { /* bold */ font-weight: bold; }
.org-bold-italic { /* bold-italic */ font-weight: bold; font-style: italic; }
.org-buffer-menu-buffer { /* buffer-menu-buffer */ font-weight: bold; }
.org-builtin { /* font-lock-builtin-face */ color: #7a378b; }
.org-button { /* button */ text-decoration: underline; }
.org-calendar-today { /* calendar-today */ text-decoration: underline; }
.org-change-log-acknowledgement { /* change-log-acknowledgement */ color: #b22222; }
.org-change-log-conditionals { /* change-log-conditionals */ color: #a0522d; }
.org-change-log-date { /* change-log-date */ color: #8b2252; }
.org-change-log-email { /* change-log-email */ color: #a0522d; }
.org-change-log-file { /* change-log-file */ color: #0000ff; }
.org-change-log-function { /* change-log-function */ color: #a0522d; }
.org-change-log-list { /* change-log-list */ color: #a020f0; }
.org-change-log-name { /* change-log-name */ color: #008b8b; }
.org-comint-highlight-input { /* comint-highlight-input */ font-weight: bold; }
.org-comint-highlight-prompt { /* comint-highlight-prompt */ color: #00008b; }
.org-comment { /* font-lock-comment-face */ color: #999988; font-style: italic; }
.org-comment-delimiter { /* font-lock-comment-delimiter-face */ color: #999988; font-style: italic; }
.org-completions-annotations { /* completions-annotations */ font-style: italic; }
.org-completions-common-part { /* completions-common-part */ color: #000000; background-color: #ffffff; }
.org-completions-first-difference { /* completions-first-difference */ font-weight: bold; }
.org-constant { /* font-lock-constant-face */ color: #008b8b; }
.org-diary { /* diary */ color: #ff0000; }
.org-diff-context { /* diff-context */ color: #7f7f7f; }
.org-diff-file-header { /* diff-file-header */ background-color: #b3b3b3; font-weight: bold; }
.org-diff-function { /* diff-function */ background-color: #cccccc; }
.org-diff-header { /* diff-header */ background-color: #cccccc; }
.org-diff-hunk-header { /* diff-hunk-header */ background-color: #cccccc; }
.org-diff-index { /* diff-index */ background-color: #b3b3b3; font-weight: bold; }
.org-diff-nonexistent { /* diff-nonexistent */ background-color: #b3b3b3; font-weight: bold; }
.org-diff-refine-change { /* diff-refine-change */ background-color: #d9d9d9; }
.org-dired-directory { /* dired-directory */ color: #0000ff; }
.org-dired-flagged { /* dired-flagged */ color: #ff0000; font-weight: bold; }
.org-dired-header { /* dired-header */ color: #228b22; }
.org-dired-ignored { /* dired-ignored */ color: #7f7f7f; }
.org-dired-mark { /* dired-mark */ color: #008b8b; }
.org-dired-marked { /* dired-marked */ color: #ff0000; font-weight: bold; }
.org-dired-perm-write { /* dired-perm-write */ color: #b22222; }
.org-dired-symlink { /* dired-symlink */ color: #a020f0; }
.org-dired-warning { /* dired-warning */ color: #ff0000; font-weight: bold; }
.org-doc { /* font-lock-doc-face */ color: #8b2252; }
.org-escape-glyph { /* escape-glyph */ color: #a52a2a; }
.org-file-name-shadow { /* file-name-shadow */ color: #7f7f7f; }
.org-flyspell-duplicate { /* flyspell-duplicate */ color: #cdad00; font-weight: bold; text-decoration: underline; }
.org-flyspell-incorrect { /* flyspell-incorrect */ color: #ff4500; font-weight: bold; text-decoration: underline; }
.org-fringe { /* fringe */ background-color: #f2f2f2; }
.org-function-name { /* font-lock-function-name-face */ color: teal; }
.org-header-line { /* header-line */ color: #333333; background-color: #e5e5e5; }
.org-help-argument-name { /* help-argument-name */ font-style: italic; }
.org-highlight { /* highlight */ background-color: #b4eeb4; }
.org-holiday { /* holiday */ background-color: #ffc0cb; }
.org-isearch { /* isearch */ color: #b0e2ff; background-color: #cd00cd; }
.org-isearch-fail { /* isearch-fail */ background-color: #ffc1c1; }
.org-italic { /* italic */ font-style: italic; }
.org-keyword { /* font-lock-keyword-face */ color: #0086b3; }
.org-lazy-highlight { /* lazy-highlight */ background-color: #afeeee; }
.org-link { /* link */ color: #0000ff; text-decoration: underline; }
.org-link-visited { /* link-visited */ color: #8b008b; text-decoration: underline; }
.org-log-edit-header { /* log-edit-header */ color: #a020f0; }
.org-log-edit-summary { /* log-edit-summary */ color: #0000ff; }
.org-log-edit-unknown-header { /* log-edit-unknown-header */ color: #b22222; }
.org-match { /* match */ background-color: #ffff00; }
.org-next-error { /* next-error */ background-color: #eedc82; }
.org-nobreak-space { /* nobreak-space */ color: #a52a2a; text-decoration: underline; }
.org-org-archived { /* org-archived */ color: #7f7f7f; }
.org-org-block { /* org-block */ color: #7f7f7f; }
.org-org-block-begin-line { /* org-block-begin-line */ color: #b22222; }
.org-org-block-end-line { /* org-block-end-line */ color: #b22222; }
.org-org-checkbox { /* org-checkbox */ font-weight: bold; }
.org-org-checkbox-statistics-done { /* org-checkbox-statistics-done */ color: #228b22; font-weight: bold; }
.org-org-checkbox-statistics-todo { /* org-checkbox-statistics-todo */ color: #ff0000; font-weight: bold; }
.org-org-clock-overlay { /* org-clock-overlay */ background-color: #ffff00; }
.org-org-code { /* org-code */ color: #7f7f7f; }
.org-org-column { /* org-column */ background-color: #e5e5e5; }
.org-org-column-title { /* org-column-title */ background-color: #e5e5e5; font-weight: bold; text-decoration: underline; }
.org-org-date { /* org-date */ color: #a020f0; text-decoration: underline; }
.org-org-document-info { /* org-document-info */ color: #191970; }
.org-org-document-info-keyword { /* org-document-info-keyword */ color: #7f7f7f; }
.org-org-document-title { /* org-document-title */ color: #191970; font-size: 144%; font-weight: bold; }
.org-org-done { /* org-done */ color: #228b22; font-weight: bold; }
.org-org-drawer { /* org-drawer */ color: #0000ff; }
.org-org-ellipsis { /* org-ellipsis */ color: #b8860b; text-decoration: underline; }
.org-org-footnote { /* org-footnote */ color: #a020f0; text-decoration: underline; }
.org-org-formula { /* org-formula */ color: #b22222; }
.org-org-headline-done { /* org-headline-done */ color: #bc8f8f; }
.org-org-hide { /* org-hide */ color: #ffffff; }
.org-org-latex-and-export-specials { /* org-latex-and-export-specials */ color: #8b4513; }
.org-org-level-1 { /* org-level-1 */ color: #0000ff; }
.org-org-level-2 { /* org-level-2 */ color: #a0522d; }
.org-org-level-3 { /* org-level-3 */ color: #a020f0; }
.org-org-level-4 { /* org-level-4 */ color: #b22222; }
.org-org-level-5 { /* org-level-5 */ color: #228b22; }
.org-org-level-6 { /* org-level-6 */ color: #008b8b; }
.org-org-level-7 { /* org-level-7 */ color: #7a378b; }
.org-org-level-8 { /* org-level-8 */ color: #8b2252; }
.org-org-link { /* org-link */ color: #0000ff; text-decoration: underline; }
.org-org-meta-line { /* org-meta-line */ color: #b22222; }
.org-org-mode-line-clock { /* org-mode-line-clock */ color: #000000; background-color: #bfbfbf; }
.org-org-mode-line-clock-overrun { /* org-mode-line-clock-overrun */ color: #000000; background-color: #ff0000; }
.org-org-quote { /* org-quote */ color: #7f7f7f; }
.org-org-scheduled { /* org-scheduled */ color: #006400; }
.org-org-scheduled-previously { /* org-scheduled-previously */ color: #b22222; }
.org-org-scheduled-today { /* org-scheduled-today */ color: #006400; }
.org-org-sexp-date { /* org-sexp-date */ color: #a020f0; }
.org-org-special-keyword { /* org-special-keyword */ color: #a020f0; }
.org-org-table { /* org-table */ color: #0000ff; }
.org-org-tag { /* org-tag */ font-weight: bold; }
.org-org-target { /* org-target */ text-decoration: underline; }
.org-org-time-grid { /* org-time-grid */ color: #b8860b; }
.org-org-todo { /* org-todo */ color: #ff0000; font-weight: bold; }
.org-org-upcoming-deadline { /* org-upcoming-deadline */ color: #b22222; }
.org-org-verbatim { /* org-verbatim */ color: #7f7f7f; }
.org-org-verse { /* org-verse */ color: #7f7f7f; }
.org-org-warning { /* org-warning */ color: #ff0000; font-weight: bold; }
.org-outline-1 { /* outline-1 */ color: #0000ff; }
.org-outline-2 { /* outline-2 */ color: #a0522d; }
.org-outline-3 { /* outline-3 */ color: #a020f0; }
.org-outline-4 { /* outline-4 */ color: #b22222; }
.org-outline-5 { /* outline-5 */ color: #228b22; }
.org-outline-6 { /* outline-6 */ color: #008b8b; }
.org-outline-7 { /* outline-7 */ color: #7a378b; }
.org-outline-8 { /* outline-8 */ color: #8b2252; }
.org-preprocessor { /* font-lock-preprocessor-face */ color: #7a378b; }
.org-query-replace { /* query-replace */ color: #b0e2ff; background-color: #cd00cd; }
.org-regexp-grouping-backslash { /* font-lock-regexp-grouping-backslash */ font-weight: bold; }
.org-regexp-grouping-construct { /* font-lock-regexp-grouping-construct */ font-weight: bold; }
.org-region { /* region */ background-color: #eedc82; }
.org-secondary-selection { /* secondary-selection */ background-color: #ffff00; }
.org-shadow { /* shadow */ color: #7f7f7f; }
.org-show-paren-match { /* show-paren-match */ background-color: #40e0d0; }
.org-show-paren-mismatch { /* show-paren-mismatch */ color: #ffffff; background-color: #a020f0; }
.org-string { /* font-lock-string-face */ color: #dd1144; }
.org-tool-bar { /* tool-bar */ color: #000000; background-color: #bfbfbf; }
.org-tooltip { /* tooltip */ color: #000000; background-color: #ffffe0; }
.org-trailing-whitespace { /* trailing-whitespace */ background-color: #ff0000; }
.org-type { /* font-lock-type-face */ color: #228b22; }
.org-underline { /* underline */ text-decoration: underline; }
.org-variable-name { /* font-lock-variable-name-face */ color: teal; }
.org-warning { /* font-lock-warning-face */ color: #ff0000; font-weight: bold; }
.org-widget-button { /* widget-button */ font-weight: bold; }
.org-widget-button-pressed { /* widget-button-pressed */ color: #ff0000; }
.org-widget-documentation { /* widget-documentation */ color: #006400; }
.org-widget-field { /* widget-field */ background-color: #d9d9d9; }
.org-widget-inactive { /* widget-inactive */ color: #7f7f7f; }
.org-widget-single-line-field { /* widget-single-line-field */ background-color: #d9d9d9; }

File diff suppressed because it is too large Load Diff

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:30 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Cubic configuration for the Stewart Platform</title>
<meta name="generator" content="Org mode" />
@ -45,34 +45,34 @@
<li><a href="#org6359f2f">1.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li>
<li><a href="#org5c37be2">1.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li>
<li><a href="#org32ac59a">1.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li>
<li><a href="#org4e88cdb">1.5. Conclusion</a></li>
<li><a href="#orgeb8ae82">1.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#org312b7d4">2. Configuration with the Cube&rsquo;s center above the mobile platform</a>
<ul>
<li><a href="#org4983654">2.1. Having Cube&rsquo;s center above the top platform</a></li>
<li><a href="#orge53b7f6">2.2. Size of the platforms</a></li>
<li><a href="#org561a2bc">2.3. Conclusion</a></li>
<li><a href="#org52825e8">2.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org2387b96">3. Cubic size analysis</a>
<ul>
<li><a href="#org3647f9f">3.1. Analysis</a></li>
<li><a href="#org948a425">3.2. Conclusion</a></li>
<li><a href="#org701701b">3.2. Conclusion</a></li>
</ul>
</li>
<li><a href="#org174af3a">4. Dynamic Coupling in the Cartesian Frame</a>
<ul>
<li><a href="#orgdb33aa6">4.1. Cube&rsquo;s center at the Center of Mass of the mobile platform</a></li>
<li><a href="#org49b330b">4.2. Cube&rsquo;s center not coincident with the Mass of the Mobile platform</a></li>
<li><a href="#org7d50eae">4.3. Conclusion</a></li>
<li><a href="#orgf407e4d">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org7831cff">5. Dynamic Coupling between actuators and sensors of each strut</a>
<ul>
<li><a href="#org38e9e8f">5.1. Coupling between the actuators and sensors - Cubic Architecture</a></li>
<li><a href="#org21d40d3">5.2. Coupling between the actuators and sensors - Non-Cubic Architecture</a></li>
<li><a href="#orgeb8ae82">5.3. Conclusion</a></li>
<li><a href="#org0348380">5.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org3ce1c89">6. Functions</a>
@ -128,7 +128,7 @@ In this document, the cubic architecture is analyzed:
<a id="org6bc5f56"></a>
</p>
<div class="note" id="org6a03293">
<div class="note" id="org783c5d6">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_stiffnessl.m">here</a>.
</p>
@ -620,10 +620,10 @@ The center of the cube from the top platform is at \(z = 110 - 175 = -65\).
</div>
</div>
<div id="outline-container-org4e88cdb" class="outline-3">
<h3 id="org4e88cdb"><span class="section-number-3">1.5</span> Conclusion</h3>
<div id="outline-container-orgeb8ae82" class="outline-3">
<h3 id="orgeb8ae82"><span class="section-number-3">1.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-5">
<div class="important" id="org2fc62c4">
<div class="important" id="orgb449c4a">
<p>
Here are the conclusion about the Stiffness matrix for the Cubic configuration:
</p>
@ -644,7 +644,7 @@ Here are the conclusion about the Stiffness matrix for the Cubic configuration:
<a id="org419cdb0"></a>
</p>
<div class="note" id="orgd5c0d4d">
<div class="note" id="orge405fbc">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_above_platforml.m">here</a>.
</p>
@ -1049,10 +1049,10 @@ For a small cube:
</div>
</div>
<div id="outline-container-org561a2bc" class="outline-3">
<h3 id="org561a2bc"><span class="section-number-3">2.3</span> Conclusion</h3>
<div id="outline-container-org52825e8" class="outline-3">
<h3 id="org52825e8"><span class="section-number-3">2.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-3">
<div class="important" id="orga24e443">
<div class="important" id="orgc3fb4db">
<p>
We found that we can have a diagonal stiffness matrix using the cubic architecture when \(\{A\}\) and \(\{B\}\) are located above the top platform.
Depending on the cube&rsquo;s size, we obtain 3 different configurations.
@ -1102,7 +1102,7 @@ Depending on the cube&rsquo;s size, we obtain 3 different configurations.
<a id="org53ade24"></a>
</p>
<div class="note" id="orgfd32e5a">
<div class="note" id="org6ff8a60">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_size_analysisl.m">here</a>.
</p>
@ -1168,14 +1168,14 @@ We also find that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) are varyi
</div>
</div>
<div id="outline-container-org948a425" class="outline-3">
<h3 id="org948a425"><span class="section-number-3">3.2</span> Conclusion</h3>
<div id="outline-container-org701701b" class="outline-3">
<h3 id="org701701b"><span class="section-number-3">3.2</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-2">
<p>
We observe that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) increase linearly with the cube size.
</p>
<div class="important" id="org60cc507">
<div class="important" id="org93b8347">
<p>
In order to maximize the rotational stiffness of the Stewart platform, the size of the cube should be the highest possible.
</p>
@ -1192,7 +1192,7 @@ In order to maximize the rotational stiffness of the Stewart platform, the size
<a id="org3507b2b"></a>
</p>
<div class="note" id="org5934a9c">
<div class="note" id="org265afc7">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_coupling_cartesianl.m">here</a>.
</p>
@ -1381,7 +1381,7 @@ It is interesting to note here that the system shown in Figure <a href="#org9d84
<p><span class="figure-number">Figure 12: </span>Alternative way to decouple the system</p>
</div>
<div class="important" id="org489ed3b">
<div class="important" id="orgd31482e">
<p>
The dynamics is well decoupled at all frequencies.
</p>
@ -1525,7 +1525,7 @@ The obtain dynamics \(\bm{G}_{c}(s) = \bm{J}^{-T} \bm{G}(s) \bm{J}^{-1}\) is sho
<p><span class="figure-number">Figure 14: </span>Obtained Dynamics from \(\bm{\mathcal{F}}\) to \(\bm{\mathcal{X}}\) (<a href="./figs/stewart_conf_coupling_mass_matrix.png">png</a>, <a href="./figs/stewart_conf_coupling_mass_matrix.pdf">pdf</a>)</p>
</div>
<div class="important" id="org798e5c6">
<div class="important" id="orgc60cb20">
<p>
The system is decoupled at low frequency (the Stiffness matrix being diagonal), but it is <b>not</b> decoupled at all frequencies.
</p>
@ -1538,10 +1538,10 @@ This was expected as the mass matrix is not diagonal (the Center of Mass of the
</div>
</div>
<div id="outline-container-org7d50eae" class="outline-3">
<h3 id="org7d50eae"><span class="section-number-3">4.3</span> Conclusion</h3>
<div id="outline-container-orgf407e4d" class="outline-3">
<h3 id="orgf407e4d"><span class="section-number-3">4.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-3">
<div class="important" id="org9b1be89">
<div class="important" id="org982344b">
<p>
Some conclusions can be drawn from the above analysis:
</p>
@ -1562,7 +1562,7 @@ Some conclusions can be drawn from the above analysis:
<a id="org7b3ed31"></a>
</p>
<div class="note" id="org7a9b096">
<div class="note" id="org96fba24">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_coupling_strutsl.m">here</a>.
</p>
@ -1729,10 +1729,10 @@ And we identify the dynamics from the actuator forces \(\tau_{i}\) to the relati
</div>
</div>
<div id="outline-container-orgeb8ae82" class="outline-3">
<h3 id="orgeb8ae82"><span class="section-number-3">5.3</span> Conclusion</h3>
<div id="outline-container-org0348380" class="outline-3">
<h3 id="org0348380"><span class="section-number-3">5.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-3">
<div class="important" id="org74729c6">
<div class="important" id="orgd92f0ac">
<p>
The Cubic architecture seems to not have any significant effect on the coupling between actuator and sensors of each strut and thus provides no advantages for decentralized control.
</p>
@ -1905,7 +1905,7 @@ We now which to compute the position of the joints \(a_{i}\) and \(b_{i}\).
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:30 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Dynamics Study</title>
<meta name="generator" content="Org mode" />
@ -43,13 +43,13 @@
<ul>
<li><a href="#orgc730bef">1.1. Comparison with fixed support</a></li>
<li><a href="#orgefde538">1.2. Comparison with a flexible support</a></li>
<li><a href="#org53765b8">1.3. Conclusion</a></li>
<li><a href="#orga9eb2fd">1.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgb6a1ef7">2. Comparison of the static transfer function and the Compliance matrix</a>
<ul>
<li><a href="#org3f1c253">2.1. Analysis</a></li>
<li><a href="#orga9eb2fd">2.2. Conclusion</a></li>
<li><a href="#orge261263">2.2. Conclusion</a></li>
</ul>
</li>
</ul>
@ -235,10 +235,10 @@ And thus \(\mathcal{F}_{x}\) and \(\mathcal{F}_{x,\text{ext}}\) have clearly <b>
</div>
<div id="outline-container-org53765b8" class="outline-3">
<h3 id="org53765b8"><span class="section-number-3">1.3</span> Conclusion</h3>
<div id="outline-container-orga9eb2fd" class="outline-3">
<h3 id="orga9eb2fd"><span class="section-number-3">1.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-3">
<div class="important" id="org35e4b5f">
<div class="important" id="org4878fef">
<p>
The transfer function from forces/torques applied by the actuators on the payload \(\bm{\mathcal{F}} = \bm{J}^T \bm{\tau}\) to the pose of the mobile platform \(\bm{\mathcal{X}}\) is the same as the transfer function from external forces/torques to \(\bm{\mathcal{X}}\) as long as the Stewart platform&rsquo;s base is fixed.
</p>
@ -470,10 +470,10 @@ And now at the Compliance matrix.
</div>
</div>
<div id="outline-container-orga9eb2fd" class="outline-3">
<h3 id="orga9eb2fd"><span class="section-number-3">2.2</span> Conclusion</h3>
<div id="outline-container-orge261263" class="outline-3">
<h3 id="orge261263"><span class="section-number-3">2.2</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-2">
<div class="important" id="orgcecc007">
<div class="important" id="org2428297">
<p>
The low frequency transfer function matrix from \(\mathcal{\bm{F}}\) to \(\mathcal{\bm{X}}\) corresponds to the compliance matrix of the Stewart platform.
</p>
@ -485,7 +485,7 @@ The low frequency transfer function matrix from \(\mathcal{\bm{F}}\) to \(\mathc
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:29 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform with Flexible Elements</title>
<meta name="generator" content="Org mode" />
@ -24,48 +24,48 @@
<ul>
<li><a href="#orgc309c7b">1. Simscape Model</a>
<ul>
<li><a href="#orgae23ac5">1.1. Flexible APA</a></li>
<li><a href="#org0e00e94">1.1. Flexible APA</a></li>
<li><a href="#orgf337fe9">1.2. Flexible Joint</a></li>
<li><a href="#orga8d83ce">1.3. Identification</a></li>
<li><a href="#orgc239ed1">1.3. Identification</a></li>
<li><a href="#org59e4972">1.4. No Flexible Elements</a></li>
<li><a href="#orgb06052a">1.5. Flexible joints</a></li>
<li><a href="#org0e00e94">1.6. Flexible APA</a></li>
<li><a href="#org4cccff6">1.6. Flexible APA</a></li>
<li><a href="#org4f41f14">1.7. Flexible Joints and APA</a></li>
<li><a href="#orga39e477">1.8. Save</a></li>
<li><a href="#org1e66228">1.9. Direct Velocity Feedback</a></li>
<li><a href="#orgef60bbc">1.10. Integral Force Feedback</a></li>
<li><a href="#org50fdd32">1.11. Procedure to include flexible elements into Simscape</a></li>
<li><a href="#org52c4099">1.12. Conclusion</a></li>
<li><a href="#org55fe34f">1.12. Conclusion</a></li>
</ul>
</li>
<li><a href="#org2d65f84">2. Control with flexible elements</a>
<ul>
<li><a href="#org7f0d75c">2.1. Flexible APA and Flexible Joint</a></li>
<li><a href="#orgc239ed1">2.2. Identification</a></li>
<li><a href="#org5f84aea">2.2. Identification</a></li>
<li><a href="#org5ae25be">2.3. Decentralized Direct Velocity Feedback</a></li>
<li><a href="#org3d014d0">2.4. HAC</a></li>
</ul>
</li>
<li><a href="#org2b937bc">3. Flexible Joint Specifications</a>
<ul>
<li><a href="#org166293c">3.1. Stewart Platform Initialization</a></li>
<li><a href="#org775a387">3.1. Stewart Platform Initialization</a></li>
<li><a href="#orgc430963">3.2. Effect of the Bending Stiffness</a></li>
<li><a href="#orgb29824b">3.3. Effect of the Torsion Stiffness</a></li>
<li><a href="#org6d029b0">3.4. Effect of the Axial Stiffness</a></li>
<li><a href="#org5177329">3.5. Effect of the Radial (Shear) Stiffness</a></li>
<li><a href="#orgd67ef9e">3.6. Comparison of perfect joint and worst specified joint</a></li>
<li><a href="#org55fe34f">3.7. Conclusion</a></li>
<li><a href="#orge0f8240">3.6. Comparison of perfect joint and worst specified joint</a></li>
<li><a href="#org79b6e2d">3.7. Conclusion</a></li>
</ul>
</li>
<li><a href="#org8798d60">4. Flexible Joint Specifications with the APA300ML</a>
<ul>
<li><a href="#org6fc554b">4.1. Stewart Platform Initialization</a></li>
<li><a href="#orge0f8240">4.2. Comparison of perfect joint and worst specified joint</a></li>
<li><a href="#org6d56b33">4.1. Stewart Platform Initialization</a></li>
<li><a href="#orgdc3d576">4.2. Comparison of perfect joint and worst specified joint</a></li>
</ul>
</li>
<li><a href="#orgbae1ad3">5. Relative Motion Sensors</a>
<ul>
<li><a href="#org775a387">5.1. Stewart Platform Initialization</a></li>
<li><a href="#org74f7ec9">5.1. Stewart Platform Initialization</a></li>
</ul>
</li>
<li><a href="#orgb454975">6. Struts with Encoders</a>
@ -82,8 +82,8 @@
<h2 id="orgc309c7b"><span class="section-number-2">1</span> Simscape Model</h2>
<div class="outline-text-2" id="text-1">
</div>
<div id="outline-container-orgae23ac5" class="outline-3">
<h3 id="orgae23ac5"><span class="section-number-3">1.1</span> Flexible APA</h3>
<div id="outline-container-org0e00e94" class="outline-3">
<h3 id="org0e00e94"><span class="section-number-3">1.1</span> Flexible APA</h3>
<div class="outline-text-3" id="text-1-1">
<div class="org-src-container">
<pre class="src src-matlab">apa = load(<span class="org-string">'./mat/APA300ML.mat'</span>, <span class="org-string">'int_xyz'</span>, <span class="org-string">'int_i'</span>, <span class="org-string">'n_xyz'</span>, <span class="org-string">'n_i'</span>, <span class="org-string">'nodes'</span>, <span class="org-string">'M'</span>, <span class="org-string">'K'</span>);
@ -325,8 +325,8 @@
</div>
</div>
<div id="outline-container-orga8d83ce" class="outline-3">
<h3 id="orga8d83ce"><span class="section-number-3">1.3</span> Identification</h3>
<div id="outline-container-orgc239ed1" class="outline-3">
<h3 id="orgc239ed1"><span class="section-number-3">1.3</span> Identification</h3>
<div class="outline-text-3" id="text-1-3">
<p>
And we identify the dynamics from force actuators to force sensors.
@ -435,8 +435,8 @@ And we identify the dynamics from force actuators to force sensors.
</div>
</div>
<div id="outline-container-org0e00e94" class="outline-3">
<h3 id="org0e00e94"><span class="section-number-3">1.6</span> Flexible APA</h3>
<div id="outline-container-org4cccff6" class="outline-3">
<h3 id="org4cccff6"><span class="section-number-3">1.6</span> Flexible APA</h3>
<div class="outline-text-3" id="text-1-6">
<div id="org6abb282" class="figure">
@ -566,10 +566,10 @@ In order to model a flexible element with only few mass-spring-damper elements:
</div>
</div>
<div id="outline-container-org52c4099" class="outline-3">
<h3 id="org52c4099"><span class="section-number-3">1.12</span> Conclusion</h3>
<div id="outline-container-org55fe34f" class="outline-3">
<h3 id="org55fe34f"><span class="section-number-3">1.12</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-12">
<div class="important" id="org7acf160">
<div class="important" id="orgba069e0">
<p>
The results seems to indicate that the model is well represented with only few degrees of freedom.
This permit to have a relatively sane number of states for the model.
@ -623,8 +623,8 @@ This permit to have a relatively sane number of states for the model.
</div>
</div>
<div id="outline-container-orgc239ed1" class="outline-3">
<h3 id="orgc239ed1"><span class="section-number-3">2.2</span> Identification</h3>
<div id="outline-container-org5f84aea" class="outline-3">
<h3 id="org5f84aea"><span class="section-number-3">2.2</span> Identification</h3>
<div class="outline-text-3" id="text-2-2">
<p>
And we identify the dynamics from force actuators to force sensors.
@ -720,8 +720,8 @@ Controller Design
<h2 id="org2b937bc"><span class="section-number-2">3</span> Flexible Joint Specifications</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-org166293c" class="outline-3">
<h3 id="org166293c"><span class="section-number-3">3.1</span> Stewart Platform Initialization</h3>
<div id="outline-container-org775a387" class="outline-3">
<h3 id="org775a387"><span class="section-number-3">3.1</span> Stewart Platform Initialization</h3>
<div class="outline-text-3" id="text-3-1">
<div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform();
@ -798,11 +798,11 @@ Controller Design
</div>
</div>
<div id="outline-container-orgd67ef9e" class="outline-3">
<h3 id="orgd67ef9e"><span class="section-number-3">3.6</span> Comparison of perfect joint and worst specified joint</h3>
<div id="outline-container-orge0f8240" class="outline-3">
<h3 id="orge0f8240"><span class="section-number-3">3.6</span> Comparison of perfect joint and worst specified joint</h3>
</div>
<div id="outline-container-org55fe34f" class="outline-3">
<h3 id="org55fe34f"><span class="section-number-3">3.7</span> Conclusion</h3>
<div id="outline-container-org79b6e2d" class="outline-3">
<h3 id="org79b6e2d"><span class="section-number-3">3.7</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-7">
<p>
Qualitatively:
@ -891,8 +891,8 @@ Quantitatively:
<h2 id="org8798d60"><span class="section-number-2">4</span> Flexible Joint Specifications with the APA300ML</h2>
<div class="outline-text-2" id="text-4">
</div>
<div id="outline-container-org6fc554b" class="outline-3">
<h3 id="org6fc554b"><span class="section-number-3">4.1</span> Stewart Platform Initialization</h3>
<div id="outline-container-org6d56b33" class="outline-3">
<h3 id="org6d56b33"><span class="section-number-3">4.1</span> Stewart Platform Initialization</h3>
<div class="outline-text-3" id="text-4-1">
<div class="org-src-container">
<pre class="src src-matlab">apa = load(<span class="org-string">'./mat/APA300ML.mat'</span>, <span class="org-string">'int_xyz'</span>, <span class="org-string">'int_i'</span>, <span class="org-string">'n_xyz'</span>, <span class="org-string">'n_i'</span>, <span class="org-string">'nodes'</span>, <span class="org-string">'M'</span>, <span class="org-string">'K'</span>);
@ -934,16 +934,16 @@ Quantitatively:
</div>
</div>
<div id="outline-container-orge0f8240" class="outline-3">
<h3 id="orge0f8240"><span class="section-number-3">4.2</span> Comparison of perfect joint and worst specified joint</h3>
<div id="outline-container-orgdc3d576" class="outline-3">
<h3 id="orgdc3d576"><span class="section-number-3">4.2</span> Comparison of perfect joint and worst specified joint</h3>
</div>
</div>
<div id="outline-container-orgbae1ad3" class="outline-2">
<h2 id="orgbae1ad3"><span class="section-number-2">5</span> Relative Motion Sensors</h2>
<div class="outline-text-2" id="text-5">
</div>
<div id="outline-container-org775a387" class="outline-3">
<h3 id="org775a387"><span class="section-number-3">5.1</span> Stewart Platform Initialization</h3>
<div id="outline-container-org74f7ec9" class="outline-3">
<h3 id="org74f7ec9"><span class="section-number-3">5.1</span> Stewart Platform Initialization</h3>
<div class="outline-text-3" id="text-5-1">
<div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform();
@ -1216,7 +1216,7 @@ Quantitatively:
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:29</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:29 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Identification of the Stewart Platform using Simscape</title>
<meta name="generator" content="Org mode" />
@ -50,13 +50,13 @@
</li>
<li><a href="#orgfeed9a3">2. Transmissibility Analysis</a>
<ul>
<li><a href="#org7c6996a">2.1. Initialize the Stewart platform</a></li>
<li><a href="#org5ba3096">2.1. Initialize the Stewart platform</a></li>
<li><a href="#org279dcc8">2.2. Transmissibility</a></li>
</ul>
</li>
<li><a href="#org3ad92e9">3. Compliance Analysis</a>
<ul>
<li><a href="#org5ba3096">3.1. Initialize the Stewart platform</a></li>
<li><a href="#orgc957431">3.1. Initialize the Stewart platform</a></li>
<li><a href="#org26cb46a">3.2. Compliance</a></li>
</ul>
</li>
@ -64,18 +64,18 @@
<ul>
<li><a href="#org25ca725">4.1. Compute the Transmissibility</a>
<ul>
<li><a href="#orgeae7abf">Function description</a></li>
<li><a href="#orge4c0895">Optional Parameters</a></li>
<li><a href="#orgafb57d0">Function description</a></li>
<li><a href="#orga00af61">Optional Parameters</a></li>
<li><a href="#org17a8811">Identification of the Transmissibility Matrix</a></li>
<li><a href="#orgfd96322">Computation of the Frobenius norm</a></li>
<li><a href="#orgbc9a383">Computation of the Frobenius norm</a></li>
</ul>
</li>
<li><a href="#orgb6e05b3">4.2. Compute the Compliance</a>
<ul>
<li><a href="#orgafb57d0">Function description</a></li>
<li><a href="#orga00af61">Optional Parameters</a></li>
<li><a href="#org210c0ca">Function description</a></li>
<li><a href="#org24feeb1">Optional Parameters</a></li>
<li><a href="#org2c35042">Identification of the Compliance Matrix</a></li>
<li><a href="#orgbc9a383">Computation of the Frobenius norm</a></li>
<li><a href="#orgb002200">Computation of the Frobenius norm</a></li>
</ul>
</li>
</ul>
@ -402,8 +402,8 @@ Save the movie of the mode shape.
<a id="org5213401"></a>
</p>
</div>
<div id="outline-container-org7c6996a" class="outline-3">
<h3 id="org7c6996a"><span class="section-number-3">2.1</span> Initialize the Stewart platform</h3>
<div id="outline-container-org5ba3096" class="outline-3">
<h3 id="org5ba3096"><span class="section-number-3">2.1</span> Initialize the Stewart platform</h3>
<div class="outline-text-3" id="text-2-1">
<div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform();
@ -524,8 +524,8 @@ And we normalize by a factor \(\sqrt{6}\) to obtain a performance metric compara
<a id="org39baa25"></a>
</p>
</div>
<div id="outline-container-org5ba3096" class="outline-3">
<h3 id="org5ba3096"><span class="section-number-3">3.1</span> Initialize the Stewart platform</h3>
<div id="outline-container-orgc957431" class="outline-3">
<h3 id="orgc957431"><span class="section-number-3">3.1</span> Initialize the Stewart platform</h3>
<div class="outline-text-3" id="text-3-1">
<div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform();
@ -637,9 +637,9 @@ We can try to use the Frobenius norm to obtain a scalar value representing the 6
</p>
</div>
<div id="outline-container-orgeae7abf" class="outline-4">
<h4 id="orgeae7abf">Function description</h4>
<div class="outline-text-4" id="text-orgeae7abf">
<div id="outline-container-orgafb57d0" class="outline-4">
<h4 id="orgafb57d0">Function description</h4>
<div class="outline-text-4" id="text-orgafb57d0">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[T, T_norm, freqs]</span> = <span class="org-function-name">computeTransmissibility</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% computeTransmissibility -</span>
@ -660,9 +660,9 @@ We can try to use the Frobenius norm to obtain a scalar value representing the 6
</div>
</div>
<div id="outline-container-orge4c0895" class="outline-4">
<h4 id="orge4c0895">Optional Parameters</h4>
<div class="outline-text-4" id="text-orge4c0895">
<div id="outline-container-orga00af61" class="outline-4">
<h4 id="orga00af61">Optional Parameters</h4>
<div class="outline-text-4" id="text-orga00af61">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">args</span>.plots logical {mustBeNumericOrLogical} = <span class="org-constant">false</span>
@ -739,9 +739,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div>
</div>
<div id="outline-container-orgfd96322" class="outline-4">
<h4 id="orgfd96322">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-orgfd96322">
<div id="outline-container-orgbc9a383" class="outline-4">
<h4 id="orgbc9a383">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-orgbc9a383">
<div class="org-src-container">
<pre class="src src-matlab">T_norm = zeros(length(freqs), 1);
@ -778,9 +778,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</p>
</div>
<div id="outline-container-orgafb57d0" class="outline-4">
<h4 id="orgafb57d0">Function description</h4>
<div class="outline-text-4" id="text-orgafb57d0">
<div id="outline-container-org210c0ca" class="outline-4">
<h4 id="org210c0ca">Function description</h4>
<div class="outline-text-4" id="text-org210c0ca">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[C, C_norm, freqs]</span> = <span class="org-function-name">computeCompliance</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% computeCompliance -</span>
@ -801,9 +801,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div>
</div>
<div id="outline-container-orga00af61" class="outline-4">
<h4 id="orga00af61">Optional Parameters</h4>
<div class="outline-text-4" id="text-orga00af61">
<div id="outline-container-org24feeb1" class="outline-4">
<h4 id="org24feeb1">Optional Parameters</h4>
<div class="outline-text-4" id="text-org24feeb1">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">args</span>.plots logical {mustBeNumericOrLogical} = <span class="org-constant">false</span>
@ -879,9 +879,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div>
</div>
<div id="outline-container-orgbc9a383" class="outline-4">
<h4 id="orgbc9a383">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-orgbc9a383">
<div id="outline-container-orgb002200" class="outline-4">
<h4 id="orgb002200">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-orgb002200">
<div class="org-src-container">
<pre class="src src-matlab">freqs = args.freqs;
@ -915,7 +915,7 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:29</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
!function(a,b){"use strict";function c(c,g){var h=this;h.$el=a(c),h.el=c,h.id=e++,h.$window=a(b),h.$document=a(document),h.$el.bind("destroyed",a.proxy(h.teardown,h)),h.$clonedHeader=null,h.$originalHeader=null,h.isSticky=!1,h.hasBeenSticky=!1,h.leftOffset=null,h.topOffset=null,h.init=function(){h.$el.each(function(){var b=a(this);b.css("padding",0),h.$originalHeader=a("thead:first",this),h.$clonedHeader=h.$originalHeader.clone(),b.trigger("clonedHeader."+d,[h.$clonedHeader]),h.$clonedHeader.addClass("tableFloatingHeader"),h.$clonedHeader.css("display","none"),h.$originalHeader.addClass("tableFloatingHeaderOriginal"),h.$originalHeader.after(h.$clonedHeader),h.$printStyle=a('<style type="text/css" media="print">.tableFloatingHeader{display:none !important;}.tableFloatingHeaderOriginal{position:static !important;}</style>'),a("head").append(h.$printStyle)}),h.setOptions(g),h.updateWidth(),h.toggleHeaders(),h.bind()},h.destroy=function(){h.$el.unbind("destroyed",h.teardown),h.teardown()},h.teardown=function(){h.isSticky&&h.$originalHeader.css("position","static"),a.removeData(h.el,"plugin_"+d),h.unbind(),h.$clonedHeader.remove(),h.$originalHeader.removeClass("tableFloatingHeaderOriginal"),h.$originalHeader.css("visibility","visible"),h.$printStyle.remove(),h.el=null,h.$el=null},h.bind=function(){h.$scrollableArea.on("scroll."+d,h.toggleHeaders),h.isWindowScrolling||(h.$window.on("scroll."+d+h.id,h.setPositionValues),h.$window.on("resize."+d+h.id,h.toggleHeaders)),h.$scrollableArea.on("resize."+d,h.toggleHeaders),h.$scrollableArea.on("resize."+d,h.updateWidth)},h.unbind=function(){h.$scrollableArea.off("."+d,h.toggleHeaders),h.isWindowScrolling||(h.$window.off("."+d+h.id,h.setPositionValues),h.$window.off("."+d+h.id,h.toggleHeaders)),h.$scrollableArea.off("."+d,h.updateWidth)},h.toggleHeaders=function(){h.$el&&h.$el.each(function(){var b,c=a(this),d=h.isWindowScrolling?isNaN(h.options.fixedOffset)?h.options.fixedOffset.outerHeight():h.options.fixedOffset:h.$scrollableArea.offset().top+(isNaN(h.options.fixedOffset)?0:h.options.fixedOffset),e=c.offset(),f=h.$scrollableArea.scrollTop()+d,g=h.$scrollableArea.scrollLeft(),i=h.isWindowScrolling?f>e.top:d>e.top,j=(h.isWindowScrolling?f:0)<e.top+c.height()-h.$clonedHeader.height()-(h.isWindowScrolling?0:d);i&&j?(b=e.left-g+h.options.leftOffset,h.$originalHeader.css({position:"fixed","margin-top":h.options.marginTop,left:b,"z-index":3}),h.leftOffset=b,h.topOffset=d,h.$clonedHeader.css("display",""),h.isSticky||(h.isSticky=!0,h.updateWidth()),h.setPositionValues()):h.isSticky&&(h.$originalHeader.css("position","static"),h.$clonedHeader.css("display","none"),h.isSticky=!1,h.resetWidth(a("td,th",h.$clonedHeader),a("td,th",h.$originalHeader)))})},h.setPositionValues=function(){var a=h.$window.scrollTop(),b=h.$window.scrollLeft();!h.isSticky||0>a||a+h.$window.height()>h.$document.height()||0>b||b+h.$window.width()>h.$document.width()||h.$originalHeader.css({top:h.topOffset-(h.isWindowScrolling?0:a),left:h.leftOffset-(h.isWindowScrolling?0:b)})},h.updateWidth=function(){if(h.isSticky){h.$originalHeaderCells||(h.$originalHeaderCells=a("th,td",h.$originalHeader)),h.$clonedHeaderCells||(h.$clonedHeaderCells=a("th,td",h.$clonedHeader));var b=h.getWidth(h.$clonedHeaderCells);h.setWidth(b,h.$clonedHeaderCells,h.$originalHeaderCells),h.$originalHeader.css("width",h.$clonedHeader.width())}},h.getWidth=function(c){var d=[];return c.each(function(c){var e,f=a(this);if("border-box"===f.css("box-sizing"))e=f[0].getBoundingClientRect().width;else{var g=a("th",h.$originalHeader);if("collapse"===g.css("border-collapse"))if(b.getComputedStyle)e=parseFloat(b.getComputedStyle(this,null).width);else{var i=parseFloat(f.css("padding-left")),j=parseFloat(f.css("padding-right")),k=parseFloat(f.css("border-width"));e=f.outerWidth()-i-j-k}else e=f.width()}d[c]=e}),d},h.setWidth=function(a,b,c){b.each(function(b){var d=a[b];c.eq(b).css({"min-width":d,"max-width":d})})},h.resetWidth=function(b,c){b.each(function(b){var d=a(this);c.eq(b).css({"min-width":d.css("min-width"),"max-width":d.css("max-width")})})},h.setOptions=function(c){h.options=a.extend({},f,c),h.$scrollableArea=a(h.options.scrollableArea),h.isWindowScrolling=h.$scrollableArea[0]===b},h.updateOptions=function(a){h.setOptions(a),h.unbind(),h.bind(),h.updateWidth(),h.toggleHeaders()},h.init()}var d="stickyTableHeaders",e=0,f={fixedOffset:0,leftOffset:0,marginTop:0,scrollableArea:b};a.fn[d]=function(b){return this.each(function(){var e=a.data(this,"plugin_"+d);e?"string"==typeof b?e[b].apply(e):e.updateOptions(b):"destroy"!==b&&a.data(this,"plugin_"+d,new c(this,b))})}}(jQuery,window);

View File

@ -1,85 +0,0 @@
$(function() {
$('.note').before("<p class='admonition-title note'>Note</p>");
$('.seealso').before("<p class='admonition-title seealso'>See also</p>");
$('.warning').before("<p class='admonition-title warning'>Warning</p>");
$('.caution').before("<p class='admonition-title caution'>Caution</p>");
$('.attention').before("<p class='admonition-title attention'>Attention</p>");
$('.tip').before("<p class='admonition-title tip'>Tip</p>");
$('.important').before("<p class='admonition-title important'>Important</p>");
$('.hint').before("<p class='admonition-title hint'>Hint</p>");
$('.error').before("<p class='admonition-title error'>Error</p>");
$('.danger').before("<p class='admonition-title danger'>Danger</p>");
});
$( document ).ready(function() {
// Shift nav in mobile when clicking the menu.
$(document).on('click', "[data-toggle='wy-nav-top']", function() {
$("[data-toggle='wy-nav-shift']").toggleClass("shift");
$("[data-toggle='rst-versions']").toggleClass("shift");
});
// Close menu when you click a link.
$(document).on('click', ".wy-menu-vertical .current ul li a", function() {
$("[data-toggle='wy-nav-shift']").removeClass("shift");
$("[data-toggle='rst-versions']").toggleClass("shift");
});
$(document).on('click', "[data-toggle='rst-current-version']", function() {
$("[data-toggle='rst-versions']").toggleClass("shift-up");
});
// Make tables responsive
$("table.docutils:not(.field-list)").wrap("<div class='wy-table-responsive'></div>");
});
$( document ).ready(function() {
$('#text-table-of-contents ul').first().addClass('nav');
// ScrollSpy also requires that we use
// a Bootstrap nav component.
$('body').scrollspy({target: '#text-table-of-contents'});
// add sticky table headers
$('table').stickyTableHeaders();
// set the height of tableOfContents
var $postamble = $('#postamble');
var $tableOfContents = $('#table-of-contents');
$tableOfContents.css({paddingBottom: $postamble.outerHeight()});
// add TOC button
var toggleSidebar = $('<div id="toggle-sidebar"><a href="#table-of-contents"><h2>Table of Contents</h2></a></div>');
$('#content').prepend(toggleSidebar);
// add close button when sidebar showed in mobile screen
var closeBtn = $('<a class="close-sidebar" href="#">Close</a>');
var tocTitle = $('#table-of-contents').find('h2');
tocTitle.append(closeBtn);
});
window.SphinxRtdTheme = (function (jquery) {
var stickyNav = (function () {
var navBar,
win,
stickyNavCssClass = 'stickynav',
applyStickNav = function () {
if (navBar.height() <= win.height()) {
navBar.addClass(stickyNavCssClass);
} else {
navBar.removeClass(stickyNavCssClass);
}
},
enable = function () {
applyStickNav();
win.on('resize', applyStickNav);
},
init = function () {
navBar = jquery('nav.wy-nav-side:first');
win = jquery(window);
};
jquery(init);
return {
enable : enable
};
}());
return {
StickyNav : stickyNav
};
}($));

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:17 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Kinematic Study of the Stewart Platform</title>
<meta name="generator" content="Org mode" />
@ -60,14 +60,14 @@
</li>
<li><a href="#orgbb09f83">4. Estimation of the range validity of the approximate inverse kinematics</a>
<ul>
<li><a href="#org78ce060">4.1. Stewart architecture definition</a></li>
<li><a href="#orga79cde2">4.1. Stewart architecture definition</a></li>
<li><a href="#org34777fa">4.2. Comparison for &ldquo;pure&rdquo; translations</a></li>
<li><a href="#org76d9fc1">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org091e857">5. Estimated required actuator stroke from specified platform mobility</a>
<ul>
<li><a href="#org34f6e0e">5.1. Stewart architecture definition</a></li>
<li><a href="#org7b16d1f">5.1. Stewart architecture definition</a></li>
<li><a href="#org82ba572">5.2. Wanted translations and rotations</a></li>
<li><a href="#org5897eab">5.3. Needed stroke for &ldquo;pure&rdquo; rotations or translations</a></li>
<li><a href="#org1674055">5.4. Needed stroke for &ldquo;combined&rdquo; rotations or translations</a></li>
@ -75,7 +75,7 @@
</li>
<li><a href="#orgb685a81">6. Estimated platform mobility from specified actuator stroke</a>
<ul>
<li><a href="#orga79cde2">6.1. Stewart architecture definition</a></li>
<li><a href="#org555f3a5">6.1. Stewart architecture definition</a></li>
<li><a href="#orga6e12fe">6.2. Pure translations</a></li>
</ul>
</li>
@ -96,8 +96,8 @@
<ul>
<li><a href="#org7a0813a">8.1. <code>computeJacobian</code>: Compute the Jacobian Matrix</a>
<ul>
<li><a href="#org7f0fcca">Function description</a></li>
<li><a href="#orgf06bd47">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org8a3d2ba">Function description</a></li>
<li><a href="#org5f6ad77">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org01f1158">Compute Jacobian Matrix</a></li>
<li><a href="#org91d652d">Compute Stiffness Matrix</a></li>
<li><a href="#org323b34e">Compute Compliance Matrix</a></li>
@ -107,17 +107,17 @@
<li><a href="#org710c2c8">8.2. <code>inverseKinematics</code>: Compute Inverse Kinematics</a>
<ul>
<li><a href="#orge7e6266">Theory</a></li>
<li><a href="#org39a0af1">Function description</a></li>
<li><a href="#orgcb9b73a">Optional Parameters</a></li>
<li><a href="#org31e89c1">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org6586e8a">Function description</a></li>
<li><a href="#orgf078a15">Optional Parameters</a></li>
<li><a href="#org4151034">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org7189e65">Compute</a></li>
</ul>
</li>
<li><a href="#orgdc218cd">8.3. <code>forwardKinematicsApprox</code>: Compute the Approximate Forward Kinematics</a>
<ul>
<li><a href="#org8a3d2ba">Function description</a></li>
<li><a href="#orgf078a15">Optional Parameters</a></li>
<li><a href="#org5f6ad77">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org9b19ae7">Function description</a></li>
<li><a href="#orgdf60206">Optional Parameters</a></li>
<li><a href="#org2c19f08">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orga496714">Computation</a></li>
</ul>
</li>
@ -442,7 +442,7 @@ The function <code>forwardKinematicsApprox</code> (described <a href="#orgb960ae
<a id="org5f8c5ea"></a>
</p>
<div class="note" id="org919aba4">
<div class="note" id="org9501cc6">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_approximation_validity.m">here</a>.
</p>
@ -464,8 +464,8 @@ This will also gives us the range for which the approximate forward kinematic is
</p>
</div>
<div id="outline-container-org78ce060" class="outline-3">
<h3 id="org78ce060"><span class="section-number-3">4.1</span> Stewart architecture definition</h3>
<div id="outline-container-orga79cde2" class="outline-3">
<h3 id="orga79cde2"><span class="section-number-3">4.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-4-1">
<p>
We first define some general Stewart architecture.
@ -531,7 +531,7 @@ The relative strut length displacement is shown in Figure <a href="#orgb451b90">
<div id="outline-container-org76d9fc1" class="outline-3">
<h3 id="org76d9fc1"><span class="section-number-3">4.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-3">
<div class="important" id="org3d5a817">
<div class="important" id="orgfe0578a">
<p>
For small wanted displacements (up to \(\approx 1\%\) of the size of the Hexapod), the approximate inverse kinematic solution using the Jacobian matrix is quite correct.
</p>
@ -548,7 +548,7 @@ For small wanted displacements (up to \(\approx 1\%\) of the size of the Hexapod
<a id="orgb1464b6"></a>
</p>
<div class="note" id="org7858fd4">
<div class="note" id="org4fab0bc">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_required_actuator_stroke.m">here</a>.
</p>
@ -565,8 +565,8 @@ This is what is analyzed in this section.
</p>
</div>
<div id="outline-container-org34f6e0e" class="outline-3">
<h3 id="org34f6e0e"><span class="section-number-3">5.1</span> Stewart architecture definition</h3>
<div id="outline-container-org7b16d1f" class="outline-3">
<h3 id="org7b16d1f"><span class="section-number-3">5.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-5-1">
<p>
Let&rsquo;s first define the Stewart platform architecture that we want to study.
@ -965,7 +965,7 @@ This is probably a much realistic estimation of the required actuator stroke.
<a id="orge61164c"></a>
</p>
<div class="note" id="orge5bfdd7">
<div class="note" id="orgc9ecb6b">
<p>
The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_mobility.m">here</a>.
</p>
@ -985,8 +985,8 @@ However, for small displacements, we can use the Jacobian as an approximate solu
</p>
</div>
<div id="outline-container-orga79cde2" class="outline-3">
<h3 id="orga79cde2"><span class="section-number-3">6.1</span> Stewart architecture definition</h3>
<div id="outline-container-org555f3a5" class="outline-3">
<h3 id="org555f3a5"><span class="section-number-3">6.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-6-1">
<p>
Let&rsquo;s first define the Stewart platform architecture that we want to study.
@ -1390,9 +1390,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</p>
</div>
<div id="outline-container-org7f0fcca" class="outline-4">
<h4 id="org7f0fcca">Function description</h4>
<div class="outline-text-4" id="text-org7f0fcca">
<div id="outline-container-org8a3d2ba" class="outline-4">
<h4 id="org8a3d2ba">Function description</h4>
<div class="outline-text-4" id="text-org8a3d2ba">
<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">computeJacobian</span>(<span class="org-variable-name">stewart</span>)
<span class="org-comment">% computeJacobian -</span>
@ -1415,9 +1415,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</div>
</div>
<div id="outline-container-orgf06bd47" class="outline-4">
<h4 id="orgf06bd47">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orgf06bd47">
<div id="outline-container-org5f6ad77" class="outline-4">
<h4 id="org5f6ad77">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org5f6ad77">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, <span class="org-string">'As'</span>), <span class="org-string">'stewart.geometry should have attribute As'</span>)
As = stewart.geometry.As;
@ -1525,9 +1525,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org39a0af1" class="outline-4">
<h4 id="org39a0af1">Function description</h4>
<div class="outline-text-4" id="text-org39a0af1">
<div id="outline-container-org6586e8a" class="outline-4">
<h4 id="org6586e8a">Function description</h4>
<div class="outline-text-4" id="text-org6586e8a">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[Li, dLi]</span> = <span class="org-function-name">inverseKinematics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% inverseKinematics - Compute the needed length of each strut to have the wanted position and orientation of {B} with respect to {A}</span>
@ -1551,9 +1551,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-orgcb9b73a" class="outline-4">
<h4 id="orgcb9b73a">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgcb9b73a">
<div id="outline-container-orgf078a15" class="outline-4">
<h4 id="orgf078a15">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgf078a15">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1565,9 +1565,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org31e89c1" class="outline-4">
<h4 id="org31e89c1">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org31e89c1">
<div id="outline-container-org4151034" class="outline-4">
<h4 id="org4151034">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org4151034">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, <span class="org-string">'Aa'</span>), <span class="org-string">'stewart.geometry should have attribute Aa'</span>)
Aa = stewart.geometry.Aa;
@ -1611,9 +1611,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</p>
</div>
<div id="outline-container-org8a3d2ba" class="outline-4">
<h4 id="org8a3d2ba">Function description</h4>
<div class="outline-text-4" id="text-org8a3d2ba">
<div id="outline-container-org9b19ae7" class="outline-4">
<h4 id="org9b19ae7">Function description</h4>
<div class="outline-text-4" id="text-org9b19ae7">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[P, R]</span> = <span class="org-function-name">forwardKinematicsApprox</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% forwardKinematicsApprox - Computed the approximate pose of {B} with respect to {A} from the length of each strut and using</span>
@ -1635,9 +1635,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</div>
</div>
<div id="outline-container-orgf078a15" class="outline-4">
<h4 id="orgf078a15">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgf078a15">
<div id="outline-container-orgdf60206" class="outline-4">
<h4 id="orgdf60206">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgdf60206">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1648,9 +1648,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</div>
</div>
<div id="outline-container-org5f6ad77" class="outline-4">
<h4 id="org5f6ad77">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org5f6ad77">
<div id="outline-container-org2c19f08" class="outline-4">
<h4 id="org2c19f08">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org2c19f08">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.kinematics, <span class="org-string">'J'</span>), <span class="org-string">'stewart.kinematics should have attribute J'</span>)
J = stewart.kinematics.J;
@ -1715,7 +1715,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: 2021-01-08 ven. 15:17</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:30 -->
<!-- 2021-01-08 ven. 15:53 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - NASS</title>
<meta name="generator" content="Org mode" />
@ -77,7 +77,7 @@
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p>
<p class="date">Created: 2021-01-08 ven. 15:53</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:29 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Simscape Model</title>
<meta name="generator" content="Org mode" />
@ -48,16 +48,16 @@
<ul>
<li><a href="#orgf4bef70">6.1. Payload</a>
<ul>
<li><a href="#org9c0e404">Function description</a></li>
<li><a href="#orgabc81c1">Optional Parameters</a></li>
<li><a href="#org920bdd0">Function description</a></li>
<li><a href="#orgbc7950f">Optional Parameters</a></li>
<li><a href="#org4ef4a9f">Add Payload Type</a></li>
<li><a href="#org3243d76">Add Stiffness, Damping and Mass properties of the Payload</a></li>
</ul>
</li>
<li><a href="#orgd9e12ef">6.2. Ground</a>
<ul>
<li><a href="#org920bdd0">Function description</a></li>
<li><a href="#orgfa4bbf4">Optional Parameters</a></li>
<li><a href="#orgc300ecf">Function description</a></li>
<li><a href="#org1ee272a">Optional Parameters</a></li>
<li><a href="#org2d22970">Add Ground Type</a></li>
<li><a href="#orgf76def4">Add Stiffness and Damping properties of the Ground</a></li>
<li><a href="#orgdb67a68">Rotation Point</a></li>
@ -67,8 +67,8 @@
</li>
<li><a href="#org6d3b61e">7. Initialize Disturbances</a>
<ul>
<li><a href="#orgf14752d">Function Declaration and Documentation</a></li>
<li><a href="#orga64679c">Optional Parameters</a></li>
<li><a href="#orgf124972">Function Declaration and Documentation</a></li>
<li><a href="#org668f4bb">Optional Parameters</a></li>
<li><a href="#org0f7e4dd">Structure initialization</a></li>
<li><a href="#org1a28fcd">Ground Motion</a></li>
<li><a href="#org90b72d6">Direct Forces</a></li>
@ -76,8 +76,8 @@
</li>
<li><a href="#org93f2d30">8. Initialize References</a>
<ul>
<li><a href="#orgf124972">Function Declaration and Documentation</a></li>
<li><a href="#orgbc7950f">Optional Parameters</a></li>
<li><a href="#org81500bb">Function Declaration and Documentation</a></li>
<li><a href="#org05322ee">Optional Parameters</a></li>
<li><a href="#org6f05adc">8.1. Compute the corresponding strut length</a></li>
<li><a href="#orgda73a50">References</a></li>
</ul>
@ -303,9 +303,9 @@ This Matlab function is accessible <a href="../src/initializePayload.m">here</a>
</p>
</div>
<div id="outline-container-org9c0e404" class="outline-4">
<h4 id="org9c0e404">Function description</h4>
<div class="outline-text-4" id="text-org9c0e404">
<div id="outline-container-org920bdd0" class="outline-4">
<h4 id="org920bdd0">Function description</h4>
<div class="outline-text-4" id="text-org920bdd0">
<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>)
<span class="org-comment">% initializePayload - Initialize the Payload that can then be used for simulations and analysis</span>
@ -335,9 +335,9 @@ This Matlab function is accessible <a href="../src/initializePayload.m">here</a>
</div>
</div>
<div id="outline-container-orgabc81c1" class="outline-4">
<h4 id="orgabc81c1">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgabc81c1">
<div id="outline-container-orgbc7950f" class="outline-4">
<h4 id="orgbc7950f">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgbc7950f">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">args</span>.type char {mustBeMember(args.type,{<span class="org-string">'none'</span>, <span class="org-string">'rigid'</span>, <span class="org-string">'flexible'</span>, <span class="org-string">'cartesian'</span>})} = <span class="org-string">'none'</span>
@ -399,9 +399,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</p>
</div>
<div id="outline-container-org920bdd0" class="outline-4">
<h4 id="org920bdd0">Function description</h4>
<div class="outline-text-4" id="text-org920bdd0">
<div id="outline-container-orgc300ecf" class="outline-4">
<h4 id="orgc300ecf">Function description</h4>
<div class="outline-text-4" id="text-orgc300ecf">
<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>)
<span class="org-comment">% initializeGround - Initialize the Ground that can then be used for simulations and analysis</span>
@ -425,9 +425,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</div>
</div>
<div id="outline-container-orgfa4bbf4" class="outline-4">
<h4 id="orgfa4bbf4">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgfa4bbf4">
<div id="outline-container-org1ee272a" class="outline-4">
<h4 id="org1ee272a">Optional Parameters</h4>
<div class="outline-text-4" id="text-org1ee272a">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">args</span>.type char {mustBeMember(args.type,{<span class="org-string">'none'</span>, <span class="org-string">'rigid'</span>, <span class="org-string">'flexible'</span>})} = <span class="org-string">'none'</span>
@ -487,9 +487,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</p>
</div>
<div id="outline-container-orgf14752d" class="outline-3">
<h3 id="orgf14752d">Function Declaration and Documentation</h3>
<div class="outline-text-3" id="text-orgf14752d">
<div id="outline-container-orgf124972" class="outline-3">
<h3 id="orgf124972">Function Declaration and Documentation</h3>
<div class="outline-text-3" id="text-orgf124972">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[disturbances]</span> = <span class="org-function-name">initializeDisturbances</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% initializeDisturbances - Initialize the disturbances</span>
@ -504,9 +504,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</div>
</div>
<div id="outline-container-orga64679c" class="outline-3">
<h3 id="orga64679c">Optional Parameters</h3>
<div class="outline-text-3" id="text-orga64679c">
<div id="outline-container-org668f4bb" class="outline-3">
<h3 id="org668f4bb">Optional Parameters</h3>
<div class="outline-text-3" id="text-org668f4bb">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">args</span>.Fd double {mustBeNumeric, mustBeReal} = zeros(6,1)
@ -559,9 +559,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</p>
</div>
<div id="outline-container-orgf124972" class="outline-3">
<h3 id="orgf124972">Function Declaration and Documentation</h3>
<div class="outline-text-3" id="text-orgf124972">
<div id="outline-container-org81500bb" class="outline-3">
<h3 id="org81500bb">Function Declaration and Documentation</h3>
<div class="outline-text-3" id="text-org81500bb">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[references]</span> = <span class="org-function-name">initializeReferences</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeReferences - Initialize the references</span>
@ -576,9 +576,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</div>
</div>
<div id="outline-container-orgbc7950f" class="outline-3">
<h3 id="orgbc7950f">Optional Parameters</h3>
<div class="outline-text-3" id="text-orgbc7950f">
<div id="outline-container-org05322ee" class="outline-3">
<h3 id="org05322ee">Optional Parameters</h3>
<div class="outline-text-3" id="text-org05322ee">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -629,7 +629,7 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:29</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:30 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Simulink Project for the Stewart Simscape folder</title>
<meta name="generator" content="Org mode" />
@ -84,7 +84,7 @@ The project also permits to automatically add defined folder to the path when th
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:30 -->
<!-- 2021-01-08 ven. 15:53 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Static Analysis</title>
<meta name="generator" content="Org mode" />
@ -74,7 +74,7 @@ Thus, the system is uncoupled if \(G\) and \(K\) are diagonal.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p>
<p class="date">Created: 2021-01-08 ven. 15:53</p>
</div>
</body>
</html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2021-01-08 ven. 15:29 -->
<!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Definition of the Architecture</title>
<meta name="generator" content="Org mode" />
@ -68,101 +68,101 @@
<ul>
<li><a href="#orgb54aa6c">5.1. <code>initializeStewartPlatform</code>: Initialize the Stewart Platform structure</a>
<ul>
<li><a href="#orgeab98fd">Documentation</a></li>
<li><a href="#orge8a001f">Function description</a></li>
<li><a href="#org74e4b19">Documentation</a></li>
<li><a href="#org4c43493">Function description</a></li>
<li><a href="#orgc4197aa">Initialize the Stewart structure</a></li>
</ul>
</li>
<li><a href="#org1a8cfde">5.2. <code>initializeFramesPositions</code>: Initialize the positions of frames {A}, {B}, {F} and {M}</a>
<ul>
<li><a href="#org22404ae">Documentation</a></li>
<li><a href="#org438a9a6">Function description</a></li>
<li><a href="#org83c364b">Optional Parameters</a></li>
<li><a href="#org330eb42">Documentation</a></li>
<li><a href="#orgff06721">Function description</a></li>
<li><a href="#org55b09bc">Optional Parameters</a></li>
<li><a href="#orgf345222">Compute the position of each frame</a></li>
<li><a href="#org615717a">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgc8f8c81">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org33634da">5.3. <code>generateGeneralConfiguration</code>: Generate a Very General Configuration</a>
<ul>
<li><a href="#orgb5187fb">Documentation</a></li>
<li><a href="#org63ee9a7">Function description</a></li>
<li><a href="#org4f489d6">Optional Parameters</a></li>
<li><a href="#org1bdb691">Documentation</a></li>
<li><a href="#orgf228191">Function description</a></li>
<li><a href="#org1649de8">Optional Parameters</a></li>
<li><a href="#orgac7b186">Compute the pose</a></li>
<li><a href="#org7ee1bf3">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org8e5b4b1">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orga24b055">5.4. <code>computeJointsPose</code>: Compute the Pose of the Joints</a>
<ul>
<li><a href="#orgfb8bc86">Documentation</a></li>
<li><a href="#org38e5459">Function description</a></li>
<li><a href="#org0251695">Optional Parameters</a></li>
<li><a href="#org72f258f">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge8578cb">Documentation</a></li>
<li><a href="#orge186927">Function description</a></li>
<li><a href="#orgc451919">Optional Parameters</a></li>
<li><a href="#org8f74792">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org6fa7255">Compute the position of the Joints</a></li>
<li><a href="#org775652f">Compute the strut length and orientation</a></li>
<li><a href="#org343f9a2">Compute the orientation of the Joints</a></li>
<li><a href="#org1b37bf3">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org53f7eca">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org9068596">5.5. <code>initializeStewartPose</code>: Determine the initial stroke in each leg to have the wanted pose</a>
<ul>
<li><a href="#orgcdbf33b">Function description</a></li>
<li><a href="#org504e794">Optional Parameters</a></li>
<li><a href="#org7dee2e6">Function description</a></li>
<li><a href="#orgb42495c">Optional Parameters</a></li>
<li><a href="#org2b0bd7e">Use the Inverse Kinematic function</a></li>
<li><a href="#orgba4396e">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org4e369d0">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org7298863">5.6. <code>initializeCylindricalPlatforms</code>: Initialize the geometry of the Fixed and Mobile Platforms</a>
<ul>
<li><a href="#orgef552b3">Function description</a></li>
<li><a href="#org615c98a">Optional Parameters</a></li>
<li><a href="#orgebd268a">Function description</a></li>
<li><a href="#org09ca288">Optional Parameters</a></li>
<li><a href="#orgca11714">Compute the Inertia matrices of platforms</a></li>
<li><a href="#orgb627b06">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org6da802f">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgca778d6">5.7. <code>initializeSolidPlatforms</code>: Initialize the geometry of the Fixed and Mobile Platforms</a>
<ul>
<li><a href="#orga04c43a">Function description</a></li>
<li><a href="#orgbd3043d">Optional Parameters</a></li>
<li><a href="#org98e7ef0">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org86c0034">Function description</a></li>
<li><a href="#orgc33373b">Optional Parameters</a></li>
<li><a href="#org77f8572">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgc775d7a">5.8. <code>initializeCylindricalStruts</code>: Define the inertia of cylindrical struts</a>
<ul>
<li><a href="#org8cd1454">Function description</a></li>
<li><a href="#orgef6f474">Optional Parameters</a></li>
<li><a href="#orgb76c373">Function description</a></li>
<li><a href="#orge43ae28">Optional Parameters</a></li>
<li><a href="#orge60177a">Compute the properties of the cylindrical struts</a></li>
<li><a href="#org88ed9a1">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org641f40c">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org3ceb0b1">5.9. <code>initializeStrutDynamics</code>: Add Stiffness and Damping properties of each strut</a>
<ul>
<li><a href="#orgf551d66">Documentation</a></li>
<li><a href="#org288b140">Function description</a></li>
<li><a href="#org38d63af">Optional Parameters</a></li>
<li><a href="#org8da738a">Documentation</a></li>
<li><a href="#org24695e2">Function description</a></li>
<li><a href="#orgee73c8b">Optional Parameters</a></li>
<li><a href="#org815b218">Add Stiffness and Damping properties of each strut</a></li>
</ul>
</li>
<li><a href="#org1d017e8">5.10. <code>initializeAmplifiedStrutDynamics</code>: Add Stiffness and Damping properties of each strut for an amplified piezoelectric actuator</a>
<ul>
<li><a href="#org74e4b19">Documentation</a></li>
<li><a href="#org9c0ae7d">Function description</a></li>
<li><a href="#org3deb05f">Optional Parameters</a></li>
<li><a href="#org3d661bf">Documentation</a></li>
<li><a href="#org9b51ec8">Function description</a></li>
<li><a href="#org9492e15">Optional Parameters</a></li>
<li><a href="#org52a586e">Compute the total stiffness and damping</a></li>
<li><a href="#org0576b9c">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org80eb3e9">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org0d2f9e2">5.11. <code>initializeFlexibleStrutDynamics</code>: Model each strut with a flexible element</a>
<ul>
<li><a href="#org083e758">Function description</a></li>
<li><a href="#orgff49923">Optional Parameters</a></li>
<li><a href="#org56a8783">Compute the axial offset</a></li>
<li><a href="#orgb037aa7">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org8f7f4f7">Function description</a></li>
<li><a href="#org2d4eac7">Optional Parameters</a></li>
<li><a href="#org67ae6f5">Compute the axial offset</a></li>
<li><a href="#org82e5db9">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org7666a0d">5.12. <code>initializeJointDynamics</code>: Add Stiffness and Damping properties for spherical joints</a>
<ul>
<li><a href="#orgd95bcc9">Function description</a></li>
<li><a href="#orgd046fdd">Optional Parameters</a></li>
<li><a href="#orgf5c4b43">Function description</a></li>
<li><a href="#org380cbf5">Optional Parameters</a></li>
<li><a href="#org1c44749">Add Actuator Type</a></li>
<li><a href="#org8a45695">Add Stiffness and Damping in Translation of each strut</a></li>
<li><a href="#orgcba9dbe">Add Stiffness and Damping in Rotation of each strut</a></li>
@ -171,27 +171,27 @@
</li>
<li><a href="#org995e0ff">5.13. <code>initializeFlexibleStrutAndJointDynamics</code>: Model each strut with a flexible element</a>
<ul>
<li><a href="#org796edd5">Function description</a></li>
<li><a href="#org81f8b20">Optional Parameters</a></li>
<li><a href="#org67ae6f5">Compute the axial offset</a></li>
<li><a href="#orgb405c72">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org56a8d9a">Function description</a></li>
<li><a href="#orgac6a1c2">Optional Parameters</a></li>
<li><a href="#org578ef24">Compute the axial offset</a></li>
<li><a href="#org3587761">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org0873774">5.14. <code>initializeInertialSensor</code>: Initialize the inertial sensor in each strut</a>
<ul>
<li><a href="#org8521d8c">Geophone - Working Principle</a></li>
<li><a href="#org66673a3">Accelerometer - Working Principle</a></li>
<li><a href="#org6242c90">Function description</a></li>
<li><a href="#orge44b879">Optional Parameters</a></li>
<li><a href="#org024b1d8">Function description</a></li>
<li><a href="#org6d8876b">Optional Parameters</a></li>
<li><a href="#org96a29e4">Compute the properties of the sensor</a></li>
<li><a href="#orgc8f8c81">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org06a22a8">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org5a66d3a">5.15. <code>displayArchitecture</code>: 3D plot of the Stewart platform architecture</a>
<ul>
<li><a href="#orga146c7e">Function description</a></li>
<li><a href="#orgca3d076">Optional Parameters</a></li>
<li><a href="#org8f74792">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org5b54876">Function description</a></li>
<li><a href="#org2650173">Optional Parameters</a></li>
<li><a href="#orgab71ceb">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgb7e5d05">Figure Creation, Frames and Homogeneous transformations</a></li>
<li><a href="#orge26b777">Fixed Base elements</a></li>
<li><a href="#org8dd54b6">Mobile Platform elements</a></li>
@ -202,8 +202,8 @@
</li>
<li><a href="#org02e6772">5.16. <code>describeStewartPlatform</code>: Display some text describing the current defined Stewart Platform</a>
<ul>
<li><a href="#org4c43493">Function description</a></li>
<li><a href="#org55b09bc">Optional Parameters</a></li>
<li><a href="#orgdd06785">Function description</a></li>
<li><a href="#org6e383c9">Optional Parameters</a></li>
<li><a href="#orge43c89a">5.16.1. Geometry</a></li>
<li><a href="#org41beea5">5.16.2. Actuators</a></li>
<li><a href="#org293e123">5.16.3. Joints</a></li>
@ -632,7 +632,7 @@ Let&rsquo;s now move a little bit the top platform and re-display the configurat
One can also use the <code>describeStewartPlatform</code> function to have a description of the current Stewart platform&rsquo;s state.
</p>
<pre class="example" id="orgeee9b56">
<pre class="example" id="orgafa099e">
describeStewartPlatform(stewart)
GEOMETRY:
- The height between the fixed based and the top platform is 90 [mm].
@ -694,11 +694,11 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</p>
</div>
<div id="outline-container-orgeab98fd" class="outline-4">
<h4 id="orgeab98fd">Documentation</h4>
<div class="outline-text-4" id="text-orgeab98fd">
<div id="outline-container-org74e4b19" class="outline-4">
<h4 id="org74e4b19">Documentation</h4>
<div class="outline-text-4" id="text-org74e4b19">
<div id="orgc725645" class="figure">
<div id="orgf30011a" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Definition of the position of the frames</p>
@ -706,9 +706,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</div>
</div>
<div id="outline-container-orge8a001f" class="outline-4">
<h4 id="orge8a001f">Function description</h4>
<div class="outline-text-4" id="text-orge8a001f">
<div id="outline-container-org4c43493" class="outline-4">
<h4 id="org4c43493">Function description</h4>
<div class="outline-text-4" id="text-org4c43493">
<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>()
<span class="org-comment">% initializeStewartPlatform - Initialize the stewart structure</span>
@ -767,11 +767,11 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</p>
</div>
<div id="outline-container-org22404ae" class="outline-4">
<h4 id="org22404ae">Documentation</h4>
<div class="outline-text-4" id="text-org22404ae">
<div id="outline-container-org330eb42" class="outline-4">
<h4 id="org330eb42">Documentation</h4>
<div class="outline-text-4" id="text-org330eb42">
<div id="orgf30011a" class="figure">
<div id="org6ed01c7" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Definition of the position of the frames</p>
@ -779,9 +779,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org438a9a6" class="outline-4">
<h4 id="org438a9a6">Function description</h4>
<div class="outline-text-4" id="text-org438a9a6">
<div id="outline-container-orgff06721" class="outline-4">
<h4 id="orgff06721">Function description</h4>
<div class="outline-text-4" id="text-orgff06721">
<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>)
<span class="org-comment">% initializeFramesPositions - Initialize the positions of frames {A}, {B}, {F} and {M}</span>
@ -804,9 +804,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org83c364b" class="outline-4">
<h4 id="org83c364b">Optional Parameters</h4>
<div class="outline-text-4" id="text-org83c364b">
<div id="outline-container-org55b09bc" class="outline-4">
<h4 id="org55b09bc">Optional Parameters</h4>
<div class="outline-text-4" id="text-org55b09bc">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -834,9 +834,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org615717a" class="outline-4">
<h4 id="org615717a">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org615717a">
<div id="outline-container-orgc8f8c81" class="outline-4">
<h4 id="orgc8f8c81">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgc8f8c81">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.H = H;
stewart.geometry.FO_M = FO_M;
@ -860,9 +860,9 @@ This Matlab function is accessible <a href="../src/generateGeneralConfiguration.
</p>
</div>
<div id="outline-container-orgb5187fb" class="outline-4">
<h4 id="orgb5187fb">Documentation</h4>
<div class="outline-text-4" id="text-orgb5187fb">
<div id="outline-container-org1bdb691" class="outline-4">
<h4 id="org1bdb691">Documentation</h4>
<div class="outline-text-4" id="text-org1bdb691">
<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="#orgc69617b">9</a>).
@ -877,9 +877,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org63ee9a7" class="outline-4">
<h4 id="org63ee9a7">Function description</h4>
<div class="outline-text-4" id="text-org63ee9a7">
<div id="outline-container-orgf228191" class="outline-4">
<h4 id="orgf228191">Function description</h4>
<div class="outline-text-4" id="text-orgf228191">
<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>)
<span class="org-comment">% generateGeneralConfiguration - Generate a Very General Configuration</span>
@ -904,9 +904,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org4f489d6" class="outline-4">
<h4 id="org4f489d6">Optional Parameters</h4>
<div class="outline-text-4" id="text-org4f489d6">
<div id="outline-container-org1649de8" class="outline-4">
<h4 id="org1649de8">Optional Parameters</h4>
<div class="outline-text-4" id="text-org1649de8">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -941,9 +941,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org7ee1bf3" class="outline-4">
<h4 id="org7ee1bf3">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org7ee1bf3">
<div id="outline-container-org8e5b4b1" class="outline-4">
<h4 id="org8e5b4b1">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org8e5b4b1">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@ -965,9 +965,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</p>
</div>
<div id="outline-container-orgfb8bc86" class="outline-4">
<h4 id="orgfb8bc86">Documentation</h4>
<div class="outline-text-4" id="text-orgfb8bc86">
<div id="outline-container-orge8578cb" class="outline-4">
<h4 id="orge8578cb">Documentation</h4>
<div class="outline-text-4" id="text-orge8578cb">
<div id="org0364bc3" class="figure">
<p><img src="figs/stewart-struts.png" alt="stewart-struts.png" />
@ -977,9 +977,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org38e5459" class="outline-4">
<h4 id="org38e5459">Function description</h4>
<div class="outline-text-4" id="text-org38e5459">
<div id="outline-container-orge186927" class="outline-4">
<h4 id="orge186927">Function description</h4>
<div class="outline-text-4" id="text-orge186927">
<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>, <span class="org-variable-name">args</span>)
<span class="org-comment">% computeJointsPose -</span>
@ -1015,9 +1015,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org0251695" class="outline-4">
<h4 id="org0251695">Optional Parameters</h4>
<div class="outline-text-4" id="text-org0251695">
<div id="outline-container-orgc451919" class="outline-4">
<h4 id="orgc451919">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc451919">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1029,9 +1029,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org72f258f" class="outline-4">
<h4 id="org72f258f">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org72f258f">
<div id="outline-container-org8f74792" class="outline-4">
<h4 id="org8f74792">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org8f74792">
<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>)
Fa = stewart.platform_F.Fa;
@ -1117,9 +1117,9 @@ Translation &amp; Rotation: (Rotation and then translation)
</div>
</div>
<div id="outline-container-org1b37bf3" class="outline-4">
<h4 id="org1b37bf3">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org1b37bf3">
<div id="outline-container-org53f7eca" class="outline-4">
<h4 id="org53f7eca">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org53f7eca">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.Aa = Aa;
stewart.geometry.Ab = Ab;
@ -1152,9 +1152,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</p>
</div>
<div id="outline-container-orgcdbf33b" class="outline-4">
<h4 id="orgcdbf33b">Function description</h4>
<div class="outline-text-4" id="text-orgcdbf33b">
<div id="outline-container-org7dee2e6" class="outline-4">
<h4 id="org7dee2e6">Function description</h4>
<div class="outline-text-4" id="text-org7dee2e6">
<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>)
<span class="org-comment">% initializeStewartPose - Determine the initial stroke in each leg to have the wanted pose</span>
@ -1178,9 +1178,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div>
</div>
<div id="outline-container-org504e794" class="outline-4">
<h4 id="org504e794">Optional Parameters</h4>
<div class="outline-text-4" id="text-org504e794">
<div id="outline-container-orgb42495c" class="outline-4">
<h4 id="orgb42495c">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgb42495c">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1202,9 +1202,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div>
</div>
<div id="outline-container-orgba4396e" class="outline-4">
<h4 id="orgba4396e">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgba4396e">
<div id="outline-container-org4e369d0" class="outline-4">
<h4 id="org4e369d0">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org4e369d0">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.Leq = dLi;
</pre>
@ -1225,9 +1225,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</p>
</div>
<div id="outline-container-orgef552b3" class="outline-4">
<h4 id="orgef552b3">Function description</h4>
<div class="outline-text-4" id="text-orgef552b3">
<div id="outline-container-orgebd268a" class="outline-4">
<h4 id="orgebd268a">Function description</h4>
<div class="outline-text-4" id="text-orgebd268a">
<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>)
<span class="org-comment">% initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms</span>
@ -1261,9 +1261,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div>
</div>
<div id="outline-container-org615c98a" class="outline-4">
<h4 id="org615c98a">Optional Parameters</h4>
<div class="outline-text-4" id="text-org615c98a">
<div id="outline-container-org09ca288" class="outline-4">
<h4 id="org09ca288">Optional Parameters</h4>
<div class="outline-text-4" id="text-org09ca288">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1298,9 +1298,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div>
</div>
<div id="outline-container-orgb627b06" class="outline-4">
<h4 id="orgb627b06">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgb627b06">
<div id="outline-container-org6da802f" class="outline-4">
<h4 id="org6da802f">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org6da802f">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.type = 1;
@ -1336,9 +1336,9 @@ This Matlab function is accessible <a href="../src/initializeSolidPlatforms.m">h
</p>
</div>
<div id="outline-container-orga04c43a" class="outline-4">
<h4 id="orga04c43a">Function description</h4>
<div class="outline-text-4" id="text-orga04c43a">
<div id="outline-container-org86c0034" class="outline-4">
<h4 id="org86c0034">Function description</h4>
<div class="outline-text-4" id="text-org86c0034">
<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">initializeSolidPlatforms</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeSolidPlatforms - Initialize the geometry of the Fixed and Mobile Platforms</span>
@ -1362,9 +1362,9 @@ This Matlab function is accessible <a href="../src/initializeSolidPlatforms.m">h
</div>
</div>
<div id="outline-container-orgbd3043d" class="outline-4">
<h4 id="orgbd3043d">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgbd3043d">
<div id="outline-container-orgc33373b" class="outline-4">
<h4 id="orgc33373b">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc33373b">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1375,9 +1375,9 @@ This Matlab function is accessible <a href="../src/initializeSolidPlatforms.m">h
</div>
</div>
<div id="outline-container-org98e7ef0" class="outline-4">
<h4 id="org98e7ef0">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org98e7ef0">
<div id="outline-container-org77f8572" class="outline-4">
<h4 id="org77f8572">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org77f8572">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.type = 2;
@ -1407,9 +1407,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</p>
</div>
<div id="outline-container-org8cd1454" class="outline-4">
<h4 id="org8cd1454">Function description</h4>
<div class="outline-text-4" id="text-org8cd1454">
<div id="outline-container-orgb76c373" class="outline-4">
<h4 id="orgb76c373">Function description</h4>
<div class="outline-text-4" id="text-orgb76c373">
<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>)
<span class="org-comment">% initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts</span>
@ -1442,9 +1442,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</div>
</div>
<div id="outline-container-orgef6f474" class="outline-4">
<h4 id="orgef6f474">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgef6f474">
<div id="outline-container-orge43ae28" class="outline-4">
<h4 id="orge43ae28">Optional Parameters</h4>
<div class="outline-text-4" id="text-orge43ae28">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1494,9 +1494,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</div>
</div>
<div id="outline-container-org88ed9a1" class="outline-4">
<h4 id="org88ed9a1">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org88ed9a1">
<div id="outline-container-org641f40c" class="outline-4">
<h4 id="org641f40c">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org641f40c">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">switch</span> <span class="org-constant">args.type_M</span>
<span class="org-keyword">case</span> <span class="org-string">'cylindrical'</span>
@ -1542,9 +1542,9 @@ This Matlab function is accessible <a href="../src/initializeStrutDynamics.m">he
</p>
</div>
<div id="outline-container-orgf551d66" class="outline-4">
<h4 id="orgf551d66">Documentation</h4>
<div class="outline-text-4" id="text-orgf551d66">
<div id="outline-container-org8da738a" class="outline-4">
<h4 id="org8da738a">Documentation</h4>
<div class="outline-text-4" id="text-org8da738a">
<div id="org2ee3f84" class="figure">
<p><img src="figs/piezoelectric_stack.jpg" alt="piezoelectric_stack.jpg" width="500px" />
@ -1573,9 +1573,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgab
</div>
</div>
<div id="outline-container-org288b140" class="outline-4">
<h4 id="org288b140">Function description</h4>
<div class="outline-text-4" id="text-org288b140">
<div id="outline-container-org24695e2" class="outline-4">
<h4 id="org24695e2">Function description</h4>
<div class="outline-text-4" id="text-org24695e2">
<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>)
<span class="org-comment">% initializeStrutDynamics - Add Stiffness and Damping properties of each strut</span>
@ -1597,9 +1597,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgab
</div>
</div>
<div id="outline-container-org38d63af" class="outline-4">
<h4 id="org38d63af">Optional Parameters</h4>
<div class="outline-text-4" id="text-org38d63af">
<div id="outline-container-orgee73c8b" class="outline-4">
<h4 id="orgee73c8b">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgee73c8b">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1637,9 +1637,9 @@ This Matlab function is accessible <a href="../src/initializeAmplifiedStrutDynam
</p>
</div>
<div id="outline-container-org74e4b19" class="outline-4">
<h4 id="org74e4b19">Documentation</h4>
<div class="outline-text-4" id="text-org74e4b19">
<div id="outline-container-org3d661bf" class="outline-4">
<h4 id="org3d661bf">Documentation</h4>
<div class="outline-text-4" id="text-org3d661bf">
<p>
An amplified piezoelectric actuator is shown in Figure <a href="#org2da63e7">13</a>.
</p>
@ -1701,9 +1701,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgdf
</div>
</div>
<div id="outline-container-org9c0ae7d" class="outline-4">
<h4 id="org9c0ae7d">Function description</h4>
<div class="outline-text-4" id="text-org9c0ae7d">
<div id="outline-container-org9b51ec8" class="outline-4">
<h4 id="org9b51ec8">Function description</h4>
<div class="outline-text-4" id="text-org9b51ec8">
<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>)
<span class="org-comment">% initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut</span>
@ -1731,9 +1731,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgdf
</div>
</div>
<div id="outline-container-org3deb05f" class="outline-4">
<h4 id="org3deb05f">Optional Parameters</h4>
<div class="outline-text-4" id="text-org3deb05f">
<div id="outline-container-org9492e15" class="outline-4">
<h4 id="org9492e15">Optional Parameters</h4>
<div class="outline-text-4" id="text-org9492e15">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1758,9 +1758,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgdf
</div>
</div>
<div id="outline-container-org0576b9c" class="outline-4">
<h4 id="org0576b9c">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org0576b9c">
<div id="outline-container-org80eb3e9" class="outline-4">
<h4 id="org80eb3e9">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org80eb3e9">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 2;
@ -1789,9 +1789,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutDynami
</p>
</div>
<div id="outline-container-org083e758" class="outline-4">
<h4 id="org083e758">Function description</h4>
<div class="outline-text-4" id="text-org083e758">
<div id="outline-container-org8f7f4f7" class="outline-4">
<h4 id="org8f7f4f7">Function description</h4>
<div class="outline-text-4" id="text-org8f7f4f7">
<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">initializeFlexibleStrutDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeFlexibleStrutDynamics - Add Stiffness and Damping properties of each strut</span>
@ -1813,9 +1813,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutDynami
</div>
</div>
<div id="outline-container-orgff49923" class="outline-4">
<h4 id="orgff49923">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgff49923">
<div id="outline-container-org2d4eac7" class="outline-4">
<h4 id="org2d4eac7">Optional Parameters</h4>
<div class="outline-text-4" id="text-org2d4eac7">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -1832,9 +1832,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutDynami
</div>
</div>
<div id="outline-container-org56a8783" class="outline-4">
<h4 id="org56a8783">Compute the axial offset</h4>
<div class="outline-text-4" id="text-org56a8783">
<div id="outline-container-org67ae6f5" class="outline-4">
<h4 id="org67ae6f5">Compute the axial offset</h4>
<div class="outline-text-4" id="text-org67ae6f5">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.ax_off = (stewart.geometry.l(1) <span class="org-type">-</span> args.H)<span class="org-type">/</span>2; <span class="org-comment">% Axial Offset at the ends of the actuator</span>
</pre>
@ -1842,9 +1842,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutDynami
</div>
</div>
<div id="outline-container-orgb037aa7" class="outline-4">
<h4 id="orgb037aa7">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgb037aa7">
<div id="outline-container-org82e5db9" class="outline-4">
<h4 id="org82e5db9">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org82e5db9">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 3;
@ -1877,9 +1877,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</p>
</div>
<div id="outline-container-orgd95bcc9" class="outline-4">
<h4 id="orgd95bcc9">Function description</h4>
<div class="outline-text-4" id="text-orgd95bcc9">
<div id="outline-container-orgf5c4b43" class="outline-4">
<h4 id="orgf5c4b43">Function description</h4>
<div class="outline-text-4" id="text-orgf5c4b43">
<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>)
<span class="org-comment">% initializeJointDynamics - Add Stiffness and Damping properties for the spherical joints</span>
@ -1914,9 +1914,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</div>
</div>
<div id="outline-container-orgd046fdd" class="outline-4">
<h4 id="orgd046fdd">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgd046fdd">
<div id="outline-container-org380cbf5" class="outline-4">
<h4 id="org380cbf5">Optional Parameters</h4>
<div class="outline-text-4" id="text-org380cbf5">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -2088,9 +2088,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutAndJoi
</p>
</div>
<div id="outline-container-org796edd5" class="outline-4">
<h4 id="org796edd5">Function description</h4>
<div class="outline-text-4" id="text-org796edd5">
<div id="outline-container-org56a8d9a" class="outline-4">
<h4 id="org56a8d9a">Function description</h4>
<div class="outline-text-4" id="text-org56a8d9a">
<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">initializeFlexibleStrutAndJointDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeFlexibleStrutAndJointDynamics - Add Stiffness and Damping properties of each strut</span>
@ -2112,9 +2112,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutAndJoi
</div>
</div>
<div id="outline-container-org81f8b20" class="outline-4">
<h4 id="org81f8b20">Optional Parameters</h4>
<div class="outline-text-4" id="text-org81f8b20">
<div id="outline-container-orgac6a1c2" class="outline-4">
<h4 id="orgac6a1c2">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgac6a1c2">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -2131,9 +2131,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutAndJoi
</div>
</div>
<div id="outline-container-org67ae6f5" class="outline-4">
<h4 id="org67ae6f5">Compute the axial offset</h4>
<div class="outline-text-4" id="text-org67ae6f5">
<div id="outline-container-org578ef24" class="outline-4">
<h4 id="org578ef24">Compute the axial offset</h4>
<div class="outline-text-4" id="text-org578ef24">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.ax_off = (stewart.geometry.l(1) <span class="org-type">-</span> args.H)<span class="org-type">/</span>2; <span class="org-comment">% Axial Offset at the ends of the actuator</span>
</pre>
@ -2141,9 +2141,9 @@ This Matlab function is accessible <a href="../src/initializeFlexibleStrutAndJoi
</div>
</div>
<div id="outline-container-orgb405c72" class="outline-4">
<h4 id="orgb405c72">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgb405c72">
<div id="outline-container-org3587761" class="outline-4">
<h4 id="org3587761">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org3587761">
<p>
No discrete joints:
</p>
@ -2269,9 +2269,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-org6242c90" class="outline-4">
<h4 id="org6242c90">Function description</h4>
<div class="outline-text-4" id="text-org6242c90">
<div id="outline-container-org024b1d8" class="outline-4">
<h4 id="org024b1d8">Function description</h4>
<div class="outline-text-4" id="text-org024b1d8">
<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>)
<span class="org-comment">% initializeInertialSensor - Initialize the inertial sensor in each strut</span>
@ -2297,9 +2297,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-orge44b879" class="outline-4">
<h4 id="orge44b879">Optional Parameters</h4>
<div class="outline-text-4" id="text-orge44b879">
<div id="outline-container-org6d8876b" class="outline-4">
<h4 id="org6d8876b">Optional Parameters</h4>
<div class="outline-text-4" id="text-org6d8876b">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -2340,9 +2340,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-orgc8f8c81" class="outline-4">
<h4 id="orgc8f8c81">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgc8f8c81">
<div id="outline-container-org06a22a8" class="outline-4">
<h4 id="org06a22a8">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org06a22a8">
<div class="org-src-container">
<pre class="src src-matlab">stewart.sensors.inertial = sensor;
</pre>
@ -2363,9 +2363,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</p>
</div>
<div id="outline-container-orga146c7e" class="outline-4">
<h4 id="orga146c7e">Function description</h4>
<div class="outline-text-4" id="text-orga146c7e">
<div id="outline-container-org5b54876" class="outline-4">
<h4 id="org5b54876">Function description</h4>
<div class="outline-text-4" id="text-org5b54876">
<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>)
<span class="org-comment">% displayArchitecture - 3D plot of the Stewart platform architecture</span>
@ -2394,9 +2394,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div>
</div>
<div id="outline-container-orgca3d076" class="outline-4">
<h4 id="orgca3d076">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgca3d076">
<div id="outline-container-org2650173" class="outline-4">
<h4 id="org2650173">Optional Parameters</h4>
<div class="outline-text-4" id="text-org2650173">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -2417,9 +2417,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div>
</div>
<div id="outline-container-org8f74792" class="outline-4">
<h4 id="org8f74792">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org8f74792">
<div id="outline-container-orgab71ceb" class="outline-4">
<h4 id="orgab71ceb">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orgab71ceb">
<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>)
FO_A = stewart.platform_F.FO_A;
@ -2757,9 +2757,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</p>
</div>
<div id="outline-container-org4c43493" class="outline-4">
<h4 id="org4c43493">Function description</h4>
<div class="outline-text-4" id="text-org4c43493">
<div id="outline-container-orgdd06785" class="outline-4">
<h4 id="orgdd06785">Function description</h4>
<div class="outline-text-4" id="text-orgdd06785">
<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">describeStewartPlatform</span>(<span class="org-variable-name">stewart</span>)
<span class="org-comment">% describeStewartPlatform - Display some text describing the current defined Stewart Platform</span>
@ -2775,9 +2775,9 @@ This Matlab function is accessible <a href="../src/describeStewartPlatform.m">he
</div>
</div>
<div id="outline-container-org55b09bc" class="outline-4">
<h4 id="org55b09bc">Optional Parameters</h4>
<div class="outline-text-4" id="text-org55b09bc">
<div id="outline-container-org6e383c9" class="outline-4">
<h4 id="org6e383c9">Optional Parameters</h4>
<div class="outline-text-4" id="text-org6e383c9">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</span>
@ -2926,7 +2926,7 @@ Position of the mobile joints
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:29</p>
<p class="date">Created: 2021-01-08 ven. 15:52</p>
</div>
</body>
</html>

View File

@ -23,8 +23,9 @@ stewart = computeJacobian(stewart);
stewart = initializeStewartPose(stewart);
stewart = initializeInertialSensor(stewart, 'type', 'none');
ground = initializeGround('type', 'none');
ground = initializeGround('type', 'rigid', 'rot_point', stewart.platform_F.FO_A);
payload = initializePayload('type', 'none');
controller = initializeController('type', 'open-loop');

View File

@ -23,17 +23,14 @@ stewart = computeJacobian(stewart);
stewart = initializeStewartPose(stewart);
stewart = initializeInertialSensor(stewart, 'type', 'none');
ground = initializeGround('type', 'none');
ground = initializeGround('type', 'rigid', 'rot_point', stewart.platform_F.FO_A);
payload = initializePayload('type', 'none');
controller = initializeController('type', 'open-loop');
% And we identify the dynamics from force actuators to force sensors.
%% Options for Linearized
options = linearizeOptions;
options.SampleTime = 0;
%% Name of the Simulink File
mdl = 'stewart_platform_model';
@ -43,7 +40,7 @@ io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'Taum'); io_i = io_i + 1; % Force Sensor Outputs [N]
%% Run the linearization
G = linearize(mdl, io, options);
G = linearize(mdl, io);
G.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'};
G.OutputName = {'Fm1', 'Fm2', 'Fm3', 'Fm4', 'Fm5', 'Fm6'};
@ -88,7 +85,7 @@ linkaxes([ax1,ax2],'x');
% We add some stiffness and damping in the flexible joints and we re-identify the dynamics.
stewart = initializeJointDynamics(stewart, 'type_F', 'universal', 'type_M', 'spherical');
Gf = linearize(mdl, io, options);
Gf = linearize(mdl, io);
Gf.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'};
Gf.OutputName = {'Fm1', 'Fm2', 'Fm3', 'Fm4', 'Fm5', 'Fm6'};
@ -97,7 +94,7 @@ Gf.OutputName = {'Fm1', 'Fm2', 'Fm3', 'Fm4', 'Fm5', 'Fm6'};
% We now use the amplified actuators and re-identify the dynamics
stewart = initializeAmplifiedStrutDynamics(stewart);
Ga = linearize(mdl, io, options);
Ga = linearize(mdl, io);
Ga.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'};
Ga.OutputName = {'Fm1', 'Fm2', 'Fm3', 'Fm4', 'Fm5', 'Fm6'};

View File

@ -22,8 +22,9 @@ stewart = computeJacobian(stewart);
stewart = initializeStewartPose(stewart);
stewart = initializeInertialSensor(stewart, 'type', 'accelerometer', 'freq', 5e3);
ground = initializeGround('type', 'none');
ground = initializeGround('type', 'rigid', 'rot_point', stewart.platform_F.FO_A);
payload = initializePayload('type', 'none');
controller = initializeController('type', 'open-loop');
%% Options for Linearized
options = linearizeOptions;