Reworked analysis on the static measurements

This commit is contained in:
2019-05-14 10:04:13 +02:00
parent a93e8fe4ae
commit dd4855e6e9
17 changed files with 5292 additions and 201 deletions

View File

@@ -3,12 +3,12 @@
"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-03-15 ven. 11:43 -->
<!-- 2019-05-14 mar. 09:52 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Static Measurements</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Thomas Dehaeze" />
<meta name="author" content="Dehaeze Thomas" />
<style type="text/css">
<!--/*--><![CDATA[/*><!--*/
.title { text-align: center;
@@ -195,10 +195,11 @@
</style>
<link rel="stylesheet" type="text/css" href="../css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="../css/readtheorg.css"/>
<script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jquery.stickytableheaders.min.js"></script>
<script src="../js/readtheorg.js"></script>
<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
@@ -245,31 +246,73 @@ for the JavaScript code in this tag.
}
/*]]>*///-->
</script>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" },
webFont: "TeX"
},
SVG: {scale: 100,
linebreaks: { automatic: "false" },
font: "TeX"},
NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
}
});
</script>
<script type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="content">
<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">Static Measurements</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#orgceaa13e">1. Notes</a></li>
<li><a href="#org8d8d266">2. Data Pre-processing</a></li>
<li><a href="#orgc36603f">3. Matlab - Data Import</a></li>
<li><a href="#orgf7ebbe2">4. Data - Plot</a></li>
<li><a href="#orgd305b40">5. Translate to time domain</a></li>
<li><a href="#orgbc4466d">6. Compute the PSD</a></li>
<li><a href="#org9dbeefe">1. Ty Stage</a>
<ul>
<li><a href="#org98becb2">1.1. Notes</a></li>
<li><a href="#orgbab4f4e">1.2. Data Pre-processing</a></li>
<li><a href="#orgbb084a6">1.3. Matlab - Data Import</a></li>
<li><a href="#orgb7b2129">1.4. Data - Plot</a></li>
<li><a href="#org01e23ef">1.5. Translate to time domain</a></li>
<li><a href="#org13bc3d4">1.6. Compute the PSD</a></li>
</ul>
</li>
<li><a href="#orgc7af6bd">2. <span class="todo TODO">TODO</span> Spindle</a></li>
</ul>
</div>
</div>
<div id="outline-container-org9dbeefe" class="outline-2">
<h2 id="org9dbeefe"><span class="section-number-2">1</span> Ty Stage</h2>
<div class="outline-text-2" id="text-1">
<p>
<a href="../index.html">Back to main page</a>.
<a id="org0ab6482"></a>
</p>
<div id="outline-container-orgceaa13e" class="outline-2">
<h2 id="orgceaa13e"><span class="section-number-2">1</span> Notes</h2>
<div class="outline-text-2" id="text-1">
<div class="note">
<p>
All the files (data and Matlab scripts) are accessible <a href="data/static_ty.zip">here</a>.
</p>
</div>
</div>
<div id="outline-container-org98becb2" class="outline-3">
<h3 id="org98becb2"><span class="section-number-3">1.1</span> Notes</h3>
<div class="outline-text-3" id="text-1-1">
<ul class="org-ul">
<li><b>5530</b>: Straightness Plot: Yz</li>
<li><b>Filename</b>: <code>r:\home\PDMU\PEL\Measurement_library\ID31\ID31_u_station\TY\12_12_2018\linear deviation _tyz_401_points.txt</code></li>
@@ -348,19 +391,36 @@ for the JavaScript code in this tag.
</tr>
</tbody>
</table>
<p>
In a very schematic way, the measurement is explained on figure <a href="#orgb91392e">1</a>.
The positioning error \(d\) is measure as a function of \(x\).
Because the measurement is done in a static way, the dynamics of the station (represented by the mass-spring-damper system on the schematic) does not play a role in the measure.
</p>
<p>
The obtained data corresponds to the guiding errors.
</p>
<div id="orgb91392e" class="figure">
<p><img src="./figs/guiding_errors.png" alt="guiding_errors.png" />
</p>
<p><span class="figure-number">Figure 1: </span>Schematic of the measurement</p>
</div>
</div>
</div>
<div id="outline-container-org8d8d266" class="outline-2">
<h2 id="org8d8d266"><span class="section-number-2">2</span> Data Pre-processing</h2>
<div class="outline-text-2" id="text-2">
<div id="outline-container-orgbab4f4e" class="outline-3">
<h3 id="orgbab4f4e"><span class="section-number-3">1.2</span> Data Pre-processing</h3>
<div class="outline-text-3" id="text-1-2">
<div class="org-src-container">
<pre class="src src-shell">sed <span style="color: #CC9393;">'s/\t/ /g;s/\,/./g'</span> <span style="color: #CC9393;">"data/linear deviation _tyz_401_points.txt"</span> &gt; data/data.txt
<pre class="src src-shell">sed <span class="org-string">'s/\t/ /g;s/\,/./g'</span> <span class="org-string">"mat/linear_deviation_tyz_401_points.txt"</span> &gt; data/data_tyz.txt
</pre>
</div>
<div class="org-src-container">
<pre class="src src-shell">head <span style="color: #CC9393;">"data/data.txt"</span>
<pre class="src src-shell">head <span class="org-string">"mat/data_tyz.txt"</span>
</pre>
</div>
@@ -452,143 +512,182 @@ for the JavaScript code in this tag.
</div>
</div>
<div id="outline-container-orgc36603f" class="outline-2">
<h2 id="orgc36603f"><span class="section-number-2">3</span> Matlab - Data Import</h2>
<div class="outline-text-2" id="text-3">
<div id="outline-container-orgbb084a6" class="outline-3">
<h3 id="orgbb084a6"><span class="section-number-3">1.3</span> Matlab - Data Import</h3>
<div class="outline-text-3" id="text-1-3">
<div class="org-src-container">
<pre class="src src-matlab">filename = <span style="color: #CC9393;">'data/data.txt'</span>;
fileID = fopen<span style="color: #DCDCCC;">(</span>filename<span style="color: #DCDCCC;">)</span>;
data = cell2mat<span style="color: #DCDCCC;">(</span>textscan<span style="color: #BFEBBF;">(</span>fileID,'<span style="color: #7F9F7F;">%f %f %f </span>%f', 'collectoutput', <span style="color: #BFEBBF;">1</span>,'headerlines',<span style="color: #BFEBBF;">1</span>));
fclose<span style="color: #D0BF8F;">(</span>fileID<span style="color: #D0BF8F;">)</span>;
<pre class="src src-matlab">filename = <span class="org-string">'mat/data_tyz.txt'</span>;
fileID = fopen<span class="org-rainbow-delimiters-depth-1">(</span>filename<span class="org-rainbow-delimiters-depth-1">)</span>;
data = cell2mat<span class="org-rainbow-delimiters-depth-1">(</span>textscan<span class="org-rainbow-delimiters-depth-2">(</span>fileID,'<span class="org-comment">%f %f %f </span>%f', 'collectoutput', <span class="org-highlight-numbers-number">1</span>,'headerlines',<span class="org-highlight-numbers-number">1</span>));
fclose<span class="org-rainbow-delimiters-depth-3">(</span>fileID<span class="org-rainbow-delimiters-depth-3">)</span>;
</pre>
</div>
</div>
</div>
<div id="outline-container-orgf7ebbe2" class="outline-2">
<h2 id="orgf7ebbe2"><span class="section-number-2">4</span> Data - Plot</h2>
<div class="outline-text-2" id="text-4">
<div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>;
hold on;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span>=<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:data</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">end, </span><span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span>
plot<span style="color: #DCDCCC;">(</span>data<span style="color: #BFEBBF;">(</span>data<span style="color: #D0BF8F;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">1</span><span style="color: #D0BF8F;">)</span> <span style="color: #7CB8BB;">==</span> <span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, data<span style="color: #BFEBBF;">(</span>data<span style="color: #D0BF8F;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">1</span><span style="color: #D0BF8F;">)</span> <span style="color: #7CB8BB;">==</span> <span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span>, <span style="color: #CC9393;">'-k'</span><span style="color: #DCDCCC;">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span>
hold off;
xlabel<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Target Value </span><span style="color: #BFEBBF;">[</span><span style="color: #CC9393;">mm</span><span style="color: #BFEBBF;">]</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span><span style="color: #CC9393;">; ylabel</span><span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Error Value </span><span style="color: #BFEBBF;">[</span><span style="color: #CC9393;">um</span><span style="color: #BFEBBF;">]</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span>;
</pre>
</div>
<div id="orgd8a6bbb" class="figure">
<p><img src="figs/raw_data.png" alt="raw_data.png" />
<div id="outline-container-orgb7b2129" class="outline-3">
<h3 id="orgb7b2129"><span class="section-number-3">1.4</span> Data - Plot</h3>
<div class="outline-text-3" id="text-1-4">
<p>
First, we plot the straightness error as a function of the position (figure <a href="#orge60d823">2</a>).
</p>
<p><span class="figure-number">Figure 1: </span>Time domain Data</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-type">figure</span>;
hold on;
<span class="org-keyword">for</span> <span class="org-variable-name">i</span>=<span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:data</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">end, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
plot<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span>data<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-type">==</span> <span class="org-constant">i</span>, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span>data<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-type">==</span> <span class="org-constant">i</span>, <span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'-k'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">end</span>
hold off;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Target Value </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-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>Error Value <span class="org-rainbow-delimiters-depth-2">[</span>$<span class="org-type">\</span>mu m$<span class="org-rainbow-delimiters-depth-2">]</span>'<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="orge60d823" class="figure">
<p><img src="figs/raw_data_tyz.png" alt="raw_data_tyz.png" />
</p>
<p><span class="figure-number">Figure 2: </span>Time domain Data</p>
</div>
<p>
Compute mean value of each position
Then, we compute mean value of each position, and we remove this mean value from the data.
The results are shown on figure <a href="#org6b6ea44">3</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">mean_pos = zeros<span style="color: #DCDCCC;">(</span>sum<span style="color: #BFEBBF;">(</span>data<span style="color: #D0BF8F;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">1</span><span style="color: #D0BF8F;">)</span><span style="color: #7CB8BB;">==</span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span>=<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:sum</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">data</span><span style="color: #BFEBBF;">(</span><span style="color: #BFEBBF;">:, </span><span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #BFEBBF;">==</span><span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span>
mean_pos<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span> = mean<span style="color: #DCDCCC;">(</span>data<span style="color: #BFEBBF;">(</span>data<span style="color: #D0BF8F;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">2</span><span style="color: #D0BF8F;">)</span><span style="color: #7CB8BB;">==</span><span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span>
<pre class="src src-matlab">mean_pos = zeros<span class="org-rainbow-delimiters-depth-1">(</span>sum<span class="org-rainbow-delimiters-depth-2">(</span>data<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">)</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-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">for</span> <span class="org-variable-name">i</span>=<span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:sum</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">data</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-2">(</span></span><span class="org-constant">:, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-2">)</span></span><span class="org-constant">==</span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
mean_pos<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> = mean<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span>data<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">==</span><span class="org-constant">i</span>, <span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">end</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>;
<pre class="src src-matlab"><span class="org-type">figure</span>;
hold on;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span>=<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:data</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">end, </span><span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span>
filt = data<span style="color: #DCDCCC;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">==</span> <span style="color: #BFEBBF;">i</span>;
plot<span style="color: #DCDCCC;">(</span>data<span style="color: #BFEBBF;">(</span>filt, <span style="color: #BFEBBF;">3</span><span style="color: #BFEBBF;">)</span>, data<span style="color: #BFEBBF;">(</span>filt, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span> <span style="color: #7CB8BB;">-</span> mean_pos, <span style="color: #CC9393;">'-k'</span><span style="color: #DCDCCC;">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">end</span>
<span class="org-keyword">for</span> <span class="org-variable-name">i</span>=<span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:data</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">end, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
filt = data<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">==</span> <span class="org-constant">i</span>;
plot<span class="org-rainbow-delimiters-depth-1">(</span>data<span class="org-rainbow-delimiters-depth-2">(</span>filt, <span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span>filt, <span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-2">)</span> <span class="org-type">-</span> mean_pos, <span class="org-string">'-k'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">end</span>
hold off;
xlabel<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Target Value </span><span style="color: #BFEBBF;">[</span><span style="color: #CC9393;">mm</span><span style="color: #BFEBBF;">]</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span><span style="color: #CC9393;">; ylabel</span><span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Error Value </span><span style="color: #BFEBBF;">[</span><span style="color: #CC9393;">um</span><span style="color: #BFEBBF;">]</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span>;
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Target Value </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-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>Error Value <span class="org-rainbow-delimiters-depth-2">[</span>$<span class="org-type">\</span>mu m$<span class="org-rainbow-delimiters-depth-2">]</span>'<span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="org4555ce3" class="figure">
<p><img src="figs/processed_data.png" alt="processed_data.png" />
</p>
<p><span class="figure-number">Figure 2: </span>caption</p>
</div>
</div>
</div>
<div id="outline-container-orgd305b40" class="outline-2">
<h2 id="orgd305b40"><span class="section-number-2">5</span> Translate to time domain</h2>
<div class="outline-text-2" id="text-5">
<div class="org-src-container">
<pre class="src src-matlab">t = linspace<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">0</span>, <span style="color: #BFEBBF;">1</span>, length<span style="color: #BFEBBF;">(</span>data<span style="color: #D0BF8F;">(</span>data<span style="color: #93E0E3;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">1</span><span style="color: #93E0E3;">)</span><span style="color: #7CB8BB;">==</span><span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">4</span><span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>;
hold on;
plot<span style="color: #DCDCCC;">(</span>t, data<span style="color: #BFEBBF;">(</span>data<span style="color: #D0BF8F;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">1</span><span style="color: #D0BF8F;">)</span> <span style="color: #7CB8BB;">==</span> <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">4</span><span style="color: #BFEBBF;">)</span> <span style="color: #7CB8BB;">-</span> mean_pos, <span style="color: #CC9393;">'-k'</span><span style="color: #DCDCCC;">)</span>;
hold off;
xlabel<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Time </span><span style="color: #BFEBBF;">[</span><span style="color: #CC9393;">s</span><span style="color: #BFEBBF;">]</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span><span style="color: #CC9393;">; ylabel</span><span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Error Value </span><span style="color: #BFEBBF;">[</span><span style="color: #CC9393;">um</span><span style="color: #BFEBBF;">]</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span>;
</pre>
</div>
<div id="org1cc3634" class="figure">
<p><img src="figs/time_domain.png" alt="time_domain.png" />
<div id="org6b6ea44" class="figure">
<p><img src="figs/processed_data_tyz.png" alt="processed_data_tyz.png" />
</p>
<p><span class="figure-number">Figure 3: </span>caption</p>
</div>
</div>
</div>
<div id="outline-container-orgbc4466d" class="outline-2">
<h2 id="orgbc4466d"><span class="section-number-2">6</span> Compute the PSD</h2>
<div class="outline-text-2" id="text-6">
<div class="org-src-container">
<pre class="src src-matlab">n_av = <span style="color: #BFEBBF;">5</span>;
Fs = <span style="color: #BFEBBF;">1</span><span style="color: #7CB8BB;">/</span>t<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">2</span><span style="color: #DCDCCC;">)</span>;
x = data<span style="color: #DCDCCC;">(</span>data<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span> <span style="color: #7CB8BB;">==</span> <span style="color: #BFEBBF;">1</span>, <span style="color: #BFEBBF;">4</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">-</span> mean_pos;
<span style="color: #DCDCCC;">[</span>pxx, f<span style="color: #DCDCCC;">]</span> = pwelch<span style="color: #DCDCCC;">(</span>x, hanning<span style="color: #BFEBBF;">(</span>ceil<span style="color: #D0BF8F;">(</span>length<span style="color: #93E0E3;">(</span>x<span style="color: #93E0E3;">)</span><span style="color: #7CB8BB;">/</span>n_av<span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span>, <span style="color: #BFEBBF;">[]</span>, <span style="color: #BFEBBF;">[]</span>, Fs<span style="color: #DCDCCC;">)</span>;
pxx_t = zeros<span style="color: #DCDCCC;">(</span>length<span style="color: #BFEBBF;">(</span>pxx<span style="color: #BFEBBF;">)</span>, data<span style="color: #BFEBBF;">(</span>end, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
<span style="color: #F0DFAF; font-weight: bold;">for</span> <span style="color: #DFAF8F;">i</span>=<span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">:data</span><span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">end, </span><span style="color: #BFEBBF;">1</span><span style="color: #DCDCCC;">)</span>
x = data<span style="color: #DCDCCC;">(</span>data<span style="color: #BFEBBF;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">1</span><span style="color: #BFEBBF;">)</span> <span style="color: #7CB8BB;">==</span> <span style="color: #BFEBBF;">i</span>, <span style="color: #BFEBBF;">4</span><span style="color: #DCDCCC;">)</span> <span style="color: #7CB8BB;">-</span> mean_pos;
<span style="color: #DCDCCC;">[</span>pxx, f<span style="color: #DCDCCC;">]</span> = pwelch<span style="color: #DCDCCC;">(</span>x, hanning<span style="color: #BFEBBF;">(</span>ceil<span style="color: #D0BF8F;">(</span>length<span style="color: #93E0E3;">(</span>x<span style="color: #93E0E3;">)</span><span style="color: #7CB8BB;">/</span>n_av<span style="color: #D0BF8F;">)</span><span style="color: #BFEBBF;">)</span>, <span style="color: #BFEBBF;">[]</span>, <span style="color: #BFEBBF;">[]</span>, Fs<span style="color: #DCDCCC;">)</span>;
pxx_t<span style="color: #DCDCCC;">(</span><span style="color: #7CB8BB;">:</span>, <span style="color: #BFEBBF;">i</span><span style="color: #DCDCCC;">)</span> = pxx;
<span style="color: #F0DFAF; font-weight: bold;">end</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span style="color: #7CB8BB;">figure</span>;
hold on;
plot<span style="color: #DCDCCC;">(</span>f, mean<span style="color: #BFEBBF;">(</span>pxx_t, <span style="color: #BFEBBF;">2</span><span style="color: #BFEBBF;">)</span><span style="color: #DCDCCC;">)</span>;
hold off;
xlabel<span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">'Frequency </span><span style="color: #BFEBBF;">(</span><span style="color: #CC9393;">Hz</span><span style="color: #BFEBBF;">)</span><span style="color: #CC9393;">'</span><span style="color: #DCDCCC;">)</span>;
ylabel<span style="color: #DCDCCC;">(</span>'PSD <span style="color: #BFEBBF;">(</span>$m<span style="color: #7CB8BB;">^</span><span style="color: #BFEBBF;">2</span><span style="color: #7CB8BB;">/</span>Hz$<span style="color: #BFEBBF;">)</span>'<span style="color: #DCDCCC;">)</span>;
<span style="color: #7CB8BB;">set</span><span style="color: #DCDCCC;">(</span><span style="color: #DFAF8F;">gca</span>, <span style="color: #CC9393;">'XScale', 'log'</span><span style="color: #DCDCCC;">)</span><span style="color: #CC9393;">; set</span><span style="color: #DCDCCC;">(</span><span style="color: #CC9393;">gca, 'YScale', 'log'</span><span style="color: #DCDCCC;">)</span>;
legend<span style="color: #DCDCCC;">(</span><span style="color: #BFEBBF;">{</span><span style="color: #CC9393;">'PSD - x', 'PSD - y', 'PSD - z'</span><span style="color: #BFEBBF;">}</span><span style="color: #DCDCCC;">)</span>;
</pre>
</div>
<div id="org30d047a" class="figure">
<p><img src="figs/psd.png" alt="psd.png" />
<div id="outline-container-org01e23ef" class="outline-3">
<h3 id="org01e23ef"><span class="section-number-3">1.5</span> Translate to time domain</h3>
<div class="outline-text-3" id="text-1-5">
<p>
We here make the assumptions that, during a scan with the translation stage, the Z motion of the translation stage will follow the guiding error measured.
</p>
<p><span class="figure-number">Figure 4: </span>PSD of the Z motion when scanning with Ty at 1Hz</p>
<p>
We then create a time vector \(t\) from 0 to 1 second that corresponds to a typical scan, and we plot the guiding error as a function of the time on figure <a href="#orgb3c2727">4</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">t = linspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">1</span>, length<span class="org-rainbow-delimiters-depth-2">(</span>data<span class="org-rainbow-delimiters-depth-3">(</span>data<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-type">==</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</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>t, data<span class="org-rainbow-delimiters-depth-2">(</span>data<span class="org-rainbow-delimiters-depth-3">(</span><span class="org-type">:</span>, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-3">)</span> <span class="org-type">==</span> <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-2">)</span> <span class="org-type">-</span> mean_pos, <span class="org-string">'-k'</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">'Error Value </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">um</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="orgb3c2727" class="figure">
<p><img src="figs/time_domain_tyz.png" alt="time_domain_tyz.png" />
</p>
<p><span class="figure-number">Figure 4: </span>caption</p>
</div>
</div>
</div>
<div id="outline-container-org13bc3d4" class="outline-3">
<h3 id="org13bc3d4"><span class="section-number-3">1.6</span> Compute the PSD</h3>
<div class="outline-text-3" id="text-1-6">
<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 = t<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">-</span>t<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</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">1</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>
We remove the mean position from the data.
</p>
<div class="org-src-container">
<pre class="src src-matlab">x = data<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> <span class="org-type">==</span> <span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> mean_pos;
</pre>
</div>
<p>
And finally, we compute the power spectral density of the displacement obtained in the time domain.
</p>
<p>
The result is shown on figure <a href="#org7446cbb">5</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-rainbow-delimiters-depth-1">[</span>pxx, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>x, 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>;
pxx_t = zeros<span class="org-rainbow-delimiters-depth-1">(</span>length<span class="org-rainbow-delimiters-depth-2">(</span>pxx<span class="org-rainbow-delimiters-depth-2">)</span>, data<span class="org-rainbow-delimiters-depth-2">(</span>end, <span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
<span class="org-keyword">for</span> <span class="org-variable-name">i</span>=<span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:data</span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-constant">end, </span><span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant"><span class="org-rainbow-delimiters-depth-1">)</span></span>
x = data<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> <span class="org-type">==</span> <span class="org-constant">i</span>, <span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-type">-</span> mean_pos;
<span class="org-rainbow-delimiters-depth-1">[</span>pxx, f<span class="org-rainbow-delimiters-depth-1">]</span> = pwelch<span class="org-rainbow-delimiters-depth-1">(</span>x, 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>;
pxx_t<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-type">:</span>, <span class="org-constant">i</span><span class="org-rainbow-delimiters-depth-1">)</span> = pxx;
<span class="org-keyword">end</span>
</pre>
</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>mean<span class="org-rainbow-delimiters-depth-3">(</span>pxx_t, <span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span>, <span class="org-string">'k-'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
hold off;
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-rainbow-delimiters-depth-1">)</span>;
ylabel<span class="org-rainbow-delimiters-depth-1">(</span>'Amplitude Spectral Density $<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>m<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>;
<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-string"><span class="org-rainbow-delimiters-depth-1">)</span></span><span class="org-string">; set</span><span class="org-string"><span class="org-rainbow-delimiters-depth-1">(</span></span><span class="org-string">gca, 'YScale', 'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
</pre>
</div>
<div id="org7446cbb" class="figure">
<p><img src="figs/psd_tyz.png" alt="psd_tyz.png" />
</p>
<p><span class="figure-number">Figure 5: </span>PSD of the Z motion when scanning with Ty at 1Hz</p>
</div>
</div>
</div>
</div>
<div id="outline-container-orgc7af6bd" class="outline-2">
<h2 id="orgc7af6bd"><span class="section-number-2">2</span> <span class="todo TODO">TODO</span> Spindle</h2>
</div>
</div>
<div id="postamble" class="status">
<p class="author">Author: Thomas Dehaeze</p>
<p class="date">Created: 2019-03-15 ven. 11:43</p>
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2019-05-14 mar. 09:52</p>
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>