UP | HOME

Transfer function from velocity of one stage to the velocity of another stage using geophones

Table of Contents

1 Experimental Setup

For all the measurements in this section:

  • all the control stages are OFF.
  • the measurements are on the \(z\) direction

1.1 From Marble to Ty - mat/meas_010.mat

One geophone is on the marble, one is on the Ty stage (see figures 1, 2 and 3).

The data array contains the following columns:

Column Description
1 Ground
2 Ty
3 Time

IMG_20190430_155330.jpg

Figure 1: Setup with one geophone on the marble and one on top of the translation stage

IMG_20190430_155335.jpg

Figure 2: Setup with one geophone on the marble and one on top of the translation stage - Close up view

IMG_20190430_155342.jpg

Figure 3: Setup with one geophone on the marble and one on top of the translation stage - Top view

1.2 From Marble to Ry - mat/meas_011.mat

One geophone is on the marble, one is on the Ry stage (see figure 4)

The data array contains the following columns:

Column Description
1 Ground
2 Ry
3 Time

IMG_20190430_163919.jpg

Figure 4: Setup with one geophone on the marble and one on top of the Tilt Stage

1.3 From Ty to Ry - mat/meas_012.mat

One geophone is on the Ty stage, one is on the Ry stage (see figures 5, 6 and 7) One geophone on the Ty stage, one geophone on the Ry stage.

The data array contains the following columns:

Column Description
1 Ty
2 Ry
3 Time

IMG_20190430_170405.jpg

Figure 5: Setup with one geophone on the translation stage and one on top of the Tilt Stage

IMG_20190430_170418.jpg

Figure 6: Setup with one geophone on the translation stage and one on top of the Tilt Stage - Top view

IMG_20190430_170425.jpg

Figure 7: Setup with one geophone on the translation stage and one on top of the Tilt Stage - Close up view

2 Measurement Analysis

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

2.1 Load data

We load the data of the z axis of two geophones.

m_ty  = load('mat/data_010.mat', 'data'); m_ty  = m_ty.data;
m_ry  = load('mat/data_011.mat', 'data'); m_ry  = m_ry.data;
ty_ry = load('mat/data_012.mat', 'data'); ty_ry = ty_ry.data;

2.2 Analysis - Time Domain

First, we can look at the time domain data.

figure;
hold on;
plot(m_ty(:, 3), m_ty(:, 1), 'DisplayName', 'Marble');
plot(m_ty(:, 3), m_ty(:, 2), 'DisplayName', 'Ty');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
legend('Location', 'northeast');
xlim([0, 500]);

time_domain_m_ty.png

Figure 8: Time domain - Marble and translation stage

figure;
hold on;
plot(m_ry(:, 3), m_ry(:, 1), 'DisplayName', 'Marble');
plot(m_ry(:, 3), m_ry(:, 2), 'DisplayName', 'Ty');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
legend('Location', 'northeast');
xlim([0, 500]);

time_domain_m_ry.png

Figure 9: Time domain - Marble and tilt stage

figure;
hold on;
plot(ty_ry(:, 3), ty_ry(:, 1), 'DisplayName', 'Ty');
plot(ty_ry(:, 3), ty_ry(:, 2), 'DisplayName', 'Ry');
hold off;
xlabel('Time [s]'); ylabel('Voltage [V]');
legend('Location', 'northeast');
xlim([0, 500]);

time_domain_ty_ry.png

Figure 10: Time domain - Translation stage and tilt stage

2.3 Analysis - Frequency Domain

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

Fs = 1/dt;
win = hanning(ceil(1*Fs));

First, we compute the transfer function estimate between the two geophones for the 3 experiments (figure 11). We also plot their coherence (figure 12).

[T_m_ty,  f] = tfestimate(m_ty(:, 1),  m_ty(:, 2),  win, [], [], Fs);
[T_m_ry,  ~] = tfestimate(m_ry(:, 1),  m_ry(:, 2),  win, [], [], Fs);
[T_ty_ry, ~] = tfestimate(ty_ry(:, 1), ty_ry(:, 2), win, [], [], Fs);
figure;
ax1 = subplot(2, 1, 1);
hold on;
plot(f, abs(T_m_ty),  'DisplayName', 'Marble - Ty');
plot(f, abs(T_m_ry),  'DisplayName', 'Marble - Ry');
plot(f, abs(T_ty_ry), 'DisplayName', 'Ty - Ry');
hold off;
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
set(gca, 'XTickLabel',[]);
ylabel('Magnitude');
legend('Location', 'northwest');

ax2 = subplot(2, 1, 2);
hold on;
plot(f, mod(180+180/pi*phase(T_m_ty),  360)-180);
plot(f, mod(180+180/pi*phase(T_m_ry),  360)-180);
plot(f, mod(180+180/pi*phase(T_ty_ry), 360)-180);
hold off;
set(gca, 'xscale', 'log');
ylim([-180, 180]);
yticks([-180, -90, 0, 90, 180]);
xlabel('Frequency [Hz]'); ylabel('Phase');

linkaxes([ax1,ax2],'x');
xlim([10, 500]);

compare_tf_geophones.png

Figure 11: Transfer function from the first geophone to the second geophone for the three experiments

[coh_m_ty,  f] = mscohere(m_ty(:, 1),  m_ty(:, 2),  win, [], [], Fs);
[coh_m_ry,  ~] = mscohere(m_ry(:, 1),  m_ry(:, 2),  win, [], [], Fs);
[coh_ty_ry, ~] = mscohere(ty_ry(:, 1), ty_ry(:, 2), win, [], [], Fs);

coherence_two_geophones.png

Figure 12: Coherence between the two geophones for the three experiments

2.4 Conclusion

These measurements are not relevant.

Author: Dehaeze Thomas

Created: 2020-11-12 jeu. 10:29