diff --git a/disturbance-control-system/figs/psd_marble_comp.png b/disturbance-control-system/figs/psd_marble_comp.png index 3777660..ae7dba1 100644 Binary files a/disturbance-control-system/figs/psd_marble_comp.png and b/disturbance-control-system/figs/psd_marble_comp.png differ diff --git a/disturbance-control-system/figs/psd_marble_comp_high_freq.png b/disturbance-control-system/figs/psd_marble_comp_high_freq.png index f7817cb..79d0c6b 100644 Binary files a/disturbance-control-system/figs/psd_marble_comp_high_freq.png and b/disturbance-control-system/figs/psd_marble_comp_high_freq.png differ diff --git a/disturbance-control-system/figs/psd_sample_comp.png b/disturbance-control-system/figs/psd_sample_comp.png index 709675b..97ca8ea 100644 Binary files a/disturbance-control-system/figs/psd_sample_comp.png and b/disturbance-control-system/figs/psd_sample_comp.png differ diff --git a/disturbance-control-system/figs/psd_sample_comp_high_freq.png b/disturbance-control-system/figs/psd_sample_comp_high_freq.png index e8c4c13..fd4fdd7 100644 Binary files a/disturbance-control-system/figs/psd_sample_comp_high_freq.png and b/disturbance-control-system/figs/psd_sample_comp_high_freq.png differ diff --git a/disturbance-control-system/figs/time_domain_marble.png b/disturbance-control-system/figs/time_domain_marble.png index b4a3365..755760b 100644 Binary files a/disturbance-control-system/figs/time_domain_marble.png and b/disturbance-control-system/figs/time_domain_marble.png differ diff --git a/disturbance-control-system/figs/time_domain_sample.png b/disturbance-control-system/figs/time_domain_sample.png index 0b37d5d..6518c28 100644 Binary files a/disturbance-control-system/figs/time_domain_sample.png and b/disturbance-control-system/figs/time_domain_sample.png differ diff --git a/disturbance-control-system/index.html b/disturbance-control-system/index.html index bb97287..15dac75 100644 Binary files a/disturbance-control-system/index.html and b/disturbance-control-system/index.html differ diff --git a/disturbance-control-system/index.org b/disturbance-control-system/index.org index 66ee938..d9919ce 100644 --- a/disturbance-control-system/index.org +++ b/disturbance-control-system/index.org @@ -29,10 +29,16 @@ #+PROPERTY: header-args:shell :eval no-export :END: -For all the measurements shown here: -- geophones used are L22 with a resonance frequency of 1Hz -- the signals are amplified with voltage amplifiers with a gain of 60dB -- the voltage amplifiers include a low pass filter with a cut-off frequency at 1kHz + +This file is organized as follow: +- Section [[sec:effect_control_all]]: + - One geophone on the marble and one at the sample location + - Each stage is turned on one by one +- Section [[sec:effect_control_one]]: + - One geophone on the marble and one at the sample location + - Each stage is turned on one at a time +- Section [[sec:effect_symetrie_driver]]: + - We check if the Symetrie driver induces some vibrations when placed on the marble * Effect of all the control systems on the Sample vibrations :PROPERTIES: @@ -62,10 +68,15 @@ For all the measurements shown here: #+end_note ** Experimental Setup -We here measure the signals of two geophones: +We here measure the signals of two L22 geophones: - One is located on top of the Sample platform - One is located on the marble +The signals are amplified with voltage amplifiers with the following settings: +- gain of 60dB +- AC/DC option set on AC +- Low pass filter set at 1kHz + The signal from the top geophone does not go trought the slip-ring. First, all the control systems are turned ON, then, they are turned one by one. @@ -92,6 +103,7 @@ Each of the =mat= file contains one array =data= with 3 columns: ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) <> + addpath('../src'); #+end_src #+begin_src matlab :exports none :results silent :noweb yes @@ -100,7 +112,7 @@ Each of the =mat= file contains one array =data= with 3 columns: ** Load data We load the data of the z axis of two geophones. -#+begin_src matlab :results none +#+begin_src matlab d3 = load('mat/data_003.mat', 'data'); d3 = d3.data; d4 = load('mat/data_004.mat', 'data'); d4 = d4.data; d5 = load('mat/data_005.mat', 'data'); d5 = d5.data; @@ -114,15 +126,15 @@ First, we can look at the time domain data and compare all the measurements: - comparison for the geophone at the sample location (figure [[fig:time_domain_sample]]) - comparison for the geophone on the granite (figure [[fig:time_domain_marble]]) -#+begin_src matlab :results none +#+begin_src matlab figure; hold on; - plot(d3(:, 3), d3(:, 2), 'DisplayName', 'All ON'); - plot(d4(:, 3), d4(:, 2), 'DisplayName', 'Ty OFF'); - plot(d5(:, 3), d5(:, 2), 'DisplayName', 'Ry OFF'); - plot(d6(:, 3), d6(:, 2), 'DisplayName', 'S-R OFF'); - plot(d7(:, 3), d7(:, 2), 'DisplayName', 'Rz OFF'); - plot(d8(:, 3), d8(:, 2), 'DisplayName', 'Hexa OFF'); + plot(d3(:, 3), d3(:, 2), 'DisplayName', 'Hexa, Rz, SR, Ry, Ty'); + plot(d4(:, 3), d4(:, 2), 'DisplayName', 'Hexa, Rz, SR, Ry'); + plot(d5(:, 3), d5(:, 2), 'DisplayName', 'Hexa, Rz, SR'); + plot(d6(:, 3), d6(:, 2), 'DisplayName', 'Hexa, Rz'); + plot(d7(:, 3), d7(:, 2), 'DisplayName', 'Hexa'); + plot(d8(:, 3), d8(:, 2), 'DisplayName', 'All OFF'); hold off; xlabel('Time [s]'); ylabel('Voltage [V]'); xlim([0, 50]); @@ -140,16 +152,15 @@ First, we can look at the time domain data and compare all the measurements: #+RESULTS: fig:time_domain_sample [[file:figs/time_domain_sample.png]] - #+begin_src matlab :results none figure; hold on; - plot(d3(:, 3), d3(:, 1), 'DisplayName', 'All ON'); - plot(d4(:, 3), d4(:, 1), 'DisplayName', 'Ty OFF'); - plot(d5(:, 3), d5(:, 1), 'DisplayName', 'Ry OFF'); - plot(d6(:, 3), d6(:, 1), 'DisplayName', 'S-R OFF'); - plot(d7(:, 3), d7(:, 1), 'DisplayName', 'Rz OFF'); - plot(d8(:, 3), d8(:, 1), 'DisplayName', 'Hexa OFF'); + plot(d3(:, 3), d3(:, 1), 'DisplayName', 'Hexa, Rz, SR, Ry, Ty'); + plot(d4(:, 3), d4(:, 1), 'DisplayName', 'Hexa, Rz, SR, Ry'); + plot(d5(:, 3), d5(:, 1), 'DisplayName', 'Hexa, Rz, SR'); + plot(d6(:, 3), d6(:, 1), 'DisplayName', 'Hexa, Rz'); + plot(d7(:, 3), d7(:, 1), 'DisplayName', 'Hexa'); + plot(d8(:, 3), d8(:, 1), 'DisplayName', 'All OFF'); hold off; xlabel('Time [s]'); ylabel('Voltage [V]'); xlim([0, 50]); @@ -168,7 +179,7 @@ First, we can look at the time domain data and compare all the measurements: [[file:figs/time_domain_marble.png]] ** Analysis - Frequency Domain -#+begin_src matlab :results none +#+begin_src matlab dt = d3(2, 3) - d3(1, 3); Fs = 1/dt; @@ -190,12 +201,13 @@ And we compare all the signals (figures [[fig:psd_sample_comp]] and [[fig:psd_sa #+begin_src matlab :results none figure; hold on; - plot(f, sqrt(px3), 'DisplayName', 'All ON'); - plot(f, sqrt(px4), 'DisplayName', 'Ty OFF'); - plot(f, sqrt(px5), 'DisplayName', 'Ry OFF'); - plot(f, sqrt(px6), 'DisplayName', 'S-R OFF'); - plot(f, sqrt(px7), 'DisplayName', 'Rz OFF'); - plot(f, sqrt(px8), 'DisplayName', 'Hexa OFF'); + plot(f, sqrt(px3), 'DisplayName', 'Hexa, Rz, SR, Ry, Ty'); + plot(f, sqrt(px4), 'DisplayName', 'Hexa, Rz, SR, Ry'); + plot(f, sqrt(px5), 'DisplayName', 'Hexa, Rz, SR'); + plot(f, sqrt(px6), 'DisplayName', 'Hexa, Rz'); + plot(f, sqrt(px7), 'DisplayName', 'Hexa'); + plot(f, sqrt(px8), 'DisplayName', 'All OFF'); + plot(fgm, sqrt(pxxgm), '-k', 'DisplayName', 'Ground Velocity'); hold off; set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); @@ -246,12 +258,13 @@ And we compare the Amplitude Spectral Densities (figures [[fig:psd_marble_comp]] #+begin_src matlab :results none figure; hold on; - plot(f, sqrt(px3), 'DisplayName', 'All ON'); - plot(f, sqrt(px4), 'DisplayName', 'Ty OFF'); - plot(f, sqrt(px5), 'DisplayName', 'Ry OFF'); - plot(f, sqrt(px6), 'DisplayName', 'S-R OFF'); - plot(f, sqrt(px7), 'DisplayName', 'Rz OFF'); - plot(f, sqrt(px8), 'DisplayName', 'Hexa OFF'); + plot(f, sqrt(px3), 'DisplayName', 'Hexa, Rz, SR, Ry, Ty'); + plot(f, sqrt(px4), 'DisplayName', 'Hexa, Rz, SR, Ry'); + plot(f, sqrt(px5), 'DisplayName', 'Hexa, Rz, SR'); + plot(f, sqrt(px6), 'DisplayName', 'Hexa, Rz'); + plot(f, sqrt(px7), 'DisplayName', 'Hexa'); + plot(f, sqrt(px8), 'DisplayName', 'All OFF'); + plot(fgm, sqrt(pxxgm), '-k', 'DisplayName', 'Ground Velocity'); hold off; set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log'); @@ -287,79 +300,14 @@ And we compare the Amplitude Spectral Densities (figures [[fig:psd_marble_comp]] #+CAPTION: Amplitude Spectral Density of the signal coming from the top geophone (zoom at high frequencies) #+RESULTS: fig:psd_marble_comp_high_freq [[file:figs/psd_marble_comp_high_freq.png]] -** Effect of the control system on the transmissibility from ground to sample -As the feedback loops change the dynamics of the system, we should see differences on the transfer function from marble velocity to sample velocity when turning off the control systems (figure [[fig:trans_comp]]). -#+begin_src matlab :results none - dt = d3(2, 3) - d3(1, 3); - - Fs = 1/dt; - win = hanning(ceil(1*Fs)); -#+end_src - -First, we compute the Power Spectral Density of the signals coming from the Geophone located at the sample location. -#+begin_src matlab :results none - [T3, f] = tfestimate(d3(:, 1), d3(:, 2), win, [], [], Fs); - [T4, ~] = tfestimate(d4(:, 1), d4(:, 2), win, [], [], Fs); - [T5, ~] = tfestimate(d5(:, 1), d5(:, 2), win, [], [], Fs); - [T6, ~] = tfestimate(d6(:, 1), d6(:, 2), win, [], [], Fs); - [T7, ~] = tfestimate(d7(:, 1), d7(:, 2), win, [], [], Fs); - [T8, ~] = tfestimate(d8(:, 1), d8(:, 2), win, [], [], Fs); -#+end_src - -#+begin_src matlab :results none - figure; - ax1 = subplot(2, 1, 1); - hold on; - plot(f, abs(T3), 'DisplayName', 'All ON'); - plot(f, abs(T4), 'DisplayName', 'Ty OFF'); - plot(f, abs(T5), 'DisplayName', 'Ry OFF'); - plot(f, abs(T6), 'DisplayName', 'S-R OFF'); - plot(f, abs(T7), 'DisplayName', 'Rz OFF'); - plot(f, abs(T8), 'DisplayName', 'Hexa OFF'); - 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(T3), 360)-180); - plot(f, mod(180+180/pi*phase(T4), 360)-180); - plot(f, mod(180+180/pi*phase(T5), 360)-180); - plot(f, mod(180+180/pi*phase(T6), 360)-180); - plot(f, mod(180+180/pi*phase(T7), 360)-180); - plot(f, mod(180+180/pi*phase(T8), 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([1, 500]); -#+end_src - -#+NAME: fig:trans_comp -#+HEADER: :tangle no :exports results :results value raw replace :noweb yes -#+begin_src matlab :var filepath="figs/trans_comp.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") - <> -#+end_src - -#+NAME: fig:trans_comp -#+CAPTION: Comparison of the transfer function from the geophone on the marble to the geophone at the sample location -#+RESULTS: fig:trans_comp -[[file:figs/trans_comp.png]] ** Conclusion #+begin_important -- The control system of the Ty stage induces a lot of vibrations of the marble + - The control system of the Ty stage induces a lot of vibrations of the marble above 100Hz + - The hexapod control system add vibrations of the sample only above 200Hz + - When the Slip-Ring is ON, white noise appears at high frequencies. This is studied [[file:../slip-ring-electrical-noise/index.org][here]] #+end_important -#+begin_note -- Why it seems that the measurement noise at high frequency is the limiting factor when the slip ring is ON but not when it is OFF? -#+end_note - * Effect of all the control systems on the Sample vibrations - One stage at a time :PROPERTIES: :header-args:matlab+: :tangle matlab/effect_control_one.m @@ -716,9 +664,9 @@ All the control systems are turned OFF except the Hexapod one. Each measurement are done during 100s. The settings of the voltage amplifier are: -- DC -- 60dB -- 1kHz +- gain of 60dB +- AC/DC option set on DC +- Low pass filter set at 1kHz A first order low pass filter with a cut-off frequency of 1kHz is added before the voltage amplifier.