Huge Update
- Modify the joints for Ty, Ry, Rz to have only one bushing joint. - Compensation of gravity
This commit is contained in:
@@ -1,9 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?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-12-13 ven. 16:39 -->
|
||||
<!-- 2020-02-18 mar. 17:44 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Identification of the disturbances</title>
|
||||
@@ -205,7 +206,7 @@
|
||||
@licstart The following is the entire license notice for the
|
||||
JavaScript code in this tag.
|
||||
|
||||
Copyright (C) 2012-2019 Free Software Foundation, Inc.
|
||||
Copyright (C) 2012-2020 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
|
||||
@@ -246,31 +247,16 @@ 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",
|
||||
Macros: {
|
||||
bm: ["{\\boldsymbol #1}",1],
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
|
||||
<script>
|
||||
MathJax = {
|
||||
tex: { macros: {
|
||||
bm: ["\\boldsymbol{#1}",1],
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<script type="text/javascript"
|
||||
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="org-div-home-and-up">
|
||||
@@ -283,13 +269,13 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org19fda9d">1. Simscape Model</a></li>
|
||||
<li><a href="#org9e4d547">2. Identification</a></li>
|
||||
<li><a href="#orgef77399">3. Sensitivity to Disturbances</a></li>
|
||||
<li><a href="#org27e1b01">4. Power Spectral Density of the effect of the disturbances</a></li>
|
||||
<li><a href="#orge82082e">5. Compute the Power Spectral Density of the disturbance force</a></li>
|
||||
<li><a href="#org56c79b2">6. Noise Budget</a></li>
|
||||
<li><a href="#org5d50476">7. Save</a></li>
|
||||
<li><a href="#Simscape-Model">1. Simscape Model</a></li>
|
||||
<li><a href="#Identification">2. Identification</a></li>
|
||||
<li><a href="#Sensitivity-to-Disturbances">3. Sensitivity to Disturbances</a></li>
|
||||
<li><a href="#Power-Spectral-Density-of-the-effect-of-the-disturbances">4. Power Spectral Density of the effect of the disturbances</a></li>
|
||||
<li><a href="#Compute-the-Power-Spectral-Density-of-the-disturbance-force">5. Compute the Power Spectral Density of the disturbance force</a></li>
|
||||
<li><a href="#Noise-Budget">6. Noise Budget</a></li>
|
||||
<li><a href="#Save">7. Save</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@@ -299,7 +285,7 @@ The goal here is to extract the Power Spectral Density of the sources of perturb
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The sources of perturbations are (schematically shown in figure <a href="#orgf25aa60">1</a>):
|
||||
The sources of perturbations are (schematically shown in figure <a href="#org0dbac72">1</a>):
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>\(D_w\): Ground Motion</li>
|
||||
@@ -308,12 +294,12 @@ These forces can be due to imperfect guiding for instance.</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
Because we cannot measure directly the perturbation forces, we have the measure the effect of those perturbations on the system (in terms of velocity for instance using geophones, \(D\) on figure <a href="#orgf25aa60">1</a>) and then, using a model, compute the forces that induced such velocity.
|
||||
Because we cannot measure directly the perturbation forces, we have the measure the effect of those perturbations on the system (in terms of velocity for instance using geophones, \(D\) on figure <a href="#org0dbac72">1</a>) and then, using a model, compute the forces that induced such velocity.
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<div id="orgf25aa60" class="figure">
|
||||
<div id="org0dbac72" class="figure">
|
||||
<p><img src="figs/uniaxial-model-micro-station.png" alt="uniaxial-model-micro-station.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 1: </span>Schematic of the Micro Station and the sources of disturbance</p>
|
||||
@@ -324,19 +310,19 @@ Because we cannot measure directly the perturbation forces, we have the measure
|
||||
This file is divided in the following sections:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
<li>Section <a href="#org9123adf">1</a>: the simscape model used here is presented</li>
|
||||
<li>Section <a href="#orgdd2d5a8">2</a>: transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup</li>
|
||||
<li>Section <a href="#org35da589">3</a>: the bode plot of those transfer functions are shown</li>
|
||||
<li>Section <a href="#orgec11822">4</a>: the measured PSD of the effect of the disturbances are shown</li>
|
||||
<li>Section <a href="#org235ee96">5</a>: from the model and the measured PSD, the PSD of the disturbance forces are computed</li>
|
||||
<li>Section <a href="#org44895f0">6</a>: with the computed PSD, the noise budget of the system is done</li>
|
||||
<li>Section <a href="#org2c7a8eb">1</a>: the simscape model used here is presented</li>
|
||||
<li>Section <a href="#orgdef3420">2</a>: transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup</li>
|
||||
<li>Section <a href="#org1eb00b2">3</a>: the bode plot of those transfer functions are shown</li>
|
||||
<li>Section <a href="#orgd955c86">4</a>: the measured PSD of the effect of the disturbances are shown</li>
|
||||
<li>Section <a href="#org6914212">5</a>: from the model and the measured PSD, the PSD of the disturbance forces are computed</li>
|
||||
<li>Section <a href="#orgc51ba08">6</a>: with the computed PSD, the noise budget of the system is done</li>
|
||||
</ul>
|
||||
|
||||
<div id="outline-container-org19fda9d" class="outline-2">
|
||||
<h2 id="org19fda9d"><span class="section-number-2">1</span> Simscape Model</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<div id="outline-container-Simscape%20Model" class="outline-2">
|
||||
<h2 id="Simscape-Model"><span class="section-number-2">1</span> Simscape Model</h2>
|
||||
<div class="outline-text-2" id="text-Simscape-Model">
|
||||
<p>
|
||||
<a id="org9123adf"></a>
|
||||
<a id="org2c7a8eb"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -349,17 +335,12 @@ We add disturbances forces in the vertical direction for the Translation Stage a
|
||||
Also, we measure the absolute displacement of the granite and of the top platform of the Hexapod.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">open<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'disturbances/matlab/sim_micro_station_disturbances.slx'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
We load the configuration and we set a small <code>StopTime</code>.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'mat/conf_simscape.mat'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-matlab-simulink-keyword">set_param</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">conf_simscape</span>, <span class="org-string">'StopTime'</span>, '<span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">5</span><span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||
<span class="org-matlab-simulink-keyword">set_param</span>(<span class="org-variable-name">conf_simulink</span>, <span class="org-string">'StopTime'</span>, <span class="org-string">'0.5'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -367,72 +348,83 @@ We load the configuration and we set a small <code>StopTime</code>.
|
||||
We initialize all the stages.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">initializeGround<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
initializeGranite<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
initializeTy<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
initializeRy<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
initializeRz<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
initializeMicroHexapod<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
initializeAxisc<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
initializeMirror<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
initializeNanoHexapod<span class="org-rainbow-delimiters-depth-1">(</span>struct<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">'actuator'</span>, <span class="org-string">'piezo'</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
initializeSample<span class="org-rainbow-delimiters-depth-1">(</span>struct<span class="org-rainbow-delimiters-depth-2">(</span><span class="org-string">'mass'</span>, <span class="org-highlight-numbers-number">50</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<pre class="src src-matlab">initializeGround();
|
||||
initializeGranite(<span class="org-string">'type'</span>, <span class="org-string">'modal-analysis'</span>);
|
||||
initializeTy();
|
||||
initializeRy();
|
||||
initializeRz();
|
||||
initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-string">'modal-analysis'</span>);
|
||||
initializeAxisc(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||
initializeMirror(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||
initializeNanoHexapod(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||
initializeSample(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org9e4d547" class="outline-2">
|
||||
<h2 id="org9e4d547"><span class="section-number-2">2</span> Identification</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
<div id="outline-container-Identification" class="outline-2">
|
||||
<h2 id="Identification"><span class="section-number-2">2</span> Identification</h2>
|
||||
<div class="outline-text-2" id="text-Identification">
|
||||
<p>
|
||||
<a id="orgdd2d5a8"></a>
|
||||
<a id="orgdef3420"></a>
|
||||
The transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup with the code below.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
|
||||
options = linearizeOptions;
|
||||
options.SampleTime = <span class="org-highlight-numbers-number">0</span>;
|
||||
options.SampleTime = 0;
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
||||
mdl = <span class="org-string">'sim_micro_station_disturbances'</span>;
|
||||
mdl = <span class="org-string">'nass_model'</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Micro-Hexapod</span></span>
|
||||
<span class="org-comment">% Input/Output definition</span>
|
||||
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Dw'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Ground Motion</span>
|
||||
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Fty'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Parasitic force Ty</span>
|
||||
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Frz'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'input'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Parasitic force Rz</span>
|
||||
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Dgm'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'output'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Absolute motion - Granite</span>
|
||||
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">5</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Dhm'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'output'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Absolute Motion - Hexapod</span>
|
||||
io<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-1">)</span> = linio<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span>mdl, <span class="org-string">'/Vm'</span><span class="org-rainbow-delimiters-depth-2">]</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-string">'output'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-comment">% Relative Velocity hexapod/granite</span>
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Dwz'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Vertical Ground Motion</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Fty_z'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Parasitic force Ty</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Disturbances'</span>], 1, <span class="org-string">'openinput'</span>, [], <span class="org-string">'Frz_z'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Parasitic force Rz</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Granite/Modal Analysis/accelerometer'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Absolute motion - Granite</span>
|
||||
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Micro Hexapod/Modal Analysis/accelerometer'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Absolute Motion - Hexapod</span>
|
||||
<span class="org-comment">% io(io_i) = linio([mdl, '/Vm'], 1, 'openoutput'); io_i = io_i + 1; % Relative Velocity hexapod/granite</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-comment">% Run the linearization</span>
|
||||
G = linearize<span class="org-rainbow-delimiters-depth-1">(</span>mdl, io, <span class="org-highlight-numbers-number">0</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
G = linearize(mdl, io, 0);
|
||||
|
||||
<span class="org-comment">% We Take only the outputs corresponding to the vertical acceleration</span>
|
||||
G = G([3,9], <span class="org-type">:</span>);
|
||||
|
||||
<span class="org-comment">% Input/Output names</span>
|
||||
G.InputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Dw'</span>, <span class="org-string">'Fty'</span>, <span class="org-string">'Frz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Dgm'</span>, <span class="org-string">'Dhm'</span>, <span class="org-string">'Vm'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
G.InputName = {<span class="org-string">'Dw'</span>, <span class="org-string">'Fty'</span>, <span class="org-string">'Frz'</span>};
|
||||
G.OutputName = {<span class="org-string">'Agm'</span>, <span class="org-string">'Ahm'</span>};
|
||||
|
||||
<span class="org-comment">% We integrate 1 time the output to have the velocity and we</span>
|
||||
<span class="org-comment">% substract the absolute velocities to have the relative velocity</span>
|
||||
G = (1<span class="org-type">/</span>s)<span class="org-type">*</span>tf([<span class="org-type">-</span>1, 1])<span class="org-type">*</span>G;
|
||||
|
||||
<span class="org-comment">% Input/Output names</span>
|
||||
G.InputName = {<span class="org-string">'Dw'</span>, <span class="org-string">'Fty'</span>, <span class="org-string">'Frz'</span>};
|
||||
G.OutputName = {<span class="org-string">'Vm'</span>};
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orgef77399" class="outline-2">
|
||||
<h2 id="orgef77399"><span class="section-number-2">3</span> Sensitivity to Disturbances</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
<div id="outline-container-Sensitivity%20to%20Disturbances" class="outline-2">
|
||||
<h2 id="Sensitivity-to-Disturbances"><span class="section-number-2">3</span> Sensitivity to Disturbances</h2>
|
||||
<div class="outline-text-2" id="text-Sensitivity-to-Disturbances">
|
||||
<p>
|
||||
<a id="org35da589"></a>
|
||||
<a id="org1eb00b2"></a>
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orgab7828d" class="figure">
|
||||
<div id="org40ebd12" class="figure">
|
||||
<p><img src="figs/sensitivity_dist_gm.png" alt="sensitivity_dist_gm.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 2: </span>Sensitivity to Ground Motion (<a href="./figs/sensitivity_dist_gm.png">png</a>, <a href="./figs/sensitivity_dist_gm.pdf">pdf</a>)</p>
|
||||
@@ -440,7 +432,7 @@ G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class=
|
||||
|
||||
|
||||
|
||||
<div id="org1351421" class="figure">
|
||||
<div id="org488da2a" class="figure">
|
||||
<p><img src="figs/sensitivity_dist_fty.png" alt="sensitivity_dist_fty.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 3: </span>Sensitivity to vertical forces applied by the Ty stage (<a href="./figs/sensitivity_dist_fty.png">png</a>, <a href="./figs/sensitivity_dist_fty.pdf">pdf</a>)</p>
|
||||
@@ -448,7 +440,7 @@ G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class=
|
||||
|
||||
|
||||
|
||||
<div id="org667306c" class="figure">
|
||||
<div id="org8152b2c" class="figure">
|
||||
<p><img src="figs/sensitivity_dist_frz.png" alt="sensitivity_dist_frz.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 4: </span>Sensitivity to vertical forces applied by the Rz stage (<a href="./figs/sensitivity_dist_frz.png">png</a>, <a href="./figs/sensitivity_dist_frz.pdf">pdf</a>)</p>
|
||||
@@ -456,11 +448,11 @@ G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class=
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org27e1b01" class="outline-2">
|
||||
<h2 id="org27e1b01"><span class="section-number-2">4</span> Power Spectral Density of the effect of the disturbances</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
<div id="outline-container-Power%20Spectral%20Density%20of%20the%20effect%20of%20the%20disturbances" class="outline-2">
|
||||
<h2 id="Power-Spectral-Density-of-the-effect-of-the-disturbances"><span class="section-number-2">4</span> Power Spectral Density of the effect of the disturbances</h2>
|
||||
<div class="outline-text-2" id="text-Power-Spectral-Density-of-the-effect-of-the-disturbances">
|
||||
<p>
|
||||
<a id="orgec11822"></a>
|
||||
<a id="orgd955c86"></a>
|
||||
The PSD of the relative velocity between the hexapod and the marble in \([(m/s)^2/Hz]\) are loaded for the following sources of disturbance:
|
||||
</p>
|
||||
<ul class="org-ul">
|
||||
@@ -473,10 +465,10 @@ Also, the Ground Motion is measured.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">gm = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./disturbances/mat/psd_gm.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'psd_gm'</span>, <span class="org-string">'psd_gv'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
rz = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./disturbances/mat/pxsp_r.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'pxsp_r'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
tyz = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./disturbances/mat/pxz_ty_r.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'pxz_ty_r'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
tyx = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./disturbances/mat/pxe_ty_r.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'pxe_ty_r'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<pre class="src src-matlab">gm = load(<span class="org-string">'./disturbances/mat/psd_gm.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'psd_gm'</span>, <span class="org-string">'psd_gv'</span>);
|
||||
rz = load(<span class="org-string">'./disturbances/mat/pxsp_r.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'pxsp_r'</span>);
|
||||
tyz = load(<span class="org-string">'./disturbances/mat/pxz_ty_r.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'pxz_ty_r'</span>);
|
||||
tyx = load(<span class="org-string">'./disturbances/mat/pxe_ty_r.mat'</span>, <span class="org-string">'f'</span>, <span class="org-string">'pxe_ty_r'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -484,20 +476,20 @@ tyx = load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-
|
||||
We now compute the relative velocity between the hexapod and the granite due to ground motion.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">gm.psd_rv = gm.psd_gm<span class="org-type">.*</span>abs<span class="org-rainbow-delimiters-depth-1">(</span>squeeze<span class="org-rainbow-delimiters-depth-2">(</span>freqresp<span class="org-rainbow-delimiters-depth-3">(</span>G<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">'Vm'</span>, <span class="org-string">'Dw'</span><span class="org-rainbow-delimiters-depth-4">)</span>, gm.f, <span class="org-string">'Hz'</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><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span>;
|
||||
<pre class="src src-matlab">gm.psd_rv = gm.psd_gm<span class="org-type">.*</span>abs(squeeze(freqresp(G(<span class="org-string">'Vm'</span>, <span class="org-string">'Dw'</span>), gm.f, <span class="org-string">'Hz'</span>)))<span class="org-type">.^</span>2;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The Power Spectral Density of the relative motion/velocity of the hexapod with respect to the granite are shown in figures <a href="#orge500b6c">5</a> and <a href="#orgd78766d">6</a>.
|
||||
The Power Spectral Density of the relative motion/velocity of the hexapod with respect to the granite are shown in figures <a href="#orga80b694">5</a> and <a href="#org337df44">6</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a href="#org8fa6982">7</a>.
|
||||
The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a href="#org2f4ee86">7</a>.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orge500b6c" class="figure">
|
||||
<div id="orga80b694" class="figure">
|
||||
<p><img src="figs/dist_effect_relative_velocity.png" alt="dist_effect_relative_velocity.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 5: </span>Amplitude Spectral Density of the relative velocity of the hexapod with respect to the granite due to different sources of perturbation (<a href="./figs/dist_effect_relative_velocity.png">png</a>, <a href="./figs/dist_effect_relative_velocity.pdf">pdf</a>)</p>
|
||||
@@ -505,14 +497,14 @@ The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a h
|
||||
|
||||
|
||||
|
||||
<div id="orgd78766d" class="figure">
|
||||
<div id="org337df44" class="figure">
|
||||
<p><img src="figs/dist_effect_relative_motion.png" alt="dist_effect_relative_motion.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 6: </span>Amplitude Spectral Density of the relative displacement of the hexapod with respect to the granite due to different sources of perturbation (<a href="./figs/dist_effect_relative_motion.png">png</a>, <a href="./figs/dist_effect_relative_motion.pdf">pdf</a>)</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org8fa6982" class="figure">
|
||||
<div id="org2f4ee86" class="figure">
|
||||
<p><img src="figs/dist_effect_relative_motion_cas.png" alt="dist_effect_relative_motion_cas.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 7: </span>Cumulative Amplitude Spectrum of the relative motion due to different sources of perturbation (<a href="./figs/dist_effect_relative_motion_cas.png">png</a>, <a href="./figs/dist_effect_relative_motion_cas.pdf">pdf</a>)</p>
|
||||
@@ -520,25 +512,25 @@ The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a h
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orge82082e" class="outline-2">
|
||||
<h2 id="orge82082e"><span class="section-number-2">5</span> Compute the Power Spectral Density of the disturbance force</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<div id="outline-container-Compute%20the%20Power%20Spectral%20Density%20of%20the%20disturbance%20force" class="outline-2">
|
||||
<h2 id="Compute-the-Power-Spectral-Density-of-the-disturbance-force"><span class="section-number-2">5</span> Compute the Power Spectral Density of the disturbance force</h2>
|
||||
<div class="outline-text-2" id="text-Compute-the-Power-Spectral-Density-of-the-disturbance-force">
|
||||
<p>
|
||||
<a id="org235ee96"></a>
|
||||
<a id="org6914212"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Now, from the extracted transfer functions from the disturbance force to the relative motion of the hexapod with respect to the granite (section <a href="#org35da589">3</a>) and from the measured PSD of the relative motion (section <a href="#orgec11822">4</a>), we can compute the PSD of the disturbance force.
|
||||
Now, from the extracted transfer functions from the disturbance force to the relative motion of the hexapod with respect to the granite (section <a href="#org1eb00b2">3</a>) and from the measured PSD of the relative motion (section <a href="#orgd955c86">4</a>), we can compute the PSD of the disturbance force.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">rz.psd_f = rz.pxsp_r<span class="org-type">./</span>abs<span class="org-rainbow-delimiters-depth-1">(</span>squeeze<span class="org-rainbow-delimiters-depth-2">(</span>freqresp<span class="org-rainbow-delimiters-depth-3">(</span>G<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">'Vm'</span>, <span class="org-string">'Frz'</span><span class="org-rainbow-delimiters-depth-4">)</span>, rz.f, <span class="org-string">'Hz'</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><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span>;
|
||||
tyz.psd_f = tyz.pxz_ty_r<span class="org-type">./</span>abs<span class="org-rainbow-delimiters-depth-1">(</span>squeeze<span class="org-rainbow-delimiters-depth-2">(</span>freqresp<span class="org-rainbow-delimiters-depth-3">(</span>G<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-string">'Vm'</span>, <span class="org-string">'Fty'</span><span class="org-rainbow-delimiters-depth-4">)</span>, tyz.f, <span class="org-string">'Hz'</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><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span>;
|
||||
<pre class="src src-matlab">rz.psd_f = rz.pxsp_r<span class="org-type">./</span>abs(squeeze(freqresp(G(<span class="org-string">'Vm'</span>, <span class="org-string">'Frz'</span>), rz.f, <span class="org-string">'Hz'</span>)))<span class="org-type">.^</span>2;
|
||||
tyz.psd_f = tyz.pxz_ty_r<span class="org-type">./</span>abs(squeeze(freqresp(G(<span class="org-string">'Vm'</span>, <span class="org-string">'Fty'</span>), tyz.f, <span class="org-string">'Hz'</span>)))<span class="org-type">.^</span>2;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org39f9337" class="figure">
|
||||
<div id="org9a8bb49" class="figure">
|
||||
<p><img src="figs/dist_force_psd.png" alt="dist_force_psd.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 8: </span>Amplitude Spectral Density of the disturbance force (<a href="./figs/dist_force_psd.png">png</a>, <a href="./figs/dist_force_psd.pdf">pdf</a>)</p>
|
||||
@@ -546,11 +538,11 @@ tyz.psd_f = tyz.pxz_ty_r<span class="org-type">./</span>abs<span class="org-rain
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org56c79b2" class="outline-2">
|
||||
<h2 id="org56c79b2"><span class="section-number-2">6</span> Noise Budget</h2>
|
||||
<div class="outline-text-2" id="text-6">
|
||||
<div id="outline-container-Noise%20Budget" class="outline-2">
|
||||
<h2 id="Noise-Budget"><span class="section-number-2">6</span> Noise Budget</h2>
|
||||
<div class="outline-text-2" id="text-Noise-Budget">
|
||||
<p>
|
||||
<a id="org44895f0"></a>
|
||||
<a id="orgc51ba08"></a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@@ -559,7 +551,7 @@ We should verify that this is coherent with the measurements.
|
||||
</p>
|
||||
|
||||
|
||||
<div id="orga5608a0" class="figure">
|
||||
<div id="orgede2c8c" class="figure">
|
||||
<p><img src="figs/psd_effect_dist_verif.png" alt="psd_effect_dist_verif.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 9: </span>Computed Effect of the disturbances on the relative displacement hexapod/granite (<a href="./figs/psd_effect_dist_verif.png">png</a>, <a href="./figs/psd_effect_dist_verif.pdf">pdf</a>)</p>
|
||||
@@ -567,7 +559,7 @@ We should verify that this is coherent with the measurements.
|
||||
|
||||
|
||||
|
||||
<div id="org96f239c" class="figure">
|
||||
<div id="org4aeb9e5" class="figure">
|
||||
<p><img src="figs/cas_computed_relative_displacement.png" alt="cas_computed_relative_displacement.png" />
|
||||
</p>
|
||||
<p><span class="figure-number">Figure 10: </span>CAS of the total Relative Displacement due to all considered sources of perturbation (<a href="./figs/cas_computed_relative_displacement.png">png</a>, <a href="./figs/cas_computed_relative_displacement.pdf">pdf</a>)</p>
|
||||
@@ -575,23 +567,23 @@ We should verify that this is coherent with the measurements.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org5d50476" class="outline-2">
|
||||
<h2 id="org5d50476"><span class="section-number-2">7</span> Save</h2>
|
||||
<div class="outline-text-2" id="text-7">
|
||||
<div id="outline-container-Save" class="outline-2">
|
||||
<h2 id="Save"><span class="section-number-2">7</span> Save</h2>
|
||||
<div class="outline-text-2" id="text-Save">
|
||||
<p>
|
||||
The PSD of the disturbance force are now saved for further analysis (the mat file is accessible <a href="mat/dist_psd.mat">here</a>).
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dist_f = struct<span class="org-rainbow-delimiters-depth-1">()</span>;
|
||||
<pre class="src src-matlab">dist_f = struct();
|
||||
|
||||
dist_f.f = gm.f; <span class="org-comment">% Frequency Vector [Hz]</span>
|
||||
|
||||
dist_f.psd_gm = gm.psd_gm; % Power Spectral Density of the Ground Motion [m<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span>Hz]
|
||||
dist_f.psd_ty = tyz.psd_f; % Power Spectral Density of the force induced by the Ty stage in the Z direction [N<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span>Hz]
|
||||
dist_f.psd_rz = rz.psd_f; % Power Spectral Density of the force induced by the Rz stage in the Z direction [N<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span><span class="org-type">/</span>Hz]
|
||||
dist_f.psd_gm = gm.psd_gm; <span class="org-comment">% Power Spectral Density of the Ground Motion [m^2/Hz]</span>
|
||||
dist_f.psd_ty = tyz.psd_f; <span class="org-comment">% Power Spectral Density of the force induced by the Ty stage in the Z direction [N^2/Hz]</span>
|
||||
dist_f.psd_rz = rz.psd_f; <span class="org-comment">% Power Spectral Density of the force induced by the Rz stage in the Z direction [N^2/Hz]</span>
|
||||
|
||||
save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./disturbances/mat/dist_psd.mat'</span>, <span class="org-string">'dist_f'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
save(<span class="org-string">'./disturbances/mat/dist_psd.mat'</span>, <span class="org-string">'dist_f'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
@@ -599,8 +591,7 @@ save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2019-12-13 ven. 16:39</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
<p class="date">Created: 2020-02-18 mar. 17:44</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -42,6 +42,9 @@
|
||||
:END:
|
||||
|
||||
* Introduction :ignore:
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Introduction
|
||||
:END:
|
||||
The goal here is to extract the Power Spectral Density of the sources of perturbation.
|
||||
|
||||
The sources of perturbations are (schematically shown in figure [[fig:uniaxial-model-micro-station]]):
|
||||
@@ -172,6 +175,9 @@ This file is divided in the following sections:
|
||||
- Section [[sec:noise_budget]]: with the computed PSD, the noise budget of the system is done
|
||||
|
||||
* Matlab Init :noexport:ignore:
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Matlab-Init
|
||||
:END:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
#+end_src
|
||||
@@ -189,6 +195,9 @@ This file is divided in the following sections:
|
||||
#+end_src
|
||||
|
||||
* Simscape Model
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Simscape-Model
|
||||
:END:
|
||||
<<sec:simscape_model>>
|
||||
|
||||
The following Simscape model of the micro-station is the same model used for the dynamical analysis.
|
||||
@@ -218,6 +227,9 @@ We initialize all the stages.
|
||||
#+end_src
|
||||
|
||||
* Identification
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Identification
|
||||
:END:
|
||||
<<sec:identification>>
|
||||
The transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup with the code below.
|
||||
|
||||
@@ -262,6 +274,9 @@ The transfer functions from the disturbance forces to the relative velocity of t
|
||||
#+end_src
|
||||
|
||||
* Sensitivity to Disturbances
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Sensitivity-to-Disturbances
|
||||
:END:
|
||||
<<sec:sensitivity_disturbances>>
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
@@ -330,6 +345,9 @@ The transfer functions from the disturbance forces to the relative velocity of t
|
||||
[[file:figs/sensitivity_dist_frz.png]]
|
||||
|
||||
* Power Spectral Density of the effect of the disturbances
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Power-Spectral-Density-of-the-effect-of-the-disturbances
|
||||
:END:
|
||||
<<sec:psd_dist>>
|
||||
The PSD of the relative velocity between the hexapod and the marble in $[(m/s)^2/Hz]$ are loaded for the following sources of disturbance:
|
||||
- Slip Ring Rotation
|
||||
@@ -434,6 +452,9 @@ The Cumulative Amplitude Spectrum of the relative motion is shown in figure [[fi
|
||||
[[file:figs/dist_effect_relative_motion_cas.png]]
|
||||
|
||||
* Compute the Power Spectral Density of the disturbance force
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Compute-the-Power-Spectral-Density-of-the-disturbance-force
|
||||
:END:
|
||||
<<sec:psd_force_dist>>
|
||||
|
||||
Now, from the extracted transfer functions from the disturbance force to the relative motion of the hexapod with respect to the granite (section [[sec:sensitivity_disturbances]]) and from the measured PSD of the relative motion (section [[sec:psd_dist]]), we can compute the PSD of the disturbance force.
|
||||
@@ -466,6 +487,9 @@ Now, from the extracted transfer functions from the disturbance force to the rel
|
||||
[[file:figs/dist_force_psd.png]]
|
||||
|
||||
* Noise Budget
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Noise-Budget
|
||||
:END:
|
||||
<<sec:noise_budget>>
|
||||
|
||||
Now, from the compute spectral density of the disturbance sources, we can compute the resulting relative motion of the Hexapod with respect to the granite using the model.
|
||||
@@ -526,6 +550,9 @@ We should verify that this is coherent with the measurements.
|
||||
[[file:figs/cas_computed_relative_displacement.png]]
|
||||
|
||||
* Save
|
||||
:PROPERTIES:
|
||||
:CUSTOM_ID: Save
|
||||
:END:
|
||||
The PSD of the disturbance force are now saved for further analysis (the mat file is accessible [[file:mat/dist_psd.mat][here]]).
|
||||
|
||||
#+begin_src matlab
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user