Add link to tangled files

This commit is contained in:
2020-02-13 16:46:47 +01:00
parent d12891df43
commit b5b3a756a4
17 changed files with 1423 additions and 281 deletions

View File

@@ -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)

View File

@@ -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)/".

View File

@@ -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.