Add metrology mirror initialization. Change J-height of hexapods
This commit is contained in:
parent
80f3774166
commit
b347442859
1
.gitignore
vendored
1
.gitignore
vendored
@ -28,3 +28,4 @@ octave-workspace
|
|||||||
Assemblage_grt_rtw/
|
Assemblage_grt_rtw/
|
||||||
Figures/
|
Figures/
|
||||||
data/
|
data/
|
||||||
|
Videos/
|
||||||
|
BIN
Assemblage.slx
BIN
Assemblage.slx
Binary file not shown.
@ -11,7 +11,7 @@ initializeSimConf(opts_sim);
|
|||||||
%% Initialize Inputs
|
%% Initialize Inputs
|
||||||
opts_inputs = struct(...
|
opts_inputs = struct(...
|
||||||
'ground_motion', false, ...
|
'ground_motion', false, ...
|
||||||
'rz', true ...
|
'rz', false ...
|
||||||
);
|
);
|
||||||
|
|
||||||
initializeInputs(opts_inputs);
|
initializeInputs(opts_inputs);
|
||||||
@ -45,6 +45,9 @@ opts_nano_hexapod = struct('actuator', 'lorentz');
|
|||||||
|
|
||||||
initializeNanoHexapod(opts_nano_hexapod);
|
initializeNanoHexapod(opts_nano_hexapod);
|
||||||
|
|
||||||
|
%% Initialize the Mirror
|
||||||
|
initializeMirror();
|
||||||
|
|
||||||
%% Initialize Sample
|
%% Initialize Sample
|
||||||
opts_sample = struct('mass', 20);
|
opts_sample = struct('mass', 20);
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@ load('./mat/rz.mat', 'rz');
|
|||||||
load('./mat/micro_hexapod.mat', 'micro_hexapod');
|
load('./mat/micro_hexapod.mat', 'micro_hexapod');
|
||||||
load('./mat/axisc.mat', 'axisc');
|
load('./mat/axisc.mat', 'axisc');
|
||||||
load('./mat/nano_hexapod.mat', 'nano_hexapod');
|
load('./mat/nano_hexapod.mat', 'nano_hexapod');
|
||||||
|
load('./mat/mirror.mat', 'mirror');
|
||||||
load('./mat/sample.mat', 'sample');
|
load('./mat/sample.mat', 'sample');
|
||||||
|
|
||||||
%% Load Signals Applied to the system
|
%% Load Signals Applied to the system
|
||||||
|
@ -12,7 +12,7 @@ function [micro_hexapod] = initializeMicroHexapod(opts_param)
|
|||||||
%% Stewart Object
|
%% Stewart Object
|
||||||
micro_hexapod = struct();
|
micro_hexapod = struct();
|
||||||
micro_hexapod.h = 350; % Total height of the platform [mm]
|
micro_hexapod.h = 350; % Total height of the platform [mm]
|
||||||
micro_hexapod.jacobian = 435; % Point where the Jacobian is computed => Center of rotation [mm]
|
micro_hexapod.jacobian = 265; % Point where the Jacobian is computed => Center of rotation [mm]
|
||||||
|
|
||||||
%% Bottom Plate
|
%% Bottom Plate
|
||||||
BP = struct();
|
BP = struct();
|
||||||
|
55
initialize/initializeMirror.m
Normal file
55
initialize/initializeMirror.m
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
function [mirror] = initializeMirror(opts_param)
|
||||||
|
%% Default values for opts
|
||||||
|
opts = struct(...
|
||||||
|
'shape', 'spherical', ... % spherical or conical
|
||||||
|
'angle', 45 ...
|
||||||
|
);
|
||||||
|
|
||||||
|
%% Populate opts with input parameters
|
||||||
|
if exist('opts_param','var')
|
||||||
|
for opt = fieldnames(opts_param)'
|
||||||
|
opts.(opt{1}) = opts_param.(opt{1});
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
%%
|
||||||
|
mirror = struct();
|
||||||
|
mirror.h = 50; % height of the mirror [mm]
|
||||||
|
mirror.thickness = 25; % Thickness of the plate supporting the sample [mm]
|
||||||
|
mirror.hole_rad = 120; % radius of the hole in the mirror [mm]
|
||||||
|
mirror.support_rad = 100; % radius of the support plate [mm]
|
||||||
|
mirror.jacobian = 150; % point of interest offset in z (above the top surfave) [mm]
|
||||||
|
mirror.rad = 180; % radius of the mirror (at the bottom surface) [mm]
|
||||||
|
|
||||||
|
mirror.density = 2400; % Density of the mirror [kg/m3]
|
||||||
|
|
||||||
|
mirror.cone_length = mirror.rad*tand(opts.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point
|
||||||
|
|
||||||
|
%% Shape
|
||||||
|
mirror.shape = [...
|
||||||
|
0 mirror.h-mirror.thickness
|
||||||
|
mirror.hole_rad mirror.h-mirror.thickness; ...
|
||||||
|
mirror.hole_rad 0; ...
|
||||||
|
mirror.rad 0 ...
|
||||||
|
];
|
||||||
|
|
||||||
|
if strcmp(opts.shape, 'spherical')
|
||||||
|
mirror.sphere_radius = sqrt((mirror.jacobian+mirror.h)^2+mirror.rad^2); % Radius of the sphere [mm]
|
||||||
|
|
||||||
|
for z = linspace(0, mirror.h, 101)
|
||||||
|
mirror.shape = [mirror.shape; sqrt(mirror.sphere_radius^2-(z-mirror.jacobian-mirror.h)^2) z];
|
||||||
|
end
|
||||||
|
elseif strcmp(opts.shape, 'conical')
|
||||||
|
mirror.shape = [mirror.shape; mirror.rad+mirror.h/tand(opts.ang) mirror.h];
|
||||||
|
else
|
||||||
|
error('Shape should be either conical or spherical');
|
||||||
|
end
|
||||||
|
|
||||||
|
mirror.shape = [mirror.shape; 0 mirror.h];
|
||||||
|
|
||||||
|
%%
|
||||||
|
if nargout == 0
|
||||||
|
save('./mat/mirror.mat', 'mirror')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -11,8 +11,8 @@ function [nano_hexapod] = initializeNanoHexapod(opts_param)
|
|||||||
|
|
||||||
%% Stewart Object
|
%% Stewart Object
|
||||||
nano_hexapod = struct();
|
nano_hexapod = struct();
|
||||||
nano_hexapod.h = 90; % Total height of the platform [mm]
|
nano_hexapod.h = 90; % Total height of the platform [mm]
|
||||||
nano_hexapod.jacobian = 174.5; % Point where the Jacobian is computed => Center of rotation [mm]
|
nano_hexapod.jacobian = 175; % Point where the Jacobian is computed => Center of rotation [mm]
|
||||||
|
|
||||||
%% Bottom Plate
|
%% Bottom Plate
|
||||||
BP = struct();
|
BP = struct();
|
||||||
|
BIN
mat/mirror.mat
Normal file
BIN
mat/mirror.mat
Normal file
Binary file not shown.
@ -3,5 +3,8 @@
|
|||||||
* Description of the files
|
* Description of the files
|
||||||
|
|
||||||
* List of things to do
|
* List of things to do
|
||||||
** TODO Apply some MIMO control
|
** SOMEDAY Apply some MIMO control
|
||||||
** TODO Create multiple folder inside the ~mat~ folder.
|
** TODO Create multiple folder inside the ~mat~ folder.
|
||||||
|
** DONE Add the mirror instead of the interface piece
|
||||||
|
CLOSED: [2018-07-11 Wed 15:42]
|
||||||
|
- Be carefull abouth the height of the mirror so that the interested point is still the same.
|
||||||
|
Loading…
Reference in New Issue
Block a user