Tomography Experiment
Table of Contents
1 Simscape Model
The simulink file to do tomography experiments is sim_nano_station_tomo.slx
.
open('experiment_tomography/matlab/sim_nano_station_tomo.slx')
We load the shared simulink configuration and we set a small StopTime
.
load('mat/conf_simscape.mat'); set_param(conf_simscape, 'StopTime', '10');
We first initialize all the stages.
initializeGround(); initializeGranite(); initializeTy(); initializeRy(); initializeRz(); initializeMicroHexapod(); initializeAxisc(); initializeMirror(); initializeNanoHexapod(struct('actuator', 'piezo')); initializeSample(struct('mass', 1));
We initialize the reference path for all the stages. All stage is set to its zero position except the Spindle which is rotating at 60rpm.
initializeReferences(struct('Rz_type', 'rotating', 'Rz_period', 1));
2 Tomography Experiment with no disturbances
And we initialize the disturbances to zero.
opts = struct(... 'Dwx', false, ... % Ground Motion - X direction 'Dwy', false, ... % Ground Motion - Y direction 'Dwz', false, ... % Ground Motion - Z direction 'Fty_x', false, ... % Translation Stage - X direction 'Fty_z', false, ... % Translation Stage - Z direction 'Frz_z', false ... % Spindle - Z direction ); initDisturbances(opts);
sim('sim_nano_station_tomo')
Dsm_without_dist = Dsm;
figure; hold on; plot(Dsm_without_dist.x.Time, Dsm_without_dist.x.Data, 'DisplayName', 'x') plot(Dsm_without_dist.y.Time, Dsm_without_dist.y.Data, 'DisplayName', 'y') plot(Dsm_without_dist.z.Time, Dsm_without_dist.z.Data, 'DisplayName', 'z') hold off; xlim([2, inf]); legend('location', 'northeast');
Figure 1: X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (png, pdf)
Rotations. Think of the good way to plot these rotations with respect to time.
3 With Perturbations
opts = struct(... 'Dwx', true, ... % Ground Motion - X direction 'Dwy', true, ... % Ground Motion - Y direction 'Dwz', true, ... % Ground Motion - Z direction 'Fty_x', true, ... % Translation Stage - X direction 'Fty_z', true, ... % Translation Stage - Z direction 'Frz_z', true ... % Spindle - Z direction ); initDisturbances(opts);
sim('sim_nano_station_tomo')
figure; hold on; plot(Dsm.x.Time, Dsm.x.Data, 'DisplayName', 'x') plot(Dsm.y.Time, Dsm.y.Data, 'DisplayName', 'y') plot(Dsm.z.Time, Dsm.z.Data, 'DisplayName', 'z') hold off; xlim([2, inf]); legend('location', 'northeast');