nass-simscape/org/experiments.org
2020-05-04 10:27:41 +02:00

20 KiB

Simulation of Scientific Experiments

Introduction   ignore

The goal here is to simulate some scientific experiments with the Simscape model when no control is applied to the nano-hexapod.

This has several goals:

  • Validate the model
  • Estimate the expected error motion for the experiments
  • Estimate the stroke that we may need for the nano-hexapod
  • Compare with experiments when control is applied

The document in organized as follow:

  • In section sec:simscape_model the Simscape model is initialized
  • In section sec:tomo_no_dist a tomography experiment is performed where the sample is aligned with the rotation axis. No disturbance is included
  • In section sec:tomo_dist, the same is done but with disturbance included
  • In section sec:tomo_hexa_trans the micro-hexapod translate the sample such that its center of mass is no longer aligned with the rotation axis. No disturbance is included
  • In section sec:ty_scans, scans with the translation stage are simulated with no perturbation included

Simscape Model

<<sec:simscape_model>>

We load the shared simulink configuration and we set the StopTime.

  load('mat/conf_simulink.mat');
  set_param(conf_simulink, 'StopTime', '2');

We first initialize all the stages. The nano-hexapod is considered to be a rigid body.

  initializeGround();
  initializeGranite();
  initializeTy();
  initializeRy();
  initializeRz();
  initializeMicroHexapod();
  initializeAxisc();
  initializeMirror();
  initializeNanoHexapod('type', 'rigid');
  initializeSample('mass', 1);

No controller is used (Open Loop).

  initializeController('type', 'open-loop');

We don't gravity.

  initializeSimscapeConfiguration('gravity', false);

We log the signals for further analysis.

  initializeLoggingConfiguration('log', 'all');

Tomography Experiment with no disturbances

<<sec:tomo_no_dist>>

Introduction   ignore

In this section, a tomography experiment is performed with the sample aligned with the rotation axis. No disturbance is included.

Simulation Setup

And we initialize the disturbances to be equal to zero.

  initializeDisturbances(...
      '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
      );

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('Rz_type', 'rotating', 'Rz_period', 1);

We simulate the model.

  sim('nass_model');

And we save the obtained data.

  tomo_align_no_dist = simout;
  save('./mat/experiment_tomography.mat', 'tomo_align_no_dist', '-append');

Analysis

  load('./mat/experiment_tomography.mat', 'tomo_align_no_dist');
  <<plt-matlab>>
/tdehaeze/nass-simscape/media/commit/5a157db8a10a47236a99ddbe06cf7cddfec3ceea/org/figs/exp_tomo_without_dist.png
X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (png, pdf)

Conclusion

When everything is aligned, the resulting error motion is very small (nm range) and is quite negligible with respect to the error when disturbances are included. This residual error motion probably comes from a small misalignment somewhere.

Tomography Experiment with included perturbations

<<sec:tomo_dist>>

Introduction   ignore

In this section, we also perform a tomography experiment with the sample's center of mass aligned with the rotation axis. However this time, we include perturbations such as ground motion and stage vibrations.

Simulation Setup

We now activate the disturbances.

  initializeDisturbances(...
      'Dwx', true, ... % Ground Motion - X direction
      'Dwy', true, ... % Ground Motion - Y direction
      'Dwz', true, ... % Ground Motion - Z direction
      'Fty_x', false, ... % Translation Stage - X direction
      'Fty_z', false, ... % Translation Stage - Z direction
      'Frz_z', true  ... % Spindle - Z direction
      );

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('Rz_type', 'rotating', 'Rz_period', 1);

We simulate the model.

  sim('nass_model');

And we save the obtained data.

  tomo_align_dist = simout;
  save('./mat/experiment_tomography.mat', 'tomo_align_dist', '-append');

Analysis

  load('./mat/experiment_tomography.mat', 'tomo_align_dist', 'tomo_align_no_dist');
  <<plt-matlab>>
/tdehaeze/nass-simscape/media/commit/5a157db8a10a47236a99ddbe06cf7cddfec3ceea/org/figs/exp_tomo_dist.png
X-Y-Z translations and rotations of the sample w.r.t. the granite when performing tomography experiment with disturbances (png, pdf)

Conclusion

Here, no vibration is included in the X and Y directions.

Tomography Experiment with Ty raster scans

<<sec:tomo_dist_ty_scans>>

Introduction   ignore

In this section, we also perform a tomography experiment with scans of the Translation stage. All the perturbations are included.

Simulation Setup

We now activate the disturbances.

  initializeDisturbances(...
      '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
      );

We initialize the reference path for all the stages. The Spindle which is rotating at 60rpm and the translation stage not moving as it would take a long time to simulate. However, vibrations of the Ty stage are included.

  initializeReferences('Rz_type', 'rotating', 'Rz_period', 1);

We simulate the model.

  sim('nass_model');

And we save the obtained data.

  scans_rz_align_dist = simout;
  save('./mat/experiment_tomography.mat', 'scans_rz_align_dist', '-append');

Analysis

  load('./mat/experiment_tomography.mat', 'scans_rz_align_dist');

/tdehaeze/nass-simscape/media/commit/5a157db8a10a47236a99ddbe06cf7cddfec3ceea/org/figs/exp_scans_rz_dist.png

X-Y-Z translations and rotations of the sample w.r.t. the granite when performing tomography experiment and scans with the translation stage at the same time

Conclusion

Tomography when the micro-hexapod is not centered

<<sec:tomo_hexa_trans>>

Introduction   ignore

In this section, the sample's center of mass is not aligned with the rotation axis anymore. This is due to the fact that the micro-hexapod has performed some displacement.

No disturbances are included.

Simulation Setup

We first set the wanted translation of the Micro Hexapod.

  P_micro_hexapod = [0.01; 0; 0]; % [m]

We initialize the reference path.

  initializeReferences('Dh_pos', [P_micro_hexapod; 0; 0; 0], 'Rz_type', 'rotating', 'Rz_period', 1);

We initialize the stages.

  initializeMicroHexapod('AP', P_micro_hexapod);

And we initialize the disturbances to zero.

  initializeDisturbances(...
      '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
      );

We simulate the model.

  sim('nass_model');

And we save the obtained data.

  tomo_not_align = simout;
  save('./mat/experiment_tomography.mat', 'tomo_not_align', '-append');

Analysis

  load('./mat/experiment_tomography.mat', 'tomo_not_align', 'tomo_align_no_dist');
  <<plt-matlab>>
/tdehaeze/nass-simscape/media/commit/5a157db8a10a47236a99ddbe06cf7cddfec3ceea/org/figs/exp_tomo_offset.png
X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (png, pdf)

Conclusion

The main motion error are 1Hz X-Y translations and constant Ry error. This is mainly due to finite stiffness of the elements.

Raster Scans with the translation stage

<<sec:ty_scans>>

Introduction   ignore

In this section, scans with the translation stage are performed.

Simulation Setup

We initialize the stages.

  initializeGround();
  initializeGranite();
  initializeTy();
  initializeRy();
  initializeRz();
  initializeMicroHexapod();
  initializeAxisc();
  initializeMirror();
  initializeNanoHexapod('type', 'rigid');
  initializeSample('mass', 1);

And we initialize the disturbances to zero.

  initializeDisturbances(...
      '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
      );

We set the reference path to be a triangular signal for the Translation Stage.

  initializeReferences('Dy_type', 'triangular', 'Dy_amplitude', 10e-3, 'Dy_period', 1);

We simulate the model.

  sim('nass_model');

And we save the obtained data.

  ty_scan_triangle = simout;
  save('./mat/experiment_tomography.mat', 'ty_scan_triangle', '-append');

We now set the reference path to be a sinusoidal signal for the Translation Stage.

  initializeReferences('Dy_type', 'sinusoidal', 'Dy_amplitude', 10e-3, 'Dy_period', 1);

We simulate the model.

  sim('nass_model');

And we save the obtained data.

  ty_scan_sinus = simout;
  save('./mat/experiment_tomography.mat', 'ty_scan_sinus', '-append');

Analysis

  load('./mat/experiment_tomography.mat', 'ty_scan_triangle', 'ty_scan_sinus');
  <<plt-matlab>>
/tdehaeze/nass-simscape/media/commit/5a157db8a10a47236a99ddbe06cf7cddfec3ceea/org/figs/exp_ty_scan.png
X-Y-Z translation of the sample w.r.t. granite when performing tomography experiment with no disturbances (png, pdf)

Conclusion

Scans with the translation stage induces some errors in the Y direction and Rx translations.

Also, scanning with a sinusoidal wave induces less position errors and at lower frequencies. Thus, this should be preferred.