Update all html pages to include CSS and JS.

This commit is contained in:
Thomas Dehaeze 2019-08-26 11:58:44 +02:00
parent dda9ce734a
commit 105e34d5f9
13 changed files with 913 additions and 894 deletions

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-03-26 mar. 08:47 --> <!-- 2019-08-26 lun. 11:58 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Cubic configuration for the Stewart Platform</title> <title>Cubic configuration for the Stewart Platform</title>
@ -193,12 +193,12 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="css/htmlize.css"/> <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
<script src="js/jquery.min.js"></script> <script src="./js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script> <script src="./js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> <script src="./js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="js/readtheorg.js"></script> <script src="./js/readtheorg.js"></script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -269,39 +269,43 @@ for the JavaScript code in this tag.
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script> src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head> </head>
<body> <body>
<div id="content"> <div id="org-div-home-and-up">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Cubic configuration for the Stewart Platform</h1> <h1 class="title">Cubic configuration for the Stewart Platform</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org43e3f4a">1. Questions we wish to answer with this analysis</a></li> <li><a href="#org1bafc26">1. Questions we wish to answer with this analysis</a></li>
<li><a href="#org9890470">2. Configuration Analysis - Stiffness Matrix</a> <li><a href="#orga5361fc">2. Configuration Analysis - Stiffness Matrix</a>
<ul> <ul>
<li><a href="#org5d80bd3">2.1. Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</a></li> <li><a href="#orge00f8a7">2.1. Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</a></li>
<li><a href="#orga5ac347">2.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li> <li><a href="#org575d55b">2.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li>
<li><a href="#org47743ef">2.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li> <li><a href="#orgcda0ff4">2.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li>
<li><a href="#orgd0daf23">2.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li> <li><a href="#org06f7f99">2.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li>
<li><a href="#org6729b53">2.5. Conclusion</a></li> <li><a href="#org42ac83d">2.5. Conclusion</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org0969b06">3. Cubic size analysis</a></li> <li><a href="#orgb37e81b">3. Cubic size analysis</a></li>
<li><a href="#org0f56064">4. initializeCubicConfiguration</a> <li><a href="#org2b0a41e">4. initializeCubicConfiguration</a>
<ul> <ul>
<li><a href="#orge3f31b8">4.1. Function description</a></li> <li><a href="#orgfb743ea">4.1. Function description</a></li>
<li><a href="#org2580fde">4.2. Optional Parameters</a></li> <li><a href="#orgcc92353">4.2. Optional Parameters</a></li>
<li><a href="#org230a253">4.3. Cube Creation</a></li> <li><a href="#org384ec97">4.3. Cube Creation</a></li>
<li><a href="#orgd1a04ef">4.4. Vectors of each leg</a></li> <li><a href="#orgefa2328">4.4. Vectors of each leg</a></li>
<li><a href="#orgfec0778">4.5. Verification of Height of the Stewart Platform</a></li> <li><a href="#orgf6960ff">4.5. Verification of Height of the Stewart Platform</a></li>
<li><a href="#orgc3cd1d1">4.6. Determinate the location of the joints</a></li> <li><a href="#orgd7e65db">4.6. Determinate the location of the joints</a></li>
<li><a href="#org9063896">4.7. Returns Stewart Structure</a></li> <li><a href="#org38f602f">4.7. Returns Stewart Structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org5807740">5. Tests</a> <li><a href="#org243b392">5. Tests</a>
<ul> <ul>
<li><a href="#org8809c47">5.1. First attempt to parametrisation</a></li> <li><a href="#org86fb4aa">5.1. First attempt to parametrisation</a></li>
<li><a href="#org71c64bc">5.2. Second attempt</a></li> <li><a href="#orgcc2eaf4">5.2. Second attempt</a></li>
<li><a href="#orgc132128">5.3. Generate the Stewart platform for a Cubic configuration</a></li> <li><a href="#org7824b39">5.3. Generate the Stewart platform for a Cubic configuration</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -323,11 +327,11 @@ The specificity of the Cubic configuration is that each actuator is orthogonal w
</p> </p>
<p> <p>
To generate and study the Cubic configuration, <code>initializeCubicConfiguration</code> is used (description in section <a href="#org7e73a4b">4</a>). To generate and study the Cubic configuration, <code>initializeCubicConfiguration</code> is used (description in section <a href="#org7faef27">4</a>).
</p> </p>
<div id="outline-container-org43e3f4a" class="outline-2"> <div id="outline-container-org1bafc26" class="outline-2">
<h2 id="org43e3f4a"><span class="section-number-2">1</span> Questions we wish to answer with this analysis</h2> <h2 id="org1bafc26"><span class="section-number-2">1</span> Questions we wish to answer with this analysis</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
The goal is to study the benefits of using a cubic configuration: The goal is to study the benefits of using a cubic configuration:
@ -340,45 +344,45 @@ The goal is to study the benefits of using a cubic configuration:
</div> </div>
</div> </div>
<div id="outline-container-org9890470" class="outline-2"> <div id="outline-container-orga5361fc" class="outline-2">
<h2 id="org9890470"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2> <h2 id="orga5361fc"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
</div> </div>
<div id="outline-container-org5d80bd3" class="outline-3"> <div id="outline-container-orge00f8a7" class="outline-3">
<h3 id="org5d80bd3"><span class="section-number-3">2.1</span> Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</h3> <h3 id="orge00f8a7"><span class="section-number-3">2.1</span> Cubic Stewart platform centered with the cube center - Jacobian estimated at the cube center</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<p> <p>
We create a cubic Stewart platform (figure <a href="#org813c22d">1</a>) in such a way that the center of the cube (black dot) is located at the center of the Stewart platform (blue dot). We create a cubic Stewart platform (figure <a href="#orgb095247">1</a>) in such a way that the center of the cube (black dot) is located at the center of the Stewart platform (blue dot).
The Jacobian matrix is estimated at the location of the center of the cube. The Jacobian matrix is estimated at the location of the center of the cube.
</p> </p>
<div id="org813c22d" class="figure"> <div id="orgb095247" class="figure">
<p><img src="./figs/3d-cubic-stewart-aligned.png" alt="3d-cubic-stewart-aligned.png" /> <p><img src="./figs/3d-cubic-stewart-aligned.png" alt="3d-cubic-stewart-aligned.png" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Centered cubic configuration</p> <p><span class="figure-number">Figure 1: </span>Centered cubic configuration</p>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'H_tot'</span>, <span style="color: #BFEBBF;">100</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Total height of the Hexapod [mm]</span> <span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
<span style="color: #CC9393;">'L'</span>, <span style="color: #BFEBBF;">200</span><span style="color: #7CB8BB;">/</span>sqrt<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Size of the Cube [mm]</span> <span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
<span style="color: #CC9393;">'H'</span>, <span style="color: #BFEBBF;">60</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between base joints and platform joints [mm]</span> <span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
<span style="color: #CC9393;">'H0'</span>, <span style="color: #BFEBBF;">200</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">60</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between the corner of the cube and the plane containing the base joints [mm]</span> <span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>; stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'Jd_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">50</span><span style="color: #BFEBBF;">]</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span> <span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
<span style="color: #CC9393;">'Jf_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">50</span><span style="color: #BFEBBF;">]</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span> <span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>; stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
save<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'./mat/stewart.mat', 'stewart'</span><span style="color: #DCDCCC;">)</span>; save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/stewart.mat', 'stewart'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">K = stewart.Jd'<span style="color: #7CB8BB;">*</span>stewart.Jd; <pre class="src src-matlab">K = stewart.Jf'<span class="org-type">*</span>stewart.Jf;
</pre> </pre>
</div> </div>
@ -457,32 +461,32 @@ save<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'./mat/s
</div> </div>
</div> </div>
<div id="outline-container-orga5ac347" class="outline-3"> <div id="outline-container-org575d55b" class="outline-3">
<h3 id="orga5ac347"><span class="section-number-3">2.2</span> Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</h3> <h3 id="org575d55b"><span class="section-number-3">2.2</span> Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<p> <p>
We create a cubic Stewart platform with center of the cube located at the center of the Stewart platform (figure <a href="#org813c22d">1</a>). We create a cubic Stewart platform with center of the cube located at the center of the Stewart platform (figure <a href="#orgb095247">1</a>).
The Jacobian matrix is not estimated at the location of the center of the cube. The Jacobian matrix is not estimated at the location of the center of the cube.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'H_tot'</span>, <span style="color: #BFEBBF;">100</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Total height of the Hexapod [mm]</span> <span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
<span style="color: #CC9393;">'L'</span>, <span style="color: #BFEBBF;">200</span><span style="color: #7CB8BB;">/</span>sqrt<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Size of the Cube [mm]</span> <span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
<span style="color: #CC9393;">'H'</span>, <span style="color: #BFEBBF;">60</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between base joints and platform joints [mm]</span> <span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
<span style="color: #CC9393;">'H0'</span>, <span style="color: #BFEBBF;">200</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">60</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between the corner of the cube and the plane containing the base joints [mm]</span> <span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>; stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'Jd_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span><span style="color: #BFEBBF;">]</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span> <span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
<span style="color: #CC9393;">'Jf_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span><span style="color: #BFEBBF;">]</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span> <span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>; stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">K = stewart.Jd'<span style="color: #7CB8BB;">*</span>stewart.Jd; <pre class="src src-matlab">K = stewart.Jf'<span class="org-type">*</span>stewart.Jf;
</pre> </pre>
</div> </div>
@ -561,16 +565,16 @@ stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stew
</div> </div>
</div> </div>
<div id="outline-container-org47743ef" class="outline-3"> <div id="outline-container-orgcda0ff4" class="outline-3">
<h3 id="org47743ef"><span class="section-number-3">2.3</span> Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</h3> <h3 id="orgcda0ff4"><span class="section-number-3">2.3</span> Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<p> <p>
Here, the "center" of the Stewart platform is not at the cube center (figure <a href="#org8a2bd4c">2</a>). Here, the "center" of the Stewart platform is not at the cube center (figure <a href="#org741ffe8">2</a>).
The Jacobian is estimated at the cube center. The Jacobian is estimated at the cube center.
</p> </p>
<div id="org8a2bd4c" class="figure"> <div id="org741ffe8" class="figure">
<p><img src="./figs/3d-cubic-stewart-misaligned.png" alt="3d-cubic-stewart-misaligned.png" /> <p><img src="./figs/3d-cubic-stewart-misaligned.png" alt="3d-cubic-stewart-misaligned.png" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Not centered cubic configuration</p> <p><span class="figure-number">Figure 2: </span>Not centered cubic configuration</p>
@ -584,23 +588,23 @@ The center of the cube from the top platform is at \(z = 110 - 175 = -65\).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'H_tot'</span>, <span style="color: #BFEBBF;">100</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Total height of the Hexapod [mm]</span> <span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
<span style="color: #CC9393;">'L'</span>, <span style="color: #BFEBBF;">220</span><span style="color: #7CB8BB;">/</span>sqrt<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Size of the Cube [mm]</span> <span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">220</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
<span style="color: #CC9393;">'H'</span>, <span style="color: #BFEBBF;">60</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between base joints and platform joints [mm]</span> <span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
<span style="color: #CC9393;">'H0'</span>, <span style="color: #BFEBBF;">75</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between the corner of the cube and the plane containing the base joints [mm]</span> <span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>; stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'Jd_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">65</span><span style="color: #BFEBBF;">]</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span> <span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">65</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
<span style="color: #CC9393;">'Jf_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">65</span><span style="color: #BFEBBF;">]</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span> <span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">65</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>; stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">K = stewart.Jd'<span style="color: #7CB8BB;">*</span>stewart.Jd; <pre class="src src-matlab">K = stewart.Jf'<span class="org-type">*</span>stewart.Jf;
</pre> </pre>
</div> </div>
@ -683,8 +687,8 @@ We obtain \(k_x = k_y = k_z\) and \(k_{\theta_x} = k_{\theta_y}\), but the Stiff
</div> </div>
</div> </div>
<div id="outline-container-orgd0daf23" class="outline-3"> <div id="outline-container-org06f7f99" class="outline-3">
<h3 id="orgd0daf23"><span class="section-number-3">2.4</span> Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</h3> <h3 id="org06f7f99"><span class="section-number-3">2.4</span> Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</h3>
<div class="outline-text-3" id="text-2-4"> <div class="outline-text-3" id="text-2-4">
<p> <p>
Here, the "center" of the Stewart platform is not at the cube center. Here, the "center" of the Stewart platform is not at the cube center.
@ -699,23 +703,23 @@ The center of the cube from the top platform is at \(z = 110 - 175 = -65\).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'H_tot'</span>, <span style="color: #BFEBBF;">100</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Total height of the Hexapod [mm]</span> <span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
<span style="color: #CC9393;">'L'</span>, <span style="color: #BFEBBF;">220</span><span style="color: #7CB8BB;">/</span>sqrt<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Size of the Cube [mm]</span> <span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">220</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
<span style="color: #CC9393;">'H'</span>, <span style="color: #BFEBBF;">60</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between base joints and platform joints [mm]</span> <span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
<span style="color: #CC9393;">'H0'</span>, <span style="color: #BFEBBF;">75</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between the corner of the cube and the plane containing the base joints [mm]</span> <span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>; stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'Jd_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">60</span><span style="color: #BFEBBF;">]</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span> <span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
<span style="color: #CC9393;">'Jf_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">60</span><span style="color: #BFEBBF;">]</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span> <span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>; stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">K = stewart.Jd'<span style="color: #7CB8BB;">*</span>stewart.Jd; <pre class="src src-matlab">K = stewart.Jf'<span class="org-type">*</span>stewart.Jf;
</pre> </pre>
</div> </div>
@ -798,8 +802,8 @@ We obtain \(k_x = k_y = k_z\) and \(k_{\theta_x} = k_{\theta_y}\), but the Stiff
</div> </div>
</div> </div>
<div id="outline-container-org6729b53" class="outline-3"> <div id="outline-container-org42ac83d" class="outline-3">
<h3 id="org6729b53"><span class="section-number-3">2.5</span> Conclusion</h3> <h3 id="org42ac83d"><span class="section-number-3">2.5</span> Conclusion</h3>
<div class="outline-text-3" id="text-2-5"> <div class="outline-text-3" id="text-2-5">
<div class="important"> <div class="important">
<ul class="org-ul"> <ul class="org-ul">
@ -812,8 +816,8 @@ We obtain \(k_x = k_y = k_z\) and \(k_{\theta_x} = k_{\theta_y}\), but the Stiff
</div> </div>
</div> </div>
<div id="outline-container-org0969b06" class="outline-2"> <div id="outline-container-orgb37e81b" class="outline-2">
<h2 id="org0969b06"><span class="section-number-2">3</span> Cubic size analysis</h2> <h2 id="orgb37e81b"><span class="section-number-2">3</span> Cubic size analysis</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<p> <p>
We here study the effect of the size of the cube used for the Stewart configuration. We here study the effect of the size of the cube used for the Stewart configuration.
@ -828,32 +832,32 @@ We only vary the size of the cube.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">H_cubes = <span style="color: #BFEBBF;">250</span><span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">20</span><span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">350</span>; <pre class="src src-matlab">H_cubes = <span class="org-highlight-numbers-number">250</span><span class="org-type">:</span><span class="org-highlight-numbers-number">20</span><span class="org-type">:</span><span class="org-highlight-numbers-number">350</span>;
stewarts = <span style="color: #DCDCCC;">{</span>zeros<span style="color: #BFEBBF;">(</span>length<span style="color: #D0BF8F;">(</span>H_cubes<span style="color: #D0BF8F;">)</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">}</span>; stewarts = <span class="org-rainbow-delimiters-depth-1">{</span>zeros<span class="org-rainbow-delimiters-depth-2">(</span>length<span class="org-rainbow-delimiters-depth-3">(</span>H_cubes<span class="org-rainbow-delimiters-depth-3">)</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">}</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:length</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">H_cubes</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:length</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">H_cubes</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
H_cube = H_cubes<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span>; H_cube = H_cubes<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span>;
H_tot = <span style="color: #BFEBBF;">100</span>; H_tot = <span class="org-highlight-numbers-number">100</span>;
H = <span style="color: #BFEBBF;">80</span>; H = <span class="org-highlight-numbers-number">80</span>;
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'H_tot'</span>, H_tot, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Total height of the Hexapod [mm]</span> <span class="org-string">'H_tot'</span>, H_tot, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
<span style="color: #CC9393;">'L'</span>, H_cube<span style="color: #7CB8BB;">/</span>sqrt<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Size of the Cube [mm]</span> <span class="org-string">'L'</span>, H_cube<span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
<span style="color: #CC9393;">'H'</span>, H, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between base joints and platform joints [mm]</span> <span class="org-string">'H'</span>, H, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
<span style="color: #CC9393;">'H0'</span>, H_cube<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">-</span>H<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between the corner of the cube and the plane containing the base joints [mm]</span> <span class="org-string">'H0'</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>H<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>; stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'Jd_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, H_cube<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">-</span>opts.H0<span style="color: #7CB8BB;">-</span>opts.H_tot<span style="color: #BFEBBF;">]</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span> <span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>opts.H0<span class="org-type">-</span>opts.H_tot<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
<span style="color: #CC9393;">'Jf_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, H_cube<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">-</span>opts.H0<span style="color: #7CB8BB;">-</span>opts.H_tot<span style="color: #BFEBBF;">]</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span> <span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, H_cube<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span>opts.H0<span class="org-type">-</span>opts.H_tot<span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>; stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
stewarts<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span> = <span style="color: #DCDCCC;">{</span>stewart<span style="color: #DCDCCC;">}</span>; stewarts<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> = <span class="org-rainbow-delimiters-depth-1">{</span>stewart<span class="org-rainbow-delimiters-depth-1">}</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -862,10 +866,10 @@ stewarts = <span style="color: #DCDCCC;">{</span>zeros<span style="color: #BFEBB
The Stiffness matrix is computed for all generated Stewart platforms. The Stiffness matrix is computed for all generated Stewart platforms.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ks = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">6</span>, length<span style="color: #BFEBBF;">(</span>H_cube<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Ks = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">6</span>, length<span class="org-rainbow-delimiters-depth-2">(</span>H_cube<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:length</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">H_cubes</span><span style="color: #DCDCCC;">)</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:length</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">H_cubes</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
Ks<span style="color: #DCDCCC;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span> = stewarts<span style="color: #DCDCCC;">{</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">}</span>.Jd'<span style="color: #7CB8BB;">*</span>stewarts<span style="color: #DCDCCC;">{</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">}</span>.Jd; Ks<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-type">:</span>, <span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> = stewarts<span class="org-rainbow-delimiters-depth-1">{</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">}</span>.Jd'<span class="org-type">*</span>stewarts<span class="org-rainbow-delimiters-depth-1">{</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">}</span>.Jd;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -877,18 +881,18 @@ The only elements of \(K\) that vary are \(k_{\theta_x} = k_{\theta_y}\) and \(k
Finally, we plot \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) Finally, we plot \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\)
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
plot<span style="color: #DCDCCC;">(</span>H_cubes, squeeze<span style="color: #BFEBBF;">(</span>Ks<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">4</span>, <span style="color: #7CB8BB;">:</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span>, <span style="color: #CC9393;">'DisplayName', '</span>$k_<span style="color: #BFEBBF;">{</span><span style="color: #7CB8BB;">\</span>theta_x<span style="color: #BFEBBF;">}</span>$'<span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>H_cubes, squeeze<span class="org-rainbow-delimiters-depth-2">(</span>Ks<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">4</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', '</span>$k_<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-type">\</span>theta_x<span class="org-rainbow-delimiters-depth-2">}</span>$'<span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span style="color: #DCDCCC;">(</span>H_cubes, squeeze<span style="color: #BFEBBF;">(</span>Ks<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">6</span>, <span style="color: #7CB8BB;">:</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span>, <span style="color: #CC9393;">'DisplayName', '</span>$k_<span style="color: #BFEBBF;">{</span><span style="color: #7CB8BB;">\</span>theta_z<span style="color: #BFEBBF;">}</span>$'<span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>H_cubes, squeeze<span class="org-rainbow-delimiters-depth-2">(</span>Ks<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">6</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', '</span>$k_<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-type">\</span>theta_z<span class="org-rainbow-delimiters-depth-2">}</span>$'<span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
legend<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'location', 'northwest'</span><span style="color: #DCDCCC;">)</span>; legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'location', 'northwest'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Cube Size </span><span style="color: #BFEBBF;">[</span><span style="color: #CC9393;">mm</span><span style="color: #BFEBBF;">]</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span><span style="color: #CC9393;">; ylabel</span><span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Rotational stiffnes </span><span style="color: #BFEBBF;">[</span><span style="color: #CC9393;">normalized</span><span style="color: #BFEBBF;">]</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span>; xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Cube Size </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">mm</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Rotational stiffnes </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">normalized</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div id="orgad7fc21" class="figure"> <div id="org5647f41" class="figure">
<p><img src="figs/stiffness_cube_size.png" alt="stiffness_cube_size.png" /> <p><img src="figs/stiffness_cube_size.png" alt="stiffness_cube_size.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </span>\(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) function of the size of the cube</p> <p><span class="figure-number">Figure 3: </span>\(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) function of the size of the cube</p>
@ -909,37 +913,37 @@ In that case, the legs will the further separated. Size of the cube is then limi
</div> </div>
</div> </div>
<div id="outline-container-org0f56064" class="outline-2"> <div id="outline-container-org2b0a41e" class="outline-2">
<h2 id="org0f56064"><span class="section-number-2">4</span> initializeCubicConfiguration</h2> <h2 id="org2b0a41e"><span class="section-number-2">4</span> initializeCubicConfiguration</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<p> <p>
<a id="org7e73a4b"></a> <a id="org7faef27"></a>
</p> </p>
</div> </div>
<div id="outline-container-orge3f31b8" class="outline-3"> <div id="outline-container-orgfb743ea" class="outline-3">
<h3 id="orge3f31b8"><span class="section-number-3">4.1</span> Function description</h3> <h3 id="orgfb743ea"><span class="section-number-3">4.1</span> Function description</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[</span><span style="color: #DFAF8F;">stewart</span><span style="color: #DCDCCC;">]</span> = <span style="color: #93E0E3;">initializeCubicConfiguration</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">opts_param</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">stewart</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">initializeCubicConfiguration</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">opts_param</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org2580fde" class="outline-3"> <div id="outline-container-orgcc92353" class="outline-3">
<h3 id="org2580fde"><span class="section-number-3">4.2</span> Optional Parameters</h3> <h3 id="orgcc92353"><span class="section-number-3">4.2</span> Optional Parameters</h3>
<div class="outline-text-3" id="text-4-2"> <div class="outline-text-3" id="text-4-2">
<p> <p>
Default values for opts. Default values for opts.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'H_tot'</span>, <span style="color: #BFEBBF;">90</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Total height of the Hexapod [mm]</span> <span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
<span style="color: #CC9393;">'L'</span>, <span style="color: #BFEBBF;">110</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Size of the Cube [mm]</span> <span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">110</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
<span style="color: #CC9393;">'H'</span>, <span style="color: #BFEBBF;">40</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between base joints and platform joints [mm]</span> <span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">40</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
<span style="color: #CC9393;">'H0'</span>, <span style="color: #BFEBBF;">75</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between the corner of the cube and the plane containing the base joints [mm]</span> <span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">75</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
@ -947,29 +951,29 @@ Default values for opts.
Populate opts with input parameters Populate opts with input parameters
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">if</span> exist<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'opts_param','var'</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">if</span> exist<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'opts_param','var'</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">opt</span> = <span style="color: #BFEBBF;">fieldnames</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">opts_param</span><span style="color: #DCDCCC;">)</span><span style="color: #BFEBBF;">'</span> <span class="org-keyword">for</span> <span class="org-variable-name">opt</span> = <span class="org-constant">fieldnames</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">opts_param</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-constant">'</span>
opts.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span> = opts_param.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span>; opts.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span> = opts_param.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org230a253" class="outline-3"> <div id="outline-container-org384ec97" class="outline-3">
<h3 id="org230a253"><span class="section-number-3">4.3</span> Cube Creation</h3> <h3 id="org384ec97"><span class="section-number-3">4.3</span> Cube Creation</h3>
<div class="outline-text-3" id="text-4-3"> <div class="outline-text-3" id="text-4-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">points = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <pre class="src src-matlab">points = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">]</span>; <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
points = opts.L<span style="color: #7CB8BB;">*</span>points; points = opts.L<span class="org-type">*</span>points;
</pre> </pre>
</div> </div>
@ -977,16 +981,16 @@ points = opts.L<span style="color: #7CB8BB;">*</span>points;
We create the rotation matrix to rotate the cube We create the rotation matrix to rotate the cube
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">sx = cross<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #BFEBBF;">]</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">sx = cross<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sx = sx<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sx<span style="color: #DCDCCC;">)</span>; sx = sx<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sx<span class="org-rainbow-delimiters-depth-1">)</span>;
sy = <span style="color: #7CB8BB;">-</span>cross<span style="color: #DCDCCC;">(</span>sx, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">]</span><span style="color: #DCDCCC;">)</span>; sy = <span class="org-type">-</span>cross<span class="org-rainbow-delimiters-depth-1">(</span>sx, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sy = sy<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sy<span style="color: #DCDCCC;">)</span>; sy = sy<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sy<span class="org-rainbow-delimiters-depth-1">)</span>;
sz = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">]</span>; sz = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
sz = sz<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sz<span style="color: #DCDCCC;">)</span>; sz = sz<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sz<span class="org-rainbow-delimiters-depth-1">)</span>;
R = <span style="color: #DCDCCC;">[</span>sx', sy', sz'<span style="color: #DCDCCC;">]</span>'; R = <span class="org-rainbow-delimiters-depth-1">[</span>sx', sy', sz'<span class="org-rainbow-delimiters-depth-1">]</span>';
</pre> </pre>
</div> </div>
@ -994,25 +998,25 @@ R = <span style="color: #DCDCCC;">[</span>sx', sy', sz'<span style="color: #DCDC
We use to rotation matrix to rotate the cube We use to rotation matrix to rotate the cube
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">cube = zeros<span style="color: #DCDCCC;">(</span>size<span style="color: #BFEBBF;">(</span>points<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">cube = zeros<span class="org-rainbow-delimiters-depth-1">(</span>size<span class="org-rainbow-delimiters-depth-2">(</span>points<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:size</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">points, </span><span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:size</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">points, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = R <span style="color: #7CB8BB;">*</span> points<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>'; cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = R <span class="org-type">*</span> points<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>';
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgd1a04ef" class="outline-3"> <div id="outline-container-orgefa2328" class="outline-3">
<h3 id="orgd1a04ef"><span class="section-number-3">4.4</span> Vectors of each leg</h3> <h3 id="orgefa2328"><span class="section-number-3">4.4</span> Vectors of each leg</h3>
<div class="outline-text-3" id="text-4-4"> <div class="outline-text-3" id="text-4-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">leg_indices = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">4</span>; <span style="text-decoration: underline;">...</span> <pre class="src src-matlab">leg_indices = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">4</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">6</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">6</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">7</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">7</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">7</span><span style="color: #DCDCCC;">]</span>; <span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">]</span>;
</pre> </pre>
</div> </div>
@ -1020,51 +1024,51 @@ We use to rotation matrix to rotate the cube
Vectors are: Vectors are:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">legs = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">legs = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
legs_start = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; legs_start = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
legs<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = cube<span style="color: #DCDCCC;">(</span>leg_indices<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">-</span> cube<span style="color: #DCDCCC;">(</span>leg_indices<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
legs_start<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = cube<span style="color: #DCDCCC;">(</span>leg_indices<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgfec0778" class="outline-3"> <div id="outline-container-orgf6960ff" class="outline-3">
<h3 id="orgfec0778"><span class="section-number-3">4.5</span> Verification of Height of the Stewart Platform</h3> <h3 id="orgf6960ff"><span class="section-number-3">4.5</span> Verification of Height of the Stewart Platform</h3>
<div class="outline-text-3" id="text-4-5"> <div class="outline-text-3" id="text-4-5">
<p> <p>
If the Stewart platform is not contained in the cube, throw an error. If the Stewart platform is not contained in the cube, throw an error.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Hmax = cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">-</span> cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Hmax = cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">if</span> opts.H0 <span style="color: #7CB8BB;">&lt;</span> cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span> <span class="org-keyword">if</span> opts.H0 <span class="org-type">&lt;</span> cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>
error<span style="color: #DCDCCC;">(</span>sprintf<span style="color: #BFEBBF;">(</span>'H0 is not high enought. Minimum H0 = %.<span style="color: #BFEBBF;">1f</span>', cube(<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">3</span>))); error<span class="org-rainbow-delimiters-depth-1">(</span>sprintf<span class="org-rainbow-delimiters-depth-2">(</span>'H0 is not high enought. Minimum H0 = %.<span class="org-highlight-numbers-number">1f</span>', cube(<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span>)));
<span style="color: #F0DFAF; font-weight: bold;">else</span> <span style="color: #F0DFAF; font-weight: bold;">if</span> opts.H0 <span style="color: #7CB8BB;">+</span> opts.H <span style="color: #7CB8BB;">&gt;</span> cube<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">3</span><span style="color: #D0BF8F;">)</span> <span class="org-keyword">else</span> <span class="org-keyword">if</span> opts.H0 <span class="org-type">+</span> opts.H <span class="org-type">&gt;</span> cube<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-3">)</span>
error<span style="color: #D0BF8F;">(</span>sprintf<span style="color: #93E0E3;">(</span>'H0<span style="color: #7CB8BB;">+</span>H is too high. Maximum H0<span style="color: #7CB8BB;">+</span>H = %.<span style="color: #BFEBBF;">1f</span>', cube(<span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">3</span>))); error<span class="org-rainbow-delimiters-depth-3">(</span>sprintf<span class="org-rainbow-delimiters-depth-4">(</span>'H0<span class="org-type">+</span>H is too high. Maximum H0<span class="org-type">+</span>H = %.<span class="org-highlight-numbers-number">1f</span>', cube(<span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">3</span>)));
error<span style="color: #9FC59F;">(</span><span style="color: #CC9393;">'H0+H is too high'</span><span style="color: #9FC59F;">)</span>; error<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">'H0+H is too high'</span><span class="org-rainbow-delimiters-depth-5">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgc3cd1d1" class="outline-3"> <div id="outline-container-orgd7e65db" class="outline-3">
<h3 id="orgc3cd1d1"><span class="section-number-3">4.6</span> Determinate the location of the joints</h3> <h3 id="orgd7e65db"><span class="section-number-3">4.6</span> Determinate the location of the joints</h3>
<div class="outline-text-3" id="text-4-6"> <div class="outline-text-3" id="text-4-6">
<p> <p>
We now determine the location of the joints on the fixed platform w.r.t the fixed frame \(\{A\}\). We now determine the location of the joints on the fixed platform w.r.t the fixed frame \(\{A\}\).
\(\{A\}\) is fixed to the bottom of the base. \(\{A\}\) is fixed to the bottom of the base.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Aa = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Aa = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
t = <span style="color: #DCDCCC;">(</span>opts.H0<span style="color: #7CB8BB;">-</span>legs_start<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">/</span><span style="color: #DCDCCC;">(</span>legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; t = <span class="org-rainbow-delimiters-depth-1">(</span>opts.H0<span class="org-type">-</span>legs_start<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Aa<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = legs_start<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">+</span> t<span style="color: #7CB8BB;">*</span>legs<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; Aa<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> t<span class="org-type">*</span>legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -1072,11 +1076,11 @@ We now determine the location of the joints on the fixed platform w.r.t the fixe
And the location of the joints on the mobile platform with respect to \(\{A\}\). And the location of the joints on the mobile platform with respect to \(\{A\}\).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ab = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Ab = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
t = <span style="color: #DCDCCC;">(</span>opts.H0<span style="color: #7CB8BB;">+</span>opts.H<span style="color: #7CB8BB;">-</span>legs_start<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">/</span><span style="color: #DCDCCC;">(</span>legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; t = <span class="org-rainbow-delimiters-depth-1">(</span>opts.H0<span class="org-type">+</span>opts.H<span class="org-type">-</span>legs_start<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Ab<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = legs_start<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">+</span> t<span style="color: #7CB8BB;">*</span>legs<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; Ab<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> t<span class="org-type">*</span>legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -1084,45 +1088,45 @@ And the location of the joints on the mobile platform with respect to \(\{A\}\).
And the location of the joints on the mobile platform with respect to \(\{B\}\). And the location of the joints on the mobile platform with respect to \(\{B\}\).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Bb = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Bb = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Bb = Ab <span style="color: #7CB8BB;">-</span> <span style="color: #DCDCCC;">(</span>opts.H0 <span style="color: #7CB8BB;">+</span> opts.H_tot<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span> <span style="color: #7CB8BB;">+</span> opts.H<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">]</span>; Bb = Ab <span class="org-type">-</span> <span class="org-rainbow-delimiters-depth-1">(</span>opts.H0 <span class="org-type">+</span> opts.H_tot<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> opts.H<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">h = opts.H0 <span style="color: #7CB8BB;">+</span> opts.H<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span> <span style="color: #7CB8BB;">-</span> opts.H_tot<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span>; <pre class="src src-matlab">h = opts.H0 <span class="org-type">+</span> opts.H<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">-</span> opts.H_tot<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span>;
Aa = Aa <span style="color: #7CB8BB;">-</span> h<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">]</span>; Aa = Aa <span class="org-type">-</span> h<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
Ab = Ab <span style="color: #7CB8BB;">-</span> h<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">]</span>; Ab = Ab <span class="org-type">-</span> h<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org9063896" class="outline-3"> <div id="outline-container-org38f602f" class="outline-3">
<h3 id="org9063896"><span class="section-number-3">4.7</span> Returns Stewart Structure</h3> <h3 id="org38f602f"><span class="section-number-3">4.7</span> Returns Stewart Structure</h3>
<div class="outline-text-3" id="text-4-7"> <div class="outline-text-3" id="text-4-7">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"> stewart = struct<span style="color: #DCDCCC;">()</span>; <pre class="src src-matlab"> stewart = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
stewart.Aa = Aa; stewart.Aa = Aa;
stewart.Ab = Ab; stewart.Ab = Ab;
stewart.Bb = Bb; stewart.Bb = Bb;
stewart.H_tot = opts.H_tot; stewart.H_tot = opts.H_tot;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org5807740" class="outline-2"> <div id="outline-container-org243b392" class="outline-2">
<h2 id="org5807740"><span class="section-number-2">5</span> Tests</h2> <h2 id="org243b392"><span class="section-number-2">5</span> Tests</h2>
<div class="outline-text-2" id="text-5"> <div class="outline-text-2" id="text-5">
</div> </div>
<div id="outline-container-org8809c47" class="outline-3"> <div id="outline-container-org86fb4aa" class="outline-3">
<h3 id="org8809c47"><span class="section-number-3">5.1</span> First attempt to parametrisation</h3> <h3 id="org86fb4aa"><span class="section-number-3">5.1</span> First attempt to parametrisation</h3>
<div class="outline-text-3" id="text-5-1"> <div class="outline-text-3" id="text-5-1">
<div id="org520c5d6" class="figure"> <div id="org10fe09c" class="figure">
<p><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" /> <p><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Schematic of the bottom plates with all the parameters</p> <p><span class="figure-number">Figure 4: </span>Schematic of the bottom plates with all the parameters</p>
@ -1157,8 +1161,8 @@ Lets express \(a_i\), \(b_i\) and \(a_j\):
</div> </div>
</div> </div>
<div id="outline-container-org71c64bc" class="outline-3"> <div id="outline-container-orgcc2eaf4" class="outline-3">
<h3 id="org71c64bc"><span class="section-number-3">5.2</span> Second attempt</h3> <h3 id="orgcc2eaf4"><span class="section-number-3">5.2</span> Second attempt</h3>
<div class="outline-text-3" id="text-5-2"> <div class="outline-text-3" id="text-5-2">
<p> <p>
We start with the point of a cube in space: We start with the point of a cube in space:
@ -1177,50 +1181,50 @@ Then we have the direction of all the vectors expressed in the frame of the hexa
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">points = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <pre class="src src-matlab">points = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">]</span>; <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
plot3<span style="color: #DCDCCC;">(</span>points<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, points<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span>, points<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="color: #CC9393;">'ko'</span><span style="color: #DCDCCC;">)</span> plot3<span class="org-rainbow-delimiters-depth-1">(</span>points<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, points<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, points<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'ko'</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">sx = cross<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #BFEBBF;">]</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">sx = cross<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sx = sx<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sx<span style="color: #DCDCCC;">)</span>; sx = sx<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sx<span class="org-rainbow-delimiters-depth-1">)</span>;
sy = <span style="color: #7CB8BB;">-</span>cross<span style="color: #DCDCCC;">(</span>sx, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">]</span><span style="color: #DCDCCC;">)</span>; sy = <span class="org-type">-</span>cross<span class="org-rainbow-delimiters-depth-1">(</span>sx, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sy = sy<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sy<span style="color: #DCDCCC;">)</span>; sy = sy<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sy<span class="org-rainbow-delimiters-depth-1">)</span>;
sz = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">]</span>; sz = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
sz = sz<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sz<span style="color: #DCDCCC;">)</span>; sz = sz<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sz<span class="org-rainbow-delimiters-depth-1">)</span>;
R = <span style="color: #DCDCCC;">[</span>sx', sy', sz'<span style="color: #DCDCCC;">]</span>'; R = <span class="org-rainbow-delimiters-depth-1">[</span>sx', sy', sz'<span class="org-rainbow-delimiters-depth-1">]</span>';
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">cube = zeros<span style="color: #DCDCCC;">(</span>size<span style="color: #BFEBBF;">(</span>points<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">cube = zeros<span class="org-rainbow-delimiters-depth-1">(</span>size<span class="org-rainbow-delimiters-depth-2">(</span>points<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:size</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">points, </span><span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:size</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">points, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = R <span style="color: #7CB8BB;">*</span> points<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>'; cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = R <span class="org-type">*</span> points<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>';
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
plot3<span style="color: #DCDCCC;">(</span>points<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, points<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span>, points<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="color: #CC9393;">'ko'</span><span style="color: #DCDCCC;">)</span>; plot3<span class="org-rainbow-delimiters-depth-1">(</span>points<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, points<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, points<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'ko'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot3<span style="color: #DCDCCC;">(</span>cube<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, cube<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span>, cube<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>,<span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="color: #CC9393;">'ro'</span><span style="color: #DCDCCC;">)</span>; plot3<span class="org-rainbow-delimiters-depth-1">(</span>cube<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, cube<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, cube<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'ro'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
</pre> </pre>
</div> </div>
@ -1229,18 +1233,18 @@ hold off;
Now we plot the legs of the hexapod. Now we plot the legs of the hexapod.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">leg_indices = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">4</span>; <span style="text-decoration: underline;">...</span> <pre class="src src-matlab">leg_indices = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">4</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">6</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">6</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">7</span>; <span style="text-decoration: underline;">...</span> <span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">7</span>; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">7</span><span style="color: #DCDCCC;">]</span> <span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">]</span>
<span style="color: #7CB8BB;">figure</span>; <span class="org-type">figure</span>;
hold on; hold on;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
plot3<span style="color: #DCDCCC;">(</span>cube<span style="color: #BFEBBF;">(</span>leg_indices<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #D0BF8F;">)</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, cube<span style="color: #BFEBBF;">(</span>leg_indices<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #D0BF8F;">)</span>,<span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span>, cube<span style="color: #BFEBBF;">(</span>leg_indices<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #D0BF8F;">)</span>,<span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="color: #CC9393;">'-'</span><span style="color: #DCDCCC;">)</span>; plot3<span class="org-rainbow-delimiters-depth-1">(</span>cube<span class="org-rainbow-delimiters-depth-2">(</span>leg_indices<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, cube<span class="org-rainbow-delimiters-depth-2">(</span>leg_indices<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, cube<span class="org-rainbow-delimiters-depth-2">(</span>leg_indices<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'-'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
hold off; hold off;
</pre> </pre>
</div> </div>
@ -1249,13 +1253,13 @@ hold off;
Vectors are: Vectors are:
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">legs = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">legs = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
legs_start = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; legs_start = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
legs<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = cube<span style="color: #DCDCCC;">(</span>leg_indices<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">-</span> cube<span style="color: #DCDCCC;">(</span>leg_indices<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
legs_start<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = cube<span style="color: #DCDCCC;">(</span>leg_indices<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = cube<span class="org-rainbow-delimiters-depth-1">(</span>leg_indices<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -1271,7 +1275,7 @@ We here want to see if the position of the "slice" changes something.
Let's first estimate the maximum height of the Stewart platform. Let's first estimate the maximum height of the Stewart platform.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Hmax = cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">-</span> cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Hmax = cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
@ -1279,26 +1283,26 @@ Let's first estimate the maximum height of the Stewart platform.
Let's then estimate the middle position of the platform Let's then estimate the middle position of the platform
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Hmid = cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">8</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span>; <pre class="src src-matlab">Hmid = cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">8</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgc132128" class="outline-3"> <div id="outline-container-org7824b39" class="outline-3">
<h3 id="orgc132128"><span class="section-number-3">5.3</span> Generate the Stewart platform for a Cubic configuration</h3> <h3 id="org7824b39"><span class="section-number-3">5.3</span> Generate the Stewart platform for a Cubic configuration</h3>
<div class="outline-text-3" id="text-5-3"> <div class="outline-text-3" id="text-5-3">
<p> <p>
First we defined the height of the Hexapod. First we defined the height of the Hexapod.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">H = Hmax<span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span>; <pre class="src src-matlab">H = Hmax<span class="org-type">/</span><span class="org-highlight-numbers-number">2</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Zs = <span style="color: #BFEBBF;">1</span>.<span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span>cube<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Height of the fixed platform</span> <pre class="src src-matlab">Zs = <span class="org-highlight-numbers-number">1</span>.<span class="org-highlight-numbers-number">2</span><span class="org-type">*</span>cube<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Height of the fixed platform</span>
Ze = Zs <span style="color: #7CB8BB;">+</span> H; <span style="color: #7F9F7F;">% Height of the mobile platform</span> Ze = Zs <span class="org-type">+</span> H; <span class="org-comment">% Height of the mobile platform</span>
</pre> </pre>
</div> </div>
@ -1306,11 +1310,11 @@ Ze = Zs <span style="color: #7CB8BB;">+</span> H; <span style="color: #7F9F7F;">
We now determine the location of the joints on the fixed platform. We now determine the location of the joints on the fixed platform.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Aa = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Aa = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
t = <span style="color: #DCDCCC;">(</span>Zs<span style="color: #7CB8BB;">-</span>legs_start<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">/</span><span style="color: #DCDCCC;">(</span>legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; t = <span class="org-rainbow-delimiters-depth-1">(</span>Zs<span class="org-type">-</span>legs_start<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Aa<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = legs_start<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">+</span> t<span style="color: #7CB8BB;">*</span>legs<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; Aa<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> t<span class="org-type">*</span>legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -1318,11 +1322,11 @@ We now determine the location of the joints on the fixed platform.
And the location of the joints on the mobile platform And the location of the joints on the mobile platform
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Ab = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Ab = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
t = <span style="color: #DCDCCC;">(</span>Ze<span style="color: #7CB8BB;">-</span>legs_start<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">/</span><span style="color: #DCDCCC;">(</span>legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; t = <span class="org-rainbow-delimiters-depth-1">(</span>Ze<span class="org-type">-</span>legs_start<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Ab<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = legs_start<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">+</span> t<span style="color: #7CB8BB;">*</span>legs<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; Ab<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs_start<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">+</span> t<span class="org-type">*</span>legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -1330,15 +1334,15 @@ And the location of the joints on the mobile platform
And we plot the legs. And we plot the legs.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
plot3<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>Ab<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">1</span><span style="color: #D0BF8F;">)</span>,Aa<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">1</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">[</span>Ab<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">2</span><span style="color: #D0BF8F;">)</span>,Aa<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">2</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">[</span>Ab<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #D0BF8F;">)</span>,Aa<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">]</span>, <span style="color: #CC9393;">'k-'</span><span style="color: #DCDCCC;">)</span>; plot3<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>Ab<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">)</span>,Aa<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-rainbow-delimiters-depth-2">[</span>Ab<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-3">)</span>,Aa<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-rainbow-delimiters-depth-2">[</span>Ab<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-3">)</span>,Aa<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-string">'k-'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
hold off; hold off;
xlim<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">]</span><span style="color: #DCDCCC;">)</span>; xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
ylim<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">]</span><span style="color: #DCDCCC;">)</span>; ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
zlim<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">]</span><span style="color: #DCDCCC;">)</span>; zlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
@ -1356,7 +1360,7 @@ zlim<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-03-26 mar. 08:47</p> <p class="date">Created: 2019-08-26 lun. 11:58</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View File

@ -1,27 +1,24 @@
#+TITLE: Cubic configuration for the Stewart Platform #+TITLE: Cubic configuration for the Stewart Platform
:DRAWER: :DRAWER:
#+STARTUP: overview #+HTML_LINK_HOME: ./index.html
#+HTML_LINK_UP: ./index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
#+HTML_HEAD: <script src="js/jquery.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.min.js"></script>
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script> #+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/readtheorg.js"></script> #+HTML_HEAD: <script src="./js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+LaTeX_HEADER: \usepackage{svg}
#+LaTeX_HEADER: \newcommand{\authorFirstName}{Thomas}
#+LaTeX_HEADER: \newcommand{\authorLastName}{Dehaeze}
#+LaTeX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
#+PROPERTY: header-args:matlab :session *MATLAB* #+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :tangle matlab/cubic_configuration.m
#+PROPERTY: header-args:matlab+ :comments org #+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both #+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :eval no-export #+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs #+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes #+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:END: :END:
#+begin_src matlab :results none :exports none :noweb yes #+begin_src matlab :results none :exports none :noweb yes

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-03-22 ven. 12:03 --> <!-- 2019-08-26 lun. 11:55 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Identification of the Stewart Platform using Simscape</title> <title>Identification of the Stewart Platform using Simscape</title>
@ -193,12 +193,12 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="css/htmlize.css"/> <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
<script src="js/jquery.min.js"></script> <script src="./js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script> <script src="./js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> <script src="./js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="js/readtheorg.js"></script> <script src="./js/readtheorg.js"></script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -269,200 +269,233 @@ for the JavaScript code in this tag.
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script> src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head> </head>
<body> <body>
<div id="content"> <div id="org-div-home-and-up">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Identification of the Stewart Platform using Simscape</h1> <h1 class="title">Identification of the Stewart Platform using Simscape</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org0c15748">1. Identification</a></li> <li><a href="#org5e5b5f3">1. Identification</a></li>
<li><a href="#orgb51bebd">2. Cartesian Plot</a></li> <li><a href="#orge4ddae7">2. Cartesian Plot</a></li>
<li><a href="#org8822347">3. From a force to force sensor</a></li> <li><a href="#orgc3f5223">3. From a force to force sensor</a></li>
<li><a href="#orgb3f97c3">4. From a force applied in the leg to the displacement of the leg</a></li> <li><a href="#org1795f38">4. From a force applied in the leg to the displacement of the leg</a></li>
<li><a href="#org4f7f749">5. Transmissibility</a></li> <li><a href="#org3e4873e">5. Transmissibility</a></li>
<li><a href="#orgc027ff6">6. Compliance</a></li> <li><a href="#org1ab2176">6. Compliance</a></li>
<li><a href="#orgeb43267">7. Inertial</a></li> <li><a href="#orgf18ed8c">7. Inertial</a></li>
<li><a href="#org702dc6c">8. identifyPlant</a></li> <li><a href="#org9ed65c5">8. identifyPlant</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org0c15748" class="outline-2"> <div id="outline-container-org5e5b5f3" class="outline-2">
<h2 id="org0c15748"><span class="section-number-2">1</span> Identification</h2> <h2 id="org5e5b5f3"><span class="section-number-2">1</span> Identification</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
The hexapod structure and Sample structure are initialized. The hexapod structure and Sample structure are initialized.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">initializeHexapod<span style="color: #DCDCCC;">()</span>; <pre class="src src-matlab">stewart = initializeGeneralConfiguration<span class="org-rainbow-delimiters-depth-1">()</span>;
initializeSample<span style="color: #DCDCCC;">()</span>; stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart<span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = initializeMechanicalElements<span class="org-rainbow-delimiters-depth-1">(</span>stewart<span class="org-rainbow-delimiters-depth-1">)</span>;
save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/stewart.mat', 'stewart'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
initializeSample<span class="org-rainbow-delimiters-depth-1">()</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">G = identifyPlant<span style="color: #DCDCCC;">()</span>; <pre class="src src-matlab">G = identifyPlant<span class="org-rainbow-delimiters-depth-1">()</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">freqs = logspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgb51bebd" class="outline-2"> <div id="outline-container-orge4ddae7" class="outline-2">
<h2 id="orgb51bebd"><span class="section-number-2">2</span> Cartesian Plot</h2> <h2 id="orge4ddae7"><span class="section-number-2">2</span> Cartesian Plot</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
From a force applied in the Cartesian frame to a displacement in the Cartesian frame. From a force applied in the Cartesian frame to a displacement in the Cartesian frame.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_cart<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_cart<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_cart<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_cart<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_cart<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
bode<span class="org-rainbow-delimiters-depth-1">(</span>G.G_cart, freqs<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org8822347" class="outline-2"> <div id="outline-container-orgc3f5223" class="outline-2">
<h2 id="org8822347"><span class="section-number-2">3</span> From a force to force sensor</h2> <h2 id="orgc3f5223"><span class="section-number-2">3</span> From a force to force sensor</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_forc<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k-', 'DisplayName', '$F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">m_i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">/F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">$'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">5</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">6</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">N/N</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'location', 'southeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_forc<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k-', 'DisplayName', '$F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">m_i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">/F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">$'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_forc<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'DisplayName', '$F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">m_j</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">/F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">$'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_forc<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'HandleVisibility', 'off'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_forc<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'HandleVisibility', 'off'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">5</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_forc<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'HandleVisibility', 'off'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_forc<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">6</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_forc<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'HandleVisibility', 'off'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">N/N</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'location', 'southeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgb3f97c3" class="outline-2"> <div id="outline-container-org1795f38" class="outline-2">
<h2 id="orgb3f97c3"><span class="section-number-2">4</span> From a force applied in the leg to the displacement of the leg</h2> <h2 id="org1795f38"><span class="section-number-2">4</span> From a force applied in the leg to the displacement of the leg</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_legs<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k-', 'DisplayName', '$D_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">/F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">$'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">5</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">6</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">m/N</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_legs<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k-', 'DisplayName', '$D_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">/F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">$'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_legs<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'DisplayName', '$D_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">j</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">/F_</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">{</span></span><span class="org-string">i</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">}</span></span><span class="org-string">$'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_legs<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'HandleVisibility', 'off'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_legs<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'HandleVisibility', 'off'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">5</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_legs<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'HandleVisibility', 'off'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">6</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_legs<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-4">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">)</span></span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-string">, 'k--', 'HandleVisibility', 'off'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">m/N</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org4f7f749" class="outline-2"> <div id="outline-container-org3e4873e" class="outline-2">
<h2 id="org4f7f749"><span class="section-number-2">5</span> Transmissibility</h2> <h2 id="org3e4873e"><span class="section-number-2">5</span> Transmissibility</h2>
<div class="outline-text-2" id="text-5"> <div class="outline-text-2" id="text-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">m/m</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">4</span>, <span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">5</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">6</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'</span>Amplitude <span class="org-rainbow-delimiters-depth-2">[</span>$<span class="org-type">\</span>frac<span class="org-rainbow-delimiters-depth-3">{</span>rad<span class="org-type">/</span>s<span class="org-rainbow-delimiters-depth-3">}{</span>rad<span class="org-type">/</span>s<span class="org-rainbow-delimiters-depth-3">}</span>$<span class="org-rainbow-delimiters-depth-2">]</span>'<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_tran<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_tran<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">m/m</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgc027ff6" class="outline-2"> <div id="outline-container-org1ab2176" class="outline-2">
<h2 id="orgc027ff6"><span class="section-number-2">6</span> Compliance</h2> <h2 id="org1ab2176"><span class="section-number-2">6</span> Compliance</h2>
<div class="outline-text-2" id="text-6"> <div class="outline-text-2" id="text-6">
<p> <p>
From a force applied in the Cartesian frame to a relative displacement of the mobile platform with respect to the base. From a force applied in the Cartesian frame to a relative displacement of the mobile platform with respect to the base.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_comp<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_comp<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_comp<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_comp<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_comp<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_comp<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">m/N</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgeb43267" class="outline-2"> <div id="outline-container-orgf18ed8c" class="outline-2">
<h2 id="orgeb43267"><span class="section-number-2">7</span> Inertial</h2> <h2 id="orgf18ed8c"><span class="section-number-2">7</span> Inertial</h2>
<div class="outline-text-2" id="text-7"> <div class="outline-text-2" id="text-7">
<p> <p>
From a force applied on the Cartesian frame to the absolute displacement of the mobile platform. From a force applied on the Cartesian frame to the absolute displacement of the mobile platform.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
hold on; hold on;
bode<span style="color: #DCDCCC;">(</span>G.G_iner<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_iner<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_iner<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_iner<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
bode<span style="color: #DCDCCC;">(</span>G.G_iner<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G.G_iner<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off; hold off;
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale', 'log'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">m/N</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org702dc6c" class="outline-2"> <div id="outline-container-org9ed65c5" class="outline-2">
<h2 id="org702dc6c"><span class="section-number-2">8</span> identifyPlant</h2> <h2 id="org9ed65c5"><span class="section-number-2">8</span> identifyPlant</h2>
<div class="outline-text-2" id="text-8"> <div class="outline-text-2" id="text-8">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[</span><span style="color: #DFAF8F;">sys</span><span style="color: #DCDCCC;">]</span> = <span style="color: #93E0E3;">identifyPlant</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">opts_param</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">sys</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">identifyPlant</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">opts_param</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre> </pre>
</div> </div>
@ -470,15 +503,15 @@ hold off;
We use this code block to pass optional parameters. We use this code block to pass optional parameters.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7F9F7F; font-weight: bold; text-decoration: overline;">%% Default values for opts</span> <pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Default values for opts</span></span>
opts = struct<span style="color: #DCDCCC;">()</span>; opts = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
<span style="color: #7F9F7F; font-weight: bold; text-decoration: overline;">%% Populate opts with input parameters</span> <span class="org-matlab-cellbreak"><span class="org-comment">%% Populate opts with input parameters</span></span>
<span style="color: #F0DFAF; font-weight: bold;">if</span> exist<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'opts_param','var'</span><span style="color: #DCDCCC;">)</span> <span class="org-keyword">if</span> exist<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'opts_param','var'</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">opt</span> = <span style="color: #BFEBBF;">fieldnames</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">opts_param</span><span style="color: #DCDCCC;">)</span><span style="color: #BFEBBF;">'</span> <span class="org-keyword">for</span> <span class="org-variable-name">opt</span> = <span class="org-constant">fieldnames</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">opts_param</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-constant">'</span>
opts.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span> = opts_param.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span>; opts.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span> = opts_param.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -488,7 +521,7 @@ Here, we just identify the system at time \(t = 0\).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">options = linearizeOptions; <pre class="src src-matlab">options = linearizeOptions;
options.SampleTime = <span style="color: #BFEBBF;">0</span>; options.SampleTime = <span class="org-highlight-numbers-number">0</span>;
</pre> </pre>
</div> </div>
@ -496,7 +529,7 @@ options.SampleTime = <span style="color: #BFEBBF;">0</span>;
We define the name of the Simulink File used to identification. We define the name of the Simulink File used to identification.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">mdl = <span style="color: #CC9393;">'stewart'</span>; <pre class="src src-matlab">mdl = <span class="org-string">'stewart'</span>;
</pre> </pre>
</div> </div>
@ -504,17 +537,17 @@ We define the name of the Simulink File used to identification.
Then we defined the input/output of the transfer function we want to identify. Then we defined the input/output of the transfer function we want to identify.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7F9F7F; font-weight: bold; text-decoration: overline;">%% Inputs</span> <pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Inputs</span></span>
io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span> = linio<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>mdl, '<span style="color: #7CB8BB;">/</span>F'<span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">1</span>, 'input'<span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Cartesian forces</span> io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, '<span class="org-type">/</span>F'<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, 'input'<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Cartesian forces</span>
io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span> = linio<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>mdl, '<span style="color: #7CB8BB;">/</span>Fl'<span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">1</span>, 'input'<span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Leg forces</span> io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, '<span class="org-type">/</span>Fl'<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, 'input'<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Leg forces</span>
io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span> = linio<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>mdl, '<span style="color: #7CB8BB;">/</span>Fd'<span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">1</span>, 'input'<span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Direct forces</span> io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, '<span class="org-type">/</span>Fd'<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, 'input'<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Direct forces</span>
io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">4</span><span style="color: #DCDCCC;">)</span> = linio<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>mdl, '<span style="color: #7CB8BB;">/</span>Dw'<span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">1</span>, 'input'<span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Base motion</span> io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, '<span class="org-type">/</span>Dw'<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, 'input'<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Base motion</span>
<span style="color: #7F9F7F; font-weight: bold; text-decoration: overline;">%% Outputs</span> <span class="org-matlab-cellbreak"><span class="org-comment">%% Outputs</span></span>
io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">5</span><span style="color: #DCDCCC;">)</span> = linio<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>mdl, '<span style="color: #7CB8BB;">/</span>Dm'<span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">1</span>, 'output'<span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Relative Motion</span> io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, '<span class="org-type">/</span>Dm'<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, 'output'<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Relative Motion</span>
io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span><span style="color: #DCDCCC;">)</span> = linio<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>mdl, '<span style="color: #7CB8BB;">/</span>Dlm'<span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">1</span>, 'output'<span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Displacement of each leg</span> io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, '<span class="org-type">/</span>Dlm'<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, 'output'<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Displacement of each leg</span>
io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">7</span><span style="color: #DCDCCC;">)</span> = linio<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>mdl, '<span style="color: #7CB8BB;">/</span>Flm'<span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">1</span>, 'output'<span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Force sensor in each leg</span> io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, '<span class="org-type">/</span>Flm'<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, 'output'<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Force sensor in each leg</span>
io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">8</span><span style="color: #DCDCCC;">)</span> = linio<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>mdl, '<span style="color: #7CB8BB;">/</span>Xm'<span style="color: #BFEBBF;">]</span>, <span style="color: #BFEBBF;">1</span>, 'output'<span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% Absolute motion of platform</span> io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">8</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, '<span class="org-type">/</span>Xm'<span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, 'output'<span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Absolute motion of platform</span>
</pre> </pre>
</div> </div>
@ -522,7 +555,7 @@ io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">8</span><s
The linearization is run. The linearization is run.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">G = linearize<span style="color: #DCDCCC;">(</span>mdl, io, <span style="color: #BFEBBF;">0</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">G = linearize<span class="org-rainbow-delimiters-depth-1">(</span>mdl, io, <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
@ -530,14 +563,14 @@ The linearization is run.
We defined all the Input/Output names of the identified transfer function. We defined all the Input/Output names of the identified transfer function.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">G.InputName = <span style="color: #DCDCCC;">{</span><span style="color: #CC9393;">'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'</span>, <span style="text-decoration: underline;">...</span> <pre class="src src-matlab">G.InputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'</span>, <span class="org-underline">...</span>
<span style="color: #CC9393;">'F1', 'F2', 'F3', 'F4', 'F5', 'F6'</span>, <span style="text-decoration: underline;">...</span> <span class="org-string">'F1', 'F2', 'F3', 'F4', 'F5', 'F6'</span>, <span class="org-underline">...</span>
<span style="color: #CC9393;">'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'</span>, <span style="text-decoration: underline;">...</span> <span class="org-string">'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'</span>, <span class="org-underline">...</span>
<span style="color: #CC9393;">'Dwx', 'Dwy', 'Dwz', 'Rwx', 'Rwy', 'Rwz'</span><span style="color: #DCDCCC;">}</span>; <span class="org-string">'Dwx', 'Dwy', 'Dwz', 'Rwx', 'Rwy', 'Rwz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
G.OutputName = <span style="color: #DCDCCC;">{</span><span style="color: #CC9393;">'Dxm', 'Dym', 'Dzm', 'Rxm', 'Rym', 'Rzm'</span>, <span style="text-decoration: underline;">...</span> G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Dxm', 'Dym', 'Dzm', 'Rxm', 'Rym', 'Rzm'</span>, <span class="org-underline">...</span>
<span style="color: #CC9393;">'D1m', 'D2m', 'D3m', 'D4m', 'D5m', 'D6m'</span>, <span style="text-decoration: underline;">...</span> <span class="org-string">'D1m', 'D2m', 'D3m', 'D4m', 'D5m', 'D6m'</span>, <span class="org-underline">...</span>
<span style="color: #CC9393;">'F1m', 'F2m', 'F3m', 'F4m', 'F5m', 'F6m'</span>, <span style="text-decoration: underline;">...</span> <span class="org-string">'F1m', 'F2m', 'F3m', 'F4m', 'F5m', 'F6m'</span>, <span class="org-underline">...</span>
<span style="color: #CC9393;">'Dxtm', 'Dytm', 'Dztm', 'Rxtm', 'Rytm', 'Rztm'</span><span style="color: #DCDCCC;">}</span>; <span class="org-string">'Dxtm', 'Dytm', 'Dztm', 'Rxtm', 'Rytm', 'Rztm'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
</pre> </pre>
</div> </div>
@ -545,18 +578,18 @@ G.OutputName = <span style="color: #DCDCCC;">{</span><span style="color: #CC9393
We split the transfer function into sub transfer functions and we compute their minimum realization. We split the transfer function into sub transfer functions and we compute their minimum realization.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">sys.G_cart = minreal<span style="color: #DCDCCC;">(</span>G<span style="color: #BFEBBF;">(</span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'Dxm', 'Dym', 'Dzm', 'Rxm', 'Rym', 'Rzm'</span><span style="color: #D0BF8F;">}</span><span style="color: #CC9393;">, </span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'</span><span style="color: #D0BF8F;">}</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">sys.G_cart = minreal<span class="org-rainbow-delimiters-depth-1">(</span>G<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">{</span><span class="org-string">'Dxm', 'Dym', 'Dzm', 'Rxm', 'Rym', 'Rzm'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">}</span></span><span class="org-string">, </span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">{</span></span><span class="org-string">'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sys.G_forc = minreal<span style="color: #DCDCCC;">(</span>G<span style="color: #BFEBBF;">(</span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'F1m', 'F2m', 'F3m', 'F4m', 'F5m', 'F6m'</span><span style="color: #D0BF8F;">}</span><span style="color: #CC9393;">, </span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'F1', 'F2', 'F3', 'F4', 'F5', 'F6'</span><span style="color: #D0BF8F;">}</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; sys.G_forc = minreal<span class="org-rainbow-delimiters-depth-1">(</span>G<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">{</span><span class="org-string">'F1m', 'F2m', 'F3m', 'F4m', 'F5m', 'F6m'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">}</span></span><span class="org-string">, </span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">{</span></span><span class="org-string">'F1', 'F2', 'F3', 'F4', 'F5', 'F6'</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sys.G_legs = minreal<span style="color: #DCDCCC;">(</span>G<span style="color: #BFEBBF;">(</span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'D1m', 'D2m', 'D3m', 'D4m', 'D5m', 'D6m'</span><span style="color: #D0BF8F;">}</span><span style="color: #CC9393;">, </span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'F1', 'F2', 'F3', 'F4', 'F5', 'F6'</span><span style="color: #D0BF8F;">}</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; sys.G_legs = minreal<span class="org-rainbow-delimiters-depth-1">(</span>G<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">{</span><span class="org-string">'D1m', 'D2m', 'D3m', 'D4m', 'D5m', 'D6m'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">}</span></span><span class="org-string">, </span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">{</span></span><span class="org-string">'F1', 'F2', 'F3', 'F4', 'F5', 'F6'</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sys.G_tran = minreal<span style="color: #DCDCCC;">(</span>G<span style="color: #BFEBBF;">(</span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'Dxtm', 'Dytm', 'Dztm', 'Rxtm', 'Rytm', 'Rztm'</span><span style="color: #D0BF8F;">}</span><span style="color: #CC9393;">, </span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'Dwx', 'Dwy', 'Dwz', 'Rwx', 'Rwy', 'Rwz'</span><span style="color: #D0BF8F;">}</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; sys.G_tran = minreal<span class="org-rainbow-delimiters-depth-1">(</span>G<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">{</span><span class="org-string">'Dxtm', 'Dytm', 'Dztm', 'Rxtm', 'Rytm', 'Rztm'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">}</span></span><span class="org-string">, </span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">{</span></span><span class="org-string">'Dwx', 'Dwy', 'Dwz', 'Rwx', 'Rwy', 'Rwz'</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sys.G_comp = minreal<span style="color: #DCDCCC;">(</span>G<span style="color: #BFEBBF;">(</span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'Dxm', 'Dym', 'Dzm', 'Rxm', 'Rym', 'Rzm'</span><span style="color: #D0BF8F;">}</span><span style="color: #CC9393;">, </span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'</span><span style="color: #D0BF8F;">}</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; sys.G_comp = minreal<span class="org-rainbow-delimiters-depth-1">(</span>G<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">{</span><span class="org-string">'Dxm', 'Dym', 'Dzm', 'Rxm', 'Rym', 'Rzm'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">}</span></span><span class="org-string">, </span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">{</span></span><span class="org-string">'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sys.G_iner = minreal<span style="color: #DCDCCC;">(</span>G<span style="color: #BFEBBF;">(</span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'Dxtm', 'Dytm', 'Dztm', 'Rxtm', 'Rytm', 'Rztm'</span><span style="color: #D0BF8F;">}</span><span style="color: #CC9393;">, </span><span style="color: #D0BF8F;">{</span><span style="color: #CC9393;">'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'</span><span style="color: #D0BF8F;">}</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; sys.G_iner = minreal<span class="org-rainbow-delimiters-depth-1">(</span>G<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">{</span><span class="org-string">'Dxtm', 'Dytm', 'Dztm', 'Rxtm', 'Rytm', 'Rztm'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">}</span></span><span class="org-string">, </span><span class="org-string"><span class="org-rainbow-delimiters-depth-3">{</span></span><span class="org-string">'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #7F9F7F;">% sys.G_all = minreal(G);</span> <span class="org-comment">% sys.G_all = minreal(G);</span>
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">end</span> <pre class="src src-matlab"><span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
@ -564,7 +597,7 @@ sys.G_iner = minreal<span style="color: #DCDCCC;">(</span>G<span style="color: #
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-03-22 ven. 12:03</p> <p class="date">Created: 2019-08-26 lun. 11:55</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View File

@ -1,27 +1,24 @@
#+TITLE: Identification of the Stewart Platform using Simscape #+TITLE: Identification of the Stewart Platform using Simscape
:DRAWER: :DRAWER:
#+STARTUP: overview #+HTML_LINK_HOME: ./index.html
#+HTML_LINK_UP: ./index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
#+HTML_HEAD: <script src="js/jquery.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.min.js"></script>
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script> #+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/readtheorg.js"></script> #+HTML_HEAD: <script src="./js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+LaTeX_HEADER: \usepackage{svg}
#+LaTeX_HEADER: \newcommand{\authorFirstName}{Thomas}
#+LaTeX_HEADER: \newcommand{\authorLastName}{Dehaeze}
#+LaTeX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
#+PROPERTY: header-args:matlab :session *MATLAB* #+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :tangle matlab/identification.m
#+PROPERTY: header-args:matlab+ :comments org #+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both #+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :eval no-export #+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs #+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes #+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:END: :END:
* Identification * Identification

View File

@ -3,10 +3,10 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-03-25 lun. 18:11 --> <!-- 2019-08-26 lun. 11:56 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform Studies</title> <title>Stewart Platforms</title>
<meta name="generator" content="Org mode" /> <meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" /> <meta name="author" content="Thomas Dehaeze" />
<style type="text/css"> <style type="text/css">
@ -197,8 +197,8 @@
<link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/>
<script src="js/jquery.min.js"></script> <script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script> <script src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> <script src="js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="js/readtheorg.js"></script> <script src="js/readtheorg.js"></script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -248,20 +248,10 @@ for the JavaScript code in this tag.
</head> </head>
<body> <body>
<div id="content"> <div id="content">
<h1 class="title">Stewart Platform Studies</h1> <h1 class="title">Stewart Platforms</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org431e1f9">1. Simscape Model</a></li>
<li><a href="#org27d326c">2. Architecture Study</a></li>
<li><a href="#orgd097f1e">3. Motion Control</a></li>
</ul>
</div>
</div>
<div id="outline-container-org431e1f9" class="outline-2"> <div id="outline-container-org6a8d5e6" class="outline-2">
<h2 id="org431e1f9"><span class="section-number-2">1</span> Simscape Model</h2> <h2 id="org6a8d5e6"><span class="section-number-2">1</span> Simscape Model</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<ul class="org-ul"> <ul class="org-ul">
<li><a href="simscape-model.html">Model of the Stewart Platform</a></li> <li><a href="simscape-model.html">Model of the Stewart Platform</a></li>
@ -270,8 +260,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-org27d326c" class="outline-2"> <div id="outline-container-org28395cb" class="outline-2">
<h2 id="org27d326c"><span class="section-number-2">2</span> Architecture Study</h2> <h2 id="org28395cb"><span class="section-number-2">2</span> Architecture Study</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<ul class="org-ul"> <ul class="org-ul">
<li><a href="kinematic-study.html">Kinematic Study</a></li> <li><a href="kinematic-study.html">Kinematic Study</a></li>
@ -282,8 +272,8 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
<div id="outline-container-orgd097f1e" class="outline-2"> <div id="outline-container-org6738e47" class="outline-2">
<h2 id="orgd097f1e"><span class="section-number-2">3</span> Motion Control</h2> <h2 id="org6738e47"><span class="section-number-2">3</span> Motion Control</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
<ul class="org-ul"> <ul class="org-ul">
<li>Active Damping</li> <li>Active Damping</li>
@ -293,10 +283,5 @@ for the JavaScript code in this tag.
</div> </div>
</div> </div>
</div> </div>
<div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-03-25 lun. 18:11</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body> </body>
</html> </html>

View File

@ -1,27 +1,14 @@
#+TITLE: Stewart Platform Studies #+TITLE: Stewart Platforms
:DRAWER: :DRAWER:
#+STARTUP: overview #+OPTIONS: toc:nil
#+OPTIONS: html-postamble:nil
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/>
#+HTML_HEAD: <script src="js/jquery.min.js"></script> #+HTML_HEAD: <script src="js/jquery.min.js"></script>
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script> #+HTML_HEAD: <script src="js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> #+HTML_HEAD: <script src="js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/readtheorg.js"></script> #+HTML_HEAD: <script src="js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+LaTeX_HEADER: \usepackage{svg}
#+LaTeX_HEADER: \newcommand{\authorFirstName}{Thomas}
#+LaTeX_HEADER: \newcommand{\authorLastName}{Dehaeze}
#+LaTeX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
#+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs
#+PROPERTY: header-args:matlab+ :mkdirp yes
:END: :END:
* Simscape Model * Simscape Model

File diff suppressed because one or more lines are too long

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-03-26 mar. 09:24 --> <!-- 2019-08-26 lun. 11:55 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Kinematic Study of the Stewart Platform</title> <title>Kinematic Study of the Stewart Platform</title>
@ -193,12 +193,12 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="css/htmlize.css"/> <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
<script src="js/jquery.min.js"></script> <script src="./js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script> <script src="./js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> <script src="./js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="js/readtheorg.js"></script> <script src="./js/readtheorg.js"></script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -247,132 +247,141 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="content"> <div id="org-div-home-and-up">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Kinematic Study of the Stewart Platform</h1> <h1 class="title">Kinematic Study of the Stewart Platform</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org2e1bd58">1. Needed Actuator Stroke</a> <li><a href="#org4a99119">1. Needed Actuator Stroke</a>
<ul> <ul>
<li><a href="#org16d1370">1.1. Stewart architecture definition</a></li> <li><a href="#org119868f">1.1. Stewart architecture definition</a></li>
<li><a href="#orgaf07b82">1.2. Wanted translations and rotations</a></li> <li><a href="#org8ece9f1">1.2. Wanted translations and rotations</a></li>
<li><a href="#org920b62b">1.3. Needed stroke for "pure" rotations or translations</a></li> <li><a href="#org8cd9dfc">1.3. Needed stroke for "pure" rotations or translations</a></li>
<li><a href="#org27bf97e">1.4. Needed stroke for combined translations and rotations</a></li> <li><a href="#org9acbff2">1.4. Needed stroke for combined translations and rotations</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgaebf111">2. Maximum Stroke</a></li> <li><a href="#org0aef174">2. Maximum Stroke</a></li>
<li><a href="#orgfb8a1e7">3. Functions</a> <li><a href="#orgff4f3e2">3. Functions</a>
<ul> <ul>
<li><a href="#org465746a">3.1. getMaxPositions</a></li> <li><a href="#orgca8f528">3.1. getMaxPositions</a></li>
<li><a href="#org527f7ca">3.2. getMaxPureDisplacement</a></li> <li><a href="#org0ac04ca">3.2. getMaxPureDisplacement</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org2e1bd58" class="outline-2"> <div id="outline-container-org4a99119" class="outline-2">
<h2 id="org2e1bd58"><span class="section-number-2">1</span> Needed Actuator Stroke</h2> <h2 id="org4a99119"><span class="section-number-2">1</span> Needed Actuator Stroke</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
<p> <p>
The goal is to determine the needed stroke of the actuators to obtain wanted translations and rotations. The goal is to determine the needed stroke of the actuators to obtain wanted translations and rotations.
</p> </p>
</div> </div>
<div id="outline-container-org16d1370" class="outline-3"> <div id="outline-container-org119868f" class="outline-3">
<h3 id="org16d1370"><span class="section-number-3">1.1</span> Stewart architecture definition</h3> <h3 id="org119868f"><span class="section-number-3">1.1</span> Stewart architecture definition</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<p> <p>
We use a cubic architecture. We use a cubic architecture.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'H_tot'</span>, <span style="color: #BFEBBF;">90</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Total height of the Hexapod [mm]</span> <span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-underline">...</span> <span class="org-comment">% Total height of the Hexapod [mm]</span>
<span style="color: #CC9393;">'L'</span>, <span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">/</span>sqrt<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Size of the Cube [mm]</span> <span class="org-string">'L'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span>sqrt<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span> <span class="org-comment">% Size of the Cube [mm]</span>
<span style="color: #CC9393;">'H'</span>, <span style="color: #BFEBBF;">60</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between base joints and platform joints [mm]</span> <span class="org-string">'H'</span>, <span class="org-highlight-numbers-number">60</span>, <span class="org-underline">...</span> <span class="org-comment">% Height between base joints and platform joints [mm]</span>
<span style="color: #CC9393;">'H0'</span>, <span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">60</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height between the corner of the cube and the plane containing the base joints [mm]</span> <span class="org-string">'H0'</span>, <span class="org-highlight-numbers-number">200</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span><span class="org-type">-</span><span class="org-highlight-numbers-number">60</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> <span class="org-underline">...</span> <span class="org-comment">% Height between the corner of the cube and the plane containing the base joints [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>; stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'Jd_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">100</span><span style="color: #BFEBBF;">]</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span> <span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
<span style="color: #CC9393;">'Jf_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">50</span><span style="color: #BFEBBF;">]</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span> <span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-type">-</span><span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>; stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'stroke'</span>, <span style="color: #BFEBBF;">50e</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">6</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Maximum stroke of each actuator [m]</span> <span class="org-string">'stroke'</span>, <span class="org-highlight-numbers-number">50e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span> <span class="org-underline">...</span> <span class="org-comment">% Maximum stroke of each actuator [m]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
stewart = initializeMechanicalElements<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>; stewart = initializeMechanicalElements<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
save<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'./mat/stewart.mat', 'stewart'</span><span style="color: #DCDCCC;">)</span>; save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/stewart.mat', 'stewart'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgaf07b82" class="outline-3"> <div id="outline-container-org8ece9f1" class="outline-3">
<h3 id="orgaf07b82"><span class="section-number-3">1.2</span> Wanted translations and rotations</h3> <h3 id="org8ece9f1"><span class="section-number-3">1.2</span> Wanted translations and rotations</h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
<p> <p>
We define wanted translations and rotations We define wanted translations and rotations
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Tx_max = <span style="color: #BFEBBF;">15e</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">6</span>; <span style="color: #7F9F7F;">% Translation [m]</span> <pre class="src src-matlab">Tx_max = <span class="org-highlight-numbers-number">15e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span>; <span class="org-comment">% Translation [m]</span>
Ty_max = <span style="color: #BFEBBF;">15e</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">6</span>; <span style="color: #7F9F7F;">% Translation [m]</span> Ty_max = <span class="org-highlight-numbers-number">15e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span>; <span class="org-comment">% Translation [m]</span>
Tz_max = <span style="color: #BFEBBF;">15e</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">6</span>; <span style="color: #7F9F7F;">% Translation [m]</span> Tz_max = <span class="org-highlight-numbers-number">15e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span>; <span class="org-comment">% Translation [m]</span>
Rx_max = <span style="color: #BFEBBF;">30e</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">6</span>; <span style="color: #7F9F7F;">% Rotation [rad]</span> Rx_max = <span class="org-highlight-numbers-number">30e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span>; <span class="org-comment">% Rotation [rad]</span>
Ry_max = <span style="color: #BFEBBF;">30e</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">6</span>; <span style="color: #7F9F7F;">% Rotation [rad]</span> Ry_max = <span class="org-highlight-numbers-number">30e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span>; <span class="org-comment">% Rotation [rad]</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org920b62b" class="outline-3"> <div id="outline-container-org8cd9dfc" class="outline-3">
<h3 id="org920b62b"><span class="section-number-3">1.3</span> Needed stroke for "pure" rotations or translations</h3> <h3 id="org8cd9dfc"><span class="section-number-3">1.3</span> Needed stroke for "pure" rotations or translations</h3>
<div class="outline-text-3" id="text-1-3"> <div class="outline-text-3" id="text-1-3">
<p> <p>
First, we estimate the needed actuator stroke for "pure" rotations and translation. First, we estimate the needed actuator stroke for "pure" rotations and translation.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">LTx = stewart.Jd<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span>Tx_max <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #DCDCCC;">]</span>'; <pre class="src src-matlab">LTx = stewart.Jd<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span>Tx_max <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">]</span>';
LTy = stewart.Jd<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span> Ty_max <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #DCDCCC;">]</span>'; LTy = stewart.Jd<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span> Ty_max <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">]</span>';
LTz = stewart.Jd<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> Tz_max <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #DCDCCC;">]</span>'; LTz = stewart.Jd<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> Tz_max <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">]</span>';
LRx = stewart.Jd<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> Rx_max <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #DCDCCC;">]</span>'; LRx = stewart.Jd<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> Rx_max <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">]</span>';
LRy = stewart.Jd<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> Ry_max <span style="color: #BFEBBF;">0</span><span style="color: #DCDCCC;">]</span>'; LRy = stewart.Jd<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> Ry_max <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">]</span>';
</pre> </pre>
</div> </div>
<pre class="example"> <pre class="example">
1.0607e-05 From -1.2e-05[m] to 1.1e-05[m]: Total stroke = 22.9[um]
</pre> </pre>
</div> </div>
</div> </div>
<div id="outline-container-org27bf97e" class="outline-3"> <div id="outline-container-org9acbff2" class="outline-3">
<h3 id="org27bf97e"><span class="section-number-3">1.4</span> Needed stroke for combined translations and rotations</h3> <h3 id="org9acbff2"><span class="section-number-3">1.4</span> Needed stroke for combined translations and rotations</h3>
<div class="outline-text-3" id="text-1-4"> <div class="outline-text-3" id="text-1-4">
<p> <p>
Now, we combine translations and rotations, and we try to find the worst case (that we suppose to happen at the border). Now, we combine translations and rotations, and we try to find the worst case (that we suppose to happen at the border).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Lmax = <span style="color: #BFEBBF;">0</span>; <pre class="src src-matlab">Lmax = <span class="org-highlight-numbers-number">0</span>;
pos = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span><span style="color: #DCDCCC;">]</span>; Lmin = <span class="org-highlight-numbers-number">0</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">Tx</span> = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">-Tx_max</span>,Tx_max<span style="color: #DCDCCC;">]</span> pos = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">]</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">Ty</span> = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">-Ty_max</span>,Ty_max<span style="color: #DCDCCC;">]</span> <span class="org-keyword">for</span> <span class="org-variable-name">Tx</span> = <span class="org-constant"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-constant">-Tx_max</span>,Tx_max<span class="org-rainbow-delimiters-depth-1">]</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">Tz</span> = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">-Tz_max</span>,Tz_max<span style="color: #DCDCCC;">]</span> <span class="org-keyword">for</span> <span class="org-variable-name">Ty</span> = <span class="org-constant"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-constant">-Ty_max</span>,Ty_max<span class="org-rainbow-delimiters-depth-1">]</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">Rx</span> = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">-Rx_max</span>,Rx_max<span style="color: #DCDCCC;">]</span> <span class="org-keyword">for</span> <span class="org-variable-name">Tz</span> = <span class="org-constant"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-constant">-Tz_max</span>,Tz_max<span class="org-rainbow-delimiters-depth-1">]</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">Ry</span> = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">-Ry_max</span>,Ry_max<span style="color: #DCDCCC;">]</span> <span class="org-keyword">for</span> <span class="org-variable-name">Rx</span> = <span class="org-constant"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-constant">-Rx_max</span>,Rx_max<span class="org-rainbow-delimiters-depth-1">]</span>
L = max<span style="color: #DCDCCC;">(</span>stewart.Jd<span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">[</span>Tx Ty Tz Rx Ry <span style="color: #BFEBBF;">0</span><span style="color: #BFEBBF;">]</span>'<span style="color: #DCDCCC;">)</span>; <span class="org-keyword">for</span> <span class="org-variable-name">Ry</span> = <span class="org-constant"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-constant">-Ry_max</span>,Ry_max<span class="org-rainbow-delimiters-depth-1">]</span>
<span style="color: #F0DFAF; font-weight: bold;">if</span> L <span style="color: #7CB8BB;">&gt;</span> Lmax lmax = max<span class="org-rainbow-delimiters-depth-1">(</span>stewart.Jd<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">[</span>Tx Ty Tz Rx Ry <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-2">]</span>'<span class="org-rainbow-delimiters-depth-1">)</span>;
Lmax = L; lmin = min<span class="org-rainbow-delimiters-depth-1">(</span>stewart.Jd<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">[</span>Tx Ty Tz Rx Ry <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-2">]</span>'<span class="org-rainbow-delimiters-depth-1">)</span>;
pos = <span style="color: #DCDCCC;">[</span>Tx Ty Tz Rx Ry<span style="color: #DCDCCC;">]</span>; <span class="org-keyword">if</span> lmax <span class="org-type">&gt;</span> Lmax
<span style="color: #F0DFAF; font-weight: bold;">end</span> Lmax = lmax;
<span style="color: #F0DFAF; font-weight: bold;">end</span> pos = <span class="org-rainbow-delimiters-depth-1">[</span>Tx Ty Tz Rx Ry<span class="org-rainbow-delimiters-depth-1">]</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">if</span> lmin <span class="org-type">&lt;</span> Lmin
<span style="color: #F0DFAF; font-weight: bold;">end</span> Lmin = lmin;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span class="org-keyword">end</span>
<span class="org-keyword">end</span>
<span class="org-keyword">end</span>
<span class="org-keyword">end</span>
<span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -380,76 +389,76 @@ pos = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</spa
We obtain a needed stroke shown below (almost two times the needed stroke for "pure" rotations and translations). We obtain a needed stroke shown below (almost two times the needed stroke for "pure" rotations and translations).
</p> </p>
<pre class="example"> <pre class="example">
3.0927e-05 From -3.1e-05[m] to 3.1e-05[m]: Total stroke = 61.5[um]
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgaebf111" class="outline-2"> <div id="outline-container-org0aef174" class="outline-2">
<h2 id="orgaebf111"><span class="section-number-2">2</span> Maximum Stroke</h2> <h2 id="org0aef174"><span class="section-number-2">2</span> Maximum Stroke</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
<p> <p>
From a specified actuator stroke, we try to estimate the available maneuverability of the Stewart platform. From a specified actuator stroke, we try to estimate the available maneuverability of the Stewart platform.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #DCDCCC;">[</span>X, Y, Z<span style="color: #DCDCCC;">]</span> = getMaxPositions<span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">stewart</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>X, Y, Z<span class="org-rainbow-delimiters-depth-1">]</span> = getMaxPositions<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">stewart</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>; <pre class="src src-matlab"><span class="org-type">figure</span>;
plot3<span style="color: #DCDCCC;">(</span>X, Y, Z, <span style="color: #CC9393;">'k-'</span><span style="color: #DCDCCC;">)</span> plot3<span class="org-rainbow-delimiters-depth-1">(</span>X, Y, Z, <span class="org-string">'k-'</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgfb8a1e7" class="outline-2"> <div id="outline-container-orgff4f3e2" class="outline-2">
<h2 id="orgfb8a1e7"><span class="section-number-2">3</span> Functions</h2> <h2 id="orgff4f3e2"><span class="section-number-2">3</span> Functions</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
</div> </div>
<div id="outline-container-org465746a" class="outline-3"> <div id="outline-container-orgca8f528" class="outline-3">
<h3 id="org465746a"><span class="section-number-3">3.1</span> getMaxPositions</h3> <h3 id="orgca8f528"><span class="section-number-3">3.1</span> getMaxPositions</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[</span><span style="color: #DFAF8F;">X, Y, Z</span><span style="color: #DCDCCC;">]</span> = <span style="color: #93E0E3;">getMaxPositions</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">stewart</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">X, Y, Z</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">getMaxPositions</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">stewart</span><span class="org-rainbow-delimiters-depth-1">)</span>
Leg = stewart.Leg; Leg = stewart.Leg;
J = stewart.Jd; J = stewart.Jd;
theta = linspace<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">pi</span>, <span style="color: #BFEBBF;">100</span><span style="color: #DCDCCC;">)</span>; theta = linspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span>, <span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-1">)</span>;
phi = linspace<span style="color: #DCDCCC;">(</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span> , <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">100</span><span style="color: #DCDCCC;">)</span>; phi = linspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">-</span><span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span> , <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-1">)</span>;
dmax = zeros<span style="color: #DCDCCC;">(</span>length<span style="color: #BFEBBF;">(</span>theta<span style="color: #BFEBBF;">)</span>, length<span style="color: #BFEBBF;">(</span>phi<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; dmax = zeros<span class="org-rainbow-delimiters-depth-1">(</span>length<span class="org-rainbow-delimiters-depth-2">(</span>theta<span class="org-rainbow-delimiters-depth-2">)</span>, length<span class="org-rainbow-delimiters-depth-2">(</span>phi<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:length</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">theta</span><span style="color: #DCDCCC;">)</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:length</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">theta</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">j</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:length</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">phi</span><span style="color: #DCDCCC;">)</span> <span class="org-keyword">for</span> <span class="org-variable-name">j</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:length</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">phi</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
L = J<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span>cos<span style="color: #BFEBBF;">(</span>phi<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">j</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span><span style="color: #7CB8BB;">*</span>cos<span style="color: #BFEBBF;">(</span>theta<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span> cos<span style="color: #BFEBBF;">(</span>phi<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">j</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span><span style="color: #7CB8BB;">*</span>sin<span style="color: #BFEBBF;">(</span>theta<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span> sin<span style="color: #BFEBBF;">(</span>phi<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">j</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #DCDCCC;">]</span>'; L = J<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span>cos<span class="org-rainbow-delimiters-depth-2">(</span>phi<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">j</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span>cos<span class="org-rainbow-delimiters-depth-2">(</span>theta<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span> cos<span class="org-rainbow-delimiters-depth-2">(</span>phi<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">j</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span>sin<span class="org-rainbow-delimiters-depth-2">(</span>theta<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span> sin<span class="org-rainbow-delimiters-depth-2">(</span>phi<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">j</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">]</span>';
dmax<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">j</span><span style="color: #DCDCCC;">)</span> = Leg.stroke<span style="color: #7CB8BB;">/</span>max<span style="color: #DCDCCC;">(</span>abs<span style="color: #BFEBBF;">(</span>L<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; dmax<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-constant">j</span><span class="org-rainbow-delimiters-depth-1">)</span> = Leg.stroke<span class="org-type">/</span>max<span class="org-rainbow-delimiters-depth-1">(</span>abs<span class="org-rainbow-delimiters-depth-2">(</span>L<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
X = dmax<span style="color: #7CB8BB;">.*</span>cos<span style="color: #DCDCCC;">(</span>repmat<span style="color: #BFEBBF;">(</span>phi,length<span style="color: #D0BF8F;">(</span>theta<span style="color: #D0BF8F;">)</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">.*</span>cos<span style="color: #DCDCCC;">(</span>repmat<span style="color: #BFEBBF;">(</span>theta,length<span style="color: #D0BF8F;">(</span>phi<span style="color: #D0BF8F;">)</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>'; X = dmax<span class="org-type">.*</span>cos<span class="org-rainbow-delimiters-depth-1">(</span>repmat<span class="org-rainbow-delimiters-depth-2">(</span>phi,length<span class="org-rainbow-delimiters-depth-3">(</span>theta<span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">.*</span>cos<span class="org-rainbow-delimiters-depth-1">(</span>repmat<span class="org-rainbow-delimiters-depth-2">(</span>theta,length<span class="org-rainbow-delimiters-depth-3">(</span>phi<span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>';
Y = dmax<span style="color: #7CB8BB;">.*</span>cos<span style="color: #DCDCCC;">(</span>repmat<span style="color: #BFEBBF;">(</span>phi,length<span style="color: #D0BF8F;">(</span>theta<span style="color: #D0BF8F;">)</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">.*</span>sin<span style="color: #DCDCCC;">(</span>repmat<span style="color: #BFEBBF;">(</span>theta,length<span style="color: #D0BF8F;">(</span>phi<span style="color: #D0BF8F;">)</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>'; Y = dmax<span class="org-type">.*</span>cos<span class="org-rainbow-delimiters-depth-1">(</span>repmat<span class="org-rainbow-delimiters-depth-2">(</span>phi,length<span class="org-rainbow-delimiters-depth-3">(</span>theta<span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">.*</span>sin<span class="org-rainbow-delimiters-depth-1">(</span>repmat<span class="org-rainbow-delimiters-depth-2">(</span>theta,length<span class="org-rainbow-delimiters-depth-3">(</span>phi<span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>';
Z = dmax<span style="color: #7CB8BB;">.*</span>sin<span style="color: #DCDCCC;">(</span>repmat<span style="color: #BFEBBF;">(</span>phi,length<span style="color: #D0BF8F;">(</span>theta<span style="color: #D0BF8F;">)</span>,<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; Z = dmax<span class="org-type">.*</span>sin<span class="org-rainbow-delimiters-depth-1">(</span>repmat<span class="org-rainbow-delimiters-depth-2">(</span>phi,length<span class="org-rainbow-delimiters-depth-3">(</span>theta<span class="org-rainbow-delimiters-depth-3">)</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org527f7ca" class="outline-3"> <div id="outline-container-org0ac04ca" class="outline-3">
<h3 id="org527f7ca"><span class="section-number-3">3.2</span> getMaxPureDisplacement</h3> <h3 id="org0ac04ca"><span class="section-number-3">3.2</span> getMaxPureDisplacement</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[</span><span style="color: #DFAF8F;">max_disp</span><span style="color: #DCDCCC;">]</span> = <span style="color: #93E0E3;">getMaxPureDisplacement</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">Leg</span>, <span style="color: #DFAF8F;">J</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">max_disp</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">getMaxPureDisplacement</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">Leg</span>, <span class="org-variable-name">J</span><span class="org-rainbow-delimiters-depth-1">)</span>
max_disp = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span>; max_disp = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span>;
max_disp<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span> = Leg.stroke<span style="color: #7CB8BB;">/</span>max<span style="color: #DCDCCC;">(</span>abs<span style="color: #BFEBBF;">(</span>J<span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">[</span><span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #D0BF8F;">]</span>'<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; max_disp<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span> = Leg.stroke<span class="org-type">/</span>max<span class="org-rainbow-delimiters-depth-1">(</span>abs<span class="org-rainbow-delimiters-depth-2">(</span>J<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">[</span><span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-3">]</span>'<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
max_disp<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span> = Leg.stroke<span style="color: #7CB8BB;">/</span>max<span style="color: #DCDCCC;">(</span>abs<span style="color: #BFEBBF;">(</span>J<span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #D0BF8F;">]</span>'<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; max_disp<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span> = Leg.stroke<span class="org-type">/</span>max<span class="org-rainbow-delimiters-depth-1">(</span>abs<span class="org-rainbow-delimiters-depth-2">(</span>J<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-3">]</span>'<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
max_disp<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span> = Leg.stroke<span style="color: #7CB8BB;">/</span>max<span style="color: #DCDCCC;">(</span>abs<span style="color: #BFEBBF;">(</span>J<span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #D0BF8F;">]</span>'<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; max_disp<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> = Leg.stroke<span class="org-type">/</span>max<span class="org-rainbow-delimiters-depth-1">(</span>abs<span class="org-rainbow-delimiters-depth-2">(</span>J<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-3">]</span>'<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
max_disp<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">4</span><span style="color: #DCDCCC;">)</span> = Leg.stroke<span style="color: #7CB8BB;">/</span>max<span style="color: #DCDCCC;">(</span>abs<span style="color: #BFEBBF;">(</span>J<span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #D0BF8F;">]</span>'<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; max_disp<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-1">)</span> = Leg.stroke<span class="org-type">/</span>max<span class="org-rainbow-delimiters-depth-1">(</span>abs<span class="org-rainbow-delimiters-depth-2">(</span>J<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-3">]</span>'<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
max_disp<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">5</span><span style="color: #DCDCCC;">)</span> = Leg.stroke<span style="color: #7CB8BB;">/</span>max<span style="color: #DCDCCC;">(</span>abs<span style="color: #BFEBBF;">(</span>J<span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span><span style="color: #D0BF8F;">]</span>'<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; max_disp<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-1">)</span> = Leg.stroke<span class="org-type">/</span>max<span class="org-rainbow-delimiters-depth-1">(</span>abs<span class="org-rainbow-delimiters-depth-2">(</span>J<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-3">]</span>'<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
max_disp<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span><span style="color: #DCDCCC;">)</span> = Leg.stroke<span style="color: #7CB8BB;">/</span>max<span style="color: #DCDCCC;">(</span>abs<span style="color: #BFEBBF;">(</span>J<span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">1</span><span style="color: #D0BF8F;">]</span>'<span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; max_disp<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-1">)</span> = Leg.stroke<span class="org-type">/</span>max<span class="org-rainbow-delimiters-depth-1">(</span>abs<span class="org-rainbow-delimiters-depth-2">(</span>J<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">]</span>'<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
@ -458,7 +467,7 @@ plot3<span style="color: #DCDCCC;">(</span>X, Y, Z, <span style="color: #CC9393;
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-03-26 mar. 09:24</p> <p class="date">Created: 2019-08-26 lun. 11:55</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View File

@ -1,27 +1,24 @@
#+TITLE: Kinematic Study of the Stewart Platform #+TITLE: Kinematic Study of the Stewart Platform
:DRAWER: :DRAWER:
#+STARTUP: overview #+HTML_LINK_HOME: ./index.html
#+HTML_LINK_UP: ./index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
#+HTML_HEAD: <script src="js/jquery.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.min.js"></script>
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script> #+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/readtheorg.js"></script> #+HTML_HEAD: <script src="./js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+LaTeX_HEADER: \usepackage{svg}
#+LaTeX_HEADER: \newcommand{\authorFirstName}{Thomas}
#+LaTeX_HEADER: \newcommand{\authorLastName}{Dehaeze}
#+LaTeX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
#+PROPERTY: header-args:matlab :session *MATLAB* #+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :tangle matlab/kinematic_study.m
#+PROPERTY: header-args:matlab+ :comments org #+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both #+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :eval no-export #+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs #+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes #+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:END: :END:
#+begin_src matlab :results none :exports none :noweb yes #+begin_src matlab :results none :exports none :noweb yes
@ -39,9 +36,9 @@ We use a cubic architecture.
#+begin_src matlab :results silent #+begin_src matlab :results silent
opts = struct(... opts = struct(...
'H_tot', 90, ... % Total height of the Hexapod [mm] 'H_tot', 90, ... % Total height of the Hexapod [mm]
'L', 180/sqrt(3), ... % Size of the Cube [mm] 'L', 200/sqrt(3), ... % Size of the Cube [mm]
'H', 60, ... % Height between base joints and platform joints [mm] 'H', 60, ... % Height between base joints and platform joints [mm]
'H0', 180/2-60/2 ... % Height between the corner of the cube and the plane containing the base joints [mm] 'H0', 200/2-60/2 ... % Height between the corner of the cube and the plane containing the base joints [mm]
); );
stewart = initializeCubicConfiguration(opts); stewart = initializeCubicConfiguration(opts);
opts = struct(... opts = struct(...
@ -78,27 +75,32 @@ First, we estimate the needed actuator stroke for "pure" rotations and translati
#+end_src #+end_src
#+begin_src matlab :results value :exports results #+begin_src matlab :results value :exports results
ans = max(max([LTx, LTy, LTz, LRx, LRy])) ans = sprintf('From %.2g[m] to %.2g[m]: Total stroke = %.1f[um]', min(min([LTx,LTy,LTz,LRx,LRy])), max(max([LTx,LTy,LTz,LRx,LRy])), 1e6*(max(max([LTx,LTy,LTz,LRx,LRy]))-min(min([LTx,LTy,LTz,LRx,LRy]))))
#+end_src #+end_src
#+RESULTS: #+RESULTS:
: 1.0607e-05 : From -1.2e-05[m] to 1.1e-05[m]: Total stroke = 22.9[um]
** Needed stroke for combined translations and rotations ** Needed stroke for combined translations and rotations
Now, we combine translations and rotations, and we try to find the worst case (that we suppose to happen at the border). Now, we combine translations and rotations, and we try to find the worst case (that we suppose to happen at the border).
#+begin_src matlab :results none #+begin_src matlab :results none
Lmax = 0; Lmax = 0;
Lmin = 0;
pos = [0, 0, 0, 0, 0]; pos = [0, 0, 0, 0, 0];
for Tx = [-Tx_max,Tx_max] for Tx = [-Tx_max,Tx_max]
for Ty = [-Ty_max,Ty_max] for Ty = [-Ty_max,Ty_max]
for Tz = [-Tz_max,Tz_max] for Tz = [-Tz_max,Tz_max]
for Rx = [-Rx_max,Rx_max] for Rx = [-Rx_max,Rx_max]
for Ry = [-Ry_max,Ry_max] for Ry = [-Ry_max,Ry_max]
L = max(stewart.Jd*[Tx Ty Tz Rx Ry 0]'); lmax = max(stewart.Jd*[Tx Ty Tz Rx Ry 0]');
if L > Lmax lmin = min(stewart.Jd*[Tx Ty Tz Rx Ry 0]');
Lmax = L; if lmax > Lmax
Lmax = lmax;
pos = [Tx Ty Tz Rx Ry]; pos = [Tx Ty Tz Rx Ry];
end end
if lmin < Lmin
Lmin = lmin;
end
end end
end end
end end
@ -108,11 +110,11 @@ Now, we combine translations and rotations, and we try to find the worst case (t
We obtain a needed stroke shown below (almost two times the needed stroke for "pure" rotations and translations). We obtain a needed stroke shown below (almost two times the needed stroke for "pure" rotations and translations).
#+begin_src matlab :results value :exports results #+begin_src matlab :results value :exports results
ans = Lmax ans = sprintf('From %.2g[m] to %.2g[m]: Total stroke = %.1f[um]', Lmin, Lmax, 1e6*(Lmax-Lmin))
#+end_src #+end_src
#+RESULTS: #+RESULTS:
: 3.0927e-05 : From -3.1e-05[m] to 3.1e-05[m]: Total stroke = 61.5[um]
* Maximum Stroke * Maximum Stroke
From a specified actuator stroke, we try to estimate the available maneuverability of the Stewart platform. From a specified actuator stroke, we try to estimate the available maneuverability of the Stewart platform.

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-03-25 lun. 11:18 --> <!-- 2019-08-26 lun. 11:56 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stewart Platform - Simscape Model</title> <title>Stewart Platform - Simscape Model</title>
@ -193,12 +193,12 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="css/htmlize.css"/> <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
<script src="js/jquery.min.js"></script> <script src="./js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script> <script src="./js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> <script src="./js/jquery.stickytableheaders.min.js"></script>
<script type="text/javascript" src="js/readtheorg.js"></script> <script src="./js/readtheorg.js"></script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -269,44 +269,48 @@ for the JavaScript code in this tag.
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script> src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head> </head>
<body> <body>
<div id="content"> <div id="org-div-home-and-up">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Stewart Platform - Simscape Model</h1> <h1 class="title">Stewart Platform - Simscape Model</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org527cc13">1. initializeGeneralConfiguration</a> <li><a href="#orge1bdaa4">1. initializeGeneralConfiguration</a>
<ul> <ul>
<li><a href="#orgea5f8f5">1.1. Function description</a></li> <li><a href="#orgb189499">1.1. Function description</a></li>
<li><a href="#org2db42cb">1.2. Optional Parameters</a></li> <li><a href="#org26f683d">1.2. Optional Parameters</a></li>
<li><a href="#org2f9279a">1.3. Geometry Description</a></li> <li><a href="#org22df53a">1.3. Geometry Description</a></li>
<li><a href="#org1409cf0">1.4. Compute Aa and Ab</a></li> <li><a href="#orgcf32e31">1.4. Compute Aa and Ab</a></li>
<li><a href="#orgb91c416">1.5. Returns Stewart Structure</a></li> <li><a href="#org4931162">1.5. Returns Stewart Structure</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgc3aa910">2. computeGeometricalProperties</a> <li><a href="#orgc4f14da">2. computeGeometricalProperties</a>
<ul> <ul>
<li><a href="#org180196f">2.1. Function description</a></li> <li><a href="#org7550562">2.1. Function description</a></li>
<li><a href="#org12cee4f">2.2. Optional Parameters</a></li> <li><a href="#org0ec8d5e">2.2. Optional Parameters</a></li>
<li><a href="#org0010af5">2.3. Rotation matrices</a></li> <li><a href="#orgdc858fe">2.3. Rotation matrices</a></li>
<li><a href="#org98f4bad">2.4. Jacobian matrices</a></li> <li><a href="#orgc0b0116">2.4. Jacobian matrices</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgb3e53d1">3. initializeMechanicalElements</a> <li><a href="#org35cb27a">3. initializeMechanicalElements</a>
<ul> <ul>
<li><a href="#orge7f185e">3.1. Function description</a></li> <li><a href="#orgeeb3d2f">3.1. Function description</a></li>
<li><a href="#org6bd219d">3.2. Optional Parameters</a></li> <li><a href="#org02f8d24">3.2. Optional Parameters</a></li>
<li><a href="#org8d0d9c0">3.3. Bottom Plate</a></li> <li><a href="#orga56f635">3.3. Bottom Plate</a></li>
<li><a href="#org23fd88c">3.4. Top Plate</a></li> <li><a href="#orge8a195c">3.4. Top Plate</a></li>
<li><a href="#org96d7dab">3.5. Legs</a></li> <li><a href="#org8725a51">3.5. Legs</a></li>
<li><a href="#org66df86f">3.6. Ball Joints</a></li> <li><a href="#org722b78f">3.6. Ball Joints</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgf3c4474">4. initializeSample</a> <li><a href="#org5ba95d3">4. initializeSample</a>
<ul> <ul>
<li><a href="#org1ec4152">4.1. Function description</a></li> <li><a href="#org2dd34bb">4.1. Function description</a></li>
<li><a href="#orgcd3268d">4.2. Optional Parameters</a></li> <li><a href="#org2aa1dac">4.2. Optional Parameters</a></li>
<li><a href="#org29ee9ed">4.3. Save the Sample structure</a></li> <li><a href="#orgea68e95">4.3. Save the Sample structure</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
@ -370,42 +374,42 @@ Other Parameters are defined for the Simscape simulation:
<li>Location of the Jacobian point for velocity/displacement computation</li> <li>Location of the Jacobian point for velocity/displacement computation</li>
</ul> </ul>
<div id="outline-container-org527cc13" class="outline-2"> <div id="outline-container-orge1bdaa4" class="outline-2">
<h2 id="org527cc13"><span class="section-number-2">1</span> initializeGeneralConfiguration</h2> <h2 id="orge1bdaa4"><span class="section-number-2">1</span> initializeGeneralConfiguration</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
</div> </div>
<div id="outline-container-orgea5f8f5" class="outline-3"> <div id="outline-container-orgb189499" class="outline-3">
<h3 id="orgea5f8f5"><span class="section-number-3">1.1</span> Function description</h3> <h3 id="orgb189499"><span class="section-number-3">1.1</span> Function description</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<p> <p>
The <code>initializeGeneralConfiguration</code> function takes one structure that contains configurations for the hexapod and returns one structure representing the Hexapod. The <code>initializeGeneralConfiguration</code> function takes one structure that contains configurations for the hexapod and returns one structure representing the Hexapod.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[</span><span style="color: #DFAF8F;">stewart</span><span style="color: #DCDCCC;">]</span> = <span style="color: #93E0E3;">initializeGeneralConfiguration</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">opts_param</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">stewart</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">initializeGeneralConfiguration</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">opts_param</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org2db42cb" class="outline-3"> <div id="outline-container-org26f683d" class="outline-3">
<h3 id="org2db42cb"><span class="section-number-3">1.2</span> Optional Parameters</h3> <h3 id="org26f683d"><span class="section-number-3">1.2</span> Optional Parameters</h3>
<div class="outline-text-3" id="text-1-2"> <div class="outline-text-3" id="text-1-2">
<p> <p>
Default values for opts. Default values for opts.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'H_tot'</span>, <span style="color: #BFEBBF;">90</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height of the platform [mm]</span> <span class="org-string">'H_tot'</span>, <span class="org-highlight-numbers-number">90</span>, <span class="org-underline">...</span> <span class="org-comment">% Height of the platform [mm]</span>
<span style="color: #CC9393;">'H_joint'</span>, <span style="color: #BFEBBF;">15</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Height of the joints [mm]</span> <span class="org-string">'H_joint'</span>, <span class="org-highlight-numbers-number">15</span>, <span class="org-underline">...</span> <span class="org-comment">% Height of the joints [mm]</span>
<span style="color: #CC9393;">'H_plate'</span>, <span style="color: #BFEBBF;">10</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Thickness of the fixed and mobile platforms [mm]</span> <span class="org-string">'H_plate'</span>, <span class="org-highlight-numbers-number">10</span>, <span class="org-underline">...</span> <span class="org-comment">% Thickness of the fixed and mobile platforms [mm]</span>
<span style="color: #CC9393;">'R_bot'</span>, <span style="color: #BFEBBF;">100</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Radius where the legs articulations are positionned [mm]</span> <span class="org-string">'R_bot'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% Radius where the legs articulations are positionned [mm]</span>
<span style="color: #CC9393;">'R_top'</span>, <span style="color: #BFEBBF;">80</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Radius where the legs articulations are positionned [mm]</span> <span class="org-string">'R_top'</span>, <span class="org-highlight-numbers-number">80</span>, <span class="org-underline">...</span> <span class="org-comment">% Radius where the legs articulations are positionned [mm]</span>
<span style="color: #CC9393;">'a_bot'</span>, <span style="color: #BFEBBF;">10</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Angle Offset [deg]</span> <span class="org-string">'a_bot'</span>, <span class="org-highlight-numbers-number">10</span>, <span class="org-underline">...</span> <span class="org-comment">% Angle Offset [deg]</span>
<span style="color: #CC9393;">'a_top'</span>, <span style="color: #BFEBBF;">40</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Angle Offset [deg]</span> <span class="org-string">'a_top'</span>, <span class="org-highlight-numbers-number">40</span>, <span class="org-underline">...</span> <span class="org-comment">% Angle Offset [deg]</span>
<span style="color: #CC9393;">'da_top'</span>, <span style="color: #BFEBBF;">0</span> <span style="text-decoration: underline;">...</span> % Angle Offset from <span style="color: #BFEBBF;">0</span> position [deg] <span class="org-string">'da_top'</span>, <span class="org-highlight-numbers-number">0</span> <span class="org-underline">...</span> % Angle Offset from <span class="org-highlight-numbers-number">0</span> position [deg]
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
@ -413,21 +417,21 @@ Default values for opts.
Populate opts with input parameters Populate opts with input parameters
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">if</span> exist<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'opts_param','var'</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">if</span> exist<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'opts_param','var'</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">opt</span> = <span style="color: #BFEBBF;">fieldnames</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">opts_param</span><span style="color: #DCDCCC;">)</span><span style="color: #BFEBBF;">'</span> <span class="org-keyword">for</span> <span class="org-variable-name">opt</span> = <span class="org-constant">fieldnames</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">opts_param</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-constant">'</span>
opts.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span> = opts_param.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span>; opts.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span> = opts_param.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org2f9279a" class="outline-3"> <div id="outline-container-org22df53a" class="outline-3">
<h3 id="org2f9279a"><span class="section-number-3">1.3</span> Geometry Description</h3> <h3 id="org22df53a"><span class="section-number-3">1.3</span> Geometry Description</h3>
<div class="outline-text-3" id="text-1-3"> <div class="outline-text-3" id="text-1-3">
<div id="orgc30ce24" class="figure"> <div id="orgeb6375e" class="figure">
<p><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" /> <p><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" />
</p> </p>
<p><span class="figure-number">Figure 1: </span>Schematic of the bottom plates with all the parameters</p> <p><span class="figure-number">Figure 1: </span>Schematic of the bottom plates with all the parameters</p>
@ -435,85 +439,85 @@ Populate opts with input parameters
</div> </div>
</div> </div>
<div id="outline-container-org1409cf0" class="outline-3"> <div id="outline-container-orgcf32e31" class="outline-3">
<h3 id="org1409cf0"><span class="section-number-3">1.4</span> Compute Aa and Ab</h3> <h3 id="orgcf32e31"><span class="section-number-3">1.4</span> Compute Aa and Ab</h3>
<div class="outline-text-3" id="text-1-4"> <div class="outline-text-3" id="text-1-4">
<p> <p>
We compute \([a_1, a_2, a_3, a_4, a_5, a_6]^T\) and \([b_1, b_2, b_3, b_4, b_5, b_6]^T\). We compute \([a_1, a_2, a_3, a_4, a_5, a_6]^T\) and \([b_1, b_2, b_3, b_4, b_5, b_6]^T\).
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Aa = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% [mm]</span> <pre class="src src-matlab">Aa = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% [mm]</span>
Ab = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% [mm]</span> Ab = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% [mm]</span>
Bb = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% [mm]</span> Bb = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% [mm]</span>
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">3</span> <pre class="src src-matlab"><span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">3</span></span>
Aa<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span>,<span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = <span style="color: #DCDCCC;">[</span>opts.R_bot<span style="color: #7CB8BB;">*</span>cos<span style="color: #BFEBBF;">(</span> <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">120</span><span style="color: #7CB8BB;">*</span><span style="color: #93E0E3;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span> <span style="color: #7CB8BB;">-</span> opts.a_bot<span style="color: #D0BF8F;">)</span> <span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> Aa<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = <span class="org-rainbow-delimiters-depth-1">[</span>opts.R_bot<span class="org-type">*</span>cos<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">180</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">120</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-type">-</span> opts.a_bot<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span>
opts.R_bot<span style="color: #7CB8BB;">*</span>sin<span style="color: #BFEBBF;">(</span> <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">120</span><span style="color: #7CB8BB;">*</span><span style="color: #93E0E3;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span> <span style="color: #7CB8BB;">-</span> opts.a_bot<span style="color: #D0BF8F;">)</span> <span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> opts.R_bot<span class="org-type">*</span>sin<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">180</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">120</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-type">-</span> opts.a_bot<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span>
opts.H_plate<span style="color: #7CB8BB;">+</span>opts.H_joint<span style="color: #DCDCCC;">]</span>; opts.H_plate<span class="org-type">+</span>opts.H_joint<span class="org-rainbow-delimiters-depth-1">]</span>;
Aa<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">i</span>,<span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = <span style="color: #DCDCCC;">[</span>opts.R_bot<span style="color: #7CB8BB;">*</span>cos<span style="color: #BFEBBF;">(</span> <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">120</span><span style="color: #7CB8BB;">*</span><span style="color: #93E0E3;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span> <span style="color: #7CB8BB;">+</span> opts.a_bot<span style="color: #D0BF8F;">)</span> <span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> Aa<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">i</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = <span class="org-rainbow-delimiters-depth-1">[</span>opts.R_bot<span class="org-type">*</span>cos<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">180</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">120</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-type">+</span> opts.a_bot<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span>
opts.R_bot<span style="color: #7CB8BB;">*</span>sin<span style="color: #BFEBBF;">(</span> <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">120</span><span style="color: #7CB8BB;">*</span><span style="color: #93E0E3;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span> <span style="color: #7CB8BB;">+</span> opts.a_bot<span style="color: #D0BF8F;">)</span> <span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> opts.R_bot<span class="org-type">*</span>sin<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">180</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">120</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-type">+</span> opts.a_bot<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span>
opts.H_plate<span style="color: #7CB8BB;">+</span>opts.H_joint<span style="color: #DCDCCC;">]</span>; opts.H_plate<span class="org-type">+</span>opts.H_joint<span class="org-rainbow-delimiters-depth-1">]</span>;
Ab<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span>,<span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = <span style="color: #DCDCCC;">[</span>opts.R_top<span style="color: #7CB8BB;">*</span>cos<span style="color: #BFEBBF;">(</span> <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">120</span><span style="color: #7CB8BB;">*</span><span style="color: #93E0E3;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span> <span style="color: #7CB8BB;">+</span> opts.da_top <span style="color: #7CB8BB;">-</span> opts.a_top<span style="color: #D0BF8F;">)</span> <span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> Ab<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = <span class="org-rainbow-delimiters-depth-1">[</span>opts.R_top<span class="org-type">*</span>cos<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">180</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">120</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-type">+</span> opts.da_top <span class="org-type">-</span> opts.a_top<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span>
opts.R_top<span style="color: #7CB8BB;">*</span>sin<span style="color: #BFEBBF;">(</span> <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">120</span><span style="color: #7CB8BB;">*</span><span style="color: #93E0E3;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span> <span style="color: #7CB8BB;">+</span> opts.da_top <span style="color: #7CB8BB;">-</span> opts.a_top<span style="color: #D0BF8F;">)</span> <span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> opts.R_top<span class="org-type">*</span>sin<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">180</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">120</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-type">+</span> opts.da_top <span class="org-type">-</span> opts.a_top<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span>
opts.H_tot <span style="color: #7CB8BB;">-</span> opts.H_plate <span style="color: #7CB8BB;">-</span> opts.H_joint<span style="color: #DCDCCC;">]</span>; opts.H_tot <span class="org-type">-</span> opts.H_plate <span class="org-type">-</span> opts.H_joint<span class="org-rainbow-delimiters-depth-1">]</span>;
Ab<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">i</span>,<span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = <span style="color: #DCDCCC;">[</span>opts.R_top<span style="color: #7CB8BB;">*</span>cos<span style="color: #BFEBBF;">(</span> <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">120</span><span style="color: #7CB8BB;">*</span><span style="color: #93E0E3;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span> <span style="color: #7CB8BB;">+</span> opts.da_top <span style="color: #7CB8BB;">+</span> opts.a_top<span style="color: #D0BF8F;">)</span> <span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> Ab<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">i</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = <span class="org-rainbow-delimiters-depth-1">[</span>opts.R_top<span class="org-type">*</span>cos<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">180</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">120</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-type">+</span> opts.da_top <span class="org-type">+</span> opts.a_top<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span>
opts.R_top<span style="color: #7CB8BB;">*</span>sin<span style="color: #BFEBBF;">(</span> <span style="color: #BFEBBF;">pi</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">180</span><span style="color: #7CB8BB;">*</span><span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">120</span><span style="color: #7CB8BB;">*</span><span style="color: #93E0E3;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span> <span style="color: #7CB8BB;">+</span> opts.da_top <span style="color: #7CB8BB;">+</span> opts.a_top<span style="color: #D0BF8F;">)</span> <span style="color: #BFEBBF;">)</span>, <span style="text-decoration: underline;">...</span> opts.R_top<span class="org-type">*</span>sin<span class="org-rainbow-delimiters-depth-2">(</span> <span class="org-constant">pi</span><span class="org-type">/</span><span class="org-highlight-numbers-number">180</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">120</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-4">(</span><span class="org-constant">i</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span> <span class="org-type">+</span> opts.da_top <span class="org-type">+</span> opts.a_top<span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-underline">...</span>
opts.H_tot <span style="color: #7CB8BB;">-</span> opts.H_plate <span style="color: #7CB8BB;">-</span> opts.H_joint<span style="color: #DCDCCC;">]</span>; opts.H_tot <span class="org-type">-</span> opts.H_plate <span class="org-type">-</span> opts.H_joint<span class="org-rainbow-delimiters-depth-1">]</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
Bb = Ab <span style="color: #7CB8BB;">-</span> opts.H_tot<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>,<span style="color: #BFEBBF;">0</span>,<span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">]</span>; Bb = Ab <span class="org-type">-</span> opts.H_tot<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>,<span class="org-highlight-numbers-number">0</span>,<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">]</span>;
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgb91c416" class="outline-3"> <div id="outline-container-org4931162" class="outline-3">
<h3 id="orgb91c416"><span class="section-number-3">1.5</span> Returns Stewart Structure</h3> <h3 id="org4931162"><span class="section-number-3">1.5</span> Returns Stewart Structure</h3>
<div class="outline-text-3" id="text-1-5"> <div class="outline-text-3" id="text-1-5">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"> stewart = struct<span style="color: #DCDCCC;">()</span>; <pre class="src src-matlab"> stewart = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
stewart.Aa = Aa; stewart.Aa = Aa;
stewart.Ab = Ab; stewart.Ab = Ab;
stewart.Bb = Bb; stewart.Bb = Bb;
stewart.H_tot = opts.H_tot; stewart.H_tot = opts.H_tot;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgc3aa910" class="outline-2"> <div id="outline-container-orgc4f14da" class="outline-2">
<h2 id="orgc3aa910"><span class="section-number-2">2</span> computeGeometricalProperties</h2> <h2 id="orgc4f14da"><span class="section-number-2">2</span> computeGeometricalProperties</h2>
<div class="outline-text-2" id="text-2"> <div class="outline-text-2" id="text-2">
</div> </div>
<div id="outline-container-org180196f" class="outline-3"> <div id="outline-container-org7550562" class="outline-3">
<h3 id="org180196f"><span class="section-number-3">2.1</span> Function description</h3> <h3 id="org7550562"><span class="section-number-3">2.1</span> Function description</h3>
<div class="outline-text-3" id="text-2-1"> <div class="outline-text-3" id="text-2-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[</span><span style="color: #DFAF8F;">stewart</span><span style="color: #DCDCCC;">]</span> = <span style="color: #93E0E3;">computeGeometricalProperties</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">stewart</span>, <span style="color: #DFAF8F;">opts_param</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">stewart</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">computeGeometricalProperties</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">stewart</span>, <span class="org-variable-name">opts_param</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org12cee4f" class="outline-3"> <div id="outline-container-org0ec8d5e" class="outline-3">
<h3 id="org12cee4f"><span class="section-number-3">2.2</span> Optional Parameters</h3> <h3 id="org0ec8d5e"><span class="section-number-3">2.2</span> Optional Parameters</h3>
<div class="outline-text-3" id="text-2-2"> <div class="outline-text-3" id="text-2-2">
<p> <p>
Default values for opts. Default values for opts.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'Jd_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">30</span><span style="color: #BFEBBF;">]</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span> <span class="org-string">'Jd_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">30</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for displacement estimation from the top of the mobile platform [mm]</span>
<span style="color: #CC9393;">'Jf_pos'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">30</span><span style="color: #BFEBBF;">]</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span> <span class="org-string">'Jf_pos'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">30</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span> <span class="org-comment">% Position of the Jacobian for force location from the top of the mobile platform [mm]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
@ -521,25 +525,25 @@ Default values for opts.
Populate opts with input parameters Populate opts with input parameters
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">if</span> exist<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'opts_param','var'</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">if</span> exist<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'opts_param','var'</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">opt</span> = <span style="color: #BFEBBF;">fieldnames</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">opts_param</span><span style="color: #DCDCCC;">)</span><span style="color: #BFEBBF;">'</span> <span class="org-keyword">for</span> <span class="org-variable-name">opt</span> = <span class="org-constant">fieldnames</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">opts_param</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-constant">'</span>
opts.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span> = opts_param.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span>; opts.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span> = opts_param.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org0010af5" class="outline-3"> <div id="outline-container-orgdc858fe" class="outline-3">
<h3 id="org0010af5"><span class="section-number-3">2.3</span> Rotation matrices</h3> <h3 id="orgdc858fe"><span class="section-number-3">2.3</span> Rotation matrices</h3>
<div class="outline-text-3" id="text-2-3"> <div class="outline-text-3" id="text-2-3">
<p> <p>
We initialize \(l_i\) and \(\hat{s}_i\) We initialize \(l_i\) and \(\hat{s}_i\)
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">leg_length = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span>; <span style="color: #7F9F7F;">% [mm]</span> <pre class="src src-matlab">leg_length = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% [mm]</span>
leg_vectors = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span>; leg_vectors = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
@ -552,12 +556,12 @@ We compute \(b_i - a_i\), and then:
\end{align*} \end{align*}
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">legs = stewart.Ab <span style="color: #7CB8BB;">-</span> stewart.Aa; <pre class="src src-matlab">legs = stewart.Ab <span class="org-type">-</span> stewart.Aa;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
leg_length<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span> = norm<span style="color: #DCDCCC;">(</span>legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>,<span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; leg_length<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> = norm<span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
leg_vectors<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>,<span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> = legs<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>,<span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">/</span> leg_length<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span>; leg_vectors<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> = legs<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">/</span> leg_length<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
@ -566,94 +570,94 @@ We compute rotation matrices to have the orientation of the legs.
The rotation matrix transforms the \(z\) axis to the axis of the leg. The other axis are not important here. The rotation matrix transforms the \(z\) axis to the axis of the leg. The other axis are not important here.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">stewart.Rm = struct<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'R'</span>, eye<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">stewart.Rm = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'R'</span>, eye<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
sx = cross<span style="color: #DCDCCC;">(</span>leg_vectors<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>,<span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">)</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span><span style="color: #BFEBBF;">]</span><span style="color: #DCDCCC;">)</span>; sx = cross<span class="org-rainbow-delimiters-depth-1">(</span>leg_vectors<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sx = sx<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sx<span style="color: #DCDCCC;">)</span>; sx = sx<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sx<span class="org-rainbow-delimiters-depth-1">)</span>;
sy = <span style="color: #7CB8BB;">-</span>cross<span style="color: #DCDCCC;">(</span>sx, leg_vectors<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>,<span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; sy = <span class="org-type">-</span>cross<span class="org-rainbow-delimiters-depth-1">(</span>sx, leg_vectors<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sy = sy<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sy<span style="color: #DCDCCC;">)</span>; sy = sy<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sy<span class="org-rainbow-delimiters-depth-1">)</span>;
sz = leg_vectors<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>,<span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; sz = leg_vectors<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
sz = sz<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sz<span style="color: #DCDCCC;">)</span>; sz = sz<span class="org-type">/</span>norm<span class="org-rainbow-delimiters-depth-1">(</span>sz<span class="org-rainbow-delimiters-depth-1">)</span>;
stewart.Rm<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span>.R = <span style="color: #DCDCCC;">[</span>sx', sy', sz'<span style="color: #DCDCCC;">]</span>; stewart.Rm<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span>.R = <span class="org-rainbow-delimiters-depth-1">[</span>sx', sy', sz'<span class="org-rainbow-delimiters-depth-1">]</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org98f4bad" class="outline-3"> <div id="outline-container-orgc0b0116" class="outline-3">
<h3 id="org98f4bad"><span class="section-number-3">2.4</span> Jacobian matrices</h3> <h3 id="orgc0b0116"><span class="section-number-3">2.4</span> Jacobian matrices</h3>
<div class="outline-text-3" id="text-2-4"> <div class="outline-text-3" id="text-2-4">
<p> <p>
Compute Jacobian Matrix Compute Jacobian Matrix
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Jd = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Jd = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
Jd<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span> = leg_vectors<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; Jd<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-type">:</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> = leg_vectors<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Jd<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">4</span><span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">6</span><span style="color: #DCDCCC;">)</span> = cross<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">001</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">(</span>stewart.Bb<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #D0BF8F;">)</span> <span style="color: #7CB8BB;">-</span> opts.Jd_pos<span style="color: #BFEBBF;">)</span>, leg_vectors<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; Jd<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">4</span><span class="org-type">:</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-1">)</span> = cross<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">001</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">(</span>stewart.Bb<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-type">-</span> opts.Jd_pos<span class="org-rainbow-delimiters-depth-2">)</span>, leg_vectors<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
stewart.Jd = Jd; stewart.Jd = Jd;
stewart.Jd_inv = inv<span style="color: #DCDCCC;">(</span>Jd<span style="color: #DCDCCC;">)</span>; stewart.Jd_inv = inv<span class="org-rainbow-delimiters-depth-1">(</span>Jd<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Jf = zeros<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">6</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">Jf = zeros<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span> = <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:</span><span style="color: #BFEBBF;">6</span> <span class="org-keyword">for</span> <span class="org-variable-name">i</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></span>
Jf<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span> = leg_vectors<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #DCDCCC;">)</span>; Jf<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">1</span><span class="org-type">:</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> = leg_vectors<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-1">)</span>;
Jf<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">4</span><span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">6</span><span style="color: #DCDCCC;">)</span> = cross<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">001</span><span style="color: #7CB8BB;">*</span><span style="color: #BFEBBF;">(</span>stewart.Bb<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #D0BF8F;">)</span> <span style="color: #7CB8BB;">-</span> opts.Jf_pos<span style="color: #BFEBBF;">)</span>, leg_vectors<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">i</span>, <span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>; Jf<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">4</span><span class="org-type">:</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-1">)</span> = cross<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">001</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">(</span>stewart.Bb<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-type">-</span> opts.Jf_pos<span class="org-rainbow-delimiters-depth-2">)</span>, leg_vectors<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-constant">i</span>, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
stewart.Jf = Jf; stewart.Jf = Jf;
stewart.Jf_inv = inv<span style="color: #DCDCCC;">(</span>Jf<span style="color: #DCDCCC;">)</span>; stewart.Jf_inv = inv<span class="org-rainbow-delimiters-depth-1">(</span>Jf<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">end</span> <pre class="src src-matlab"><span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgb3e53d1" class="outline-2"> <div id="outline-container-org35cb27a" class="outline-2">
<h2 id="orgb3e53d1"><span class="section-number-2">3</span> initializeMechanicalElements</h2> <h2 id="org35cb27a"><span class="section-number-2">3</span> initializeMechanicalElements</h2>
<div class="outline-text-2" id="text-3"> <div class="outline-text-2" id="text-3">
</div> </div>
<div id="outline-container-orge7f185e" class="outline-3"> <div id="outline-container-orgeeb3d2f" class="outline-3">
<h3 id="orge7f185e"><span class="section-number-3">3.1</span> Function description</h3> <h3 id="orgeeb3d2f"><span class="section-number-3">3.1</span> Function description</h3>
<div class="outline-text-3" id="text-3-1"> <div class="outline-text-3" id="text-3-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[</span><span style="color: #DFAF8F;">stewart</span><span style="color: #DCDCCC;">]</span> = <span style="color: #93E0E3;">initializeMechanicalElements</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">stewart</span>, <span style="color: #DFAF8F;">opts_param</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">stewart</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">initializeMechanicalElements</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">stewart</span>, <span class="org-variable-name">opts_param</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org6bd219d" class="outline-3"> <div id="outline-container-org02f8d24" class="outline-3">
<h3 id="org6bd219d"><span class="section-number-3">3.2</span> Optional Parameters</h3> <h3 id="org02f8d24"><span class="section-number-3">3.2</span> Optional Parameters</h3>
<div class="outline-text-3" id="text-3-2"> <div class="outline-text-3" id="text-3-2">
<p> <p>
Default values for opts. Default values for opts.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: underline;">...</span> <pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</span>
<span style="color: #CC9393;">'thickness'</span>, <span style="color: #BFEBBF;">10</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Thickness of the base and platform [mm]</span> <span class="org-string">'thickness'</span>, <span class="org-highlight-numbers-number">10</span>, <span class="org-underline">...</span> <span class="org-comment">% Thickness of the base and platform [mm]</span>
<span style="color: #CC9393;">'density'</span>, <span style="color: #BFEBBF;">1000</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Density of the material used for the hexapod [kg/m3]</span> <span class="org-string">'density'</span>, <span class="org-highlight-numbers-number">1000</span>, <span class="org-underline">...</span> <span class="org-comment">% Density of the material used for the hexapod [kg/m3]</span>
<span style="color: #CC9393;">'k_ax'</span>, <span style="color: #BFEBBF;">1e8</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Stiffness of each actuator [N/m]</span> <span class="org-string">'k_ax'</span>, <span class="org-highlight-numbers-number">1e8</span>, <span class="org-underline">...</span> <span class="org-comment">% Stiffness of each actuator [N/m]</span>
<span style="color: #CC9393;">'c_ax'</span>, <span style="color: #BFEBBF;">1000</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Damping of each actuator [N/(m/s)]</span> <span class="org-string">'c_ax'</span>, <span class="org-highlight-numbers-number">1000</span>, <span class="org-underline">...</span> <span class="org-comment">% Damping of each actuator [N/(m/s)]</span>
<span style="color: #CC9393;">'stroke'</span>, <span style="color: #BFEBBF;">50e</span><span style="color: #7CB8BB;">-</span><span style="color: #BFEBBF;">6</span> <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% Maximum stroke of each actuator [m]</span> <span class="org-string">'stroke'</span>, <span class="org-highlight-numbers-number">50e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span> <span class="org-underline">...</span> <span class="org-comment">% Maximum stroke of each actuator [m]</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
@ -661,21 +665,21 @@ Default values for opts.
Populate opts with input parameters Populate opts with input parameters
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">if</span> exist<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'opts_param','var'</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">if</span> exist<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'opts_param','var'</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">opt</span> = <span style="color: #BFEBBF;">fieldnames</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">opts_param</span><span style="color: #DCDCCC;">)</span><span style="color: #BFEBBF;">'</span> <span class="org-keyword">for</span> <span class="org-variable-name">opt</span> = <span class="org-constant">fieldnames</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">opts_param</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-constant">'</span>
opts.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span> = opts_param.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span>; opts.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span> = opts_param.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org8d0d9c0" class="outline-3"> <div id="outline-container-orga56f635" class="outline-3">
<h3 id="org8d0d9c0"><span class="section-number-3">3.3</span> Bottom Plate</h3> <h3 id="orga56f635"><span class="section-number-3">3.3</span> Bottom Plate</h3>
<div class="outline-text-3" id="text-3-3"> <div class="outline-text-3" id="text-3-3">
<div id="org38598b1" class="figure"> <div id="org61c842c" class="figure">
<p><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" /> <p><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" />
</p> </p>
<p><span class="figure-number">Figure 2: </span>Schematic of the bottom plates with all the parameters</p> <p><span class="figure-number">Figure 2: </span>Schematic of the bottom plates with all the parameters</p>
@ -685,7 +689,7 @@ Populate opts with input parameters
The bottom plate structure is initialized. The bottom plate structure is initialized.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">BP = struct<span style="color: #DCDCCC;">()</span>; <pre class="src src-matlab">BP = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
</pre> </pre>
</div> </div>
@ -693,8 +697,8 @@ The bottom plate structure is initialized.
We defined its internal radius (if there is a hole in the bottom plate) and its outer radius. We defined its internal radius (if there is a hole in the bottom plate) and its outer radius.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">BP.Rint = <span style="color: #BFEBBF;">0</span>; <span style="color: #7F9F7F;">% Internal Radius [mm]</span> <pre class="src src-matlab">BP.Rint = <span class="org-highlight-numbers-number">0</span>; <span class="org-comment">% Internal Radius [mm]</span>
BP.Rext = <span style="color: #BFEBBF;">150</span>; <span style="color: #7F9F7F;">% External Radius [mm]</span> BP.Rext = <span class="org-highlight-numbers-number">150</span>; <span class="org-comment">% External Radius [mm]</span>
</pre> </pre>
</div> </div>
@ -702,7 +706,7 @@ BP.Rext = <span style="color: #BFEBBF;">150</span>; <span style="color: #7F9F7F;
We define its thickness. We define its thickness.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">BP.H = opts.thickness; <span style="color: #7F9F7F;">% Thickness of the Bottom Plate [mm]</span> <pre class="src src-matlab">BP.H = opts.thickness; <span class="org-comment">% Thickness of the Bottom Plate [mm]</span>
</pre> </pre>
</div> </div>
@ -710,7 +714,7 @@ We define its thickness.
We defined the density of the material of the bottom plate. We defined the density of the material of the bottom plate.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">BP.density = opts.density; <span style="color: #7F9F7F;">% Density of the material [kg/m3]</span> <pre class="src src-matlab">BP.density = opts.density; <span class="org-comment">% Density of the material [kg/m3]</span>
</pre> </pre>
</div> </div>
@ -718,7 +722,7 @@ We defined the density of the material of the bottom plate.
And its color. And its color.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">BP.color = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span><span style="color: #DCDCCC;">]</span>; <span style="color: #7F9F7F;">% Color [RGB]</span> <pre class="src src-matlab">BP.color = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-comment">% Color [RGB]</span>
</pre> </pre>
</div> </div>
@ -726,7 +730,7 @@ And its color.
Then the profile of the bottom plate is computed and will be used by Simscape Then the profile of the bottom plate is computed and will be used by Simscape
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">BP.shape = <span style="color: #DCDCCC;">[</span>BP.Rint BP.H; BP.Rint <span style="color: #BFEBBF;">0</span>; BP.Rext <span style="color: #BFEBBF;">0</span>; BP.Rext BP.H<span style="color: #DCDCCC;">]</span>; <span style="color: #7F9F7F;">% [mm]</span> <pre class="src src-matlab">BP.shape = <span class="org-rainbow-delimiters-depth-1">[</span>BP.Rint BP.H; BP.Rint <span class="org-highlight-numbers-number">0</span>; BP.Rext <span class="org-highlight-numbers-number">0</span>; BP.Rext BP.H<span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-comment">% [mm]</span>
</pre> </pre>
</div> </div>
@ -740,14 +744,14 @@ The structure is added to the stewart structure
</div> </div>
</div> </div>
<div id="outline-container-org23fd88c" class="outline-3"> <div id="outline-container-orge8a195c" class="outline-3">
<h3 id="org23fd88c"><span class="section-number-3">3.4</span> Top Plate</h3> <h3 id="orge8a195c"><span class="section-number-3">3.4</span> Top Plate</h3>
<div class="outline-text-3" id="text-3-4"> <div class="outline-text-3" id="text-3-4">
<p> <p>
The top plate structure is initialized. The top plate structure is initialized.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">TP = struct<span style="color: #DCDCCC;">()</span>; <pre class="src src-matlab">TP = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
</pre> </pre>
</div> </div>
@ -755,8 +759,8 @@ The top plate structure is initialized.
We defined the internal and external radius of the top plate. We defined the internal and external radius of the top plate.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">TP.Rint = <span style="color: #BFEBBF;">0</span>; <span style="color: #7F9F7F;">% [mm]</span> <pre class="src src-matlab">TP.Rint = <span class="org-highlight-numbers-number">0</span>; <span class="org-comment">% [mm]</span>
TP.Rext = <span style="color: #BFEBBF;">100</span>; <span style="color: #7F9F7F;">% [mm]</span> TP.Rext = <span class="org-highlight-numbers-number">100</span>; <span class="org-comment">% [mm]</span>
</pre> </pre>
</div> </div>
@ -764,7 +768,7 @@ TP.Rext = <span style="color: #BFEBBF;">100</span>; <span style="color: #7F9F7F;
The thickness of the top plate. The thickness of the top plate.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">TP.H = <span style="color: #BFEBBF;">10</span>; <span style="color: #7F9F7F;">% [mm]</span> <pre class="src src-matlab">TP.H = <span class="org-highlight-numbers-number">10</span>; <span class="org-comment">% [mm]</span>
</pre> </pre>
</div> </div>
@ -772,7 +776,7 @@ The thickness of the top plate.
The density of its material. The density of its material.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">TP.density = opts.density; <span style="color: #7F9F7F;">% Density of the material [kg/m3]</span> <pre class="src src-matlab">TP.density = opts.density; <span class="org-comment">% Density of the material [kg/m3]</span>
</pre> </pre>
</div> </div>
@ -780,7 +784,7 @@ The density of its material.
Its color. Its color.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">TP.color = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span><span style="color: #DCDCCC;">]</span>; <span style="color: #7F9F7F;">% Color [RGB]</span> <pre class="src src-matlab">TP.color = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-comment">% Color [RGB]</span>
</pre> </pre>
</div> </div>
@ -788,7 +792,7 @@ Its color.
Then the shape of the top plate is computed Then the shape of the top plate is computed
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">TP.shape = <span style="color: #DCDCCC;">[</span>TP.Rint TP.H; TP.Rint <span style="color: #BFEBBF;">0</span>; TP.Rext <span style="color: #BFEBBF;">0</span>; TP.Rext TP.H<span style="color: #DCDCCC;">]</span>; <pre class="src src-matlab">TP.shape = <span class="org-rainbow-delimiters-depth-1">[</span>TP.Rint TP.H; TP.Rint <span class="org-highlight-numbers-number">0</span>; TP.Rext <span class="org-highlight-numbers-number">0</span>; TP.Rext TP.H<span class="org-rainbow-delimiters-depth-1">]</span>;
</pre> </pre>
</div> </div>
@ -802,11 +806,11 @@ The structure is added to the stewart structure
</div> </div>
</div> </div>
<div id="outline-container-org96d7dab" class="outline-3"> <div id="outline-container-org8725a51" class="outline-3">
<h3 id="org96d7dab"><span class="section-number-3">3.5</span> Legs</h3> <h3 id="org8725a51"><span class="section-number-3">3.5</span> Legs</h3>
<div class="outline-text-3" id="text-3-5"> <div class="outline-text-3" id="text-3-5">
<div id="orga9ade83" class="figure"> <div id="org50ef74c" class="figure">
<p><img src="./figs/stewart_legs.png" alt="stewart_legs.png" /> <p><img src="./figs/stewart_legs.png" alt="stewart_legs.png" />
</p> </p>
<p><span class="figure-number">Figure 3: </span>Schematic for the legs of the Stewart platform</p> <p><span class="figure-number">Figure 3: </span>Schematic for the legs of the Stewart platform</p>
@ -816,7 +820,7 @@ The structure is added to the stewart structure
The leg structure is initialized. The leg structure is initialized.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Leg = struct<span style="color: #DCDCCC;">()</span>; <pre class="src src-matlab">Leg = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
</pre> </pre>
</div> </div>
@ -824,7 +828,7 @@ The leg structure is initialized.
The maximum Stroke of each leg is defined. The maximum Stroke of each leg is defined.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Leg.stroke = opts.stroke; <span style="color: #7F9F7F;">% [m]</span> <pre class="src src-matlab">Leg.stroke = opts.stroke; <span class="org-comment">% [m]</span>
</pre> </pre>
</div> </div>
@ -832,8 +836,8 @@ The maximum Stroke of each leg is defined.
The stiffness and damping of each leg are defined The stiffness and damping of each leg are defined
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Leg.k_ax = opts.k_ax; <span style="color: #7F9F7F;">% Stiffness of each leg [N/m]</span> <pre class="src src-matlab">Leg.k_ax = opts.k_ax; <span class="org-comment">% Stiffness of each leg [N/m]</span>
Leg.c_ax = opts.c_ax; <span style="color: #7F9F7F;">% Damping of each leg [N/(m/s)]</span> Leg.c_ax = opts.c_ax; <span class="org-comment">% Damping of each leg [N/(m/s)]</span>
</pre> </pre>
</div> </div>
@ -841,8 +845,8 @@ Leg.c_ax = opts.c_ax; <span style="color: #7F9F7F;">% Damping of each leg [N/(m/
The radius of the legs are defined The radius of the legs are defined
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Leg.Rtop = <span style="color: #BFEBBF;">10</span>; <span style="color: #7F9F7F;">% Radius of the cylinder of the top part of the leg[mm]</span> <pre class="src src-matlab">Leg.Rtop = <span class="org-highlight-numbers-number">10</span>; <span class="org-comment">% Radius of the cylinder of the top part of the leg[mm]</span>
Leg.Rbot = <span style="color: #BFEBBF;">12</span>; <span style="color: #7F9F7F;">% Radius of the cylinder of the bottom part of the leg [mm]</span> Leg.Rbot = <span class="org-highlight-numbers-number">12</span>; <span class="org-comment">% Radius of the cylinder of the bottom part of the leg [mm]</span>
</pre> </pre>
</div> </div>
@ -850,7 +854,7 @@ Leg.Rbot = <span style="color: #BFEBBF;">12</span>; <span style="color: #7F9F7F;
The density of its material. The density of its material.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Leg.density = opts.density; <span style="color: #7F9F7F;">% Density of the material used for the legs [kg/m3]</span> <pre class="src src-matlab">Leg.density = opts.density; <span class="org-comment">% Density of the material used for the legs [kg/m3]</span>
</pre> </pre>
</div> </div>
@ -858,7 +862,7 @@ The density of its material.
Its color. Its color.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Leg.color = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">5</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">5</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">5</span><span style="color: #DCDCCC;">]</span>; <span style="color: #7F9F7F;">% Color of the top part of the leg [RGB]</span> <pre class="src src-matlab">Leg.color = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">5</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">5</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-comment">% Color of the top part of the leg [RGB]</span>
</pre> </pre>
</div> </div>
@ -866,7 +870,7 @@ Its color.
The radius of spheres representing the ball joints are defined. The radius of spheres representing the ball joints are defined.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Leg.R = <span style="color: #BFEBBF;">1</span>.<span style="color: #BFEBBF;">3</span><span style="color: #7CB8BB;">*</span>Leg.Rbot; <span style="color: #7F9F7F;">% Size of the sphere at the extremity of the leg [mm]</span> <pre class="src src-matlab">Leg.R = <span class="org-highlight-numbers-number">1</span>.<span class="org-highlight-numbers-number">3</span><span class="org-type">*</span>Leg.Rbot; <span class="org-comment">% Size of the sphere at the extremity of the leg [mm]</span>
</pre> </pre>
</div> </div>
@ -874,8 +878,8 @@ The radius of spheres representing the ball joints are defined.
We estimate the length of the legs. We estimate the length of the legs.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">legs = stewart.Ab <span style="color: #7CB8BB;">-</span> stewart.Aa; <pre class="src src-matlab">legs = stewart.Ab <span class="org-type">-</span> stewart.Aa;
Leg.lenght = norm<span style="color: #DCDCCC;">(</span>legs<span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">1</span>,<span style="color: #7CB8BB;">:</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span><span style="color: #7CB8BB;">/</span><span style="color: #BFEBBF;">1</span>.<span style="color: #BFEBBF;">5</span>; Leg.lenght = norm<span class="org-rainbow-delimiters-depth-1">(</span>legs<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">1</span>,<span class="org-type">:</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-highlight-numbers-number">1</span>.<span class="org-highlight-numbers-number">5</span>;
</pre> </pre>
</div> </div>
@ -883,13 +887,13 @@ Leg.lenght = norm<span style="color: #DCDCCC;">(</span>legs<span style="color: #
Then the shape of the bottom leg is estimated Then the shape of the bottom leg is estimated
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">Leg.shape.bot = <span style="text-decoration: underline;">...</span> <pre class="src src-matlab">Leg.shape.bot = <span class="org-underline">...</span>
<span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
Leg.Rbot <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span> Leg.Rbot <span class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
Leg.Rbot Leg.lenght; <span style="text-decoration: underline;">...</span> Leg.Rbot Leg.lenght; <span class="org-underline">...</span>
Leg.Rtop Leg.lenght; <span style="text-decoration: underline;">...</span> Leg.Rtop Leg.lenght; <span class="org-underline">...</span>
Leg.Rtop <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span>Leg.lenght; <span style="text-decoration: underline;">...</span> Leg.Rtop <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">2</span><span class="org-type">*</span>Leg.lenght; <span class="org-underline">...</span>
<span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">*</span>Leg.lenght<span style="color: #DCDCCC;">]</span>; <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">2</span><span class="org-type">*</span>Leg.lenght<span class="org-rainbow-delimiters-depth-1">]</span>;
</pre> </pre>
</div> </div>
@ -903,11 +907,11 @@ The structure is added to the stewart structure
</div> </div>
</div> </div>
<div id="outline-container-org66df86f" class="outline-3"> <div id="outline-container-org722b78f" class="outline-3">
<h3 id="org66df86f"><span class="section-number-3">3.6</span> Ball Joints</h3> <h3 id="org722b78f"><span class="section-number-3">3.6</span> Ball Joints</h3>
<div class="outline-text-3" id="text-3-6"> <div class="outline-text-3" id="text-3-6">
<div id="org250b20b" class="figure"> <div id="org38b2e38" class="figure">
<p><img src="./figs/stewart_ball_joints.png" alt="stewart_ball_joints.png" /> <p><img src="./figs/stewart_ball_joints.png" alt="stewart_ball_joints.png" />
</p> </p>
<p><span class="figure-number">Figure 4: </span>Schematic of the support for the ball joints</p> <p><span class="figure-number">Figure 4: </span>Schematic of the support for the ball joints</p>
@ -921,7 +925,7 @@ The structure is added to the stewart structure
The <code>SP</code> structure is initialized. The <code>SP</code> structure is initialized.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">SP = struct<span style="color: #DCDCCC;">()</span>; <pre class="src src-matlab">SP = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
</pre> </pre>
</div> </div>
@ -929,8 +933,8 @@ The <code>SP</code> structure is initialized.
We can define its rotational stiffness and damping. For now, we use perfect joints. We can define its rotational stiffness and damping. For now, we use perfect joints.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">SP.k = <span style="color: #BFEBBF;">0</span>; <span style="color: #7F9F7F;">% [N*m/deg]</span> <pre class="src src-matlab">SP.k = <span class="org-highlight-numbers-number">0</span>; <span class="org-comment">% [N*m/deg]</span>
SP.c = <span style="color: #BFEBBF;">0</span>; <span style="color: #7F9F7F;">% [N*m/deg]</span> SP.c = <span class="org-highlight-numbers-number">0</span>; <span class="org-comment">% [N*m/deg]</span>
</pre> </pre>
</div> </div>
@ -938,7 +942,7 @@ SP.c = <span style="color: #BFEBBF;">0</span>; <span style="color: #7F9F7F;">% [
Its height is defined Its height is defined
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">SP.H = stewart.Aa<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">3</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">-</span> BP.H; <span style="color: #7F9F7F;">% [mm]</span> <pre class="src src-matlab">SP.H = stewart.Aa<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> BP.H; <span class="org-comment">% [mm]</span>
</pre> </pre>
</div> </div>
@ -946,15 +950,15 @@ Its height is defined
Its radius is based on the radius on the sphere at the end of the legs. Its radius is based on the radius on the sphere at the end of the legs.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">SP.R = Leg.R; <span style="color: #7F9F7F;">% [mm]</span> <pre class="src src-matlab">SP.R = Leg.R; <span class="org-comment">% [mm]</span>
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">SP.section = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span> SP.H<span style="color: #7CB8BB;">-</span>SP.R; <pre class="src src-matlab">SP.section = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span> SP.H<span class="org-type">-</span>SP.R;
<span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span>; <span class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span>;
SP.R <span style="color: #BFEBBF;">0</span>; SP.R <span class="org-highlight-numbers-number">0</span>;
SP.R SP.H<span style="color: #DCDCCC;">]</span>; SP.R SP.H<span class="org-rainbow-delimiters-depth-1">]</span>;
</pre> </pre>
</div> </div>
@ -962,7 +966,7 @@ Its radius is based on the radius on the sphere at the end of the legs.
The density of its material is defined. The density of its material is defined.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">SP.density = opts.density; % [kg<span style="color: #7CB8BB;">/</span>m<span style="color: #7CB8BB;">^</span><span style="color: #BFEBBF;">3</span>] <pre class="src src-matlab">SP.density = opts.density; % [kg<span class="org-type">/</span>m<span class="org-type">^</span><span class="org-highlight-numbers-number">3</span>]
</pre> </pre>
</div> </div>
@ -970,7 +974,7 @@ The density of its material is defined.
Its color is defined. Its color is defined.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">SP.color = <span style="color: #DCDCCC;">[</span><span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">7</span><span style="color: #DCDCCC;">]</span>; <span style="color: #7F9F7F;">% [RGB]</span> <pre class="src src-matlab">SP.color = <span class="org-rainbow-delimiters-depth-1">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">]</span>; <span class="org-comment">% [RGB]</span>
</pre> </pre>
</div> </div>
@ -985,36 +989,36 @@ The structure is added to the Hexapod structure
</div> </div>
</div> </div>
<div id="outline-container-orgf3c4474" class="outline-2"> <div id="outline-container-org5ba95d3" class="outline-2">
<h2 id="orgf3c4474"><span class="section-number-2">4</span> initializeSample</h2> <h2 id="org5ba95d3"><span class="section-number-2">4</span> initializeSample</h2>
<div class="outline-text-2" id="text-4"> <div class="outline-text-2" id="text-4">
</div> </div>
<div id="outline-container-org1ec4152" class="outline-3"> <div id="outline-container-org2dd34bb" class="outline-3">
<h3 id="org1ec4152"><span class="section-number-3">4.1</span> Function description</h3> <h3 id="org2dd34bb"><span class="section-number-3">4.1</span> Function description</h3>
<div class="outline-text-3" id="text-4-1"> <div class="outline-text-3" id="text-4-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[]</span> = <span style="color: #93E0E3;">initializeSample</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">opts_param</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[]</span></span> = <span class="org-function-name">initializeSample</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">opts_param</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-orgcd3268d" class="outline-3"> <div id="outline-container-org2aa1dac" class="outline-3">
<h3 id="orgcd3268d"><span class="section-number-3">4.2</span> Optional Parameters</h3> <h3 id="org2aa1dac"><span class="section-number-3">4.2</span> Optional Parameters</h3>
<div class="outline-text-3" id="text-4-2"> <div class="outline-text-3" id="text-4-2">
<p> <p>
Default values for opts. Default values for opts.
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">sample = struct<span style="color: #DCDCCC;">(</span> <span style="text-decoration: underline;">...</span> <pre class="src src-matlab">sample = struct<span class="org-rainbow-delimiters-depth-1">(</span> <span class="org-underline">...</span>
<span style="color: #CC9393;">'radius'</span>, <span style="color: #BFEBBF;">100</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% radius of the cylinder [mm]</span> <span class="org-string">'radius'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% radius of the cylinder [mm]</span>
<span style="color: #CC9393;">'height'</span>, <span style="color: #BFEBBF;">100</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% height of the cylinder [mm]</span> <span class="org-string">'height'</span>, <span class="org-highlight-numbers-number">100</span>, <span class="org-underline">...</span> <span class="org-comment">% height of the cylinder [mm]</span>
<span style="color: #CC9393;">'mass'</span>, <span style="color: #BFEBBF;">10</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% mass of the cylinder [kg]</span> <span class="org-string">'mass'</span>, <span class="org-highlight-numbers-number">10</span>, <span class="org-underline">...</span> <span class="org-comment">% mass of the cylinder [kg]</span>
<span style="color: #CC9393;">'measheight'</span>, <span style="color: #BFEBBF;">50</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% measurement point z-offset [mm]</span> <span class="org-string">'measheight'</span>, <span class="org-highlight-numbers-number">50</span>, <span class="org-underline">...</span> <span class="org-comment">% measurement point z-offset [mm]</span>
<span style="color: #CC9393;">'offset'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span><span style="color: #BFEBBF;">]</span>, <span style="text-decoration: underline;">...</span> <span style="color: #7F9F7F;">% offset position of the sample [mm]</span> <span class="org-string">'offset'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-underline">...</span> <span class="org-comment">% offset position of the sample [mm]</span>
<span style="color: #CC9393;">'color'</span>, <span style="color: #BFEBBF;">[</span><span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">9</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">1</span> <span style="color: #BFEBBF;">0</span>.<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">]</span> <span style="text-decoration: underline;">...</span> <span class="org-string">'color'</span>, <span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">9</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">]</span> <span class="org-underline">...</span>
<span style="color: #DCDCCC;">)</span>; <span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
@ -1022,26 +1026,26 @@ Default values for opts.
Populate opts with input parameters Populate opts with input parameters
</p> </p>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">if</span> exist<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'opts_param','var'</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">if</span> exist<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'opts_param','var'</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">opt</span> = <span style="color: #BFEBBF;">fieldnames</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">opts_param</span><span style="color: #DCDCCC;">)</span><span style="color: #BFEBBF;">'</span> <span class="org-keyword">for</span> <span class="org-variable-name">opt</span> = <span class="org-constant">fieldnames</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">opts_param</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-constant">'</span>
sample.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span> = opts_param.<span style="color: #DCDCCC;">(</span>opt<span style="color: #BFEBBF;">{</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span>; sample.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span> = opts_param.<span class="org-rainbow-delimiters-depth-1">(</span>opt<span class="org-rainbow-delimiters-depth-2">{</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">}</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
</div> </div>
<div id="outline-container-org29ee9ed" class="outline-3"> <div id="outline-container-orgea68e95" class="outline-3">
<h3 id="org29ee9ed"><span class="section-number-3">4.3</span> Save the Sample structure</h3> <h3 id="orgea68e95"><span class="section-number-3">4.3</span> Save the Sample structure</h3>
<div class="outline-text-3" id="text-4-3"> <div class="outline-text-3" id="text-4-3">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab">save<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'./mat/sample.mat', 'sample'</span><span style="color: #DCDCCC;">)</span>; <pre class="src src-matlab">save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/sample.mat', 'sample'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre> </pre>
</div> </div>
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">end</span> <pre class="src src-matlab"><span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
@ -1050,7 +1054,7 @@ Populate opts with input parameters
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-03-25 lun. 11:18</p> <p class="date">Created: 2019-08-26 lun. 11:56</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View File

@ -1,27 +1,23 @@
#+TITLE: Stewart Platform - Simscape Model #+TITLE: Stewart Platform - Simscape Model
:DRAWER: :DRAWER:
#+STARTUP: overview #+HTML_LINK_HOME: ./index.html
#+HTML_LINK_UP: ./index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
#+HTML_HEAD: <script src="js/jquery.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.min.js"></script>
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script> #+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/readtheorg.js"></script> #+HTML_HEAD: <script src="./js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+LaTeX_HEADER: \usepackage{svg}
#+LaTeX_HEADER: \newcommand{\authorFirstName}{Thomas}
#+LaTeX_HEADER: \newcommand{\authorLastName}{Dehaeze}
#+LaTeX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
#+PROPERTY: header-args:matlab :session *MATLAB* #+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :comments org #+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both #+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :eval no-export #+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs #+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes #+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:END: :END:
Stewart platforms are generated in multiple steps. Stewart platforms are generated in multiple steps.

View File

@ -3,7 +3,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<!-- 2019-03-22 ven. 12:03 --> <!-- 2019-08-26 lun. 11:56 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Stiffness of the Stewart Platform</title> <title>Stiffness of the Stewart Platform</title>
@ -193,6 +193,12 @@
.org-svg { width: 90%; } .org-svg { width: 90%; }
/*]]>*/--> /*]]>*/-->
</style> </style>
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
<script src="./js/jquery.min.js"></script>
<script src="./js/bootstrap.min.js"></script>
<script src="./js/jquery.stickytableheaders.min.js"></script>
<script src="./js/readtheorg.js"></script>
<script type="text/javascript"> <script type="text/javascript">
/* /*
@licstart The following is the entire license notice for the @licstart The following is the entire license notice for the
@ -241,34 +247,38 @@ for the JavaScript code in this tag.
</script> </script>
</head> </head>
<body> <body>
<div id="content"> <div id="org-div-home-and-up">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Stiffness of the Stewart Platform</h1> <h1 class="title">Stiffness of the Stewart Platform</h1>
<div id="table-of-contents"> <div id="table-of-contents">
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org178badc">1. Functions</a> <li><a href="#org4cfa1de">1. Functions</a>
<ul> <ul>
<li><a href="#org31327cd">1.1. getStiffnessMatrix</a></li> <li><a href="#orgf252177">1.1. getStiffnessMatrix</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div id="outline-container-org178badc" class="outline-2"> <div id="outline-container-org4cfa1de" class="outline-2">
<h2 id="org178badc"><span class="section-number-2">1</span> Functions</h2> <h2 id="org4cfa1de"><span class="section-number-2">1</span> Functions</h2>
<div class="outline-text-2" id="text-1"> <div class="outline-text-2" id="text-1">
</div> </div>
<div id="outline-container-org31327cd" class="outline-3"> <div id="outline-container-orgf252177" class="outline-3">
<h3 id="org31327cd"><span class="section-number-3">1.1</span> getStiffnessMatrix</h3> <h3 id="orgf252177"><span class="section-number-3">1.1</span> getStiffnessMatrix</h3>
<div class="outline-text-3" id="text-1-1"> <div class="outline-text-3" id="text-1-1">
<div class="org-src-container"> <div class="org-src-container">
<pre class="src src-matlab"><span style="color: #F0DFAF; font-weight: bold;">function</span> <span style="color: #DCDCCC;">[</span><span style="color: #DFAF8F;">K</span><span style="color: #DCDCCC;">]</span> = <span style="color: #93E0E3;">getStiffnessMatrix</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">k</span>, <span style="color: #DFAF8F;">J</span><span style="color: #DCDCCC;">)</span> <pre class="src src-matlab"><span class="org-keyword">function</span> <span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">[</span></span><span class="org-variable-name">K</span><span class="org-variable-name"><span class="org-rainbow-delimiters-depth-1">]</span></span> = <span class="org-function-name">getStiffnessMatrix</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">k</span>, <span class="org-variable-name">J</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span style="color: #7F9F7F;">% k - leg stiffness</span> <span class="org-comment">% k - leg stiffness</span>
<span style="color: #7F9F7F;">% J - Jacobian matrix</span> <span class="org-comment">% J - Jacobian matrix</span>
K = k<span style="color: #7CB8BB;">*</span><span style="color: #DCDCCC;">(</span>J'<span style="color: #7CB8BB;">*</span>J<span style="color: #DCDCCC;">)</span>; K = k<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>J'<span class="org-type">*</span>J<span class="org-rainbow-delimiters-depth-1">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span> <span class="org-keyword">end</span>
</pre> </pre>
</div> </div>
</div> </div>
@ -277,7 +287,7 @@ for the JavaScript code in this tag.
</div> </div>
<div id="postamble" class="status"> <div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p> <p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-03-22 ven. 12:03</p> <p class="date">Created: 2019-08-26 lun. 11:56</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p> <p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div> </div>
</body> </body>

View File

@ -1,27 +1,24 @@
#+TITLE: Stiffness of the Stewart Platform #+TITLE: Stiffness of the Stewart Platform
:DRAWER: :DRAWER:
#+STARTUP: overview #+HTML_LINK_HOME: ./index.html
#+HTML_LINK_UP: ./index.html
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/htmlize.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="css/readtheorg.css"/> #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
#+HTML_HEAD: <script src="js/jquery.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.min.js"></script>
#+HTML_HEAD: <script src="js/bootstrap.min.js"></script> #+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script> #+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
#+HTML_HEAD: <script type="text/javascript" src="js/readtheorg.js"></script> #+HTML_HEAD: <script src="./js/readtheorg.js"></script>
#+LATEX_CLASS: cleanreport
#+LaTeX_CLASS_OPTIONS: [tocnp, secbreak, minted]
#+LaTeX_HEADER: \usepackage{svg}
#+LaTeX_HEADER: \newcommand{\authorFirstName}{Thomas}
#+LaTeX_HEADER: \newcommand{\authorLastName}{Dehaeze}
#+LaTeX_HEADER: \newcommand{\authorEmail}{dehaeze.thomas@gmail.com}
#+PROPERTY: header-args:matlab :session *MATLAB* #+PROPERTY: header-args:matlab :session *MATLAB*
#+PROPERTY: header-args:matlab+ :tangle matlab/stiffness_study.m
#+PROPERTY: header-args:matlab+ :comments org #+PROPERTY: header-args:matlab+ :comments org
#+PROPERTY: header-args:matlab+ :exports both #+PROPERTY: header-args:matlab+ :exports both
#+PROPERTY: header-args:matlab+ :results none
#+PROPERTY: header-args:matlab+ :eval no-export #+PROPERTY: header-args:matlab+ :eval no-export
#+PROPERTY: header-args:matlab+ :output-dir figs #+PROPERTY: header-args:matlab+ :noweb yes
#+PROPERTY: header-args:matlab+ :mkdirp yes #+PROPERTY: header-args:matlab+ :mkdirp yes
#+PROPERTY: header-args:matlab+ :output-dir figs
:END: :END:
* Functions * Functions