Update analysis on control systems
Before Width: | Height: | Size: 180 KiB After Width: | Height: | Size: 186 KiB |
Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 229 KiB |
Before Width: | Height: | Size: 183 KiB After Width: | Height: | Size: 189 KiB |
Before Width: | Height: | Size: 217 KiB After Width: | Height: | Size: 223 KiB |
Before Width: | Height: | Size: 111 KiB After Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 112 KiB |
@ -29,10 +29,16 @@
|
|||||||
#+PROPERTY: header-args:shell :eval no-export
|
#+PROPERTY: header-args:shell :eval no-export
|
||||||
:END:
|
:END:
|
||||||
|
|
||||||
For all the measurements shown here:
|
|
||||||
- geophones used are L22 with a resonance frequency of 1Hz
|
This file is organized as follow:
|
||||||
- the signals are amplified with voltage amplifiers with a gain of 60dB
|
- Section [[sec:effect_control_all]]:
|
||||||
- the voltage amplifiers include a low pass filter with a cut-off frequency at 1kHz
|
- 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
|
* Effect of all the control systems on the Sample vibrations
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
@ -62,10 +68,15 @@ For all the measurements shown here:
|
|||||||
#+end_note
|
#+end_note
|
||||||
|
|
||||||
** Experimental Setup
|
** 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 top of the Sample platform
|
||||||
- One is located on the marble
|
- 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.
|
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.
|
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:
|
** Matlab Init :noexport:ignore:
|
||||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||||
<<matlab-dir>>
|
<<matlab-dir>>
|
||||||
|
addpath('../src');
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+begin_src matlab :exports none :results silent :noweb yes
|
#+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
|
** Load data
|
||||||
We load the data of the z axis of two geophones.
|
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;
|
d3 = load('mat/data_003.mat', 'data'); d3 = d3.data;
|
||||||
d4 = load('mat/data_004.mat', 'data'); d4 = d4.data;
|
d4 = load('mat/data_004.mat', 'data'); d4 = d4.data;
|
||||||
d5 = load('mat/data_005.mat', 'data'); d5 = d5.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 at the sample location (figure [[fig:time_domain_sample]])
|
||||||
- comparison for the geophone on the granite (figure [[fig:time_domain_marble]])
|
- comparison for the geophone on the granite (figure [[fig:time_domain_marble]])
|
||||||
|
|
||||||
#+begin_src matlab :results none
|
#+begin_src matlab
|
||||||
figure;
|
figure;
|
||||||
hold on;
|
hold on;
|
||||||
plot(d3(:, 3), d3(:, 2), 'DisplayName', 'All ON');
|
plot(d3(:, 3), d3(:, 2), 'DisplayName', 'Hexa, Rz, SR, Ry, Ty');
|
||||||
plot(d4(:, 3), d4(:, 2), 'DisplayName', 'Ty OFF');
|
plot(d4(:, 3), d4(:, 2), 'DisplayName', 'Hexa, Rz, SR, Ry');
|
||||||
plot(d5(:, 3), d5(:, 2), 'DisplayName', 'Ry OFF');
|
plot(d5(:, 3), d5(:, 2), 'DisplayName', 'Hexa, Rz, SR');
|
||||||
plot(d6(:, 3), d6(:, 2), 'DisplayName', 'S-R OFF');
|
plot(d6(:, 3), d6(:, 2), 'DisplayName', 'Hexa, Rz');
|
||||||
plot(d7(:, 3), d7(:, 2), 'DisplayName', 'Rz OFF');
|
plot(d7(:, 3), d7(:, 2), 'DisplayName', 'Hexa');
|
||||||
plot(d8(:, 3), d8(:, 2), 'DisplayName', 'Hexa OFF');
|
plot(d8(:, 3), d8(:, 2), 'DisplayName', 'All OFF');
|
||||||
hold off;
|
hold off;
|
||||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||||
xlim([0, 50]);
|
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
|
#+RESULTS: fig:time_domain_sample
|
||||||
[[file:figs/time_domain_sample.png]]
|
[[file:figs/time_domain_sample.png]]
|
||||||
|
|
||||||
|
|
||||||
#+begin_src matlab :results none
|
#+begin_src matlab :results none
|
||||||
figure;
|
figure;
|
||||||
hold on;
|
hold on;
|
||||||
plot(d3(:, 3), d3(:, 1), 'DisplayName', 'All ON');
|
plot(d3(:, 3), d3(:, 1), 'DisplayName', 'Hexa, Rz, SR, Ry, Ty');
|
||||||
plot(d4(:, 3), d4(:, 1), 'DisplayName', 'Ty OFF');
|
plot(d4(:, 3), d4(:, 1), 'DisplayName', 'Hexa, Rz, SR, Ry');
|
||||||
plot(d5(:, 3), d5(:, 1), 'DisplayName', 'Ry OFF');
|
plot(d5(:, 3), d5(:, 1), 'DisplayName', 'Hexa, Rz, SR');
|
||||||
plot(d6(:, 3), d6(:, 1), 'DisplayName', 'S-R OFF');
|
plot(d6(:, 3), d6(:, 1), 'DisplayName', 'Hexa, Rz');
|
||||||
plot(d7(:, 3), d7(:, 1), 'DisplayName', 'Rz OFF');
|
plot(d7(:, 3), d7(:, 1), 'DisplayName', 'Hexa');
|
||||||
plot(d8(:, 3), d8(:, 1), 'DisplayName', 'Hexa OFF');
|
plot(d8(:, 3), d8(:, 1), 'DisplayName', 'All OFF');
|
||||||
hold off;
|
hold off;
|
||||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||||
xlim([0, 50]);
|
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]]
|
[[file:figs/time_domain_marble.png]]
|
||||||
|
|
||||||
** Analysis - Frequency Domain
|
** Analysis - Frequency Domain
|
||||||
#+begin_src matlab :results none
|
#+begin_src matlab
|
||||||
dt = d3(2, 3) - d3(1, 3);
|
dt = d3(2, 3) - d3(1, 3);
|
||||||
|
|
||||||
Fs = 1/dt;
|
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
|
#+begin_src matlab :results none
|
||||||
figure;
|
figure;
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, sqrt(px3), 'DisplayName', 'All ON');
|
plot(f, sqrt(px3), 'DisplayName', 'Hexa, Rz, SR, Ry, Ty');
|
||||||
plot(f, sqrt(px4), 'DisplayName', 'Ty OFF');
|
plot(f, sqrt(px4), 'DisplayName', 'Hexa, Rz, SR, Ry');
|
||||||
plot(f, sqrt(px5), 'DisplayName', 'Ry OFF');
|
plot(f, sqrt(px5), 'DisplayName', 'Hexa, Rz, SR');
|
||||||
plot(f, sqrt(px6), 'DisplayName', 'S-R OFF');
|
plot(f, sqrt(px6), 'DisplayName', 'Hexa, Rz');
|
||||||
plot(f, sqrt(px7), 'DisplayName', 'Rz OFF');
|
plot(f, sqrt(px7), 'DisplayName', 'Hexa');
|
||||||
plot(f, sqrt(px8), 'DisplayName', 'Hexa OFF');
|
plot(f, sqrt(px8), 'DisplayName', 'All OFF');
|
||||||
|
plot(fgm, sqrt(pxxgm), '-k', 'DisplayName', 'Ground Velocity');
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'xscale', 'log');
|
set(gca, 'xscale', 'log');
|
||||||
set(gca, 'yscale', '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
|
#+begin_src matlab :results none
|
||||||
figure;
|
figure;
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, sqrt(px3), 'DisplayName', 'All ON');
|
plot(f, sqrt(px3), 'DisplayName', 'Hexa, Rz, SR, Ry, Ty');
|
||||||
plot(f, sqrt(px4), 'DisplayName', 'Ty OFF');
|
plot(f, sqrt(px4), 'DisplayName', 'Hexa, Rz, SR, Ry');
|
||||||
plot(f, sqrt(px5), 'DisplayName', 'Ry OFF');
|
plot(f, sqrt(px5), 'DisplayName', 'Hexa, Rz, SR');
|
||||||
plot(f, sqrt(px6), 'DisplayName', 'S-R OFF');
|
plot(f, sqrt(px6), 'DisplayName', 'Hexa, Rz');
|
||||||
plot(f, sqrt(px7), 'DisplayName', 'Rz OFF');
|
plot(f, sqrt(px7), 'DisplayName', 'Hexa');
|
||||||
plot(f, sqrt(px8), 'DisplayName', 'Hexa OFF');
|
plot(f, sqrt(px8), 'DisplayName', 'All OFF');
|
||||||
|
plot(fgm, sqrt(pxxgm), '-k', 'DisplayName', 'Ground Velocity');
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'xscale', 'log');
|
set(gca, 'xscale', 'log');
|
||||||
set(gca, 'yscale', '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)
|
#+CAPTION: Amplitude Spectral Density of the signal coming from the top geophone (zoom at high frequencies)
|
||||||
#+RESULTS: fig:psd_marble_comp_high_freq
|
#+RESULTS: fig:psd_marble_comp_high_freq
|
||||||
[[file:figs/psd_marble_comp_high_freq.png]]
|
[[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")
|
|
||||||
<<plt-matlab>>
|
|
||||||
#+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
|
** Conclusion
|
||||||
#+begin_important
|
#+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
|
#+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
|
* Effect of all the control systems on the Sample vibrations - One stage at a time
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:header-args:matlab+: :tangle matlab/effect_control_one.m
|
: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.
|
Each measurement are done during 100s.
|
||||||
|
|
||||||
The settings of the voltage amplifier are:
|
The settings of the voltage amplifier are:
|
||||||
- DC
|
- gain of 60dB
|
||||||
- 60dB
|
- AC/DC option set on DC
|
||||||
- 1kHz
|
- 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.
|
A first order low pass filter with a cut-off frequency of 1kHz is added before the voltage amplifier.
|
||||||
|
|
||||||
|