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

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2021-01-08 ven. 15:30 --> <!-- 2021-01-08 ven. 15:53 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Tracking Control</title> <title>Stewart Platform - Tracking Control</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
@ -41,42 +41,42 @@
<ul> <ul>
<li><a href="#org38bd29c">1. Decentralized Control Architecture using Strut Length</a> <li><a href="#org38bd29c">1. Decentralized Control Architecture using Strut Length</a>
<ul> <ul>
<li><a href="#org777f63a">1.1. Control Schematic</a></li> <li><a href="#org26beab0">1.1. Control Schematic</a></li>
<li><a href="#org0f17ddf">1.2. Initialize the Stewart platform</a></li> <li><a href="#org4974b70">1.2. Initialize the Stewart platform</a></li>
<li><a href="#org938bf43">1.3. Identification of the plant</a></li> <li><a href="#orgffac384">1.3. Identification of the plant</a></li>
<li><a href="#orgd85e556">1.4. Plant Analysis</a></li> <li><a href="#org6b0f741">1.4. Plant Analysis</a></li>
<li><a href="#org012f9ba">1.5. Controller Design</a></li> <li><a href="#org4ac52e4">1.5. Controller Design</a></li>
<li><a href="#orgc46651b">1.6. Simulation</a></li> <li><a href="#orgcc561b1">1.6. Simulation</a></li>
<li><a href="#org27e5895">1.7. Results</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> </ul>
</li> </li>
<li><a href="#org6def216">2. Centralized Control Architecture using Pose Measurement</a> <li><a href="#org6def216">2. Centralized Control Architecture using Pose Measurement</a>
<ul> <ul>
<li><a href="#orgb6b4431">2.1. Control Schematic</a></li> <li><a href="#org0a198bd">2.1. Control Schematic</a></li>
<li><a href="#org13b9974">2.2. Initialize the Stewart platform</a></li> <li><a href="#orgcd92fdd">2.2. Initialize the Stewart platform</a></li>
<li><a href="#orgffac384">2.3. Identification of the plant</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> <li><a href="#org247c983">2.4. Diagonal Control - Leg&rsquo;s Frame</a>
<ul> <ul>
<li><a href="#org6e8aae5">2.4.1. Control Architecture</a></li> <li><a href="#org89a9e53">2.4.1. Control Architecture</a></li>
<li><a href="#orgc39fe3e">2.4.2. Plant Analysis</a></li> <li><a href="#org1ec2254">2.4.2. Plant Analysis</a></li>
<li><a href="#org7bc4037">2.4.3. Controller Design</a></li> <li><a href="#org1153366">2.4.3. Controller Design</a></li>
<li><a href="#org8348a67">2.4.4. Simulation</a></li> <li><a href="#orgcdb2d37">2.4.4. Simulation</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org016a64d">2.5. Diagonal Control - Cartesian Frame</a> <li><a href="#org016a64d">2.5. Diagonal Control - Cartesian Frame</a>
<ul> <ul>
<li><a href="#org694df0e">2.5.1. Control Architecture</a></li> <li><a href="#orgd397e3e">2.5.1. Control Architecture</a></li>
<li><a href="#orgddb8057">2.5.2. Plant Analysis</a></li> <li><a href="#orgeb6847d">2.5.2. Plant Analysis</a></li>
<li><a href="#org9cff4f2">2.5.3. Controller Design</a></li> <li><a href="#org75860e5">2.5.3. Controller Design</a></li>
<li><a href="#orgcc561b1">2.5.4. Simulation</a></li> <li><a href="#org2c9c807">2.5.4. Simulation</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgc91604c">2.6. Diagonal Control - Steady State Decoupling</a> <li><a href="#orgc91604c">2.6. Diagonal Control - Steady State Decoupling</a>
<ul> <ul>
<li><a href="#org89a9e53">2.6.1. Control Architecture</a></li> <li><a href="#org6c1baeb">2.6.1. Control Architecture</a></li>
<li><a href="#org6b0f741">2.6.2. Plant Analysis</a></li> <li><a href="#orgbff8dd9">2.6.2. Plant Analysis</a></li>
<li><a href="#org710c764">2.6.3. Controller Design</a></li> <li><a href="#org7bfa1fd">2.6.3. Controller Design</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org83bccab">2.7. Comparison</a> <li><a href="#org83bccab">2.7. Comparison</a>
@ -85,29 +85,29 @@
<li><a href="#org9360078">2.7.2. Simulation Results</a></li> <li><a href="#org9360078">2.7.2. Simulation Results</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org4558ccf">2.8. Conclusion</a></li> <li><a href="#org80dbaca">2.8. Conclusion</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org7107cf9">3. Hybrid Control Architecture - HAC-LAC with relative DVF</a> <li><a href="#org7107cf9">3. Hybrid Control Architecture - HAC-LAC with relative DVF</a>
<ul> <ul>
<li><a href="#org26beab0">3.1. Control Schematic</a></li> <li><a href="#org659eed7">3.1. Control Schematic</a></li>
<li><a href="#org4974b70">3.2. Initialize the Stewart platform</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> <li><a href="#org491cea7">3.3. First Control Loop - \(\bm{K}_\mathcal{L}\)</a>
<ul> <ul>
<li><a href="#orgd3e6a90">3.3.1. Identification</a></li> <li><a href="#org5cc334f">3.3.1. Identification</a></li>
<li><a href="#org1347b53">3.3.2. Obtained Plant</a></li> <li><a href="#org3be701b">3.3.2. Obtained Plant</a></li>
<li><a href="#org1299d6c">3.3.3. Controller Design</a></li> <li><a href="#org4623e8f">3.3.3. Controller Design</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org53cbafc">3.4. Second Control Loop - \(\bm{K}_\mathcal{X}\)</a> <li><a href="#org53cbafc">3.4. Second Control Loop - \(\bm{K}_\mathcal{X}\)</a>
<ul> <ul>
<li><a href="#org5cc334f">3.4.1. Identification</a></li> <li><a href="#orgfc299ed">3.4.1. Identification</a></li>
<li><a href="#org3be701b">3.4.2. Obtained Plant</a></li> <li><a href="#org1680642">3.4.2. Obtained Plant</a></li>
<li><a href="#org4ac52e4">3.4.3. Controller Design</a></li> <li><a href="#orgae806c2">3.4.3. Controller Design</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org96f8c42">3.5. Simulations</a></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> </ul>
</li> </li>
<li><a href="#orgffc4966">4. Comparison of all the methods</a></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> <a id="orgf224027"></a>
</p> </p>
</div> </div>
<div id="outline-container-org777f63a" class="outline-3"> <div id="outline-container-org26beab0" class="outline-3">
<h3 id="org777f63a"><span class="section-number-3">1.1</span> Control Schematic</h3> <h3 id="org26beab0"><span class="section-number-3">1.1</span> Control Schematic</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<p> <p>
The control architecture is shown in Figure <a href="#orga408812">1</a>. 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> </div>
<div id="outline-container-org0f17ddf" class="outline-3"> <div id="outline-container-org4974b70" class="outline-3">
<h3 id="org0f17ddf"><span class="section-number-3">1.2</span> Initialize the Stewart platform</h3> <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="outline-text-3" id="text-1-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% Stewart Platform</span> <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> </div>
<div id="outline-container-org938bf43" class="outline-3"> <div id="outline-container-orgffac384" class="outline-3">
<h3 id="org938bf43"><span class="section-number-3">1.3</span> Identification of the plant</h3> <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"> <div class="outline-text-3" id="text-1-3">
<p> <p>
Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{L}}\). 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> </div>
<div id="outline-container-orgd85e556" class="outline-3"> <div id="outline-container-org6b0f741" class="outline-3">
<h3 id="orgd85e556"><span class="section-number-3">1.4</span> Plant Analysis</h3> <h3 id="org6b0f741"><span class="section-number-3">1.4</span> Plant Analysis</h3>
<div class="outline-text-3" id="text-1-4"> <div class="outline-text-3" id="text-1-4">
<p> <p>
The diagonal and off-diagonal terms of the plant are shown in Figure <a href="#org98f0b3d">2</a>. 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> </div>
<div id="outline-container-org012f9ba" class="outline-3"> <div id="outline-container-org4ac52e4" class="outline-3">
<h3 id="org012f9ba"><span class="section-number-3">1.5</span> Controller Design</h3> <h3 id="org4ac52e4"><span class="section-number-3">1.5</span> Controller Design</h3>
<div class="outline-text-3" id="text-1-5"> <div class="outline-text-3" id="text-1-5">
<p> <p>
The controller consists of: The controller consists of:
@ -275,8 +275,8 @@ The obtained loop gains corresponding to the diagonal elements are shown in Figu
</div> </div>
</div> </div>
<div id="outline-container-orgc46651b" class="outline-3"> <div id="outline-container-orgcc561b1" class="outline-3">
<h3 id="orgc46651b"><span class="section-number-3">1.6</span> Simulation</h3> <h3 id="orgcc561b1"><span class="section-number-3">1.6</span> Simulation</h3>
<div class="outline-text-3" id="text-1-6"> <div class="outline-text-3" id="text-1-6">
<p> <p>
Let&rsquo;s define some reference path to follow. 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> </div>
<div id="outline-container-orgf950695" class="outline-3"> <div id="outline-container-orga08a7c7" class="outline-3">
<h3 id="orgf950695"><span class="section-number-3">1.8</span> Conclusion</h3> <h3 id="orga08a7c7"><span class="section-number-3">1.8</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-8"> <div class="outline-text-3" id="text-1-8">
<p> <p>
Such control architecture is easy to implement and give good results. 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> <a id="org17ac109"></a>
</p> </p>
</div> </div>
<div id="outline-container-orgb6b4431" class="outline-3"> <div id="outline-container-org0a198bd" class="outline-3">
<h3 id="orgb6b4431"><span class="section-number-3">2.1</span> Control Schematic</h3> <h3 id="org0a198bd"><span class="section-number-3">2.1</span> Control Schematic</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <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>). 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>. 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> </p>
<div class="important" id="org7a0c8d4"> <div class="important" id="orgfe9fde9">
<p> <p>
Note here that the subtraction shown in Figure <a href="#org70b7a89">8</a> is not a real subtraction. 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>. 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> </div>
<div id="outline-container-org13b9974" class="outline-3"> <div id="outline-container-orgcd92fdd" class="outline-3">
<h3 id="org13b9974"><span class="section-number-3">2.2</span> Initialize the Stewart platform</h3> <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="outline-text-3" id="text-2-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% Stewart Platform</span> <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> </div>
<div id="outline-container-orgffac384" class="outline-3"> <div id="outline-container-org07a44ca" class="outline-3">
<h3 id="orgffac384"><span class="section-number-3">2.3</span> Identification of the plant</h3> <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"> <div class="outline-text-3" id="text-2-3">
<p> <p>
Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{X}}\). 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> <a id="org245333d"></a>
</p> </p>
</div> </div>
<div id="outline-container-org6e8aae5" class="outline-4"> <div id="outline-container-org89a9e53" class="outline-4">
<h4 id="org6e8aae5"><span class="section-number-4">2.4.1</span> Control Architecture</h4> <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"> <div class="outline-text-4" id="text-2-4-1">
<p> <p>
The pose error \(\bm{\epsilon}_\mathcal{X}\) is first converted in the frame of the leg by using the Jacobian matrix. 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> </div>
<div id="outline-container-orgc39fe3e" class="outline-4"> <div id="outline-container-org1ec2254" class="outline-4">
<h4 id="orgc39fe3e"><span class="section-number-4">2.4.2</span> Plant Analysis</h4> <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"> <div class="outline-text-4" id="text-2-4-2">
<p> <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. 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> </div>
<div id="outline-container-org7bc4037" class="outline-4"> <div id="outline-container-org1153366" class="outline-4">
<h4 id="org7bc4037"><span class="section-number-4">2.4.3</span> Controller Design</h4> <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"> <div class="outline-text-4" id="text-2-4-3">
<p> <p>
The controller consists of: The controller consists of:
@ -600,8 +600,8 @@ The controller \(\bm{K} = \bm{K}_\mathcal{L} \bm{J}\) is computed.
</div> </div>
</div> </div>
<div id="outline-container-org8348a67" class="outline-4"> <div id="outline-container-orgcdb2d37" class="outline-4">
<h4 id="org8348a67"><span class="section-number-4">2.4.4</span> Simulation</h4> <h4 id="orgcdb2d37"><span class="section-number-4">2.4.4</span> Simulation</h4>
<div class="outline-text-4" id="text-2-4-4"> <div class="outline-text-4" id="text-2-4-4">
<p> <p>
We specify the reference path to follow. We specify the reference path to follow.
@ -645,8 +645,8 @@ We run the simulation and we save the results.
<a id="org391e5c7"></a> <a id="org391e5c7"></a>
</p> </p>
</div> </div>
<div id="outline-container-org694df0e" class="outline-4"> <div id="outline-container-orgd397e3e" class="outline-4">
<h4 id="org694df0e"><span class="section-number-4">2.5.1</span> Control Architecture</h4> <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"> <div class="outline-text-4" id="text-2-5-1">
<p> <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>. 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> </div>
<div id="outline-container-orgddb8057" class="outline-4"> <div id="outline-container-orgeb6847d" class="outline-4">
<h4 id="orgddb8057"><span class="section-number-4">2.5.2</span> Plant Analysis</h4> <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"> <div class="outline-text-4" id="text-2-5-2">
<p> <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. 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> </div>
<div id="outline-container-org9cff4f2" class="outline-4"> <div id="outline-container-org75860e5" class="outline-4">
<h4 id="org9cff4f2"><span class="section-number-4">2.5.3</span> Controller Design</h4> <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"> <div class="outline-text-4" id="text-2-5-3">
<p> <p>
The controller consists of: The controller consists of:
@ -819,8 +819,8 @@ The controller \(\bm{K} = \bm{J}^{-T} \bm{K}_\mathcal{X}\) is computed.
</div> </div>
</div> </div>
<div id="outline-container-orgcc561b1" class="outline-4"> <div id="outline-container-org2c9c807" class="outline-4">
<h4 id="orgcc561b1"><span class="section-number-4">2.5.4</span> Simulation</h4> <h4 id="org2c9c807"><span class="section-number-4">2.5.4</span> Simulation</h4>
<div class="outline-text-4" id="text-2-5-4"> <div class="outline-text-4" id="text-2-5-4">
<p> <p>
We specify the reference path to follow. We specify the reference path to follow.
@ -864,8 +864,8 @@ We run the simulation and we save the results.
<a id="org2fcbaba"></a> <a id="org2fcbaba"></a>
</p> </p>
</div> </div>
<div id="outline-container-org89a9e53" class="outline-4"> <div id="outline-container-org6c1baeb" class="outline-4">
<h4 id="org89a9e53"><span class="section-number-4">2.6.1</span> Control Architecture</h4> <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"> <div class="outline-text-4" id="text-2-6-1">
<p> <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. 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> </div>
<div id="outline-container-org6b0f741" class="outline-4"> <div id="outline-container-orgbff8dd9" class="outline-4">
<h4 id="org6b0f741"><span class="section-number-4">2.6.2</span> Plant Analysis</h4> <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"> <div class="outline-text-4" id="text-2-6-2">
<p> <p>
The plant is pre-multiplied by \(\bm{G}^{-1}(\omega = 0)\). 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> </div>
<div id="outline-container-org710c764" class="outline-4"> <div id="outline-container-org7bfa1fd" class="outline-4">
<h4 id="org710c764"><span class="section-number-4">2.6.3</span> Controller Design</h4> <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"> <div class="outline-text-4" id="text-2-6-3">
<p> <p>
We have that: 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> </div>
<div id="outline-container-org4558ccf" class="outline-3"> <div id="outline-container-org80dbaca" class="outline-3">
<h3 id="org4558ccf"><span class="section-number-3">2.8</span> Conclusion</h3> <h3 id="org80dbaca"><span class="section-number-3">2.8</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-8"> <div class="outline-text-3" id="text-2-8">
<p> <p>
Both control architecture gives similar results even tough the control in the Leg&rsquo;s frame gives slightly better results. 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> <a id="orgb001207"></a>
</p> </p>
</div> </div>
<div id="outline-container-org26beab0" class="outline-3"> <div id="outline-container-org659eed7" class="outline-3">
<h3 id="org26beab0"><span class="section-number-3">3.1</span> Control Schematic</h3> <h3 id="org659eed7"><span class="section-number-3">3.1</span> Control Schematic</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<p> <p>
Let&rsquo;s consider the control schematic shown in Figure <a href="#orga867420">19</a>. 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> </div>
<div id="outline-container-org4974b70" class="outline-3"> <div id="outline-container-orge9def22" class="outline-3">
<h3 id="org4974b70"><span class="section-number-3">3.2</span> Initialize the Stewart platform</h3> <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="outline-text-3" id="text-3-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% Stewart Platform</span> <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> <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 class="outline-text-3" id="text-3-3">
</div> </div>
<div id="outline-container-orgd3e6a90" class="outline-4"> <div id="outline-container-org5cc334f" class="outline-4">
<h4 id="orgd3e6a90"><span class="section-number-4">3.3.1</span> Identification</h4> <h4 id="org5cc334f"><span class="section-number-4">3.3.1</span> Identification</h4>
<div class="outline-text-4" id="text-3-3-1"> <div class="outline-text-4" id="text-3-3-1">
<p> <p>
Let&rsquo;s identify the transfer function from \(\bm{\tau}\) to \(\bm{L}\). 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> </div>
<div id="outline-container-org1347b53" class="outline-4"> <div id="outline-container-org3be701b" class="outline-4">
<h4 id="org1347b53"><span class="section-number-4">3.3.2</span> Obtained Plant</h4> <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"> <div class="outline-text-4" id="text-3-3-2">
<p> <p>
The obtained plant is shown in Figure <a href="#org54b5aae">20</a>. 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> </div>
<div id="outline-container-org1299d6c" class="outline-4"> <div id="outline-container-org4623e8f" class="outline-4">
<h4 id="org1299d6c"><span class="section-number-4">3.3.3</span> Controller Design</h4> <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"> <div class="outline-text-4" id="text-3-3-3">
<p> <p>
We apply a decentralized (diagonal) direct velocity feedback. 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> <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 class="outline-text-3" id="text-3-4">
</div> </div>
<div id="outline-container-org5cc334f" class="outline-4"> <div id="outline-container-orgfc299ed" class="outline-4">
<h4 id="org5cc334f"><span class="section-number-4">3.4.1</span> Identification</h4> <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="outline-text-4" id="text-3-4-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Kx = tf(zeros(6)); <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> </div>
<div id="outline-container-org3be701b" class="outline-4"> <div id="outline-container-org1680642" class="outline-4">
<h4 id="org3be701b"><span class="section-number-4">3.4.2</span> Obtained Plant</h4> <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"> <div class="outline-text-4" id="text-3-4-2">
<p> <p>
We use the Jacobian matrix to apply forces in the cartesian frame. 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> </div>
<div id="outline-container-org4ac52e4" class="outline-4"> <div id="outline-container-orgae806c2" class="outline-4">
<h4 id="org4ac52e4"><span class="section-number-4">3.4.3</span> Controller Design</h4> <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"> <div class="outline-text-4" id="text-3-4-3">
<p> <p>
The controller consists of: The controller consists of:
@ -1350,8 +1350,8 @@ The obtained position error is shown in Figure <a href="#org32b868d">24</a>.
</div> </div>
</div> </div>
<div id="outline-container-orga08a7c7" class="outline-3"> <div id="outline-container-orgcf8f38f" class="outline-3">
<h3 id="orga08a7c7"><span class="section-number-3">3.6</span> Conclusion</h3> <h3 id="orgcf8f38f"><span class="section-number-3">3.6</span> Conclusion</h3>
</div> </div>
</div> </div>
@ -1515,7 +1515,7 @@ Now we want to express \({}^VT_R\):
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p> <p class="date">Created: 2021-01-08 ven. 15:53</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2021-01-08 ven. 15:29 --> <!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform - Vibration Isolation</title> <title>Stewart Platform - Vibration Isolation</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
@ -42,28 +42,28 @@
<li><a href="#org4b4dce5">1. HAC-LAC (Cascade) Control - Integral Control</a> <li><a href="#org4b4dce5">1. HAC-LAC (Cascade) Control - Integral Control</a>
<ul> <ul>
<li><a href="#org9a6463e">1.1. Introduction</a></li> <li><a href="#org9a6463e">1.1. Introduction</a></li>
<li><a href="#org3a99845">1.2. Initialization</a></li> <li><a href="#org2308492">1.2. Initialization</a></li>
<li><a href="#org14c6b40">1.3. Identification</a> <li><a href="#orgb5e88a6">1.3. Identification</a>
<ul> <ul>
<li><a href="#org0472596">1.3.1. HAC - Without LAC</a></li> <li><a href="#org7e602f6">1.3.1. HAC - Without LAC</a></li>
<li><a href="#org4f15e52">1.3.2. HAC - IFF</a></li> <li><a href="#org49dd47c">1.3.2. HAC - IFF</a></li>
<li><a href="#org7a58249">1.3.3. HAC - DVF</a></li> <li><a href="#orgc4bf514">1.3.3. HAC - DVF</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org68ac3ce">1.4. Control Architecture</a></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="#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> <ul>
<li><a href="#orgd38d3c3">1.6.1. Plant</a></li> <li><a href="#orgff953e4">1.6.1. Plant</a></li>
<li><a href="#org9f6bb59">1.6.2. Controller Design</a></li> <li><a href="#orgbd635c1">1.6.2. Controller Design</a></li>
<li><a href="#orga03849e">1.6.3. Obtained Performance</a></li> <li><a href="#org83c15a9">1.6.3. Obtained Performance</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org49dd47c">1.7. HAC - IFF</a> <li><a href="#org5dfa0fd">1.7. HAC - IFF</a>
<ul> <ul>
<li><a href="#orgff953e4">1.7.1. Plant</a></li> <li><a href="#orgeedcb6b">1.7.1. Plant</a></li>
<li><a href="#orgbd635c1">1.7.2. Controller Design</a></li> <li><a href="#orgd723b75">1.7.2. Controller Design</a></li>
<li><a href="#org83c15a9">1.7.3. Obtained Performance</a></li> <li><a href="#org54813bf">1.7.3. Obtained Performance</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org8e15485">1.8. Comparison</a></li> <li><a href="#org8e15485">1.8. Comparison</a></li>
@ -71,11 +71,11 @@
</li> </li>
<li><a href="#orgdc1bcf2">2. MIMO Analysis</a> <li><a href="#orgdc1bcf2">2. MIMO Analysis</a>
<ul> <ul>
<li><a href="#orgb2d0659">2.1. Initialization</a></li> <li><a href="#org7fd66be">2.1. Initialization</a></li>
<li><a href="#org2c99279">2.2. Identification</a> <li><a href="#org06a70cd">2.2. Identification</a>
<ul> <ul>
<li><a href="#org7e602f6">2.2.1. HAC - Without LAC</a></li> <li><a href="#org88e17f4">2.2.1. HAC - Without LAC</a></li>
<li><a href="#orgc4bf514">2.2.2. HAC - DVF</a></li> <li><a href="#orgb75c6b7">2.2.2. HAC - DVF</a></li>
<li><a href="#orgba8c7bf">2.2.3. Cartesian Frame</a></li> <li><a href="#orgba8c7bf">2.2.3. Cartesian Frame</a></li>
</ul> </ul>
</li> </li>
@ -84,13 +84,13 @@
</li> </li>
<li><a href="#orga095fa8">3. Diagonal Control based on the damped plant</a> <li><a href="#orga095fa8">3. Diagonal Control based on the damped plant</a>
<ul> <ul>
<li><a href="#org7b7245e">3.1. Initialization</a></li> <li><a href="#orge901603">3.1. Initialization</a></li>
<li><a href="#orgb5e88a6">3.2. Identification</a></li> <li><a href="#orgce73f0c">3.2. Identification</a></li>
<li><a href="#orgb5a063b">3.3. Steady State Decoupling</a> <li><a href="#orgb5a063b">3.3. Steady State Decoupling</a>
<ul> <ul>
<li><a href="#orgd0ce552">3.3.1. Pre-Compensator Design</a></li> <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="#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> </ul>
</li> </li>
<li><a href="#orgb53dd48">3.4. Decoupling at Crossover</a></li> <li><a href="#orgb53dd48">3.4. Decoupling at Crossover</a></li>
@ -98,10 +98,10 @@
</li> </li>
<li><a href="#org639412c">4. Time Domain Simulation</a> <li><a href="#org639412c">4. Time Domain Simulation</a>
<ul> <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="#orgc72e6b5">4.2. HAC IFF</a></li>
<li><a href="#org757f9e9">4.3. HAC-DVF</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> </ul>
</li> </li>
<li><a href="#org6a9c87c">5. Functions</a> <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> </div>
<div id="outline-container-org3a99845" class="outline-3"> <div id="outline-container-org2308492" class="outline-3">
<h3 id="org3a99845"><span class="section-number-3">1.2</span> Initialization</h3> <h3 id="org2308492"><span class="section-number-3">1.2</span> Initialization</h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
<p> <p>
We first initialize the Stewart platform. 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> </div>
<div id="outline-container-org14c6b40" class="outline-3"> <div id="outline-container-orgb5e88a6" class="outline-3">
<h3 id="org14c6b40"><span class="section-number-3">1.3</span> Identification</h3> <h3 id="orgb5e88a6"><span class="section-number-3">1.3</span> Identification</h3>
<div class="outline-text-3" id="text-1-3"> <div class="outline-text-3" id="text-1-3">
<p> <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: 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> </ul>
</div> </div>
<div id="outline-container-org0472596" class="outline-4"> <div id="outline-container-org7e602f6" class="outline-4">
<h4 id="org0472596"><span class="section-number-4">1.3.1</span> HAC - Without LAC</h4> <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="outline-text-4" id="text-1-3-1">
<div class="org-src-container"> <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>); <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> </div>
<div id="outline-container-org4f15e52" class="outline-4"> <div id="outline-container-org49dd47c" class="outline-4">
<h4 id="org4f15e52"><span class="section-number-4">1.3.2</span> HAC - IFF</h4> <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="outline-text-4" id="text-1-3-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'iff'</span>); <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> </div>
<div id="outline-container-org7a58249" class="outline-4"> <div id="outline-container-orgc4bf514" class="outline-4">
<h4 id="org7a58249"><span class="section-number-4">1.3.3</span> HAC - DVF</h4> <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="outline-text-4" id="text-1-3-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>); <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> </div>
<div id="outline-container-org57a64c4" class="outline-3"> <div id="outline-container-orgc2cdba3" class="outline-3">
<h3 id="org57a64c4"><span class="section-number-3">1.6</span> HAC - DVF</h3> <h3 id="orgc2cdba3"><span class="section-number-3">1.6</span> HAC - DVF</h3>
<div class="outline-text-3" id="text-1-6"> <div class="outline-text-3" id="text-1-6">
</div> </div>
<div id="outline-container-orgd38d3c3" class="outline-4"> <div id="outline-container-orgff953e4" class="outline-4">
<h4 id="orgd38d3c3"><span class="section-number-4">1.6.1</span> Plant</h4> <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 class="outline-text-4" id="text-1-6-1">
<div id="orgc08547a" class="figure"> <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> </div>
<div id="outline-container-org9f6bb59" class="outline-4"> <div id="outline-container-orgbd635c1" class="outline-4">
<h4 id="org9f6bb59"><span class="section-number-4">1.6.2</span> Controller Design</h4> <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"> <div class="outline-text-4" id="text-1-6-2">
<p> <p>
We design a diagonal controller with equal bandwidth for the 6 terms. 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> </div>
<div id="outline-container-orga03849e" class="outline-4"> <div id="outline-container-org83c15a9" class="outline-4">
<h4 id="orga03849e"><span class="section-number-4">1.6.3</span> Obtained Performance</h4> <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"> <div class="outline-text-4" id="text-1-6-3">
<p> <p>
We identify the transmissibility and compliance of the system. 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> </div>
<div id="outline-container-org49dd47c" class="outline-3"> <div id="outline-container-org5dfa0fd" class="outline-3">
<h3 id="org49dd47c"><span class="section-number-3">1.7</span> HAC - IFF</h3> <h3 id="org5dfa0fd"><span class="section-number-3">1.7</span> HAC - IFF</h3>
<div class="outline-text-3" id="text-1-7"> <div class="outline-text-3" id="text-1-7">
</div> </div>
<div id="outline-container-orgff953e4" class="outline-4"> <div id="outline-container-orgeedcb6b" class="outline-4">
<h4 id="orgff953e4"><span class="section-number-4">1.7.1</span> Plant</h4> <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 class="outline-text-4" id="text-1-7-1">
<div id="org66710a7" class="figure"> <div id="org66710a7" class="figure">
@ -425,8 +425,8 @@ We identify the transmissibility and compliance of the system.
</div> </div>
</div> </div>
<div id="outline-container-orgbd635c1" class="outline-4"> <div id="outline-container-orgd723b75" class="outline-4">
<h4 id="orgbd635c1"><span class="section-number-4">1.7.2</span> Controller Design</h4> <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"> <div class="outline-text-4" id="text-1-7-2">
<p> <p>
We design a diagonal controller with equal bandwidth for the 6 terms. 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> </div>
<div id="outline-container-org83c15a9" class="outline-4"> <div id="outline-container-org54813bf" class="outline-4">
<h4 id="org83c15a9"><span class="section-number-4">1.7.3</span> Obtained Performance</h4> <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"> <div class="outline-text-4" id="text-1-7-3">
<p> <p>
We identify the transmissibility and compliance of the system. 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> </table>
</div> </div>
<div id="outline-container-orgb2d0659" class="outline-3"> <div id="outline-container-org7fd66be" class="outline-3">
<h3 id="orgb2d0659"><span class="section-number-3">2.1</span> Initialization</h3> <h3 id="org7fd66be"><span class="section-number-3">2.1</span> Initialization</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <p>
We first initialize the Stewart platform. 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> </div>
<div id="outline-container-org2c99279" class="outline-3"> <div id="outline-container-org06a70cd" class="outline-3">
<h3 id="org2c99279"><span class="section-number-3">2.2</span> Identification</h3> <h3 id="org06a70cd"><span class="section-number-3">2.2</span> Identification</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
</div> </div>
<div id="outline-container-org7e602f6" class="outline-4"> <div id="outline-container-org88e17f4" class="outline-4">
<h4 id="org7e602f6"><span class="section-number-4">2.2.1</span> HAC - Without LAC</h4> <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="outline-text-4" id="text-2-2-1">
<div class="org-src-container"> <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>); <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> </div>
<div id="outline-container-orgc4bf514" class="outline-4"> <div id="outline-container-orgb75c6b7" class="outline-4">
<h4 id="orgc4bf514"><span class="section-number-4">2.2.2</span> HAC - DVF</h4> <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="outline-text-4" id="text-2-2-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>); <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> </ol>
</div> </div>
<div id="outline-container-org7b7245e" class="outline-3"> <div id="outline-container-orge901603" class="outline-3">
<h3 id="org7b7245e"><span class="section-number-3">3.1</span> Initialization</h3> <h3 id="orge901603"><span class="section-number-3">3.1</span> Initialization</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<p> <p>
We first initialize the Stewart platform. 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> </div>
<div id="outline-container-orgb5e88a6" class="outline-3"> <div id="outline-container-orgce73f0c" class="outline-3">
<h3 id="orgb5e88a6"><span class="section-number-3">3.2</span> Identification</h3> <h3 id="orgce73f0c"><span class="section-number-3">3.2</span> Identification</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>); <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> </div>
<div id="outline-container-org923f450" class="outline-4"> <div id="outline-container-org3228759" class="outline-4">
<h4 id="org923f450"><span class="section-number-4">3.3.3</span> Results</h4> <h4 id="org3228759"><span class="section-number-4">3.3.3</span> Results</h4>
<div class="outline-text-4" id="text-3-3-3"> <div class="outline-text-4" id="text-3-3-3">
<p> <p>
We identify the transmissibility and compliance of the Stewart platform under open-loop and closed-loop control. 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> <h2 id="org639412c"><span class="section-number-2">4</span> Time Domain Simulation</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
</div> </div>
<div id="outline-container-org2308492" class="outline-3"> <div id="outline-container-orgc332811" class="outline-3">
<h3 id="org2308492"><span class="section-number-3">4.1</span> Initialization</h3> <h3 id="orgc332811"><span class="section-number-3">4.1</span> Initialization</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
<p> <p>
We first initialize the Stewart platform. 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> </div>
<div id="outline-container-org3228759" class="outline-3"> <div id="outline-container-org620278d" class="outline-3">
<h3 id="org3228759"><span class="section-number-3">4.4</span> Results</h3> <h3 id="org620278d"><span class="section-number-3">4.4</span> Results</h3>
<div class="outline-text-3" id="text-4-4"> <div class="outline-text-3" id="text-4-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>; <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>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:29</p> <p class="date">Created: 2021-01-08 ven. 15:52</p>
</div> </div>
</body> </body>
</html> </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"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2021-01-08 ven. 15:30 --> <!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Cubic configuration for the Stewart Platform</title> <title>Cubic configuration for the Stewart Platform</title>
<meta name="generator" content="Org mode" /> <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="#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="#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="#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> </ul>
</li> </li>
<li><a href="#org312b7d4">2. Configuration with the Cube&rsquo;s center above the mobile platform</a> <li><a href="#org312b7d4">2. Configuration with the Cube&rsquo;s center above the mobile platform</a>
<ul> <ul>
<li><a href="#org4983654">2.1. Having Cube&rsquo;s center above the top platform</a></li> <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="#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> </ul>
</li> </li>
<li><a href="#org2387b96">3. Cubic size analysis</a> <li><a href="#org2387b96">3. Cubic size analysis</a>
<ul> <ul>
<li><a href="#org3647f9f">3.1. Analysis</a></li> <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> </ul>
</li> </li>
<li><a href="#org174af3a">4. Dynamic Coupling in the Cartesian Frame</a> <li><a href="#org174af3a">4. Dynamic Coupling in the Cartesian Frame</a>
<ul> <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="#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="#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> </ul>
</li> </li>
<li><a href="#org7831cff">5. Dynamic Coupling between actuators and sensors of each strut</a> <li><a href="#org7831cff">5. Dynamic Coupling between actuators and sensors of each strut</a>
<ul> <ul>
<li><a href="#org38e9e8f">5.1. Coupling between the actuators and sensors - Cubic Architecture</a></li> <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="#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> </ul>
</li> </li>
<li><a href="#org3ce1c89">6. Functions</a> <li><a href="#org3ce1c89">6. Functions</a>
@ -128,7 +128,7 @@ In this document, the cubic architecture is analyzed:
<a id="org6bc5f56"></a> <a id="org6bc5f56"></a>
</p> </p>
<div class="note" id="org6a03293"> <div class="note" id="org783c5d6">
<p> <p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_stiffnessl.m">here</a>. The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_stiffnessl.m">here</a>.
</p> </p>
@ -620,10 +620,10 @@ The center of the cube from the top platform is at \(z = 110 - 175 = -65\).
</div> </div>
</div> </div>
<div id="outline-container-org4e88cdb" class="outline-3"> <div id="outline-container-orgeb8ae82" class="outline-3">
<h3 id="org4e88cdb"><span class="section-number-3">1.5</span> Conclusion</h3> <h3 id="orgeb8ae82"><span class="section-number-3">1.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-5"> <div class="outline-text-3" id="text-1-5">
<div class="important" id="org2fc62c4"> <div class="important" id="orgb449c4a">
<p> <p>
Here are the conclusion about the Stiffness matrix for the Cubic configuration: Here are the conclusion about the Stiffness matrix for the Cubic configuration:
</p> </p>
@ -644,7 +644,7 @@ Here are the conclusion about the Stiffness matrix for the Cubic configuration:
<a id="org419cdb0"></a> <a id="org419cdb0"></a>
</p> </p>
<div class="note" id="orgd5c0d4d"> <div class="note" id="orge405fbc">
<p> <p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_above_platforml.m">here</a>. The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_above_platforml.m">here</a>.
</p> </p>
@ -1049,10 +1049,10 @@ For a small cube:
</div> </div>
</div> </div>
<div id="outline-container-org561a2bc" class="outline-3"> <div id="outline-container-org52825e8" class="outline-3">
<h3 id="org561a2bc"><span class="section-number-3">2.3</span> Conclusion</h3> <h3 id="org52825e8"><span class="section-number-3">2.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<div class="important" id="orga24e443"> <div class="important" id="orgc3fb4db">
<p> <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. 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. 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> <a id="org53ade24"></a>
</p> </p>
<div class="note" id="orgfd32e5a"> <div class="note" id="org6ff8a60">
<p> <p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_size_analysisl.m">here</a>. The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_size_analysisl.m">here</a>.
</p> </p>
@ -1168,14 +1168,14 @@ We also find that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) are varyi
</div> </div>
</div> </div>
<div id="outline-container-org948a425" class="outline-3"> <div id="outline-container-org701701b" class="outline-3">
<h3 id="org948a425"><span class="section-number-3">3.2</span> Conclusion</h3> <h3 id="org701701b"><span class="section-number-3">3.2</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
<p> <p>
We observe that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) increase linearly with the cube size. We observe that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) increase linearly with the cube size.
</p> </p>
<div class="important" id="org60cc507"> <div class="important" id="org93b8347">
<p> <p>
In order to maximize the rotational stiffness of the Stewart platform, the size of the cube should be the highest possible. In order to maximize the rotational stiffness of the Stewart platform, the size of the cube should be the highest possible.
</p> </p>
@ -1192,7 +1192,7 @@ In order to maximize the rotational stiffness of the Stewart platform, the size
<a id="org3507b2b"></a> <a id="org3507b2b"></a>
</p> </p>
<div class="note" id="org5934a9c"> <div class="note" id="org265afc7">
<p> <p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_coupling_cartesianl.m">here</a>. The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_coupling_cartesianl.m">here</a>.
</p> </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> <p><span class="figure-number">Figure 12: </span>Alternative way to decouple the system</p>
</div> </div>
<div class="important" id="org489ed3b"> <div class="important" id="orgd31482e">
<p> <p>
The dynamics is well decoupled at all frequencies. The dynamics is well decoupled at all frequencies.
</p> </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> <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>
<div class="important" id="org798e5c6"> <div class="important" id="orgc60cb20">
<p> <p>
The system is decoupled at low frequency (the Stiffness matrix being diagonal), but it is <b>not</b> decoupled at all frequencies. The system is decoupled at low frequency (the Stiffness matrix being diagonal), but it is <b>not</b> decoupled at all frequencies.
</p> </p>
@ -1538,10 +1538,10 @@ This was expected as the mass matrix is not diagonal (the Center of Mass of the
</div> </div>
</div> </div>
<div id="outline-container-org7d50eae" class="outline-3"> <div id="outline-container-orgf407e4d" class="outline-3">
<h3 id="org7d50eae"><span class="section-number-3">4.3</span> Conclusion</h3> <h3 id="orgf407e4d"><span class="section-number-3">4.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-3"> <div class="outline-text-3" id="text-4-3">
<div class="important" id="org9b1be89"> <div class="important" id="org982344b">
<p> <p>
Some conclusions can be drawn from the above analysis: Some conclusions can be drawn from the above analysis:
</p> </p>
@ -1562,7 +1562,7 @@ Some conclusions can be drawn from the above analysis:
<a id="org7b3ed31"></a> <a id="org7b3ed31"></a>
</p> </p>
<div class="note" id="org7a9b096"> <div class="note" id="org96fba24">
<p> <p>
The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_coupling_strutsl.m">here</a>. The Matlab script corresponding to this section is accessible <a href="../matlab/cubic_conf_coupling_strutsl.m">here</a>.
</p> </p>
@ -1729,10 +1729,10 @@ And we identify the dynamics from the actuator forces \(\tau_{i}\) to the relati
</div> </div>
</div> </div>
<div id="outline-container-orgeb8ae82" class="outline-3"> <div id="outline-container-org0348380" class="outline-3">
<h3 id="orgeb8ae82"><span class="section-number-3">5.3</span> Conclusion</h3> <h3 id="org0348380"><span class="section-number-3">5.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-3"> <div class="outline-text-3" id="text-5-3">
<div class="important" id="org74729c6"> <div class="important" id="orgd92f0ac">
<p> <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. 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> </p>
@ -1905,7 +1905,7 @@ We now which to compute the position of the joints \(a_{i}\) and \(b_{i}\).
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:30</p> <p class="date">Created: 2021-01-08 ven. 15:52</p>
</div> </div>
</body> </body>
</html> </html>

View File

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

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2021-01-08 ven. 15:29 --> <!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Stewart Platform with Flexible Elements</title> <title>Stewart Platform with Flexible Elements</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
@ -24,48 +24,48 @@
<ul> <ul>
<li><a href="#orgc309c7b">1. Simscape Model</a> <li><a href="#orgc309c7b">1. Simscape Model</a>
<ul> <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="#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="#org59e4972">1.4. No Flexible Elements</a></li>
<li><a href="#orgb06052a">1.5. Flexible joints</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="#org4f41f14">1.7. Flexible Joints and APA</a></li>
<li><a href="#orga39e477">1.8. Save</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="#org1e66228">1.9. Direct Velocity Feedback</a></li>
<li><a href="#orgef60bbc">1.10. Integral Force 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="#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> </ul>
</li> </li>
<li><a href="#org2d65f84">2. Control with flexible elements</a> <li><a href="#org2d65f84">2. Control with flexible elements</a>
<ul> <ul>
<li><a href="#org7f0d75c">2.1. Flexible APA and Flexible Joint</a></li> <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="#org5ae25be">2.3. Decentralized Direct Velocity Feedback</a></li>
<li><a href="#org3d014d0">2.4. HAC</a></li> <li><a href="#org3d014d0">2.4. HAC</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org2b937bc">3. Flexible Joint Specifications</a> <li><a href="#org2b937bc">3. Flexible Joint Specifications</a>
<ul> <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="#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="#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="#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="#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="#orge0f8240">3.6. Comparison of perfect joint and worst specified joint</a></li>
<li><a href="#org55fe34f">3.7. Conclusion</a></li> <li><a href="#org79b6e2d">3.7. Conclusion</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org8798d60">4. Flexible Joint Specifications with the APA300ML</a> <li><a href="#org8798d60">4. Flexible Joint Specifications with the APA300ML</a>
<ul> <ul>
<li><a href="#org6fc554b">4.1. Stewart Platform Initialization</a></li> <li><a href="#org6d56b33">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="#orgdc3d576">4.2. Comparison of perfect joint and worst specified joint</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgbae1ad3">5. Relative Motion Sensors</a> <li><a href="#orgbae1ad3">5. Relative Motion Sensors</a>
<ul> <ul>
<li><a href="#org775a387">5.1. Stewart Platform Initialization</a></li> <li><a href="#org74f7ec9">5.1. Stewart Platform Initialization</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgb454975">6. Struts with Encoders</a> <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> <h2 id="orgc309c7b"><span class="section-number-2">1</span> Simscape Model</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
</div> </div>
<div id="outline-container-orgae23ac5" class="outline-3"> <div id="outline-container-org0e00e94" class="outline-3">
<h3 id="orgae23ac5"><span class="section-number-3">1.1</span> Flexible APA</h3> <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="outline-text-3" id="text-1-1">
<div class="org-src-container"> <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>); <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> </div>
<div id="outline-container-orga8d83ce" class="outline-3"> <div id="outline-container-orgc239ed1" class="outline-3">
<h3 id="orga8d83ce"><span class="section-number-3">1.3</span> Identification</h3> <h3 id="orgc239ed1"><span class="section-number-3">1.3</span> Identification</h3>
<div class="outline-text-3" id="text-1-3"> <div class="outline-text-3" id="text-1-3">
<p> <p>
And we identify the dynamics from force actuators to force sensors. 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> </div>
<div id="outline-container-org0e00e94" class="outline-3"> <div id="outline-container-org4cccff6" class="outline-3">
<h3 id="org0e00e94"><span class="section-number-3">1.6</span> Flexible APA</h3> <h3 id="org4cccff6"><span class="section-number-3">1.6</span> Flexible APA</h3>
<div class="outline-text-3" id="text-1-6"> <div class="outline-text-3" id="text-1-6">
<div id="org6abb282" class="figure"> <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> </div>
<div id="outline-container-org52c4099" class="outline-3"> <div id="outline-container-org55fe34f" class="outline-3">
<h3 id="org52c4099"><span class="section-number-3">1.12</span> Conclusion</h3> <h3 id="org55fe34f"><span class="section-number-3">1.12</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-12"> <div class="outline-text-3" id="text-1-12">
<div class="important" id="org7acf160"> <div class="important" id="orgba069e0">
<p> <p>
The results seems to indicate that the model is well represented with only few degrees of freedom. 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. 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> </div>
<div id="outline-container-orgc239ed1" class="outline-3"> <div id="outline-container-org5f84aea" class="outline-3">
<h3 id="orgc239ed1"><span class="section-number-3">2.2</span> Identification</h3> <h3 id="org5f84aea"><span class="section-number-3">2.2</span> Identification</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<p> <p>
And we identify the dynamics from force actuators to force sensors. 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> <h2 id="org2b937bc"><span class="section-number-2">3</span> Flexible Joint Specifications</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
</div> </div>
<div id="outline-container-org166293c" class="outline-3"> <div id="outline-container-org775a387" class="outline-3">
<h3 id="org166293c"><span class="section-number-3">3.1</span> Stewart Platform Initialization</h3> <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="outline-text-3" id="text-3-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform(); <pre class="src src-matlab">stewart = initializeStewartPlatform();
@ -798,11 +798,11 @@ Controller Design
</div> </div>
</div> </div>
<div id="outline-container-orgd67ef9e" class="outline-3"> <div id="outline-container-orge0f8240" class="outline-3">
<h3 id="orgd67ef9e"><span class="section-number-3">3.6</span> Comparison of perfect joint and worst specified joint</h3> <h3 id="orge0f8240"><span class="section-number-3">3.6</span> Comparison of perfect joint and worst specified joint</h3>
</div> </div>
<div id="outline-container-org55fe34f" class="outline-3"> <div id="outline-container-org79b6e2d" class="outline-3">
<h3 id="org55fe34f"><span class="section-number-3">3.7</span> Conclusion</h3> <h3 id="org79b6e2d"><span class="section-number-3">3.7</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-7"> <div class="outline-text-3" id="text-3-7">
<p> <p>
Qualitatively: Qualitatively:
@ -891,8 +891,8 @@ Quantitatively:
<h2 id="org8798d60"><span class="section-number-2">4</span> Flexible Joint Specifications with the APA300ML</h2> <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 class="outline-text-2" id="text-4">
</div> </div>
<div id="outline-container-org6fc554b" class="outline-3"> <div id="outline-container-org6d56b33" class="outline-3">
<h3 id="org6fc554b"><span class="section-number-3">4.1</span> Stewart Platform Initialization</h3> <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="outline-text-3" id="text-4-1">
<div class="org-src-container"> <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>); <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> </div>
<div id="outline-container-orge0f8240" class="outline-3"> <div id="outline-container-orgdc3d576" class="outline-3">
<h3 id="orge0f8240"><span class="section-number-3">4.2</span> Comparison of perfect joint and worst specified joint</h3> <h3 id="orgdc3d576"><span class="section-number-3">4.2</span> Comparison of perfect joint and worst specified joint</h3>
</div> </div>
</div> </div>
<div id="outline-container-orgbae1ad3" class="outline-2"> <div id="outline-container-orgbae1ad3" class="outline-2">
<h2 id="orgbae1ad3"><span class="section-number-2">5</span> Relative Motion Sensors</h2> <h2 id="orgbae1ad3"><span class="section-number-2">5</span> Relative Motion Sensors</h2>
<div class="outline-text-2" id="text-5"> <div class="outline-text-2" id="text-5">
</div> </div>
<div id="outline-container-org775a387" class="outline-3"> <div id="outline-container-org74f7ec9" class="outline-3">
<h3 id="org775a387"><span class="section-number-3">5.1</span> Stewart Platform Initialization</h3> <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="outline-text-3" id="text-5-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform(); <pre class="src src-matlab">stewart = initializeStewartPlatform();
@ -1216,7 +1216,7 @@ Quantitatively:
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:29</p> <p class="date">Created: 2021-01-08 ven. 15:52</p>
</div> </div>
</body> </body>
</html> </html>

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2021-01-08 ven. 15:29 --> <!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Identification of the Stewart Platform using Simscape</title> <title>Identification of the Stewart Platform using Simscape</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
@ -50,13 +50,13 @@
</li> </li>
<li><a href="#orgfeed9a3">2. Transmissibility Analysis</a> <li><a href="#orgfeed9a3">2. Transmissibility Analysis</a>
<ul> <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> <li><a href="#org279dcc8">2.2. Transmissibility</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org3ad92e9">3. Compliance Analysis</a> <li><a href="#org3ad92e9">3. Compliance Analysis</a>
<ul> <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> <li><a href="#org26cb46a">3.2. Compliance</a></li>
</ul> </ul>
</li> </li>
@ -64,18 +64,18 @@
<ul> <ul>
<li><a href="#org25ca725">4.1. Compute the Transmissibility</a> <li><a href="#org25ca725">4.1. Compute the Transmissibility</a>
<ul> <ul>
<li><a href="#orgeae7abf">Function description</a></li> <li><a href="#orgafb57d0">Function description</a></li>
<li><a href="#orge4c0895">Optional Parameters</a></li> <li><a href="#orga00af61">Optional Parameters</a></li>
<li><a href="#org17a8811">Identification of the Transmissibility Matrix</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> </ul>
</li> </li>
<li><a href="#orgb6e05b3">4.2. Compute the Compliance</a> <li><a href="#orgb6e05b3">4.2. Compute the Compliance</a>
<ul> <ul>
<li><a href="#orgafb57d0">Function description</a></li> <li><a href="#org210c0ca">Function description</a></li>
<li><a href="#orga00af61">Optional Parameters</a></li> <li><a href="#org24feeb1">Optional Parameters</a></li>
<li><a href="#org2c35042">Identification of the Compliance Matrix</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> </ul>
</li> </li>
</ul> </ul>
@ -402,8 +402,8 @@ Save the movie of the mode shape.
<a id="org5213401"></a> <a id="org5213401"></a>
</p> </p>
</div> </div>
<div id="outline-container-org7c6996a" class="outline-3"> <div id="outline-container-org5ba3096" class="outline-3">
<h3 id="org7c6996a"><span class="section-number-3">2.1</span> Initialize the Stewart platform</h3> <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="outline-text-3" id="text-2-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform(); <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> <a id="org39baa25"></a>
</p> </p>
</div> </div>
<div id="outline-container-org5ba3096" class="outline-3"> <div id="outline-container-orgc957431" class="outline-3">
<h3 id="org5ba3096"><span class="section-number-3">3.1</span> Initialize the Stewart platform</h3> <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="outline-text-3" id="text-3-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform(); <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> </p>
</div> </div>
<div id="outline-container-orgeae7abf" class="outline-4"> <div id="outline-container-orgafb57d0" class="outline-4">
<h4 id="orgeae7abf">Function description</h4> <h4 id="orgafb57d0">Function description</h4>
<div class="outline-text-4" id="text-orgeae7abf"> <div class="outline-text-4" id="text-orgafb57d0">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[T, T_norm, freqs]</span> = <span class="org-function-name">computeTransmissibility</span>(<span class="org-variable-name">args</span>) <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> <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> </div>
<div id="outline-container-orge4c0895" class="outline-4"> <div id="outline-container-orga00af61" class="outline-4">
<h4 id="orge4c0895">Optional Parameters</h4> <h4 id="orga00af61">Optional Parameters</h4>
<div class="outline-text-4" id="text-orge4c0895"> <div class="outline-text-4" id="text-orga00af61">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span> <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> <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> </div>
<div id="outline-container-orgfd96322" class="outline-4"> <div id="outline-container-orgbc9a383" class="outline-4">
<h4 id="orgfd96322">Computation of the Frobenius norm</h4> <h4 id="orgbc9a383">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-orgfd96322"> <div class="outline-text-4" id="text-orgbc9a383">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">T_norm = zeros(length(freqs), 1); <pre class="src src-matlab">T_norm = zeros(length(freqs), 1);
@ -778,9 +778,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</p> </p>
</div> </div>
<div id="outline-container-orgafb57d0" class="outline-4"> <div id="outline-container-org210c0ca" class="outline-4">
<h4 id="orgafb57d0">Function description</h4> <h4 id="org210c0ca">Function description</h4>
<div class="outline-text-4" id="text-orgafb57d0"> <div class="outline-text-4" id="text-org210c0ca">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[C, C_norm, freqs]</span> = <span class="org-function-name">computeCompliance</span>(<span class="org-variable-name">args</span>) <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> <span class="org-comment">% computeCompliance -</span>
@ -801,9 +801,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div> </div>
</div> </div>
<div id="outline-container-orga00af61" class="outline-4"> <div id="outline-container-org24feeb1" class="outline-4">
<h4 id="orga00af61">Optional Parameters</h4> <h4 id="org24feeb1">Optional Parameters</h4>
<div class="outline-text-4" id="text-orga00af61"> <div class="outline-text-4" id="text-org24feeb1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span> <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> <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> </div>
<div id="outline-container-orgbc9a383" class="outline-4"> <div id="outline-container-orgb002200" class="outline-4">
<h4 id="orgbc9a383">Computation of the Frobenius norm</h4> <h4 id="orgb002200">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-orgbc9a383"> <div class="outline-text-4" id="text-orgb002200">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">freqs = args.freqs; <pre class="src src-matlab">freqs = args.freqs;
@ -915,7 +915,7 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:29</p> <p class="date">Created: 2021-01-08 ven. 15:52</p>
</div> </div>
</body> </body>
</html> </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"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2021-01-08 ven. 15:17 --> <!-- 2021-01-08 ven. 15:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Kinematic Study of the Stewart Platform</title> <title>Kinematic Study of the Stewart Platform</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
@ -60,14 +60,14 @@
</li> </li>
<li><a href="#orgbb09f83">4. Estimation of the range validity of the approximate inverse kinematics</a> <li><a href="#orgbb09f83">4. Estimation of the range validity of the approximate inverse kinematics</a>
<ul> <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="#org34777fa">4.2. Comparison for &ldquo;pure&rdquo; translations</a></li>
<li><a href="#org76d9fc1">4.3. Conclusion</a></li> <li><a href="#org76d9fc1">4.3. Conclusion</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org091e857">5. Estimated required actuator stroke from specified platform mobility</a> <li><a href="#org091e857">5. Estimated required actuator stroke from specified platform mobility</a>
<ul> <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="#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="#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> <li><a href="#org1674055">5.4. Needed stroke for &ldquo;combined&rdquo; rotations or translations</a></li>
@ -75,7 +75,7 @@
</li> </li>
<li><a href="#orgb685a81">6. Estimated platform mobility from specified actuator stroke</a> <li><a href="#orgb685a81">6. Estimated platform mobility from specified actuator stroke</a>
<ul> <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> <li><a href="#orga6e12fe">6.2. Pure translations</a></li>
</ul> </ul>
</li> </li>
@ -96,8 +96,8 @@
<ul> <ul>
<li><a href="#org7a0813a">8.1. <code>computeJacobian</code>: Compute the Jacobian Matrix</a> <li><a href="#org7a0813a">8.1. <code>computeJacobian</code>: Compute the Jacobian Matrix</a>
<ul> <ul>
<li><a href="#org7f0fcca">Function description</a></li> <li><a href="#org8a3d2ba">Function description</a></li>
<li><a href="#orgf06bd47">Check the <code>stewart</code> structure elements</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="#org01f1158">Compute Jacobian Matrix</a></li>
<li><a href="#org91d652d">Compute Stiffness Matrix</a></li> <li><a href="#org91d652d">Compute Stiffness Matrix</a></li>
<li><a href="#org323b34e">Compute Compliance 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> <li><a href="#org710c2c8">8.2. <code>inverseKinematics</code>: Compute Inverse Kinematics</a>
<ul> <ul>
<li><a href="#orge7e6266">Theory</a></li> <li><a href="#orge7e6266">Theory</a></li>
<li><a href="#org39a0af1">Function description</a></li> <li><a href="#org6586e8a">Function description</a></li>
<li><a href="#orgcb9b73a">Optional Parameters</a></li> <li><a href="#orgf078a15">Optional Parameters</a></li>
<li><a href="#org31e89c1">Check the <code>stewart</code> structure elements</a></li> <li><a href="#org4151034">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org7189e65">Compute</a></li> <li><a href="#org7189e65">Compute</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgdc218cd">8.3. <code>forwardKinematicsApprox</code>: Compute the Approximate Forward Kinematics</a> <li><a href="#orgdc218cd">8.3. <code>forwardKinematicsApprox</code>: Compute the Approximate Forward Kinematics</a>
<ul> <ul>
<li><a href="#org8a3d2ba">Function description</a></li> <li><a href="#org9b19ae7">Function description</a></li>
<li><a href="#orgf078a15">Optional Parameters</a></li> <li><a href="#orgdf60206">Optional Parameters</a></li>
<li><a href="#org5f6ad77">Check the <code>stewart</code> structure elements</a></li> <li><a href="#org2c19f08">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orga496714">Computation</a></li> <li><a href="#orga496714">Computation</a></li>
</ul> </ul>
</li> </li>
@ -442,7 +442,7 @@ The function <code>forwardKinematicsApprox</code> (described <a href="#orgb960ae
<a id="org5f8c5ea"></a> <a id="org5f8c5ea"></a>
</p> </p>
<div class="note" id="org919aba4"> <div class="note" id="org9501cc6">
<p> <p>
The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_approximation_validity.m">here</a>. The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_approximation_validity.m">here</a>.
</p> </p>
@ -464,8 +464,8 @@ This will also gives us the range for which the approximate forward kinematic is
</p> </p>
</div> </div>
<div id="outline-container-org78ce060" class="outline-3"> <div id="outline-container-orga79cde2" class="outline-3">
<h3 id="org78ce060"><span class="section-number-3">4.1</span> Stewart architecture definition</h3> <h3 id="orga79cde2"><span class="section-number-3">4.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
<p> <p>
We first define some general Stewart architecture. 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"> <div id="outline-container-org76d9fc1" class="outline-3">
<h3 id="org76d9fc1"><span class="section-number-3">4.3</span> Conclusion</h3> <h3 id="org76d9fc1"><span class="section-number-3">4.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-3"> <div class="outline-text-3" id="text-4-3">
<div class="important" id="org3d5a817"> <div class="important" id="orgfe0578a">
<p> <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. 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> </p>
@ -548,7 +548,7 @@ For small wanted displacements (up to \(\approx 1\%\) of the size of the Hexapod
<a id="orgb1464b6"></a> <a id="orgb1464b6"></a>
</p> </p>
<div class="note" id="org7858fd4"> <div class="note" id="org4fab0bc">
<p> <p>
The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_required_actuator_stroke.m">here</a>. The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_required_actuator_stroke.m">here</a>.
</p> </p>
@ -565,8 +565,8 @@ This is what is analyzed in this section.
</p> </p>
</div> </div>
<div id="outline-container-org34f6e0e" class="outline-3"> <div id="outline-container-org7b16d1f" class="outline-3">
<h3 id="org34f6e0e"><span class="section-number-3">5.1</span> Stewart architecture definition</h3> <h3 id="org7b16d1f"><span class="section-number-3">5.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-5-1"> <div class="outline-text-3" id="text-5-1">
<p> <p>
Let&rsquo;s first define the Stewart platform architecture that we want to study. 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> <a id="orge61164c"></a>
</p> </p>
<div class="note" id="orge5bfdd7"> <div class="note" id="orgc9ecb6b">
<p> <p>
The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_mobility.m">here</a>. The Matlab script corresponding to this section is accessible <a href="../matlab/kinematic_study_mobility.m">here</a>.
</p> </p>
@ -985,8 +985,8 @@ However, for small displacements, we can use the Jacobian as an approximate solu
</p> </p>
</div> </div>
<div id="outline-container-orga79cde2" class="outline-3"> <div id="outline-container-org555f3a5" class="outline-3">
<h3 id="orga79cde2"><span class="section-number-3">6.1</span> Stewart architecture definition</h3> <h3 id="org555f3a5"><span class="section-number-3">6.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-6-1"> <div class="outline-text-3" id="text-6-1">
<p> <p>
Let&rsquo;s first define the Stewart platform architecture that we want to study. 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> </p>
</div> </div>
<div id="outline-container-org7f0fcca" class="outline-4"> <div id="outline-container-org8a3d2ba" class="outline-4">
<h4 id="org7f0fcca">Function description</h4> <h4 id="org8a3d2ba">Function description</h4>
<div class="outline-text-4" id="text-org7f0fcca"> <div class="outline-text-4" id="text-org8a3d2ba">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">computeJacobian</span>(<span class="org-variable-name">stewart</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">computeJacobian</span>(<span class="org-variable-name">stewart</span>)
<span class="org-comment">% computeJacobian -</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> </div>
<div id="outline-container-orgf06bd47" class="outline-4"> <div id="outline-container-org5f6ad77" class="outline-4">
<h4 id="orgf06bd47">Check the <code>stewart</code> structure elements</h4> <h4 id="org5f6ad77">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orgf06bd47"> <div class="outline-text-4" id="text-org5f6ad77">
<div class="org-src-container"> <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>) <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; As = stewart.geometry.As;
@ -1525,9 +1525,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div> </div>
</div> </div>
<div id="outline-container-org39a0af1" class="outline-4"> <div id="outline-container-org6586e8a" class="outline-4">
<h4 id="org39a0af1">Function description</h4> <h4 id="org6586e8a">Function description</h4>
<div class="outline-text-4" id="text-org39a0af1"> <div class="outline-text-4" id="text-org6586e8a">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[Li, dLi]</span> = <span class="org-function-name">inverseKinematics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[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> <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> </div>
<div id="outline-container-orgcb9b73a" class="outline-4"> <div id="outline-container-orgf078a15" class="outline-4">
<h4 id="orgcb9b73a">Optional Parameters</h4> <h4 id="orgf078a15">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgcb9b73a"> <div class="outline-text-4" id="text-orgf078a15">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span> <pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</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> </div>
<div id="outline-container-org31e89c1" class="outline-4"> <div id="outline-container-org4151034" class="outline-4">
<h4 id="org31e89c1">Check the <code>stewart</code> structure elements</h4> <h4 id="org4151034">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org31e89c1"> <div class="outline-text-4" id="text-org4151034">
<div class="org-src-container"> <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>) <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; Aa = stewart.geometry.Aa;
@ -1611,9 +1611,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</p> </p>
</div> </div>
<div id="outline-container-org8a3d2ba" class="outline-4"> <div id="outline-container-org9b19ae7" class="outline-4">
<h4 id="org8a3d2ba">Function description</h4> <h4 id="org9b19ae7">Function description</h4>
<div class="outline-text-4" id="text-org8a3d2ba"> <div class="outline-text-4" id="text-org9b19ae7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[P, R]</span> = <span class="org-function-name">forwardKinematicsApprox</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>) <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[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> <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> </div>
<div id="outline-container-orgf078a15" class="outline-4"> <div id="outline-container-orgdf60206" class="outline-4">
<h4 id="orgf078a15">Optional Parameters</h4> <h4 id="orgdf60206">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgf078a15"> <div class="outline-text-4" id="text-orgdf60206">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">arguments</span> <pre class="src src-matlab"><span class="org-keyword">arguments</span>
<span class="org-variable-name">stewart</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> </div>
<div id="outline-container-org5f6ad77" class="outline-4"> <div id="outline-container-org2c19f08" class="outline-4">
<h4 id="org5f6ad77">Check the <code>stewart</code> structure elements</h4> <h4 id="org2c19f08">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org5f6ad77"> <div class="outline-text-4" id="text-org2c19f08">
<div class="org-src-container"> <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>) <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; J = stewart.kinematics.J;
@ -1715,7 +1715,7 @@ We then compute the corresponding rotation matrix.
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p> <p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2021-01-08 ven. 15:17</p> <p class="date">Created: 2021-01-08 ven. 15:52</p>
</div> </div>
</body> </body>
</html> </html>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -23,17 +23,14 @@ stewart = computeJacobian(stewart);
stewart = initializeStewartPose(stewart); stewart = initializeStewartPose(stewart);
stewart = initializeInertialSensor(stewart, 'type', 'none'); stewart = initializeInertialSensor(stewart, 'type', 'none');
ground = initializeGround('type', 'none'); ground = initializeGround('type', 'rigid', 'rot_point', stewart.platform_F.FO_A);
payload = initializePayload('type', 'none'); payload = initializePayload('type', 'none');
controller = initializeController('type', 'open-loop');
% And we identify the dynamics from force actuators to force sensors. % And we identify the dynamics from force actuators to force sensors.
%% Options for Linearized
options = linearizeOptions;
options.SampleTime = 0;
%% Name of the Simulink File %% Name of the Simulink File
mdl = 'stewart_platform_model'; 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] io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'Taum'); io_i = io_i + 1; % Force Sensor Outputs [N]
%% Run the linearization %% Run the linearization
G = linearize(mdl, io, options); G = linearize(mdl, io);
G.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'}; G.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'};
G.OutputName = {'Fm1', 'Fm2', 'Fm3', 'Fm4', 'Fm5', 'Fm6'}; 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. % 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'); 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.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'};
Gf.OutputName = {'Fm1', 'Fm2', 'Fm3', 'Fm4', 'Fm5', 'Fm6'}; 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 % We now use the amplified actuators and re-identify the dynamics
stewart = initializeAmplifiedStrutDynamics(stewart); stewart = initializeAmplifiedStrutDynamics(stewart);
Ga = linearize(mdl, io, options); Ga = linearize(mdl, io);
Ga.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'}; Ga.InputName = {'F1', 'F2', 'F3', 'F4', 'F5', 'F6'};
Ga.OutputName = {'Fm1', 'Fm2', 'Fm3', 'Fm4', 'Fm5', 'Fm6'}; Ga.OutputName = {'Fm1', 'Fm2', 'Fm3', 'Fm4', 'Fm5', 'Fm6'};

View File

@ -22,8 +22,9 @@ stewart = computeJacobian(stewart);
stewart = initializeStewartPose(stewart); stewart = initializeStewartPose(stewart);
stewart = initializeInertialSensor(stewart, 'type', 'accelerometer', 'freq', 5e3); 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'); payload = initializePayload('type', 'none');
controller = initializeController('type', 'open-loop');
%% Options for Linearized %% Options for Linearized
options = linearizeOptions; options = linearizeOptions;