Add data analysis of Ty scans
BIN
disturbance-ty/figs/asd_east_marble.png
Normal file
After Width: | Height: | Size: 169 KiB |
BIN
disturbance-ty/figs/asd_east_sample.png
Normal file
After Width: | Height: | Size: 171 KiB |
BIN
disturbance-ty/figs/asd_z_direction.png
Normal file
After Width: | Height: | Size: 167 KiB |
BIN
disturbance-ty/figs/current_time.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
disturbance-ty/figs/current_time_zoom.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
disturbance-ty/figs/east_marble_sample.png
Normal file
After Width: | Height: | Size: 35 KiB |
BIN
disturbance-ty/figs/tf_east_marble_sample.png
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
disturbance-ty/figs/ty_e_time.png
Normal file
After Width: | Height: | Size: 77 KiB |
BIN
disturbance-ty/figs/ty_e_time_zoom.png
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
disturbance-ty/figs/ty_position_time.png
Normal file
After Width: | Height: | Size: 31 KiB |
BIN
disturbance-ty/figs/ty_position_time_zoom.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
disturbance-ty/figs/ty_z_time.png
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
disturbance-ty/figs/ty_z_time_zoom.png
Normal file
After Width: | Height: | Size: 74 KiB |
BIN
disturbance-ty/img/IMG_20190513_163032.jpg
Normal file
After Width: | Height: | Size: 2.8 MiB |
BIN
disturbance-ty/img/IMG_20190513_163035.jpg
Normal file
After Width: | Height: | Size: 3.1 MiB |
775
disturbance-ty/index.html
Normal file
@ -0,0 +1,775 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<!-- 2019-05-14 mar. 14:09 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Vibrations induced by the translation stage motion</title>
|
||||
<meta name="generator" content="Org mode" />
|
||||
<meta name="author" content="Dehaeze Thomas" />
|
||||
<style type="text/css">
|
||||
<!--/*--><![CDATA[/*><!--*/
|
||||
.title { text-align: center;
|
||||
margin-bottom: .2em; }
|
||||
.subtitle { text-align: center;
|
||||
font-size: medium;
|
||||
font-weight: bold;
|
||||
margin-top:0; }
|
||||
.todo { font-family: monospace; color: red; }
|
||||
.done { font-family: monospace; color: green; }
|
||||
.priority { font-family: monospace; color: orange; }
|
||||
.tag { background-color: #eee; font-family: monospace;
|
||||
padding: 2px; font-size: 80%; font-weight: normal; }
|
||||
.timestamp { color: #bebebe; }
|
||||
.timestamp-kwd { color: #5f9ea0; }
|
||||
.org-right { margin-left: auto; margin-right: 0px; text-align: right; }
|
||||
.org-left { margin-left: 0px; margin-right: auto; text-align: left; }
|
||||
.org-center { margin-left: auto; margin-right: auto; text-align: center; }
|
||||
.underline { text-decoration: underline; }
|
||||
#postamble p, #preamble p { font-size: 90%; margin: .2em; }
|
||||
p.verse { margin-left: 3%; }
|
||||
pre {
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: 3px 3px 3px #eee;
|
||||
padding: 8pt;
|
||||
font-family: monospace;
|
||||
overflow: auto;
|
||||
margin: 1.2em;
|
||||
}
|
||||
pre.src {
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
padding-top: 1.2em;
|
||||
}
|
||||
pre.src:before {
|
||||
display: none;
|
||||
position: absolute;
|
||||
background-color: white;
|
||||
top: -10px;
|
||||
right: 10px;
|
||||
padding: 3px;
|
||||
border: 1px solid black;
|
||||
}
|
||||
pre.src:hover:before { display: inline;}
|
||||
/* Languages per Org manual */
|
||||
pre.src-asymptote:before { content: 'Asymptote'; }
|
||||
pre.src-awk:before { content: 'Awk'; }
|
||||
pre.src-C:before { content: 'C'; }
|
||||
/* pre.src-C++ doesn't work in CSS */
|
||||
pre.src-clojure:before { content: 'Clojure'; }
|
||||
pre.src-css:before { content: 'CSS'; }
|
||||
pre.src-D:before { content: 'D'; }
|
||||
pre.src-ditaa:before { content: 'ditaa'; }
|
||||
pre.src-dot:before { content: 'Graphviz'; }
|
||||
pre.src-calc:before { content: 'Emacs Calc'; }
|
||||
pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
|
||||
pre.src-fortran:before { content: 'Fortran'; }
|
||||
pre.src-gnuplot:before { content: 'gnuplot'; }
|
||||
pre.src-haskell:before { content: 'Haskell'; }
|
||||
pre.src-hledger:before { content: 'hledger'; }
|
||||
pre.src-java:before { content: 'Java'; }
|
||||
pre.src-js:before { content: 'Javascript'; }
|
||||
pre.src-latex:before { content: 'LaTeX'; }
|
||||
pre.src-ledger:before { content: 'Ledger'; }
|
||||
pre.src-lisp:before { content: 'Lisp'; }
|
||||
pre.src-lilypond:before { content: 'Lilypond'; }
|
||||
pre.src-lua:before { content: 'Lua'; }
|
||||
pre.src-matlab:before { content: 'MATLAB'; }
|
||||
pre.src-mscgen:before { content: 'Mscgen'; }
|
||||
pre.src-ocaml:before { content: 'Objective Caml'; }
|
||||
pre.src-octave:before { content: 'Octave'; }
|
||||
pre.src-org:before { content: 'Org mode'; }
|
||||
pre.src-oz:before { content: 'OZ'; }
|
||||
pre.src-plantuml:before { content: 'Plantuml'; }
|
||||
pre.src-processing:before { content: 'Processing.js'; }
|
||||
pre.src-python:before { content: 'Python'; }
|
||||
pre.src-R:before { content: 'R'; }
|
||||
pre.src-ruby:before { content: 'Ruby'; }
|
||||
pre.src-sass:before { content: 'Sass'; }
|
||||
pre.src-scheme:before { content: 'Scheme'; }
|
||||
pre.src-screen:before { content: 'Gnu Screen'; }
|
||||
pre.src-sed:before { content: 'Sed'; }
|
||||
pre.src-sh:before { content: 'shell'; }
|
||||
pre.src-sql:before { content: 'SQL'; }
|
||||
pre.src-sqlite:before { content: 'SQLite'; }
|
||||
/* additional languages in org.el's org-babel-load-languages alist */
|
||||
pre.src-forth:before { content: 'Forth'; }
|
||||
pre.src-io:before { content: 'IO'; }
|
||||
pre.src-J:before { content: 'J'; }
|
||||
pre.src-makefile:before { content: 'Makefile'; }
|
||||
pre.src-maxima:before { content: 'Maxima'; }
|
||||
pre.src-perl:before { content: 'Perl'; }
|
||||
pre.src-picolisp:before { content: 'Pico Lisp'; }
|
||||
pre.src-scala:before { content: 'Scala'; }
|
||||
pre.src-shell:before { content: 'Shell Script'; }
|
||||
pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
|
||||
/* additional language identifiers per "defun org-babel-execute"
|
||||
in ob-*.el */
|
||||
pre.src-cpp:before { content: 'C++'; }
|
||||
pre.src-abc:before { content: 'ABC'; }
|
||||
pre.src-coq:before { content: 'Coq'; }
|
||||
pre.src-groovy:before { content: 'Groovy'; }
|
||||
/* additional language identifiers from org-babel-shell-names in
|
||||
ob-shell.el: ob-shell is the only babel language using a lambda to put
|
||||
the execution function name together. */
|
||||
pre.src-bash:before { content: 'bash'; }
|
||||
pre.src-csh:before { content: 'csh'; }
|
||||
pre.src-ash:before { content: 'ash'; }
|
||||
pre.src-dash:before { content: 'dash'; }
|
||||
pre.src-ksh:before { content: 'ksh'; }
|
||||
pre.src-mksh:before { content: 'mksh'; }
|
||||
pre.src-posh:before { content: 'posh'; }
|
||||
/* Additional Emacs modes also supported by the LaTeX listings package */
|
||||
pre.src-ada:before { content: 'Ada'; }
|
||||
pre.src-asm:before { content: 'Assembler'; }
|
||||
pre.src-caml:before { content: 'Caml'; }
|
||||
pre.src-delphi:before { content: 'Delphi'; }
|
||||
pre.src-html:before { content: 'HTML'; }
|
||||
pre.src-idl:before { content: 'IDL'; }
|
||||
pre.src-mercury:before { content: 'Mercury'; }
|
||||
pre.src-metapost:before { content: 'MetaPost'; }
|
||||
pre.src-modula-2:before { content: 'Modula-2'; }
|
||||
pre.src-pascal:before { content: 'Pascal'; }
|
||||
pre.src-ps:before { content: 'PostScript'; }
|
||||
pre.src-prolog:before { content: 'Prolog'; }
|
||||
pre.src-simula:before { content: 'Simula'; }
|
||||
pre.src-tcl:before { content: 'tcl'; }
|
||||
pre.src-tex:before { content: 'TeX'; }
|
||||
pre.src-plain-tex:before { content: 'Plain TeX'; }
|
||||
pre.src-verilog:before { content: 'Verilog'; }
|
||||
pre.src-vhdl:before { content: 'VHDL'; }
|
||||
pre.src-xml:before { content: 'XML'; }
|
||||
pre.src-nxml:before { content: 'XML'; }
|
||||
/* add a generic configuration mode; LaTeX export needs an additional
|
||||
(add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
|
||||
pre.src-conf:before { content: 'Configuration File'; }
|
||||
|
||||
table { border-collapse:collapse; }
|
||||
caption.t-above { caption-side: top; }
|
||||
caption.t-bottom { caption-side: bottom; }
|
||||
td, th { vertical-align:top; }
|
||||
th.org-right { text-align: center; }
|
||||
th.org-left { text-align: center; }
|
||||
th.org-center { text-align: center; }
|
||||
td.org-right { text-align: right; }
|
||||
td.org-left { text-align: left; }
|
||||
td.org-center { text-align: center; }
|
||||
dt { font-weight: bold; }
|
||||
.footpara { display: inline; }
|
||||
.footdef { margin-bottom: 1em; }
|
||||
.figure { padding: 1em; }
|
||||
.figure p { text-align: center; }
|
||||
.equation-container {
|
||||
display: table;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
}
|
||||
.equation {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.equation-label {
|
||||
display: table-cell;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.inlinetask {
|
||||
padding: 10px;
|
||||
border: 2px solid gray;
|
||||
margin: 10px;
|
||||
background: #ffffcc;
|
||||
}
|
||||
#org-div-home-and-up
|
||||
{ text-align: right; font-size: 70%; white-space: nowrap; }
|
||||
textarea { overflow-x: auto; }
|
||||
.linenr { font-size: smaller }
|
||||
.code-highlighted { background-color: #ffff00; }
|
||||
.org-info-js_info-navigation { border-style: none; }
|
||||
#org-info-js_console-label
|
||||
{ font-size: 10px; font-weight: bold; white-space: nowrap; }
|
||||
.org-info-js_search-highlight
|
||||
{ background-color: #ffff00; color: #000000; font-weight: bold; }
|
||||
.org-svg { width: 90%; }
|
||||
/*]]>*/-->
|
||||
</style>
|
||||
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="../css/zenburn.css"/>
|
||||
<script type="text/javascript" src="../js/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="../js/jquery.stickytableheaders.min.js"></script>
|
||||
<script type="text/javascript" src="../js/readtheorg.js"></script>
|
||||
<script type="text/javascript">
|
||||
/*
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this tag.
|
||||
|
||||
Copyright (C) 2012-2019 Free Software Foundation, Inc.
|
||||
|
||||
The JavaScript code in this tag is free software: you can
|
||||
redistribute it and/or modify it under the terms of the GNU
|
||||
General Public License (GNU GPL) as published by the Free Software
|
||||
Foundation, either version 3 of the License, or (at your option)
|
||||
any later version. The code is distributed WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
FOR A PARTICULAR PURPOSE. See the GNU GPL for more details.
|
||||
|
||||
As additional permission under GNU GPL version 3 section 7, you
|
||||
may distribute non-source (e.g., minimized or compacted) forms of
|
||||
that code without the copy of the GNU GPL normally required by
|
||||
section 4, provided you include this license notice and a URL
|
||||
through which recipients can access the Corresponding Source.
|
||||
|
||||
|
||||
@licend The above is the entire license notice
|
||||
for the JavaScript code in this tag.
|
||||
*/
|
||||
<!--/*--><![CDATA[/*><!--*/
|
||||
function CodeHighlightOn(elem, id)
|
||||
{
|
||||
var target = document.getElementById(id);
|
||||
if(null != target) {
|
||||
elem.cacheClassElem = elem.className;
|
||||
elem.cacheClassTarget = target.className;
|
||||
target.className = "code-highlighted";
|
||||
elem.className = "code-highlighted";
|
||||
}
|
||||
}
|
||||
function CodeHighlightOff(elem, id)
|
||||
{
|
||||
var target = document.getElementById(id);
|
||||
if(elem.cacheClassElem)
|
||||
elem.className = elem.cacheClassElem;
|
||||
if(elem.cacheClassTarget)
|
||||
target.className = elem.cacheClassTarget;
|
||||
}
|
||||
/*]]>*///-->
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="org-div-home-and-up">
|
||||
<a accesskey="h" href="../index.html"> UP </a>
|
||||
|
|
||||
<a accesskey="H" href="../index.html"> HOME </a>
|
||||
</div><div id="content">
|
||||
<h1 class="title">Vibrations induced by the translation stage motion</h1>
|
||||
<div id="table-of-contents">
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org9a632ab">1. Measurement description</a></li>
|
||||
<li><a href="#orgbcb8a15">2. Measurement Analysis</a>
|
||||
<ul>
|
||||
<li><a href="#org41bad02">2.1. Load data</a></li>
|
||||
<li><a href="#orgb5c8af2">2.2. Time domain plots</a></li>
|
||||
<li><a href="#org1ada52f">2.3. Frequency Domain analysis</a></li>
|
||||
<li><a href="#org9c3b00c">2.4. Transfer function from marble motion in the East direction to sample motion in the East direction</a></li>
|
||||
<li><a href="#org1512497">2.5. Position of the translation stage and Current</a>
|
||||
<ul>
|
||||
<li><a href="#org1f1e19b">2.5.1. Data pre-processing</a></li>
|
||||
<li><a href="#org7b8bb62">2.5.2. Time domain data</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org066b822">2.6. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9a632ab" class="outline-2">
|
||||
<h2 id="org9a632ab"><span class="section-number-2">1</span> Measurement description</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<p>
|
||||
<b>Setup</b>:
|
||||
Two geophone are use:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>One is on the marble (corresponding to the first column in the data)</li>
|
||||
<li>One at the sample location (corresponding to the second column in the data)</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Two voltage amplifiers are used, their setup is:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>gain of 40dB (the gain at the be lowered from 60dB to 40dB to not saturate the voltage amplifiers)</li>
|
||||
<li>AC/DC switch on AC</li>
|
||||
<li>Low pass filter at 1kHz</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
A first order low pass filter is also added at the input of the voltage amplifiers.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Scans are done with the translation stage following sinus reference at 1Hz with amplitude of 600 000 cnt (= 3mm)
|
||||
The scans are done with the ELMO software.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The North of the Geophones corresponds to the +Y direction and the East of the Geophones to the +X direction (see figure <a href="#org453b1ae">1</a>).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The spindle and slip-ring are turned ON. The Hexapod and the tilt-stage are OFF.
|
||||
</p>
|
||||
<p>
|
||||
<b>Goal</b>:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>Determine the disturbances induced by the translation stage in the Z and X directions when scanning along the Y direction</li>
|
||||
</ul>
|
||||
<p>
|
||||
<b>Measurements</b>:
|
||||
Three measurements are done:
|
||||
</p>
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-left">Measurement File</th>
|
||||
<th scope="col" class="org-left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left"><code>mat/data_040.mat</code></td>
|
||||
<td class="org-left">Z direction</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>mat/data_041.mat</code></td>
|
||||
<td class="org-left">E direction</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left"><code>mat/data_042.mat</code></td>
|
||||
<td class="org-left">E direction without any motion (Ty OFF)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
Each of the measurement <code>mat</code> file contains one <code>data</code> array with 3 columns:
|
||||
</p>
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-left" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-right">Column number</th>
|
||||
<th scope="col" class="org-left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">1</td>
|
||||
<td class="org-left">Geophone - Marble</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">2</td>
|
||||
<td class="org-left">Geophone - Sample</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">3</td>
|
||||
<td class="org-left">Time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
<div id="org453b1ae" class="figure">
|
||||
<p><img src="./img/IMG_20190513_163032.jpg" alt="IMG_20190513_163032.jpg" width="500px" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Picture of the experimental setup</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgbcb8a15" class="outline-2">
|
||||
<h2 id="orgbcb8a15"><span class="section-number-2">2</span> Measurement Analysis</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<p>
|
||||
<a id="orgdadf778"></a>
|
||||
</p>
|
||||
<div class="note">
|
||||
<p>
|
||||
All the files (data and Matlab scripts) are accessible <a href="data/disturbance_ty.zip">here</a>.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org41bad02" class="outline-3">
|
||||
<h3 id="org41bad02"><span class="section-number-3">2.1</span> Load data</h3>
|
||||
<div class="outline-text-3" id="text-2-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">z_ty = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_040.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; z_ty = z_ty.data;
|
||||
e_ty = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_041.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; e_ty = e_ty.data;
|
||||
e_of = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/data_042.mat', 'data'</span><span class="org-rainbow-delimiters-depth-1">)</span>; e_of = e_of.data;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgb5c8af2" class="outline-3">
|
||||
<h3 id="orgb5c8af2"><span class="section-number-3">2.2</span> Time domain plots</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>z_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, z_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Marble - Z'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>z_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, z_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Sample - Z'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Voltage </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">V</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org97f088a" class="figure">
|
||||
<p><img src="figs/ty_z_time.png" alt="ty_z_time.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Z motion of the sample and marble when scanning with the translation stage</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org33a0b96" class="figure">
|
||||
<p><img src="figs/ty_z_time_zoom.png" alt="ty_z_time_zoom.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Z motion of the sample and marble when scanning with the translation stage - Zoom</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>e_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, e_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Marble - X'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>e_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, e_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Sample - X'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Voltage </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">V</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">10</span>, <span class="org-highlight-numbers-number">10</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgd31998f" class="figure">
|
||||
<p><img src="figs/ty_e_time.png" alt="ty_e_time.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Motion of the sample and marble in the east direction when scanning with the translation stage</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org2346a47" class="figure">
|
||||
<p><img src="figs/ty_e_time_zoom.png" alt="ty_e_time_zoom.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>Motion of the sample and marble in the east direction when scanning with the translation stage - Zoom</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1ada52f" class="outline-3">
|
||||
<h3 id="org1ada52f"><span class="section-number-3">2.3</span> Frequency Domain analysis</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<p>
|
||||
We first compute some parameters that will be used for the PSD computation.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dt = z_ty<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>z_ty<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
|
||||
|
||||
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Then we compute the Power Spectral Density using <code>pwelch</code> function.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
First for the geophone located on the marble
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>pxz_ty_m, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>z_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>pxe_ty_m, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>e_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>pxe_of_m, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>e_of<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And for the geophone located at the sample position.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>pxz_ty_s, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>z_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>pxe_ty_s, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>e_ty<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>pxe_of_s, <span class="org-type">~</span><span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>e_of<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
And we plot the ASD of the measured signals:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>figure <a href="#orgcdc360c">6</a> compares the marble motion in the east direction when scanning and when Ty is OFF</li>
|
||||
<li>figure <a href="#org7a15478">7</a> compares the sample motion in the east direction when scanning and when Ty is OFF</li>
|
||||
<li>figure <a href="#orge54908e">8</a> shows the marble and sample motion in the Z direction when scanning with the translation stage</li>
|
||||
</ul>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, sqrt<span class="org-rainbow-delimiters-depth-2">(</span>pxe_ty_m<span class="org-rainbow-delimiters-depth-2">)</span>, 'DisplayName', 'Ty <span class="org-highlight-numbers-number">1Hz</span> <span class="org-type">-</span> Marble <span class="org-type">-</span> X'<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, sqrt<span class="org-rainbow-delimiters-depth-2">(</span>pxe_of_m<span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Ty OFF - Marble - X'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'</span>ASD of the measured Voltage $<span class="org-type">\</span>left<span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">\</span>frac<span class="org-rainbow-delimiters-depth-3">{</span>V<span class="org-rainbow-delimiters-depth-3">}{</span><span class="org-type">\</span>sqrt<span class="org-rainbow-delimiters-depth-4">{</span>Hz<span class="org-rainbow-delimiters-depth-4">}</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-type">\</span>right<span class="org-rainbow-delimiters-depth-2">]</span>$'<span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northwest'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">1e1</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgcdc360c" class="figure">
|
||||
<p><img src="figs/asd_east_marble.png" alt="asd_east_marble.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>Amplitude spectral density of the measure voltage corresponding to the geophone in the east direction located on the marble when the translation stage is OFF and when it is scanning at 1Hz</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, sqrt<span class="org-rainbow-delimiters-depth-2">(</span>pxe_ty_s<span class="org-rainbow-delimiters-depth-2">)</span>, 'DisplayName', 'Ty <span class="org-highlight-numbers-number">1Hz</span> <span class="org-type">-</span> Sample <span class="org-type">-</span> X'<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, sqrt<span class="org-rainbow-delimiters-depth-2">(</span>pxe_of_s<span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Ty OFF - Sample - X'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'</span>ASD of the measured Voltage $<span class="org-type">\</span>left<span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">\</span>frac<span class="org-rainbow-delimiters-depth-3">{</span>V<span class="org-rainbow-delimiters-depth-3">}{</span><span class="org-type">\</span>sqrt<span class="org-rainbow-delimiters-depth-4">{</span>Hz<span class="org-rainbow-delimiters-depth-4">}</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-type">\</span>right<span class="org-rainbow-delimiters-depth-2">]</span>$'<span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northwest'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">1e1</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org7a15478" class="figure">
|
||||
<p><img src="figs/asd_east_sample.png" alt="asd_east_sample.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>Amplitude spectral density of the measure voltage corresponding to the geophone in the east direction located at the sample location when the translation stage is OFF and when it is scanning at 1Hz</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, sqrt<span class="org-rainbow-delimiters-depth-2">(</span>pxz_ty_m<span class="org-rainbow-delimiters-depth-2">)</span>, 'DisplayName', 'Ty <span class="org-highlight-numbers-number">1Hz</span> <span class="org-type">-</span> Marble <span class="org-type">-</span> Z'<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, sqrt<span class="org-rainbow-delimiters-depth-2">(</span>pxz_ty_s<span class="org-rainbow-delimiters-depth-2">)</span>, 'DisplayName', 'Ty <span class="org-highlight-numbers-number">1Hz</span> <span class="org-type">-</span> Sample <span class="org-type">-</span> Z'<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'xscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'yscale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'</span>ASD of the measured Voltage $<span class="org-type">\</span>left<span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">\</span>frac<span class="org-rainbow-delimiters-depth-3">{</span>V<span class="org-rainbow-delimiters-depth-3">}{</span><span class="org-type">\</span>sqrt<span class="org-rainbow-delimiters-depth-4">{</span>Hz<span class="org-rainbow-delimiters-depth-4">}</span><span class="org-rainbow-delimiters-depth-3">}</span><span class="org-type">\</span>right<span class="org-rainbow-delimiters-depth-2">]</span>$'<span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northwest'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">500</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">5</span>, <span class="org-highlight-numbers-number">1e1</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orge54908e" class="figure">
|
||||
<p><img src="figs/asd_z_direction.png" alt="asd_z_direction.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 8: </span>Amplitude spectral density of the measure voltage corresponding to the geophone in the vertical direction located on the granite and at the sample location when the translation stage is scanning at 1Hz</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9c3b00c" class="outline-3">
|
||||
<h3 id="org9c3b00c"><span class="section-number-3">2.4</span> Transfer function from marble motion in the East direction to sample motion in the East direction</h3>
|
||||
<div class="outline-text-3" id="text-2-4">
|
||||
<p>
|
||||
Let's compute the transfer function for the marble motion in the east direction to the sample motion in the east direction.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
We first plot the time domain motions when every stage is off (figure <a href="#orge1584e0">9</a>).
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>e_of<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, e_of<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Sample - X'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>e_of<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, e_of<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'DisplayName', 'Marble - X'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Voltage </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">V</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">100</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Location', 'northeast'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orge1584e0" class="figure">
|
||||
<p><img src="figs/east_marble_sample.png" alt="east_marble_sample.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 9: </span>East motion of the marble and sample when all the stages are OFF</p>
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
We then compute the transfer function using <code>tfestimate</code>.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dt = e_of<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>e_of<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
Fs = <span class="org-highlight-numbers-number">1</span><span class="org-type">/</span>dt; <span class="org-comment">% [Hz]</span>
|
||||
win = hanning<span class="org-rainbow-delimiters-depth-1">(</span>ceil<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-highlight-numbers-number">10</span><span class="org-type">*</span>Fs<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
<span class="org-rainbow-delimiters-depth-1">[</span>T, f<span class="org-rainbow-delimiters-depth-1">]</span> = tfestimate<span class="org-rainbow-delimiters-depth-1">(</span>e_of<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, e_of<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span>, win, <span class="org-rainbow-delimiters-depth-2">[]</span>, <span class="org-rainbow-delimiters-depth-2">[]</span>, Fs<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<p>
|
||||
The result is shown on figure <a href="#org2a92c0e">10</a>.
|
||||
</p>
|
||||
|
||||
<div id="org2a92c0e" class="figure">
|
||||
<p><img src="figs/tf_east_marble_sample.png" alt="tf_east_marble_sample.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 10: </span>Estimation of the transfer function from marble motion in the east direction to sample motion in the east direction</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1512497" class="outline-3">
|
||||
<h3 id="org1512497"><span class="section-number-3">2.5</span> Position of the translation stage and Current</h3>
|
||||
<div class="outline-text-3" id="text-2-5">
|
||||
<p>
|
||||
The position of the translation and current flowing in its actuator are measured using the elmo software and saved as an csv file.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org1f1e19b" class="outline-4">
|
||||
<h4 id="org1f1e19b"><span class="section-number-4">2.5.1</span> Data pre-processing</h4>
|
||||
<div class="outline-text-4" id="text-2-5-1">
|
||||
<p>
|
||||
Let's look at at the start of the csv file.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-bash">sed -n <span class="org-highlight-numbers-number">1,30p</span> mat/sin_elmo.csv | nl -ba -
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The real data starts at line 29.
|
||||
We then load this <code>cvs</code> file starting at line 29.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">data = csvread<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">"mat/sin_elmo.csv"</span>, <span class="org-highlight-numbers-number">29</span>, <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org7b8bb62" class="outline-4">
|
||||
<h4 id="org7b8bb62"><span class="section-number-4">2.5.2</span> Time domain data</h4>
|
||||
<div class="outline-text-4" id="text-2-5-2">
|
||||
<p>
|
||||
We plot the position of the translation stage measured by the encoders.
|
||||
There is 200000 encoder count for each mm, we then divide by 200000 to obtain mm.
|
||||
The result is shown on figure <a href="#orgbfc9bb3">11</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">/</span><span class="org-highlight-numbers-number">200000</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Position </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">mm</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgbfc9bb3" class="figure">
|
||||
<p><img src="figs/ty_position_time.png" alt="ty_position_time.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 11: </span>Y position of the translation stage measured by the encoders</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orgef12336" class="figure">
|
||||
<p><img src="figs/ty_position_time_zoom.png" alt="ty_position_time_zoom.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 12: </span>Y position of the translation stage measured by the encoders - Zoom</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
We also plot the current as function of the time on figure <a href="#org4606174">13</a>.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold off;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>; ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-type">-</span><span class="org-highlight-numbers-number">10</span>, <span class="org-highlight-numbers-number">10</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Time </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">s</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; ylabel</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">'Current </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">A</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org4606174" class="figure">
|
||||
<p><img src="figs/current_time.png" alt="current_time.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 13: </span>Current going through the actuator of the translation stage</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org677343d" class="figure">
|
||||
<p><img src="figs/current_time_zoom.png" alt="current_time_zoom.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 14: </span>Current going through the actuator of the translation stage - Zoom</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org066b822" class="outline-3">
|
||||
<h3 id="org066b822"><span class="section-number-3">2.6</span> Conclusion</h3>
|
||||
<div class="outline-text-3" id="text-2-6">
|
||||
<div class="important">
|
||||
<ul class="org-ul">
|
||||
<li>The acquisition is done using the Speedgoat as well as using ELMO. The two acquisition are <b>not</b> synchronize</li>
|
||||
<li>The value of the translation stage encoder can also be read with the speedgoat, this could permit to synchronize the measurements</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2019-05-14 mar. 14:09</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -1,4 +1,4 @@
|
||||
#+TITLE: Vibrations induced by the Slip-Ring and the Spindle
|
||||
#+TITLE: Vibrations induced by the translation stage motion
|
||||
:DRAWER:
|
||||
#+STARTUP: overview
|
||||
|
||||
@ -30,20 +30,475 @@
|
||||
:END:
|
||||
|
||||
* Measurement description
|
||||
One geophone at the sample position
|
||||
One geophone on the marble
|
||||
** Setup :ignore:
|
||||
*Setup*:
|
||||
Two geophone are use:
|
||||
- One is on the marble (corresponding to the first column in the data)
|
||||
- One at the sample location (corresponding to the second column in the data)
|
||||
|
||||
Each of the signal is amplified by voltage amplifier:
|
||||
- 40db!!!
|
||||
- AC
|
||||
- 1kHz
|
||||
Two voltage amplifiers are used, their setup is:
|
||||
- gain of 40dB (the gain at the be lowered from 60dB to 40dB to not saturate the voltage amplifiers)
|
||||
- AC/DC switch on AC
|
||||
- Low pass filter at 1kHz
|
||||
|
||||
col1: marble
|
||||
col2: sample
|
||||
A first order low pass filter is also added at the input of the voltage amplifiers.
|
||||
|
||||
Ty Scans:
|
||||
- sin @ 1Hz with amplitude = 600 000 cnt (= 3mm)
|
||||
Scans are done with the translation stage following sinus reference at 1Hz with amplitude of 600 000 cnt (= 3mm)
|
||||
The scans are done with the ELMO software.
|
||||
|
||||
- meas 40: Z direction
|
||||
- meas 41: E direction
|
||||
- meas 42: E direction without any motion (Ty OFF)
|
||||
The North of the Geophones corresponds to the +Y direction and the East of the Geophones to the +X direction (see figure [[fig:experimental_setup_picture]]).
|
||||
|
||||
The spindle and slip-ring are turned ON. The Hexapod and the tilt-stage are OFF.
|
||||
|
||||
** Goal :ignore:
|
||||
*Goal*:
|
||||
- Determine the disturbances induced by the translation stage in the Z and X directions when scanning along the Y direction
|
||||
|
||||
** Measurements :ignore:
|
||||
*Measurements*:
|
||||
Three measurements are done:
|
||||
| Measurement File | Description |
|
||||
|--------------------+-----------------------------------------|
|
||||
| =mat/data_040.mat= | Z direction |
|
||||
| =mat/data_041.mat= | E direction |
|
||||
| =mat/data_042.mat= | E direction without any motion (Ty OFF) |
|
||||
|
||||
Each of the measurement =mat= file contains one =data= array with 3 columns:
|
||||
| Column number | Description |
|
||||
|---------------+-------------------|
|
||||
| 1 | Geophone - Marble |
|
||||
| 2 | Geophone - Sample |
|
||||
| 3 | Time |
|
||||
|
||||
#+name: fig:experimental_setup_picture
|
||||
#+caption: Picture of the experimental setup
|
||||
#+attr_html: :width 500px
|
||||
[[file:./img/IMG_20190513_163032.jpg]]
|
||||
|
||||
* Measurement Analysis
|
||||
:PROPERTIES:
|
||||
:header-args:matlab+: :tangle matlab/disturbance_ty.m
|
||||
:header-args:matlab+: :comments org :mkdirp yes
|
||||
:END:
|
||||
<<sec:disturbance_ty>>
|
||||
|
||||
** ZIP file containing the data and matlab files :ignore:
|
||||
#+begin_src bash :exports none :results none
|
||||
if [ matlab/disturbance_ty.m -nt data/disturbance_ty.zip ]; then
|
||||
cp matlab/disturbance_ty.m disturbance_ty.m;
|
||||
zip data/disturbance_ty \
|
||||
mat/data_040.mat \
|
||||
mat/data_041.mat \
|
||||
mat/data_042.mat \
|
||||
mat/sin_elmo.csv \
|
||||
disturbance_ty.m
|
||||
rm disturbance_ty.m;
|
||||
fi
|
||||
#+end_src
|
||||
|
||||
#+begin_note
|
||||
All the files (data and Matlab scripts) are accessible [[file:data/disturbance_ty.zip][here]].
|
||||
#+end_note
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none :results silent :noweb yes
|
||||
<<matlab-init>>
|
||||
#+end_src
|
||||
** Load data
|
||||
#+begin_src matlab
|
||||
z_ty = load('mat/data_040.mat', 'data'); z_ty = z_ty.data;
|
||||
e_ty = load('mat/data_041.mat', 'data'); e_ty = e_ty.data;
|
||||
e_of = load('mat/data_042.mat', 'data'); e_of = e_of.data;
|
||||
#+end_src
|
||||
|
||||
** Time domain plots
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(z_ty(:, 3), z_ty(:, 1), 'DisplayName', 'Marble - Z');
|
||||
plot(z_ty(:, 3), z_ty(:, 2), 'DisplayName', 'Sample - Z');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-5, 5]);
|
||||
legend('Location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_z_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_z_time.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_z_time
|
||||
#+CAPTION: Z motion of the sample and marble when scanning with the translation stage
|
||||
#+RESULTS: fig:ty_z_time
|
||||
[[file:figs/ty_z_time.png]]
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
xlim([0, 1])
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_z_time_zoom
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_z_time_zoom.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_z_time_zoom
|
||||
#+CAPTION: Z motion of the sample and marble when scanning with the translation stage - Zoom
|
||||
#+RESULTS: fig:ty_z_time_zoom
|
||||
[[file:figs/ty_z_time_zoom.png]]
|
||||
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(e_ty(:, 3), e_ty(:, 1), 'DisplayName', 'Marble - X');
|
||||
plot(e_ty(:, 3), e_ty(:, 2), 'DisplayName', 'Sample - X');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-10, 10]);
|
||||
legend('Location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_e_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_e_time.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_e_time
|
||||
#+CAPTION: Motion of the sample and marble in the east direction when scanning with the translation stage
|
||||
#+RESULTS: fig:ty_e_time
|
||||
[[file:figs/ty_e_time.png]]
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
xlim([0, 1])
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_e_time_zoom
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_e_time_zoom.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_e_time_zoom
|
||||
#+CAPTION: Motion of the sample and marble in the east direction when scanning with the translation stage - Zoom
|
||||
#+RESULTS: fig:ty_e_time_zoom
|
||||
[[file:figs/ty_e_time_zoom.png]]
|
||||
|
||||
** Frequency Domain analysis
|
||||
We first compute some parameters that will be used for the PSD computation.
|
||||
#+begin_src matlab
|
||||
dt = z_ty(2, 3)-z_ty(1, 3);
|
||||
|
||||
Fs = 1/dt; % [Hz]
|
||||
|
||||
win = hanning(ceil(10*Fs));
|
||||
#+end_src
|
||||
|
||||
Then we compute the Power Spectral Density using =pwelch= function.
|
||||
|
||||
First for the geophone located on the marble
|
||||
#+begin_src matlab
|
||||
[pxz_ty_m, f] = pwelch(z_ty(:, 1), win, [], [], Fs);
|
||||
[pxe_ty_m, ~] = pwelch(e_ty(:, 1), win, [], [], Fs);
|
||||
[pxe_of_m, ~] = pwelch(e_of(:, 1), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
And for the geophone located at the sample position.
|
||||
#+begin_src matlab
|
||||
[pxz_ty_s, f] = pwelch(z_ty(:, 2), win, [], [], Fs);
|
||||
[pxe_ty_s, ~] = pwelch(e_ty(:, 2), win, [], [], Fs);
|
||||
[pxe_of_s, ~] = pwelch(e_of(:, 2), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
And we plot the ASD of the measured signals:
|
||||
- figure [[fig:asd_east_marble]] compares the marble motion in the east direction when scanning and when Ty is OFF
|
||||
- figure [[fig:asd_east_sample]] compares the sample motion in the east direction when scanning and when Ty is OFF
|
||||
- figure [[fig:asd_z_direction]] shows the marble and sample motion in the Z direction when scanning with the translation stage
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(pxe_ty_m), 'DisplayName', 'Ty 1Hz - Marble - X');
|
||||
plot(f, sqrt(pxe_of_m), 'DisplayName', 'Ty OFF - Marble - X');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'northwest');
|
||||
xlim([0.1, 500]); ylim([1e-5, 1e1]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:asd_east_marble
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/asd_east_marble.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:asd_east_marble
|
||||
#+CAPTION: Amplitude spectral density of the measure voltage corresponding to the geophone in the east direction located on the marble when the translation stage is OFF and when it is scanning at 1Hz
|
||||
#+RESULTS: fig:asd_east_marble
|
||||
[[file:figs/asd_east_marble.png]]
|
||||
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(pxe_ty_s), 'DisplayName', 'Ty 1Hz - Sample - X');
|
||||
plot(f, sqrt(pxe_of_s), 'DisplayName', 'Ty OFF - Sample - X');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'northwest');
|
||||
xlim([0.1, 500]); ylim([1e-5, 1e1]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:asd_east_sample
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/asd_east_sample.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:asd_east_sample
|
||||
#+CAPTION: Amplitude spectral density of the measure voltage corresponding to the geophone in the east direction located at the sample location when the translation stage is OFF and when it is scanning at 1Hz
|
||||
#+RESULTS: fig:asd_east_sample
|
||||
[[file:figs/asd_east_sample.png]]
|
||||
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(pxz_ty_m), 'DisplayName', 'Ty 1Hz - Marble - Z');
|
||||
plot(f, sqrt(pxz_ty_s), 'DisplayName', 'Ty 1Hz - Sample - Z');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'northwest');
|
||||
xlim([0.1, 500]); ylim([1e-5, 1e1]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:asd_z_direction
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/asd_z_direction.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:asd_z_direction
|
||||
#+CAPTION: Amplitude spectral density of the measure voltage corresponding to the geophone in the vertical direction located on the granite and at the sample location when the translation stage is scanning at 1Hz
|
||||
#+RESULTS: fig:asd_z_direction
|
||||
[[file:figs/asd_z_direction.png]]
|
||||
|
||||
** Transfer function from marble motion in the East direction to sample motion in the East direction
|
||||
Let's compute the transfer function for the marble motion in the east direction to the sample motion in the east direction.
|
||||
|
||||
We first plot the time domain motions when every stage is off (figure [[fig:east_marble_sample]]).
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(e_of(:, 3), e_of(:, 2), 'DisplayName', 'Sample - X');
|
||||
plot(e_of(:, 3), e_of(:, 1), 'DisplayName', 'Marble - X');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-1, 1]);
|
||||
legend('Location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:east_marble_sample
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/east_marble_sample.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:east_marble_sample
|
||||
#+CAPTION: East motion of the marble and sample when all the stages are OFF
|
||||
#+RESULTS: fig:east_marble_sample
|
||||
[[file:figs/east_marble_sample.png]]
|
||||
|
||||
|
||||
We then compute the transfer function using =tfestimate=.
|
||||
#+begin_src matlab
|
||||
dt = e_of(2, 3)-e_of(1, 3);
|
||||
Fs = 1/dt; % [Hz]
|
||||
win = hanning(ceil(10*Fs));
|
||||
|
||||
[T, f] = tfestimate(e_of(:, 1), e_of(:, 2), win, [], [], Fs);
|
||||
#+end_src
|
||||
|
||||
|
||||
The result is shown on figure [[fig:tf_east_marble_sample]].
|
||||
#+begin_src matlab :exports none
|
||||
figure;
|
||||
ax1 = subplot(2, 1, 1);
|
||||
hold on;
|
||||
plot(f, abs(T));
|
||||
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), 360)-180);
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([10, 100]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:tf_east_marble_sample
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/tf_east_marble_sample.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:tf_east_marble_sample
|
||||
#+CAPTION: Estimation of the transfer function from marble motion in the east direction to sample motion in the east direction
|
||||
#+RESULTS: fig:tf_east_marble_sample
|
||||
[[file:figs/tf_east_marble_sample.png]]
|
||||
|
||||
** Position of the translation stage and Current
|
||||
The position of the translation and current flowing in its actuator are measured using the elmo software and saved as an csv file.
|
||||
|
||||
*** Data pre-processing
|
||||
Let's look at at the start of the csv file.
|
||||
|
||||
#+begin_src bash :results output
|
||||
sed -n 1,30p mat/sin_elmo.csv | nl -ba -
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
#+begin_example
|
||||
1 Elmo txt chart ver 2.0
|
||||
2
|
||||
3 [File Properties]
|
||||
4 Creation Time,2019-05-13 05:11:45
|
||||
5 Last Updated,2019-05-13 05:11:45
|
||||
6 Resolution,0.001
|
||||
7 Sampling Time,5E-05
|
||||
8 Recording Time,5.461
|
||||
9
|
||||
10 [Chart Properties]
|
||||
11 No.,Name,X Linear,X No.
|
||||
12 1,Chart #1,True,0
|
||||
13 2,Chart #2,True,0
|
||||
14
|
||||
15 [Chart Data]
|
||||
16 Display No.,X No.,Y No.,X Unit,Y Unit,Color,Style,Width
|
||||
17 1,1,2,sec,N/A,ff0000ff,Solid,TwoPoint
|
||||
18 2,1,3,sec,N/A,ff0000ff,Solid,TwoPoint
|
||||
19 2,1,4,sec,N/A,ff007f00,Solid,TwoPoint
|
||||
20
|
||||
21 [Signal Names]
|
||||
22 1,Time (sec)
|
||||
23 2,Position [cnt]
|
||||
24 3,Current Command [A]
|
||||
25 4,Total Current Command [A]
|
||||
26
|
||||
27 [Signals Data Group 1]
|
||||
28 1,2,3,4,
|
||||
29 0,1110769,-0.320872406596209,-0.320872406596209,
|
||||
30 0.001,1108743,-0.319658428261391,-0.319658428261391,
|
||||
#+end_example
|
||||
|
||||
The real data starts at line 29.
|
||||
We then load this =cvs= file starting at line 29.
|
||||
|
||||
#+begin_src matlab
|
||||
data = csvread("mat/sin_elmo.csv", 29, 0);
|
||||
#+end_src
|
||||
|
||||
*** Time domain data
|
||||
We plot the position of the translation stage measured by the encoders.
|
||||
There is 200000 encoder count for each mm, we then divide by 200000 to obtain mm.
|
||||
The result is shown on figure [[fig:ty_position_time]].
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(data(:, 1), data(:, 2)/200000);
|
||||
hold off;
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Position [mm]');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_position_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_position_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_position_time
|
||||
#+CAPTION: Y position of the translation stage measured by the encoders
|
||||
#+RESULTS: fig:ty_position_time
|
||||
[[file:figs/ty_position_time.png]]
|
||||
|
||||
#+begin_src matlab :exports none :tangle no
|
||||
xlim([0, 1]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_position_time_zoom
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/ty_position_time_zoom.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:ty_position_time_zoom
|
||||
#+CAPTION: Y position of the translation stage measured by the encoders - Zoom
|
||||
#+RESULTS: fig:ty_position_time_zoom
|
||||
[[file:figs/ty_position_time_zoom.png]]
|
||||
|
||||
We also plot the current as function of the time on figure [[fig:current_time]].
|
||||
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(data(:, 1), data(:, 3));
|
||||
hold off;
|
||||
xlim([0, 5]); ylim([-10, 10]);
|
||||
xlabel('Time [s]'); ylabel('Current [A]');
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:current_time
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/current_time.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:current_time
|
||||
#+CAPTION: Current going through the actuator of the translation stage
|
||||
#+RESULTS: fig:current_time
|
||||
[[file:figs/current_time.png]]
|
||||
|
||||
#+begin_src matlab :exports none :tangle no
|
||||
xlim([0, 1]);
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:current_time_zoom
|
||||
#+HEADER: :tangle no :exports results :results value raw replace :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/current_time_zoom.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+NAME: fig:current_time_zoom
|
||||
#+CAPTION: Current going through the actuator of the translation stage - Zoom
|
||||
#+RESULTS: fig:current_time_zoom
|
||||
[[file:figs/current_time_zoom.png]]
|
||||
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
- The acquisition is done using the Speedgoat as well as using ELMO. The two acquisition are *not* synchronize
|
||||
- The value of the translation stage encoder can also be read with the speedgoat, this could permit to synchronize the measurements
|
||||
#+end_important
|
||||
|
275
disturbance-ty/matlab/disturbance_ty.m
Normal file
@ -0,0 +1,275 @@
|
||||
%% Clear Workspace and Close figures
|
||||
clear; close all; clc;
|
||||
|
||||
%% Intialize Laplace variable
|
||||
s = zpk('s');
|
||||
|
||||
% Load data
|
||||
|
||||
z_ty = load('mat/data_040.mat', 'data'); z_ty = z_ty.data;
|
||||
e_ty = load('mat/data_041.mat', 'data'); e_ty = e_ty.data;
|
||||
e_of = load('mat/data_042.mat', 'data'); e_of = e_of.data;
|
||||
|
||||
% Time domain plots
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(z_ty(:, 3), z_ty(:, 1), 'DisplayName', 'Marble - Z');
|
||||
plot(z_ty(:, 3), z_ty(:, 2), 'DisplayName', 'Sample - Z');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-5, 5]);
|
||||
legend('Location', 'northeast');
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:ty_z_time
|
||||
% #+CAPTION: Z motion of the sample and marble when scanning with the translation stage
|
||||
% #+RESULTS: fig:ty_z_time
|
||||
% [[file:figs/ty_z_time.png]]
|
||||
|
||||
|
||||
xlim([0, 1])
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:ty_z_time_zoom
|
||||
% #+CAPTION: Z motion of the sample and marble when scanning with the translation stage - Zoom
|
||||
% #+RESULTS: fig:ty_z_time_zoom
|
||||
% [[file:figs/ty_z_time_zoom.png]]
|
||||
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(e_ty(:, 3), e_ty(:, 1), 'DisplayName', 'Marble - X');
|
||||
plot(e_ty(:, 3), e_ty(:, 2), 'DisplayName', 'Sample - X');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-10, 10]);
|
||||
legend('Location', 'northeast');
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:ty_e_time
|
||||
% #+CAPTION: Motion of the sample and marble in the east direction when scanning with the translation stage
|
||||
% #+RESULTS: fig:ty_e_time
|
||||
% [[file:figs/ty_e_time.png]]
|
||||
|
||||
|
||||
xlim([0, 1])
|
||||
|
||||
% Frequency Domain analysis
|
||||
% We first compute some parameters that will be used for the PSD computation.
|
||||
|
||||
dt = z_ty(2, 3)-z_ty(1, 3);
|
||||
|
||||
Fs = 1/dt; % [Hz]
|
||||
|
||||
win = hanning(ceil(10*Fs));
|
||||
|
||||
|
||||
|
||||
% Then we compute the Power Spectral Density using =pwelch= function.
|
||||
|
||||
% First for the geophone located on the marble
|
||||
|
||||
[pxz_ty_m, f] = pwelch(z_ty(:, 1), win, [], [], Fs);
|
||||
[pxe_ty_m, ~] = pwelch(e_ty(:, 1), win, [], [], Fs);
|
||||
[pxe_of_m, ~] = pwelch(e_of(:, 1), win, [], [], Fs);
|
||||
|
||||
|
||||
|
||||
% And for the geophone located at the sample position.
|
||||
|
||||
[pxz_ty_s, f] = pwelch(z_ty(:, 2), win, [], [], Fs);
|
||||
[pxe_ty_s, ~] = pwelch(e_ty(:, 2), win, [], [], Fs);
|
||||
[pxe_of_s, ~] = pwelch(e_of(:, 2), win, [], [], Fs);
|
||||
|
||||
|
||||
|
||||
% And we plot the ASD of the measured signals:
|
||||
% - figure [[fig:asd_east_marble]] compares the marble motion in the east direction when scanning and when Ty is OFF
|
||||
% - figure [[fig:asd_east_sample]] compares the sample motion in the east direction when scanning and when Ty is OFF
|
||||
% - figure [[fig:asd_z_direction]] shows the marble and sample motion in the Z direction when scanning with the translation stage
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(pxe_ty_m), 'DisplayName', 'Ty 1Hz - Marble - X');
|
||||
plot(f, sqrt(pxe_of_m), 'DisplayName', 'Ty OFF - Marble - X');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'northwest');
|
||||
xlim([0.1, 500]); ylim([1e-5, 1e1]);
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:asd_east_marble
|
||||
% #+CAPTION: Amplitude spectral density of the measure voltage corresponding to the geophone in the east direction located on the marble when the translation stage is OFF and when it is scanning at 1Hz
|
||||
% #+RESULTS: fig:asd_east_marble
|
||||
% [[file:figs/asd_east_marble.png]]
|
||||
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(pxe_ty_s), 'DisplayName', 'Ty 1Hz - Sample - X');
|
||||
plot(f, sqrt(pxe_of_s), 'DisplayName', 'Ty OFF - Sample - X');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'northwest');
|
||||
xlim([0.1, 500]); ylim([1e-5, 1e1]);
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:asd_east_sample
|
||||
% #+CAPTION: Amplitude spectral density of the measure voltage corresponding to the geophone in the east direction located at the sample location when the translation stage is OFF and when it is scanning at 1Hz
|
||||
% #+RESULTS: fig:asd_east_sample
|
||||
% [[file:figs/asd_east_sample.png]]
|
||||
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(f, sqrt(pxz_ty_m), 'DisplayName', 'Ty 1Hz - Marble - Z');
|
||||
plot(f, sqrt(pxz_ty_s), 'DisplayName', 'Ty 1Hz - Sample - Z');
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
set(gca, 'yscale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('ASD of the measured Voltage $\left[\frac{V}{\sqrt{Hz}}\right]$')
|
||||
legend('Location', 'northwest');
|
||||
xlim([0.1, 500]); ylim([1e-5, 1e1]);
|
||||
|
||||
% Transfer function from marble motion in the East direction to sample motion in the East direction
|
||||
% Let's compute the transfer function for the marble motion in the east direction to the sample motion in the east direction.
|
||||
|
||||
% We first plot the time domain motions when every stage is off (figure [[fig:east_marble_sample]]).
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(e_of(:, 3), e_of(:, 2), 'DisplayName', 'Sample - X');
|
||||
plot(e_of(:, 3), e_of(:, 1), 'DisplayName', 'Marble - X');
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Voltage [V]');
|
||||
xlim([0, 100]); ylim([-1, 1]);
|
||||
legend('Location', 'northeast');
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:east_marble_sample
|
||||
% #+CAPTION: East motion of the marble and sample when all the stages are OFF
|
||||
% #+RESULTS: fig:east_marble_sample
|
||||
% [[file:figs/east_marble_sample.png]]
|
||||
|
||||
|
||||
% We then compute the transfer function using =tfestimate=.
|
||||
|
||||
dt = e_of(2, 3)-e_of(1, 3);
|
||||
Fs = 1/dt; % [Hz]
|
||||
win = hanning(ceil(10*Fs));
|
||||
|
||||
[T, f] = tfestimate(e_of(:, 1), e_of(:, 2), win, [], [], Fs);
|
||||
|
||||
|
||||
|
||||
|
||||
% The result is shown on figure [[fig:tf_east_marble_sample]].
|
||||
|
||||
figure;
|
||||
ax1 = subplot(2, 1, 1);
|
||||
hold on;
|
||||
plot(f, abs(T));
|
||||
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), 360)-180);
|
||||
hold off;
|
||||
set(gca, 'xscale', 'log');
|
||||
ylim([-180, 180]);
|
||||
yticks([-180, -90, 0, 90, 180]);
|
||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||
|
||||
linkaxes([ax1,ax2],'x');
|
||||
xlim([10, 100]);
|
||||
|
||||
|
||||
|
||||
% #+RESULTS:
|
||||
% #+begin_example
|
||||
% 1 Elmo txt chart ver 2.0
|
||||
% 2
|
||||
% 3 [File Properties]
|
||||
% 4 Creation Time,2019-05-13 05:11:45
|
||||
% 5 Last Updated,2019-05-13 05:11:45
|
||||
% 6 Resolution,0.001
|
||||
% 7 Sampling Time,5E-05
|
||||
% 8 Recording Time,5.461
|
||||
% 9
|
||||
% 10 [Chart Properties]
|
||||
% 11 No.,Name,X Linear,X No.
|
||||
% 12 1,Chart #1,True,0
|
||||
% 13 2,Chart #2,True,0
|
||||
% 14
|
||||
% 15 [Chart Data]
|
||||
% 16 Display No.,X No.,Y No.,X Unit,Y Unit,Color,Style,Width
|
||||
% 17 1,1,2,sec,N/A,ff0000ff,Solid,TwoPoint
|
||||
% 18 2,1,3,sec,N/A,ff0000ff,Solid,TwoPoint
|
||||
% 19 2,1,4,sec,N/A,ff007f00,Solid,TwoPoint
|
||||
% 20
|
||||
% 21 [Signal Names]
|
||||
% 22 1,Time (sec)
|
||||
% 23 2,Position [cnt]
|
||||
% 24 3,Current Command [A]
|
||||
% 25 4,Total Current Command [A]
|
||||
% 26
|
||||
% 27 [Signals Data Group 1]
|
||||
% 28 1,2,3,4,
|
||||
% 29 0,1110769,-0.320872406596209,-0.320872406596209,
|
||||
% 30 0.001,1108743,-0.319658428261391,-0.319658428261391,
|
||||
% #+end_example
|
||||
|
||||
% The real data starts at line 29.
|
||||
% We then load this =cvs= file starting at line 29.
|
||||
|
||||
|
||||
data = csvread("mat/sin_elmo.csv", 29, 0);
|
||||
|
||||
% Time domain data
|
||||
% We plot the position of the translation stage measured by the encoders.
|
||||
% There is 200000 encoder count for each mm, we then divide by 200000 to obtain mm.
|
||||
% The result is shown on figure [[fig:ty_position_time]].
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(data(:, 1), data(:, 2)/200000);
|
||||
hold off;
|
||||
xlim([0, 5]);
|
||||
xlabel('Time [s]'); ylabel('Position [mm]');
|
||||
|
||||
|
||||
|
||||
% #+NAME: fig:ty_position_time_zoom
|
||||
% #+CAPTION: Y position of the translation stage measured by the encoders - Zoom
|
||||
% #+RESULTS: fig:ty_position_time_zoom
|
||||
% [[file:figs/ty_position_time_zoom.png]]
|
||||
|
||||
% We also plot the current as function of the time on figure [[fig:current_time]].
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(data(:, 1), data(:, 3));
|
||||
hold off;
|
||||
xlim([0, 5]); ylim([-10, 10]);
|
||||
xlabel('Time [s]'); ylabel('Current [A]');
|
@ -14,6 +14,8 @@
|
||||
This web-page gathers all the measurements done on the ID31 Micro Station.
|
||||
|
||||
* Measurements of the dynamics of the station
|
||||
- [[file:dynamical-meas-granite/index.org][Dynamics from floor motion to marble motion]]
|
||||
|
||||
** Measurement 1
|
||||
[[file:2017-11-17%20-%20Marc/index.org][Link to the analysis]]
|
||||
|
||||
@ -78,6 +80,7 @@ The station is identified again.
|
||||
- [[file:ground-motion/index.org][Ground motion measurements]]
|
||||
- [[file:static-to-dynamic/index.org][Static guiding errors]]
|
||||
- [[file:disturbance-control-system/index.org][Disturbance induced by the control system of each stage]]
|
||||
- [[file:disturbance-ty/index.org][Vibrations due to Ty scans]]
|
||||
|
||||
** Noise coming from the control loop of each stage
|
||||
[[file:2018-10-15%20-%20Marc/index.org][Link to the analysis]]
|
||||
@ -133,6 +136,7 @@ The goal is to estimate all the error motions induced by the Spindle
|
||||
- [[file:disturbance-measurement/index.org][Disturbance Measurement]]
|
||||
- [[file:slip-ring-test/index.org][Slip Ring - Noise measurement]]
|
||||
- [[file:static-measurements/index.org][Control System Measurement]]
|
||||
|
||||
* Ressources
|
||||
- [[file:actuators-sensors/index.org][Actuators and Sensors]]
|
||||
- [[file:equipment/equipment.org][Equipment used for the measurements]]
|
||||
|