nass-micro-station-measurem.../disturbance-ty/index.org
2020-04-27 11:35:57 +02:00

24 KiB

Vibrations induced by the translation stage motion

Measurement description

Setup   ignore

Setup: Two geophone are use:

  • One is on the marble (corresponding to the first column in the data)
  • One at the sample location (corresponding to the second column in the data)

Two voltage amplifiers are used, their setup is:

  • gain of 40dB (the gain had to be lowered from 60dB to 40dB in order to not saturate the voltage amplifiers)
  • AC/DC switch on AC
  • Low pass filter at 1kHz

A first order low pass filter is also added at the input of the voltage amplifiers.

Scans are done with the translation stage following sinus reference at 1Hz with amplitude of 600 000 cnt (= 3mm) The scans are done with the ELMO software.

The North of the Geophones corresponds to the +Y direction and the East of the Geophones to the +X direction (see figure fig:experimental_setup_picture).

The spindle and slip-ring are turned ON. The Hexapod and the tilt-stage are OFF.

Goal   ignore

Goal:

  • Determine the disturbances induced by the translation stage in the Z and X directions when scanning along the Y direction

Measurements   ignore

Measurements: Three measurements are done:

Measurement File Description
mat/data_040.mat Z direction
mat/data_041.mat E direction
mat/data_042.mat E direction without any motion (Ty OFF)

Each of the measurement mat file contains one data array with 3 columns:

Column number Description
1 Geophone - Marble
2 Geophone - Sample
3 Time
/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/img/IMG_20190513_163032.jpg
Picture of the experimental setup

We also use the file mat/data_051.mat when we measure the z direction when everything is off. The setup used for the measurement is described here.

Measurement Analysis

<<sec:disturbance_ty>>

ZIP file containing the data and matlab files   ignore

All the files (data and Matlab scripts) are accessible here.

Load data

  z_ty = load('mat/data_040.mat', 'data'); z_ty = z_ty.data;
  z_of = load('mat/data_051.mat', 'data'); z_of = z_of.data;
  e_ty = load('mat/data_041.mat', 'data'); e_ty = e_ty.data;
  e_of = load('mat/data_042.mat', 'data'); e_of = e_of.data;

There is probably a sign error for the Geophone located on top of the Hexapod (only for the z direction). The problem probably comes from the wiring in the Slip-Ring.

  z_ty(:, 2) = -z_ty(:, 2);

Voltage to Velocity

We convert the measured voltage to velocity using the function voltageToVelocityL22 (accessible here).

  gain = 40; % [dB]

  z_ty(:, 1) = voltageToVelocityL22(z_ty(:, 1), z_ty(:, 3), gain);
  z_of(:, 1) = voltageToVelocityL22(z_of(:, 1), z_of(:, 3), gain);
  e_ty(:, 1) = voltageToVelocityL22(e_ty(:, 1), e_ty(:, 3), gain);
  e_of(:, 1) = voltageToVelocityL22(e_of(:, 1), e_of(:, 3), gain);

  z_ty(:, 2) = voltageToVelocityL22(z_ty(:, 2), z_ty(:, 3), gain);
  z_of(:, 2) = voltageToVelocityL22(z_of(:, 2), z_of(:, 3), gain);
  e_ty(:, 2) = voltageToVelocityL22(e_ty(:, 2), e_ty(:, 3), gain);
  e_of(:, 2) = voltageToVelocityL22(e_of(:, 2), e_of(:, 3), gain);

Time domain plots

We plot the measured velocity of the marble and sample in the vertical direction (figure fig:ty_z_time) and in the X direction (figure fig:ty_e_time).

We also integrate the relative velocity to obtain the relative displacement (figure fig:x_relative_disp in the X direction and figure fig:z_relative_disp in the Z direction).

  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/ty_z_time.png

Z velocity of the sample and marble when scanning with the translation stage
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/ty_e_time.png

Velocity of the sample and marble in the east direction when scanning with the translation stage
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/x_relative_disp.png

X relative displacement of the sample with respect to the marble
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/z_relative_disp.png

Z relative disp of the sample with respect to the marble

Frequency Domain

We load measured ground motion at ID31 to compare with the velocities measured.

  gm = load('../ground-motion/mat/psd_gm.mat', 'f', 'psd_gm', 'psd_gv');

We first compute some parameters that will be used for the PSD computation.

  dt = z_ty(2, 3)-z_ty(1, 3);

  Fs = 1/dt; % [Hz]

  win = hanning(ceil(10*Fs));

Then we compute the Power Spectral Density using pwelch function.

First for the geophone located on the marble

  [pxz_ty_m, f] = pwelch(z_ty(:, 1), win, [], gm.f, Fs);
  [pxz_of_m, ~] = pwelch(z_of(:, 1), win, [], gm.f, Fs);
  [pxe_ty_m, ~] = pwelch(e_ty(:, 1), win, [], gm.f, Fs);
  [pxe_of_m, ~] = pwelch(e_of(:, 1), win, [], gm.f, Fs);

And for the geophone located at the sample position.

  [pxz_ty_s, ~] = pwelch(z_ty(:, 2), win, [], gm.f, Fs);
  [pxz_of_s, ~] = pwelch(z_of(:, 2), win, [], gm.f, Fs);
  [pxe_ty_s, ~] = pwelch(e_ty(:, 2), win, [], gm.f, Fs);
  [pxe_of_s, ~] = pwelch(e_of(:, 2), win, [], gm.f, Fs);

And we plot the ASD of the measured velocities:

  • figure fig:asd_east_marble compares the marble velocity in the east direction when scanning and when Ty is OFF
  • figure fig:asd_east_sample compares the sample velocity in the east direction when scanning and when Ty is OFF
  • figure fig:asd_z_direction shows the marble and sample velocities in the Z direction when scanning with the translation stage
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/asd_east_marble.png

Amplitude spectral density of the measured velocities corresponding to the geophone in the east direction located on the marble when the translation stage is OFF and when it is scanning at 1Hz
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/asd_east_sample.png

Amplitude spectral density of the measured velocities corresponding to the geophone in the east direction located at the sample location when the translation stage is OFF and when it is scanning at 1Hz
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/asd_z_direction.png

Amplitude spectral density of the measure velocity corresponding to the geophone in the vertical direction located on the granite and at the sample location when the translation stage is scanning at 1Hz
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/asd_z_direction.png

Amplitude spectral density of the measure velocity corresponding to the geophone in the vertical direction located on the granite and at the sample location when the translation stage is scanning at 1Hz

Relative Motion

And finally for the relative velocity between the sample and the marble.

  [pxz_ty_r, f] = pwelch(z_ty(:, 2)-z_ty(:, 1), win, [], gm.f, Fs);
  [pxz_of_r, ~] = pwelch(z_of(:, 2)-z_of(:, 1), win, [], gm.f, Fs);
  [pxe_ty_r, ~] = pwelch(e_ty(:, 2)-e_ty(:, 1), win, [], gm.f, Fs);
  [pxe_of_r, ~] = pwelch(e_of(:, 2)-e_of(:, 1), win, [], gm.f, Fs);

Fig. fig:asd_e_relative shows the relative velocity of the sample with respect to the granite in the X direction when the translation stage is OFF and when it is scanning at 1Hz

  figure;
  hold on;
  plot(f, sqrt(pxz_of_r), 'DisplayName', 'Ty OFF - Relative - Z');
  plot(f, sqrt(pxz_of_s), 'DisplayName', 'Ty 1Hz - Relative - Z');
  plot(f, sqrt(pxz_of_m), 'DisplayName', 'Ty 1Hz - Relative - Z');
  hold off;
  set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
  xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
  legend('Location', 'northwest');
  xlim([0.1, 500]);
  figure;
  hold on;
  plot(f, sqrt(pxz_of_r), 'DisplayName', 'Ty OFF - Relative - Z');
  plot(f, sqrt(pxz_ty_r), 'DisplayName', 'Ty 1Hz - Relative - Z');
  hold off;
  set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
  xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
  legend('Location', 'northwest');
  xlim([0.1, 500]);
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/asd_z_relative.png

Amplitude spectral density of the measured relative velocity in the X direction
  figure;
  hold on;
  plot(f, sqrt(pxe_of_r), 'DisplayName', 'Ty OFF - Relative - E');
  plot(f, sqrt(pxe_ty_r), 'DisplayName', 'Ty 1Hz - Relative - E');
  hold off;
  set(gca, 'xscale', 'log');
  set(gca, 'yscale', 'log');
  xlabel('Frequency [Hz]'); ylabel('ASD of the measured velocity $\left[\frac{m/s}{\sqrt{Hz}}\right]$')
  legend('Location', 'northwest');
  xlim([0.1, 500]);
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/asd_e_relative.png

Amplitude spectral density of the measured relative velocity in the X direction

Save

The Power Spectral Density of the relative velocity is saved for further analysis.

  save('mat/pxz_ty_r.mat', 'f', 'pxz_ty_r', 'pxz_ty_s');
  save('mat/pxe_ty_r.mat', 'f', 'pxe_ty_r', 'pxe_ty_s');

Position of the translation stage and Current

The position of the translation and current flowing in its actuator are measured using the elmo software and saved as an csv file.

Data pre-processing

Let's look at at the start of the csv file.

  sed -n 1,30p mat/sin_elmo.csv | nl -ba -
     1	Elmo txt chart ver 2.0
     2
     3	[File Properties]
     4	Creation Time,2019-05-13 05:11:45
     5	Last Updated,2019-05-13 05:11:45
     6	Resolution,0.001
     7	Sampling Time,5E-05
     8	Recording Time,5.461
     9
    10	[Chart Properties]
    11	No.,Name,X Linear,X No.
    12	1,Chart #1,True,0
    13	2,Chart #2,True,0
    14
    15	[Chart Data]
    16	Display No.,X No.,Y No.,X Unit,Y Unit,Color,Style,Width
    17	1,1,2,sec,N/A,ff0000ff,Solid,TwoPoint
    18	2,1,3,sec,N/A,ff0000ff,Solid,TwoPoint
    19	2,1,4,sec,N/A,ff007f00,Solid,TwoPoint
    20
    21	[Signal Names]
    22	1,Time (sec)
    23	2,Position [cnt]
    24	3,Current Command [A]
    25	4,Total Current Command [A]
    26
    27	[Signals Data Group 1]
    28	1,2,3,4,
    29	0,1110769,-0.320872406596209,-0.320872406596209,
    30	0.001,1108743,-0.319658428261391,-0.319658428261391,

The real data starts at line 29. We then load this cvs file starting at line 29.

  data = csvread("mat/sin_elmo.csv", 29, 0);

Time domain data

We plot the position of the translation stage measured by the encoders. There is 200000 encoder count for each mm, we then divide by 200000 to obtain mm. The result is shown on figure fig:ty_position_time.

  figure;
  hold on;
  plot(data(:, 1), data(:, 2)/200000);
  hold off;
  xlim([0, 5]);
  xlabel('Time [s]'); ylabel('Position [mm]');
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/ty_position_time.png

Y position of the translation stage measured by the encoders
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/ty_position_time_zoom.png

Y position of the translation stage measured by the encoders - Zoom

We also plot the current as function of the time on figure fig:current_time.

  figure;
  hold on;
  plot(data(:, 1), data(:, 3));
  hold off;
  xlim([0, 5]); ylim([-10, 10]);
  xlabel('Time [s]'); ylabel('Current [A]');
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/current_time.png

Current going through the actuator of the translation stage
  <<plt-matlab>>

/tdehaeze/nass-micro-station-measurements/media/commit/5089f5b2abf859c48e7d5dfcac8fed54d0eab6aa/disturbance-ty/figs/current_time_zoom.png

Current going through the actuator of the translation stage - Zoom

Conclusion

  • The acquisition is done using the Speedgoat as well as using ELMO. The two acquisition are not synchronize
  • The value of the translation stage encoder can also be read with the speedgoat, this could permit to synchronize the measurements