Integration of geophone to have the displacement
This commit is contained in:
parent
10a75220fd
commit
401a6da21b
BIN
2018-10-15 - Marc/figs/meas2_disp.png
Normal file
BIN
2018-10-15 - Marc/figs/meas2_disp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
BIN
2018-10-15 - Marc/figs/meas3_disp.png
Normal file
BIN
2018-10-15 - Marc/figs/meas3_disp.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 68 KiB |
Binary file not shown.
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 55 KiB |
BIN
2018-10-15 - Marc/figs/meas4_hexa_z_psd_int.png
Normal file
BIN
2018-10-15 - Marc/figs/meas4_hexa_z_psd_int.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 80 KiB |
BIN
2018-10-15 - Marc/figs/meas4_int.png
Normal file
BIN
2018-10-15 - Marc/figs/meas4_int.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 75 KiB |
Binary file not shown.
@ -242,7 +242,51 @@ Measurements will be normalized by the inverse of this transfer function in orde
|
||||
#+RESULTS: fig:L4C_bode_plot
|
||||
[[file:figs/L4C_bode_plot.png]]
|
||||
|
||||
Time domain data are just normalized using the sensibility of the sensor ($276.8 V/m/s$).
|
||||
#+begin_src matlab :results none :exports code
|
||||
meas{1}.Track1 = (meas{1}.Track1)./276.8;
|
||||
meas{1}.Track2 = (meas{1}.Track2)./276.8;
|
||||
meas{1}.Track3 = (meas{1}.Track3)./276.8;
|
||||
|
||||
meas{2}.Track1 = (meas{2}.Track1)./276.8;
|
||||
meas{2}.Track2 = (meas{2}.Track2)./276.8;
|
||||
meas{2}.Track3 = (meas{2}.Track3)./276.8;
|
||||
|
||||
meas{3}.Track1 = (meas{3}.Track1)./276.8;
|
||||
meas{3}.Track2 = (meas{3}.Track2)./276.8;
|
||||
meas{3}.Track3 = (meas{3}.Track3)./276.8;
|
||||
|
||||
meas{4}.Track1 = (meas{4}.Track1)./276.8;
|
||||
meas{4}.Track2 = (meas{4}.Track2)./276.8;
|
||||
meas{4}.Track3 = (meas{4}.Track3)./276.8;
|
||||
|
||||
meas{5}.Track1 = (meas{5}.Track1)./276.8;
|
||||
meas{5}.Track2 = (meas{5}.Track2)./276.8;
|
||||
meas{5}.Track3 = (meas{5}.Track3)./276.8;
|
||||
meas{5}.Track4 = (meas{5}.Track4)./276.8;
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :results none
|
||||
meas{1}.Track1_norm = lsim(inv(L4C_G), meas{1}.Track1, t1);
|
||||
meas{1}.Track2_norm = lsim(inv(L4C_G), meas{1}.Track2, t1);
|
||||
meas{1}.Track3_norm = lsim(inv(L4C_G), meas{1}.Track3, t1);
|
||||
|
||||
meas{2}.Track1_norm = lsim(inv(L4C_G), meas{2}.Track1, t2);
|
||||
meas{2}.Track2_norm = lsim(inv(L4C_G), meas{2}.Track2, t2);
|
||||
meas{2}.Track3_norm = lsim(inv(L4C_G), meas{2}.Track3, t2);
|
||||
|
||||
meas{3}.Track1_norm = lsim(inv(L4C_G), meas{3}.Track1, t3);
|
||||
meas{3}.Track2_norm = lsim(inv(L4C_G), meas{3}.Track2, t3);
|
||||
meas{3}.Track3_norm = lsim(inv(L4C_G), meas{3}.Track3, t3);
|
||||
|
||||
meas{4}.Track1_norm = lsim(inv(L4C_G), meas{4}.Track1, t4);
|
||||
meas{4}.Track2_norm = lsim(inv(L4C_G), meas{4}.Track2, t4);
|
||||
meas{4}.Track3_norm = lsim(inv(L4C_G), meas{4}.Track3, t4);
|
||||
|
||||
meas{5}.Track1_norm = lsim(inv(L4C_G), meas{5}.Track1, t5);
|
||||
meas{5}.Track2_norm = lsim(inv(L4C_G), meas{5}.Track2, t5);
|
||||
meas{5}.Track3_norm = lsim(inv(L4C_G), meas{5}.Track3, t5);
|
||||
meas{5}.Track4_norm = lsim(inv(L4C_G), meas{5}.Track4, t5);
|
||||
#+end_src
|
||||
|
||||
* Measurement 1 - Effect of Ty stage
|
||||
The configuration for this measurement is shown table [[tab:conf_meas1]].
|
||||
@ -267,9 +311,9 @@ We then plot the measurements in time domain (figure [[fig:meas1]]).
|
||||
#+begin_src matlab :exports none :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(t1(ceil(300/dt):ceil(340/dt)), (1/276.8).*meas{1}.Track1(ceil(300/dt):ceil(340/dt)));
|
||||
plot(t1(ceil(300/dt):ceil(340/dt)), (1/276.8).*meas{1}.Track2(ceil(300/dt):ceil(340/dt)));
|
||||
plot(t1(ceil(300/dt):ceil(340/dt)), (1/276.8).*meas{1}.Track3(ceil(300/dt):ceil(340/dt)));
|
||||
plot(t1(ceil(300/dt):ceil(340/dt)), meas{1}.Track1(ceil(300/dt):ceil(340/dt)));
|
||||
plot(t1(ceil(300/dt):ceil(340/dt)), meas{1}.Track2(ceil(300/dt):ceil(340/dt)));
|
||||
plot(t1(ceil(300/dt):ceil(340/dt)), meas{1}.Track3(ceil(300/dt):ceil(340/dt)));
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
legend({meas{1}.Track1_Name, meas{1}.Track2_Name, meas{1}.Track3_Name}, 'Location', 'northeast')
|
||||
@ -287,17 +331,14 @@ We then plot the measurements in time domain (figure [[fig:meas1]]).
|
||||
[[file:figs/meas1.png]]
|
||||
|
||||
To understand what is going on, instead of looking at the velocity, we can look at the displacement by integrating the data. The displacement is computed by integrating the velocity using =cumtrapz= function.
|
||||
#+begin_src matlab :exports code :results silent
|
||||
tdisp = t1(ceil(300/dt):ceil(340/dt));
|
||||
xdisp = cumtrapz(tdisp, (1/276.8).*meas{1}.Track3(ceil(300/dt):ceil(340/dt)));
|
||||
#+end_src
|
||||
|
||||
Then we plot the position with respect to time (figure [[fig:meas1_disp]]).
|
||||
#+begin_src matlab :exports none :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(tdisp, xdisp);
|
||||
plot(t1, cumtrapz(t1, meas{1}.Track3));
|
||||
hold off;
|
||||
xlim([300, 340]);
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
#+end_src
|
||||
|
||||
@ -428,9 +469,9 @@ We plot the time domain (figure [[fig:meas2]]) and we don't observe anything spe
|
||||
#+begin_src matlab :exports results :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(t2(ceil(300/dt):ceil(350/dt)), (1/276.8).*meas{2}.Track1(ceil(300/dt):ceil(350/dt)));
|
||||
plot(t2(ceil(300/dt):ceil(350/dt)), (1/276.8).*meas{2}.Track3(ceil(300/dt):ceil(350/dt)));
|
||||
plot(t2(ceil(300/dt):ceil(350/dt)), (1/276.8).*meas{2}.Track2(ceil(300/dt):ceil(350/dt)));
|
||||
plot(t2(ceil(300/dt):ceil(350/dt)), meas{2}.Track1(ceil(300/dt):ceil(350/dt)));
|
||||
plot(t2(ceil(300/dt):ceil(350/dt)), meas{2}.Track3(ceil(300/dt):ceil(350/dt)));
|
||||
plot(t2(ceil(300/dt):ceil(350/dt)), meas{2}.Track2(ceil(300/dt):ceil(350/dt)));
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
legend({meas{2}.Track1_Name, meas{2}.Track2_Name, meas{2}.Track3_Name}, 'Location', 'northeast')
|
||||
@ -448,6 +489,29 @@ We plot the time domain (figure [[fig:meas2]]) and we don't observe anything spe
|
||||
#+RESULTS: fig:meas2
|
||||
[[file:figs/meas2.png]]
|
||||
|
||||
#+begin_src matlab :exports none :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(t2, cumtrapz(t2, meas{2}.Track1));
|
||||
plot(t2, cumtrapz(t2, meas{2}.Track2));
|
||||
plot(t2, cumtrapz(t2, meas{2}.Track3));
|
||||
hold off;
|
||||
xlim([300, 350]);
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
legend({meas{2}.Track1_Name, meas{2}.Track2_Name, meas{2}.Track3_Name}, 'Location', 'northeast')
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:meas2_disp
|
||||
#+HEADER: :tangle no :exports results :results raw :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/meas2_disp.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+LABEL: fig:meas2_disp
|
||||
#+CAPTION: Time domain - measurement 2
|
||||
#+RESULTS: fig:meas2_disp
|
||||
[[file:figs/meas2_disp.png]]
|
||||
|
||||
We compute the PSD of each track and we plot them (figures [[fig:meas2_ry_z_psd]], [[fig:meas2_ry_tilt_psd]] and [[fig:meas2_ty_y_psd]] ).
|
||||
#+begin_src matlab :exports code :results silent
|
||||
[pxx211, f21] = pwelch(meas{2}.Track1(1:ceil(326/dt)), psd_window, [], [], Fs);
|
||||
@ -557,9 +621,9 @@ The time domain result is shown figure [[fig:meas3]].
|
||||
#+begin_src matlab :exports results :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(t3(ceil(380/dt):ceil(420/dt)), (1/276.8).*meas{3}.Track1(ceil(380/dt):ceil(420/dt)));
|
||||
plot(t3(ceil(380/dt):ceil(420/dt)), (1/276.8).*meas{3}.Track2(ceil(380/dt):ceil(420/dt)));
|
||||
plot(t3(ceil(380/dt):ceil(420/dt)), (1/276.8).*meas{3}.Track3(ceil(380/dt):ceil(420/dt)));
|
||||
plot(t3(ceil(380/dt):ceil(420/dt)), meas{3}.Track1(ceil(380/dt):ceil(420/dt)));
|
||||
plot(t3(ceil(380/dt):ceil(420/dt)), meas{3}.Track2(ceil(380/dt):ceil(420/dt)));
|
||||
plot(t3(ceil(380/dt):ceil(420/dt)), meas{3}.Track3(ceil(380/dt):ceil(420/dt)));
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
legend({meas{3}.Track1_Name, meas{3}.Track2_Name, meas{3}.Track3_Name}, 'Location', 'northeast')
|
||||
@ -576,6 +640,29 @@ The time domain result is shown figure [[fig:meas3]].
|
||||
#+RESULTS: fig:meas3
|
||||
[[file:figs/meas3.png]]
|
||||
|
||||
#+begin_src matlab :exports none :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(t3, cumtrapz(t3, meas{3}.Track1));
|
||||
plot(t3, cumtrapz(t3, meas{3}.Track2));
|
||||
plot(t3, cumtrapz(t3, meas{3}.Track3));
|
||||
hold off;
|
||||
xlim([350, 450]);
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
legend({meas{3}.Track1_Name, meas{3}.Track2_Name, meas{3}.Track3_Name}, 'Location', 'northeast')
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:meas3_disp
|
||||
#+HEADER: :tangle no :exports results :results raw :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/meas3_disp.pdf" :var figsize="wide-noral" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+LABEL: fig:meas3_disp
|
||||
#+CAPTION: Time domain - measurement 3
|
||||
#+RESULTS: fig:meas3_disp
|
||||
[[file:figs/meas3_disp.png]]
|
||||
|
||||
We then compute the PSD of each track before and after turning off the hexapod and plot the results in the figures [[fig:meas3_hexa_z_psd]], [[fig:meas3_ry_z_psd]] and [[fig:meas3_ty_y_psd]].
|
||||
#+begin_src matlab :exports code :results silent
|
||||
[pxx311, f31] = pwelch(meas{3}.Track1(1:ceil(400/dt)), psd_window, [], [], Fs);
|
||||
@ -685,10 +772,11 @@ The slip ring is turned on at 300s, then the spindle is turned on at 620s (table
|
||||
#+begin_src matlab :exports results :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(t4, (1/276.8).*meas{4}.Track1);
|
||||
plot(t4, (1/276.8).*meas{4}.Track2);
|
||||
plot(t4, (1/276.8).*meas{4}.Track3);
|
||||
plot(t4, meas{4}.Track1);
|
||||
plot(t4, meas{4}.Track2);
|
||||
plot(t4, meas{4}.Track3);
|
||||
hold off;
|
||||
xlim([t4(1), t4(end)]);
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
legend({meas{4}.Track1_Name, meas{4}.Track2_Name, meas{4}.Track3_Name}, 'Location', 'southwest')
|
||||
#+end_src
|
||||
@ -704,6 +792,41 @@ The slip ring is turned on at 300s, then the spindle is turned on at 620s (table
|
||||
#+RESULTS: fig:meas4
|
||||
[[file:figs/meas4.png]]
|
||||
|
||||
#+begin_src matlab :exports none :results silent
|
||||
figure;
|
||||
subaxis(1, 2, 1);
|
||||
hold on;
|
||||
plot(t4, cumtrapz(t4, meas{4}.Track1));
|
||||
plot(t4, cumtrapz(t4, meas{4}.Track2));
|
||||
plot(t4, cumtrapz(t4, meas{4}.Track3));
|
||||
hold off;
|
||||
xlim([250, 350]);
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
legend({meas{4}.Track1_Name, meas{4}.Track2_Name, meas{4}.Track3_Name}, 'Location', 'northwest')
|
||||
|
||||
subaxis(1, 2, 2);
|
||||
hold on;
|
||||
plot(t4, cumtrapz(t4, meas{4}.Track1));
|
||||
plot(t4, cumtrapz(t4, meas{4}.Track2));
|
||||
plot(t4, cumtrapz(t4, meas{4}.Track3));
|
||||
hold off;
|
||||
xlim([600, 650]);
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
#+end_src
|
||||
|
||||
If we integrate this signal, we obtain Figure [[fig:meas4_int]].
|
||||
|
||||
#+NAME: fig:meas4_int
|
||||
#+HEADER: :tangle no :exports results :results raw :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/meas4_int.pdf" :var figsize="full-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+LABEL: fig:meas4_int
|
||||
#+CAPTION: Time domain - measurement 4
|
||||
#+RESULTS: fig:meas4_int
|
||||
[[file:figs/meas4_int.png]]
|
||||
|
||||
The PSD of each track are computed using the code below.
|
||||
#+begin_src matlab :exports none :results silent
|
||||
[pxx411, f41] = pwelch(meas{4}.Track1(1:ceil(280/dt)), psd_window, [], [], Fs);
|
||||
@ -717,6 +840,22 @@ The PSD of each track are computed using the code below.
|
||||
[pxx431, ~] = pwelch(meas{4}.Track3(1:ceil(280/dt)), psd_window, [], [], Fs);
|
||||
[pxx432, ~] = pwelch(meas{4}.Track3(ceil(280/dt):ceil(600/dt)), psd_window, [], [], Fs);
|
||||
[pxx433, ~] = pwelch(meas{4}.Track3(ceil(640/dt):end), psd_window, [], [], Fs);
|
||||
|
||||
f41 = f41(2:end);
|
||||
f42 = f42(2:end);
|
||||
f43 = f43(2:end);
|
||||
|
||||
pxx411 = pxx411(2:end);
|
||||
pxx412 = pxx412(2:end);
|
||||
pxx413 = pxx413(2:end);
|
||||
|
||||
pxx421 = pxx421(2:end);
|
||||
pxx422 = pxx422(2:end);
|
||||
pxx423 = pxx423(2:end);
|
||||
|
||||
pxx431 = pxx431(2:end);
|
||||
pxx432 = pxx432(2:end);
|
||||
pxx433 = pxx433(2:end);
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent
|
||||
@ -745,6 +884,51 @@ The PSD of each track are computed using the code below.
|
||||
#+RESULTS: fig:meas4_hexa_z_psd
|
||||
[[file:figs/meas4_hexa_z_psd.png]]
|
||||
|
||||
We plot the PSD of the displacement.
|
||||
#+begin_src matlab :exports none :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(f41, sqrt(pxx411)./abs(squeeze(freqresp(L4C_G, f41, 'Hz')))./(2*pi*f41));
|
||||
plot(f42, sqrt(pxx412)./abs(squeeze(freqresp(L4C_G, f42, 'Hz')))./(2*pi*f42));
|
||||
plot(f43, sqrt(pxx413)./abs(squeeze(freqresp(L4C_G, f43, 'Hz')))./(2*pi*f43));
|
||||
xlim([fmin, fmax]);
|
||||
xticks([1, 10, 100]);
|
||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
title(sprintf('%s', meas{4}.Track1_Name));
|
||||
legend({'0-280', '320-600', '640-end'}, 'Location', 'southwest');
|
||||
hold off;
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:meas4_hexa_z_psd_int
|
||||
#+HEADER: :tangle no :exports results :results raw :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/meas4_hexa_z_psd_int.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+LABEL: fig:meas4_hexa_z_psd_int
|
||||
#+CAPTION: PSD_INT of the Z velocity of the Hexapod - measurement 4
|
||||
#+RESULTS: fig:meas4_hexa_z_psd_int
|
||||
[[file:figs/meas4_hexa_z_psd_int.png]]
|
||||
|
||||
And we compute the Cumulative amplitude spectrum.
|
||||
#+begin_src matlab :exports none :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(f41, sqrt(cumsum(pxx431./abs(squeeze(freqresp(L4C_G, f41, 'Hz'))).^2./(2*pi*f41).*(f41 - [0; f41(1:end-1)]))));
|
||||
plot(f42, sqrt(cumsum(pxx432./abs(squeeze(freqresp(L4C_G, f42, 'Hz'))).^2./(2*pi*f42).*(f42 - [0; f42(1:end-1)]))));
|
||||
plot(f43, sqrt(cumsum(pxx433./abs(squeeze(freqresp(L4C_G, f43, 'Hz'))).^2./(2*pi*f43).*(f43 - [0; f43(1:end-1)]))));
|
||||
xlim([fmin, fmax]);
|
||||
xticks([1, 10, 100]);
|
||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('CAS [$m$ rms]');
|
||||
title(sprintf('%s', meas{4}.Track1_Name));
|
||||
legend({'0-280', '320-600', '640-end'}, 'Location', 'southwest');
|
||||
hold off;
|
||||
#+end_src
|
||||
|
||||
|
||||
|
||||
#+begin_src matlab :exports none :results silent
|
||||
figure;
|
||||
hold on;
|
||||
@ -818,10 +1002,10 @@ The time domain signals are shown on figure [[fig:meas5]].
|
||||
#+begin_src matlab :exports results :results silent
|
||||
figure;
|
||||
hold on;
|
||||
plot(t5, (1/276.8).*meas{5}.Track1);
|
||||
plot(t5, (1/276.8).*meas{5}.Track2);
|
||||
plot(t5, (1/276.8).*meas{5}.Track3);
|
||||
plot(t5, (1/276.8).*meas{5}.Track4);
|
||||
plot(t5, meas{5}.Track1);
|
||||
plot(t5, meas{5}.Track2);
|
||||
plot(t5, meas{5}.Track3);
|
||||
plot(t5, meas{5}.Track4);
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Velocity [m/s]');
|
||||
legend({meas{5}.Track1_Name, meas{5}.Track2_Name, meas{5}.Track3_Name, meas{5}.Track4_Name}, 'Location', 'northeast')
|
||||
|
Loading…
Reference in New Issue
Block a user