Update html pages

This commit is contained in:
Thomas Dehaeze 2020-03-03 15:53:02 +01:00
parent 467a04e239
commit 304ecf031b
14 changed files with 578 additions and 608 deletions

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-28 ven. 17:33 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Decentralized Active Damping</title>
@ -249,25 +249,25 @@
<li><a href="#orgd59c804">1. Inertial Control</a>
<ul>
<li><a href="#org5f749c8">1.1. Identification of the Dynamics</a></li>
<li><a href="#org3014959">1.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#orga144352">1.3. Obtained Damping</a></li>
<li><a href="#org004b094">1.4. Conclusion</a></li>
<li><a href="#orgd0f78f7">1.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org3f64d96">1.3. Obtained Damping</a></li>
<li><a href="#org8e1ece7">1.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#org74c7eb4">2. Integral Force Feedback</a>
<ul>
<li><a href="#org7313778">2.1. Identification of the Dynamics with perfect Joints</a></li>
<li><a href="#org462c581">2.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org943bf7b">2.3. Obtained Damping</a></li>
<li><a href="#orga677c7d">2.4. Conclusion</a></li>
<li><a href="#orgcd99b62">2.1. Identification of the Dynamics with perfect Joints</a></li>
<li><a href="#org1b7a953">2.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org1d362f0">2.3. Obtained Damping</a></li>
<li><a href="#org63f9110">2.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#org08917d6">3. Direct Velocity Feedback</a>
<ul>
<li><a href="#orgcd99b62">3.1. Identification of the Dynamics with perfect Joints</a></li>
<li><a href="#orgd0f78f7">3.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#org3f64d96">3.3. Obtained Damping</a></li>
<li><a href="#org8e1ece7">3.4. Conclusion</a></li>
<li><a href="#org5364f58">3.1. Identification of the Dynamics with perfect Joints</a></li>
<li><a href="#org81b6713">3.2. Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</a></li>
<li><a href="#orge328103">3.3. Obtained Damping</a></li>
<li><a href="#org48c963f">3.4. Conclusion</a></li>
</ul>
</li>
<li><a href="#org183f3f2">4. Compliance and Transmissibility Comparison</a>
@ -366,8 +366,8 @@ The transfer function from actuator forces to force sensors is shown in Figure <
</div>
</div>
<div id="outline-container-org3014959" class="outline-3">
<h3 id="org3014959"><span class="section-number-3">1.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div id="outline-container-orgd0f78f7" class="outline-3">
<h3 id="orgd0f78f7"><span class="section-number-3">1.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div class="outline-text-3" id="text-1-2">
<p>
We add some stiffness and damping in the flexible joints and we re-identify the dynamics.
@ -403,8 +403,8 @@ The new dynamics from force actuator to force sensor is shown in Figure <a href=
</div>
</div>
<div id="outline-container-orga144352" class="outline-3">
<h3 id="orga144352"><span class="section-number-3">1.3</span> Obtained Damping</h3>
<div id="outline-container-org3f64d96" class="outline-3">
<h3 id="org3f64d96"><span class="section-number-3">1.3</span> Obtained Damping</h3>
<div class="outline-text-3" id="text-1-3">
<p>
The control is a performed in a decentralized manner.
@ -429,8 +429,8 @@ The root locus is shown in figure <a href="#org9af9e33">3</a>.
</div>
</div>
<div id="outline-container-org004b094" class="outline-3">
<h3 id="org004b094"><span class="section-number-3">1.4</span> Conclusion</h3>
<div id="outline-container-org8e1ece7" class="outline-3">
<h3 id="org8e1ece7"><span class="section-number-3">1.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-4">
<div class="important">
<p>
@ -461,8 +461,8 @@ To run the script, open the Simulink Project, and type <code>run active_damping_
</div>
</div>
<div id="outline-container-org7313778" class="outline-3">
<h3 id="org7313778"><span class="section-number-3">2.1</span> Identification of the Dynamics with perfect Joints</h3>
<div id="outline-container-orgcd99b62" class="outline-3">
<h3 id="orgcd99b62"><span class="section-number-3">2.1</span> Identification of the Dynamics with perfect Joints</h3>
<div class="outline-text-3" id="text-2-1">
<p>
We first initialize the Stewart platform without joint stiffness.
@ -520,8 +520,8 @@ The transfer function from actuator forces to force sensors is shown in Figure <
</div>
</div>
<div id="outline-container-org462c581" class="outline-3">
<h3 id="org462c581"><span class="section-number-3">2.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div id="outline-container-org1b7a953" class="outline-3">
<h3 id="org1b7a953"><span class="section-number-3">2.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div class="outline-text-3" id="text-2-2">
<p>
We add some stiffness and damping in the flexible joints and we re-identify the dynamics.
@ -557,8 +557,8 @@ The new dynamics from force actuator to force sensor is shown in Figure <a href=
</div>
</div>
<div id="outline-container-org943bf7b" class="outline-3">
<h3 id="org943bf7b"><span class="section-number-3">2.3</span> Obtained Damping</h3>
<div id="outline-container-org1d362f0" class="outline-3">
<h3 id="org1d362f0"><span class="section-number-3">2.3</span> Obtained Damping</h3>
<div class="outline-text-3" id="text-2-3">
<p>
The control is a performed in a decentralized manner.
@ -590,8 +590,8 @@ The root locus is shown in figure <a href="#orge21bbea">6</a> and the obtained p
</div>
</div>
<div id="outline-container-orga677c7d" class="outline-3">
<h3 id="orga677c7d"><span class="section-number-3">2.4</span> Conclusion</h3>
<div id="outline-container-org63f9110" class="outline-3">
<h3 id="org63f9110"><span class="section-number-3">2.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-4">
<div class="important">
<p>
@ -623,8 +623,8 @@ To run the script, open the Simulink Project, and type <code>run active_damping_
</div>
</div>
<div id="outline-container-orgcd99b62" class="outline-3">
<h3 id="orgcd99b62"><span class="section-number-3">3.1</span> Identification of the Dynamics with perfect Joints</h3>
<div id="outline-container-org5364f58" class="outline-3">
<h3 id="org5364f58"><span class="section-number-3">3.1</span> Identification of the Dynamics with perfect Joints</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We first initialize the Stewart platform without joint stiffness.
@ -687,8 +687,8 @@ The transfer function from actuator forces to relative motion sensors is shown i
</div>
<div id="outline-container-orgd0f78f7" class="outline-3">
<h3 id="orgd0f78f7"><span class="section-number-3">3.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div id="outline-container-org81b6713" class="outline-3">
<h3 id="org81b6713"><span class="section-number-3">3.2</span> Effect of the Flexible Joint stiffness and Actuator amplification on the Dynamics</h3>
<div class="outline-text-3" id="text-3-2">
<p>
We add some stiffness and damping in the flexible joints and we re-identify the dynamics.
@ -724,8 +724,8 @@ The new dynamics from force actuator to relative motion sensor is shown in Figur
</div>
</div>
<div id="outline-container-org3f64d96" class="outline-3">
<h3 id="org3f64d96"><span class="section-number-3">3.3</span> Obtained Damping</h3>
<div id="outline-container-orge328103" class="outline-3">
<h3 id="orge328103"><span class="section-number-3">3.3</span> Obtained Damping</h3>
<div class="outline-text-3" id="text-3-3">
<p>
The control is a performed in a decentralized manner.
@ -750,8 +750,8 @@ The root locus is shown in figure <a href="#org277d60d">10</a>.
</div>
</div>
<div id="outline-container-org8e1ece7" class="outline-3">
<h3 id="org8e1ece7"><span class="section-number-3">3.4</span> Conclusion</h3>
<div id="outline-container-org48c963f" class="outline-3">
<h3 id="org48c963f"><span class="section-number-3">3.4</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-4">
<div class="important">
<p>
@ -867,7 +867,7 @@ K_dvf = 1e4<span class="org-type">*</span>s<span class="org-type">/</span>(1<spa
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-28 ven. 17:33</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-28 ven. 17:34 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Vibration Isolation</title>
@ -249,28 +249,28 @@
<li><a href="#org272e7f8">1. HAC-LAC (Cascade) Control - Integral Control</a>
<ul>
<li><a href="#orga5c9b98">1.1. Introduction</a></li>
<li><a href="#org9ad2582">1.2. Initialization</a></li>
<li><a href="#org03823a6">1.3. Identification</a>
<li><a href="#org5907395">1.2. Initialization</a></li>
<li><a href="#org080a6bd">1.3. Identification</a>
<ul>
<li><a href="#org4d582a9">1.3.1. HAC - Without LAC</a></li>
<li><a href="#orge0108ff">1.3.2. HAC - IFF</a></li>
<li><a href="#org1afe87f">1.3.3. HAC - DVF</a></li>
<li><a href="#org183dcef">1.3.1. HAC - Without LAC</a></li>
<li><a href="#orgc3e7950">1.3.2. HAC - IFF</a></li>
<li><a href="#orgd4db8b6">1.3.3. HAC - DVF</a></li>
</ul>
</li>
<li><a href="#org61a6098">1.4. Control Architecture</a></li>
<li><a href="#orgdca8b1b">1.5. 6x6 Plant Comparison</a></li>
<li><a href="#orgc2459c7">1.6. HAC - DVF</a>
<li><a href="#org7c72eb7">1.6. HAC - DVF</a>
<ul>
<li><a href="#org54f5bbf">1.6.1. Plant</a></li>
<li><a href="#orga9fb0f5">1.6.2. Controller Design</a></li>
<li><a href="#orgf520b4e">1.6.3. Obtained Performance</a></li>
<li><a href="#org673a1cd">1.6.1. Plant</a></li>
<li><a href="#org652bff1">1.6.2. Controller Design</a></li>
<li><a href="#orge39d6bb">1.6.3. Obtained Performance</a></li>
</ul>
</li>
<li><a href="#org8c50a0f">1.7. HAC - IFF</a>
<li><a href="#org09a49c0">1.7. HAC - IFF</a>
<ul>
<li><a href="#orgd015268">1.7.1. Plant</a></li>
<li><a href="#orgb1bd3ac">1.7.2. Controller Design</a></li>
<li><a href="#orgdcdc645">1.7.3. Obtained Performance</a></li>
<li><a href="#org5d68208">1.7.1. Plant</a></li>
<li><a href="#orge650cdd">1.7.2. Controller Design</a></li>
<li><a href="#orge5a568c">1.7.3. Obtained Performance</a></li>
</ul>
</li>
<li><a href="#org9224c01">1.8. Comparison</a></li>
@ -278,11 +278,11 @@
</li>
<li><a href="#orgde62390">2. MIMO Analysis</a>
<ul>
<li><a href="#org550055f">2.1. Initialization</a></li>
<li><a href="#org23449b8">2.2. Identification</a>
<li><a href="#org56a7ed4">2.1. Initialization</a></li>
<li><a href="#org7b6441f">2.2. Identification</a>
<ul>
<li><a href="#orgd47a3c0">2.2.1. HAC - Without LAC</a></li>
<li><a href="#org1c3609b">2.2.2. HAC - DVF</a></li>
<li><a href="#org33f5d7c">2.2.1. HAC - Without LAC</a></li>
<li><a href="#org9420024">2.2.2. HAC - DVF</a></li>
<li><a href="#orgf7913d5">2.2.3. Cartesian Frame</a></li>
</ul>
</li>
@ -291,8 +291,8 @@
</li>
<li><a href="#orgebf6121">3. Diagonal Control based on the damped plant</a>
<ul>
<li><a href="#org7d2e4bb">3.1. Initialization</a></li>
<li><a href="#orgb047e7e">3.2. Identification</a></li>
<li><a href="#orgc3f9713">3.1. Initialization</a></li>
<li><a href="#org7e03b59">3.2. Identification</a></li>
<li><a href="#orgab6bc6f">3.3. Steady State Decoupling</a>
<ul>
<li><a href="#orga589a4a">3.3.1. Pre-Compensator Design</a></li>
@ -355,8 +355,8 @@ First, the LAC loop is closed (the LAC control is described <a href="active-damp
</div>
</div>
<div id="outline-container-org9ad2582" class="outline-3">
<h3 id="org9ad2582"><span class="section-number-3">1.2</span> Initialization</h3>
<div id="outline-container-org5907395" class="outline-3">
<h3 id="org5907395"><span class="section-number-3">1.2</span> Initialization</h3>
<div class="outline-text-3" id="text-1-2">
<p>
We first initialize the Stewart platform.
@ -387,8 +387,8 @@ payload = initializePayload(<span class="org-string">'type'</span>, <span class=
</div>
</div>
<div id="outline-container-org03823a6" class="outline-3">
<h3 id="org03823a6"><span class="section-number-3">1.3</span> Identification</h3>
<div id="outline-container-org080a6bd" class="outline-3">
<h3 id="org080a6bd"><span class="section-number-3">1.3</span> Identification</h3>
<div class="outline-text-3" id="text-1-3">
<p>
We identify the transfer function from the actuator forces \(\bm{\tau}\) to the absolute displacement of the mobile platform \(\bm{\mathcal{X}}\) in three different cases:
@ -400,8 +400,8 @@ We identify the transfer function from the actuator forces \(\bm{\tau}\) to the
</ul>
</div>
<div id="outline-container-org4d582a9" class="outline-4">
<h4 id="org4d582a9"><span class="section-number-4">1.3.1</span> HAC - Without LAC</h4>
<div id="outline-container-org183dcef" class="outline-4">
<h4 id="org183dcef"><span class="section-number-4">1.3.1</span> HAC - Without LAC</h4>
<div class="outline-text-4" id="text-1-3-1">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'open-loop'</span>);
@ -426,8 +426,8 @@ G_ol.OutputName = {<span class="org-string">'Dx'</span>, <span class="org-string
</div>
</div>
<div id="outline-container-orge0108ff" class="outline-4">
<h4 id="orge0108ff"><span class="section-number-4">1.3.2</span> HAC - IFF</h4>
<div id="outline-container-orgc3e7950" class="outline-4">
<h4 id="orgc3e7950"><span class="section-number-4">1.3.2</span> HAC - IFF</h4>
<div class="outline-text-4" id="text-1-3-2">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'iff'</span>);
@ -453,8 +453,8 @@ G_iff.OutputName = {<span class="org-string">'Dx'</span>, <span class="org-strin
</div>
</div>
<div id="outline-container-org1afe87f" class="outline-4">
<h4 id="org1afe87f"><span class="section-number-4">1.3.3</span> HAC - DVF</h4>
<div id="outline-container-orgd4db8b6" class="outline-4">
<h4 id="orgd4db8b6"><span class="section-number-4">1.3.3</span> HAC - DVF</h4>
<div class="outline-text-4" id="text-1-3-3">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>);
@ -518,12 +518,12 @@ We then design a controller based on the transfer functions from \(\bm{\mathcal{
</div>
</div>
<div id="outline-container-orgc2459c7" class="outline-3">
<h3 id="orgc2459c7"><span class="section-number-3">1.6</span> HAC - DVF</h3>
<div id="outline-container-org7c72eb7" class="outline-3">
<h3 id="org7c72eb7"><span class="section-number-3">1.6</span> HAC - DVF</h3>
<div class="outline-text-3" id="text-1-6">
</div>
<div id="outline-container-org54f5bbf" class="outline-4">
<h4 id="org54f5bbf"><span class="section-number-4">1.6.1</span> Plant</h4>
<div id="outline-container-org673a1cd" class="outline-4">
<h4 id="org673a1cd"><span class="section-number-4">1.6.1</span> Plant</h4>
<div class="outline-text-4" id="text-1-6-1">
<div id="orgbe936ef" class="figure">
@ -534,8 +534,8 @@ We then design a controller based on the transfer functions from \(\bm{\mathcal{
</div>
</div>
<div id="outline-container-orga9fb0f5" class="outline-4">
<h4 id="orga9fb0f5"><span class="section-number-4">1.6.2</span> Controller Design</h4>
<div id="outline-container-org652bff1" class="outline-4">
<h4 id="org652bff1"><span class="section-number-4">1.6.2</span> Controller Design</h4>
<div class="outline-text-4" id="text-1-6-2">
<p>
We design a diagonal controller with equal bandwidth for the 6 terms.
@ -570,8 +570,8 @@ Finally, we pre-multiply the diagonal controller by \(\bm{J}^{-T}\) prior implem
</div>
</div>
<div id="outline-container-orgf520b4e" class="outline-4">
<h4 id="orgf520b4e"><span class="section-number-4">1.6.3</span> Obtained Performance</h4>
<div id="outline-container-orge39d6bb" class="outline-4">
<h4 id="orge39d6bb"><span class="section-number-4">1.6.3</span> Obtained Performance</h4>
<div class="outline-text-4" id="text-1-6-3">
<p>
We identify the transmissibility and compliance of the system.
@ -608,12 +608,12 @@ We identify the transmissibility and compliance of the system.
</div>
</div>
<div id="outline-container-org8c50a0f" class="outline-3">
<h3 id="org8c50a0f"><span class="section-number-3">1.7</span> HAC - IFF</h3>
<div id="outline-container-org09a49c0" class="outline-3">
<h3 id="org09a49c0"><span class="section-number-3">1.7</span> HAC - IFF</h3>
<div class="outline-text-3" id="text-1-7">
</div>
<div id="outline-container-orgd015268" class="outline-4">
<h4 id="orgd015268"><span class="section-number-4">1.7.1</span> Plant</h4>
<div id="outline-container-org5d68208" class="outline-4">
<h4 id="org5d68208"><span class="section-number-4">1.7.1</span> Plant</h4>
<div class="outline-text-4" id="text-1-7-1">
<div id="orgcb10b82" class="figure">
@ -624,8 +624,8 @@ We identify the transmissibility and compliance of the system.
</div>
</div>
<div id="outline-container-orgb1bd3ac" class="outline-4">
<h4 id="orgb1bd3ac"><span class="section-number-4">1.7.2</span> Controller Design</h4>
<div id="outline-container-orge650cdd" class="outline-4">
<h4 id="orge650cdd"><span class="section-number-4">1.7.2</span> Controller Design</h4>
<div class="outline-text-4" id="text-1-7-2">
<p>
We design a diagonal controller with equal bandwidth for the 6 terms.
@ -660,8 +660,8 @@ Finally, we pre-multiply the diagonal controller by \(\bm{J}^{-T}\) prior implem
</div>
</div>
<div id="outline-container-orgdcdc645" class="outline-4">
<h4 id="orgdcdc645"><span class="section-number-4">1.7.3</span> Obtained Performance</h4>
<div id="outline-container-orge5a568c" class="outline-4">
<h4 id="orge5a568c"><span class="section-number-4">1.7.3</span> Obtained Performance</h4>
<div class="outline-text-4" id="text-1-7-3">
<p>
We identify the transmissibility and compliance of the system.
@ -810,8 +810,8 @@ Let&rsquo;s define the system as shown in figure <a href="#orgba6519a">13</a>.
</table>
</div>
<div id="outline-container-org550055f" class="outline-3">
<h3 id="org550055f"><span class="section-number-3">2.1</span> Initialization</h3>
<div id="outline-container-org56a7ed4" class="outline-3">
<h3 id="org56a7ed4"><span class="section-number-3">2.1</span> Initialization</h3>
<div class="outline-text-3" id="text-2-1">
<p>
We first initialize the Stewart platform.
@ -842,12 +842,12 @@ payload = initializePayload(<span class="org-string">'type'</span>, <span class=
</div>
</div>
<div id="outline-container-org23449b8" class="outline-3">
<h3 id="org23449b8"><span class="section-number-3">2.2</span> Identification</h3>
<div id="outline-container-org7b6441f" class="outline-3">
<h3 id="org7b6441f"><span class="section-number-3">2.2</span> Identification</h3>
<div class="outline-text-3" id="text-2-2">
</div>
<div id="outline-container-orgd47a3c0" class="outline-4">
<h4 id="orgd47a3c0"><span class="section-number-4">2.2.1</span> HAC - Without LAC</h4>
<div id="outline-container-org33f5d7c" class="outline-4">
<h4 id="org33f5d7c"><span class="section-number-4">2.2.1</span> HAC - Without LAC</h4>
<div class="outline-text-4" id="text-2-2-1">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'open-loop'</span>);
@ -872,8 +872,8 @@ G_ol.OutputName = {<span class="org-string">'Dx'</span>, <span class="org-string
</div>
</div>
<div id="outline-container-org1c3609b" class="outline-4">
<h4 id="org1c3609b"><span class="section-number-4">2.2.2</span> HAC - DVF</h4>
<div id="outline-container-org9420024" class="outline-4">
<h4 id="org9420024"><span class="section-number-4">2.2.2</span> HAC - DVF</h4>
<div class="outline-text-4" id="text-2-2-2">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>);
@ -971,8 +971,8 @@ There are mainly three different cases:
</ol>
</div>
<div id="outline-container-org7d2e4bb" class="outline-3">
<h3 id="org7d2e4bb"><span class="section-number-3">3.1</span> Initialization</h3>
<div id="outline-container-orgc3f9713" class="outline-3">
<h3 id="orgc3f9713"><span class="section-number-3">3.1</span> Initialization</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We first initialize the Stewart platform.
@ -1003,8 +1003,8 @@ payload = initializePayload(<span class="org-string">'type'</span>, <span class=
</div>
</div>
<div id="outline-container-orgb047e7e" class="outline-3">
<h3 id="orgb047e7e"><span class="section-number-3">3.2</span> Identification</h3>
<div id="outline-container-org7e03b59" class="outline-3">
<h3 id="org7e03b59"><span class="section-number-3">3.2</span> Identification</h3>
<div class="outline-text-3" id="text-3-2">
<div class="org-src-container">
<pre class="src src-matlab">controller = initializeController(<span class="org-string">'type'</span>, <span class="org-string">'dvf'</span>);
@ -1239,7 +1239,7 @@ The results are shown in figure
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-28 ven. 17:34</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-28 ven. 17:37 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Tracking Control</title>
@ -364,7 +364,7 @@ Kl = Kl <span class="org-type">*</span> eye(6);
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-28 ven. 17:37</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-28 ven. 17:34 -->
<!-- 2020-03-03 mar. 15:51 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Cubic configuration for the Stewart Platform</title>
@ -252,33 +252,33 @@
<li><a href="#orga88e79a">1.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li>
<li><a href="#orge02ec88">1.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li>
<li><a href="#org43fd7e4">1.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li>
<li><a href="#org3e2b41c">1.5. Conclusion</a></li>
<li><a href="#org64395b6">1.5. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgd70418b">2. Configuration with the Cube&rsquo;s center above the mobile platform</a>
<ul>
<li><a href="#org8afa645">2.1. Having Cube&rsquo;s center above the top platform</a></li>
<li><a href="#orgeeac940">2.2. Conclusion</a></li>
<li><a href="#org8e09793">2.2. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgcc4ecce">3. Cubic size analysis</a>
<ul>
<li><a href="#org0029d8c">3.1. Analysis</a></li>
<li><a href="#org991d232">3.2. Conclusion</a></li>
<li><a href="#orgc5a2e1f">3.2. Conclusion</a></li>
</ul>
</li>
<li><a href="#orgf09da67">4. Dynamic Coupling in the Cartesian Frame</a>
<ul>
<li><a href="#org5fe01ec">4.1. Cube&rsquo;s center at the Center of Mass of the mobile platform</a></li>
<li><a href="#org4cb2a36">4.2. Cube&rsquo;s center not coincident with the Mass of the Mobile platform</a></li>
<li><a href="#orgf0acd1f">4.3. Conclusion</a></li>
<li><a href="#org24cd25e">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org8f26dc0">5. Dynamic Coupling between actuators and sensors of each strut</a>
<ul>
<li><a href="#org6e391c9">5.1. Coupling between the actuators and sensors - Cubic Architecture</a></li>
<li><a href="#orgafd808d">5.2. Coupling between the actuators and sensors - Non-Cubic Architecture</a></li>
<li><a href="#org78c4967">5.3. Conclusion</a></li>
<li><a href="#org3356db5">5.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org3044455">6. Functions</a>
@ -826,8 +826,8 @@ stewart = initializeCylindricalPlatforms(stewart, <span class="org-string">'Fpr'
</div>
</div>
<div id="outline-container-org3e2b41c" class="outline-3">
<h3 id="org3e2b41c"><span class="section-number-3">1.5</span> Conclusion</h3>
<div id="outline-container-org64395b6" class="outline-3">
<h3 id="org64395b6"><span class="section-number-3">1.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-5">
<div class="important">
<p>
@ -1164,8 +1164,8 @@ FOc = H <span class="org-type">+</span> MO_B; <span class="org-comment">% Cente
</div>
</div>
<div id="outline-container-orgeeac940" class="outline-3">
<h3 id="orgeeac940"><span class="section-number-3">2.2</span> Conclusion</h3>
<div id="outline-container-org8e09793" class="outline-3">
<h3 id="org8e09793"><span class="section-number-3">2.2</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-2">
<div class="important">
<p>
@ -1173,6 +1173,38 @@ We found that we can have a diagonal stiffness matrix using the cubic architectu
Depending on the cube&rsquo;s size, we obtain 3 different configurations.
</p>
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<colgroup>
<col class="org-left" />
<col class="org-left" />
</colgroup>
<thead>
<tr>
<th scope="col" class="org-left">Cube&rsquo;s Size</th>
<th scope="col" class="org-left">Paper with the corresponding cubic architecture</th>
</tr>
</thead>
<tbody>
<tr>
<td class="org-left">Small</td>
<td class="org-left"><a class='org-ref-reference' href="#furutani04_nanom_cuttin_machin_using_stewar">furutani04_nanom_cuttin_machin_using_stewar</a></td>
</tr>
<tr>
<td class="org-left">Medium</td>
<td class="org-left"><a class='org-ref-reference' href="#yang19_dynam_model_decoup_contr_flexib">yang19_dynam_model_decoup_contr_flexib</a></td>
</tr>
<tr>
<td class="org-left">Large</td>
<td class="org-left">&#xa0;</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@ -1251,8 +1283,8 @@ We also find that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) are varyi
</div>
</div>
<div id="outline-container-org991d232" class="outline-3">
<h3 id="org991d232"><span class="section-number-3">3.2</span> Conclusion</h3>
<div id="outline-container-orgc5a2e1f" class="outline-3">
<h3 id="orgc5a2e1f"><span class="section-number-3">3.2</span> Conclusion</h3>
<div class="outline-text-3" id="text-3-2">
<p>
We observe that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) increase linearly with the cube size.
@ -1436,6 +1468,7 @@ Now, thanks to the Jacobian (Figure <a href="#org76f24a0">9</a>), we compute the
</p>
<div class="org-src-container">
<pre class="src src-matlab">Gc = inv(stewart.kinematics.J)<span class="org-type">*</span>G<span class="org-type">*</span>inv(stewart.kinematics.J<span class="org-type">'</span>);
Gc = inv(stewart.kinematics.J)<span class="org-type">*</span>G<span class="org-type">*</span>stewart.kinematics.J;
Gc.InputName = {<span class="org-string">'Fx'</span>, <span class="org-string">'Fy'</span>, <span class="org-string">'Fz'</span>, <span class="org-string">'Mx'</span>, <span class="org-string">'My'</span>, <span class="org-string">'Mz'</span>};
Gc.OutputName = {<span class="org-string">'Dx'</span>, <span class="org-string">'Dy'</span>, <span class="org-string">'Dz'</span>, <span class="org-string">'Rx'</span>, <span class="org-string">'Ry'</span>, <span class="org-string">'Rz'</span>};
</pre>
@ -1452,6 +1485,17 @@ The obtain dynamics \(\bm{G}_{c}(s) = \bm{J}^{-T} \bm{G}(s) \bm{J}^{-1}\) is sho
<p><span class="figure-number">Figure 11: </span>Dynamics from \(\bm{\mathcal{F}}\) to \(\bm{\mathcal{X}}\) (<a href="./figs/stewart_cubic_decoupled_dynamics_cartesian.png">png</a>, <a href="./figs/stewart_cubic_decoupled_dynamics_cartesian.pdf">pdf</a>)</p>
</div>
<p>
It is interesting to note here that the system shown in Figure <a href="#org9e58bc5">12</a> also yield a decoupled system (explained in section 1.3.3 in <a class='org-ref-reference' href="#li01_simul_fault_vibrat_isolat_point">li01_simul_fault_vibrat_isolat_point</a>).
</p>
<div id="org9e58bc5" class="figure">
<p><img src="figs/local_to_cartesian_coordinates_bis.png" alt="local_to_cartesian_coordinates_bis.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Alternative way to decouple the system</p>
</div>
<div class="important">
<p>
The dynamics is well decoupled at all frequencies.
@ -1541,13 +1585,13 @@ controller = initializeController(<span class="org-string">'type'</span>, <span
</div>
<p>
The obtain geometry is shown in figure <a href="#orgfce7805">12</a>.
The obtain geometry is shown in figure <a href="#orgfce7805">13</a>.
</p>
<div id="orgfce7805" class="figure">
<p><img src="figs/stewart_cubic_conf_mass_above.png" alt="stewart_cubic_conf_mass_above.png" />
</p>
<p><span class="figure-number">Figure 12: </span>Geometry used for the simulations - The cube&rsquo;s center is coincident with the frames \(\{A\}\) and \(\{B\}\) but not with the Center of mass of the mobile platform (<a href="./figs/stewart_cubic_conf_mass_above.png">png</a>, <a href="./figs/stewart_cubic_conf_mass_above.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 13: </span>Geometry used for the simulations - The cube&rsquo;s center is coincident with the frames \(\{A\}\) and \(\{B\}\) but not with the Center of mass of the mobile platform (<a href="./figs/stewart_cubic_conf_mass_above.png">png</a>, <a href="./figs/stewart_cubic_conf_mass_above.pdf">pdf</a>)</p>
</div>
<p>
@ -1586,14 +1630,14 @@ Gc.OutputName = {<span class="org-string">'Dx'</span>, <span class="org-string">
</div>
<p>
The obtain dynamics \(\bm{G}_{c}(s) = \bm{J}^{-T} \bm{G}(s) \bm{J}^{-1}\) is shown in Figure <a href="#org7a04d45">13</a>.
The obtain dynamics \(\bm{G}_{c}(s) = \bm{J}^{-T} \bm{G}(s) \bm{J}^{-1}\) is shown in Figure <a href="#org7a04d45">14</a>.
</p>
<div id="org7a04d45" class="figure">
<p><img src="figs/stewart_conf_coupling_mass_matrix.png" alt="stewart_conf_coupling_mass_matrix.png" />
</p>
<p><span class="figure-number">Figure 13: </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 class="important">
@ -1609,8 +1653,8 @@ This was expected as the mass matrix is not diagonal (the Center of Mass of the
</div>
</div>
<div id="outline-container-orgf0acd1f" class="outline-3">
<h3 id="orgf0acd1f"><span class="section-number-3">4.3</span> Conclusion</h3>
<div id="outline-container-org24cd25e" class="outline-3">
<h3 id="org24cd25e"><span class="section-number-3">4.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-4-3">
<div class="important">
<p>
@ -1703,25 +1747,25 @@ controller = initializeController(<span class="org-string">'type'</span>, <span
<div id="org67d7284" class="figure">
<p><img src="figs/stewart_architecture_coupling_struts_cubic.png" alt="stewart_architecture_coupling_struts_cubic.png" />
</p>
<p><span class="figure-number">Figure 14: </span>Geometry of the generated Stewart platform (<a href="./figs/stewart_architecture_coupling_struts_cubic.png">png</a>, <a href="./figs/stewart_architecture_coupling_struts_cubic.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 15: </span>Geometry of the generated Stewart platform (<a href="./figs/stewart_architecture_coupling_struts_cubic.png">png</a>, <a href="./figs/stewart_architecture_coupling_struts_cubic.pdf">pdf</a>)</p>
</div>
<p>
And we identify the dynamics from the actuator forces \(\tau_{i}\) to the relative motion sensors \(\delta \mathcal{L}_{i}\) (Figure <a href="#orga20cd7d">15</a>) and to the force sensors \(\tau_{m,i}\) (Figure <a href="#org645e6c3">16</a>).
And we identify the dynamics from the actuator forces \(\tau_{i}\) to the relative motion sensors \(\delta \mathcal{L}_{i}\) (Figure <a href="#orga20cd7d">16</a>) and to the force sensors \(\tau_{m,i}\) (Figure <a href="#org645e6c3">17</a>).
</p>
<div id="orga20cd7d" class="figure">
<p><img src="figs/coupling_struts_relative_sensor_cubic.png" alt="coupling_struts_relative_sensor_cubic.png" />
</p>
<p><span class="figure-number">Figure 15: </span>Dynamics from the force actuators to the relative motion sensors (<a href="./figs/coupling_struts_relative_sensor_cubic.png">png</a>, <a href="./figs/coupling_struts_relative_sensor_cubic.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 16: </span>Dynamics from the force actuators to the relative motion sensors (<a href="./figs/coupling_struts_relative_sensor_cubic.png">png</a>, <a href="./figs/coupling_struts_relative_sensor_cubic.pdf">pdf</a>)</p>
</div>
<div id="org645e6c3" class="figure">
<p><img src="figs/coupling_struts_force_sensor_cubic.png" alt="coupling_struts_force_sensor_cubic.png" />
</p>
<p><span class="figure-number">Figure 16: </span>Dynamics from the force actuators to the force sensors (<a href="./figs/coupling_struts_force_sensor_cubic.png">png</a>, <a href="./figs/coupling_struts_force_sensor_cubic.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 17: </span>Dynamics from the force actuators to the force sensors (<a href="./figs/coupling_struts_force_sensor_cubic.png">png</a>, <a href="./figs/coupling_struts_force_sensor_cubic.pdf">pdf</a>)</p>
</div>
</div>
</div>
@ -1771,31 +1815,31 @@ controller = initializeController(<span class="org-string">'type'</span>, <span
<div id="org14d3492" class="figure">
<p><img src="figs/stewart_architecture_coupling_struts_non_cubic.png" alt="stewart_architecture_coupling_struts_non_cubic.png" />
</p>
<p><span class="figure-number">Figure 17: </span>Geometry of the generated Stewart platform (<a href="./figs/stewart_architecture_coupling_struts_non_cubic.png">png</a>, <a href="./figs/stewart_architecture_coupling_struts_non_cubic.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 18: </span>Geometry of the generated Stewart platform (<a href="./figs/stewart_architecture_coupling_struts_non_cubic.png">png</a>, <a href="./figs/stewart_architecture_coupling_struts_non_cubic.pdf">pdf</a>)</p>
</div>
<p>
And we identify the dynamics from the actuator forces \(\tau_{i}\) to the relative motion sensors \(\delta \mathcal{L}_{i}\) (Figure <a href="#orgff23a38">18</a>) and to the force sensors \(\tau_{m,i}\) (Figure <a href="#orgd802951">19</a>).
And we identify the dynamics from the actuator forces \(\tau_{i}\) to the relative motion sensors \(\delta \mathcal{L}_{i}\) (Figure <a href="#orgff23a38">19</a>) and to the force sensors \(\tau_{m,i}\) (Figure <a href="#orgd802951">20</a>).
</p>
<div id="orgff23a38" class="figure">
<p><img src="figs/coupling_struts_relative_sensor_non_cubic.png" alt="coupling_struts_relative_sensor_non_cubic.png" />
</p>
<p><span class="figure-number">Figure 18: </span>Dynamics from the force actuators to the relative motion sensors (<a href="./figs/coupling_struts_relative_sensor_non_cubic.png">png</a>, <a href="./figs/coupling_struts_relative_sensor_non_cubic.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 19: </span>Dynamics from the force actuators to the relative motion sensors (<a href="./figs/coupling_struts_relative_sensor_non_cubic.png">png</a>, <a href="./figs/coupling_struts_relative_sensor_non_cubic.pdf">pdf</a>)</p>
</div>
<div id="orgd802951" class="figure">
<p><img src="figs/coupling_struts_force_sensor_non_cubic.png" alt="coupling_struts_force_sensor_non_cubic.png" />
</p>
<p><span class="figure-number">Figure 19: </span>Dynamics from the force actuators to the force sensors (<a href="./figs/coupling_struts_force_sensor_non_cubic.png">png</a>, <a href="./figs/coupling_struts_force_sensor_non_cubic.pdf">pdf</a>)</p>
<p><span class="figure-number">Figure 20: </span>Dynamics from the force actuators to the force sensors (<a href="./figs/coupling_struts_force_sensor_non_cubic.png">png</a>, <a href="./figs/coupling_struts_force_sensor_non_cubic.pdf">pdf</a>)</p>
</div>
</div>
</div>
<div id="outline-container-org78c4967" class="outline-3">
<h3 id="org78c4967"><span class="section-number-3">5.3</span> Conclusion</h3>
<div id="outline-container-org3356db5" class="outline-3">
<h3 id="org3356db5"><span class="section-number-3">5.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-5-3">
<div class="important">
<p>
@ -1861,7 +1905,7 @@ This Matlab function is accessible <a href="../src/generateCubicConfiguration.m"
<div id="org8a7f3d8" class="figure">
<p><img src="figs/cubic-configuration-definition.png" alt="cubic-configuration-definition.png" />
</p>
<p><span class="figure-number">Figure 20: </span>Cubic Configuration</p>
<p><span class="figure-number">Figure 21: </span>Cubic Configuration</p>
</div>
</div>
</div>
@ -1961,12 +2005,21 @@ stewart.platform_M.Mb = Mb;
<ul class='org-ref-bib'><li><a id="geng94_six_degree_of_freed_activ">[geng94_six_degree_of_freed_activ]</a> <a name="geng94_six_degree_of_freed_activ"></a>Geng & Haynes, Six Degree-Of-Freedom Active Vibration Control Using the Stewart Platforms, <i>IEEE Transactions on Control Systems Technology</i>, <b>2(1)</b>, 45-53 (1994). <a href="https://doi.org/10.1109/87.273110">link</a>. <a href="http://dx.doi.org/10.1109/87.273110">doi</a>.</li>
<li><a id="preumont07_six_axis_singl_stage_activ">[preumont07_six_axis_singl_stage_activ]</a> <a name="preumont07_six_axis_singl_stage_activ"></a>Preumont, Horodinca, Romanescu, de Marneffe, Avraam, Deraemaeker, Bossens & Abu Hanieh, A Six-Axis Single-Stage Active Vibration Isolator Based on Stewart Platform, <i>Journal of Sound and Vibration</i>, <b>300(3-5)</b>, 644-661 (2007). <a href="https://doi.org/10.1016/j.jsv.2006.07.050">link</a>. <a href="http://dx.doi.org/10.1016/j.jsv.2006.07.050">doi</a>.</li>
<li><a id="jafari03_orthog_gough_stewar_platf_microm">[jafari03_orthog_gough_stewar_platf_microm]</a> <a name="jafari03_orthog_gough_stewar_platf_microm"></a>Jafari & McInroy, Orthogonal Gough-Stewart Platforms for Micromanipulation, <i>IEEE Transactions on Robotics and Automation</i>, <b>19(4)</b>, 595-603 (2003). <a href="https://doi.org/10.1109/tra.2003.814506">link</a>. <a href="http://dx.doi.org/10.1109/tra.2003.814506">doi</a>.</li>
<li><a id="furutani04_nanom_cuttin_machin_using_stewar">[furutani04_nanom_cuttin_machin_using_stewar]</a> <a name="furutani04_nanom_cuttin_machin_using_stewar"></a>Katsushi Furutani, Michio Suzuki & Ryusei Kudoh, Nanometre-Cutting Machine Using a Stewart-Platform Parallel Mechanism, <i>Measurement Science and Technology</i>, <b>15(2)</b>, 467-474 (2004). <a href="https://doi.org/10.1088/0957-0233/15/2/022">link</a>. <a href="http://dx.doi.org/10.1088/0957-0233/15/2/022">doi</a>.</li>
<li><a id="yang19_dynam_model_decoup_contr_flexib">[yang19_dynam_model_decoup_contr_flexib]</a> <a name="yang19_dynam_model_decoup_contr_flexib"></a>Yang, Wu, Chen, Kang & Cheng, Dynamic Modeling and Decoupled Control of a Flexible Stewart Platform for Vibration Isolation, <i>Journal of Sound and Vibration</i>, <b>439</b>, 398-412 (2019). <a href="https://doi.org/10.1016/j.jsv.2018.10.007">link</a>. <a href="http://dx.doi.org/10.1016/j.jsv.2018.10.007">doi</a>.</li>
<li><a id="li01_simul_fault_vibrat_isolat_point">[li01_simul_fault_vibrat_isolat_point]</a> <a name="li01_simul_fault_vibrat_isolat_point"></a>@phdthesisli01_simul_fault_vibrat_isolat_point,
author = Li, Xiaochun,
school = University of Wyoming,
title = Simultaneous, Fault-tolerant Vibration Isolation and Pointing Control of Flexure Jointed Hexapods,
year = 2001,
tags = parallel robot,
</li>
</ul>
</p>
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-28 ven. 17:34</p>
<p class="date">Created: 2020-03-03 mar. 15:51</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-28 ven. 17:34 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Dynamics Study</title>
@ -250,13 +250,13 @@
<ul>
<li><a href="#org4509b7d">1.1. Comparison with fixed support</a></li>
<li><a href="#org8662186">1.2. Comparison with a flexible support</a></li>
<li><a href="#org920d3c4">1.3. Conclusion</a></li>
<li><a href="#orgbb930ae">1.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org81ab204">2. Comparison of the static transfer function and the Compliance matrix</a>
<ul>
<li><a href="#orge7e7242">2.1. Analysis</a></li>
<li><a href="#orgbb930ae">2.2. Conclusion</a></li>
<li><a href="#org5acc4c0">2.2. Conclusion</a></li>
</ul>
</li>
</ul>
@ -442,8 +442,8 @@ And thus \(\mathcal{F}_{x}\) and \(\mathcal{F}_{x,\text{ext}}\) have clearly <b>
</div>
<div id="outline-container-org920d3c4" class="outline-3">
<h3 id="org920d3c4"><span class="section-number-3">1.3</span> Conclusion</h3>
<div id="outline-container-orgbb930ae" class="outline-3">
<h3 id="orgbb930ae"><span class="section-number-3">1.3</span> Conclusion</h3>
<div class="outline-text-3" id="text-1-3">
<div class="important">
<p>
@ -677,8 +677,8 @@ And now at the Compliance matrix.
</div>
</div>
<div id="outline-container-orgbb930ae" class="outline-3">
<h3 id="orgbb930ae"><span class="section-number-3">2.2</span> Conclusion</h3>
<div id="outline-container-org5acc4c0" class="outline-3">
<h3 id="org5acc4c0"><span class="section-number-3">2.2</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-2">
<div class="important">
<p>
@ -692,7 +692,7 @@ The low frequency transfer function matrix from \(\mathcal{\bm{F}}\) to \(\mathc
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-28 ven. 17:34</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-28 ven. 17:34 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Identification of the Stewart Platform using Simscape</title>
@ -257,13 +257,13 @@
</li>
<li><a href="#org2891722">2. Transmissibility Analysis</a>
<ul>
<li><a href="#orgc8e1f51">2.1. Initialize the Stewart platform</a></li>
<li><a href="#org55d2544">2.1. Initialize the Stewart platform</a></li>
<li><a href="#org5338f20">2.2. Transmissibility</a></li>
</ul>
</li>
<li><a href="#orgc94edbd">3. Compliance Analysis</a>
<ul>
<li><a href="#org55d2544">3.1. Initialize the Stewart platform</a></li>
<li><a href="#org499fd6a">3.1. Initialize the Stewart platform</a></li>
<li><a href="#org1177029">3.2. Compliance</a></li>
</ul>
</li>
@ -271,18 +271,18 @@
<ul>
<li><a href="#org487c4d4">4.1. Compute the Transmissibility</a>
<ul>
<li><a href="#org64fc1e2">Function description</a></li>
<li><a href="#org54cab00">Optional Parameters</a></li>
<li><a href="#org3cf1d13">Function description</a></li>
<li><a href="#org726b57d">Optional Parameters</a></li>
<li><a href="#org4629501">Identification of the Transmissibility Matrix</a></li>
<li><a href="#org6f63d37">Computation of the Frobenius norm</a></li>
<li><a href="#org1019eaf">Computation of the Frobenius norm</a></li>
</ul>
</li>
<li><a href="#org50e35a6">4.2. Compute the Compliance</a>
<ul>
<li><a href="#org3cf1d13">Function description</a></li>
<li><a href="#org726b57d">Optional Parameters</a></li>
<li><a href="#orgf1e6c32">Function description</a></li>
<li><a href="#orgda14a2f">Optional Parameters</a></li>
<li><a href="#orgef06b63">Identification of the Compliance Matrix</a></li>
<li><a href="#org1019eaf">Computation of the Frobenius norm</a></li>
<li><a href="#orgc21ec39">Computation of the Frobenius norm</a></li>
</ul>
</li>
</ul>
@ -609,8 +609,8 @@ Save the movie of the mode shape.
<a id="orga989615"></a>
</p>
</div>
<div id="outline-container-orgc8e1f51" class="outline-3">
<h3 id="orgc8e1f51"><span class="section-number-3">2.1</span> Initialize the Stewart platform</h3>
<div id="outline-container-org55d2544" class="outline-3">
<h3 id="org55d2544"><span class="section-number-3">2.1</span> Initialize the Stewart platform</h3>
<div class="outline-text-3" id="text-2-1">
<div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform();
@ -731,8 +731,8 @@ plot(freqs, Gamma)
<a id="org4579374"></a>
</p>
</div>
<div id="outline-container-org55d2544" class="outline-3">
<h3 id="org55d2544"><span class="section-number-3">3.1</span> Initialize the Stewart platform</h3>
<div id="outline-container-org499fd6a" class="outline-3">
<h3 id="org499fd6a"><span class="section-number-3">3.1</span> Initialize the Stewart platform</h3>
<div class="outline-text-3" id="text-3-1">
<div class="org-src-container">
<pre class="src src-matlab">stewart = initializeStewartPlatform();
@ -844,9 +844,9 @@ plot(freqs, C_norm)
</p>
</div>
<div id="outline-container-org64fc1e2" class="outline-4">
<h4 id="org64fc1e2">Function description</h4>
<div class="outline-text-4" id="text-org64fc1e2">
<div id="outline-container-org3cf1d13" class="outline-4">
<h4 id="org3cf1d13">Function description</h4>
<div class="outline-text-4" id="text-org3cf1d13">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[T, T_norm, freqs]</span> = <span class="org-function-name">computeTransmissibility</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% computeTransmissibility -</span>
@ -867,9 +867,9 @@ plot(freqs, C_norm)
</div>
</div>
<div id="outline-container-org54cab00" class="outline-4">
<h4 id="org54cab00">Optional Parameters</h4>
<div class="outline-text-4" id="text-org54cab00">
<div id="outline-container-org726b57d" class="outline-4">
<h4 id="org726b57d">Optional Parameters</h4>
<div class="outline-text-4" id="text-org726b57d">
<div class="org-src-container">
<pre class="src src-matlab">arguments
args.plots logical {mustBeNumericOrLogical} = <span class="org-constant">false</span>
@ -946,9 +946,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div>
</div>
<div id="outline-container-org6f63d37" class="outline-4">
<h4 id="org6f63d37">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-org6f63d37">
<div id="outline-container-org1019eaf" class="outline-4">
<h4 id="org1019eaf">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-org1019eaf">
<div class="org-src-container">
<pre class="src src-matlab">T_norm = zeros(length(freqs), 1);
@ -985,9 +985,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</p>
</div>
<div id="outline-container-org3cf1d13" class="outline-4">
<h4 id="org3cf1d13">Function description</h4>
<div class="outline-text-4" id="text-org3cf1d13">
<div id="outline-container-orgf1e6c32" class="outline-4">
<h4 id="orgf1e6c32">Function description</h4>
<div class="outline-text-4" id="text-orgf1e6c32">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[C, C_norm, freqs]</span> = <span class="org-function-name">computeCompliance</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% computeCompliance -</span>
@ -1008,9 +1008,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div>
</div>
<div id="outline-container-org726b57d" class="outline-4">
<h4 id="org726b57d">Optional Parameters</h4>
<div class="outline-text-4" id="text-org726b57d">
<div id="outline-container-orgda14a2f" class="outline-4">
<h4 id="orgda14a2f">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgda14a2f">
<div class="org-src-container">
<pre class="src src-matlab">arguments
args.plots logical {mustBeNumericOrLogical} = <span class="org-constant">false</span>
@ -1086,9 +1086,9 @@ If wanted, the 6x6 transmissibility matrix is plotted.
</div>
</div>
<div id="outline-container-org1019eaf" class="outline-4">
<h4 id="org1019eaf">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-org1019eaf">
<div id="outline-container-orgc21ec39" class="outline-4">
<h4 id="orgc21ec39">Computation of the Frobenius norm</h4>
<div class="outline-text-4" id="text-orgc21ec39">
<div class="org-src-container">
<pre class="src src-matlab">freqs = args.freqs;
@ -1117,7 +1117,7 @@ C_norm = zeros(length(freqs), 1);
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-28 ven. 17:34</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-11 mar. 17:52 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platforms</title>
@ -201,50 +201,28 @@
<script src="./js/jquery.stickytableheaders.min.js"></script>
<script src="./js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
// @license-end
</script>
</head>
<body>
@ -413,7 +391,7 @@ These properties are studied in <a href="cubic-configuration.html">this</a> docu
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-11 mar. 17:52</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-13 jeu. 16:46 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Kinematic Study of the Stewart Platform</title>
@ -201,50 +201,28 @@
<script src="./js/jquery.stickytableheaders.min.js"></script>
<script src="./js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
// @license-end
</script>
<script>
MathJax = {
@ -289,14 +267,14 @@ for the JavaScript code in this tag.
</li>
<li><a href="#org86b4b35">4. Estimation of the range validity of the approximate inverse kinematics</a>
<ul>
<li><a href="#org4c04fb5">4.1. Stewart architecture definition</a></li>
<li><a href="#org7423428">4.1. Stewart architecture definition</a></li>
<li><a href="#orgd83ccf3">4.2. Comparison for &ldquo;pure&rdquo; translations</a></li>
<li><a href="#org4871c83">4.3. Conclusion</a></li>
</ul>
</li>
<li><a href="#org63255f9">5. Estimated required actuator stroke from specified platform mobility</a>
<ul>
<li><a href="#org62824e9">5.1. Stewart architecture definition</a></li>
<li><a href="#org3e1d400">5.1. Stewart architecture definition</a></li>
<li><a href="#orgde50dd3">5.2. Wanted translations and rotations</a></li>
<li><a href="#org24e45ca">5.3. Needed stroke for &ldquo;pure&rdquo; rotations or translations</a></li>
<li><a href="#orgf6ba90c">5.4. Needed stroke for &ldquo;combined&rdquo; rotations or translations</a></li>
@ -304,7 +282,7 @@ for the JavaScript code in this tag.
</li>
<li><a href="#orgbbbf7b3">6. Estimated platform mobility from specified actuator stroke</a>
<ul>
<li><a href="#org7423428">6.1. Stewart architecture definition</a></li>
<li><a href="#org53d6532">6.1. Stewart architecture definition</a></li>
<li><a href="#org2c6819e">6.2. Pure translations</a></li>
</ul>
</li>
@ -312,8 +290,8 @@ for the JavaScript code in this tag.
<ul>
<li><a href="#org26e8b28">7.1. <code>computeJacobian</code>: Compute the Jacobian Matrix</a>
<ul>
<li><a href="#orgd29f673">Function description</a></li>
<li><a href="#org4bcb03f">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgd0d007d">Function description</a></li>
<li><a href="#orge1b5b04">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org0cd57b5">Compute Jacobian Matrix</a></li>
<li><a href="#orge21dcfc">Compute Stiffness Matrix</a></li>
<li><a href="#orgae76071">Compute Compliance Matrix</a></li>
@ -323,17 +301,17 @@ for the JavaScript code in this tag.
<li><a href="#orgb82066f">7.2. <code>inverseKinematics</code>: Compute Inverse Kinematics</a>
<ul>
<li><a href="#org89930b7">Theory</a></li>
<li><a href="#org9c9b2ba">Function description</a></li>
<li><a href="#orgd8e2476">Optional Parameters</a></li>
<li><a href="#org8d85541">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org755b2ae">Function description</a></li>
<li><a href="#org867b3a0">Optional Parameters</a></li>
<li><a href="#org318eb5f">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org0d64c23">Compute</a></li>
</ul>
</li>
<li><a href="#orgf5d8f0b">7.3. <code>forwardKinematicsApprox</code>: Compute the Approximate Forward Kinematics</a>
<ul>
<li><a href="#orgd0d007d">Function description</a></li>
<li><a href="#org867b3a0">Optional Parameters</a></li>
<li><a href="#orge1b5b04">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgba3bc64">Function description</a></li>
<li><a href="#org7af7974">Optional Parameters</a></li>
<li><a href="#org2ba5e64">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orge5ade24">Computation</a></li>
</ul>
</li>
@ -679,8 +657,8 @@ This will also gives us the range for which the approximate forward kinematic is
</p>
</div>
<div id="outline-container-org4c04fb5" class="outline-3">
<h3 id="org4c04fb5"><span class="section-number-3">4.1</span> Stewart architecture definition</h3>
<div id="outline-container-org7423428" class="outline-3">
<h3 id="org7423428"><span class="section-number-3">4.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-4-1">
<p>
We first define some general Stewart architecture.
@ -780,8 +758,8 @@ This is what is analyzed in this section.
</p>
</div>
<div id="outline-container-org62824e9" class="outline-3">
<h3 id="org62824e9"><span class="section-number-3">5.1</span> Stewart architecture definition</h3>
<div id="outline-container-org3e1d400" class="outline-3">
<h3 id="org3e1d400"><span class="section-number-3">5.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-5-1">
<p>
Let&rsquo;s first define the Stewart platform architecture that we want to study.
@ -1200,8 +1178,8 @@ However, for small displacements, we can use the Jacobian as an approximate solu
</p>
</div>
<div id="outline-container-org7423428" class="outline-3">
<h3 id="org7423428"><span class="section-number-3">6.1</span> Stewart architecture definition</h3>
<div id="outline-container-org53d6532" class="outline-3">
<h3 id="org53d6532"><span class="section-number-3">6.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-6-1">
<p>
Let&rsquo;s first define the Stewart platform architecture that we want to study.
@ -1332,9 +1310,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</p>
</div>
<div id="outline-container-orgd29f673" class="outline-4">
<h4 id="orgd29f673">Function description</h4>
<div class="outline-text-4" id="text-orgd29f673">
<div id="outline-container-orgd0d007d" class="outline-4">
<h4 id="orgd0d007d">Function description</h4>
<div class="outline-text-4" id="text-orgd0d007d">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">computeJacobian</span>(<span class="org-variable-name">stewart</span>)
<span class="org-comment">% computeJacobian -</span>
@ -1357,9 +1335,9 @@ This Matlab function is accessible <a href="../src/computeJacobian.m">here</a>.
</div>
</div>
<div id="outline-container-org4bcb03f" class="outline-4">
<h4 id="org4bcb03f">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org4bcb03f">
<div id="outline-container-orge1b5b04" class="outline-4">
<h4 id="orge1b5b04">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orge1b5b04">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, <span class="org-string">'As'</span>), <span class="org-string">'stewart.geometry should have attribute As'</span>)
As = stewart.geometry.As;
@ -1467,9 +1445,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org9c9b2ba" class="outline-4">
<h4 id="org9c9b2ba">Function description</h4>
<div class="outline-text-4" id="text-org9c9b2ba">
<div id="outline-container-org755b2ae" class="outline-4">
<h4 id="org755b2ae">Function description</h4>
<div class="outline-text-4" id="text-org755b2ae">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[Li, dLi]</span> = <span class="org-function-name">inverseKinematics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% inverseKinematics - Compute the needed length of each strut to have the wanted position and orientation of {B} with respect to {A}</span>
@ -1493,9 +1471,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-orgd8e2476" class="outline-4">
<h4 id="orgd8e2476">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgd8e2476">
<div id="outline-container-org867b3a0" class="outline-4">
<h4 id="org867b3a0">Optional Parameters</h4>
<div class="outline-text-4" id="text-org867b3a0">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1507,9 +1485,9 @@ Otherwise, when the limbs&rsquo; lengths derived yield complex numbers, then the
</div>
</div>
<div id="outline-container-org8d85541" class="outline-4">
<h4 id="org8d85541">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org8d85541">
<div id="outline-container-org318eb5f" class="outline-4">
<h4 id="org318eb5f">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org318eb5f">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.geometry, <span class="org-string">'Aa'</span>), <span class="org-string">'stewart.geometry should have attribute Aa'</span>)
Aa = stewart.geometry.Aa;
@ -1553,9 +1531,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</p>
</div>
<div id="outline-container-orgd0d007d" class="outline-4">
<h4 id="orgd0d007d">Function description</h4>
<div class="outline-text-4" id="text-orgd0d007d">
<div id="outline-container-orgba3bc64" class="outline-4">
<h4 id="orgba3bc64">Function description</h4>
<div class="outline-text-4" id="text-orgba3bc64">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[P, R]</span> = <span class="org-function-name">forwardKinematicsApprox</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% forwardKinematicsApprox - Computed the approximate pose of {B} with respect to {A} from the length of each strut and using</span>
@ -1577,9 +1555,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</div>
</div>
<div id="outline-container-org867b3a0" class="outline-4">
<h4 id="org867b3a0">Optional Parameters</h4>
<div class="outline-text-4" id="text-org867b3a0">
<div id="outline-container-org7af7974" class="outline-4">
<h4 id="org7af7974">Optional Parameters</h4>
<div class="outline-text-4" id="text-org7af7974">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1590,9 +1568,9 @@ This Matlab function is accessible <a href="../src/forwardKinematicsApprox.m">he
</div>
</div>
<div id="outline-container-orge1b5b04" class="outline-4">
<h4 id="orge1b5b04">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-orge1b5b04">
<div id="outline-container-org2ba5e64" class="outline-4">
<h4 id="org2ba5e64">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org2ba5e64">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.kinematics, <span class="org-string">'J'</span>), <span class="org-string">'stewart.kinematics should have attribute J'</span>)
J = stewart.kinematics.J;
@ -1655,7 +1633,7 @@ We then compute the corresponding rotation matrix.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-13 jeu. 16:46</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-27 jeu. 14:16 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Simscape Model</title>
@ -259,16 +259,16 @@
<ul>
<li><a href="#org3535b6d">6.1. Payload</a>
<ul>
<li><a href="#orge7f39a8">Function description</a></li>
<li><a href="#orgb83df72">Optional Parameters</a></li>
<li><a href="#org5d402b9">Function description</a></li>
<li><a href="#orgc0da5ca">Optional Parameters</a></li>
<li><a href="#orgeeb8d35">Add Payload Type</a></li>
<li><a href="#org6d52ffc">Add Stiffness, Damping and Mass properties of the Payload</a></li>
</ul>
</li>
<li><a href="#orgaaed406">6.2. Ground</a>
<ul>
<li><a href="#org5d402b9">Function description</a></li>
<li><a href="#orgc0da5ca">Optional Parameters</a></li>
<li><a href="#org1211163">Function description</a></li>
<li><a href="#org0d8dc7e">Optional Parameters</a></li>
<li><a href="#orgef7035d">Add Ground Type</a></li>
<li><a href="#org95633e8">Add Stiffness and Damping properties of the Ground</a></li>
<li><a href="#org14ff2fc">Rotation Point</a></li>
@ -504,9 +504,9 @@ This Matlab function is accessible <a href="../src/initializePayload.m">here</a>
</p>
</div>
<div id="outline-container-orge7f39a8" class="outline-4">
<h4 id="orge7f39a8">Function description</h4>
<div class="outline-text-4" id="text-orge7f39a8">
<div id="outline-container-org5d402b9" class="outline-4">
<h4 id="org5d402b9">Function description</h4>
<div class="outline-text-4" id="text-org5d402b9">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[payload]</span> = <span class="org-function-name">initializePayload</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% initializePayload - Initialize the Payload that can then be used for simulations and analysis</span>
@ -536,9 +536,9 @@ This Matlab function is accessible <a href="../src/initializePayload.m">here</a>
</div>
</div>
<div id="outline-container-orgb83df72" class="outline-4">
<h4 id="orgb83df72">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgb83df72">
<div id="outline-container-orgc0da5ca" class="outline-4">
<h4 id="orgc0da5ca">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc0da5ca">
<div class="org-src-container">
<pre class="src src-matlab">arguments
args.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>
@ -600,9 +600,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</p>
</div>
<div id="outline-container-org5d402b9" class="outline-4">
<h4 id="org5d402b9">Function description</h4>
<div class="outline-text-4" id="text-org5d402b9">
<div id="outline-container-org1211163" class="outline-4">
<h4 id="org1211163">Function description</h4>
<div class="outline-text-4" id="text-org1211163">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[ground]</span> = <span class="org-function-name">initializeGround</span>(<span class="org-variable-name">args</span>)
<span class="org-comment">% initializeGround - Initialize the Ground that can then be used for simulations and analysis</span>
@ -626,9 +626,9 @@ This Matlab function is accessible <a href="../src/initializeGround.m">here</a>.
</div>
</div>
<div id="outline-container-orgc0da5ca" class="outline-4">
<h4 id="orgc0da5ca">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc0da5ca">
<div id="outline-container-org0d8dc7e" class="outline-4">
<h4 id="org0d8dc7e">Optional Parameters</h4>
<div class="outline-text-4" id="text-org0d8dc7e">
<div class="org-src-container">
<pre class="src src-matlab">arguments
args.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>
@ -683,7 +683,7 @@ ground.C = args.C;
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-27 jeu. 14:16</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-11 mar. 17:52 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Simulink Project for the Stewart Simscape folder</title>
@ -201,50 +201,28 @@
<script src="./js/jquery.stickytableheaders.min.js"></script>
<script src="./js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
// @license-end
</script>
</head>
<body>
@ -321,7 +299,7 @@ The project also permits to automatically add defined folder to the path when th
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-11 mar. 17:52</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-14 ven. 14:11 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Static Analysis</title>
@ -201,50 +201,28 @@
<script src="./js/jquery.stickytableheaders.min.js"></script>
<script src="./js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
// @license-end
</script>
<script>
MathJax = {
@ -303,7 +281,7 @@ Thus, the system is uncoupled if \(G\) and \(K\) are diagonal.
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-14 ven. 14:11</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -4,7 +4,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-02-14 ven. 14:11 -->
<!-- 2020-03-02 lun. 17:57 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Definition of the Architecture</title>
@ -201,50 +201,28 @@
<script src="./js/jquery.stickytableheaders.min.js"></script>
<script src="./js/readtheorg.js"></script>
<script type="text/javascript">
/*
@licstart The following is the entire license notice for the
JavaScript code in this tag.
Copyright (C) 2012-2020 Free Software Foundation, Inc.
The JavaScript code in this tag is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
any later version. The code is distributed WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
As additional permission under GNU GPL version 3 section 7, you
may distribute non-source (e.g., minimized or compacted) forms of
that code without the copy of the GNU GPL normally required by
section 4, provided you include this license notice and a URL
through which recipients can access the Corresponding Source.
@licend The above is the entire license notice
for the JavaScript code in this tag.
*/
// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
<!--/*--><![CDATA[/*><!--*/
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
function CodeHighlightOn(elem, id)
{
var target = document.getElementById(id);
if(null != target) {
elem.cacheClassElem = elem.className;
elem.cacheClassTarget = target.className;
target.className = "code-highlighted";
elem.className = "code-highlighted";
}
}
function CodeHighlightOff(elem, id)
{
var target = document.getElementById(id);
if(elem.cacheClassElem)
elem.className = elem.cacheClassElem;
if(elem.cacheClassTarget)
target.className = elem.cacheClassTarget;
}
/*]]>*///-->
// @license-end
</script>
<script>
MathJax = {
@ -297,85 +275,85 @@ for the JavaScript code in this tag.
<ul>
<li><a href="#orgd89f0e1">5.1. <code>initializeStewartPlatform</code>: Initialize the Stewart Platform structure</a>
<ul>
<li><a href="#orga7c47bc">Documentation</a></li>
<li><a href="#org59a5a2e">Function description</a></li>
<li><a href="#orgcbe44a8">Documentation</a></li>
<li><a href="#org3f0619e">Function description</a></li>
<li><a href="#orgd567fc1">Initialize the Stewart structure</a></li>
</ul>
</li>
<li><a href="#orgb11894c">5.2. <code>initializeFramesPositions</code>: Initialize the positions of frames {A}, {B}, {F} and {M}</a>
<ul>
<li><a href="#org2e2e6c3">Documentation</a></li>
<li><a href="#org04ff2b3">Function description</a></li>
<li><a href="#org8bd5132">Optional Parameters</a></li>
<li><a href="#orgcbfd0d8">Documentation</a></li>
<li><a href="#orgdf63b4a">Function description</a></li>
<li><a href="#orgc1e4a8f">Optional Parameters</a></li>
<li><a href="#org458592e">Compute the position of each frame</a></li>
<li><a href="#org55d115f">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org5cb9de9">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org9057387">5.3. <code>generateGeneralConfiguration</code>: Generate a Very General Configuration</a>
<ul>
<li><a href="#org96f9637">Documentation</a></li>
<li><a href="#org59b256d">Function description</a></li>
<li><a href="#org953c5b3">Optional Parameters</a></li>
<li><a href="#orga5c257f">Documentation</a></li>
<li><a href="#org1d8e8a7">Function description</a></li>
<li><a href="#org8c38e26">Optional Parameters</a></li>
<li><a href="#org232e4c2">Compute the pose</a></li>
<li><a href="#org8ce6d85">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org36597c6">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org861f6de">5.4. <code>computeJointsPose</code>: Compute the Pose of the Joints</a>
<ul>
<li><a href="#org6b1772b">Documentation</a></li>
<li><a href="#org6ac2b53">Function description</a></li>
<li><a href="#org92ac986">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org3199a1c">Documentation</a></li>
<li><a href="#org9794682">Function description</a></li>
<li><a href="#org5081c24">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#org52b0d4c">Compute the position of the Joints</a></li>
<li><a href="#org4b76b0f">Compute the strut length and orientation</a></li>
<li><a href="#orgd621d5e">Compute the orientation of the Joints</a></li>
<li><a href="#orgc39bc0e">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orge3aeda4">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org329bef9">5.5. <code>initializeStewartPose</code>: Determine the initial stroke in each leg to have the wanted pose</a>
<ul>
<li><a href="#org8339f6e">Function description</a></li>
<li><a href="#org6b574c3">Optional Parameters</a></li>
<li><a href="#org7cc5b75">Function description</a></li>
<li><a href="#orgf595acf">Optional Parameters</a></li>
<li><a href="#org3d3ef62">Use the Inverse Kinematic function</a></li>
<li><a href="#org70b368a">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org27750f4">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org6ff5b31">5.6. <code>initializeCylindricalPlatforms</code>: Initialize the geometry of the Fixed and Mobile Platforms</a>
<ul>
<li><a href="#orgef76da0">Function description</a></li>
<li><a href="#org333a206">Optional Parameters</a></li>
<li><a href="#org624999a">Function description</a></li>
<li><a href="#org04455cf">Optional Parameters</a></li>
<li><a href="#org25a390a">Compute the Inertia matrices of platforms</a></li>
<li><a href="#org89d5372">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgc4a069e">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org60aa215">5.7. <code>initializeCylindricalStruts</code>: Define the inertia of cylindrical struts</a>
<ul>
<li><a href="#org0431333">Function description</a></li>
<li><a href="#org738f1f8">Optional Parameters</a></li>
<li><a href="#org54faea9">Function description</a></li>
<li><a href="#org054477a">Optional Parameters</a></li>
<li><a href="#orgc056498">Compute the properties of the cylindrical struts</a></li>
<li><a href="#org9c1a6e4">Populate the <code>stewart</code> structure</a></li>
<li><a href="#orgc660211">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org3ad0cd1">5.8. <code>initializeStrutDynamics</code>: Add Stiffness and Damping properties of each strut</a>
<ul>
<li><a href="#org53e4966">Documentation</a></li>
<li><a href="#org5bd2bb1">Function description</a></li>
<li><a href="#org484f45f">Optional Parameters</a></li>
<li><a href="#org6cad4f3">Documentation</a></li>
<li><a href="#orga9da482">Function description</a></li>
<li><a href="#orgd799057">Optional Parameters</a></li>
<li><a href="#orgadb8327">Add Stiffness and Damping properties of each strut</a></li>
</ul>
</li>
<li><a href="#orgd8d403e">5.9. <code>initializeAmplifiedStrutDynamics</code>: Add Stiffness and Damping properties of each strut for an amplified piezoelectric actuator</a>
<ul>
<li><a href="#orgcbe44a8">Documentation</a></li>
<li><a href="#orgbeac987">Function description</a></li>
<li><a href="#orgb924b3b">Optional Parameters</a></li>
<li><a href="#org6327083">Documentation</a></li>
<li><a href="#orgab64078">Function description</a></li>
<li><a href="#org8decfcb">Optional Parameters</a></li>
<li><a href="#org9b435e8">Compute the total stiffness and damping</a></li>
<li><a href="#org0c93e39">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org9043c25">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#orgeb6173a">5.10. <code>initializeJointDynamics</code>: Add Stiffness and Damping properties for spherical joints</a>
<ul>
<li><a href="#orgd67e306">Function description</a></li>
<li><a href="#orgbad8e13">Optional Parameters</a></li>
<li><a href="#orgd451395">Function description</a></li>
<li><a href="#org6660cdc">Optional Parameters</a></li>
<li><a href="#orgc6d4183">Add Actuator Type</a></li>
<li><a href="#orgc0e613c">Add Stiffness and Damping in Translation of each strut</a></li>
<li><a href="#org04698fc">Add Stiffness and Damping in Rotation of each strut</a></li>
@ -385,17 +363,17 @@ for the JavaScript code in this tag.
<ul>
<li><a href="#orgd667bbb">Geophone - Working Principle</a></li>
<li><a href="#orgca7729f">Accelerometer - Working Principle</a></li>
<li><a href="#org42a2695">Function description</a></li>
<li><a href="#org5d7462b">Optional Parameters</a></li>
<li><a href="#org57dd702">Function description</a></li>
<li><a href="#org2a3d621">Optional Parameters</a></li>
<li><a href="#org463075d">Compute the properties of the sensor</a></li>
<li><a href="#org5cb9de9">Populate the <code>stewart</code> structure</a></li>
<li><a href="#org4c17df3">Populate the <code>stewart</code> structure</a></li>
</ul>
</li>
<li><a href="#org5266e9d">5.12. <code>displayArchitecture</code>: 3D plot of the Stewart platform architecture</a>
<ul>
<li><a href="#org3f0619e">Function description</a></li>
<li><a href="#orgc1e4a8f">Optional Parameters</a></li>
<li><a href="#org5081c24">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orga71445d">Function description</a></li>
<li><a href="#org0e4e463">Optional Parameters</a></li>
<li><a href="#org3789c70">Check the <code>stewart</code> structure elements</a></li>
<li><a href="#orgc088b18">Figure Creation, Frames and Homogeneous transformations</a></li>
<li><a href="#orgc25a979">Fixed Base elements</a></li>
<li><a href="#org8417772">Mobile Platform elements</a></li>
@ -845,11 +823,11 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</p>
</div>
<div id="outline-container-orga7c47bc" class="outline-4">
<h4 id="orga7c47bc">Documentation</h4>
<div class="outline-text-4" id="text-orga7c47bc">
<div id="outline-container-orgcbe44a8" class="outline-4">
<h4 id="orgcbe44a8">Documentation</h4>
<div class="outline-text-4" id="text-orgcbe44a8">
<div id="org9d8b281" class="figure">
<div id="org8c7f906" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 7: </span>Definition of the position of the frames</p>
@ -857,9 +835,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPlatform.m">
</div>
</div>
<div id="outline-container-org59a5a2e" class="outline-4">
<h4 id="org59a5a2e">Function description</h4>
<div class="outline-text-4" id="text-org59a5a2e">
<div id="outline-container-org3f0619e" class="outline-4">
<h4 id="org3f0619e">Function description</h4>
<div class="outline-text-4" id="text-org3f0619e">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStewartPlatform</span>()
<span class="org-comment">% initializeStewartPlatform - Initialize the stewart structure</span>
@ -918,11 +896,11 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</p>
</div>
<div id="outline-container-org2e2e6c3" class="outline-4">
<h4 id="org2e2e6c3">Documentation</h4>
<div class="outline-text-4" id="text-org2e2e6c3">
<div id="outline-container-orgcbfd0d8" class="outline-4">
<h4 id="orgcbfd0d8">Documentation</h4>
<div class="outline-text-4" id="text-orgcbfd0d8">
<div id="org8c7f906" class="figure">
<div id="org56fe1d1" class="figure">
<p><img src="figs/stewart-frames-position.png" alt="stewart-frames-position.png" />
</p>
<p><span class="figure-number">Figure 8: </span>Definition of the position of the frames</p>
@ -930,9 +908,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org04ff2b3" class="outline-4">
<h4 id="org04ff2b3">Function description</h4>
<div class="outline-text-4" id="text-org04ff2b3">
<div id="outline-container-orgdf63b4a" class="outline-4">
<h4 id="orgdf63b4a">Function description</h4>
<div class="outline-text-4" id="text-orgdf63b4a">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeFramesPositions</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeFramesPositions - Initialize the positions of frames {A}, {B}, {F} and {M}</span>
@ -955,9 +933,9 @@ This Matlab function is accessible <a href="../src/initializeFramesPositions.m">
</div>
</div>
<div id="outline-container-org8bd5132" class="outline-4">
<h4 id="org8bd5132">Optional Parameters</h4>
<div class="outline-text-4" id="text-org8bd5132">
<div id="outline-container-orgc1e4a8f" class="outline-4">
<h4 id="orgc1e4a8f">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc1e4a8f">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -985,9 +963,9 @@ FO_A = MO_B <span class="org-type">+</span> FO_M; <span class="org-comment">% Po
</div>
</div>
<div id="outline-container-org55d115f" class="outline-4">
<h4 id="org55d115f">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org55d115f">
<div id="outline-container-org5cb9de9" class="outline-4">
<h4 id="org5cb9de9">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org5cb9de9">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.H = H;
stewart.geometry.FO_M = FO_M;
@ -1011,9 +989,9 @@ This Matlab function is accessible <a href="../src/generateGeneralConfiguration.
</p>
</div>
<div id="outline-container-org96f9637" class="outline-4">
<h4 id="org96f9637">Documentation</h4>
<div class="outline-text-4" id="text-org96f9637">
<div id="outline-container-orga5c257f" class="outline-4">
<h4 id="orga5c257f">Documentation</h4>
<div class="outline-text-4" id="text-orga5c257f">
<p>
Joints are positions on a circle centered with the Z axis of {F} and {M} and at a chosen distance from {F} and {M}.
The radius of the circles can be chosen as well as the angles where the joints are located (see Figure <a href="#org4c354b6">9</a>).
@ -1028,9 +1006,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org59b256d" class="outline-4">
<h4 id="org59b256d">Function description</h4>
<div class="outline-text-4" id="text-org59b256d">
<div id="outline-container-org1d8e8a7" class="outline-4">
<h4 id="org1d8e8a7">Function description</h4>
<div class="outline-text-4" id="text-org1d8e8a7">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">generateGeneralConfiguration</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% generateGeneralConfiguration - Generate a Very General Configuration</span>
@ -1055,9 +1033,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
</div>
</div>
<div id="outline-container-org953c5b3" class="outline-4">
<h4 id="org953c5b3">Optional Parameters</h4>
<div class="outline-text-4" id="text-org953c5b3">
<div id="outline-container-org8c38e26" class="outline-4">
<h4 id="org8c38e26">Optional Parameters</h4>
<div class="outline-text-4" id="text-org8c38e26">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1092,9 +1070,9 @@ Mb = zeros(3,6);
</div>
</div>
<div id="outline-container-org8ce6d85" class="outline-4">
<h4 id="org8ce6d85">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org8ce6d85">
<div id="outline-container-org36597c6" class="outline-4">
<h4 id="org36597c6">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org36597c6">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.Fa = Fa;
stewart.platform_M.Mb = Mb;
@ -1116,9 +1094,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</p>
</div>
<div id="outline-container-org6b1772b" class="outline-4">
<h4 id="org6b1772b">Documentation</h4>
<div class="outline-text-4" id="text-org6b1772b">
<div id="outline-container-org3199a1c" class="outline-4">
<h4 id="org3199a1c">Documentation</h4>
<div class="outline-text-4" id="text-org3199a1c">
<div id="org8ffb841" class="figure">
<p><img src="figs/stewart-struts.png" alt="stewart-struts.png" />
@ -1128,9 +1106,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org6ac2b53" class="outline-4">
<h4 id="org6ac2b53">Function description</h4>
<div class="outline-text-4" id="text-org6ac2b53">
<div id="outline-container-org9794682" class="outline-4">
<h4 id="org9794682">Function description</h4>
<div class="outline-text-4" id="text-org9794682">
<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-comment">% computeJointsPose -</span>
@ -1163,9 +1141,9 @@ This Matlab function is accessible <a href="../src/computeJointsPose.m">here</a>
</div>
</div>
<div id="outline-container-org92ac986" class="outline-4">
<h4 id="org92ac986">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org92ac986">
<div id="outline-container-org5081c24" class="outline-4">
<h4 id="org5081c24">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org5081c24">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.platform_F, <span class="org-string">'Fa'</span>), <span class="org-string">'stewart.platform_F should have attribute Fa'</span>)
Fa = stewart.platform_F.Fa;
@ -1236,9 +1214,9 @@ MRb = zeros(3,3,6);
</div>
</div>
<div id="outline-container-orgc39bc0e" class="outline-4">
<h4 id="orgc39bc0e">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgc39bc0e">
<div id="outline-container-orge3aeda4" class="outline-4">
<h4 id="orge3aeda4">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orge3aeda4">
<div class="org-src-container">
<pre class="src src-matlab">stewart.geometry.Aa = Aa;
stewart.geometry.Ab = Ab;
@ -1271,9 +1249,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</p>
</div>
<div id="outline-container-org8339f6e" class="outline-4">
<h4 id="org8339f6e">Function description</h4>
<div class="outline-text-4" id="text-org8339f6e">
<div id="outline-container-org7cc5b75" class="outline-4">
<h4 id="org7cc5b75">Function description</h4>
<div class="outline-text-4" id="text-org7cc5b75">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStewartPose</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeStewartPose - Determine the initial stroke in each leg to have the wanted pose</span>
@ -1297,9 +1275,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div>
</div>
<div id="outline-container-org6b574c3" class="outline-4">
<h4 id="org6b574c3">Optional Parameters</h4>
<div class="outline-text-4" id="text-org6b574c3">
<div id="outline-container-orgf595acf" class="outline-4">
<h4 id="orgf595acf">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgf595acf">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1321,9 +1299,9 @@ This Matlab function is accessible <a href="../src/initializeStewartPose.m">here
</div>
</div>
<div id="outline-container-org70b368a" class="outline-4">
<h4 id="org70b368a">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org70b368a">
<div id="outline-container-org27750f4" class="outline-4">
<h4 id="org27750f4">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org27750f4">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.Leq = dLi;
</pre>
@ -1344,9 +1322,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</p>
</div>
<div id="outline-container-orgef76da0" class="outline-4">
<h4 id="orgef76da0">Function description</h4>
<div class="outline-text-4" id="text-orgef76da0">
<div id="outline-container-org624999a" class="outline-4">
<h4 id="org624999a">Function description</h4>
<div class="outline-text-4" id="text-org624999a">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeCylindricalPlatforms</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms</span>
@ -1380,9 +1358,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div>
</div>
<div id="outline-container-org333a206" class="outline-4">
<h4 id="org333a206">Optional Parameters</h4>
<div class="outline-text-4" id="text-org333a206">
<div id="outline-container-org04455cf" class="outline-4">
<h4 id="org04455cf">Optional Parameters</h4>
<div class="outline-text-4" id="text-org04455cf">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1417,9 +1395,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalPlatform
</div>
</div>
<div id="outline-container-org89d5372" class="outline-4">
<h4 id="org89d5372">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org89d5372">
<div id="outline-container-orgc4a069e" class="outline-4">
<h4 id="orgc4a069e">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgc4a069e">
<div class="org-src-container">
<pre class="src src-matlab">stewart.platform_F.type = 1;
@ -1455,9 +1433,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</p>
</div>
<div id="outline-container-org0431333" class="outline-4">
<h4 id="org0431333">Function description</h4>
<div class="outline-text-4" id="text-org0431333">
<div id="outline-container-org54faea9" class="outline-4">
<h4 id="org54faea9">Function description</h4>
<div class="outline-text-4" id="text-org54faea9">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeCylindricalStruts</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts</span>
@ -1490,9 +1468,9 @@ This Matlab function is accessible <a href="../src/initializeCylindricalStruts.m
</div>
</div>
<div id="outline-container-org738f1f8" class="outline-4">
<h4 id="org738f1f8">Optional Parameters</h4>
<div class="outline-text-4" id="text-org738f1f8">
<div id="outline-container-org054477a" class="outline-4">
<h4 id="org054477a">Optional Parameters</h4>
<div class="outline-text-4" id="text-org054477a">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1540,9 +1518,9 @@ I_M = zeros(3, 3, 6); <span class="org-comment">% Inertia of the "mobile" part o
</div>
</div>
<div id="outline-container-org9c1a6e4" class="outline-4">
<h4 id="org9c1a6e4">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org9c1a6e4">
<div id="outline-container-orgc660211" class="outline-4">
<h4 id="orgc660211">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-orgc660211">
<div class="org-src-container">
<pre class="src src-matlab">stewart.struts_M.type = 1;
@ -1578,9 +1556,9 @@ This Matlab function is accessible <a href="../src/initializeStrutDynamics.m">he
</p>
</div>
<div id="outline-container-org53e4966" class="outline-4">
<h4 id="org53e4966">Documentation</h4>
<div class="outline-text-4" id="text-org53e4966">
<div id="outline-container-org6cad4f3" class="outline-4">
<h4 id="org6cad4f3">Documentation</h4>
<div class="outline-text-4" id="text-org6cad4f3">
<div id="orgbbfb204" class="figure">
<p><img src="figs/piezoelectric_stack.jpg" alt="piezoelectric_stack.jpg" width="500px" />
@ -1609,9 +1587,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org62
</div>
</div>
<div id="outline-container-org5bd2bb1" class="outline-4">
<h4 id="org5bd2bb1">Function description</h4>
<div class="outline-text-4" id="text-org5bd2bb1">
<div id="outline-container-orga9da482" class="outline-4">
<h4 id="orga9da482">Function description</h4>
<div class="outline-text-4" id="text-orga9da482">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeStrutDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeStrutDynamics - Add Stiffness and Damping properties of each strut</span>
@ -1633,9 +1611,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#org62
</div>
</div>
<div id="outline-container-org484f45f" class="outline-4">
<h4 id="org484f45f">Optional Parameters</h4>
<div class="outline-text-4" id="text-org484f45f">
<div id="outline-container-orgd799057" class="outline-4">
<h4 id="orgd799057">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgd799057">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1673,9 +1651,9 @@ This Matlab function is accessible <a href="../src/initializeAmplifiedStrutDynam
</p>
</div>
<div id="outline-container-orgcbe44a8" class="outline-4">
<h4 id="orgcbe44a8">Documentation</h4>
<div class="outline-text-4" id="text-orgcbe44a8">
<div id="outline-container-org6327083" class="outline-4">
<h4 id="org6327083">Documentation</h4>
<div class="outline-text-4" id="text-org6327083">
<p>
An amplified piezoelectric actuator is shown in Figure <a href="#org9e7e9ad">13</a>.
</p>
@ -1708,9 +1686,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgcf
</div>
</div>
<div id="outline-container-orgbeac987" class="outline-4">
<h4 id="orgbeac987">Function description</h4>
<div class="outline-text-4" id="text-orgbeac987">
<div id="outline-container-orgab64078" class="outline-4">
<h4 id="orgab64078">Function description</h4>
<div class="outline-text-4" id="text-orgab64078">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeAmplifiedStrutDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut</span>
@ -1738,9 +1716,9 @@ A simplistic model of such amplified actuator is shown in Figure <a href="#orgcf
</div>
</div>
<div id="outline-container-orgb924b3b" class="outline-4">
<h4 id="orgb924b3b">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgb924b3b">
<div id="outline-container-org8decfcb" class="outline-4">
<h4 id="org8decfcb">Optional Parameters</h4>
<div class="outline-text-4" id="text-org8decfcb">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -1765,9 +1743,9 @@ C = args.Ca <span class="org-type">+</span> args.Cr;
</div>
</div>
<div id="outline-container-org0c93e39" class="outline-4">
<h4 id="org0c93e39">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org0c93e39">
<div id="outline-container-org9043c25" class="outline-4">
<h4 id="org9043c25">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org9043c25">
<div class="org-src-container">
<pre class="src src-matlab">stewart.actuators.type = 2;
@ -1797,9 +1775,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</p>
</div>
<div id="outline-container-orgd67e306" class="outline-4">
<h4 id="orgd67e306">Function description</h4>
<div class="outline-text-4" id="text-orgd67e306">
<div id="outline-container-orgd451395" class="outline-4">
<h4 id="orgd451395">Function description</h4>
<div class="outline-text-4" id="text-orgd451395">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeJointDynamics</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeJointDynamics - Add Stiffness and Damping properties for the spherical joints</span>
@ -1834,9 +1812,9 @@ This Matlab function is accessible <a href="../src/initializeJointDynamics.m">he
</div>
</div>
<div id="outline-container-orgbad8e13" class="outline-4">
<h4 id="orgbad8e13">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgbad8e13">
<div id="outline-container-org6660cdc" class="outline-4">
<h4 id="org6660cdc">Optional Parameters</h4>
<div class="outline-text-4" id="text-org6660cdc">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -2036,9 +2014,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-org42a2695" class="outline-4">
<h4 id="org42a2695">Function description</h4>
<div class="outline-text-4" id="text-org42a2695">
<div id="outline-container-org57dd702" class="outline-4">
<h4 id="org57dd702">Function description</h4>
<div class="outline-text-4" id="text-org57dd702">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[stewart]</span> = <span class="org-function-name">initializeInertialSensor</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% initializeInertialSensor - Initialize the inertial sensor in each strut</span>
@ -2064,9 +2042,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-org5d7462b" class="outline-4">
<h4 id="org5d7462b">Optional Parameters</h4>
<div class="outline-text-4" id="text-org5d7462b">
<div id="outline-container-org2a3d621" class="outline-4">
<h4 id="org2a3d621">Optional Parameters</h4>
<div class="outline-text-4" id="text-org2a3d621">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -2107,9 +2085,9 @@ Note that there is trade-off between:
</div>
</div>
<div id="outline-container-org5cb9de9" class="outline-4">
<h4 id="org5cb9de9">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org5cb9de9">
<div id="outline-container-org4c17df3" class="outline-4">
<h4 id="org4c17df3">Populate the <code>stewart</code> structure</h4>
<div class="outline-text-4" id="text-org4c17df3">
<div class="org-src-container">
<pre class="src src-matlab">stewart.sensors.inertial = sensor;
</pre>
@ -2130,9 +2108,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</p>
</div>
<div id="outline-container-org3f0619e" class="outline-4">
<h4 id="org3f0619e">Function description</h4>
<div class="outline-text-4" id="text-org3f0619e">
<div id="outline-container-orga71445d" class="outline-4">
<h4 id="orga71445d">Function description</h4>
<div class="outline-text-4" id="text-orga71445d">
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name">[]</span> = <span class="org-function-name">displayArchitecture</span>(<span class="org-variable-name">stewart</span>, <span class="org-variable-name">args</span>)
<span class="org-comment">% displayArchitecture - 3D plot of the Stewart platform architecture</span>
@ -2161,9 +2139,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div>
</div>
<div id="outline-container-orgc1e4a8f" class="outline-4">
<h4 id="orgc1e4a8f">Optional Parameters</h4>
<div class="outline-text-4" id="text-orgc1e4a8f">
<div id="outline-container-org0e4e463" class="outline-4">
<h4 id="org0e4e463">Optional Parameters</h4>
<div class="outline-text-4" id="text-org0e4e463">
<div class="org-src-container">
<pre class="src src-matlab">arguments
stewart
@ -2184,9 +2162,9 @@ This Matlab function is accessible <a href="../src/displayArchitecture.m">here</
</div>
</div>
<div id="outline-container-org5081c24" class="outline-4">
<h4 id="org5081c24">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org5081c24">
<div id="outline-container-org3789c70" class="outline-4">
<h4 id="org3789c70">Check the <code>stewart</code> structure elements</h4>
<div class="outline-text-4" id="text-org3789c70">
<div class="org-src-container">
<pre class="src src-matlab">assert(isfield(stewart.platform_F, <span class="org-string">'FO_A'</span>), <span class="org-string">'stewart.platform_F should have attribute FO_A'</span>)
FO_A = stewart.platform_F.FO_A;
@ -2522,7 +2500,7 @@ Plot the legs connecting the joints of the fixed base to the joints of the mobil
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-02-14 ven. 14:11</p>
<p class="date">Created: 2020-03-02 lun. 17:57</p>
</div>
</body>
</html>

View File

@ -299,7 +299,7 @@ We then design a controller based on the transfer functions from $\bm{\mathcal{F
plot(freqs, abs(squeeze(freqresp(Gc_dvf('Rz', 'Mz'), freqs, 'Hz'))));
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
ax2 = subplot(2, 1, 2);
hold on;
@ -356,7 +356,7 @@ The controller is a pure integrator with a small lead near the crossover.
plot(freqs, abs(squeeze(freqresp(Kd_dvf(6,6)*Gc_dvf('Rz', 'Mz'), freqs, 'Hz'))));
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
ylabel('Loop Gain'); set(gca, 'XTickLabel',[]);
ax2 = subplot(2, 1, 2);
hold on;
@ -461,7 +461,7 @@ We identify the transmissibility and compliance of the system.
plot(freqs, abs(squeeze(freqresp(Gc_iff('Rz', 'Mz'), freqs, 'Hz'))));
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
ax2 = subplot(2, 1, 2);
hold on;
@ -518,7 +518,7 @@ The controller is a pure integrator with a small lead near the crossover.
plot(freqs, abs(squeeze(freqresp(Kd_iff(6,6)*Gc_iff('Rz', 'Mz'), freqs, 'Hz'))));
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]);
ylabel('Loop Gain'); set(gca, 'XTickLabel',[]);
ax2 = subplot(2, 1, 2);
hold on;

View File

@ -488,6 +488,12 @@ However, the rotational stiffnesses are increasing with the cube's size but the
#+begin_important
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's size, we obtain 3 different configurations.
| Cube's Size | Paper with the corresponding cubic architecture |
|-------------+--------------------------------------------------|
| Small | cite:furutani04_nanom_cuttin_machin_using_stewar |
| Medium | cite:yang19_dynam_model_decoup_contr_flexib |
| Large | |
#+end_important
* Cubic size analysis
@ -738,6 +744,7 @@ We now identify the dynamics from forces applied in each strut $\bm{\tau}$ to th
Now, thanks to the Jacobian (Figure [[fig:local_to_cartesian_coordinates]]), we compute the transfer function from $\bm{\mathcal{F}}$ to $\bm{\mathcal{X}}$.
#+begin_src matlab
Gc = inv(stewart.kinematics.J)*G*inv(stewart.kinematics.J');
Gc = inv(stewart.kinematics.J)*G*stewart.kinematics.J;
Gc.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'};
Gc.OutputName = {'Dx', 'Dy', 'Dz', 'Rx', 'Ry', 'Rz'};
#+end_src
@ -827,6 +834,26 @@ The obtain dynamics $\bm{G}_{c}(s) = \bm{J}^{-T} \bm{G}(s) \bm{J}^{-1}$ is shown
#+caption: Dynamics from $\bm{\mathcal{F}}$ to $\bm{\mathcal{X}}$ ([[./figs/stewart_cubic_decoupled_dynamics_cartesian.png][png]], [[./figs/stewart_cubic_decoupled_dynamics_cartesian.pdf][pdf]])
[[file:figs/stewart_cubic_decoupled_dynamics_cartesian.png]]
It is interesting to note here that the system shown in Figure [[fig:local_to_cartesian_coordinates_bis]] also yield a decoupled system (explained in section 1.3.3 in cite:li01_simul_fault_vibrat_isolat_point).
#+begin_src latex :file local_to_cartesian_coordinates_bis.pdf
\begin{tikzpicture}
\node[block] (Jt) at (0, 0) {$\bm{J}$};
\node[block, right= of Jt] (G) {$\bm{G}$};
\node[block, right= of G] (J) {$\bm{J}^{-1}$};
\draw[->] ($(Jt.west)+(-0.8, 0)$) -- (Jt.west);
\draw[->] (Jt.east) -- (G.west) node[above left]{$\bm{\tau}$};
\draw[->] (G.east) -- (J.west) node[above left]{$\delta\bm{\mathcal{L}}$};
\draw[->] (J.east) -- ++(0.8, 0) node[above left]{$\delta\bm{\mathcal{X}}$};
\end{tikzpicture}
#+end_src
#+name: fig:local_to_cartesian_coordinates_bis
#+caption: Alternative way to decouple the system
#+RESULTS:
[[file:figs/local_to_cartesian_coordinates_bis.png]]
#+begin_important
The dynamics is well decoupled at all frequencies.