Rework - New Simscape
This commit is contained in:
parent
d904877c01
commit
2122ecbf74
@ -4,7 +4,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2020-02-12 mer. 18:26 -->
|
<!-- 2020-02-13 jeu. 15:01 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Cubic configuration for the Stewart Platform</title>
|
<title>Cubic configuration for the Stewart Platform</title>
|
||||||
@ -274,33 +274,33 @@ for the JavaScript code in this tag.
|
|||||||
<li><a href="#orga88e79a">1.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li>
|
<li><a href="#orga88e79a">1.2. Cubic Stewart platform centered with the cube center - Jacobian not estimated at the cube center</a></li>
|
||||||
<li><a href="#orge02ec88">1.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li>
|
<li><a href="#orge02ec88">1.3. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the cube center</a></li>
|
||||||
<li><a href="#org43fd7e4">1.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li>
|
<li><a href="#org43fd7e4">1.4. Cubic Stewart platform not centered with the cube center - Jacobian estimated at the Stewart platform center</a></li>
|
||||||
<li><a href="#org778aab3">1.5. Conclusion</a></li>
|
<li><a href="#org510da86">1.5. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#orgd70418b">2. Configuration with the Cube’s center above the mobile platform</a>
|
<li><a href="#orgd70418b">2. Configuration with the Cube’s center above the mobile platform</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org8afa645">2.1. Having Cube’s center above the top platform</a></li>
|
<li><a href="#org8afa645">2.1. Having Cube’s center above the top platform</a></li>
|
||||||
<li><a href="#org8e940b8">2.2. Conclusion</a></li>
|
<li><a href="#org949a403">2.2. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#orgcc4ecce">3. Cubic size analysis</a>
|
<li><a href="#orgcc4ecce">3. Cubic size analysis</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org0029d8c">3.1. Analysis</a></li>
|
<li><a href="#org0029d8c">3.1. Analysis</a></li>
|
||||||
<li><a href="#org9d42e84">3.2. Conclusion</a></li>
|
<li><a href="#orgfc7135f">3.2. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#orgf09da67">4. Dynamic Coupling in the Cartesian Frame</a>
|
<li><a href="#orgf09da67">4. Dynamic Coupling in the Cartesian Frame</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org5fe01ec">4.1. Cube’s center at the Center of Mass of the mobile platform</a></li>
|
<li><a href="#org5fe01ec">4.1. Cube’s center at the Center of Mass of the mobile platform</a></li>
|
||||||
<li><a href="#org4cb2a36">4.2. Cube’s center not coincident with the Mass of the Mobile platform</a></li>
|
<li><a href="#org4cb2a36">4.2. Cube’s center not coincident with the Mass of the Mobile platform</a></li>
|
||||||
<li><a href="#org5214dec">4.3. Conclusion</a></li>
|
<li><a href="#org2e09bcb">4.3. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org8f26dc0">5. Dynamic Coupling between actuators and sensors of each strut</a>
|
<li><a href="#org8f26dc0">5. Dynamic Coupling between actuators and sensors of each strut</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org6e391c9">5.1. Coupling between the actuators and sensors - Cubic Architecture</a></li>
|
<li><a href="#org6e391c9">5.1. Coupling between the actuators and sensors - Cubic Architecture</a></li>
|
||||||
<li><a href="#orgafd808d">5.2. Coupling between the actuators and sensors - Non-Cubic Architecture</a></li>
|
<li><a href="#orgafd808d">5.2. Coupling between the actuators and sensors - Non-Cubic Architecture</a></li>
|
||||||
<li><a href="#org0936a8a">5.3. Conclusion</a></li>
|
<li><a href="#org8c1a310">5.3. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org3044455">6. Functions</a>
|
<li><a href="#org3044455">6. Functions</a>
|
||||||
@ -836,8 +836,8 @@ stewart = initializeCylindricalPlatforms(stewart, <span class="org-string">'Fpr'
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org778aab3" class="outline-3">
|
<div id="outline-container-org510da86" class="outline-3">
|
||||||
<h3 id="org778aab3"><span class="section-number-3">1.5</span> Conclusion</h3>
|
<h3 id="org510da86"><span class="section-number-3">1.5</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-1-5">
|
<div class="outline-text-3" id="text-1-5">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
@ -1162,8 +1162,8 @@ FOc = H <span class="org-type">+</span> MO_B; <span class="org-comment">% Cente
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org8e940b8" class="outline-3">
|
<div id="outline-container-org949a403" class="outline-3">
|
||||||
<h3 id="org8e940b8"><span class="section-number-3">2.2</span> Conclusion</h3>
|
<h3 id="org949a403"><span class="section-number-3">2.2</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-2-2">
|
<div class="outline-text-3" id="text-2-2">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
@ -1237,8 +1237,8 @@ We also find that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) are varyi
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org9d42e84" class="outline-3">
|
<div id="outline-container-orgfc7135f" class="outline-3">
|
||||||
<h3 id="org9d42e84"><span class="section-number-3">3.2</span> Conclusion</h3>
|
<h3 id="orgfc7135f"><span class="section-number-3">3.2</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-3-2">
|
<div class="outline-text-3" id="text-3-2">
|
||||||
<p>
|
<p>
|
||||||
We observe that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) increase linearly with the cube size.
|
We observe that \(k_{\theta_x} = k_{\theta_y}\) and \(k_{\theta_z}\) increase linearly with the cube size.
|
||||||
@ -1373,6 +1373,15 @@ stewart = initializeInertialSensor(stewart);
|
|||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
No flexibility below the Stewart platform and no payload.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">ground = initializeGround(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
payload = initializePayload(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The obtain geometry is shown in figure <a href="#orgc92a65b">10</a>.
|
The obtain geometry is shown in figure <a href="#orgc92a65b">10</a>.
|
||||||
</p>
|
</p>
|
||||||
@ -1388,19 +1397,19 @@ The obtain geometry is shown in figure <a href="#orgc92a65b">10</a>.
|
|||||||
We now identify the dynamics from forces applied in each strut \(\bm{\tau}\) to the displacement of each strut \(d \bm{\mathcal{L}}\).
|
We now identify the dynamics from forces applied in each strut \(\bm{\tau}\) to the displacement of each strut \(d \bm{\mathcal{L}}\).
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">open(<span class="org-string">'simulink/stewart_active_damping.slx'</span>)
|
<pre class="src src-matlab">open(<span class="org-string">'stewart_platform_model.slx'</span>)
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
options.SampleTime = 0;
|
options.SampleTime = 0;
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
||||||
mdl = <span class="org-string">'stewart_active_damping'</span>;
|
mdl = <span class="org-string">'stewart_platform_model'</span>;
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, <span class="org-string">'/F'</span>], 1, <span class="org-string">'openinput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Actuator Force Inputs [N]</span>
|
io(io_i) = linio([mdl, <span class="org-string">'/Controller'</span>], 1, <span class="org-string">'openinput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Actuator Force Inputs [N]</span>
|
||||||
io(io_i) = linio([mdl, <span class="org-string">'/Dm'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Displacement of each leg [m]</span>
|
io(io_i) = linio([mdl, <span class="org-string">'/Stewart Platform'</span>], 1, <span class="org-string">'openoutput'</span>, [], <span class="org-string">'dLm'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Relative Displacement Outputs [m]</span>
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
|
||||||
G = linearize(mdl, io, options);
|
G = linearize(mdl, io, options);
|
||||||
@ -1508,6 +1517,15 @@ stewart = initializeInertialSensor(stewart);
|
|||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
No flexibility below the Stewart platform and no payload.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">ground = initializeGround(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
payload = initializePayload(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The obtain geometry is shown in figure <a href="#orgfce7805">12</a>.
|
The obtain geometry is shown in figure <a href="#orgfce7805">12</a>.
|
||||||
</p>
|
</p>
|
||||||
@ -1522,19 +1540,19 @@ The obtain geometry is shown in figure <a href="#orgfce7805">12</a>.
|
|||||||
We now identify the dynamics from forces applied in each strut \(\bm{\tau}\) to the displacement of each strut \(d \bm{\mathcal{L}}\).
|
We now identify the dynamics from forces applied in each strut \(\bm{\tau}\) to the displacement of each strut \(d \bm{\mathcal{L}}\).
|
||||||
</p>
|
</p>
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
<pre class="src src-matlab">open(<span class="org-string">'simulink/stewart_active_damping.slx'</span>)
|
<pre class="src src-matlab">open(<span class="org-string">'stewart_platform_model.slx'</span>)
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
options.SampleTime = 0;
|
options.SampleTime = 0;
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
||||||
mdl = <span class="org-string">'stewart_active_damping'</span>;
|
mdl = <span class="org-string">'stewart_platform_model'</span>;
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, <span class="org-string">'/F'</span>], 1, <span class="org-string">'openinput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Actuator Force Inputs [N]</span>
|
io(io_i) = linio([mdl, <span class="org-string">'/Controller'</span>], 1, <span class="org-string">'openinput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Actuator Force Inputs [N]</span>
|
||||||
io(io_i) = linio([mdl, <span class="org-string">'/Dm'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Displacement of each leg [m]</span>
|
io(io_i) = linio([mdl, <span class="org-string">'/Stewart Platform'</span>], 1, <span class="org-string">'openoutput'</span>, [], <span class="org-string">'dLm'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Relative Displacement Outputs [m]</span>
|
||||||
|
|
||||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
|
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
|
||||||
G = linearize(mdl, io, options);
|
G = linearize(mdl, io, options);
|
||||||
@ -1577,8 +1595,8 @@ This was expected as the mass matrix is not diagonal (the Center of Mass of the
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org5214dec" class="outline-3">
|
<div id="outline-container-org2e09bcb" class="outline-3">
|
||||||
<h3 id="org5214dec"><span class="section-number-3">4.3</span> Conclusion</h3>
|
<h3 id="org2e09bcb"><span class="section-number-3">4.3</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-4-3">
|
<div class="outline-text-3" id="text-4-3">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
@ -1645,6 +1663,15 @@ stewart = initializeInertialSensor(stewart);
|
|||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
No flexibility below the Stewart platform and no payload.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">ground = initializeGround(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
payload = initializePayload(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org67d7284" class="figure">
|
<div id="org67d7284" class="figure">
|
||||||
<p><img src="figs/stewart_architecture_coupling_struts_cubic.png" alt="stewart_architecture_coupling_struts_cubic.png" />
|
<p><img src="figs/stewart_architecture_coupling_struts_cubic.png" alt="stewart_architecture_coupling_struts_cubic.png" />
|
||||||
@ -1703,6 +1730,15 @@ stewart = initializeInertialSensor(stewart);
|
|||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
No flexibility below the Stewart platform and no payload.
|
||||||
|
</p>
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">ground = initializeGround(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
payload = initializePayload(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org14d3492" class="figure">
|
<div id="org14d3492" class="figure">
|
||||||
<p><img src="figs/stewart_architecture_coupling_struts_non_cubic.png" alt="stewart_architecture_coupling_struts_non_cubic.png" />
|
<p><img src="figs/stewart_architecture_coupling_struts_non_cubic.png" alt="stewart_architecture_coupling_struts_non_cubic.png" />
|
||||||
@ -1730,12 +1766,12 @@ And we identify the dynamics from the actuator forces \(\tau_{i}\) to the relati
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org0936a8a" class="outline-3">
|
<div id="outline-container-org8c1a310" class="outline-3">
|
||||||
<h3 id="org0936a8a"><span class="section-number-3">5.3</span> Conclusion</h3>
|
<h3 id="org8c1a310"><span class="section-number-3">5.3</span> Conclusion</h3>
|
||||||
<div class="outline-text-3" id="text-5-3">
|
<div class="outline-text-3" id="text-5-3">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
The Cubic architecture seems to not have any significant effect on the coupling between actuator and sensors of each strut.
|
The Cubic architecture seems to not have any significant effect on the coupling between actuator and sensors of each strut and thus provides no advantages for decentralized control.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -1902,7 +1938,7 @@ stewart.platform_M.Mb = Mb;
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2020-02-12 mer. 18:26</p>
|
<p class="date">Created: 2020-02-13 jeu. 15:01</p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -647,6 +647,12 @@ And we set small mass for the struts.
|
|||||||
stewart = initializeInertialSensor(stewart);
|
stewart = initializeInertialSensor(stewart);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
No flexibility below the Stewart platform and no payload.
|
||||||
|
#+begin_src matlab
|
||||||
|
ground = initializeGround('type', 'none');
|
||||||
|
payload = initializePayload('type', 'none');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
The obtain geometry is shown in figure [[fig:stewart_cubic_conf_decouple_dynamics]].
|
The obtain geometry is shown in figure [[fig:stewart_cubic_conf_decouple_dynamics]].
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
@ -664,19 +670,19 @@ The obtain geometry is shown in figure [[fig:stewart_cubic_conf_decouple_dynamic
|
|||||||
|
|
||||||
We now identify the dynamics from forces applied in each strut $\bm{\tau}$ to the displacement of each strut $d \bm{\mathcal{L}}$.
|
We now identify the dynamics from forces applied in each strut $\bm{\tau}$ to the displacement of each strut $d \bm{\mathcal{L}}$.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
open('simulink/stewart_active_damping.slx')
|
open('stewart_platform_model.slx')
|
||||||
|
|
||||||
%% Options for Linearized
|
%% Options for Linearized
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
options.SampleTime = 0;
|
options.SampleTime = 0;
|
||||||
|
|
||||||
%% Name of the Simulink File
|
%% Name of the Simulink File
|
||||||
mdl = 'stewart_active_damping';
|
mdl = 'stewart_platform_model';
|
||||||
|
|
||||||
%% Input/Output definition
|
%% Input/Output definition
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||||
io(io_i) = linio([mdl, '/Dm'], 1, 'openoutput'); io_i = io_i + 1; % Displacement of each leg [m]
|
io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'dLm'); io_i = io_i + 1; % Relative Displacement Outputs [m]
|
||||||
|
|
||||||
%% Run the linearization
|
%% Run the linearization
|
||||||
G = linearize(mdl, io, options);
|
G = linearize(mdl, io, options);
|
||||||
@ -826,6 +832,12 @@ And we set small mass for the struts.
|
|||||||
stewart = initializeInertialSensor(stewart);
|
stewart = initializeInertialSensor(stewart);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
No flexibility below the Stewart platform and no payload.
|
||||||
|
#+begin_src matlab
|
||||||
|
ground = initializeGround('type', 'none');
|
||||||
|
payload = initializePayload('type', 'none');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
The obtain geometry is shown in figure [[fig:stewart_cubic_conf_mass_above]].
|
The obtain geometry is shown in figure [[fig:stewart_cubic_conf_mass_above]].
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
displayArchitecture(stewart, 'labels', false, 'view', 'all');
|
displayArchitecture(stewart, 'labels', false, 'view', 'all');
|
||||||
@ -842,19 +854,19 @@ The obtain geometry is shown in figure [[fig:stewart_cubic_conf_mass_above]].
|
|||||||
|
|
||||||
We now identify the dynamics from forces applied in each strut $\bm{\tau}$ to the displacement of each strut $d \bm{\mathcal{L}}$.
|
We now identify the dynamics from forces applied in each strut $\bm{\tau}$ to the displacement of each strut $d \bm{\mathcal{L}}$.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
open('simulink/stewart_active_damping.slx')
|
open('stewart_platform_model.slx')
|
||||||
|
|
||||||
%% Options for Linearized
|
%% Options for Linearized
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
options.SampleTime = 0;
|
options.SampleTime = 0;
|
||||||
|
|
||||||
%% Name of the Simulink File
|
%% Name of the Simulink File
|
||||||
mdl = 'stewart_active_damping';
|
mdl = 'stewart_platform_model';
|
||||||
|
|
||||||
%% Input/Output definition
|
%% Input/Output definition
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||||
io(io_i) = linio([mdl, '/Dm'], 1, 'openoutput'); io_i = io_i + 1; % Displacement of each leg [m]
|
io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'dLm'); io_i = io_i + 1; % Relative Displacement Outputs [m]
|
||||||
|
|
||||||
%% Run the linearization
|
%% Run the linearization
|
||||||
G = linearize(mdl, io, options);
|
G = linearize(mdl, io, options);
|
||||||
@ -1016,6 +1028,12 @@ Let's generate a Cubic architecture where the cube's center and the frames $\{A\
|
|||||||
stewart = initializeInertialSensor(stewart);
|
stewart = initializeInertialSensor(stewart);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
No flexibility below the Stewart platform and no payload.
|
||||||
|
#+begin_src matlab
|
||||||
|
ground = initializeGround('type', 'none');
|
||||||
|
payload = initializePayload('type', 'none');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
displayArchitecture(stewart, 'labels', false, 'view', 'all');
|
displayArchitecture(stewart, 'labels', false, 'view', 'all');
|
||||||
#+end_src
|
#+end_src
|
||||||
@ -1032,19 +1050,19 @@ Let's generate a Cubic architecture where the cube's center and the frames $\{A\
|
|||||||
And we identify the dynamics from the actuator forces $\tau_{i}$ to the relative motion sensors $\delta \mathcal{L}_{i}$ (Figure [[fig:coupling_struts_relative_sensor_cubic]]) and to the force sensors $\tau_{m,i}$ (Figure [[fig:coupling_struts_force_sensor_cubic]]).
|
And we identify the dynamics from the actuator forces $\tau_{i}$ to the relative motion sensors $\delta \mathcal{L}_{i}$ (Figure [[fig:coupling_struts_relative_sensor_cubic]]) and to the force sensors $\tau_{m,i}$ (Figure [[fig:coupling_struts_force_sensor_cubic]]).
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
open('simulink/stewart_active_damping.slx')
|
open('stewart_platform_model.slx')
|
||||||
|
|
||||||
%% Options for Linearized
|
%% Options for Linearized
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
options.SampleTime = 0;
|
options.SampleTime = 0;
|
||||||
|
|
||||||
%% Name of the Simulink File
|
%% Name of the Simulink File
|
||||||
mdl = 'stewart_active_damping';
|
mdl = 'stewart_platform_model';
|
||||||
|
|
||||||
%% Input/Output definition
|
%% Input/Output definition
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||||
io(io_i) = linio([mdl, '/Dm'], 1, 'openoutput'); io_i = io_i + 1; % Displacement of each leg [m]
|
io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'dLm'); io_i = io_i + 1; % Relative Displacement Outputs [m]
|
||||||
|
|
||||||
%% Run the linearization
|
%% Run the linearization
|
||||||
G = linearize(mdl, io, options);
|
G = linearize(mdl, io, options);
|
||||||
@ -1101,8 +1119,8 @@ And we identify the dynamics from the actuator forces $\tau_{i}$ to the relative
|
|||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
%% Input/Output definition
|
%% Input/Output definition
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||||
io(io_i) = linio([mdl, '/Fm'], 1, 'openoutput'); io_i = io_i + 1; % Displacement of each leg [m]
|
io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'Taum'); io_i = io_i + 1; % Force Sensor Outputs [N]
|
||||||
|
|
||||||
%% Run the linearization
|
%% Run the linearization
|
||||||
G = linearize(mdl, io, options);
|
G = linearize(mdl, io, options);
|
||||||
@ -1181,6 +1199,12 @@ Now we generate a Stewart platform which is not cubic but with approximately the
|
|||||||
stewart = initializeInertialSensor(stewart);
|
stewart = initializeInertialSensor(stewart);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
No flexibility below the Stewart platform and no payload.
|
||||||
|
#+begin_src matlab
|
||||||
|
ground = initializeGround('type', 'none');
|
||||||
|
payload = initializePayload('type', 'none');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
displayArchitecture(stewart, 'labels', false, 'view', 'all');
|
displayArchitecture(stewart, 'labels', false, 'view', 'all');
|
||||||
#+end_src
|
#+end_src
|
||||||
@ -1197,19 +1221,19 @@ Now we generate a Stewart platform which is not cubic but with approximately the
|
|||||||
And we identify the dynamics from the actuator forces $\tau_{i}$ to the relative motion sensors $\delta \mathcal{L}_{i}$ (Figure [[fig:coupling_struts_relative_sensor_non_cubic]]) and to the force sensors $\tau_{m,i}$ (Figure [[fig:coupling_struts_force_sensor_non_cubic]]).
|
And we identify the dynamics from the actuator forces $\tau_{i}$ to the relative motion sensors $\delta \mathcal{L}_{i}$ (Figure [[fig:coupling_struts_relative_sensor_non_cubic]]) and to the force sensors $\tau_{m,i}$ (Figure [[fig:coupling_struts_force_sensor_non_cubic]]).
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
open('simulink/stewart_active_damping.slx')
|
open('stewart_platform_model.slx')
|
||||||
|
|
||||||
%% Options for Linearized
|
%% Options for Linearized
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
options.SampleTime = 0;
|
options.SampleTime = 0;
|
||||||
|
|
||||||
%% Name of the Simulink File
|
%% Name of the Simulink File
|
||||||
mdl = 'stewart_active_damping';
|
mdl = 'stewart_platform_model';
|
||||||
|
|
||||||
%% Input/Output definition
|
%% Input/Output definition
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||||
io(io_i) = linio([mdl, '/Dm'], 1, 'openoutput'); io_i = io_i + 1; % Displacement of each leg [m]
|
io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'dLm'); io_i = io_i + 1; % Relative Displacement Outputs [m]
|
||||||
|
|
||||||
%% Run the linearization
|
%% Run the linearization
|
||||||
G = linearize(mdl, io, options);
|
G = linearize(mdl, io, options);
|
||||||
@ -1266,8 +1290,8 @@ And we identify the dynamics from the actuator forces $\tau_{i}$ to the relative
|
|||||||
#+begin_src matlab :exports none
|
#+begin_src matlab :exports none
|
||||||
%% Input/Output definition
|
%% Input/Output definition
|
||||||
clear io; io_i = 1;
|
clear io; io_i = 1;
|
||||||
io(io_i) = linio([mdl, '/F'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Force Inputs [N]
|
||||||
io(io_i) = linio([mdl, '/Fm'], 1, 'openoutput'); io_i = io_i + 1; % Displacement of each leg [m]
|
io(io_i) = linio([mdl, '/Stewart Platform'], 1, 'openoutput', [], 'Taum'); io_i = io_i + 1; % Force Sensor Outputs [N]
|
||||||
|
|
||||||
%% Run the linearization
|
%% Run the linearization
|
||||||
G = linearize(mdl, io, options);
|
G = linearize(mdl, io, options);
|
||||||
@ -1323,7 +1347,7 @@ And we identify the dynamics from the actuator forces $\tau_{i}$ to the relative
|
|||||||
|
|
||||||
** Conclusion
|
** Conclusion
|
||||||
#+begin_important
|
#+begin_important
|
||||||
The Cubic architecture seems to not have any significant effect on the coupling between actuator and sensors of each strut.
|
The Cubic architecture seems to not have any significant effect on the coupling between actuator and sensors of each strut and thus provides no advantages for decentralized control.
|
||||||
#+end_important
|
#+end_important
|
||||||
|
|
||||||
* Functions
|
* Functions
|
||||||
|
Loading…
Reference in New Issue
Block a user