Update all html pages to include CSS and JS.
This commit is contained in:
parent
dda9ce734a
commit
105e34d5f9
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2019-03-26 mar. 08:47 -->
|
||||
<!-- 2019-08-26 lun. 11:58 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Cubic configuration for the Stewart Platform</title>
|
||||
@ -193,12 +193,12 @@
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</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 type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script>
|
||||
<script type="text/javascript" src="js/readtheorg.js"></script>
|
||||
<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">
|
||||
/*
|
||||
@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>
|
||||
</head>
|
||||
<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>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org43e3f4a">1. Questions we wish to answer with this analysis</a></li>
|
||||
<li><a href="#org9890470">2. Configuration Analysis - Stiffness Matrix</a>
|
||||
<li><a href="#org1bafc26">1. Questions we wish to answer with this analysis</a></li>
|
||||
<li><a href="#orga5361fc">2. Configuration Analysis - Stiffness Matrix</a>
|
||||
<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="#orga5ac347">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="#orgd0daf23">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="#orge00f8a7">2.1. Cubic Stewart platform centered with the cube center - Jacobian 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="#orgcda0ff4">2.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube 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="#org42ac83d">2.5. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org0969b06">3. Cubic size analysis</a></li>
|
||||
<li><a href="#org0f56064">4. initializeCubicConfiguration</a>
|
||||
<li><a href="#orgb37e81b">3. Cubic size analysis</a></li>
|
||||
<li><a href="#org2b0a41e">4. initializeCubicConfiguration</a>
|
||||
<ul>
|
||||
<li><a href="#orge3f31b8">4.1. Function description</a></li>
|
||||
<li><a href="#org2580fde">4.2. Optional Parameters</a></li>
|
||||
<li><a href="#org230a253">4.3. Cube Creation</a></li>
|
||||
<li><a href="#orgd1a04ef">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="#orgc3cd1d1">4.6. Determinate the location of the joints</a></li>
|
||||
<li><a href="#org9063896">4.7. Returns Stewart Structure</a></li>
|
||||
<li><a href="#orgfb743ea">4.1. Function description</a></li>
|
||||
<li><a href="#orgcc92353">4.2. Optional Parameters</a></li>
|
||||
<li><a href="#org384ec97">4.3. Cube Creation</a></li>
|
||||
<li><a href="#orgefa2328">4.4. Vectors of each leg</a></li>
|
||||
<li><a href="#orgf6960ff">4.5. Verification of Height of the Stewart Platform</a></li>
|
||||
<li><a href="#orgd7e65db">4.6. Determinate the location of the joints</a></li>
|
||||
<li><a href="#org38f602f">4.7. Returns Stewart Structure</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org5807740">5. Tests</a>
|
||||
<li><a href="#org243b392">5. Tests</a>
|
||||
<ul>
|
||||
<li><a href="#org8809c47">5.1. First attempt to parametrisation</a></li>
|
||||
<li><a href="#org71c64bc">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="#org86fb4aa">5.1. First attempt to parametrisation</a></li>
|
||||
<li><a href="#orgcc2eaf4">5.2. Second attempt</a></li>
|
||||
<li><a href="#org7824b39">5.3. Generate the Stewart platform for a Cubic configuration</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -323,11 +327,11 @@ The specificity of the Cubic configuration is that each actuator is orthogonal w
|
||||
</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>
|
||||
|
||||
<div id="outline-container-org43e3f4a" class="outline-2">
|
||||
<h2 id="org43e3f4a"><span class="section-number-2">1</span> Questions we wish to answer with this analysis</h2>
|
||||
<div id="outline-container-org1bafc26" class="outline-2">
|
||||
<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">
|
||||
<p>
|
||||
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 id="outline-container-org9890470" class="outline-2">
|
||||
<h2 id="org9890470"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2>
|
||||
<div id="outline-container-orga5361fc" class="outline-2">
|
||||
<h2 id="orga5361fc"><span class="section-number-2">2</span> Configuration Analysis - Stiffness Matrix</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-org5d80bd3" 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>
|
||||
<div id="outline-container-orge00f8a7" class="outline-3">
|
||||
<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">
|
||||
<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.
|
||||
</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>
|
||||
<p><span class="figure-number">Figure 1: </span>Centered cubic configuration</p>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>;
|
||||
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 class="org-rainbow-delimiters-depth-1">)</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>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -457,32 +461,32 @@ save<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'./mat/s
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga5ac347" 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>
|
||||
<div id="outline-container-org575d55b" class="outline-3">
|
||||
<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">
|
||||
<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.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>;
|
||||
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -561,16 +565,16 @@ stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stew
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org47743ef" 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>
|
||||
<div id="outline-container-orgcda0ff4" class="outline-3">
|
||||
<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">
|
||||
<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.
|
||||
</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>
|
||||
<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>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>;
|
||||
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</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 id="outline-container-orgd0daf23" 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>
|
||||
<div id="outline-container-org06f7f99" class="outline-3">
|
||||
<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">
|
||||
<p>
|
||||
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>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>;
|
||||
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</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 id="outline-container-org6729b53" class="outline-3">
|
||||
<h3 id="org6729b53"><span class="section-number-3">2.5</span> Conclusion</h3>
|
||||
<div id="outline-container-org42ac83d" class="outline-3">
|
||||
<h3 id="org42ac83d"><span class="section-number-3">2.5</span> Conclusion</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
<div class="important">
|
||||
<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 id="outline-container-org0969b06" class="outline-2">
|
||||
<h2 id="org0969b06"><span class="section-number-2">3</span> Cubic size analysis</h2>
|
||||
<div id="outline-container-orgb37e81b" class="outline-2">
|
||||
<h2 id="orgb37e81b"><span class="section-number-2">3</span> Cubic size analysis</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<p>
|
||||
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>
|
||||
|
||||
<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>;
|
||||
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>;
|
||||
<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 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>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
H_cube = H_cubes<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span>;
|
||||
H_tot = <span style="color: #BFEBBF;">100</span>;
|
||||
H = <span style="color: #BFEBBF;">80</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 class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
H_tot = <span class="org-highlight-numbers-number">100</span>;
|
||||
H = <span class="org-highlight-numbers-number">80</span>;
|
||||
|
||||
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 class="org-rainbow-delimiters-depth-1">)</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>
|
||||
<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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<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> = <span class="org-rainbow-delimiters-depth-1">{</span>stewart<span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</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.
|
||||
</p>
|
||||
<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>;
|
||||
<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>
|
||||
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;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</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}\)
|
||||
</p>
|
||||
<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;
|
||||
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 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">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 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;
|
||||
legend<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'location', 'northwest'</span><span style="color: #DCDCCC;">)</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>;
|
||||
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 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>
|
||||
</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>
|
||||
<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 id="outline-container-org0f56064" class="outline-2">
|
||||
<h2 id="org0f56064"><span class="section-number-2">4</span> initializeCubicConfiguration</h2>
|
||||
<div id="outline-container-org2b0a41e" class="outline-2">
|
||||
<h2 id="org2b0a41e"><span class="section-number-2">4</span> initializeCubicConfiguration</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<p>
|
||||
<a id="org7e73a4b"></a>
|
||||
<a id="org7faef27"></a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge3f31b8" class="outline-3">
|
||||
<h3 id="orge3f31b8"><span class="section-number-3">4.1</span> Function description</h3>
|
||||
<div id="outline-container-orgfb743ea" class="outline-3">
|
||||
<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="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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2580fde" class="outline-3">
|
||||
<h3 id="org2580fde"><span class="section-number-3">4.2</span> Optional Parameters</h3>
|
||||
<div id="outline-container-orgcc92353" class="outline-3">
|
||||
<h3 id="orgcc92353"><span class="section-number-3">4.2</span> Optional Parameters</h3>
|
||||
<div class="outline-text-3" id="text-4-2">
|
||||
<p>
|
||||
Default values for opts.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -947,29 +951,29 @@ Default values for opts.
|
||||
Populate opts with input parameters
|
||||
</p>
|
||||
<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>
|
||||
<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>
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org230a253" class="outline-3">
|
||||
<h3 id="org230a253"><span class="section-number-3">4.3</span> Cube Creation</h3>
|
||||
<div id="outline-container-org384ec97" class="outline-3">
|
||||
<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="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>
|
||||
<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 style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: 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 style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: 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 style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: 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>;
|
||||
points = opts.L<span style="color: #7CB8BB;">*</span>points;
|
||||
<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 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 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 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 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 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 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 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 class="org-type">*</span>points;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -977,16 +981,16 @@ points = opts.L<span style="color: #7CB8BB;">*</span>points;
|
||||
We create the rotation matrix to rotate the cube
|
||||
</p>
|
||||
<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>;
|
||||
sx = sx<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sx<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 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 = sy<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sy<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 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 = sz<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sz<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 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>
|
||||
</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
|
||||
</p>
|
||||
<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>;
|
||||
<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>
|
||||
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>';
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd1a04ef" class="outline-3">
|
||||
<h3 id="orgd1a04ef"><span class="section-number-3">4.4</span> Vectors of each leg</h3>
|
||||
<div id="outline-container-orgefa2328" class="outline-3">
|
||||
<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="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>
|
||||
<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">4</span>; <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">6</span>; <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">6</span>; <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">7</span>; <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">7</span><span style="color: #DCDCCC;">]</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 class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">7</span>; <span class="org-underline">...</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>
|
||||
</div>
|
||||
|
||||
@ -1020,51 +1024,51 @@ We use to rotation matrix to rotate the cube
|
||||
Vectors are:
|
||||
</p>
|
||||
<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>;
|
||||
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>;
|
||||
<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 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>
|
||||
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_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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfec0778" class="outline-3">
|
||||
<h3 id="orgfec0778"><span class="section-number-3">4.5</span> Verification of Height of the Stewart Platform</h3>
|
||||
<div id="outline-container-orgf6960ff" class="outline-3">
|
||||
<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">
|
||||
<p>
|
||||
If the Stewart platform is not contained in the cube, throw an error.
|
||||
</p>
|
||||
|
||||
<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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">if</span> opts.H0 <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>
|
||||
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>)));
|
||||
<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;">></span> cube<span style="color: #D0BF8F;">(</span><span style="color: #BFEBBF;">4</span>, <span style="color: #BFEBBF;">3</span><span style="color: #D0BF8F;">)</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 style="color: #9FC59F;">(</span><span style="color: #CC9393;">'H0+H is too high'</span><span style="color: #9FC59F;">)</span>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 class="org-keyword">if</span> opts.H0 <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>
|
||||
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 class="org-keyword">else</span> <span class="org-keyword">if</span> opts.H0 <span class="org-type">+</span> opts.H <span class="org-type">></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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc3cd1d1" class="outline-3">
|
||||
<h3 id="orgc3cd1d1"><span class="section-number-3">4.6</span> Determinate the location of the joints</h3>
|
||||
<div id="outline-container-orgd7e65db" class="outline-3">
|
||||
<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">
|
||||
<p>
|
||||
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.
|
||||
</p>
|
||||
<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: #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>
|
||||
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>;
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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-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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</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\}\).
|
||||
</p>
|
||||
<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>;
|
||||
<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>
|
||||
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>;
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</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\}\).
|
||||
</p>
|
||||
<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>;
|
||||
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>;
|
||||
<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 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>
|
||||
</div>
|
||||
|
||||
<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>;
|
||||
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>;
|
||||
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>;
|
||||
<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 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 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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9063896" class="outline-3">
|
||||
<h3 id="org9063896"><span class="section-number-3">4.7</span> Returns Stewart Structure</h3>
|
||||
<div id="outline-container-org38f602f" class="outline-3">
|
||||
<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="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.Ab = Ab;
|
||||
stewart.Bb = Bb;
|
||||
stewart.H_tot = opts.H_tot;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5807740" class="outline-2">
|
||||
<h2 id="org5807740"><span class="section-number-2">5</span> Tests</h2>
|
||||
<div id="outline-container-org243b392" class="outline-2">
|
||||
<h2 id="org243b392"><span class="section-number-2">5</span> Tests</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
</div>
|
||||
<div id="outline-container-org8809c47" class="outline-3">
|
||||
<h3 id="org8809c47"><span class="section-number-3">5.1</span> First attempt to parametrisation</h3>
|
||||
<div id="outline-container-org86fb4aa" class="outline-3">
|
||||
<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 id="org520c5d6" class="figure">
|
||||
<div id="org10fe09c" class="figure">
|
||||
<p><img src="./figs/stewart_bottom_plate.png" alt="stewart_bottom_plate.png" />
|
||||
</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 id="outline-container-org71c64bc" class="outline-3">
|
||||
<h3 id="org71c64bc"><span class="section-number-3">5.2</span> Second attempt</h3>
|
||||
<div id="outline-container-orgcc2eaf4" class="outline-3">
|
||||
<h3 id="orgcc2eaf4"><span class="section-number-3">5.2</span> Second attempt</h3>
|
||||
<div class="outline-text-3" id="text-5-2">
|
||||
<p>
|
||||
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>
|
||||
|
||||
<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>
|
||||
<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 style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: 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 style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: 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 style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: 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>;
|
||||
<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 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 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 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 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 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 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 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>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span style="color: #7CB8BB;">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>
|
||||
<pre class="src src-matlab"><span class="org-type">figure</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>
|
||||
</div>
|
||||
|
||||
<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>;
|
||||
sx = sx<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sx<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 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 = sy<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sy<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 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 = sz<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sz<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 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>
|
||||
</div>
|
||||
|
||||
<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>;
|
||||
<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>
|
||||
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>';
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<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;
|
||||
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 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>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 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;
|
||||
</pre>
|
||||
</div>
|
||||
@ -1229,18 +1233,18 @@ hold off;
|
||||
Now we plot the legs of the hexapod.
|
||||
</p>
|
||||
<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>
|
||||
<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">4</span>; <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #BFEBBF;">2</span>, <span style="color: #BFEBBF;">6</span>; <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">6</span>; <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #BFEBBF;">5</span>, <span style="color: #BFEBBF;">7</span>; <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #BFEBBF;">3</span>, <span style="color: #BFEBBF;">7</span><span style="color: #DCDCCC;">]</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 class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">4</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">6</span>; <span class="org-underline">...</span>
|
||||
<span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">7</span>; <span class="org-underline">...</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;
|
||||
<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>
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 class="org-keyword">end</span>
|
||||
hold off;
|
||||
</pre>
|
||||
</div>
|
||||
@ -1249,13 +1253,13 @@ hold off;
|
||||
Vectors are:
|
||||
</p>
|
||||
<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>;
|
||||
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>;
|
||||
<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 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>
|
||||
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_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>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</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.
|
||||
</p>
|
||||
<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>
|
||||
</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
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc132128" class="outline-3">
|
||||
<h3 id="orgc132128"><span class="section-number-3">5.3</span> Generate the Stewart platform for a Cubic configuration</h3>
|
||||
<div id="outline-container-org7824b39" class="outline-3">
|
||||
<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">
|
||||
<p>
|
||||
First we defined the height of the Hexapod.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
Ze = Zs <span style="color: #7CB8BB;">+</span> H; <span style="color: #7F9F7F;">% Height of the mobile 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 class="org-type">+</span> H; <span class="org-comment">% Height of the mobile platform</span>
|
||||
</pre>
|
||||
</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.
|
||||
</p>
|
||||
<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: #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>
|
||||
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>;
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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-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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</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
|
||||
</p>
|
||||
<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>;
|
||||
<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>
|
||||
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>;
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -1330,15 +1334,15 @@ And the location of the joints on the mobile platform
|
||||
And we plot the legs.
|
||||
</p>
|
||||
<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;
|
||||
<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>
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 class="org-keyword">end</span>
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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 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 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>
|
||||
</div>
|
||||
</div>
|
||||
@ -1356,7 +1360,7 @@ zlim<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">[</span>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<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>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -1,27 +1,24 @@
|
||||
#+TITLE: Cubic configuration for the Stewart Platform
|
||||
: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/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="js/jquery.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 type="text/javascript" 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}
|
||||
#+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: <script src="./js/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/readtheorg.js"></script>
|
||||
|
||||
#+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+ :exports both
|
||||
#+PROPERTY: header-args:matlab+ :results none
|
||||
#+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+ :output-dir figs
|
||||
:END:
|
||||
|
||||
#+begin_src matlab :results none :exports none :noweb yes
|
||||
|
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2019-03-22 ven. 12:03 -->
|
||||
<!-- 2019-08-26 lun. 11:55 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Identification of the Stewart Platform using Simscape</title>
|
||||
@ -193,12 +193,12 @@
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</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 type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script>
|
||||
<script type="text/javascript" src="js/readtheorg.js"></script>
|
||||
<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">
|
||||
/*
|
||||
@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>
|
||||
</head>
|
||||
<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>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org0c15748">1. Identification</a></li>
|
||||
<li><a href="#orgb51bebd">2. Cartesian Plot</a></li>
|
||||
<li><a href="#org8822347">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="#org4f7f749">5. Transmissibility</a></li>
|
||||
<li><a href="#orgc027ff6">6. Compliance</a></li>
|
||||
<li><a href="#orgeb43267">7. Inertial</a></li>
|
||||
<li><a href="#org702dc6c">8. identifyPlant</a></li>
|
||||
<li><a href="#org5e5b5f3">1. Identification</a></li>
|
||||
<li><a href="#orge4ddae7">2. Cartesian Plot</a></li>
|
||||
<li><a href="#orgc3f5223">3. From a force to force sensor</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="#org3e4873e">5. Transmissibility</a></li>
|
||||
<li><a href="#org1ab2176">6. Compliance</a></li>
|
||||
<li><a href="#orgf18ed8c">7. Inertial</a></li>
|
||||
<li><a href="#org9ed65c5">8. identifyPlant</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0c15748" class="outline-2">
|
||||
<h2 id="org0c15748"><span class="section-number-2">1</span> Identification</h2>
|
||||
<div id="outline-container-org5e5b5f3" class="outline-2">
|
||||
<h2 id="org5e5b5f3"><span class="section-number-2">1</span> Identification</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
The hexapod structure and Sample structure are initialized.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">initializeHexapod<span style="color: #DCDCCC;">()</span>;
|
||||
initializeSample<span style="color: #DCDCCC;">()</span>;
|
||||
<pre class="src src-matlab">stewart = initializeGeneralConfiguration<span class="org-rainbow-delimiters-depth-1">()</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>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb51bebd" class="outline-2">
|
||||
<h2 id="orgb51bebd"><span class="section-number-2">2</span> Cartesian Plot</h2>
|
||||
<div id="outline-container-orge4ddae7" class="outline-2">
|
||||
<h2 id="orge4ddae7"><span class="section-number-2">2</span> Cartesian Plot</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
From a force applied in the Cartesian frame to a displacement in the Cartesian frame.
|
||||
</p>
|
||||
<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;
|
||||
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>;
|
||||
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">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>;
|
||||
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;
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8822347" class="outline-2">
|
||||
<h2 id="org8822347"><span class="section-number-2">3</span> From a force to force sensor</h2>
|
||||
<div id="outline-container-orgc3f5223" class="outline-2">
|
||||
<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="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;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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>
|
||||
</div>
|
||||
|
||||
<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;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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">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>;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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;
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb3f97c3" 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>
|
||||
<div id="outline-container-org1795f38" class="outline-2">
|
||||
<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="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;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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>
|
||||
</div>
|
||||
|
||||
<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;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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">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>;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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;
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org4f7f749" class="outline-2">
|
||||
<h2 id="org4f7f749"><span class="section-number-2">5</span> Transmissibility</h2>
|
||||
<div id="outline-container-org3e4873e" class="outline-2">
|
||||
<h2 id="org3e4873e"><span class="section-number-2">5</span> Transmissibility</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<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;
|
||||
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>;
|
||||
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>;
|
||||
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">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>;
|
||||
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>;
|
||||
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;
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<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;
|
||||
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>;
|
||||
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>;
|
||||
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">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>;
|
||||
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>;
|
||||
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;
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<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;
|
||||
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>;
|
||||
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>;
|
||||
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">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_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>;
|
||||
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;
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc027ff6" class="outline-2">
|
||||
<h2 id="orgc027ff6"><span class="section-number-2">6</span> Compliance</h2>
|
||||
<div id="outline-container-org1ab2176" class="outline-2">
|
||||
<h2 id="org1ab2176"><span class="section-number-2">6</span> Compliance</h2>
|
||||
<div class="outline-text-2" id="text-6">
|
||||
<p>
|
||||
From a force applied in the Cartesian frame to a relative displacement of the mobile platform with respect to the base.
|
||||
</p>
|
||||
|
||||
<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;
|
||||
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>;
|
||||
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>;
|
||||
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">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>;
|
||||
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>;
|
||||
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;
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgeb43267" class="outline-2">
|
||||
<h2 id="orgeb43267"><span class="section-number-2">7</span> Inertial</h2>
|
||||
<div id="outline-container-orgf18ed8c" class="outline-2">
|
||||
<h2 id="orgf18ed8c"><span class="section-number-2">7</span> Inertial</h2>
|
||||
<div class="outline-text-2" id="text-7">
|
||||
<p>
|
||||
From a force applied on the Cartesian frame to the absolute displacement of the mobile platform.
|
||||
</p>
|
||||
|
||||
<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;
|
||||
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>;
|
||||
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>;
|
||||
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">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>;
|
||||
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>;
|
||||
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;
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org702dc6c" class="outline-2">
|
||||
<h2 id="org702dc6c"><span class="section-number-2">8</span> identifyPlant</h2>
|
||||
<div id="outline-container-org9ed65c5" class="outline-2">
|
||||
<h2 id="org9ed65c5"><span class="section-number-2">8</span> identifyPlant</h2>
|
||||
<div class="outline-text-2" id="text-8">
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -470,15 +503,15 @@ hold off;
|
||||
We use this code block to pass optional parameters.
|
||||
</p>
|
||||
<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>
|
||||
opts = struct<span style="color: #DCDCCC;">()</span>;
|
||||
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Default values for opts</span></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 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 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>
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Populate opts with input parameters</span></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 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 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 class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -488,7 +521,7 @@ Here, we just identify the system at time \(t = 0\).
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -496,7 +529,7 @@ options.SampleTime = <span style="color: #BFEBBF;">0</span>;
|
||||
We define the name of the Simulink File used to identification.
|
||||
</p>
|
||||
<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>
|
||||
</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.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span style="color: #7F9F7F; font-weight: bold; text-decoration: overline;">%% Inputs</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 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 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 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>
|
||||
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Inputs</span></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 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 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 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>
|
||||
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 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 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 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>
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Outputs</span></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 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 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 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>
|
||||
</div>
|
||||
|
||||
@ -522,7 +555,7 @@ io<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">8</span><s
|
||||
The linearization is run.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -530,14 +563,14 @@ The linearization is run.
|
||||
We defined all the Input/Output names of the identified transfer function.
|
||||
</p>
|
||||
<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>
|
||||
<span style="color: #CC9393;">'F1', 'F2', 'F3', 'F4', 'F5', 'F6'</span>, <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #CC9393;">'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'</span>, <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #CC9393;">'Dwx', 'Dwy', 'Dwz', 'Rwx', 'Rwy', 'Rwz'</span><span style="color: #DCDCCC;">}</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>
|
||||
<span style="color: #CC9393;">'D1m', 'D2m', 'D3m', 'D4m', 'D5m', 'D6m'</span>, <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #CC9393;">'F1m', 'F2m', 'F3m', 'F4m', 'F5m', 'F6m'</span>, <span style="text-decoration: underline;">...</span>
|
||||
<span style="color: #CC9393;">'Dxtm', 'Dytm', 'Dztm', 'Rxtm', 'Rytm', 'Rztm'</span><span style="color: #DCDCCC;">}</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 class="org-string">'F1', 'F2', 'F3', 'F4', 'F5', 'F6'</span>, <span class="org-underline">...</span>
|
||||
<span class="org-string">'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'</span>, <span class="org-underline">...</span>
|
||||
<span class="org-string">'Dwx', 'Dwy', 'Dwz', 'Rwx', 'Rwy', 'Rwz'</span><span class="org-rainbow-delimiters-depth-1">}</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 class="org-string">'D1m', 'D2m', 'D3m', 'D4m', 'D5m', 'D6m'</span>, <span class="org-underline">...</span>
|
||||
<span class="org-string">'F1m', 'F2m', 'F3m', 'F4m', 'F5m', 'F6m'</span>, <span class="org-underline">...</span>
|
||||
<span class="org-string">'Dxtm', 'Dytm', 'Dztm', 'Rxtm', 'Rytm', 'Rztm'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
</pre>
|
||||
</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.
|
||||
</p>
|
||||
<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>;
|
||||
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_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_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_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_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>;
|
||||
<span style="color: #7F9F7F;">% sys.G_all = minreal(G);</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 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 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 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 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 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 class="org-comment">% sys.G_all = minreal(G);</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
@ -564,7 +597,7 @@ sys.G_iner = minreal<span style="color: #DCDCCC;">(</span>G<span style="color: #
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<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>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -1,27 +1,24 @@
|
||||
#+TITLE: Identification of the Stewart Platform using Simscape
|
||||
: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/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="js/jquery.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 type="text/javascript" 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}
|
||||
#+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: <script src="./js/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/readtheorg.js"></script>
|
||||
|
||||
#+PROPERTY: header-args:matlab :session *MATLAB*
|
||||
#+PROPERTY: header-args:matlab+ :tangle matlab/identification.m
|
||||
#+PROPERTY: header-args:matlab+ :comments org
|
||||
#+PROPERTY: header-args:matlab+ :exports both
|
||||
#+PROPERTY: header-args:matlab+ :results none
|
||||
#+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+ :output-dir figs
|
||||
:END:
|
||||
|
||||
* Identification
|
||||
|
37
index.html
37
index.html
@ -3,10 +3,10 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<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 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="author" content="Thomas Dehaeze" />
|
||||
<style type="text/css">
|
||||
@ -197,8 +197,8 @@
|
||||
<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 type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script>
|
||||
<script type="text/javascript" src="js/readtheorg.js"></script>
|
||||
<script src="js/jquery.stickytableheaders.min.js"></script>
|
||||
<script src="js/readtheorg.js"></script>
|
||||
<script type="text/javascript">
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
@ -248,20 +248,10 @@ for the JavaScript code in this tag.
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
<h1 class="title">Stewart Platform Studies</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>
|
||||
<h1 class="title">Stewart Platforms</h1>
|
||||
|
||||
<div id="outline-container-org431e1f9" class="outline-2">
|
||||
<h2 id="org431e1f9"><span class="section-number-2">1</span> Simscape Model</h2>
|
||||
<div id="outline-container-org6a8d5e6" class="outline-2">
|
||||
<h2 id="org6a8d5e6"><span class="section-number-2">1</span> Simscape Model</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<ul class="org-ul">
|
||||
<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 id="outline-container-org27d326c" class="outline-2">
|
||||
<h2 id="org27d326c"><span class="section-number-2">2</span> Architecture Study</h2>
|
||||
<div id="outline-container-org28395cb" class="outline-2">
|
||||
<h2 id="org28395cb"><span class="section-number-2">2</span> Architecture Study</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<ul class="org-ul">
|
||||
<li><a href="kinematic-study.html">Kinematic Study</a></li>
|
||||
@ -282,8 +272,8 @@ for the JavaScript code in this tag.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgd097f1e" class="outline-2">
|
||||
<h2 id="orgd097f1e"><span class="section-number-2">3</span> Motion Control</h2>
|
||||
<div id="outline-container-org6738e47" class="outline-2">
|
||||
<h2 id="org6738e47"><span class="section-number-2">3</span> Motion Control</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<ul class="org-ul">
|
||||
<li>Active Damping</li>
|
||||
@ -293,10 +283,5 @@ for the JavaScript code in this tag.
|
||||
</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>
|
||||
</html>
|
||||
|
23
index.org
23
index.org
@ -1,27 +1,14 @@
|
||||
#+TITLE: Stewart Platform Studies
|
||||
#+TITLE: Stewart Platforms
|
||||
: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/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="js/jquery.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 type="text/javascript" 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
|
||||
#+HTML_HEAD: <script src="js/jquery.stickytableheaders.min.js"></script>
|
||||
#+HTML_HEAD: <script src="js/readtheorg.js"></script>
|
||||
:END:
|
||||
|
||||
* Simscape Model
|
||||
|
File diff suppressed because one or more lines are too long
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2019-03-26 mar. 09:24 -->
|
||||
<!-- 2019-08-26 lun. 11:55 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Kinematic Study of the Stewart Platform</title>
|
||||
@ -193,12 +193,12 @@
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</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 type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script>
|
||||
<script type="text/javascript" src="js/readtheorg.js"></script>
|
||||
<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">
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
@ -247,132 +247,141 @@ for the JavaScript code in this tag.
|
||||
</script>
|
||||
</head>
|
||||
<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>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org2e1bd58">1. Needed Actuator Stroke</a>
|
||||
<li><a href="#org4a99119">1. Needed Actuator Stroke</a>
|
||||
<ul>
|
||||
<li><a href="#org16d1370">1.1. Stewart architecture definition</a></li>
|
||||
<li><a href="#orgaf07b82">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="#org27bf97e">1.4. Needed stroke for combined translations and rotations</a></li>
|
||||
<li><a href="#org119868f">1.1. Stewart architecture definition</a></li>
|
||||
<li><a href="#org8ece9f1">1.2. Wanted translations and rotations</a></li>
|
||||
<li><a href="#org8cd9dfc">1.3. Needed stroke for "pure" rotations or translations</a></li>
|
||||
<li><a href="#org9acbff2">1.4. Needed stroke for combined translations and rotations</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgaebf111">2. Maximum Stroke</a></li>
|
||||
<li><a href="#orgfb8a1e7">3. Functions</a>
|
||||
<li><a href="#org0aef174">2. Maximum Stroke</a></li>
|
||||
<li><a href="#orgff4f3e2">3. Functions</a>
|
||||
<ul>
|
||||
<li><a href="#org465746a">3.1. getMaxPositions</a></li>
|
||||
<li><a href="#org527f7ca">3.2. getMaxPureDisplacement</a></li>
|
||||
<li><a href="#orgca8f528">3.1. getMaxPositions</a></li>
|
||||
<li><a href="#org0ac04ca">3.2. getMaxPureDisplacement</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2e1bd58" class="outline-2">
|
||||
<h2 id="org2e1bd58"><span class="section-number-2">1</span> Needed Actuator Stroke</h2>
|
||||
<div id="outline-container-org4a99119" class="outline-2">
|
||||
<h2 id="org4a99119"><span class="section-number-2">1</span> Needed Actuator Stroke</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
The goal is to determine the needed stroke of the actuators to obtain wanted translations and rotations.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org16d1370" class="outline-3">
|
||||
<h3 id="org16d1370"><span class="section-number-3">1.1</span> Stewart architecture definition</h3>
|
||||
<div id="outline-container-org119868f" class="outline-3">
|
||||
<h3 id="org119868f"><span class="section-number-3">1.1</span> Stewart architecture definition</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
We use a cubic architecture.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = initializeCubicConfiguration<span style="color: #DCDCCC;">(</span>opts<span style="color: #DCDCCC;">)</span>;
|
||||
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = computeGeometricalProperties<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>;
|
||||
opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 style="color: #DCDCCC;">)</span>;
|
||||
stewart = initializeMechanicalElements<span style="color: #DCDCCC;">(</span>stewart, opts<span style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = initializeCubicConfiguration<span class="org-rainbow-delimiters-depth-1">(</span>opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
stewart = computeGeometricalProperties<span class="org-rainbow-delimiters-depth-1">(</span>stewart, opts<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 class="org-rainbow-delimiters-depth-1">)</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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgaf07b82" class="outline-3">
|
||||
<h3 id="orgaf07b82"><span class="section-number-3">1.2</span> Wanted translations and rotations</h3>
|
||||
<div id="outline-container-org8ece9f1" class="outline-3">
|
||||
<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">
|
||||
<p>
|
||||
We define wanted translations and rotations
|
||||
</p>
|
||||
<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>
|
||||
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>
|
||||
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>
|
||||
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>
|
||||
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>
|
||||
<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 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 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 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 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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org920b62b" class="outline-3">
|
||||
<h3 id="org920b62b"><span class="section-number-3">1.3</span> Needed stroke for "pure" rotations or translations</h3>
|
||||
<div id="outline-container-org8cd9dfc" class="outline-3">
|
||||
<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">
|
||||
<p>
|
||||
First, we estimate the needed actuator stroke for "pure" rotations and translation.
|
||||
</p>
|
||||
<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>';
|
||||
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>';
|
||||
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>';
|
||||
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>';
|
||||
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>';
|
||||
<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 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 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 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 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>
|
||||
</div>
|
||||
|
||||
<pre class="example">
|
||||
1.0607e-05
|
||||
From -1.2e-05[m] to 1.1e-05[m]: Total stroke = 22.9[um]
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org27bf97e" class="outline-3">
|
||||
<h3 id="org27bf97e"><span class="section-number-3">1.4</span> Needed stroke for combined translations and rotations</h3>
|
||||
<div id="outline-container-org9acbff2" class="outline-3">
|
||||
<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">
|
||||
<p>
|
||||
Now, we combine translations and rotations, and we try to find the worst case (that we suppose to happen at the border).
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Lmax = <span style="color: #BFEBBF;">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>;
|
||||
<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>
|
||||
<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 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 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 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>
|
||||
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 style="color: #F0DFAF; font-weight: bold;">if</span> L <span style="color: #7CB8BB;">></span> Lmax
|
||||
Lmax = L;
|
||||
pos = <span style="color: #DCDCCC;">[</span>Tx Ty Tz Rx Ry<span style="color: #DCDCCC;">]</span>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<pre class="src src-matlab">Lmax = <span class="org-highlight-numbers-number">0</span>;
|
||||
Lmin = <span class="org-highlight-numbers-number">0</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 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 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 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 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>
|
||||
<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>
|
||||
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>;
|
||||
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>;
|
||||
<span class="org-keyword">if</span> lmax <span class="org-type">></span> Lmax
|
||||
Lmax = lmax;
|
||||
pos = <span class="org-rainbow-delimiters-depth-1">[</span>Tx Ty Tz Rx Ry<span class="org-rainbow-delimiters-depth-1">]</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
<span class="org-keyword">if</span> lmin <span class="org-type"><</span> Lmin
|
||||
Lmin = lmin;
|
||||
<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>
|
||||
</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).
|
||||
</p>
|
||||
<pre class="example">
|
||||
3.0927e-05
|
||||
From -3.1e-05[m] to 3.1e-05[m]: Total stroke = 61.5[um]
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgaebf111" class="outline-2">
|
||||
<h2 id="orgaebf111"><span class="section-number-2">2</span> Maximum Stroke</h2>
|
||||
<div id="outline-container-org0aef174" class="outline-2">
|
||||
<h2 id="org0aef174"><span class="section-number-2">2</span> Maximum Stroke</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
From a specified actuator stroke, we try to estimate the available maneuverability of the Stewart platform.
|
||||
</p>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>;
|
||||
plot3<span style="color: #DCDCCC;">(</span>X, Y, Z, <span style="color: #CC9393;">'k-'</span><span style="color: #DCDCCC;">)</span>
|
||||
<pre class="src src-matlab"><span class="org-type">figure</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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgfb8a1e7" class="outline-2">
|
||||
<h2 id="orgfb8a1e7"><span class="section-number-2">3</span> Functions</h2>
|
||||
<div id="outline-container-orgff4f3e2" class="outline-2">
|
||||
<h2 id="orgff4f3e2"><span class="section-number-2">3</span> Functions</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
<div id="outline-container-org465746a" class="outline-3">
|
||||
<h3 id="org465746a"><span class="section-number-3">3.1</span> getMaxPositions</h3>
|
||||
<div id="outline-container-orgca8f528" class="outline-3">
|
||||
<h3 id="orgca8f528"><span class="section-number-3">3.1</span> getMaxPositions</h3>
|
||||
<div class="outline-text-3" id="text-3-1">
|
||||
<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;
|
||||
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>;
|
||||
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>;
|
||||
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>;
|
||||
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 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 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 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>
|
||||
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>';
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 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 class="org-keyword">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>';
|
||||
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>';
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org527f7ca" class="outline-3">
|
||||
<h3 id="org527f7ca"><span class="section-number-3">3.2</span> getMaxPureDisplacement</h3>
|
||||
<div id="outline-container-org0ac04ca" class="outline-3">
|
||||
<h3 id="org0ac04ca"><span class="section-number-3">3.2</span> getMaxPureDisplacement</h3>
|
||||
<div class="outline-text-3" id="text-3-2">
|
||||
<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>
|
||||
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<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 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 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 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 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 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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 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 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 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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
@ -458,7 +467,7 @@ plot3<span style="color: #DCDCCC;">(</span>X, Y, Z, <span style="color: #CC9393;
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<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>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -1,27 +1,24 @@
|
||||
#+TITLE: Kinematic Study of the Stewart Platform
|
||||
: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/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="js/jquery.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 type="text/javascript" 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}
|
||||
#+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: <script src="./js/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/readtheorg.js"></script>
|
||||
|
||||
#+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+ :exports both
|
||||
#+PROPERTY: header-args:matlab+ :results none
|
||||
#+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+ :output-dir figs
|
||||
:END:
|
||||
|
||||
#+begin_src matlab :results none :exports none :noweb yes
|
||||
@ -39,9 +36,9 @@ We use a cubic architecture.
|
||||
#+begin_src matlab :results silent
|
||||
opts = struct(...
|
||||
'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]
|
||||
'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);
|
||||
opts = struct(...
|
||||
@ -78,27 +75,32 @@ First, we estimate the needed actuator stroke for "pure" rotations and translati
|
||||
#+end_src
|
||||
|
||||
#+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
|
||||
|
||||
#+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
|
||||
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
|
||||
Lmax = 0;
|
||||
Lmin = 0;
|
||||
pos = [0, 0, 0, 0, 0];
|
||||
for Tx = [-Tx_max,Tx_max]
|
||||
for Ty = [-Ty_max,Ty_max]
|
||||
for Tz = [-Tz_max,Tz_max]
|
||||
for Rx = [-Rx_max,Rx_max]
|
||||
for Ry = [-Ry_max,Ry_max]
|
||||
L = max(stewart.Jd*[Tx Ty Tz Rx Ry 0]');
|
||||
if L > Lmax
|
||||
Lmax = L;
|
||||
lmax = max(stewart.Jd*[Tx Ty Tz Rx Ry 0]');
|
||||
lmin = min(stewart.Jd*[Tx Ty Tz Rx Ry 0]');
|
||||
if lmax > Lmax
|
||||
Lmax = lmax;
|
||||
pos = [Tx Ty Tz Rx Ry];
|
||||
end
|
||||
if lmin < Lmin
|
||||
Lmin = lmin;
|
||||
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).
|
||||
#+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
|
||||
|
||||
#+RESULTS:
|
||||
: 3.0927e-05
|
||||
: From -3.1e-05[m] to 3.1e-05[m]: Total stroke = 61.5[um]
|
||||
|
||||
* Maximum Stroke
|
||||
From a specified actuator stroke, we try to estimate the available maneuverability of the Stewart platform.
|
||||
|
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2019-03-25 lun. 11:18 -->
|
||||
<!-- 2019-08-26 lun. 11:56 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Stewart Platform - Simscape Model</title>
|
||||
@ -193,12 +193,12 @@
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</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 type="text/javascript" src="js/jquery.stickytableheaders.min.js"></script>
|
||||
<script type="text/javascript" src="js/readtheorg.js"></script>
|
||||
<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">
|
||||
/*
|
||||
@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>
|
||||
</head>
|
||||
<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>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org527cc13">1. initializeGeneralConfiguration</a>
|
||||
<li><a href="#orge1bdaa4">1. initializeGeneralConfiguration</a>
|
||||
<ul>
|
||||
<li><a href="#orgea5f8f5">1.1. Function description</a></li>
|
||||
<li><a href="#org2db42cb">1.2. Optional Parameters</a></li>
|
||||
<li><a href="#org2f9279a">1.3. Geometry Description</a></li>
|
||||
<li><a href="#org1409cf0">1.4. Compute Aa and Ab</a></li>
|
||||
<li><a href="#orgb91c416">1.5. Returns Stewart Structure</a></li>
|
||||
<li><a href="#orgb189499">1.1. Function description</a></li>
|
||||
<li><a href="#org26f683d">1.2. Optional Parameters</a></li>
|
||||
<li><a href="#org22df53a">1.3. Geometry Description</a></li>
|
||||
<li><a href="#orgcf32e31">1.4. Compute Aa and Ab</a></li>
|
||||
<li><a href="#org4931162">1.5. Returns Stewart Structure</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgc3aa910">2. computeGeometricalProperties</a>
|
||||
<li><a href="#orgc4f14da">2. computeGeometricalProperties</a>
|
||||
<ul>
|
||||
<li><a href="#org180196f">2.1. Function description</a></li>
|
||||
<li><a href="#org12cee4f">2.2. Optional Parameters</a></li>
|
||||
<li><a href="#org0010af5">2.3. Rotation matrices</a></li>
|
||||
<li><a href="#org98f4bad">2.4. Jacobian matrices</a></li>
|
||||
<li><a href="#org7550562">2.1. Function description</a></li>
|
||||
<li><a href="#org0ec8d5e">2.2. Optional Parameters</a></li>
|
||||
<li><a href="#orgdc858fe">2.3. Rotation matrices</a></li>
|
||||
<li><a href="#orgc0b0116">2.4. Jacobian matrices</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgb3e53d1">3. initializeMechanicalElements</a>
|
||||
<li><a href="#org35cb27a">3. initializeMechanicalElements</a>
|
||||
<ul>
|
||||
<li><a href="#orge7f185e">3.1. Function description</a></li>
|
||||
<li><a href="#org6bd219d">3.2. Optional Parameters</a></li>
|
||||
<li><a href="#org8d0d9c0">3.3. Bottom Plate</a></li>
|
||||
<li><a href="#org23fd88c">3.4. Top Plate</a></li>
|
||||
<li><a href="#org96d7dab">3.5. Legs</a></li>
|
||||
<li><a href="#org66df86f">3.6. Ball Joints</a></li>
|
||||
<li><a href="#orgeeb3d2f">3.1. Function description</a></li>
|
||||
<li><a href="#org02f8d24">3.2. Optional Parameters</a></li>
|
||||
<li><a href="#orga56f635">3.3. Bottom Plate</a></li>
|
||||
<li><a href="#orge8a195c">3.4. Top Plate</a></li>
|
||||
<li><a href="#org8725a51">3.5. Legs</a></li>
|
||||
<li><a href="#org722b78f">3.6. Ball Joints</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orgf3c4474">4. initializeSample</a>
|
||||
<li><a href="#org5ba95d3">4. initializeSample</a>
|
||||
<ul>
|
||||
<li><a href="#org1ec4152">4.1. Function description</a></li>
|
||||
<li><a href="#orgcd3268d">4.2. Optional Parameters</a></li>
|
||||
<li><a href="#org29ee9ed">4.3. Save the Sample structure</a></li>
|
||||
<li><a href="#org2dd34bb">4.1. Function description</a></li>
|
||||
<li><a href="#org2aa1dac">4.2. Optional Parameters</a></li>
|
||||
<li><a href="#orgea68e95">4.3. Save the Sample structure</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
@ -370,42 +374,42 @@ Other Parameters are defined for the Simscape simulation:
|
||||
<li>Location of the Jacobian point for velocity/displacement computation</li>
|
||||
</ul>
|
||||
|
||||
<div id="outline-container-org527cc13" class="outline-2">
|
||||
<h2 id="org527cc13"><span class="section-number-2">1</span> initializeGeneralConfiguration</h2>
|
||||
<div id="outline-container-orge1bdaa4" class="outline-2">
|
||||
<h2 id="orge1bdaa4"><span class="section-number-2">1</span> initializeGeneralConfiguration</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgea5f8f5" class="outline-3">
|
||||
<h3 id="orgea5f8f5"><span class="section-number-3">1.1</span> Function description</h3>
|
||||
<div id="outline-container-orgb189499" class="outline-3">
|
||||
<h3 id="orgb189499"><span class="section-number-3">1.1</span> Function description</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
The <code>initializeGeneralConfiguration</code> function takes one structure that contains configurations for the hexapod and returns one structure representing the Hexapod.
|
||||
</p>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2db42cb" class="outline-3">
|
||||
<h3 id="org2db42cb"><span class="section-number-3">1.2</span> Optional Parameters</h3>
|
||||
<div id="outline-container-org26f683d" class="outline-3">
|
||||
<h3 id="org26f683d"><span class="section-number-3">1.2</span> Optional Parameters</h3>
|
||||
<div class="outline-text-3" id="text-1-2">
|
||||
<p>
|
||||
Default values for opts.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -413,21 +417,21 @@ Default values for opts.
|
||||
Populate opts with input parameters
|
||||
</p>
|
||||
<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>
|
||||
<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>
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org2f9279a" class="outline-3">
|
||||
<h3 id="org2f9279a"><span class="section-number-3">1.3</span> Geometry Description</h3>
|
||||
<div id="outline-container-org22df53a" class="outline-3">
|
||||
<h3 id="org22df53a"><span class="section-number-3">1.3</span> Geometry Description</h3>
|
||||
<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>
|
||||
<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 id="outline-container-org1409cf0" class="outline-3">
|
||||
<h3 id="org1409cf0"><span class="section-number-3">1.4</span> Compute Aa and Ab</h3>
|
||||
<div id="outline-container-orgcf32e31" class="outline-3">
|
||||
<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">
|
||||
<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\).
|
||||
</p>
|
||||
|
||||
<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>
|
||||
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>
|
||||
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>
|
||||
<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 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 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>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
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>
|
||||
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.H_plate<span style="color: #7CB8BB;">+</span>opts.H_joint<span style="color: #DCDCCC;">]</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>
|
||||
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.H_plate<span style="color: #7CB8BB;">+</span>opts.H_joint<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">:</span><span class="org-constant"><span class="org-highlight-numbers-number">3</span></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 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 class="org-type">+</span>opts.H_joint<span class="org-rainbow-delimiters-depth-1">]</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 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 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>
|
||||
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.H_tot <span style="color: #7CB8BB;">-</span> opts.H_plate <span style="color: #7CB8BB;">-</span> opts.H_joint<span style="color: #DCDCCC;">]</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>
|
||||
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.H_tot <span style="color: #7CB8BB;">-</span> opts.H_plate <span style="color: #7CB8BB;">-</span> opts.H_joint<span style="color: #DCDCCC;">]</span>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 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 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 class="org-type">-</span> opts.H_plate <span class="org-type">-</span> opts.H_joint<span class="org-rainbow-delimiters-depth-1">]</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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb91c416" class="outline-3">
|
||||
<h3 id="orgb91c416"><span class="section-number-3">1.5</span> Returns Stewart Structure</h3>
|
||||
<div id="outline-container-org4931162" class="outline-3">
|
||||
<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="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.Ab = Ab;
|
||||
stewart.Bb = Bb;
|
||||
stewart.H_tot = opts.H_tot;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgc3aa910" class="outline-2">
|
||||
<h2 id="orgc3aa910"><span class="section-number-2">2</span> computeGeometricalProperties</h2>
|
||||
<div id="outline-container-orgc4f14da" class="outline-2">
|
||||
<h2 id="orgc4f14da"><span class="section-number-2">2</span> computeGeometricalProperties</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org180196f" class="outline-3">
|
||||
<h3 id="org180196f"><span class="section-number-3">2.1</span> Function description</h3>
|
||||
<div id="outline-container-org7550562" class="outline-3">
|
||||
<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="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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org12cee4f" class="outline-3">
|
||||
<h3 id="org12cee4f"><span class="section-number-3">2.2</span> Optional Parameters</h3>
|
||||
<div id="outline-container-org0ec8d5e" class="outline-3">
|
||||
<h3 id="org0ec8d5e"><span class="section-number-3">2.2</span> Optional Parameters</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<p>
|
||||
Default values for opts.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -521,25 +525,25 @@ Default values for opts.
|
||||
Populate opts with input parameters
|
||||
</p>
|
||||
<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>
|
||||
<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>
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0010af5" class="outline-3">
|
||||
<h3 id="org0010af5"><span class="section-number-3">2.3</span> Rotation matrices</h3>
|
||||
<div id="outline-container-orgdc858fe" class="outline-3">
|
||||
<h3 id="orgdc858fe"><span class="section-number-3">2.3</span> Rotation matrices</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
We initialize \(l_i\) and \(\hat{s}_i\)
|
||||
</p>
|
||||
<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>
|
||||
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>;
|
||||
<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 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>
|
||||
</div>
|
||||
|
||||
@ -552,12 +556,12 @@ We compute \(b_i - a_i\), and then:
|
||||
\end{align*}
|
||||
|
||||
<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>
|
||||
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_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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</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.
|
||||
</p>
|
||||
<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>
|
||||
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 = sx<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sx<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">:</span><span class="org-constant"><span class="org-highlight-numbers-number">6</span></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 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 = sy<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sy<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 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 = sz<span style="color: #7CB8BB;">/</span>norm<span style="color: #DCDCCC;">(</span>sz<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 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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org98f4bad" class="outline-3">
|
||||
<h3 id="org98f4bad"><span class="section-number-3">2.4</span> Jacobian matrices</h3>
|
||||
<div id="outline-container-orgc0b0116" class="outline-3">
|
||||
<h3 id="orgc0b0116"><span class="section-number-3">2.4</span> Jacobian matrices</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<p>
|
||||
Compute Jacobian Matrix
|
||||
</p>
|
||||
<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>
|
||||
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 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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
|
||||
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>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
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 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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
|
||||
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>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb3e53d1" class="outline-2">
|
||||
<h2 id="orgb3e53d1"><span class="section-number-2">3</span> initializeMechanicalElements</h2>
|
||||
<div id="outline-container-org35cb27a" class="outline-2">
|
||||
<h2 id="org35cb27a"><span class="section-number-2">3</span> initializeMechanicalElements</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge7f185e" class="outline-3">
|
||||
<h3 id="orge7f185e"><span class="section-number-3">3.1</span> Function description</h3>
|
||||
<div id="outline-container-orgeeb3d2f" class="outline-3">
|
||||
<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="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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6bd219d" class="outline-3">
|
||||
<h3 id="org6bd219d"><span class="section-number-3">3.2</span> Optional Parameters</h3>
|
||||
<div id="outline-container-org02f8d24" class="outline-3">
|
||||
<h3 id="org02f8d24"><span class="section-number-3">3.2</span> Optional Parameters</h3>
|
||||
<div class="outline-text-3" id="text-3-2">
|
||||
<p>
|
||||
Default values for opts.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">opts = struct<span style="color: #DCDCCC;">(</span><span style="text-decoration: 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 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">opts = struct<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-underline">...</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 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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -661,21 +665,21 @@ Default values for opts.
|
||||
Populate opts with input parameters
|
||||
</p>
|
||||
<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>
|
||||
<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>
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org8d0d9c0" class="outline-3">
|
||||
<h3 id="org8d0d9c0"><span class="section-number-3">3.3</span> Bottom Plate</h3>
|
||||
<div id="outline-container-orga56f635" class="outline-3">
|
||||
<h3 id="orga56f635"><span class="section-number-3">3.3</span> Bottom Plate</h3>
|
||||
<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>
|
||||
<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.
|
||||
</p>
|
||||
<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>
|
||||
</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.
|
||||
</p>
|
||||
<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>
|
||||
BP.Rext = <span style="color: #BFEBBF;">150</span>; <span style="color: #7F9F7F;">% External 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 class="org-highlight-numbers-number">150</span>; <span class="org-comment">% External Radius [mm]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -702,7 +706,7 @@ BP.Rext = <span style="color: #BFEBBF;">150</span>; <span style="color: #7F9F7F;
|
||||
We define its thickness.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -710,7 +714,7 @@ We define its thickness.
|
||||
We defined the density of the material of the bottom plate.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -718,7 +722,7 @@ We defined the density of the material of the bottom plate.
|
||||
And its color.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -726,7 +730,7 @@ And its color.
|
||||
Then the profile of the bottom plate is computed and will be used by Simscape
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -740,14 +744,14 @@ The structure is added to the stewart structure
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org23fd88c" class="outline-3">
|
||||
<h3 id="org23fd88c"><span class="section-number-3">3.4</span> Top Plate</h3>
|
||||
<div id="outline-container-orge8a195c" class="outline-3">
|
||||
<h3 id="orge8a195c"><span class="section-number-3">3.4</span> Top Plate</h3>
|
||||
<div class="outline-text-3" id="text-3-4">
|
||||
<p>
|
||||
The top plate structure is initialized.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -755,8 +759,8 @@ The top plate structure is initialized.
|
||||
We defined the internal and external radius of the top plate.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">TP.Rint = <span style="color: #BFEBBF;">0</span>; <span style="color: #7F9F7F;">% [mm]</span>
|
||||
TP.Rext = <span style="color: #BFEBBF;">100</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 class="org-highlight-numbers-number">100</span>; <span class="org-comment">% [mm]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -764,7 +768,7 @@ TP.Rext = <span style="color: #BFEBBF;">100</span>; <span style="color: #7F9F7F;
|
||||
The thickness of the top plate.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -772,7 +776,7 @@ The thickness of the top plate.
|
||||
The density of its material.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -780,7 +784,7 @@ The density of its material.
|
||||
Its color.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -788,7 +792,7 @@ Its color.
|
||||
Then the shape of the top plate is computed
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -802,11 +806,11 @@ The structure is added to the stewart structure
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org96d7dab" class="outline-3">
|
||||
<h3 id="org96d7dab"><span class="section-number-3">3.5</span> Legs</h3>
|
||||
<div id="outline-container-org8725a51" class="outline-3">
|
||||
<h3 id="org8725a51"><span class="section-number-3">3.5</span> Legs</h3>
|
||||
<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>
|
||||
<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.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -824,7 +828,7 @@ The leg structure is initialized.
|
||||
The maximum Stroke of each leg is defined.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -832,8 +836,8 @@ The maximum Stroke of each leg is defined.
|
||||
The stiffness and damping of each leg are defined
|
||||
</p>
|
||||
<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>
|
||||
Leg.c_ax = opts.c_ax; <span style="color: #7F9F7F;">% Damping of each leg [N/(m/s)]</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 class="org-comment">% Damping of each leg [N/(m/s)]</span>
|
||||
</pre>
|
||||
</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
|
||||
</p>
|
||||
<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>
|
||||
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>
|
||||
<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 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>
|
||||
</div>
|
||||
|
||||
@ -850,7 +854,7 @@ Leg.Rbot = <span style="color: #BFEBBF;">12</span>; <span style="color: #7F9F7F;
|
||||
The density of its material.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -858,7 +862,7 @@ The density of its material.
|
||||
Its color.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -866,7 +870,7 @@ Its color.
|
||||
The radius of spheres representing the ball joints are defined.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -874,8 +878,8 @@ The radius of spheres representing the ball joints are defined.
|
||||
We estimate the length of the legs.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">legs = stewart.Ab <span style="color: #7CB8BB;">-</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>;
|
||||
<pre class="src src-matlab">legs = stewart.Ab <span class="org-type">-</span> stewart.Aa;
|
||||
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>
|
||||
</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
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">Leg.shape.bot = <span style="text-decoration: 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>
|
||||
Leg.Rbot <span style="color: #BFEBBF;">0</span>; <span style="text-decoration: underline;">...</span>
|
||||
Leg.Rbot Leg.lenght; <span style="text-decoration: underline;">...</span>
|
||||
Leg.Rtop Leg.lenght; <span style="text-decoration: 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>
|
||||
<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>;
|
||||
<pre class="src src-matlab">Leg.shape.bot = <span class="org-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 class="org-highlight-numbers-number">0</span>; <span class="org-underline">...</span>
|
||||
Leg.Rbot Leg.lenght; <span class="org-underline">...</span>
|
||||
Leg.Rtop Leg.lenght; <span class="org-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 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>
|
||||
</div>
|
||||
|
||||
@ -903,11 +907,11 @@ The structure is added to the stewart structure
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org66df86f" class="outline-3">
|
||||
<h3 id="org66df86f"><span class="section-number-3">3.6</span> Ball Joints</h3>
|
||||
<div id="outline-container-org722b78f" class="outline-3">
|
||||
<h3 id="org722b78f"><span class="section-number-3">3.6</span> Ball Joints</h3>
|
||||
<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>
|
||||
<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.
|
||||
</p>
|
||||
<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>
|
||||
</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.
|
||||
</p>
|
||||
<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>
|
||||
SP.c = <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 class="org-highlight-numbers-number">0</span>; <span class="org-comment">% [N*m/deg]</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -938,7 +942,7 @@ SP.c = <span style="color: #BFEBBF;">0</span>; <span style="color: #7F9F7F;">% [
|
||||
Its height is defined
|
||||
</p>
|
||||
<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>
|
||||
</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.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<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;
|
||||
<span style="color: #BFEBBF;">0</span> <span style="color: #BFEBBF;">0</span>;
|
||||
SP.R <span style="color: #BFEBBF;">0</span>;
|
||||
SP.R SP.H<span style="color: #DCDCCC;">]</span>;
|
||||
<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 class="org-highlight-numbers-number">0</span> <span class="org-highlight-numbers-number">0</span>;
|
||||
SP.R <span class="org-highlight-numbers-number">0</span>;
|
||||
SP.R SP.H<span class="org-rainbow-delimiters-depth-1">]</span>;
|
||||
</pre>
|
||||
</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.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -970,7 +974,7 @@ The density of its material is defined.
|
||||
Its color is defined.
|
||||
</p>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
@ -985,36 +989,36 @@ The structure is added to the Hexapod structure
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgf3c4474" class="outline-2">
|
||||
<h2 id="orgf3c4474"><span class="section-number-2">4</span> initializeSample</h2>
|
||||
<div id="outline-container-org5ba95d3" class="outline-2">
|
||||
<h2 id="org5ba95d3"><span class="section-number-2">4</span> initializeSample</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1ec4152" class="outline-3">
|
||||
<h3 id="org1ec4152"><span class="section-number-3">4.1</span> Function description</h3>
|
||||
<div id="outline-container-org2dd34bb" class="outline-3">
|
||||
<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="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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgcd3268d" class="outline-3">
|
||||
<h3 id="orgcd3268d"><span class="section-number-3">4.2</span> Optional Parameters</h3>
|
||||
<div id="outline-container-org2aa1dac" class="outline-3">
|
||||
<h3 id="org2aa1dac"><span class="section-number-3">4.2</span> Optional Parameters</h3>
|
||||
<div class="outline-text-3" id="text-4-2">
|
||||
<p>
|
||||
Default values for opts.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">sample = struct<span style="color: #DCDCCC;">(</span> <span style="text-decoration: 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 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 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 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 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 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 style="color: #DCDCCC;">)</span>;
|
||||
<pre class="src src-matlab">sample = struct<span class="org-rainbow-delimiters-depth-1">(</span> <span class="org-underline">...</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 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 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 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 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 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 class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@ -1022,26 +1026,26 @@ Default values for opts.
|
||||
Populate opts with input parameters
|
||||
</p>
|
||||
<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>
|
||||
<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>
|
||||
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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</span>
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 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 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 class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org29ee9ed" class="outline-3">
|
||||
<h3 id="org29ee9ed"><span class="section-number-3">4.3</span> Save the Sample structure</h3>
|
||||
<div id="outline-container-orgea68e95" class="outline-3">
|
||||
<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="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>
|
||||
</div>
|
||||
|
||||
<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>
|
||||
</div>
|
||||
</div>
|
||||
@ -1050,7 +1054,7 @@ Populate opts with input parameters
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<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>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -1,27 +1,23 @@
|
||||
#+TITLE: Stewart Platform - Simscape Model
|
||||
: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/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="js/jquery.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 type="text/javascript" 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}
|
||||
#+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: <script src="./js/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/readtheorg.js"></script>
|
||||
|
||||
#+PROPERTY: header-args:matlab :session *MATLAB*
|
||||
#+PROPERTY: header-args:matlab+ :comments org
|
||||
#+PROPERTY: header-args:matlab+ :exports both
|
||||
#+PROPERTY: header-args:matlab+ :results none
|
||||
#+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+ :output-dir figs
|
||||
:END:
|
||||
|
||||
Stewart platforms are generated in multiple steps.
|
||||
|
@ -3,7 +3,7 @@
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2019-03-22 ven. 12:03 -->
|
||||
<!-- 2019-08-26 lun. 11:56 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Stiffness of the Stewart Platform</title>
|
||||
@ -193,6 +193,12 @@
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</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">
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
@ -241,34 +247,38 @@ for the JavaScript code in this tag.
|
||||
</script>
|
||||
</head>
|
||||
<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>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org178badc">1. Functions</a>
|
||||
<li><a href="#org4cfa1de">1. Functions</a>
|
||||
<ul>
|
||||
<li><a href="#org31327cd">1.1. getStiffnessMatrix</a></li>
|
||||
<li><a href="#orgf252177">1.1. getStiffnessMatrix</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org178badc" class="outline-2">
|
||||
<h2 id="org178badc"><span class="section-number-2">1</span> Functions</h2>
|
||||
<div id="outline-container-org4cfa1de" class="outline-2">
|
||||
<h2 id="org4cfa1de"><span class="section-number-2">1</span> Functions</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
</div>
|
||||
<div id="outline-container-org31327cd" class="outline-3">
|
||||
<h3 id="org31327cd"><span class="section-number-3">1.1</span> getStiffnessMatrix</h3>
|
||||
<div id="outline-container-orgf252177" class="outline-3">
|
||||
<h3 id="orgf252177"><span class="section-number-3">1.1</span> getStiffnessMatrix</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<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>
|
||||
<span style="color: #7F9F7F;">% k - leg stiffness</span>
|
||||
<span style="color: #7F9F7F;">% 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>;
|
||||
<span style="color: #F0DFAF; font-weight: bold;">end</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 class="org-comment">% k - leg stiffness</span>
|
||||
<span class="org-comment">% J - Jacobian matrix</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 class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
@ -277,7 +287,7 @@ for the JavaScript code in this tag.
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<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>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -1,27 +1,24 @@
|
||||
#+TITLE: Stiffness of the Stewart Platform
|
||||
: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/readtheorg.css"/>
|
||||
#+HTML_HEAD: <script src="js/jquery.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 type="text/javascript" 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}
|
||||
#+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: <script src="./js/jquery.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/bootstrap.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/jquery.stickytableheaders.min.js"></script>
|
||||
#+HTML_HEAD: <script src="./js/readtheorg.js"></script>
|
||||
|
||||
#+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+ :exports both
|
||||
#+PROPERTY: header-args:matlab+ :results none
|
||||
#+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+ :output-dir figs
|
||||
:END:
|
||||
|
||||
* Functions
|
||||
|
Loading…
Reference in New Issue
Block a user