Add slip-ring analysis
This commit is contained in:
		
							
								
								
									
										3
									
								
								Library/figs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								Library/figs/.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
*.svg
 | 
			
		||||
*.pdf
 | 
			
		||||
*.tex
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								Library/figs/slipring_asd.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Library/figs/slipring_asd.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 110 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								Library/figs/slipring_time.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								Library/figs/slipring_time.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 62 KiB  | 
							
								
								
									
										299
									
								
								Library/index.org
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										299
									
								
								Library/index.org
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,299 @@
 | 
			
		||||
#+TITLE:Measurements
 | 
			
		||||
:DRAWER:
 | 
			
		||||
#+STARTUP: overview
 | 
			
		||||
 | 
			
		||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
 | 
			
		||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
 | 
			
		||||
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
 | 
			
		||||
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.min.js"></script>
 | 
			
		||||
#+HTML_HEAD: <script type="text/javascript" src="../js/bootstrap.min.js"></script>
 | 
			
		||||
#+HTML_HEAD: <script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
 | 
			
		||||
#+HTML_HEAD: <script type="text/javascript" src="../js/readtheorg.js"></script>
 | 
			
		||||
 | 
			
		||||
#+PROPERTY: header-args:matlab  :session *MATLAB*
 | 
			
		||||
#+PROPERTY: header-args:matlab+ :comments org
 | 
			
		||||
#+PROPERTY: header-args:matlab+ :results output
 | 
			
		||||
#+PROPERTY: header-args:matlab+ :exports both
 | 
			
		||||
#+PROPERTY: header-args:matlab+ :eval no-export
 | 
			
		||||
#+PROPERTY: header-args:matlab+ :output-dir figs
 | 
			
		||||
:END:
 | 
			
		||||
 | 
			
		||||
For all the measurements here, the geophones are L22.
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
* Effect of the control system of each stage
 | 
			
		||||
 | 
			
		||||
** Experimental Setup
 | 
			
		||||
One geophone is on the marble, the other at the sample location (see figures below).
 | 
			
		||||
 | 
			
		||||
The signal from the top geophone goes through the slip-ring.
 | 
			
		||||
 | 
			
		||||
The signals from the geophones are amplified by a voltage amplifier with a gain of 60dB.
 | 
			
		||||
The voltage amplifier also include a low pass filter with a corner frequency of 1kHz.
 | 
			
		||||
 | 
			
		||||
#+name: fig:setup_ty_1
 | 
			
		||||
#+caption: Figure caption
 | 
			
		||||
#+attr_html: :width 500px
 | 
			
		||||
[[file:./img/IMG_20190430_112613.jpg]]
 | 
			
		||||
 | 
			
		||||
#+name: fig:setup_ty_2
 | 
			
		||||
#+caption: Figure caption
 | 
			
		||||
#+attr_html: :width 500px
 | 
			
		||||
[[file:./img/IMG_20190430_112615.jpg]]
 | 
			
		||||
 | 
			
		||||
#+name: fig:setup_ty_3
 | 
			
		||||
#+caption: Figure caption
 | 
			
		||||
#+attr_html: :width 500px
 | 
			
		||||
[[file:./img/IMG_20190430_112620.jpg]]
 | 
			
		||||
 | 
			
		||||
Two measurements are done:
 | 
			
		||||
| Setup                | Data File          |
 | 
			
		||||
|----------------------+--------------------|
 | 
			
		||||
| Control of Ty is on  | =mat/data_001.mat= |
 | 
			
		||||
| Control of Ty is off | =mat/data_002.mat= |
 | 
			
		||||
 | 
			
		||||
For each of the measurements
 | 
			
		||||
| Variable | Description                                                        |
 | 
			
		||||
|----------+--------------------------------------------------------------------|
 | 
			
		||||
| =t=      | Time Vector                                                        |
 | 
			
		||||
| =x1=     | Voltage measured across the geophone placed on the marble          |
 | 
			
		||||
| =x2=     | Voltage measured across the geophone placed at the sample location |
 | 
			
		||||
 | 
			
		||||
Measurements are 50s long.
 | 
			
		||||
 | 
			
		||||
** Matlab Init                                              :noexport:ignore:
 | 
			
		||||
#+begin_src matlab :exports none :results silent :noweb yes
 | 
			
		||||
  <<matlab-init>>
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Load data
 | 
			
		||||
We load the data of the z axis of two geophones.
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  tyOn  = load('mat/data_001.mat', 't', 'x1', 'x2');
 | 
			
		||||
  tyOff = load('mat/data_002.mat', 't', 'x1', 'x2');
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Analysis
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  dt = tyOn.t(2)-tyOn.t(1);
 | 
			
		||||
  Fs = 1/dt;
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  figure;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(tyOn.t, tyOn.x1);
 | 
			
		||||
  plot(tyOn.t, tyOn.x2);
 | 
			
		||||
  hold off;
 | 
			
		||||
  legend({'x1 - ON', 'x2 - ON'});
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  figure;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(tyOff.t, tyOff.x1);
 | 
			
		||||
  plot(tyOff.t, tyOff.x2);
 | 
			
		||||
  hold off;
 | 
			
		||||
  legend({'x1 - OFF', 'x2 - OFF'});
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  Fs = 1/dt;
 | 
			
		||||
  win = hanning(ceil(10*Fs));
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  [pxOn1, f] = pwelch(tyOn.x1, win, [], [], Fs);
 | 
			
		||||
  [pxOn2, ~] = pwelch(tyOn.x2, win, [], [], Fs);
 | 
			
		||||
 | 
			
		||||
  [pxOff1, ~] = pwelch(tyOff.x1, win, [], [], Fs);
 | 
			
		||||
  [pxOff2, ~] = pwelch(tyOff.x2, win, [], [], Fs);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  figure;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(f, sqrt(pxOn1));
 | 
			
		||||
  plot(f, sqrt(pxOn2));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'xscale', 'log');
 | 
			
		||||
  set(gca, 'yscale', 'log');
 | 
			
		||||
  xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
 | 
			
		||||
  % xlim([2, 500]);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  figure;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(f, sqrt(pxOn1));
 | 
			
		||||
  plot(f, sqrt(pxOff1));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'xscale', 'log');
 | 
			
		||||
  set(gca, 'yscale', 'log');
 | 
			
		||||
  xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
 | 
			
		||||
  % xlim([2, 500]);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  figure;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(f, sqrt(pxOn2));
 | 
			
		||||
  plot(f, sqrt(pxOff2));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'xscale', 'log');
 | 
			
		||||
  set(gca, 'yscale', 'log');
 | 
			
		||||
  xlabel('Frequency [Hz]'); ylabel('PSD [m/s/sqrt(Hz)]')
 | 
			
		||||
  % xlim([2, 500]);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  [T_off, ~]   = tfestimate(tyOff.x1, tyOff.x2, win, [], [], Fs);
 | 
			
		||||
  [coh_off, ~] = mscohere(tyOff.x1, tyOff.x2, win, [], [], Fs);
 | 
			
		||||
 | 
			
		||||
  [T_on, ~]   = tfestimate(tyOn.x1, tyOn.x2, win, [], [], Fs);
 | 
			
		||||
  [coh_on, ~] = mscohere(tyOn.x1, tyOn.x2, win, [], [], Fs);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none :exports none
 | 
			
		||||
  figure;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(f, coh_on);
 | 
			
		||||
  plot(f, coh_off);
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'xscale', 'log');
 | 
			
		||||
  xlabel('Frequency [Hz]'); ylabel('Coherence');
 | 
			
		||||
  ylim([0,1]); xlim([1, 500]);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none :exports none
 | 
			
		||||
  figure;
 | 
			
		||||
  ax1 = subplot(2, 1, 1);
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(f, abs(T_on));
 | 
			
		||||
  plot(f, abs(T_off));
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
 | 
			
		||||
  set(gca, 'XTickLabel',[]);
 | 
			
		||||
  ylabel('Magnitude');
 | 
			
		||||
 | 
			
		||||
  ax2 = subplot(2, 1, 2);
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(f, mod(180+180/pi*phase(T_on), 360)-180);
 | 
			
		||||
  plot(f, mod(180+180/pi*phase(T_off), 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
 | 
			
		||||
* Effect of the Slip-Ring on the signal
 | 
			
		||||
** Experimental Setup
 | 
			
		||||
Two measurements are made where the control of all the stages are OFF.
 | 
			
		||||
 | 
			
		||||
One geophone is located on the marble while the other is located at the sample location.
 | 
			
		||||
 | 
			
		||||
The two measurements are:
 | 
			
		||||
| Measurement File | Description                                                      |
 | 
			
		||||
|------------------+------------------------------------------------------------------|
 | 
			
		||||
| =meas_008.mat=   | Signal from the top geophone does not goes through the Slip-ring |
 | 
			
		||||
| =meas_009.mat=   | Signal goes through the Slip-ring                                |
 | 
			
		||||
 | 
			
		||||
Each of the measurement =mat= file contains one =data= array with 3 columns:
 | 
			
		||||
| Column number | Description       |
 | 
			
		||||
|---------------+-------------------|
 | 
			
		||||
|             1 | Geophone - Marble |
 | 
			
		||||
|             2 | Geophone - Sample |
 | 
			
		||||
|             3 | Time              |
 | 
			
		||||
 | 
			
		||||
** Matlab Init                                              :noexport:ignore:
 | 
			
		||||
#+begin_src matlab :exports none :results silent :noweb yes
 | 
			
		||||
  <<matlab-init>>
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Load data
 | 
			
		||||
We load the data of the z axis of two geophones.
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  data8 = load('mat/data_008.mat', 'data');
 | 
			
		||||
  data9 = load('mat/data_009.mat', 'data');
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
** Analysis - Time Domain
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  figure;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(data9.data(:, 3), data9.data(:, 2), 'DisplayName', 'Slip-Ring');
 | 
			
		||||
  plot(data8.data(:, 3), data8.data(:, 2), 'DisplayName', 'Wire');
 | 
			
		||||
  hold off;
 | 
			
		||||
  xlabel('Time [s]'); ylabel('Voltage [V]');
 | 
			
		||||
  xlim([0, 50]);
 | 
			
		||||
  legend();
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+NAME: fig:slipring_time
 | 
			
		||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
 | 
			
		||||
#+begin_src matlab :var filepath="figs/slipring_time.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
 | 
			
		||||
  <<plt-matlab>>
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+NAME: fig:slipring_time
 | 
			
		||||
#+CAPTION: Effect of the Slip-Ring on the measured signal - Time domain
 | 
			
		||||
#+RESULTS: fig:slipring_time
 | 
			
		||||
[[file:figs/slipring_time.png]]
 | 
			
		||||
 | 
			
		||||
** Analysis - Frequency Domain
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  dt = data8.data(2, 3) - data8.data(1, 3);
 | 
			
		||||
 | 
			
		||||
  Fs = 1/dt;
 | 
			
		||||
  win = hanning(ceil(1*Fs));
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  [pxx8, f] = pwelch(data8.data(:, 2), win, [], [], Fs);
 | 
			
		||||
  [pxx9, ~] = pwelch(data9.data(:, 2), win, [], [], Fs);
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+begin_src matlab :results none
 | 
			
		||||
  figure;
 | 
			
		||||
  hold on;
 | 
			
		||||
  plot(f, sqrt(pxx9), 'DisplayName', 'Slip-Ring');
 | 
			
		||||
  plot(f, sqrt(pxx8), 'DisplayName', 'Wire');
 | 
			
		||||
  hold off;
 | 
			
		||||
  set(gca, 'xscale', 'log');
 | 
			
		||||
  set(gca, 'yscale', 'log');
 | 
			
		||||
  xlabel('Frequency [Hz]'); ylabel('ASD [V/sqrt(Hz)]')
 | 
			
		||||
  xlim([1, 500]);
 | 
			
		||||
  legend('Location', 'southwest');
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+NAME: fig:slipring_asd
 | 
			
		||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
 | 
			
		||||
#+begin_src matlab :var filepath="figs/slipring_asd.pdf" :var figsize="wide-tall" :post pdf2svg(file=*this*, ext="png")
 | 
			
		||||
  <<plt-matlab>>
 | 
			
		||||
#+end_src
 | 
			
		||||
 | 
			
		||||
#+NAME: fig:slipring_asd
 | 
			
		||||
#+CAPTION: Effect of the Slip-Ring on the measured signal - Frequency domain
 | 
			
		||||
#+RESULTS: fig:slipring_asd
 | 
			
		||||
[[file:figs/slipring_asd.png]]
 | 
			
		||||
 | 
			
		||||
** Conclusion
 | 
			
		||||
*Remaining questions to answer*:
 | 
			
		||||
- Why is there a sharp peak at 300Hz?
 | 
			
		||||
- Why the use of the Slip-Ring does induce a noise?
 | 
			
		||||
- Can the capacitive/inductive properties of the wires in the Slip-ring does not play well with the geophone? (resonant RLC circuit)
 | 
			
		||||
 | 
			
		||||
* Measurement when signal from top geophone does not go trought the slip-ring
 | 
			
		||||
 | 
			
		||||
| Ty   | Ry   | Slip Ring | Spindle | Hexapod | Meas. file     |
 | 
			
		||||
|------+------+-----------+---------+---------+----------------|
 | 
			
		||||
| *ON* | *ON* | *ON*      | *ON*    | *ON*    | =meas_003.mat= |
 | 
			
		||||
| OFF  | *ON* | *ON*      | *ON*    | *ON*    | =meas_004.mat= |
 | 
			
		||||
| OFF  | OFF  | *ON*      | *ON*    | *ON*    | =meas_005.mat= |
 | 
			
		||||
| OFF  | OFF  | OFF       | *ON*    | *ON*    | =meas_006.mat= |
 | 
			
		||||
| OFF  | OFF  | OFF       | OFF     | *ON*    | =meas_007.mat= |
 | 
			
		||||
| OFF  | OFF  | OFF       | OFF     | OFF     | =meas_008.mat= |
 | 
			
		||||
		Reference in New Issue
	
	Block a user