Add flexible mirror. And dimension of mirror
This commit is contained in:
parent
e1cde2bd5b
commit
3665313d14
BIN
mat/conf_log.mat
BIN
mat/conf_log.mat
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
mat/stages.mat
BIN
mat/stages.mat
Binary file not shown.
Binary file not shown.
@ -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.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
|
||||
|
@ -1,9 +1,11 @@
|
||||
function [] = initializeMirror(args)
|
||||
|
||||
arguments
|
||||
args.type char {mustBeMember(args.type,{'none', 'rigid'})} = 'rigid'
|
||||
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');
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user