From c947ed116ff893dce50dac2a578b8b92e725f1a6 Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Thu, 13 Feb 2020 15:48:03 +0100 Subject: [PATCH] Move accelerometer/geophone explaination --- docs/simscape-model.html | 205 ++--------------- docs/stewart-architecture.html | 390 ++++++++++++++++++++------------- org/simscape-model.org | 103 --------- org/stewart-architecture.org | 46 ++++ 4 files changed, 298 insertions(+), 446 deletions(-) diff --git a/docs/simscape-model.html b/docs/simscape-model.html index c5feac1..b40d970 100644 --- a/docs/simscape-model.html +++ b/docs/simscape-model.html @@ -4,7 +4,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Stewart Platform - Simscape Model @@ -281,32 +281,20 @@ for the JavaScript code in this tag. @@ -537,9 +525,9 @@ This Matlab function is accessible here

-
-

Function description

-
+
+

Function description

+
function [payload] = initializePayload(args)
 % initializePayload - Initialize the Payload that can then be used for simulations and analysis
@@ -569,9 +557,9 @@ This Matlab function is accessible here
 
-
-

Optional Parameters

-
+
+

Optional Parameters

+
arguments
   args.type char {mustBeMember(args.type,{'none', 'solid', 'flexible', 'cartesian'})} = 'none'
@@ -633,9 +621,9 @@ This Matlab function is accessible here.
 

-
-

Function description

-
+
+

Function description

+
function [ground] = initializeGround(args)
 % initializeGround - Initialize the Ground that can then be used for simulations and analysis
@@ -658,9 +646,9 @@ This Matlab function is accessible here.
 
-
-

Optional Parameters

-
+
+

Optional Parameters

+
arguments
   args.type char {mustBeMember(args.type,{'none', 'solid', 'flexible'})} = 'none'
@@ -700,168 +688,11 @@ ground.C = args.C;
 
- -
-

6.3 Z-Axis Geophone

-
-
-
-

6.3.1 Working Principle

-
-

-From the schematic of the Z-axis geophone shown in Figure 5, we can write the transfer function from the support velocity \(\dot{w}\) to the relative velocity of the inertial mass \(\dot{d}\): -\[ \frac{\dot{d}}{\dot{w}} = \frac{-\frac{s^2}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \] -with: -

-
    -
  • \(\omega_0 = \sqrt{\frac{k}{m}}\)
  • -
  • \(\xi = \frac{1}{2} \sqrt{\frac{m}{k}}\)
  • -
- - -
-

inertial_sensor.png -

-

Figure 5: Schematic of a Z-Axis geophone

-
- -

-We see that at frequencies above \(\omega_0\): -\[ \frac{\dot{d}}{\dot{w}} \approx -1 \] -

- -

-And thus, the measurement of the relative velocity of the mass with respect to its support gives the absolute velocity of the support. -

- -

-We generally want to have the smallest resonant frequency \(\omega_0\) to measure low frequency absolute velocity, however there is a trade-off between \(\omega_0\) and the mass of the inertial mass. -

-
-
- -
-

6.3.2 Initialization function

-
-

- -

- -

-This Matlab function is accessible here. -

- -
-
function [geophone] = initializeZAxisGeophone(args)
-    arguments
-        args.mass (1,1) double {mustBeNumeric, mustBePositive} = 1e-3 % [kg]
-        args.freq (1,1) double {mustBeNumeric, mustBePositive} = 1    % [Hz]
-    end
-
-    %%
-    geophone.m = args.mass;
-
-    %% The Stiffness is set to have the damping resonance frequency
-    geophone.k = geophone.m * (2*pi*args.freq)^2;
-
-    %% We set the damping value to have critical damping
-    geophone.c = 2*sqrt(geophone.m * geophone.k);
-
-    %% Save
-    save('./mat/geophone_z_axis.mat', 'geophone');
-end
-
-
-
-
-
- -
-

6.4 Z-Axis Accelerometer

-
-
-
-

6.4.1 Working Principle

-
-

-From the schematic of the Z-axis accelerometer shown in Figure 6, we can write the transfer function from the support acceleration \(\ddot{w}\) to the relative position of the inertial mass \(d\): -\[ \frac{d}{\ddot{w}} = \frac{-\frac{1}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \] -with: -

-
    -
  • \(\omega_0 = \sqrt{\frac{k}{m}}\)
  • -
  • \(\xi = \frac{1}{2} \sqrt{\frac{m}{k}}\)
  • -
- - -
-

inertial_sensor.png -

-

Figure 6: Schematic of a Z-Axis geophone

-
- -

-We see that at frequencies below \(\omega_0\): -\[ \frac{d}{\ddot{w}} \approx -\frac{1}{{\omega_0}^2} \] -

- -

-And thus, the measurement of the relative displacement of the mass with respect to its support gives the absolute acceleration of the support. -

- -

-Note that there is trade-off between: -

-
    -
  • the highest measurable acceleration \(\omega_0\)
  • -
  • the sensitivity of the accelerometer which is equal to \(-\frac{1}{{\omega_0}^2}\)
  • -
-
-
- -
-

6.4.2 Initialization function

-
-

- -

- -

-This Matlab function is accessible here. -

- -
-
function [accelerometer] = initializeZAxisAccelerometer(args)
-    arguments
-        args.mass (1,1) double {mustBeNumeric, mustBePositive} = 5e-3 % [kg]
-        args.freq (1,1) double {mustBeNumeric, mustBePositive} = 5e3  % [Hz]
-    end
-
-    %%
-    accelerometer.m = args.mass;
-
-    %% The Stiffness is set to have the damping resonance frequency
-    accelerometer.k = accelerometer.m * (2*pi*args.freq)^2;
-
-    %% We set the damping value to have critical damping
-    accelerometer.c = 2*sqrt(accelerometer.m * accelerometer.k);
-
-    %% Gain correction of the accelerometer to have a unity gain until the resonance
-    accelerometer.gain = -accelerometer.k/accelerometer.m;
-
-    %% Save
-    save('./mat/accelerometer_z_axis.mat', 'accelerometer');
-end
-
-
-
-
-

Author: Dehaeze Thomas

-

Created: 2020-02-13 jeu. 14:42

+

Created: 2020-02-13 jeu. 15:47

diff --git a/docs/stewart-architecture.html b/docs/stewart-architecture.html index 41e1d14..e9bbf94 100644 --- a/docs/stewart-architecture.html +++ b/docs/stewart-architecture.html @@ -4,7 +4,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + Stewart Platform - Definition of the Architecture @@ -297,85 +297,85 @@ for the JavaScript code in this tag.
-
-

Documentation

-
+
+

Documentation

+
- -
-

Function description

-
+
+

Function description

+
-
-

Documentation

-
+
+

Documentation

+
- -
-

Function description

-
+
+

Function description

+
-
-

Optional Parameters

-
+
+

Optional Parameters

+
arguments
     stewart
@@ -983,9 +985,9 @@ FO_A = MO_B + FO_M; % Po
 
-
-

Populate the stewart structure

-
+
+

Populate the stewart structure

+
stewart.geometry.H      = H;
 stewart.geometry.FO_M   = FO_M;
@@ -1009,9 +1011,9 @@ This Matlab function is accessible 
-

Documentation

-
+ -
-

Function description

-
+
+

Function description

+
function [stewart] = generateGeneralConfiguration(stewart, args)
 % generateGeneralConfiguration - Generate a Very General Configuration
@@ -1053,9 +1055,9 @@ The radius of the circles can be chosen as well as the angles where the joints a
 
-
-

Optional Parameters

-
+
+

Optional Parameters

+
arguments
     stewart
@@ -1090,9 +1092,9 @@ Mb = zeros(3,6);
 
-
-

Populate the stewart structure

-
+
+

Populate the stewart structure

+
stewart.platform_F.Fa = Fa;
 stewart.platform_M.Mb = Mb;
@@ -1114,9 +1116,9 @@ This Matlab function is accessible here
 

-
-

Documentation

-
+
+

Documentation

+
-
-

Function description

-
+
+

Function description

+
-
-

Check the stewart structure elements

-
+
+

Check the stewart structure elements

+
assert(isfield(stewart.platform_F, 'Fa'),   'stewart.platform_F should have attribute Fa')
 Fa = stewart.platform_F.Fa;
@@ -1234,9 +1236,9 @@ MRb = zeros(3,3,6);
 
-
-

Populate the stewart structure

-
+
+

Populate the stewart structure

+
stewart.geometry.Aa = Aa;
 stewart.geometry.Ab = Ab;
@@ -1269,9 +1271,9 @@ This Matlab function is accessible here
 

-
-

Function description

-
+
+

Function description

+
-
-

Optional Parameters

-
+
+

Optional Parameters

+
-
-

Populate the stewart structure

-
+
+

Populate the stewart structure

+
stewart.actuators.Leq = dLi;
 
@@ -1342,9 +1344,9 @@ This Matlab function is accessible
-

Function description

-
+
+

Function description

+
function [stewart] = initializeCylindricalPlatforms(stewart, args)
 % initializeCylindricalPlatforms - Initialize the geometry of the Fixed and Mobile Platforms
@@ -1378,9 +1380,9 @@ This Matlab function is accessible 
-

Optional Parameters

-
+
+

Optional Parameters

+
arguments
     stewart
@@ -1415,9 +1417,9 @@ This Matlab function is accessible 
-

Populate the stewart structure

-
+
+

Populate the stewart structure

+
stewart.platform_F.type = 1;
 
@@ -1453,9 +1455,9 @@ This Matlab function is accessible 
-

Function description

-
+
+

Function description

+
function [stewart] = initializeCylindricalStruts(stewart, args)
 % initializeCylindricalStruts - Define the mass and moment of inertia of cylindrical struts
@@ -1488,9 +1490,9 @@ This Matlab function is accessible 
-

Optional Parameters

-
+
+

Optional Parameters

+
arguments
     stewart
@@ -1538,9 +1540,9 @@ I_M = zeros(3, 3, 6); % Inertia of the "mobile" part o
 
-
-

Populate the stewart structure

-
+
+

Populate the stewart structure

+
-
-

Documentation

-
+
+

Documentation

+

piezoelectric_stack.jpg @@ -1607,9 +1609,9 @@ A simplistic model of such amplified actuator is shown in Figure -

Function description

-
+
+

Function description

+
function [stewart] = initializeStrutDynamics(stewart, args)
 % initializeStrutDynamics - Add Stiffness and Damping properties of each strut
@@ -1631,9 +1633,9 @@ A simplistic model of such amplified actuator is shown in Figure 
-

Optional Parameters

-
+
+

Optional Parameters

+
arguments
     stewart
@@ -1671,9 +1673,9 @@ This Matlab function is accessible 
-

Documentation

-
+
+

Documentation

+

An amplified piezoelectric actuator is shown in Figure 13.

@@ -1706,9 +1708,9 @@ A simplistic model of such amplified actuator is shown in Figure -

Function description

-
+
+

Function description

+
function [stewart] = initializeAmplifiedStrutDynamics(stewart, args)
 % initializeAmplifiedStrutDynamics - Add Stiffness and Damping properties of each strut
@@ -1736,9 +1738,9 @@ A simplistic model of such amplified actuator is shown in Figure 
-

Optional Parameters

-
+
+

Optional Parameters

+
arguments
     stewart
@@ -1763,9 +1765,9 @@ C = args.Ca + args.Cr;
 
-
-

Populate the stewart structure

-
+
+

Populate the stewart structure

+
-
-

Function description

-
+
+

Function description

+
-
-

Optional Parameters

-
+
+

Optional Parameters

+
-
-

Function description

-
+
+

Geophone - Working Principle

+
+

+From the schematic of the Z-axis geophone shown in Figure 15, we can write the transfer function from the support velocity \(\dot{w}\) to the relative velocity of the inertial mass \(\dot{d}\): +\[ \frac{\dot{d}}{\dot{w}} = \frac{-\frac{s^2}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \] +with: +

+
    +
  • \(\omega_0 = \sqrt{\frac{k}{m}}\)
  • +
  • \(\xi = \frac{1}{2} \sqrt{\frac{m}{k}}\)
  • +
+ + +
+

inertial_sensor.png +

+

Figure 15: Schematic of a Z-Axis geophone

+
+ +

+We see that at frequencies above \(\omega_0\): +\[ \frac{\dot{d}}{\dot{w}} \approx -1 \] +

+ +

+And thus, the measurement of the relative velocity of the mass with respect to its support gives the absolute velocity of the support. +

+ +

+We generally want to have the smallest resonant frequency \(\omega_0\) to measure low frequency absolute velocity, however there is a trade-off between \(\omega_0\) and the mass of the inertial mass. +

+
+
+ +
+

Accelerometer - Working Principle

+
+

+From the schematic of the Z-axis accelerometer shown in Figure 16, we can write the transfer function from the support acceleration \(\ddot{w}\) to the relative position of the inertial mass \(d\): +\[ \frac{d}{\ddot{w}} = \frac{-\frac{1}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \] +with: +

+
    +
  • \(\omega_0 = \sqrt{\frac{k}{m}}\)
  • +
  • \(\xi = \frac{1}{2} \sqrt{\frac{m}{k}}\)
  • +
+ + +
+

inertial_sensor.png +

+

Figure 16: Schematic of a Z-Axis geophone

+
+ +

+We see that at frequencies below \(\omega_0\): +\[ \frac{d}{\ddot{w}} \approx -\frac{1}{{\omega_0}^2} \] +

+ +

+And thus, the measurement of the relative displacement of the mass with respect to its support gives the absolute acceleration of the support. +

+ +

+Note that there is trade-off between: +

+
    +
  • the highest measurable acceleration \(\omega_0\)
  • +
  • the sensitivity of the accelerometer which is equal to \(-\frac{1}{{\omega_0}^2}\)
  • +
+
+
+ +
+

Function description

+
-
-

Optional Parameters

-
+
+

Optional Parameters

+
-
-

Populate the stewart structure

-
+
+

Populate the stewart structure

+
-
-

Function description

-
+
+

Function description

+
-
-

Optional Parameters

-
+
+

Optional Parameters

+
-
-

Check the stewart structure elements

-
+
+

Check the stewart structure elements

+
assert(isfield(stewart.platform_F, 'FO_A'), 'stewart.platform_F should have attribute FO_A')
 FO_A = stewart.platform_F.FO_A;
@@ -2426,6 +2502,8 @@ Plot the legs connecting the joints of the fixed base to the joints of the mobil
   axis equal;
   axis off;
   title('Side')
+
+  close(f);
 end
 
@@ -2444,7 +2522,7 @@ Plot the legs connecting the joints of the fixed base to the joints of the mobil

Author: Dehaeze Thomas

-

Created: 2020-02-12 mer. 14:16

+

Created: 2020-02-13 jeu. 15:47

diff --git a/org/simscape-model.org b/org/simscape-model.org index a41b2bd..caef737 100644 --- a/org/simscape-model.org +++ b/org/simscape-model.org @@ -301,106 +301,3 @@ This Matlab function is accessible [[file:../src/initializeGround.m][here]]. ground.C = args.C; #+end_src -** 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}$: -\[ \frac{\dot{d}}{\dot{w}} = \frac{-\frac{s^2}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \] -with: -- $\omega_0 = \sqrt{\frac{k}{m}}$ -- $\xi = \frac{1}{2} \sqrt{\frac{m}{k}}$ - -#+name: fig:z_axis_geophone -#+caption: Schematic of a Z-Axis geophone -[[file:figs/inertial_sensor.png]] - -We see that at frequencies above $\omega_0$: -\[ \frac{\dot{d}}{\dot{w}} \approx -1 \] - -And thus, the measurement of the relative velocity of the mass with respect to its support gives the absolute velocity of the support. - -We generally want to have the smallest resonant frequency $\omega_0$ to measure low frequency absolute velocity, however there is a trade-off between $\omega_0$ and the mass of the inertial mass. - -*** Initialization function -:PROPERTIES: -:header-args:matlab+: :tangle ../src/initializeZAxisGeophone.m -:header-args:matlab+: :comments none :mkdirp yes :eval no -:END: -<> - -This Matlab function is accessible [[file:../src/initializeZAxisGeophone.m][here]]. - -#+begin_src matlab - function [geophone] = initializeZAxisGeophone(args) - arguments - args.mass (1,1) double {mustBeNumeric, mustBePositive} = 1e-3 % [kg] - args.freq (1,1) double {mustBeNumeric, mustBePositive} = 1 % [Hz] - end - - %% - geophone.m = args.mass; - - %% The Stiffness is set to have the damping resonance frequency - geophone.k = geophone.m * (2*pi*args.freq)^2; - - %% We set the damping value to have critical damping - geophone.c = 2*sqrt(geophone.m * geophone.k); - - %% Save - save('./mat/geophone_z_axis.mat', 'geophone'); - end -#+end_src - -** Z-Axis Accelerometer -*** Working Principle -From the schematic of the Z-axis accelerometer shown in Figure [[fig:z_axis_accelerometer]], we can write the transfer function from the support acceleration $\ddot{w}$ to the relative position of the inertial mass $d$: -\[ \frac{d}{\ddot{w}} = \frac{-\frac{1}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \] -with: -- $\omega_0 = \sqrt{\frac{k}{m}}$ -- $\xi = \frac{1}{2} \sqrt{\frac{m}{k}}$ - -#+name: fig:z_axis_accelerometer -#+caption: Schematic of a Z-Axis geophone -[[file:figs/inertial_sensor.png]] - -We see that at frequencies below $\omega_0$: -\[ \frac{d}{\ddot{w}} \approx -\frac{1}{{\omega_0}^2} \] - -And thus, the measurement of the relative displacement of the mass with respect to its support gives the absolute acceleration of the support. - -Note that there is trade-off between: -- the highest measurable acceleration $\omega_0$ -- the sensitivity of the accelerometer which is equal to $-\frac{1}{{\omega_0}^2}$ - -*** Initialization function -:PROPERTIES: -:header-args:matlab+: :tangle ../src/initializeZAxisAccelerometer.m -:header-args:matlab+: :comments none :mkdirp yes :eval no -:END: -<> - -This Matlab function is accessible [[file:../src/initializeZAxisAccelerometer.m][here]]. - -#+begin_src matlab - function [accelerometer] = initializeZAxisAccelerometer(args) - arguments - args.mass (1,1) double {mustBeNumeric, mustBePositive} = 5e-3 % [kg] - args.freq (1,1) double {mustBeNumeric, mustBePositive} = 5e3 % [Hz] - end - - %% - accelerometer.m = args.mass; - - %% The Stiffness is set to have the damping resonance frequency - accelerometer.k = accelerometer.m * (2*pi*args.freq)^2; - - %% We set the damping value to have critical damping - accelerometer.c = 2*sqrt(accelerometer.m * accelerometer.k); - - %% Gain correction of the accelerometer to have a unity gain until the resonance - accelerometer.gain = -accelerometer.k/accelerometer.m; - - %% Save - save('./mat/accelerometer_z_axis.mat', 'accelerometer'); - end -#+end_src - diff --git a/org/stewart-architecture.org b/org/stewart-architecture.org index ed0d538..64a7023 100644 --- a/org/stewart-architecture.org +++ b/org/stewart-architecture.org @@ -1344,6 +1344,50 @@ Rotational Damping This Matlab function is accessible [[file:../src/initializeInertialSensor.m][here]]. +*** Geophone - Working Principle +:PROPERTIES: +:UNNUMBERED: t +:END: +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}$: +\[ \frac{\dot{d}}{\dot{w}} = \frac{-\frac{s^2}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \] +with: +- $\omega_0 = \sqrt{\frac{k}{m}}$ +- $\xi = \frac{1}{2} \sqrt{\frac{m}{k}}$ + +#+name: fig:z_axis_geophone +#+caption: Schematic of a Z-Axis geophone +[[file:figs/inertial_sensor.png]] + +We see that at frequencies above $\omega_0$: +\[ \frac{\dot{d}}{\dot{w}} \approx -1 \] + +And thus, the measurement of the relative velocity of the mass with respect to its support gives the absolute velocity of the support. + +We generally want to have the smallest resonant frequency $\omega_0$ to measure low frequency absolute velocity, however there is a trade-off between $\omega_0$ and the mass of the inertial mass. + +*** Accelerometer - Working Principle +:PROPERTIES: +:UNNUMBERED: t +:END: +From the schematic of the Z-axis accelerometer shown in Figure [[fig:z_axis_accelerometer]], we can write the transfer function from the support acceleration $\ddot{w}$ to the relative position of the inertial mass $d$: +\[ \frac{d}{\ddot{w}} = \frac{-\frac{1}{{\omega_0}^2}}{\frac{s^2}{{\omega_0}^2} + 2 \xi \frac{s}{\omega_0} + 1} \] +with: +- $\omega_0 = \sqrt{\frac{k}{m}}$ +- $\xi = \frac{1}{2} \sqrt{\frac{m}{k}}$ + +#+name: fig:z_axis_accelerometer +#+caption: Schematic of a Z-Axis geophone +[[file:figs/inertial_sensor.png]] + +We see that at frequencies below $\omega_0$: +\[ \frac{d}{\ddot{w}} \approx -\frac{1}{{\omega_0}^2} \] + +And thus, the measurement of the relative displacement of the mass with respect to its support gives the absolute acceleration of the support. + +Note that there is trade-off between: +- the highest measurable acceleration $\omega_0$ +- the sensitivity of the accelerometer which is equal to $-\frac{1}{{\omega_0}^2}$ + *** Function description :PROPERTIES: :UNNUMBERED: t @@ -1744,6 +1788,8 @@ Plot the legs connecting the joints of the fixed base to the joints of the mobil axis equal; axis off; title('Side') + + close(f); end #+end_src