[major-change] start to change the axis of all stages to match id31
The idea is have the world frame the same as the one defined for id31. Also all the actuators should actuate in the positive direction of the axes
This commit is contained in:
parent
7b5f932ece
commit
1125a9b1ea
@ -3,7 +3,7 @@
|
||||
"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-10-08 mar. 11:13 -->
|
||||
<!-- 2019-12-12 jeu. 13:54 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Identification</title>
|
||||
@ -258,16 +258,41 @@ for the JavaScript code in this tag.
|
||||
<h2>Table of Contents</h2>
|
||||
<div id="text-table-of-contents">
|
||||
<ul>
|
||||
<li><a href="#org58012af">1. Identification of the micro-station</a></li>
|
||||
<li><a href="#org79bdd57">2. Plot the obtained transfer functions</a></li>
|
||||
<li><a href="#org8c2b5ae">3. Compare with the modal measurements</a></li>
|
||||
<li><a href="#org77edab0">4. Modal Identification of the micro station</a></li>
|
||||
<li><a href="#org5535be8">1. Identification of the Micro-Station</a>
|
||||
<ul>
|
||||
<li><a href="#orgeb4caf2">1.1. Compute the transfer functions</a></li>
|
||||
<li><a href="#orga6d8893">1.2. Plots the transfer functions</a></li>
|
||||
<li><a href="#org9c2b20b">1.3. Compare with the measurements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org7ebba44">2. Modal Analysis of the Micro-Station</a>
|
||||
<ul>
|
||||
<li><a href="#org144c94f">2.1. Simscape Model</a></li>
|
||||
<li><a href="#org13089bd">2.2. Plot Results</a></li>
|
||||
<li><a href="#orga83a056">2.3. Compare with measurements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#org3c7a9b8">3. Compare with measurements at the CoM of each element</a>
|
||||
<ul>
|
||||
<li><a href="#orga77333e">3.1. Init</a></li>
|
||||
<li><a href="#org528446b">3.2. <span class="todo TODO">TODO</span> Center of Mass of each solid body</a></li>
|
||||
<li><a href="#org0c4a656">3.3. Simscape Model</a></li>
|
||||
<li><a href="#org6a6f29d">3.4. Compare with measurements</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#orga61d09b">4. Other analysis</a>
|
||||
<ul>
|
||||
<li><a href="#orgffb60dd">4.1. Plot the obtained transfer functions</a></li>
|
||||
<li><a href="#org5f9eec6">4.2. Compare with the modal measurements</a></li>
|
||||
<li><a href="#orga829744">4.3. Modal Identification of the micro station</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
The goal here is to make an identification of the micro-station in order to compare the model with the measurements on the real micro-station.
|
||||
The goal here is to make an identification of the <b>micro-station</b> in order to compare the model with the measurements on the real micro-station.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
@ -288,41 +313,462 @@ One solution could be to use one STEP file for one solid body.
|
||||
However, the position of the center of mass can be exported using simulink and then defined on Simscape.
|
||||
</p>
|
||||
|
||||
<div class="note">
|
||||
<div id="outline-container-org5535be8" class="outline-2">
|
||||
<h2 id="org5535be8"><span class="section-number-2">1</span> Identification of the Micro-Station</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
</div>
|
||||
<div id="outline-container-orgeb4caf2" class="outline-3">
|
||||
<h3 id="orgeb4caf2"><span class="section-number-3">1.1</span> Compute the transfer functions</h3>
|
||||
<div class="outline-text-3" id="text-1-1">
|
||||
<p>
|
||||
All the files (data and Matlab scripts) are accessible <a href="data/identification_micro_station.zip">here</a>.
|
||||
We first define some parameters for the identification.
|
||||
The simulink file for the identification is <code>sim_micro_station_id.slx</code>.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org58012af" class="outline-2">
|
||||
<h2 id="org58012af"><span class="section-number-2">1</span> Identification of the micro-station</h2>
|
||||
<div class="outline-text-2" id="text-1">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">simulinkproject<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'../'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<pre class="src src-matlab">open<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'identification/matlab/sim_micro_station_id.slx'</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">open sim_micro_station_id.slx
|
||||
<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>;
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
||||
mdl = <span class="org-string">'sim_micro_station_id'</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">'/Micro-Station/Fm_ext'</span><span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-highlight-numbers-number">1</span>,<span class="org-string">'openinput'</span><span class="org-rainbow-delimiters-depth-1">)</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">'/Micro-Station/Fg_ext'</span><span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-highlight-numbers-number">1</span>,<span class="org-string">'openinput'</span><span class="org-rainbow-delimiters-depth-1">)</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">'/Micro-Station/Dm_inertial'</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>;
|
||||
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">'/Micro-Station/Ty_inertial'</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>;
|
||||
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">'/Micro-Station/Ry_inertial'</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>;
|
||||
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">'/Micro-Station/Dg_inertial'</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>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-comment">% Run the linearization</span>
|
||||
G_ms = 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>;
|
||||
|
||||
<span class="org-comment">% Input/Output names</span>
|
||||
G_ms.InputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Fmx'</span>, <span class="org-string">'Fmy'</span>, <span class="org-string">'Fmz'</span>,...
|
||||
<span class="org-string">'Fgx'</span>, <span class="org-string">'Fgy'</span>, <span class="org-string">'Fgz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
G_ms.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Dmx'</span>, <span class="org-string">'Dmy'</span>, <span class="org-string">'Dmz'</span>, ...
|
||||
<span class="org-string">'Tyx'</span>, <span class="org-string">'Tyy'</span>, <span class="org-string">'Tyz'</span>, ...
|
||||
<span class="org-string">'Ryx'</span>, <span class="org-string">'Ryy'</span>, <span class="org-string">'Ryz'</span>, ...
|
||||
<span class="org-string">'Dgx'</span>, <span class="org-string">'Dgy'</span>, <span class="org-string">'Dgz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-matlab-cellbreak"><span class="org-comment">%% Save the obtained transfer functions</span></span>
|
||||
save<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'./mat/id_micro_station.mat'</span>, <span class="org-string">'G_ms'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org79bdd57" class="outline-2">
|
||||
<h2 id="org79bdd57"><span class="section-number-2">2</span> Plot the obtained transfer functions</h2>
|
||||
|
||||
<div id="outline-container-orga6d8893" class="outline-3">
|
||||
<h3 id="orga6d8893"><span class="section-number-3">1.2</span> Plots the transfer functions</h3>
|
||||
</div>
|
||||
<div id="outline-container-org8c2b5ae" class="outline-2">
|
||||
<h2 id="org8c2b5ae"><span class="section-number-2">3</span> Compare with the modal measurements</h2>
|
||||
|
||||
<div id="outline-container-org9c2b20b" class="outline-3">
|
||||
<h3 id="org9c2b20b"><span class="section-number-3">1.3</span> Compare with the measurements</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="outline-container-org7ebba44" class="outline-2">
|
||||
<h2 id="org7ebba44"><span class="section-number-2">2</span> Modal Analysis of the Micro-Station</h2>
|
||||
<div class="outline-text-2" id="text-2">
|
||||
</div>
|
||||
<div id="outline-container-org144c94f" class="outline-3">
|
||||
<h3 id="org144c94f"><span class="section-number-3">2.1</span> Simscape Model</h3>
|
||||
<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_modal_analysis.slx'</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<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>;
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
||||
mdl = <span class="org-string">'sim_micro_station_modal_analysis'</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">'/Micro-Station/F_hammer'</span><span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-highlight-numbers-number">1</span>,<span class="org-string">'openinput'</span><span class="org-rainbow-delimiters-depth-1">)</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">'/Micro-Station/acc9'</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>;
|
||||
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">'/Micro-Station/acc10'</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>;
|
||||
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">'/Micro-Station/acc11'</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>;
|
||||
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">'/Micro-Station/acc12'</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>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-comment">% Run the linearization</span>
|
||||
G_ms = 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>;
|
||||
|
||||
<span class="org-comment">% Input/Output names</span>
|
||||
G_ms.InputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Fx'</span>, <span class="org-string">'Fy'</span>, <span class="org-string">'Fz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
G_ms.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'x9'</span>, <span class="org-string">'y9'</span>, <span class="org-string">'z9'</span>, ...
|
||||
<span class="org-string">'x10'</span>, <span class="org-string">'y10'</span>, <span class="org-string">'z10'</span>, ...
|
||||
<span class="org-string">'x11'</span>, <span class="org-string">'y11'</span>, <span class="org-string">'z11'</span>, ...
|
||||
<span class="org-string">'x12'</span>, <span class="org-string">'y12'</span>, <span class="org-string">'z12'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org13089bd" class="outline-3">
|
||||
<h3 id="org13089bd"><span class="section-number-3">2.2</span> Plot Results</h3>
|
||||
<div class="outline-text-3" id="text-2-2">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G_ms<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-string">'x9'</span>, <span class="org-string">'Fx'</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale'</span>, <span class="org-string">'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'YScale'</span>, <span class="org-string">'log'</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/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>;
|
||||
hold off;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga83a056" class="outline-3">
|
||||
<h3 id="orga83a056"><span class="section-number-3">2.3</span> Compare with measurements</h3>
|
||||
<div class="outline-text-3" id="text-2-3">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'../meas/modal-analysis/mat/frf_coh_matrices.mat'</span>, <span class="org-string">'FRFs'</span>, <span class="org-string">'COHs'</span>, <span class="org-string">'freqs'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dirs = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'x'</span>, <span class="org-string">'y'</span>, <span class="org-string">'z'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
|
||||
n_acc = <span class="org-highlight-numbers-number">9</span>;
|
||||
n_dir = <span class="org-highlight-numbers-number">1</span>; <span class="org-comment">% x, y, z</span>
|
||||
n_exc = <span class="org-highlight-numbers-number">1</span>; <span class="org-comment">% x, y, z</span>
|
||||
|
||||
<span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>FRFs<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-highlight-numbers-number">3</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-5">(</span>n_acc<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-type">+</span> n_dir, n_exc, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">./</span><span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>freqs<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G_ms<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">[</span>dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span>, num2str<span class="org-rainbow-delimiters-depth-7">(</span>n_acc<span class="org-rainbow-delimiters-depth-7">)</span><span class="org-rainbow-delimiters-depth-6">]</span>, <span class="org-rainbow-delimiters-depth-6">[</span><span class="org-string">'F'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span><span class="org-rainbow-delimiters-depth-5">)</span>, freqs, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale'</span>, <span class="org-string">'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'YScale'</span>, <span class="org-string">'log'</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/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>;
|
||||
hold off;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org3c7a9b8" class="outline-2">
|
||||
<h2 id="org3c7a9b8"><span class="section-number-2">3</span> Compare with measurements at the CoM of each element</h2>
|
||||
<div class="outline-text-2" id="text-3">
|
||||
</div>
|
||||
<div id="outline-container-orga77333e" class="outline-3">
|
||||
<h3 id="orga77333e"><span class="section-number-3">3.1</span> Init</h3>
|
||||
<div class="outline-text-3" id="text-3-1">
|
||||
<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>;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org528446b" class="outline-3">
|
||||
<h3 id="org528446b"><span class="section-number-3">3.2</span> <span class="todo TODO">TODO</span> Center of Mass of each solid body</h3>
|
||||
<div class="outline-text-3" id="text-3-2">
|
||||
<ul class="org-ul">
|
||||
<li class="off"><code>[ ]</code> Verify that this is coherent with the simscape and with the measurements</li>
|
||||
</ul>
|
||||
|
||||
|
||||
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
|
||||
|
||||
|
||||
<colgroup>
|
||||
<col class="org-left" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
|
||||
<col class="org-right" />
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-left"> </th>
|
||||
<th scope="col" class="org-right">granite bot</th>
|
||||
<th scope="col" class="org-right">granite top</th>
|
||||
<th scope="col" class="org-right">ty</th>
|
||||
<th scope="col" class="org-right">ry</th>
|
||||
<th scope="col" class="org-right">rz</th>
|
||||
<th scope="col" class="org-right">hexa</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-left">X [mm]</td>
|
||||
<td class="org-right">45</td>
|
||||
<td class="org-right">52</td>
|
||||
<td class="org-right">0</td>
|
||||
<td class="org-right">0</td>
|
||||
<td class="org-right">0</td>
|
||||
<td class="org-right">-4</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Y [mm]</td>
|
||||
<td class="org-right">144</td>
|
||||
<td class="org-right">258</td>
|
||||
<td class="org-right">14</td>
|
||||
<td class="org-right">-5</td>
|
||||
<td class="org-right">0</td>
|
||||
<td class="org-right">6</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-left">Z [mm]</td>
|
||||
<td class="org-right">-1251</td>
|
||||
<td class="org-right">-778</td>
|
||||
<td class="org-right">-600</td>
|
||||
<td class="org-right">-628</td>
|
||||
<td class="org-right">-580</td>
|
||||
<td class="org-right">-319</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<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_modal_analysis_com.slx'</span><span class="org-rainbow-delimiters-depth-1">)</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org0c4a656" class="outline-3">
|
||||
<h3 id="org0c4a656"><span class="section-number-3">3.3</span> Simscape Model</h3>
|
||||
<div class="outline-text-3" id="text-3-3">
|
||||
<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>;
|
||||
|
||||
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
|
||||
mdl = <span class="org-string">'sim_micro_station_modal_analysis_com'</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">'/Micro-Station/F_hammer'</span><span class="org-rainbow-delimiters-depth-2">]</span>,<span class="org-highlight-numbers-number">1</span>,<span class="org-string">'openinput'</span><span class="org-rainbow-delimiters-depth-1">)</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">'/Micro-Station/acc_gtop'</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>;
|
||||
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">'/Micro-Station/acc_ty'</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>;
|
||||
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">'/Micro-Station/acc_ry'</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>;
|
||||
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">'/Micro-Station/acc_rz'</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>;
|
||||
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">'/Micro-Station/acc_hexa'</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>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab"><span class="org-comment">% Run the linearization</span>
|
||||
G_ms = 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>;
|
||||
|
||||
<span class="org-comment">% Input/Output names</span>
|
||||
G_ms.InputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'Fx'</span>, <span class="org-string">'Fy'</span>, <span class="org-string">'Fz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
G_ms.OutputName = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'gtop_x'</span>, <span class="org-string">'gtop_y'</span>, <span class="org-string">'gtop_z'</span>, <span class="org-string">'gtop_rx'</span>, <span class="org-string">'gtop_ry'</span>, <span class="org-string">'gtop_rz'</span>, ...
|
||||
<span class="org-string">'ty_x'</span>, <span class="org-string">'ty_y'</span>, <span class="org-string">'ty_z'</span>, <span class="org-string">'ty_rx'</span>, <span class="org-string">'ty_ry'</span>, <span class="org-string">'ty_rz'</span>, ...
|
||||
<span class="org-string">'ry_x'</span>, <span class="org-string">'ry_y'</span>, <span class="org-string">'ry_z'</span>, <span class="org-string">'ry_rx'</span>, <span class="org-string">'ry_ry'</span>, <span class="org-string">'ry_rz'</span>, ...
|
||||
<span class="org-string">'rz_x'</span>, <span class="org-string">'rz_y'</span>, <span class="org-string">'rz_z'</span>, <span class="org-string">'rz_rx'</span>, <span class="org-string">'rz_ry'</span>, <span class="org-string">'rz_rz'</span>, ...
|
||||
<span class="org-string">'hexa_x'</span>, <span class="org-string">'hexa_y'</span>, <span class="org-string">'hexa_z'</span>, <span class="org-string">'hexa_rx'</span>, <span class="org-string">'hexa_ry'</span>, <span class="org-string">'hexa_rz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-org6a6f29d" class="outline-3">
|
||||
<h3 id="org6a6f29d"><span class="section-number-3">3.4</span> Compare with measurements</h3>
|
||||
<div class="outline-text-3" id="text-3-4">
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'../meas/modal-analysis/mat/frf_coh_matrices.mat'</span>, <span class="org-string">'freqs'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
load<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'../meas/modal-analysis/mat/frf_com.mat'</span>, <span class="org-string">'FRFs_CoM'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dirs = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'x'</span>, <span class="org-string">'y'</span>, <span class="org-string">'z'</span>, <span class="org-string">'rx'</span>, <span class="org-string">'ry'</span>, <span class="org-string">'rz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
stages = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'gbot'</span>, <span class="org-string">'gtop'</span>, <span class="org-string">'ty'</span>, <span class="org-string">'ry'</span>, <span class="org-string">'rz'</span>, <span class="org-string">'hexa'</span><span class="org-rainbow-delimiters-depth-1">}</span>
|
||||
|
||||
n_stg = <span class="org-highlight-numbers-number">2</span>;
|
||||
n_dir = <span class="org-highlight-numbers-number">5</span>; <span class="org-comment">% x, y, z, Rx, Ry, Rz</span>
|
||||
n_exc = <span class="org-highlight-numbers-number">2</span>; <span class="org-comment">% x, y, z</span>
|
||||
|
||||
f = logspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">0</span>, <span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
<span class="org-type">figure</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>FRFs_CoM<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-highlight-numbers-number">6</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-5">(</span>n_stg<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-type">+</span> n_dir, n_exc, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">./</span><span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>freqs<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G_ms<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">[</span>stages<span class="org-rainbow-delimiters-depth-7">{</span>n_stg<span class="org-rainbow-delimiters-depth-7">}</span>, <span class="org-string">'_'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span>, <span class="org-rainbow-delimiters-depth-6">[</span><span class="org-string">'F'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_exc<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span><span class="org-rainbow-delimiters-depth-5">)</span>, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale'</span>, <span class="org-string">'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'YScale'</span>, <span class="org-string">'log'</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/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>;
|
||||
hold off;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">200</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dirs = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'x'</span>, <span class="org-string">'y'</span>, <span class="org-string">'z'</span>, <span class="org-string">'rx'</span>, <span class="org-string">'ry'</span>, <span class="org-string">'rz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
stages = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'gtop'</span>, <span class="org-string">'ty'</span>, <span class="org-string">'ry'</span>, <span class="org-string">'rz'</span>, <span class="org-string">'hexa'</span><span class="org-rainbow-delimiters-depth-1">}</span>
|
||||
|
||||
f = logspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
<span class="org-type">figure</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">n_stg</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">2</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">n_dir</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">3</span></span>
|
||||
subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">2</span>, <span class="org-rainbow-delimiters-depth-2">(</span>n_dir<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> n_stg<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
title<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-string">'F '</span>, dirs<span class="org-rainbow-delimiters-depth-3">{</span>n_dir<span class="org-rainbow-delimiters-depth-3">}</span>, <span class="org-string">' to '</span>, stages<span class="org-rainbow-delimiters-depth-3">{</span>n_stg<span class="org-rainbow-delimiters-depth-3">}</span>, <span class="org-string">' '</span>, dirs<span class="org-rainbow-delimiters-depth-3">{</span>n_dir<span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>FRFs_CoM<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-highlight-numbers-number">6</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-5">(</span>n_stg<span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-type">+</span> n_dir, n_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">./</span><span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>freqs<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G_ms<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">[</span>stages<span class="org-rainbow-delimiters-depth-7">{</span>n_stg<span class="org-rainbow-delimiters-depth-7">}</span>, <span class="org-string">'_'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span>, <span class="org-rainbow-delimiters-depth-6">[</span><span class="org-string">'F'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span><span class="org-rainbow-delimiters-depth-5">)</span>, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale'</span>, <span class="org-string">'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'YScale'</span>, <span class="org-string">'log'</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/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>;
|
||||
<span class="org-keyword">if</span> n_dir <span class="org-type">==</span> <span class="org-highlight-numbers-number">3</span>
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
hold off;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">10</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">12</span>, <span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org0ac0932" class="figure">
|
||||
<p><img src="figs/identification_comp_bot_stages.png" alt="identification_comp_bot_stages.png" />
|
||||
</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>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dirs = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'x'</span>, <span class="org-string">'y'</span>, <span class="org-string">'z'</span>, <span class="org-string">'rx'</span>, <span class="org-string">'ry'</span>, <span class="org-string">'rz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
stages = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'ry'</span>, <span class="org-string">'rz'</span>, <span class="org-string">'hexa'</span><span class="org-rainbow-delimiters-depth-1">}</span>
|
||||
|
||||
f = logspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
<span class="org-type">figure</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">n_stg</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">2</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">n_dir</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">3</span></span>
|
||||
subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">2</span>, <span class="org-rainbow-delimiters-depth-2">(</span>n_dir<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> n_stg<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
title<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-string">'F '</span>, dirs<span class="org-rainbow-delimiters-depth-3">{</span>n_dir<span class="org-rainbow-delimiters-depth-3">}</span>, <span class="org-string">' to '</span>, stages<span class="org-rainbow-delimiters-depth-3">{</span>n_stg<span class="org-rainbow-delimiters-depth-3">}</span>, <span class="org-string">' '</span>, dirs<span class="org-rainbow-delimiters-depth-3">{</span>n_dir<span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>FRFs_CoM<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-highlight-numbers-number">6</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-5">(</span>n_stg<span class="org-type">+</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-type">+</span> n_dir, n_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">./</span><span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>freqs<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G_ms<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">[</span>stages<span class="org-rainbow-delimiters-depth-7">{</span>n_stg<span class="org-rainbow-delimiters-depth-7">}</span>, <span class="org-string">'_'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span>, <span class="org-rainbow-delimiters-depth-6">[</span><span class="org-string">'F'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span><span class="org-rainbow-delimiters-depth-5">)</span>, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale'</span>, <span class="org-string">'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'YScale'</span>, <span class="org-string">'log'</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/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>;
|
||||
<span class="org-keyword">if</span> n_dir <span class="org-type">==</span> <span class="org-highlight-numbers-number">3</span>
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
hold off;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">10</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">12</span>, <span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="orga6fecd1" class="figure">
|
||||
<p><img src="figs/identification_comp_mid_stages.png" alt="identification_comp_mid_stages.png" />
|
||||
</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>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">dirs = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'x'</span>, <span class="org-string">'y'</span>, <span class="org-string">'z'</span>, <span class="org-string">'rx'</span>, <span class="org-string">'ry'</span>, <span class="org-string">'rz'</span><span class="org-rainbow-delimiters-depth-1">}</span>;
|
||||
stages = <span class="org-rainbow-delimiters-depth-1">{</span><span class="org-string">'hexa'</span><span class="org-rainbow-delimiters-depth-1">}</span>
|
||||
|
||||
f = logspace<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">1</span>, <span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
|
||||
<span class="org-type">figure</span>;
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">n_stg</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span>
|
||||
<span class="org-keyword">for</span> <span class="org-variable-name">n_dir</span> = <span class="org-constant"><span class="org-highlight-numbers-number">1</span></span><span class="org-constant">:</span><span class="org-constant"><span class="org-highlight-numbers-number">3</span></span>
|
||||
subplot<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-highlight-numbers-number">3</span>, <span class="org-highlight-numbers-number">1</span>, <span class="org-rainbow-delimiters-depth-2">(</span>n_dir<span class="org-type">-</span><span class="org-highlight-numbers-number">1</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">*</span><span class="org-highlight-numbers-number">2</span> <span class="org-type">+</span> n_stg<span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
title<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-string">'F '</span>, dirs<span class="org-rainbow-delimiters-depth-3">{</span>n_dir<span class="org-rainbow-delimiters-depth-3">}</span>, <span class="org-string">' to '</span>, stages<span class="org-rainbow-delimiters-depth-3">{</span>n_stg<span class="org-rainbow-delimiters-depth-3">}</span>, <span class="org-string">' '</span>, dirs<span class="org-rainbow-delimiters-depth-3">{</span>n_dir<span class="org-rainbow-delimiters-depth-3">}</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
hold on;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>freqs, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>FRFs_CoM<span class="org-rainbow-delimiters-depth-4">(</span><span class="org-highlight-numbers-number">6</span><span class="org-type">*</span><span class="org-rainbow-delimiters-depth-5">(</span>n_stg<span class="org-type">+</span><span class="org-highlight-numbers-number">4</span><span class="org-rainbow-delimiters-depth-5">)</span> <span class="org-type">+</span> n_dir, n_dir, <span class="org-type">:</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">./</span><span class="org-rainbow-delimiters-depth-2">(</span><span class="org-rainbow-delimiters-depth-3">(</span><span class="org-highlight-numbers-number">2</span><span class="org-type">*</span><span class="org-constant">pi</span><span class="org-type">*</span>freqs<span class="org-rainbow-delimiters-depth-3">)</span><span class="org-type">.^</span><span class="org-highlight-numbers-number">2</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-type">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
plot<span class="org-rainbow-delimiters-depth-1">(</span>f, abs<span class="org-rainbow-delimiters-depth-2">(</span>squeeze<span class="org-rainbow-delimiters-depth-3">(</span>freqresp<span class="org-rainbow-delimiters-depth-4">(</span>G_ms<span class="org-rainbow-delimiters-depth-5">(</span><span class="org-rainbow-delimiters-depth-6">[</span>stages<span class="org-rainbow-delimiters-depth-7">{</span>n_stg<span class="org-rainbow-delimiters-depth-7">}</span>, <span class="org-string">'_'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span>, <span class="org-rainbow-delimiters-depth-6">[</span><span class="org-string">'F'</span>, dirs<span class="org-rainbow-delimiters-depth-7">{</span>n_dir<span class="org-rainbow-delimiters-depth-7">}</span><span class="org-rainbow-delimiters-depth-6">]</span><span class="org-rainbow-delimiters-depth-5">)</span>, f, <span class="org-string">'Hz'</span><span class="org-rainbow-delimiters-depth-4">)</span><span class="org-rainbow-delimiters-depth-3">)</span><span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'XScale'</span>, <span class="org-string">'log'</span><span class="org-rainbow-delimiters-depth-1">)</span>; <span class="org-type">set</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-variable-name">gca</span>, <span class="org-string">'YScale'</span>, <span class="org-string">'log'</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/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>;
|
||||
<span class="org-keyword">if</span> n_dir <span class="org-type">==</span> <span class="org-highlight-numbers-number">3</span>
|
||||
xlabel<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-string">'Frequency </span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">[</span></span><span class="org-string">Hz</span><span class="org-string"><span class="org-rainbow-delimiters-depth-2">]</span></span><span class="org-string">'</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
hold off;
|
||||
xlim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">10</span>, <span class="org-highlight-numbers-number">1000</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
ylim<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-rainbow-delimiters-depth-2">[</span><span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">12</span>, <span class="org-highlight-numbers-number">1e</span><span class="org-type">-</span><span class="org-highlight-numbers-number">6</span><span class="org-rainbow-delimiters-depth-2">]</span><span class="org-rainbow-delimiters-depth-1">)</span>;
|
||||
<span class="org-keyword">end</span>
|
||||
<span class="org-keyword">end</span>
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="org55fa910" class="figure">
|
||||
<p><img src="figs/identification_comp_top_stages.png" alt="identification_comp_top_stages.png" />
|
||||
</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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="outline-container-orga61d09b" class="outline-2">
|
||||
<h2 id="orga61d09b"><span class="section-number-2">4</span> Other analysis</h2>
|
||||
<div class="outline-text-2" id="text-4">
|
||||
</div>
|
||||
<div id="outline-container-orgffb60dd" class="outline-3">
|
||||
<h3 id="orgffb60dd"><span class="section-number-3">4.1</span> Plot the obtained transfer functions</h3>
|
||||
</div>
|
||||
<div id="outline-container-org5f9eec6" class="outline-3">
|
||||
<h3 id="org5f9eec6"><span class="section-number-3">4.2</span> Compare with the modal measurements</h3>
|
||||
</div>
|
||||
<div id="outline-container-orga829744" class="outline-3">
|
||||
<h3 id="orga829744"><span class="section-number-3">4.3</span> Modal Identification of the micro station</h3>
|
||||
</div>
|
||||
<div id="outline-container-org77edab0" class="outline-2">
|
||||
<h2 id="org77edab0"><span class="section-number-2">4</span> Modal Identification of the micro station</h2>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2019-10-08 mar. 11:13</p>
|
||||
<p class="date">Created: 2019-12-12 jeu. 13:54</p>
|
||||
<p class="validation"><a href="http://validator.w3.org/check?uri=referer">Validate</a></p>
|
||||
</div>
|
||||
</body>
|
||||
|
@ -176,12 +176,12 @@ io(5) = linio([mdl, '/Micro-Station/acc12'],1,'output');
|
||||
|
||||
** Plot Results
|
||||
#+begin_src matlab
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(freqresp(G_ms('x9', 'Fx'), freqs, 'Hz'))));
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/N]');
|
||||
hold off;
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs, abs(squeeze(freqresp(G_ms('x9', 'Fx'), freqs, 'Hz'))));
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/N]');
|
||||
hold off;
|
||||
#+end_src
|
||||
|
||||
** Compare with measurements
|
||||
@ -206,6 +206,9 @@ hold off;
|
||||
#+end_src
|
||||
|
||||
* Compare with measurements at the CoM of each element
|
||||
** Introduction :ignore:
|
||||
[[file:../../meas/modal-analysis/index.org][here]]
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
@ -219,6 +222,58 @@ hold off;
|
||||
simulinkproject('../');
|
||||
#+end_src
|
||||
|
||||
** Prepare the Simulation
|
||||
We load the configuration.
|
||||
#+begin_src matlab
|
||||
load('mat/conf_simscape.mat');
|
||||
#+end_src
|
||||
|
||||
We set a small =StopTime=.
|
||||
#+begin_src matlab
|
||||
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
|
||||
|
||||
#+begin_src matlab
|
||||
open('identification/matlab/sim_micro_station_com.slx')
|
||||
#+end_src
|
||||
|
||||
** Estimate the position of the CoM of each solid
|
||||
#+begin_src matlab
|
||||
sim('sim_micro_station_com')
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports results :results value table replace :tangle no :post addhdr(*this*)
|
||||
stages_com = 1e3*[granite_bot_com.Data(end, :) ;
|
||||
granite_top_com.Data(end, :) ;
|
||||
ty_com.Data(end, :) ;
|
||||
ry_com.Data(end, :) ;
|
||||
rz_com.Data(end, :) ;
|
||||
hexa_com.Data(end, :) ]';
|
||||
|
||||
data2orgtable(stages_com, {'X [mm]', 'Y [mm]', 'Z [mm]'}, {'granite bot', 'granite top', 'ty', 'ry', 'rz', 'hexa'}, ' %.1f ');
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
| | granite bot | granite top | ty | ry | rz | hexa |
|
||||
|--------+-------------+-------------+--------+--------+--------+--------|
|
||||
| X [mm] | -52.4 | -51.7 | -0.9 | -0.1 | 0.0 | -0.0 |
|
||||
| Y [mm] | -190.4 | -263.2 | -0.7 | 5.2 | -0.0 | 0.1 |
|
||||
| Z [mm] | -1200.0 | -777.1 | -598.9 | -627.7 | -643.2 | -317.1 |
|
||||
|
||||
** Init
|
||||
#+begin_src matlab :results none
|
||||
initializeGround();
|
||||
|
Binary file not shown.
Binary file not shown.
@ -87,11 +87,6 @@ The goal here is to perfectly move the station and verify that there is no misma
|
||||
#+end_src
|
||||
|
||||
** Prepare the Simulation
|
||||
We load the configuration.
|
||||
#+begin_src matlab
|
||||
load('mat/conf_simscape.mat');
|
||||
#+end_src
|
||||
|
||||
We set a small =StopTime=.
|
||||
#+begin_src matlab
|
||||
set_param(conf_simscape, 'StopTime', '0.5');
|
||||
@ -133,7 +128,7 @@ We setup the reference path to be constant.
|
||||
);
|
||||
|
||||
|
||||
initializeReferences();
|
||||
initializeReferences(opts);
|
||||
#+end_src
|
||||
|
||||
No position error for now (perfect positioning).
|
||||
@ -196,14 +191,14 @@ Or are least:
|
||||
#+begin_example
|
||||
WTr(1:3, 4, end)-WTm(1:3, 4, end)
|
||||
ans =
|
||||
-8.22065745307538e-15
|
||||
-1.74128279577812e-15
|
||||
-8.3754490393689e-16
|
||||
8.53830894875784e-15
|
||||
-5.58580959264532e-15
|
||||
-5.89805981832114e-17
|
||||
WTr(1:3, 1:3, end)'*WTm(1:3, 1:3, end)-eye(3)
|
||||
ans =
|
||||
2.66453525910038e-15 6.12072360433062e-16 2.08519182823275e-16
|
||||
-6.12072360433062e-16 2.66453525910038e-15 3.83905507244395e-16
|
||||
-2.08519182823275e-16 -3.83905507244395e-16 2.66453525910038e-15
|
||||
1.62092561595273e-14 -1.59832000065641e-14 1.11022302462516e-16
|
||||
1.61295672998496e-14 1.62092561595273e-14 -1.72431513512095e-15
|
||||
-1.65492619608187e-15 -9.8879238130678e-16 9.41469124882133e-14
|
||||
#+end_example
|
||||
|
||||
** Conclusion
|
||||
@ -433,8 +428,8 @@ Verify that the pose error is small.
|
||||
|
||||
#+RESULTS:
|
||||
| | Edx [m] | Edy [m] | Edz [m] | Erx [rad] | Ery [rad] | Erz [rad] |
|
||||
|-------+---------+----------+---------+-----------+-----------+-----------|
|
||||
| Error | 1.0e-16 | -1.1e-18 | 3.3e-20 | 1.5e-16 | 5.8e-17 | -6.1e-16 |
|
||||
|-------+---------+---------+---------+-----------+-----------+-----------|
|
||||
| Error | 2.0e-16 | 1.1e-16 | 3.2e-18 | -1.1e-17 | 1.0e-17 | -9.5e-16 |
|
||||
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -72,6 +72,9 @@ The startup script is defined below and is exported to the =project_startup.m= s
|
||||
'CacheFolder', myCacheFolder,...
|
||||
'CodeGenFolder', myCodeFolder,...
|
||||
'createDir', true);
|
||||
|
||||
%% Load the Simscape Configuration
|
||||
load('mat/conf_simscape.mat');
|
||||
#+end_src
|
||||
|
||||
When the project closes, it runs the =project_shutdown.m= script defined below.
|
||||
|
@ -13,3 +13,6 @@ Simulink.fileGenControl('set',...
|
||||
'CacheFolder', myCacheFolder,...
|
||||
'CodeGenFolder', myCodeFolder,...
|
||||
'createDir', true);
|
||||
|
||||
%% Load the Simscape Configuration
|
||||
load('mat/conf_simscape.mat');
|
||||
|
Loading…
Reference in New Issue
Block a user