Add flexible mirror. And dimension of mirror

This commit is contained in:
Thomas Dehaeze 2020-04-14 11:30:25 +02:00
parent e1cde2bd5b
commit 3665313d14
10 changed files with 69 additions and 21 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1076,9 +1076,11 @@ The output =mirror_center= corresponds to the center of the Sphere and is the po
:END:
#+begin_src matlab
arguments
args.type char {mustBeMember(args.type,{'none', 'rigid'})} = 'rigid'
args.shape char {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical'
args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg]
args.type char {mustBeMember(args.type,{'none', 'rigid', 'flexible'})} = 'rigid'
args.shape char {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical'
args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg]
args.mass (1,1) double {mustBeNumeric, mustBePositive} = 10 % [kg]
args.freq (6,1) double {mustBeNumeric, mustBeNonnegative} = 200*ones(6,1) % [Hz]
end
#+end_src
@ -1101,10 +1103,43 @@ First, we initialize the =mirror= structure.
mirror.type = 0;
case 'rigid'
mirror.type = 1;
case 'flexible'
mirror.type = 2;
end
#+end_src
** Material and Geometry
** Mass and Inertia
:PROPERTIES:
:UNNUMBERED: t
:END:
#+begin_src matlab
mirror.mass = args.mass;
mirror.freq = args.freq;
#+end_src
** Stiffness and Damping properties
:PROPERTIES:
:UNNUMBERED: t
:END:
#+begin_src matlab
mirror.K = zeros(6,1);
mirror.K(1:3) = mirror.mass * (2*pi*mirror.freq(1:3)).^2;
mirror.C = zeros(6,1);
mirror.C(1:3) = 0.2 * sqrt(mirror.K(1:3).*mirror.mass);
#+end_src
** Equilibrium position of the each joint.
:PROPERTIES:
:UNNUMBERED: t
:END:
#+begin_src matlab
mirror.Deq = zeros(6,1);
#+end_src
** Geometry
:PROPERTIES:
:UNNUMBERED: t
:END:
@ -1115,7 +1150,7 @@ We define the geometrical values.
mirror.thickness = 0.025; % Thickness of the plate supporting the sample [m]
mirror.hole_rad = 0.120; % radius of the hole in the mirror [m]
mirror.hole_rad = 0.125; % radius of the hole in the mirror [m]
mirror.support_rad = 0.1; % radius of the support plate [m]
@ -1125,15 +1160,13 @@ We define the geometrical values.
mirror.jacobian = 0.20;
case 'rigid'
mirror.jacobian = 0.20 - mirror.h;
case 'flexible'
mirror.jacobian = 0.20 - mirror.h;
end
mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m]
#+end_src
#+begin_src matlab
mirror.density = 2400; % Density of the material [kg/m3]
#+end_src
#+begin_src matlab
mirror.cone_length = mirror.rad*tand(args.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point
#+end_src
@ -1142,7 +1175,7 @@ Now we define the Shape of the mirror.
We first start with the internal part.
#+begin_src matlab
mirror.shape = [...
0 mirror.h-mirror.thickness
mirror.support_rad+5e-3 mirror.h-mirror.thickness
mirror.hole_rad mirror.h-mirror.thickness; ...
mirror.hole_rad 0; ...
mirror.rad 0 ...
@ -1166,7 +1199,7 @@ Then, we define the reflective used part of the mirror.
Finally, we close the shape.
#+begin_src matlab
mirror.shape = [mirror.shape; 0 mirror.h];
mirror.shape = [mirror.shape; mirror.support_rad+5e-3 mirror.h];
#+end_src
** Save the Structure
@ -1234,7 +1267,7 @@ The =mirror= structure is saved.
args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3
args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1
args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3
args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 100e-3
args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 120e-3
% initializeCylindricalStruts
args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1
args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3

View File

@ -1,9 +1,11 @@
function [] = initializeMirror(args)
arguments
args.type char {mustBeMember(args.type,{'none', 'rigid'})} = 'rigid'
args.shape char {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical'
args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg]
args.type char {mustBeMember(args.type,{'none', 'rigid', 'flexible'})} = 'rigid'
args.shape char {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical'
args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg]
args.mass (1,1) double {mustBeNumeric, mustBePositive} = 10 % [kg]
args.freq (6,1) double {mustBeNumeric, mustBeNonnegative} = 200*ones(6,1) % [Hz]
end
mirror = struct();
@ -13,13 +15,26 @@ switch args.type
mirror.type = 0;
case 'rigid'
mirror.type = 1;
case 'flexible'
mirror.type = 2;
end
mirror.mass = args.mass;
mirror.freq = args.freq;
mirror.K = zeros(6,1);
mirror.K(1:3) = mirror.mass * (2*pi*mirror.freq(1:3)).^2;
mirror.C = zeros(6,1);
mirror.C(1:3) = 0.2 * sqrt(mirror.K(1:3).*mirror.mass);
mirror.Deq = zeros(6,1);
mirror.h = 0.05; % Height of the mirror [m]
mirror.thickness = 0.025; % Thickness of the plate supporting the sample [m]
mirror.hole_rad = 0.120; % radius of the hole in the mirror [m]
mirror.hole_rad = 0.125; % radius of the hole in the mirror [m]
mirror.support_rad = 0.1; % radius of the support plate [m]
@ -29,16 +44,16 @@ switch args.type
mirror.jacobian = 0.20;
case 'rigid'
mirror.jacobian = 0.20 - mirror.h;
case 'flexible'
mirror.jacobian = 0.20 - mirror.h;
end
mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m]
mirror.density = 2400; % Density of the material [kg/m3]
mirror.cone_length = mirror.rad*tand(args.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point
mirror.shape = [...
0 mirror.h-mirror.thickness
mirror.support_rad+5e-3 mirror.h-mirror.thickness
mirror.hole_rad mirror.h-mirror.thickness; ...
mirror.hole_rad 0; ...
mirror.rad 0 ...
@ -56,6 +71,6 @@ else
error('Shape should be either conical or spherical');
end
mirror.shape = [mirror.shape; 0 mirror.h];
mirror.shape = [mirror.shape; mirror.support_rad+5e-3 mirror.h];
save('./mat/stages.mat', 'mirror', '-append');

View File

@ -22,7 +22,7 @@ arguments
args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3
args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1
args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3
args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 100e-3
args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 120e-3
% initializeCylindricalStruts
args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1
args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3