Add flexible mirror. And dimension of mirror
This commit is contained in:
1 parent
e1cde2bd5b
commit
3665313d14
10 files changed
+69
-21
No files matched your search
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.
+45
-12
@@ -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
|
||||
|
||||
+23
-8
@@ -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');
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user