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 |
Figure 1: Setup with one geophone on the marble and one on top of the translation stage
Figure 2: Setup with one geophone on the marble and one on top of the translation stage - Close up view
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 |
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 |
Figure 5: Setup with one geophone on the translation stage and one on top of the Tilt Stage
Figure 6: Setup with one geophone on the translation stage and one on top of the Tilt Stage - Top view
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]);
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]);
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]);
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]);
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);
Figure 12: Coherence between the two geophones for the three experiments
2.4 Conclusion
These measurements are not relevant.