Update the disturbance analysis
@ -3,7 +3,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2019-12-11 mer. 17:19 -->
|
<!-- 2019-12-13 ven. 16:39 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Identification of the disturbances</title>
|
<title>Identification of the disturbances</title>
|
||||||
@ -283,14 +283,13 @@ for the JavaScript code in this tag.
|
|||||||
<h2>Table of Contents</h2>
|
<h2>Table of Contents</h2>
|
||||||
<div id="text-table-of-contents">
|
<div id="text-table-of-contents">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#org764c7a5">1. Identification</a></li>
|
<li><a href="#org19fda9d">1. Simscape Model</a></li>
|
||||||
<li><a href="#orgb1acef0">2. Sensitivity to Disturbances</a></li>
|
<li><a href="#org9e4d547">2. Identification</a></li>
|
||||||
<li><a href="#orgf3d9a05">3. Power Spectral Density of the effect of the disturbances</a></li>
|
<li><a href="#orgef77399">3. Sensitivity to Disturbances</a></li>
|
||||||
<li><a href="#org9f89ab8">4. Compute the Power Spectral Density of the disturbance force</a></li>
|
<li><a href="#org27e1b01">4. Power Spectral Density of the effect of the disturbances</a></li>
|
||||||
<li><a href="#org9815bee">5. Noise Budget</a></li>
|
<li><a href="#orge82082e">5. Compute the Power Spectral Density of the disturbance force</a></li>
|
||||||
<li><a href="#org926ae63">6. Approximation</a></li>
|
<li><a href="#org56c79b2">6. Noise Budget</a></li>
|
||||||
<li><a href="#orged7769c">7. Save</a></li>
|
<li><a href="#org5d50476">7. Save</a></li>
|
||||||
<li><a href="#org5befdfe">8. Display Obtained Disturbances</a></li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -300,7 +299,7 @@ The goal here is to extract the Power Spectral Density of the sources of perturb
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The sources of perturbations are (schematically shown in figure <a href="#org41251c6">1</a>):
|
The sources of perturbations are (schematically shown in figure <a href="#orgf25aa60">1</a>):
|
||||||
</p>
|
</p>
|
||||||
<ul class="org-ul">
|
<ul class="org-ul">
|
||||||
<li>\(D_w\): Ground Motion</li>
|
<li>\(D_w\): Ground Motion</li>
|
||||||
@ -309,12 +308,12 @@ These forces can be due to imperfect guiding for instance.</li>
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<p>
|
<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="#org41251c6">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="#orgf25aa60">1</a>) and then, using a model, compute the forces that induced such velocity.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="org41251c6" class="figure">
|
<div id="orgf25aa60" class="figure">
|
||||||
<p><img src="figs/uniaxial-model-micro-station.png" alt="uniaxial-model-micro-station.png" />
|
<p><img src="figs/uniaxial-model-micro-station.png" alt="uniaxial-model-micro-station.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 1: </span>Schematic of the Micro Station and the sources of disturbance</p>
|
<p><span class="figure-number">Figure 1: </span>Schematic of the Micro Station and the sources of disturbance</p>
|
||||||
@ -325,21 +324,69 @@ Because we cannot measure directly the perturbation forces, we have the measure
|
|||||||
This file is divided in the following sections:
|
This file is divided in the following sections:
|
||||||
</p>
|
</p>
|
||||||
<ul class="org-ul">
|
<ul class="org-ul">
|
||||||
<li>Section <a href="#org965ca14">1</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="#org9123adf">1</a>: the simscape model used here is presented</li>
|
||||||
<li>Section <a href="#orgeb1f8aa">2</a>: the bode plot of those transfer functions are shown</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="#org157daba">3</a>: the measured PSD of the effect of the disturbances are shown</li>
|
<li>Section <a href="#org35da589">3</a>: the bode plot of those transfer functions are shown</li>
|
||||||
<li>Section <a href="#org052ae5a">4</a>: from the model and the measured PSD, the PSD of the disturbance forces are computed</li>
|
<li>Section <a href="#orgec11822">4</a>: the measured PSD of the effect of the disturbances are shown</li>
|
||||||
<li>Section <a href="#org2eab1f7">5</a>: with the computed PSD, the noise budget of the system is done</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>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<div id="outline-container-org764c7a5" class="outline-2">
|
<div id="outline-container-org19fda9d" class="outline-2">
|
||||||
<h2 id="org764c7a5"><span class="section-number-2">1</span> Identification</h2>
|
<h2 id="org19fda9d"><span class="section-number-2">1</span> Simscape Model</h2>
|
||||||
<div class="outline-text-2" id="text-1">
|
<div class="outline-text-2" id="text-1">
|
||||||
<p>
|
<p>
|
||||||
<a id="org965ca14"></a>
|
<a id="org9123adf"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
The following Simscape model of the micro-station is the same model used for the dynamical analysis.
|
||||||
|
However, we here constrain all the stage to only move in the vertical direction.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
We add disturbances forces in the vertical direction for the Translation Stage and the Spindle.
|
||||||
|
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>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
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>
|
||||||
|
</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">
|
||||||
|
<p>
|
||||||
|
<a id="orgdd2d5a8"></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.
|
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>
|
</p>
|
||||||
|
|
||||||
@ -377,15 +424,15 @@ G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class=
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgb1acef0" class="outline-2">
|
<div id="outline-container-orgef77399" class="outline-2">
|
||||||
<h2 id="orgb1acef0"><span class="section-number-2">2</span> Sensitivity to Disturbances</h2>
|
<h2 id="orgef77399"><span class="section-number-2">3</span> Sensitivity to Disturbances</h2>
|
||||||
<div class="outline-text-2" id="text-2">
|
<div class="outline-text-2" id="text-3">
|
||||||
<p>
|
<p>
|
||||||
<a id="orgeb1f8aa"></a>
|
<a id="org35da589"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org18fe4f2" class="figure">
|
<div id="orgab7828d" class="figure">
|
||||||
<p><img src="figs/sensitivity_dist_gm.png" alt="sensitivity_dist_gm.png" />
|
<p><img src="figs/sensitivity_dist_gm.png" alt="sensitivity_dist_gm.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -393,7 +440,7 @@ G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class=
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="org03421a4" class="figure">
|
<div id="org1351421" class="figure">
|
||||||
<p><img src="figs/sensitivity_dist_fty.png" alt="sensitivity_dist_fty.png" />
|
<p><img src="figs/sensitivity_dist_fty.png" alt="sensitivity_dist_fty.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -401,7 +448,7 @@ G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class=
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="org6c556be" class="figure">
|
<div id="org667306c" class="figure">
|
||||||
<p><img src="figs/sensitivity_dist_frz.png" alt="sensitivity_dist_frz.png" />
|
<p><img src="figs/sensitivity_dist_frz.png" alt="sensitivity_dist_frz.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -409,11 +456,11 @@ G.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class=
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgf3d9a05" class="outline-2">
|
<div id="outline-container-org27e1b01" class="outline-2">
|
||||||
<h2 id="orgf3d9a05"><span class="section-number-2">3</span> Power Spectral Density of the effect of the disturbances</h2>
|
<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-3">
|
<div class="outline-text-2" id="text-4">
|
||||||
<p>
|
<p>
|
||||||
<a id="org157daba"></a>
|
<a id="orgec11822"></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:
|
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>
|
</p>
|
||||||
<ul class="org-ul">
|
<ul class="org-ul">
|
||||||
@ -442,15 +489,15 @@ We now compute the relative velocity between the hexapod and the granite due to
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The Power Spectral Density of the relative motion/velocity of the hexapod with respect to the granite are shown in figures <a href="#orga55547e">5</a> and <a href="#org7c4f520">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="#orge500b6c">5</a> and <a href="#orgd78766d">6</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a href="#org868ac30">7</a>.
|
The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a href="#org8fa6982">7</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="orga55547e" class="figure">
|
<div id="orge500b6c" class="figure">
|
||||||
<p><img src="figs/dist_effect_relative_velocity.png" alt="dist_effect_relative_velocity.png" />
|
<p><img src="figs/dist_effect_relative_velocity.png" alt="dist_effect_relative_velocity.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -458,14 +505,14 @@ The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a h
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="org7c4f520" class="figure">
|
<div id="orgd78766d" class="figure">
|
||||||
<p><img src="figs/dist_effect_relative_motion.png" alt="dist_effect_relative_motion.png" />
|
<p><img src="figs/dist_effect_relative_motion.png" alt="dist_effect_relative_motion.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
|
|
||||||
|
|
||||||
<div id="org868ac30" class="figure">
|
<div id="org8fa6982" class="figure">
|
||||||
<p><img src="figs/dist_effect_relative_motion_cas.png" alt="dist_effect_relative_motion_cas.png" />
|
<p><img src="figs/dist_effect_relative_motion_cas.png" alt="dist_effect_relative_motion_cas.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -473,15 +520,15 @@ The Cumulative Amplitude Spectrum of the relative motion is shown in figure <a h
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org9f89ab8" class="outline-2">
|
<div id="outline-container-orge82082e" class="outline-2">
|
||||||
<h2 id="org9f89ab8"><span class="section-number-2">4</span> Compute the Power Spectral Density of the disturbance force</h2>
|
<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-4">
|
<div class="outline-text-2" id="text-5">
|
||||||
<p>
|
<p>
|
||||||
<a id="org052ae5a"></a>
|
<a id="org235ee96"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<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="#orgeb1f8aa">2</a>) and from the measured PSD of the relative motion (section <a href="#org157daba">3</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="#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.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -491,7 +538,7 @@ tyz.psd_f = tyz.pxz_ty_r<span class="org-type">./</span>abs<span class="org-rain
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="org50e0621" class="figure">
|
<div id="org39f9337" class="figure">
|
||||||
<p><img src="figs/dist_force_psd.png" alt="dist_force_psd.png" />
|
<p><img src="figs/dist_force_psd.png" alt="dist_force_psd.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -499,11 +546,11 @@ tyz.psd_f = tyz.pxz_ty_r<span class="org-type">./</span>abs<span class="org-rain
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org9815bee" class="outline-2">
|
<div id="outline-container-org56c79b2" class="outline-2">
|
||||||
<h2 id="org9815bee"><span class="section-number-2">5</span> Noise Budget</h2>
|
<h2 id="org56c79b2"><span class="section-number-2">6</span> Noise Budget</h2>
|
||||||
<div class="outline-text-2" id="text-5">
|
<div class="outline-text-2" id="text-6">
|
||||||
<p>
|
<p>
|
||||||
<a id="org2eab1f7"></a>
|
<a id="org44895f0"></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@ -512,7 +559,7 @@ We should verify that this is coherent with the measurements.
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org82364a5" class="figure">
|
<div id="orga5608a0" class="figure">
|
||||||
<p><img src="figs/psd_effect_dist_verif.png" alt="psd_effect_dist_verif.png" />
|
<p><img src="figs/psd_effect_dist_verif.png" alt="psd_effect_dist_verif.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -520,7 +567,7 @@ We should verify that this is coherent with the measurements.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="org551988f" class="figure">
|
<div id="org96f239c" class="figure">
|
||||||
<p><img src="figs/cas_computed_relative_displacement.png" alt="cas_computed_relative_displacement.png" />
|
<p><img src="figs/cas_computed_relative_displacement.png" alt="cas_computed_relative_displacement.png" />
|
||||||
</p>
|
</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>
|
<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>
|
||||||
@ -528,43 +575,11 @@ We should verify that this is coherent with the measurements.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org926ae63" class="outline-2">
|
<div id="outline-container-org5d50476" class="outline-2">
|
||||||
<h2 id="org926ae63"><span class="section-number-2">6</span> Approximation</h2>
|
<h2 id="org5d50476"><span class="section-number-2">7</span> Save</h2>
|
||||||
<div class="outline-text-2" id="text-6">
|
|
||||||
<p>
|
|
||||||
We approximate the PSD of the disturbance with the following transfer functions.
|
|
||||||
</p>
|
|
||||||
<div class="org-src-container">
|
|
||||||
<pre class="src src-matlab">G_ty = <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">1</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">634</span>.<span class="org-highlight-numbers-number">3</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">283</span>.<span class="org-highlight-numbers-number">7</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
|
||||||
G_rz = <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>s<span class="org-type">+</span><span class="org-highlight-numbers-number">418</span>.<span class="org-highlight-numbers-number">8</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">36</span>.<span class="org-highlight-numbers-number">51</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> <span class="org-highlight-numbers-number">110</span>.<span class="org-highlight-numbers-number">9</span><span class="org-type">*</span>s <span class="org-type">+</span> <span class="org-highlight-numbers-number">3</span>.<span class="org-highlight-numbers-number">375e04</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">7324</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">546</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">6462</span><span class="org-type">*</span>s <span class="org-type">+</span> <span class="org-highlight-numbers-number">2</span>.<span class="org-highlight-numbers-number">391e04</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
|
||||||
G_gm = <span class="org-highlight-numbers-number">0</span>.<span class="org-highlight-numbers-number">002</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">^</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> <span class="org-highlight-numbers-number">3</span>.<span class="org-highlight-numbers-number">169</span><span class="org-type">*</span>s <span class="org-type">+</span> <span class="org-highlight-numbers-number">27</span>.<span class="org-highlight-numbers-number">74</span><span class="org-rainbow-delimiters-depth-1">)</span><span class="org-type">/</span><span class="org-rainbow-delimiters-depth-1">(</span>s<span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">32</span>.<span class="org-highlight-numbers-number">73</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">8</span>.<span class="org-highlight-numbers-number">829</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-2">(</span>s<span class="org-type">+</span><span class="org-highlight-numbers-number">7</span>.<span class="org-highlight-numbers-number">983</span><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-1">)</span>;
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
We compute the effect of these approximate disturbances on \(D\).
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<div id="orge066a98" class="figure">
|
|
||||||
<p><img src="figs/estimate_spectral_density_disturbances.png" alt="estimate_spectral_density_disturbances.png" />
|
|
||||||
</p>
|
|
||||||
<p><span class="figure-number">Figure 11: </span>Estimated spectral density of the disturbances (<a href="./figs/estimate_spectral_density_disturbances.png">png</a>, <a href="./figs/estimate_spectral_density_disturbances.pdf">pdf</a>)</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div id="orgce34474" class="figure">
|
|
||||||
<p><img src="figs/comp_estimation_cas_disturbances.png" alt="comp_estimation_cas_disturbances.png" />
|
|
||||||
</p>
|
|
||||||
<p><span class="figure-number">Figure 12: </span>Comparison of the CAS of the disturbances with the approximate ones (<a href="./figs/comp_estimation_cas_disturbances.png">png</a>, <a href="./figs/comp_estimation_cas_disturbances.pdf">pdf</a>)</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="outline-container-orged7769c" class="outline-2">
|
|
||||||
<h2 id="orged7769c"><span class="section-number-2">7</span> Save</h2>
|
|
||||||
<div class="outline-text-2" id="text-7">
|
<div class="outline-text-2" id="text-7">
|
||||||
<p>
|
<p>
|
||||||
The PSD of the disturbance force are now saved for further noise budgeting when control is applied (the mat file is accessible <a href="mat/dist_psd.mat">here</a>).
|
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>
|
</p>
|
||||||
|
|
||||||
<div class="org-src-container">
|
<div class="org-src-container">
|
||||||
@ -576,54 +591,15 @@ dist_f.psd_gm = gm.psd_gm; % Power Spectral Density of the Ground Motion [m<span
|
|||||||
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_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_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.G_gm = G_ty;
|
|
||||||
dist_f.G_ty = G_rz;
|
|
||||||
dist_f.G_rz = G_gm;
|
|
||||||
|
|
||||||
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-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>;
|
||||||
</pre>
|
</pre>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org5befdfe" class="outline-2">
|
|
||||||
<h2 id="org5befdfe"><span class="section-number-2">8</span> Display Obtained Disturbances</h2>
|
|
||||||
<div class="outline-text-2" id="text-8">
|
|
||||||
<div class="org-src-container">
|
|
||||||
<pre class="src src-matlab">initDisturbances<span class="org-rainbow-delimiters-depth-1">()</span>;
|
|
||||||
load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/nass_disturbances.mat'</span>, <span class="org-string">'Dwx'</span>, <span class="org-string">'Dwy'</span>, <span class="org-string">'Dwz'</span>, <span class="org-string">'Fty_x'</span>, <span class="org-string">'Fty_z'</span>, <span class="org-string">'Frz_z'</span>, <span class="org-string">'Fd'</span>, <span class="org-string">'Ts'</span>, <span class="org-string">'t'</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, Dwx, <span class="org-string">'DisplayName'</span>, <span class="org-string">'Dw x'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
|
||||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>t, Dwy, <span class="org-string">'DisplayName'</span>, <span class="org-string">'Dw y'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
|
||||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>t, Dwz, <span class="org-string">'DisplayName'</span>, <span class="org-string">'Dw 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-rainbow-delimiters-depth-1">)</span>; ylabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Amplitude </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">m</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>;
|
|
||||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'location'</span>, <span class="org-string">'north east'</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, Fty_x, <span class="org-string">'DisplayName'</span>, <span class="org-string">'Ty x'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
|
||||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>t, Fty_z, <span class="org-string">'DisplayName'</span>, <span class="org-string">'Ty z'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
|
||||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>t, Frz_z, <span class="org-string">'DisplayName'</span>, <span class="org-string">'Rz 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-rainbow-delimiters-depth-1">)</span>; ylabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Force </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">N</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>;
|
|
||||||
legend<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'location'</span>, <span class="org-string">'north east'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2019-12-11 mer. 17:19</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="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
@ -164,6 +164,7 @@ Because we cannot measure directly the perturbation forces, we have the measure
|
|||||||
|
|
||||||
|
|
||||||
This file is divided in the following sections:
|
This file is divided in the following sections:
|
||||||
|
- Section [[sec:simscape_model]]: the simscape model used here is presented
|
||||||
- Section [[sec:identification]]: 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
|
- Section [[sec:identification]]: 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
|
||||||
- Section [[sec:sensitivity_disturbances]]: the bode plot of those transfer functions are shown
|
- Section [[sec:sensitivity_disturbances]]: the bode plot of those transfer functions are shown
|
||||||
- Section [[sec:psd_dist]]: the measured PSD of the effect of the disturbances are shown
|
- Section [[sec:psd_dist]]: the measured PSD of the effect of the disturbances are shown
|
||||||
@ -187,9 +188,41 @@ This file is divided in the following sections:
|
|||||||
open('disturbances/matlab/sim_micro_station_disturbances.slx')
|
open('disturbances/matlab/sim_micro_station_disturbances.slx')
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
* Simscape Model
|
||||||
|
<<sec:simscape_model>>
|
||||||
|
|
||||||
|
The following Simscape model of the micro-station is the same model used for the dynamical analysis.
|
||||||
|
However, we here constrain all the stage to only move in the vertical direction.
|
||||||
|
|
||||||
|
We add disturbances forces in the vertical direction for the Translation Stage and the Spindle.
|
||||||
|
Also, we measure the absolute displacement of the granite and of the top platform of the Hexapod.
|
||||||
|
|
||||||
|
#+begin_src matlab
|
||||||
|
open('disturbances/matlab/sim_micro_station_disturbances.slx');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
We load the configuration and we set a small =StopTime=.
|
||||||
|
#+begin_src matlab
|
||||||
|
load('mat/conf_simscape.mat');
|
||||||
|
set_param(conf_simscape, 'StopTime', '0.5');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
We initialize all the stages.
|
||||||
|
#+begin_src matlab
|
||||||
|
initializeGround();
|
||||||
|
initializeGranite();
|
||||||
|
initializeTy();
|
||||||
|
initializeRy();
|
||||||
|
initializeRz();
|
||||||
|
initializeMicroHexapod();
|
||||||
|
initializeAxisc();
|
||||||
|
initializeMirror();
|
||||||
|
initializeNanoHexapod(struct('actuator', 'piezo'));
|
||||||
|
initializeSample(struct('mass', 50));
|
||||||
|
#+end_src
|
||||||
|
|
||||||
* Identification
|
* Identification
|
||||||
<<sec:identification>>
|
<<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.
|
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.
|
||||||
|
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
@ -237,7 +270,7 @@ G.OutputName = {'Dgm', 'Dhm', 'Vm'};
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+HEADER: :tangle no :exports results :results none :noweb yes
|
#+HEADER: :tangle no :exports results :results none :noweb yes
|
||||||
#+begin_src matlab :var filepath="figs/sensitivity_dist_gm.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
#+begin_src matlab :var filepath="figs/sensitivity_dist_gm.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||||
<<plt-matlab>>
|
<<plt-matlab>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -259,7 +292,7 @@ G.OutputName = {'Dgm', 'Dhm', 'Vm'};
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+HEADER: :tangle no :exports results :results none :noweb yes
|
#+HEADER: :tangle no :exports results :results none :noweb yes
|
||||||
#+begin_src matlab :var filepath="figs/sensitivity_dist_fty.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
#+begin_src matlab :var filepath="figs/sensitivity_dist_fty.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||||
<<plt-matlab>>
|
<<plt-matlab>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -281,7 +314,7 @@ G.OutputName = {'Dgm', 'Dhm', 'Vm'};
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+HEADER: :tangle no :exports results :results none :noweb yes
|
#+HEADER: :tangle no :exports results :results none :noweb yes
|
||||||
#+begin_src matlab :var filepath="figs/sensitivity_dist_frz.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
#+begin_src matlab :var filepath="figs/sensitivity_dist_frz.pdf" :var figsize="wide-normal" :post pdf2svg(file=*this*, ext="png")
|
||||||
<<plt-matlab>>
|
<<plt-matlab>>
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@ -309,9 +342,7 @@ Also, the Ground Motion is measured.
|
|||||||
rz.f = rz.f(2:end);
|
rz.f = rz.f(2:end);
|
||||||
tyz.f = tyz.f(2:end);
|
tyz.f = tyz.f(2:end);
|
||||||
tyx.f = tyx.f(2:end);
|
tyx.f = tyx.f(2:end);
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
|
||||||
gm.psd_gm = gm.psd_gm(2:end); % PSD of Ground Motion [m^2/Hz]
|
gm.psd_gm = gm.psd_gm(2:end); % PSD of Ground Motion [m^2/Hz]
|
||||||
gm.psd_gv = gm.psd_gv(2:end); % PSD of Ground Velocity [(m/s)^2/Hz]
|
gm.psd_gv = gm.psd_gv(2:end); % PSD of Ground Velocity [(m/s)^2/Hz]
|
||||||
rz.pxsp_r = rz.pxsp_r(2:end); % PSD of Relative Velocity [(m/s)^2/Hz]
|
rz.pxsp_r = rz.pxsp_r(2:end); % PSD of Relative Velocity [(m/s)^2/Hz]
|
||||||
@ -487,89 +518,8 @@ We should verify that this is coherent with the measurements.
|
|||||||
#+CAPTION: CAS of the total Relative Displacement due to all considered sources of perturbation ([[./figs/cas_computed_relative_displacement.png][png]], [[./figs/cas_computed_relative_displacement.pdf][pdf]])
|
#+CAPTION: CAS of the total Relative Displacement due to all considered sources of perturbation ([[./figs/cas_computed_relative_displacement.png][png]], [[./figs/cas_computed_relative_displacement.pdf][pdf]])
|
||||||
[[file:figs/cas_computed_relative_displacement.png]]
|
[[file:figs/cas_computed_relative_displacement.png]]
|
||||||
|
|
||||||
* Approximation
|
|
||||||
We approximate the PSD of the disturbance with the following transfer functions.
|
|
||||||
#+begin_src matlab
|
|
||||||
G_ty = 0.1*(s+634.3)*(s+283.7)/((s+2*pi)*(s+2*pi));
|
|
||||||
G_rz = 0.5*(s+418.8)*(s+36.51)*(s^2 + 110.9*s + 3.375e04)/((s+0.7324)*(s+0.546)*(s^2 + 0.6462*s + 2.391e04));
|
|
||||||
G_gm = 0.002*(s^2 + 3.169*s + 27.74)/(s*(s+32.73)*(s+8.829)*(s+7.983)^2);
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
We compute the effect of these approximate disturbances on $D$.
|
|
||||||
#+begin_src matlab :exports none
|
|
||||||
% Power Spectral Density of the relative Displacement
|
|
||||||
psd_gm_s = abs(squeeze(freqresp(G_gm*G('Vm', 'Dw')/s, gm.f, 'Hz'))).^2;
|
|
||||||
psd_ty_s = abs(squeeze(freqresp(G_ty*G('Vm', 'Fty')/s, gm.f, 'Hz'))).^2;
|
|
||||||
psd_rz_s = abs(squeeze(freqresp(G_rz*G('Vm', 'Frz')/s, gm.f, 'Hz'))).^2;
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
|
||||||
figure;
|
|
||||||
ax1 = subplot(1, 2, 1);
|
|
||||||
hold on;
|
|
||||||
set(gca,'ColorOrderIndex',2);
|
|
||||||
plot(gm.f, sqrt(psd_ty_d), 'DisplayName', 'F - Ty');
|
|
||||||
plot(gm.f, sqrt(psd_rz_d), 'DisplayName', 'F - Rz');
|
|
||||||
set(gca,'ColorOrderIndex',2);
|
|
||||||
plot(gm.f, sqrt(psd_ty_s), '--', 'HandleVisibility', 'off');
|
|
||||||
plot(gm.f, sqrt(psd_rz_s), '--', 'HandleVisibility', 'off');
|
|
||||||
hold off;
|
|
||||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
|
||||||
xlabel('Frequency [Hz]'); ylabel('ASD of the disturbance force $\left[\frac{F}{\sqrt{Hz}}\right]$')
|
|
||||||
legend('Location', 'southwest');
|
|
||||||
xlim([2, 500]);
|
|
||||||
|
|
||||||
ax2 = subplot(1, 2, 2);
|
|
||||||
hold on;
|
|
||||||
plot(gm.f, sqrt(psd_gm_d), 'DisplayName', 'D - Gm');
|
|
||||||
set(gca,'ColorOrderIndex',1);
|
|
||||||
plot(gm.f, sqrt(psd_gm_s), '--', 'HandleVisibility', 'off');
|
|
||||||
hold off;
|
|
||||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
|
||||||
xlabel('Frequency [Hz]'); ylabel('ASD of the ground displacement $\left[\frac{m}{\sqrt{Hz}}\right]$')
|
|
||||||
legend('Location', 'southwest');
|
|
||||||
xlim([2, 500]);
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+HEADER: :tangle no :exports results :results none :noweb yes
|
|
||||||
#+begin_src matlab :var filepath="figs/estimate_spectral_density_disturbances.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
||||||
<<plt-matlab>>
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+NAME: fig:estimate_spectral_density_disturbances
|
|
||||||
#+CAPTION: Estimated spectral density of the disturbances ([[./figs/estimate_spectral_density_disturbances.png][png]], [[./figs/estimate_spectral_density_disturbances.pdf][pdf]])
|
|
||||||
[[file:figs/estimate_spectral_density_disturbances.png]]
|
|
||||||
|
|
||||||
#+begin_src matlab :exports none
|
|
||||||
figure;
|
|
||||||
hold on;
|
|
||||||
plot(gm.f, flip(sqrt(-cumtrapz(flip(gm.f), flip(psd_gm_d)))), 'DisplayName', 'Gm');
|
|
||||||
plot(gm.f, flip(sqrt(-cumtrapz(flip(gm.f), flip(psd_ty_d)))), 'DisplayName', 'Ty');
|
|
||||||
plot(gm.f, flip(sqrt(-cumtrapz(flip(gm.f), flip(psd_rz_d)))), 'DisplayName', 'Rz');
|
|
||||||
plot(gm.f, flip(sqrt(-cumtrapz(flip(gm.f), flip(psd_gm_d + psd_ty_d + psd_rz_d)))), 'k-', 'DisplayName', 'tot');
|
|
||||||
set(gca,'ColorOrderIndex',1);
|
|
||||||
plot(gm.f, flip(sqrt(-cumtrapz(flip(gm.f), flip(psd_gm_s)))), '--', 'HandleVisibility', 'off');
|
|
||||||
plot(gm.f, flip(sqrt(-cumtrapz(flip(gm.f), flip(psd_ty_s)))), '--', 'HandleVisibility', 'off');
|
|
||||||
plot(gm.f, flip(sqrt(-cumtrapz(flip(gm.f), flip(psd_rz_s)))), '--', 'HandleVisibility', 'off');
|
|
||||||
plot(gm.f, flip(sqrt(-cumtrapz(flip(gm.f), flip(psd_gm_s + psd_ty_s + psd_rz_s)))), 'k--', 'HandleVisibility', 'off');
|
|
||||||
hold off;
|
|
||||||
set(gca, 'xscale', 'log'); set(gca, 'yscale', 'log');
|
|
||||||
xlabel('Frequency [Hz]'); ylabel('Cumulative Amplitude Spectrum [m]')
|
|
||||||
legend('location', 'northeast');
|
|
||||||
xlim([2, 500]); ylim([1e-11, 1e-6]);
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+HEADER: :tangle no :exports results :results none :noweb yes
|
|
||||||
#+begin_src matlab :var filepath="figs/comp_estimation_cas_disturbances.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
|
||||||
<<plt-matlab>>
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+NAME: fig:comp_estimation_cas_disturbances
|
|
||||||
#+CAPTION: Comparison of the CAS of the disturbances with the approximate ones ([[./figs/comp_estimation_cas_disturbances.png][png]], [[./figs/comp_estimation_cas_disturbances.pdf][pdf]])
|
|
||||||
[[file:figs/comp_estimation_cas_disturbances.png]]
|
|
||||||
|
|
||||||
* Save
|
* Save
|
||||||
The PSD of the disturbance force are now saved for further noise budgeting when control is applied (the mat file is accessible [[file:mat/dist_psd.mat][here]]).
|
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
|
#+begin_src matlab
|
||||||
dist_f = struct();
|
dist_f = struct();
|
||||||
@ -580,37 +530,5 @@ The PSD of the disturbance force are now saved for further noise budgeting when
|
|||||||
dist_f.psd_ty = tyz.psd_f; % Power Spectral Density of the force induced by the Ty stage in the Z direction [N^2/Hz]
|
dist_f.psd_ty = tyz.psd_f; % Power Spectral Density of the force induced by the Ty stage in the Z direction [N^2/Hz]
|
||||||
dist_f.psd_rz = rz.psd_f; % Power Spectral Density of the force induced by the Rz stage in the Z direction [N^2/Hz]
|
dist_f.psd_rz = rz.psd_f; % Power Spectral Density of the force induced by the Rz stage in the Z direction [N^2/Hz]
|
||||||
|
|
||||||
dist_f.G_gm = G_ty;
|
|
||||||
dist_f.G_ty = G_rz;
|
|
||||||
dist_f.G_rz = G_gm;
|
|
||||||
|
|
||||||
save('./disturbances/mat/dist_psd.mat', 'dist_f');
|
save('./disturbances/mat/dist_psd.mat', 'dist_f');
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
* Display Obtained Disturbances
|
|
||||||
#+begin_src matlab
|
|
||||||
initDisturbances();
|
|
||||||
load('./mat/nass_disturbances.mat', 'Dwx', 'Dwy', 'Dwz', 'Fty_x', 'Fty_z', 'Frz_z', 'Fd', 'Ts', 't');
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_src matlab
|
|
||||||
figure;
|
|
||||||
hold on;
|
|
||||||
plot(t, Dwx, 'DisplayName', 'Dw x');
|
|
||||||
plot(t, Dwy, 'DisplayName', 'Dw y');
|
|
||||||
plot(t, Dwz, 'DisplayName', 'Dw z');
|
|
||||||
hold off;
|
|
||||||
xlabel('Time [s]'); ylabel('Amplitude [m]');
|
|
||||||
legend('location', 'north east');
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
#+begin_src matlab
|
|
||||||
figure;
|
|
||||||
hold on;
|
|
||||||
plot(t, Fty_x, 'DisplayName', 'Ty x');
|
|
||||||
plot(t, Fty_z, 'DisplayName', 'Ty z');
|
|
||||||
plot(t, Frz_z, 'DisplayName', 'Rz z');
|
|
||||||
hold off;
|
|
||||||
xlabel('Time [s]'); ylabel('Force [N]');
|
|
||||||
legend('location', 'north east');
|
|
||||||
#+end_src
|
|
||||||
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 163 KiB After Width: | Height: | Size: 165 KiB |
Before Width: | Height: | Size: 196 KiB After Width: | Height: | Size: 177 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 84 KiB |
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 68 KiB |
@ -3,7 +3,7 @@
|
|||||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||||
<head>
|
<head>
|
||||||
<!-- 2019-12-13 ven. 15:53 -->
|
<!-- 2019-12-13 ven. 16:25 -->
|
||||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||||
<title>Identification</title>
|
<title>Identification</title>
|
||||||
@ -283,17 +283,17 @@ for the JavaScript code in this tag.
|
|||||||
<h2>Table of Contents</h2>
|
<h2>Table of Contents</h2>
|
||||||
<div id="text-table-of-contents">
|
<div id="text-table-of-contents">
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgb8d5122">1. Some notes about the Simscape Model</a></li>
|
<li><a href="#orgb856d17">1. Some notes about the Simscape Model</a></li>
|
||||||
<li><a href="#orgc2a789d">2. Compare with measurements at the CoM of each element</a>
|
<li><a href="#orga0759cc">2. Compare with measurements at the CoM of each element</a>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="#orgf4fd5e0">2.1. Prepare the Simulation</a></li>
|
<li><a href="#org276f402">2.1. Prepare the Simulation</a></li>
|
||||||
<li><a href="#org80db7e9">2.2. Estimate the position of the CoM of each solid and compare with the one took for the Measurement Analysis</a></li>
|
<li><a href="#org58d4a0b">2.2. Estimate the position of the CoM of each solid and compare with the one took for the Measurement Analysis</a></li>
|
||||||
<li><a href="#org93dc35e">2.3. Create a frame at the CoM of each solid body</a></li>
|
<li><a href="#orgd1a401f">2.3. Create a frame at the CoM of each solid body</a></li>
|
||||||
<li><a href="#org7b8b6f1">2.4. Identification of the dynamics of the Simscape Model</a></li>
|
<li><a href="#org938e5b4">2.4. Identification of the dynamics of the Simscape Model</a></li>
|
||||||
<li><a href="#org45a93e8">2.5. Compare with measurements</a></li>
|
<li><a href="#org8b67645">2.5. Compare with measurements</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li><a href="#org75fd8be">3. Conclusion</a></li>
|
<li><a href="#org69d2afb">3. Conclusion</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -314,8 +314,8 @@ We can then compare the measured Frequency Response Functions with the identifie
|
|||||||
Finally, this should help to tune the parameters of the model such that the dynamics is closer to the measured FRF.
|
Finally, this should help to tune the parameters of the model such that the dynamics is closer to the measured FRF.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div id="outline-container-orgb8d5122" class="outline-2">
|
<div id="outline-container-orgb856d17" class="outline-2">
|
||||||
<h2 id="orgb8d5122"><span class="section-number-2">1</span> Some notes about the Simscape Model</h2>
|
<h2 id="orgb856d17"><span class="section-number-2">1</span> Some notes about the Simscape Model</h2>
|
||||||
<div class="outline-text-2" id="text-1">
|
<div class="outline-text-2" id="text-1">
|
||||||
<p>
|
<p>
|
||||||
The Simscape Model of the micro-station consists of several solid bodies:
|
The Simscape Model of the micro-station consists of several solid bodies:
|
||||||
@ -341,17 +341,22 @@ Some of the springs and dampers values can be estimated from the joints/stages s
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgc2a789d" class="outline-2">
|
<div id="outline-container-orga0759cc" class="outline-2">
|
||||||
<h2 id="orgc2a789d"><span class="section-number-2">2</span> Compare with measurements at the CoM of each element</h2>
|
<h2 id="orga0759cc"><span class="section-number-2">2</span> Compare with measurements at the CoM of each element</h2>
|
||||||
<div class="outline-text-2" id="text-2">
|
<div class="outline-text-2" id="text-2">
|
||||||
<p>
|
<p>
|
||||||
<a href="../../meas/modal-analysis/index.html">here</a>
|
<a href="../../meas/modal-analysis/index.html">here</a>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-orgf4fd5e0" class="outline-3">
|
<div id="outline-container-org276f402" class="outline-3">
|
||||||
<h3 id="orgf4fd5e0"><span class="section-number-3">2.1</span> Prepare the Simulation</h3>
|
<h3 id="org276f402"><span class="section-number-3">2.1</span> Prepare the Simulation</h3>
|
||||||
<div class="outline-text-3" id="text-2-1">
|
<div class="outline-text-3" id="text-2-1">
|
||||||
|
<div class="org-src-container">
|
||||||
|
<pre class="src src-matlab">open<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'identification/matlab/sim_micro_station_com.slx'</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
We load the configuration.
|
We load the configuration.
|
||||||
</p>
|
</p>
|
||||||
@ -387,14 +392,9 @@ initializeSample<span class="org-rainbow-delimiters-depth-1">(</span>struct<span
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org80db7e9" class="outline-3">
|
<div id="outline-container-org58d4a0b" class="outline-3">
|
||||||
<h3 id="org80db7e9"><span class="section-number-3">2.2</span> Estimate the position of the CoM of each solid and compare with the one took for the Measurement Analysis</h3>
|
<h3 id="org58d4a0b"><span class="section-number-3">2.2</span> Estimate the position of the CoM of each solid and compare with the one took for the Measurement Analysis</h3>
|
||||||
<div class="outline-text-3" id="text-2-2">
|
<div class="outline-text-3" id="text-2-2">
|
||||||
<div class="org-src-container">
|
|
||||||
<pre class="src src-matlab">open<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'identification/matlab/sim_micro_station_com.slx'</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
|
||||||
</pre>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Thanks to the <a href="https://fr.mathworks.com/help/physmod/sm/ref/inertiasensor.html">Inertia Sensor</a> simscape block, it is possible to estimate the position of the Center of Mass of a solid body with respect to a defined frame.
|
Thanks to the <a href="https://fr.mathworks.com/help/physmod/sm/ref/inertiasensor.html">Inertia Sensor</a> simscape block, it is possible to estimate the position of the Center of Mass of a solid body with respect to a defined frame.
|
||||||
</p>
|
</p>
|
||||||
@ -405,10 +405,10 @@ Thanks to the <a href="https://fr.mathworks.com/help/physmod/sm/ref/inertiasenso
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
The results are shown in the table <a href="#orgb162423">1</a>.
|
The results are shown in the table <a href="#orga7b7bb1">1</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table id="orgb162423" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
<table id="orga7b7bb1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
<caption class="t-above"><span class="table-number">Table 1:</span> Center of Mass of each solid body as defined in Simscape</caption>
|
<caption class="t-above"><span class="table-number">Table 1:</span> Center of Mass of each solid body as defined in Simscape</caption>
|
||||||
|
|
||||||
<colgroup>
|
<colgroup>
|
||||||
@ -471,10 +471,10 @@ The results are shown in the table <a href="#orgb162423">1</a>.
|
|||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
We can compare the obtained center of mass (table <a href="#orgb162423">1</a>) with the one used for the Modal Analysis shown in table <a href="#org7f786a2">2</a>.
|
We can compare the obtained center of mass (table <a href="#orga7b7bb1">1</a>) with the one used for the Modal Analysis shown in table <a href="#org03ce6cf">2</a>.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<table id="org7f786a2" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
<table id="org03ce6cf" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||||
<caption class="t-above"><span class="table-number">Table 2:</span> Estimated Center of Mass of each solid body using Solidworks</caption>
|
<caption class="t-above"><span class="table-number">Table 2:</span> Estimated Center of Mass of each solid body using Solidworks</caption>
|
||||||
|
|
||||||
<colgroup>
|
<colgroup>
|
||||||
@ -548,8 +548,8 @@ However, in SolidWorks, this has probably not be included with the top granite.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org93dc35e" class="outline-3">
|
<div id="outline-container-orgd1a401f" class="outline-3">
|
||||||
<h3 id="org93dc35e"><span class="section-number-3">2.3</span> Create a frame at the CoM of each solid body</h3>
|
<h3 id="orgd1a401f"><span class="section-number-3">2.3</span> Create a frame at the CoM of each solid body</h3>
|
||||||
<div class="outline-text-3" id="text-2-3">
|
<div class="outline-text-3" id="text-2-3">
|
||||||
<p>
|
<p>
|
||||||
Now we use one <code>inertiasensor</code> block connected on each solid body that measured the center of mass of this solid with respect to the same connected frame.
|
Now we use one <code>inertiasensor</code> block connected on each solid body that measured the center of mass of this solid with respect to the same connected frame.
|
||||||
@ -652,8 +652,8 @@ Then, we use the obtained results to add a <code>rigidTransform</code> block in
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org7b8b6f1" class="outline-3">
|
<div id="outline-container-org938e5b4" class="outline-3">
|
||||||
<h3 id="org7b8b6f1"><span class="section-number-3">2.4</span> Identification of the dynamics of the Simscape Model</h3>
|
<h3 id="org938e5b4"><span class="section-number-3">2.4</span> Identification of the dynamics of the Simscape Model</h3>
|
||||||
<div class="outline-text-3" id="text-2-4">
|
<div class="outline-text-3" id="text-2-4">
|
||||||
<p>
|
<p>
|
||||||
We now use a new Simscape Model where 6DoF inertial sensors are located at the Center of Mass of each solid body.
|
We now use a new Simscape Model where 6DoF inertial sensors are located at the Center of Mass of each solid body.
|
||||||
@ -720,8 +720,8 @@ In order to obtain a displacement, we divide the obtained transfer function by \
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="outline-container-org45a93e8" class="outline-3">
|
<div id="outline-container-org8b67645" class="outline-3">
|
||||||
<h3 id="org45a93e8"><span class="section-number-3">2.5</span> Compare with measurements</h3>
|
<h3 id="org8b67645"><span class="section-number-3">2.5</span> Compare with measurements</h3>
|
||||||
<div class="outline-text-3" id="text-2-5">
|
<div class="outline-text-3" id="text-2-5">
|
||||||
<p>
|
<p>
|
||||||
We now load the Frequency Response Functions measurements during the Modal Analysis (accessible <a href="../../meas/modal-analysis/index.html">here</a>).
|
We now load the Frequency Response Functions measurements during the Modal Analysis (accessible <a href="../../meas/modal-analysis/index.html">here</a>).
|
||||||
@ -738,7 +738,7 @@ We then compare the measurements with the identified transfer functions using th
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
<div id="org6215dd8" class="figure">
|
<div id="org568eba5" class="figure">
|
||||||
<p><img src="figs/identification_comp_bot_stages.png" alt="identification_comp_bot_stages.png" />
|
<p><img src="figs/identification_comp_bot_stages.png" alt="identification_comp_bot_stages.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 1: </span>caption (<a href="./figs/identification_comp_bot_stages.png">png</a>, <a href="./figs/identification_comp_bot_stages.pdf">pdf</a>)</p>
|
<p><span class="figure-number">Figure 1: </span>caption (<a href="./figs/identification_comp_bot_stages.png">png</a>, <a href="./figs/identification_comp_bot_stages.pdf">pdf</a>)</p>
|
||||||
@ -746,7 +746,7 @@ We then compare the measurements with the identified transfer functions using th
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="org3a94e0d" class="figure">
|
<div id="orge5cc23c" class="figure">
|
||||||
<p><img src="figs/identification_comp_mid_stages.png" alt="identification_comp_mid_stages.png" />
|
<p><img src="figs/identification_comp_mid_stages.png" alt="identification_comp_mid_stages.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 2: </span>caption (<a href="./figs/identification_comp_mid_stages.png">png</a>, <a href="./figs/identification_comp_mid_stages.pdf">pdf</a>)</p>
|
<p><span class="figure-number">Figure 2: </span>caption (<a href="./figs/identification_comp_mid_stages.png">png</a>, <a href="./figs/identification_comp_mid_stages.pdf">pdf</a>)</p>
|
||||||
@ -754,7 +754,7 @@ We then compare the measurements with the identified transfer functions using th
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="orgaf6f4aa" class="figure">
|
<div id="org23612c0" class="figure">
|
||||||
<p><img src="figs/identification_comp_top_stages.png" alt="identification_comp_top_stages.png" />
|
<p><img src="figs/identification_comp_top_stages.png" alt="identification_comp_top_stages.png" />
|
||||||
</p>
|
</p>
|
||||||
<p><span class="figure-number">Figure 3: </span>caption (<a href="./figs/identification_comp_top_stages.png">png</a>, <a href="./figs/identification_comp_top_stages.pdf">pdf</a>)</p>
|
<p><span class="figure-number">Figure 3: </span>caption (<a href="./figs/identification_comp_top_stages.png">png</a>, <a href="./figs/identification_comp_top_stages.pdf">pdf</a>)</p>
|
||||||
@ -764,8 +764,8 @@ We then compare the measurements with the identified transfer functions using th
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div id="outline-container-org75fd8be" class="outline-2">
|
<div id="outline-container-org69d2afb" class="outline-2">
|
||||||
<h2 id="org75fd8be"><span class="section-number-2">3</span> Conclusion</h2>
|
<h2 id="org69d2afb"><span class="section-number-2">3</span> Conclusion</h2>
|
||||||
<div class="outline-text-2" id="text-3">
|
<div class="outline-text-2" id="text-3">
|
||||||
<div class="important">
|
<div class="important">
|
||||||
<p>
|
<p>
|
||||||
@ -778,7 +778,7 @@ For such a complex system, we believe that the Simscape Model represents the dyn
|
|||||||
</div>
|
</div>
|
||||||
<div id="postamble" class="status">
|
<div id="postamble" class="status">
|
||||||
<p class="author">Author: Dehaeze Thomas</p>
|
<p class="author">Author: Dehaeze Thomas</p>
|
||||||
<p class="date">Created: 2019-12-13 ven. 15:53</p>
|
<p class="date">Created: 2019-12-13 ven. 16:25</p>
|
||||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
@ -66,14 +66,34 @@ Finally, this should help to tune the parameters of the model such that the dyna
|
|||||||
simulinkproject('../');
|
simulinkproject('../');
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Compute the transfer functions
|
** Simscape Model
|
||||||
We first define some parameters for the identification.
|
|
||||||
The simulink file for the identification is =sim_micro_station_id.slx=.
|
The simulink file for the identification is =sim_micro_station_id.slx=.
|
||||||
|
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
open('identification/matlab/sim_micro_station_id.slx')
|
open('identification/matlab/sim_micro_station_id.slx')
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
We load the configuration and we set a small =StopTime=.
|
||||||
|
#+begin_src matlab
|
||||||
|
load('mat/conf_simscape.mat');
|
||||||
|
set_param(conf_simscape, 'StopTime', '0.5');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
We initialize all the stages.
|
||||||
|
#+begin_src matlab
|
||||||
|
initializeGround();
|
||||||
|
initializeGranite();
|
||||||
|
initializeTy();
|
||||||
|
initializeRy();
|
||||||
|
initializeRz();
|
||||||
|
initializeMicroHexapod();
|
||||||
|
initializeAxisc();
|
||||||
|
initializeMirror();
|
||||||
|
initializeNanoHexapod(struct('actuator', 'piezo'));
|
||||||
|
initializeSample(struct('mass', 50));
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Compute the transfer functions
|
||||||
|
We first define some parameters for the identification.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
%% Options for Linearized
|
%% Options for Linearized
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
@ -132,10 +152,32 @@ save('./mat/id_micro_station.mat', 'G_ms');
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Simscape Model
|
** Simscape Model
|
||||||
|
The simulink file for the analysis is =sim_micro_station_modal_analysis.slx=.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
open('identification/matlab/sim_micro_station_modal_analysis.slx')
|
open('identification/matlab/sim_micro_station_modal_analysis.slx')
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
We load the configuration and we set a small =StopTime=.
|
||||||
|
#+begin_src matlab
|
||||||
|
load('mat/conf_simscape.mat');
|
||||||
|
set_param(conf_simscape, 'StopTime', '0.5');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
We initialize all the stages.
|
||||||
|
#+begin_src matlab
|
||||||
|
initializeGround();
|
||||||
|
initializeGranite();
|
||||||
|
initializeTy();
|
||||||
|
initializeRy();
|
||||||
|
initializeRz();
|
||||||
|
initializeMicroHexapod();
|
||||||
|
initializeAxisc();
|
||||||
|
initializeMirror();
|
||||||
|
initializeNanoHexapod(struct('actuator', 'piezo'));
|
||||||
|
initializeSample(struct('mass', 50));
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
** Identification
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
%% Options for Linearized
|
%% Options for Linearized
|
||||||
options = linearizeOptions;
|
options = linearizeOptions;
|
||||||
@ -231,6 +273,10 @@ Some of the springs and dampers values can be estimated from the joints/stages s
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Prepare the Simulation
|
** Prepare the Simulation
|
||||||
|
#+begin_src matlab
|
||||||
|
open('identification/matlab/sim_micro_station_com.slx')
|
||||||
|
#+end_src
|
||||||
|
|
||||||
We load the configuration.
|
We load the configuration.
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
load('mat/conf_simscape.mat');
|
load('mat/conf_simscape.mat');
|
||||||
@ -256,10 +302,6 @@ We initialize all the stages.
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Estimate the position of the CoM of each solid and compare with the one took for the Measurement Analysis
|
** Estimate the position of the CoM of each solid and compare with the one took for the Measurement Analysis
|
||||||
#+begin_src matlab
|
|
||||||
open('identification/matlab/sim_micro_station_com.slx')
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
Thanks to the [[https://fr.mathworks.com/help/physmod/sm/ref/inertiasensor.html][Inertia Sensor]] simscape block, it is possible to estimate the position of the Center of Mass of a solid body with respect to a defined frame.
|
Thanks to the [[https://fr.mathworks.com/help/physmod/sm/ref/inertiasensor.html][Inertia Sensor]] simscape block, it is possible to estimate the position of the Center of Mass of a solid body with respect to a defined frame.
|
||||||
|
|
||||||
#+begin_src matlab
|
#+begin_src matlab
|
||||||
|