Add link to tangled files
This commit is contained in:
@@ -51,6 +51,12 @@ The following decentralized active damping techniques are briefly studied:
|
||||
:END:
|
||||
<<sec:active_damping_inertial>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/active_damping_inertial.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run active_damping_inertial.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@@ -274,6 +280,12 @@ The root locus is shown in figure [[fig:root_locus_inertial_rot_stiffness]].
|
||||
:END:
|
||||
<<sec:active_damping_iff>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/active_damping_iff.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run active_damping_iff.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
@@ -537,6 +549,12 @@ The root locus is shown in figure [[fig:root_locus_iff_rot_stiffness]] and the o
|
||||
:END:
|
||||
<<sec:active_damping_dvf>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/active_damping_dvf.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run active_damping_dvf.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
|
@@ -57,7 +57,18 @@ In this document, the cubic architecture is analyzed:
|
||||
- In section [[sec:functions]], function related to the cubic configuration are defined. To generate and study the Stewart platform with a Cubic configuration, the Matlab function =generateCubicConfiguration= is used (described [[sec:generateCubicConfiguration][here]]).
|
||||
|
||||
* Stiffness Matrix for the Cubic configuration
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../matlab/cubic_conf_stiffnessl.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:cubic_conf_stiffness>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/cubic_conf_stiffnessl.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run cubic_conf_stiffness.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
First, we have to understand what is the physical meaning of the Stiffness matrix $\bm{K}$.
|
||||
|
||||
@@ -301,7 +312,18 @@ Here are the conclusion about the Stiffness matrix for the Cubic configuration:
|
||||
#+end_important
|
||||
|
||||
* Configuration with the Cube's center above the mobile platform
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../matlab/cubic_conf_above_platforml.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:cubic_conf_above_platform>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/cubic_conf_above_platforml.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run cubic_conf_above_platform.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
We saw in section [[sec:cubic_conf_stiffness]] that in order to have a diagonal stiffness matrix, we need the cube's center to be located at frames $\{A\}$ and $\{B\}$.
|
||||
Or, we usually want to have $\{A\}$ and $\{B\}$ located above the top platform where forces are applied and where displacements are expressed.
|
||||
@@ -469,7 +491,18 @@ However, the rotational stiffnesses are increasing with the cube's size but the
|
||||
#+end_important
|
||||
|
||||
* Cubic size analysis
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../matlab/cubic_conf_size_analysisl.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:cubic_conf_size_analysis>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/cubic_conf_size_analysisl.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run cubic_conf_size_analysis.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
We here study the effect of the size of the cube used for the Stewart Cubic configuration.
|
||||
|
||||
@@ -553,7 +586,18 @@ We observe that $k_{\theta_x} = k_{\theta_y}$ and $k_{\theta_z}$ increase linear
|
||||
#+end_important
|
||||
|
||||
* Dynamic Coupling in the Cartesian Frame
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../matlab/cubic_conf_coupling_cartesianl.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:cubic_conf_coupling_cartesian>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/cubic_conf_coupling_cartesianl.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run cubic_conf_coupling_cartesian.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
In this section, we study the dynamics of the platform in the cartesian frame.
|
||||
|
||||
@@ -980,7 +1024,18 @@ Some conclusions can be drawn from the above analysis:
|
||||
#+end_important
|
||||
|
||||
* Dynamic Coupling between actuators and sensors of each strut
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../matlab/cubic_conf_coupling_strutsl.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:cubic_conf_coupling_struts>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/cubic_conf_coupling_strutsl.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run cubic_conf_coupling_struts.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
From cite:preumont07_six_axis_singl_stage_activ, the cubic configuration "/minimizes the cross-coupling amongst actuators and sensors of different legs (being orthogonal to each other)/".
|
||||
|
||||
|
@@ -49,7 +49,8 @@ The current document is divided in the following sections:
|
||||
- Section [[sec:jacobian_analysis]]: The Jacobian matrix is derived from the geometry of the Stewart platform. Then it is shown that the Jacobian can link velocities and forces present in the system, and thus this matrix can be very useful for both analysis and control of the Stewart platform.
|
||||
- Section [[sec:stiffness_analysis]]: The stiffness and compliance matrices are derived from the Jacobian matrix and the stiffness of each strut.
|
||||
- Section [[sec:forward_inverse_kinematics]]: The Forward and Inverse kinematic problems are presented.
|
||||
- Section [[sec:required_actuator_stroke]]: The Inverse kinematic solution is used to estimate required actuator stroke from the wanted mobility of the Stewart platform.
|
||||
- Section [[sec:kinematic_study_approximation_validity]]: The approximate solution of the Inverse kinematic problem is compared with the exact solution in order to determine the validity of the approximation.
|
||||
- Section [[sec:kinematic_study_required_actuator_stroke]]: The Inverse kinematic solution is used to estimate required actuator stroke from the wanted mobility of the Stewart platform.
|
||||
|
||||
* Jacobian Analysis
|
||||
<<sec:jacobian_analysis>>
|
||||
@@ -213,14 +214,20 @@ As the inverse kinematic can be easily solved exactly this is not much useful, h
|
||||
|
||||
The function =forwardKinematicsApprox= (described [[sec:forwardKinematicsApprox][here]]) can be used to solve the forward kinematic problem using the Jacobian matrix.
|
||||
|
||||
** Estimation of the range validity of the approximate inverse kinematics
|
||||
* Estimation of the range validity of the approximate inverse kinematics
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../matlab/approximate_inverse_kinematics_validity.m
|
||||
:header-args:matlab+: :tangle ../matlab/kinematic_study_approximation_validity.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:approximate_inverse_kinematics_validity>>
|
||||
<<sec:kinematic_study_approximation_validity>>
|
||||
|
||||
*** Introduction :ignore:
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/kinematic_study_approximation_validity.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run kinematic_study_approximation_validity.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
As we know how to exactly solve the Inverse kinematic problem, we can compare the exact solution with the approximate solution using the Jacobian matrix.
|
||||
For small displacements, the approximate solution is expected to work well.
|
||||
We would like here to determine up to what displacement this approximation can be considered as correct.
|
||||
@@ -228,7 +235,7 @@ We would like here to determine up to what displacement this approximation can b
|
||||
Then, we can determine the range for which the approximate inverse kinematic is valid.
|
||||
This will also gives us the range for which the approximate forward kinematic is valid.
|
||||
|
||||
*** Matlab Init :noexport:ignore:
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
#+end_src
|
||||
@@ -241,7 +248,7 @@ This will also gives us the range for which the approximate forward kinematic is
|
||||
simulinkproject('../');
|
||||
#+end_src
|
||||
|
||||
*** Stewart architecture definition
|
||||
** Stewart architecture definition
|
||||
We first define some general Stewart architecture.
|
||||
#+begin_src matlab
|
||||
stewart = initializeStewartPlatform();
|
||||
@@ -256,7 +263,7 @@ We first define some general Stewart architecture.
|
||||
stewart = computeJacobian(stewart);
|
||||
#+end_src
|
||||
|
||||
*** Comparison for "pure" translations
|
||||
** Comparison for "pure" translations
|
||||
Let's first compare the perfect and approximate solution of the inverse for pure $x$ translations.
|
||||
|
||||
We compute the approximate and exact required strut stroke to have the wanted mobile platform $x$ displacement.
|
||||
@@ -320,17 +327,24 @@ The relative strut length displacement is shown in Figure [[fig:inverse_kinemati
|
||||
#+CAPTION: Relative length error by using the Approximate solution of the Inverse kinematic problem ([[./figs/inverse_kinematics_approx_validity_x_translation_relative.png][png]], [[./figs/inverse_kinematics_approx_validity_x_translation_relative.pdf][pdf]])
|
||||
[[file:figs/inverse_kinematics_approx_validity_x_translation_relative.png]]
|
||||
|
||||
*** Conclusion
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
For small wanted displacements (up to $\approx 1\%$ of the size of the Hexapod), the approximate inverse kinematic solution using the Jacobian matrix is quite correct.
|
||||
#+end_important
|
||||
|
||||
* Estimated required actuator stroke from specified platform mobility
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../matlab/required_stroke_from_mobility.m
|
||||
:header-args:matlab+: :tangle ../matlab/kinematic_study_required_actuator_stroke.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:required_actuator_stroke>>
|
||||
<<sec:kinematic_study_required_actuator_stroke>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/kinematic_study_required_actuator_stroke.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run kinematic_study_required_actuator_stroke.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
Let's say one want to design a Stewart platform with some specified mobility (position and orientation).
|
||||
One may want to determine the required actuator stroke required to obtain the specified mobility.
|
||||
@@ -483,10 +497,17 @@ This is probably a much realistic estimation of the required actuator stroke.
|
||||
|
||||
* Estimated platform mobility from specified actuator stroke
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle ../matlab/mobility_from_actuator_stroke.m
|
||||
:header-args:matlab+: :tangle ../matlab/kinematic_study_mobility.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:obtained_mobility_from_stroke>>
|
||||
<<sec:kinematic_study_mobility>>
|
||||
|
||||
#+begin_note
|
||||
The Matlab script corresponding to this section is accessible [[file:../matlab/kinematic_study_mobility.m][here]].
|
||||
|
||||
To run the script, open the Simulink Project, and type =run kinematic_study_mobility.m=.
|
||||
#+end_note
|
||||
|
||||
** Introduction :ignore:
|
||||
Here, from some value of the actuator stroke, we would like to estimate the mobility of the Stewart platform.
|
||||
|
||||
|
Reference in New Issue
Block a user