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:
|
:END:
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
arguments
|
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.shape char {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical'
|
||||||
args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg]
|
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
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -1101,10 +1103,43 @@ First, we initialize the =mirror= structure.
|
|||||||
mirror.type = 0;
|
mirror.type = 0;
|
||||||
case 'rigid'
|
case 'rigid'
|
||||||
mirror.type = 1;
|
mirror.type = 1;
|
||||||
|
case 'flexible'
|
||||||
|
mirror.type = 2;
|
||||||
end
|
end
|
||||||
#+end_src
|
#+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:
|
:PROPERTIES:
|
||||||
:UNNUMBERED: t
|
:UNNUMBERED: t
|
||||||
:END:
|
:END:
|
||||||
@ -1115,7 +1150,7 @@ We define the geometrical values.
|
|||||||
|
|
||||||
mirror.thickness = 0.025; % Thickness of the plate supporting the sample [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]
|
mirror.support_rad = 0.1; % radius of the support plate [m]
|
||||||
|
|
||||||
@ -1125,15 +1160,13 @@ We define the geometrical values.
|
|||||||
mirror.jacobian = 0.20;
|
mirror.jacobian = 0.20;
|
||||||
case 'rigid'
|
case 'rigid'
|
||||||
mirror.jacobian = 0.20 - mirror.h;
|
mirror.jacobian = 0.20 - mirror.h;
|
||||||
|
case 'flexible'
|
||||||
|
mirror.jacobian = 0.20 - mirror.h;
|
||||||
end
|
end
|
||||||
|
|
||||||
mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m]
|
mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m]
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src matlab
|
|
||||||
mirror.density = 2400; % Density of the material [kg/m3]
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_src matlab
|
#+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
|
mirror.cone_length = mirror.rad*tand(args.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point
|
||||||
#+end_src
|
#+end_src
|
||||||
@ -1142,7 +1175,7 @@ Now we define the Shape of the mirror.
|
|||||||
We first start with the internal part.
|
We first start with the internal part.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
mirror.shape = [...
|
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 mirror.h-mirror.thickness; ...
|
||||||
mirror.hole_rad 0; ...
|
mirror.hole_rad 0; ...
|
||||||
mirror.rad 0 ...
|
mirror.rad 0 ...
|
||||||
@ -1166,7 +1199,7 @@ Then, we define the reflective used part of the mirror.
|
|||||||
|
|
||||||
Finally, we close the shape.
|
Finally, we close the shape.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
mirror.shape = [mirror.shape; 0 mirror.h];
|
mirror.shape = [mirror.shape; mirror.support_rad+5e-3 mirror.h];
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Save the Structure
|
** Save the Structure
|
||||||
@ -1234,7 +1267,7 @@ The =mirror= structure is saved.
|
|||||||
args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3
|
args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3
|
||||||
args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1
|
args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1
|
||||||
args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3
|
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
|
% initializeCylindricalStruts
|
||||||
args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1
|
args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1
|
||||||
args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3
|
args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
function [] = initializeMirror(args)
|
function [] = initializeMirror(args)
|
||||||
|
|
||||||
arguments
|
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.shape char {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical'
|
||||||
args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg]
|
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
|
||||||
|
|
||||||
mirror = struct();
|
mirror = struct();
|
||||||
@ -13,13 +15,26 @@ switch args.type
|
|||||||
mirror.type = 0;
|
mirror.type = 0;
|
||||||
case 'rigid'
|
case 'rigid'
|
||||||
mirror.type = 1;
|
mirror.type = 1;
|
||||||
|
case 'flexible'
|
||||||
|
mirror.type = 2;
|
||||||
end
|
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.h = 0.05; % Height of the mirror [m]
|
||||||
|
|
||||||
mirror.thickness = 0.025; % Thickness of the plate supporting the sample [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]
|
mirror.support_rad = 0.1; % radius of the support plate [m]
|
||||||
|
|
||||||
@ -29,16 +44,16 @@ switch args.type
|
|||||||
mirror.jacobian = 0.20;
|
mirror.jacobian = 0.20;
|
||||||
case 'rigid'
|
case 'rigid'
|
||||||
mirror.jacobian = 0.20 - mirror.h;
|
mirror.jacobian = 0.20 - mirror.h;
|
||||||
|
case 'flexible'
|
||||||
|
mirror.jacobian = 0.20 - mirror.h;
|
||||||
end
|
end
|
||||||
|
|
||||||
mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m]
|
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.cone_length = mirror.rad*tand(args.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point
|
||||||
|
|
||||||
mirror.shape = [...
|
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 mirror.h-mirror.thickness; ...
|
||||||
mirror.hole_rad 0; ...
|
mirror.hole_rad 0; ...
|
||||||
mirror.rad 0 ...
|
mirror.rad 0 ...
|
||||||
@ -56,6 +71,6 @@ else
|
|||||||
error('Shape should be either conical or spherical');
|
error('Shape should be either conical or spherical');
|
||||||
end
|
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');
|
save('./mat/stages.mat', 'mirror', '-append');
|
||||||
|
@ -22,7 +22,7 @@ arguments
|
|||||||
args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3
|
args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3
|
||||||
args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1
|
args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1
|
||||||
args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3
|
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
|
% initializeCylindricalStruts
|
||||||
args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1
|
args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1
|
||||||
args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3
|
args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3
|
||||||
|
Loading…
Reference in New Issue
Block a user