Update initialization
This commit is contained in:
		@@ -21,7 +21,6 @@
 | 
			
		||||
:END:
 | 
			
		||||
 | 
			
		||||
* Introduction                                                        :ignore:
 | 
			
		||||
 | 
			
		||||
The following decentralized active damping techniques are briefly studied:
 | 
			
		||||
- Inertial Control (proportional feedback of the absolute velocity): Section [[sec:active_damping_inertial]]
 | 
			
		||||
- Integral Force Feedback: Section [[sec:active_damping_iff]]
 | 
			
		||||
@@ -54,7 +53,8 @@ The following decentralized active damping techniques are briefly studied:
 | 
			
		||||
 | 
			
		||||
** Identification of the Dynamics
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
@@ -283,10 +283,12 @@ The root locus is shown in figure [[fig:root_locus_inertial_rot_stiffness]] and
 | 
			
		||||
** Identification of the Dynamics with perfect Joints
 | 
			
		||||
We first initialize the Stewart platform without joint stiffness.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
  stewart = initializeAmplifiedStrutDynamics(stewart);
 | 
			
		||||
  stewart = initializeJointDynamics(stewart, 'disable', true);
 | 
			
		||||
  stewart = initializeCylindricalPlatforms(stewart);
 | 
			
		||||
  stewart = initializeCylindricalStruts(stewart);
 | 
			
		||||
@@ -316,7 +318,7 @@ And we identify the dynamics from force actuators to force sensors.
 | 
			
		||||
 | 
			
		||||
The transfer function from actuator forces to force sensors is shown in Figure [[fig:iff_plant_coupling]].
 | 
			
		||||
#+begin_src matlab :exports none
 | 
			
		||||
  freqs = logspace(1, 3, 1000);
 | 
			
		||||
  freqs = logspace(1, 4, 1000);
 | 
			
		||||
 | 
			
		||||
  figure;
 | 
			
		||||
 | 
			
		||||
@@ -514,7 +516,8 @@ The root locus is shown in figure [[fig:root_locus_iff_rot_stiffness]] and the o
 | 
			
		||||
** Identification of the Dynamics with perfect Joints
 | 
			
		||||
We first initialize the Stewart platform without joint stiffness.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
 
 | 
			
		||||
@@ -69,7 +69,8 @@
 | 
			
		||||
 | 
			
		||||
** Initialize the Stewart platform
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions();
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
 
 | 
			
		||||
@@ -56,7 +56,8 @@ We create a cubic Stewart platform (figure [[fig:3d-cubic-stewart-aligned]]) in
 | 
			
		||||
The Jacobian matrix is estimated at the location of the center of the cube.
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 100e-3, 'MO_B', -50e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 100e-3, 'MO_B', -50e-3);
 | 
			
		||||
  stewart = generateCubicConfiguration(stewart, 'Hc', 100e-3, 'FOc', 50e-3, 'FHa', 0, 'MHb', 0);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart, 'Ki', ones(6,1));
 | 
			
		||||
@@ -99,7 +100,8 @@ We create a cubic Stewart platform with center of the cube located at the center
 | 
			
		||||
The Jacobian matrix is not estimated at the location of the center of the cube.
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 100e-3, 'MO_B', 0);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 100e-3, 'MO_B', 0);
 | 
			
		||||
  stewart = generateCubicConfiguration(stewart, 'Hc', 100e-3, 'FOc', 50e-3, 'FHa', 0, 'MHb', 0);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart, 'Ki', ones(6,1));
 | 
			
		||||
@@ -142,7 +144,8 @@ The Jacobian is estimated at the cube center.
 | 
			
		||||
[[file:./figs/3d-cubic-stewart-misaligned.png]]
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 80e-3, 'MO_B', -40e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 80e-3, 'MO_B', -40e-3);
 | 
			
		||||
  stewart = generateCubicConfiguration(stewart, 'Hc', 100e-3, 'FOc', 50e-3, 'FHa', 0, 'MHb', 0);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart, 'Ki', ones(6,1));
 | 
			
		||||
@@ -188,7 +191,8 @@ The center height of the Stewart platform is then at $z = \frac{175-75}{2} = 50$
 | 
			
		||||
The center of the cube from the top platform is at $z = 110 - 175 = -65$.
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 80e-3, 'MO_B', -40e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 80e-3, 'MO_B', -40e-3);
 | 
			
		||||
  stewart = generateCubicConfiguration(stewart, 'Hc', 100e-3, 'FOc', 50e-3, 'FHa', 0, 'MHb', 0);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart, 'Ki', ones(6,1));
 | 
			
		||||
@@ -237,7 +241,8 @@ This is possible, to do so:
 | 
			
		||||
  It is possible to have small cube, but then to configuration is a little bit strange.
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 100e-3, 'MO_B', 50e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 100e-3, 'MO_B', 50e-3);
 | 
			
		||||
  FOc = stewart.H + stewart.MO_B(3);
 | 
			
		||||
  Hc = 2*(stewart.H + stewart.MO_B(3));
 | 
			
		||||
  stewart = generateCubicConfiguration(stewart, 'Hc', Hc, 'FOc', FOc, 'FHa', 10e-3, 'MHb', 10e-3);
 | 
			
		||||
@@ -368,7 +373,7 @@ This Matlab function is accessible [[file:src/generateCubicConfiguration.m][here
 | 
			
		||||
  %
 | 
			
		||||
  % Inputs:
 | 
			
		||||
  %    - stewart - A structure with the following fields
 | 
			
		||||
  %        - H   [1x1] - Total height of the platform [m]
 | 
			
		||||
  %        - geometry.H [1x1] - Total height of the platform [m]
 | 
			
		||||
  %    - args - Can have the following fields:
 | 
			
		||||
  %        - Hc  [1x1] - Height of the "useful" part of the cube [m]
 | 
			
		||||
  %        - FOc [1x1] - Height of the center of the cube with respect to {F} [m]
 | 
			
		||||
@@ -377,8 +382,8 @@ This Matlab function is accessible [[file:src/generateCubicConfiguration.m][here
 | 
			
		||||
  %
 | 
			
		||||
  % Outputs:
 | 
			
		||||
  %    - stewart - updated Stewart structure with the added fields:
 | 
			
		||||
  %        - Fa  [3x6] - Its i'th column is the position vector of joint ai with respect to {F}
 | 
			
		||||
  %        - Mb  [3x6] - Its i'th column is the position vector of joint bi with respect to {M}
 | 
			
		||||
  %        - platform_F.Fa  [3x6] - Its i'th column is the position vector of joint ai with respect to {F}
 | 
			
		||||
  %        - platform_M.Mb  [3x6] - Its i'th column is the position vector of joint bi with respect to {M}
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Documentation
 | 
			
		||||
@@ -403,6 +408,15 @@ This Matlab function is accessible [[file:src/generateCubicConfiguration.m][here
 | 
			
		||||
  end
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Check the =stewart= structure elements
 | 
			
		||||
:PROPERTIES:
 | 
			
		||||
:UNNUMBERED: t
 | 
			
		||||
:END:
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  assert(isfield(stewart.geometry, 'H'),   'stewart.geometry should have attribute H')
 | 
			
		||||
  H = stewart.geometry.H;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Position of the Cube
 | 
			
		||||
:PROPERTIES:
 | 
			
		||||
:UNNUMBERED: t
 | 
			
		||||
@@ -437,8 +451,17 @@ We can compute the vector of each leg ${}^{C}\hat{\bm{s}}_{i}$ (unit vector from
 | 
			
		||||
 | 
			
		||||
We now which to compute the position of the joints $a_{i}$ and $b_{i}$.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart.Fa = CCf + [0; 0; args.FOc] + ((args.FHa-(args.FOc-args.Hc/2))./CSi(3,:)).*CSi;
 | 
			
		||||
  stewart.Mb = CCf + [0; 0; args.FOc-stewart.H] + ((stewart.H-args.MHb-(args.FOc-args.Hc/2))./CSi(3,:)).*CSi;
 | 
			
		||||
  Fa = CCf + [0; 0; args.FOc] + ((args.FHa-(args.FOc-args.Hc/2))./CSi(3,:)).*CSi;
 | 
			
		||||
  Mb = CCf + [0; 0; args.FOc-H] + ((H-args.MHb-(args.FOc-args.Hc/2))./CSi(3,:)).*CSi;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
*** Populate the =stewart= structure
 | 
			
		||||
:PROPERTIES:
 | 
			
		||||
:UNNUMBERED: t
 | 
			
		||||
:END:
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart.platform_F.Fa = Fa;
 | 
			
		||||
  stewart.platform_M.Mb = Mb;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
* Bibliography                                                        :ignore:
 | 
			
		||||
 
 | 
			
		||||
@@ -41,7 +41,8 @@
 | 
			
		||||
 | 
			
		||||
** test
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions();
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
@@ -129,7 +130,8 @@ Estimation of the transfer function from $\mathcal{\bm{F}}$ to $\mathcal{\bm{X}}
 | 
			
		||||
** Compare external forces and forces applied by the actuators
 | 
			
		||||
Initialization of the Stewart platform.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions();
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
@@ -194,7 +196,8 @@ Seems quite similar.
 | 
			
		||||
** Comparison of the static transfer function and the Compliance matrix
 | 
			
		||||
Initialization of the Stewart platform.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions();
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
@@ -257,7 +260,8 @@ The low frequency transfer function matrix from $\mathcal{\bm{F}}$ to $\mathcal{
 | 
			
		||||
** Transfer function from forces applied in the legs to the displacement of the legs
 | 
			
		||||
Initialization of the Stewart platform.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions();
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
 
 | 
			
		||||
@@ -65,7 +65,8 @@ An important difference from basic Simulink models is that the states in a physi
 | 
			
		||||
 | 
			
		||||
** Initialize the Stewart Platform
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions();
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
@@ -120,7 +121,8 @@ An important difference from basic Simulink models is that the states in a physi
 | 
			
		||||
 | 
			
		||||
** Initialize the Stewart Platform
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions();
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
@@ -354,7 +356,8 @@ Save the movie of the mode shape.
 | 
			
		||||
 | 
			
		||||
** Initialize the Stewart Platform
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions();
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStrutDynamics(stewart);
 | 
			
		||||
 
 | 
			
		||||
@@ -226,7 +226,8 @@ This will also gives us the range for which the approximate forward kinematic is
 | 
			
		||||
*** Stewart architecture definition
 | 
			
		||||
We first define some general Stewart architecture.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStewartPose(stewart);
 | 
			
		||||
@@ -331,7 +332,8 @@ This is what is analyzed in this section.
 | 
			
		||||
** Stewart architecture definition
 | 
			
		||||
Let's first define the Stewart platform architecture that we want to study.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStewartPose(stewart);
 | 
			
		||||
@@ -487,7 +489,8 @@ However, for small displacements, we can use the Jacobian as an approximate solu
 | 
			
		||||
** Stewart architecture definition
 | 
			
		||||
Let's first define the Stewart platform architecture that we want to study.
 | 
			
		||||
#+begin_src matlab
 | 
			
		||||
  stewart = initializeFramesPositions('H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = initializeStewartPlatform();
 | 
			
		||||
  stewart = initializeFramesPositions(stewart, 'H', 90e-3, 'MO_B', 45e-3);
 | 
			
		||||
  stewart = generateGeneralConfiguration(stewart);
 | 
			
		||||
  stewart = computeJointsPose(stewart);
 | 
			
		||||
  stewart = initializeStewartPose(stewart);
 | 
			
		||||
 
 | 
			
		||||
@@ -131,6 +131,7 @@ There is two main types of inertial sensor that can be used to measure the absol
 | 
			
		||||
 | 
			
		||||
Both inertial sensors are described bellow.
 | 
			
		||||
 | 
			
		||||
* Other Elements
 | 
			
		||||
** Z-Axis Geophone
 | 
			
		||||
*** Working Principle
 | 
			
		||||
From the schematic of the Z-axis geophone shown in Figure [[fig:z_axis_geophone]], we can write the transfer function from the support velocity $\dot{w}$ to the relative velocity of the inertial mass $\dot{d}$:
 | 
			
		||||
 
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user