Use online CSS and JS

This commit is contained in:
2021-02-20 23:09:27 +01:00
parent bd054638b2
commit 36181282b6
37 changed files with 8722 additions and 8640 deletions

View File

@@ -3,53 +3,58 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-09-01 mar. 13:47 -->
<!-- 2021-02-20 sam. 23:08 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Identification</title>
<meta name="generator" content="Org mode" />
<meta name="author" content="Dehaeze Thomas" />
<link rel="stylesheet" type="text/css" href="./css/htmlize.css"/>
<link rel="stylesheet" type="text/css" href="./css/readtheorg.css"/>
<script src="./js/jquery.min.js"></script>
<script src="./js/bootstrap.min.js"></script>
<script src="./js/jquery.stickytableheaders.min.js"></script>
<script src="./js/readtheorg.js"></script>
<script>MathJax = {
tex: {
tags: 'ams',
macros: {bm: ["\\boldsymbol{#1}",1],}
}
};
</script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<link rel="stylesheet" type="text/css" href="https://research.tdehaeze.xyz/css/style.css"/>
<script type="text/javascript" src="https://research.tdehaeze.xyz/js/script.js"></script>
<script>
MathJax = {
svg: {
scale: 1,
fontCache: "global"
},
tex: {
tags: "ams",
multlineWidth: "%MULTLINEWIDTH",
tagSide: "right",
macros: {bm: ["\\boldsymbol{#1}",1],},
tagIndent: ".8em"
}
};
</script>
<script id="MathJax-script" async
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-svg.js"></script>
</head>
<body>
<div id="org-div-home-and-up">
<a accesskey="h" href="./index.html"> UP </a>
|
<a accesskey="H" href="./index.html"> HOME </a>
<a accesskey="H" href="../../index.html"> HOME </a>
</div><div id="content">
<h1 class="title">Identification</h1>
<div id="table-of-contents">
<h2>Table of Contents</h2>
<div id="text-table-of-contents">
<ul>
<li><a href="#org2770d63">1. Some notes about the Simscape Model</a></li>
<li><a href="#org66149fc">2. Compare with measurements at the CoM of each element</a>
<li><a href="#org5582ea0">1. Some notes about the Simscape Model</a></li>
<li><a href="#orgf85a160">2. Compare with measurements at the CoM of each element</a>
<ul>
<li><a href="#orgcfb741d">2.1. Prepare the Simulation</a></li>
<li><a href="#orgec82ba2">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="#org57b3870">2.3. Create a frame at the CoM of each solid body</a></li>
<li><a href="#orgc263d1a">2.4. Identification of the dynamics of the Simscape Model</a></li>
<li><a href="#org0c6ab2b">2.5. Compare with measurements</a></li>
<li><a href="#orge69d679">2.1. Prepare the Simulation</a></li>
<li><a href="#orgb9afb3f">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="#org2138392">2.3. Create a frame at the CoM of each solid body</a></li>
<li><a href="#orgd2f0b7f">2.4. Identification of the dynamics of the Simscape Model</a></li>
<li><a href="#org46896c0">2.5. Compare with measurements</a></li>
</ul>
</li>
<li><a href="#org4704f01">3. Obtained Compliance of the Micro-Station</a>
<li><a href="#org4b5f363">3. Obtained Compliance of the Micro-Station</a>
<ul>
<li><a href="#orge0c91d3">3.1. Initialization</a></li>
<li><a href="#org177dd40">3.1. Initialization</a></li>
</ul>
</li>
<li><a href="#orga1de7a7">4. Conclusion</a></li>
<li><a href="#orgba8bb2d">4. Conclusion</a></li>
</ul>
</div>
</div>
@@ -70,8 +75,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.
</p>
<div id="outline-container-org2770d63" class="outline-2">
<h2 id="org2770d63"><span class="section-number-2">1</span> Some notes about the Simscape Model</h2>
<div id="outline-container-org5582ea0" class="outline-2">
<h2 id="org5582ea0"><span class="section-number-2">1</span> Some notes about the Simscape Model</h2>
<div class="outline-text-2" id="text-1">
<p>
The Simscape Model of the micro-station consists of several solid bodies:
@@ -97,18 +102,18 @@ Some of the springs and dampers values can be estimated from the joints/stages s
</div>
</div>
<div id="outline-container-org66149fc" class="outline-2">
<h2 id="org66149fc"><span class="section-number-2">2</span> Compare with measurements at the CoM of each element</h2>
<div id="outline-container-orgf85a160" class="outline-2">
<h2 id="orgf85a160"><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>
<div id="outline-container-orgcfb741d" class="outline-3">
<h3 id="orgcfb741d"><span class="section-number-3">2.1</span> Prepare the Simulation</h3>
<div id="outline-container-orge69d679" class="outline-3">
<h3 id="orge69d679"><span class="section-number-3">2.1</span> Prepare the Simulation</h3>
<div class="outline-text-3" id="text-2-1">
<p>
We load the configuration.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load('mat/conf_simulink.mat');
<pre class="src src-matlab"> load(<span class="org-string">'mat/conf_simulink.mat'</span>);
</pre>
</div>
@@ -116,7 +121,7 @@ We load the configuration.
We set a small <code>StopTime</code>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">set_param(conf_simulink, 'StopTime', '0.5');
<pre class="src src-matlab"> <span class="org-matlab-simulink-keyword">set_param</span>(<span class="org-variable-name">conf_simulink</span>, <span class="org-string">'StopTime'</span>, <span class="org-string">'0.5'</span>);
</pre>
</div>
@@ -124,46 +129,46 @@ We set a small <code>StopTime</code>.
We initialize all the stages.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeGround( 'type', 'rigid');
initializeGranite( 'type', 'modal-analysis');
initializeTy( 'type', 'modal-analysis');
initializeRy( 'type', 'modal-analysis');
initializeRz( 'type', 'modal-analysis');
initializeMicroHexapod('type', 'modal-analysis');
initializeAxisc( 'type', 'flexible');
<pre class="src src-matlab"> initializeGround( <span class="org-string">'type'</span>, <span class="org-string">'rigid'</span>);
initializeGranite( <span class="org-string">'type'</span>, <span class="org-string">'modal-analysis'</span>);
initializeTy( <span class="org-string">'type'</span>, <span class="org-string">'modal-analysis'</span>);
initializeRy( <span class="org-string">'type'</span>, <span class="org-string">'modal-analysis'</span>);
initializeRz( <span class="org-string">'type'</span>, <span class="org-string">'modal-analysis'</span>);
initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-string">'modal-analysis'</span>);
initializeAxisc( <span class="org-string">'type'</span>, <span class="org-string">'flexible'</span>);
initializeMirror( 'type', 'none');
initializeNanoHexapod( 'type', 'none');
initializeSample( 'type', 'none');
initializeMirror( <span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
initializeNanoHexapod( <span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
initializeSample( <span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
initializeController( 'type', 'open-loop');
initializeController( <span class="org-string">'type'</span>, <span class="org-string">'open-loop'</span>);
initializeLoggingConfiguration('log', 'none');
initializeLoggingConfiguration(<span class="org-string">'log'</span>, <span class="org-string">'none'</span>);
initializeReferences();
initializeDisturbances('enable', false);
initializeReferences();
initializeDisturbances(<span class="org-string">'enable'</span>, <span class="org-constant">false</span>);
</pre>
</div>
</div>
</div>
<div id="outline-container-orgec82ba2" class="outline-3">
<h3 id="orgec82ba2"><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 id="outline-container-orgb9afb3f" class="outline-3">
<h3 id="orgb9afb3f"><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">
<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.
</p>
<div class="org-src-container">
<pre class="src src-matlab">sim('nass_model')
<pre class="src src-matlab"> <span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>)
</pre>
</div>
<p>
The results are shown in the table <a href="#org0a81dc1">1</a>.
The results are shown in the table <a href="#orge10376e">1</a>.
</p>
<table id="org0a81dc1" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orge10376e" 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>
<colgroup>
@@ -226,10 +231,10 @@ The results are shown in the table <a href="#org0a81dc1">1</a>.
</table>
<p>
We can compare the obtained center of mass (table <a href="#org0a81dc1">1</a>) with the one used for the Modal Analysis shown in table <a href="#orgc7b8d3c">2</a>.
We can compare the obtained center of mass (table <a href="#orge10376e">1</a>) with the one used for the Modal Analysis shown in table <a href="#orga804fe7">2</a>.
</p>
<table id="orgc7b8d3c" border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
<table id="orga804fe7" 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>
<colgroup>
@@ -303,8 +308,8 @@ However, in SolidWorks, this has probably not be included with the top granite.
</div>
</div>
<div id="outline-container-org57b3870" class="outline-3">
<h3 id="org57b3870"><span class="section-number-3">2.3</span> Create a frame at the CoM of each solid body</h3>
<div id="outline-container-org2138392" class="outline-3">
<h3 id="org2138392"><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">
<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.
@@ -315,12 +320,12 @@ We do that in order to position an accelerometer on the Simscape model at this p
</p>
<div class="org-src-container">
<pre class="src src-matlab">open('identification/matlab/sim_micro_station_com_estimation.slx')
<pre class="src src-matlab"> open(<span class="org-string">'identification/matlab/sim_micro_station_com_estimation.slx'</span>)
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">sim('sim_micro_station_com_estimation')
<pre class="src src-matlab"> <span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'sim_micro_station_com_estimation'</span>)
</pre>
</div>
@@ -390,14 +395,14 @@ We do that in order to position an accelerometer on the Simscape model at this p
We now same this for further use:
</p>
<div class="org-src-container">
<pre class="src src-matlab">granite_bot_com = granite_bot_com.Data(end, :)';
granite_top_com = granite_top_com.Data(end, :)';
ty_com = ty_com.Data(end, :)';
ry_com = ry_com.Data(end, :)';
rz_com = rz_com.Data(end, :)';
hexa_com = hexa_com.Data(end, :)';
<pre class="src src-matlab"> granite_bot_com = granite_bot_com.Data(end, <span class="org-type">:</span>)<span class="org-type">'</span>;
granite_top_com = granite_top_com.Data(end, <span class="org-type">:</span>)<span class="org-type">'</span>;
ty_com = ty_com.Data(end, <span class="org-type">:</span>)<span class="org-type">'</span>;
ry_com = ry_com.Data(end, <span class="org-type">:</span>)<span class="org-type">'</span>;
rz_com = rz_com.Data(end, <span class="org-type">:</span>)<span class="org-type">'</span>;
hexa_com = hexa_com.Data(end, <span class="org-type">:</span>)<span class="org-type">'</span>;
save('./mat/solids_com.mat', 'granite_bot_com', 'granite_top_com', 'ty_com', 'ry_com', 'rz_com', 'hexa_com');
save(<span class="org-string">'./mat/solids_com.mat'</span>, <span class="org-string">'granite_bot_com'</span>, <span class="org-string">'granite_top_com'</span>, <span class="org-string">'ty_com'</span>, <span class="org-string">'ry_com'</span>, <span class="org-string">'rz_com'</span>, <span class="org-string">'hexa_com'</span>);
</pre>
</div>
@@ -407,20 +412,20 @@ Then, we use the obtained results to add a <code>rigidTransform</code> block in
</div>
</div>
<div id="outline-container-orgc263d1a" class="outline-3">
<h3 id="orgc263d1a"><span class="section-number-3">2.4</span> Identification of the dynamics of the Simscape Model</h3>
<div id="outline-container-orgd2f0b7f" class="outline-3">
<h3 id="orgd2f0b7f"><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">
<p>
We now use a new Simscape Model where 6DoF inertial sensors are located at the Center of Mass of each solid body.
</p>
<div class="org-src-container">
<pre class="src src-matlab">% load('mat/solids_com.mat', 'granite_bot_com', 'granite_top_com', 'ty_com', 'ry_com', 'rz_com', 'hexa_com');
<pre class="src src-matlab"> <span class="org-comment">% load('mat/solids_com.mat', 'granite_bot_com', 'granite_top_com', 'ty_com', 'ry_com', 'rz_com', 'hexa_com');</span>
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">open('nass_model.slx')
<pre class="src src-matlab"> open(<span class="org-string">'nass_model.slx'</span>)
</pre>
</div>
@@ -428,35 +433,35 @@ We now use a new Simscape Model where 6DoF inertial sensors are located at the C
We use the <code>linearize</code> function in order to estimate the dynamics from forces applied on the Translation stage at the same position used for the real modal analysis to the inertial sensors.
</p>
<div class="org-src-container">
<pre class="src src-matlab">%% Options for Linearized
options = linearizeOptions;
options.SampleTime = 0;
<pre class="src src-matlab"> <span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
options = linearizeOptions;
options.SampleTime = 0;
%% Name of the Simulink File
mdl = 'nass_model';
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
mdl = <span class="org-string">'nass_model'</span>;
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/Micro-Station/Translation Stage/Modal Analysis/F_hammer'], 1, 'openinput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/Micro-Station/Granite/Modal Analysis/accelerometer'], 1, 'openoutput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/Micro-Station/Translation Stage/Modal Analysis/accelerometer'], 1, 'openoutput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/Micro-Station/Tilt Stage/Modal Analysis/accelerometer'], 1, 'openoutput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/Micro-Station/Spindle/Modal Analysis/accelerometer'], 1, 'openoutput'); io_i = io_i + 1;
io(io_i) = linio([mdl, '/Micro-Station/Micro Hexapod/Modal Analysis/accelerometer'], 1, 'openoutput'); io_i = io_i + 1;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
clear io; io_i = 1;
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Translation Stage/Modal Analysis/F_hammer'</span>], 1, <span class="org-string">'openinput'</span>); io_i = io_i <span class="org-type">+</span> 1;
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Granite/Modal Analysis/accelerometer'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1;
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Translation Stage/Modal Analysis/accelerometer'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1;
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Tilt Stage/Modal Analysis/accelerometer'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1;
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Spindle/Modal Analysis/accelerometer'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1;
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Micro Hexapod/Modal Analysis/accelerometer'</span>], 1, <span class="org-string">'openoutput'</span>); io_i = io_i <span class="org-type">+</span> 1;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">% Run the linearization
G_ms = linearize(mdl, io, 0);
<pre class="src src-matlab"> <span class="org-comment">% Run the linearization</span>
G_ms = linearize(mdl, io, 0);
%% Input/Output definition
G_ms.InputName = {'Fx', 'Fy', 'Fz'};
G_ms.OutputName = {'gtop_x', 'gtop_y', 'gtop_z', 'gtop_rx', 'gtop_ry', 'gtop_rz', ...
'ty_x', 'ty_y', 'ty_z', 'ty_rx', 'ty_ry', 'ty_rz', ...
'ry_x', 'ry_y', 'ry_z', 'ry_rx', 'ry_ry', 'ry_rz', ...
'rz_x', 'rz_y', 'rz_z', 'rz_rx', 'rz_ry', 'rz_rz', ...
'hexa_x', 'hexa_y', 'hexa_z', 'hexa_rx', 'hexa_ry', 'hexa_rz'};
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
G_ms.InputName = {<span class="org-string">'Fx'</span>, <span class="org-string">'Fy'</span>, <span class="org-string">'Fz'</span>};
G_ms.OutputName = {<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>};
</pre>
</div>
@@ -465,22 +470,22 @@ The output of <code>G_ms</code> is the acceleration of each solid body.
In order to obtain a displacement, we divide the obtained transfer function by \(1/s^{2}\);
</p>
<div class="org-src-container">
<pre class="src src-matlab">G_ms = G_ms/s^2;
<pre class="src src-matlab"> G_ms = G_ms<span class="org-type">/</span>s<span class="org-type">^</span>2;
</pre>
</div>
</div>
</div>
<div id="outline-container-org0c6ab2b" class="outline-3">
<h3 id="org0c6ab2b"><span class="section-number-3">2.5</span> Compare with measurements</h3>
<div id="outline-container-org46896c0" class="outline-3">
<h3 id="org46896c0"><span class="section-number-3">2.5</span> Compare with measurements</h3>
<div class="outline-text-3" id="text-2-5">
<p>
We now load the Frequency Response Functions measurements during the Modal Analysis (accessible <a href="../../meas/modal-analysis/index.html">here</a>).
</p>
<div class="org-src-container">
<pre class="src src-matlab">load('../meas/modal-analysis/mat/frf_coh_matrices.mat', 'freqs');
load('../meas/modal-analysis/mat/frf_com.mat', 'FRFs_CoM');
<pre class="src src-matlab"> load(<span class="org-string">'../meas/modal-analysis/mat/frf_coh_matrices.mat'</span>, <span class="org-string">'freqs'</span>);
load(<span class="org-string">'../meas/modal-analysis/mat/frf_com.mat'</span>, <span class="org-string">'FRFs_CoM'</span>);
</pre>
</div>
@@ -489,7 +494,7 @@ We then compare the measurements with the identified transfer functions using th
</p>
<div id="org8f7c1f8" class="figure">
<div id="orge644ea5" 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>
@@ -497,7 +502,7 @@ We then compare the measurements with the identified transfer functions using th
<div id="org6d3c678" class="figure">
<div id="org4cb8073" 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>
@@ -505,7 +510,7 @@ We then compare the measurements with the identified transfer functions using th
<div id="org15ca78e" class="figure">
<div id="orgd70d4de" 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>
@@ -515,23 +520,23 @@ We then compare the measurements with the identified transfer functions using th
</div>
<div id="outline-container-org4704f01" class="outline-2">
<h2 id="org4704f01"><span class="section-number-2">3</span> Obtained Compliance of the Micro-Station</h2>
<div id="outline-container-org4b5f363" class="outline-2">
<h2 id="org4b5f363"><span class="section-number-2">3</span> Obtained Compliance of the Micro-Station</h2>
<div class="outline-text-2" id="text-3">
</div>
<div id="outline-container-orge0c91d3" class="outline-3">
<h3 id="orge0c91d3"><span class="section-number-3">3.1</span> Initialization</h3>
<div id="outline-container-org177dd40" class="outline-3">
<h3 id="org177dd40"><span class="section-number-3">3.1</span> Initialization</h3>
<div class="outline-text-3" id="text-3-1">
<p>
We initialize all the stages with the default parameters.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod('type', 'compliance');
<pre class="src src-matlab"> initializeGround();
initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-string">'compliance'</span>);
</pre>
</div>
@@ -539,19 +544,19 @@ initializeMicroHexapod('type', 'compliance');
We put nothing on top of the micro-hexapod.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeAxisc('type', 'none');
initializeMirror('type', 'none');
initializeNanoHexapod('type', 'none');
initializeSample('type', 'none');
<pre class="src src-matlab"> initializeAxisc(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
initializeMirror(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
initializeNanoHexapod(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
initializeSample(<span class="org-string">'type'</span>, <span class="org-string">'none'</span>);
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">initializeReferences();
initializeDisturbances();
initializeController();
initializeSimscapeConfiguration();
initializeLoggingConfiguration();
<pre class="src src-matlab"> initializeReferences();
initializeDisturbances();
initializeController();
initializeSimscapeConfiguration();
initializeLoggingConfiguration();
</pre>
</div>
@@ -560,31 +565,31 @@ And we identify the dynamics from forces/torques applied on the micro-hexapod to
</p>
<p>
The obtained compliance is shown in Figure <a href="#org67dfd1a">4</a>.
The obtained compliance is shown in Figure <a href="#org7ed55d1">4</a>.
</p>
<div class="org-src-container">
<pre class="src src-matlab">%% Name of the Simulink File
mdl = 'nass_model';
<pre class="src src-matlab"> <span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
mdl = <span class="org-string">'nass_model'</span>;
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/Micro-Station/Micro Hexapod/Compliance/Fm'], 1, 'openinput'); io_i = io_i + 1; % Direct Forces/Torques applied on the micro-hexapod top platform
io(io_i) = linio([mdl, '/Micro-Station/Micro Hexapod/Compliance/Dm'], 1, 'output'); io_i = io_i + 1; % Absolute displacement of the top platform
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
clear io; io_i = 1;
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Micro Hexapod/Compliance/Fm'</span>], 1, <span class="org-string">'openinput'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Direct Forces/Torques applied on the micro-hexapod top platform</span>
io(io_i) = linio([mdl, <span class="org-string">'/Micro-Station/Micro Hexapod/Compliance/Dm'</span>], 1, <span class="org-string">'output'</span>); io_i = io_i <span class="org-type">+</span> 1; <span class="org-comment">% Absolute displacement of the top platform</span>
%% Run the linearization
Gm = linearize(mdl, io, 0);
Gm.InputName = {'Fmx', 'Fmy', 'Fmz', 'Mmx', 'Mmy', 'Mmz'};
Gm.OutputName = {'Dx', 'Dy', 'Dz', 'Drx', 'Dry', 'Drz'};
<span class="org-matlab-cellbreak"><span class="org-comment">%% Run the linearization</span></span>
Gm = linearize(mdl, io, 0);
Gm.InputName = {<span class="org-string">'Fmx'</span>, <span class="org-string">'Fmy'</span>, <span class="org-string">'Fmz'</span>, <span class="org-string">'Mmx'</span>, <span class="org-string">'Mmy'</span>, <span class="org-string">'Mmz'</span>};
Gm.OutputName = {<span class="org-string">'Dx'</span>, <span class="org-string">'Dy'</span>, <span class="org-string">'Dz'</span>, <span class="org-string">'Drx'</span>, <span class="org-string">'Dry'</span>, <span class="org-string">'Drz'</span>};
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">save('../meas/micro-station-compliance/mat/model.mat', 'Gm');
<pre class="src src-matlab"> save(<span class="org-string">'../meas/micro-station-compliance/mat/model.mat'</span>, <span class="org-string">'Gm'</span>);
</pre>
</div>
<div id="org67dfd1a" class="figure">
<div id="org7ed55d1" class="figure">
<p><img src="figs/compliance_micro_station.png" alt="compliance_micro_station.png" />
</p>
<p><span class="figure-number">Figure 4: </span>Obtained compliance of the Micro-Station (<a href="./figs/compliance_micro_station.png">png</a>, <a href="./figs/compliance_micro_station.pdf">pdf</a>)</p>
@@ -593,10 +598,10 @@ Gm.OutputName = {'Dx', 'Dy', 'Dz', 'Drx', 'Dry', 'Drz'};
</div>
</div>
<div id="outline-container-orga1de7a7" class="outline-2">
<h2 id="orga1de7a7"><span class="section-number-2">4</span> Conclusion</h2>
<div id="outline-container-orgba8bb2d" class="outline-2">
<h2 id="orgba8bb2d"><span class="section-number-2">4</span> Conclusion</h2>
<div class="outline-text-2" id="text-4">
<div class="important">
<div class="important" id="orgcfecb2d">
<p>
For such a complex system, we believe that the Simscape Model represents the dynamics of the system with enough fidelity.
</p>
@@ -607,7 +612,7 @@ For such a complex system, we believe that the Simscape Model represents the dyn
</div>
<div id="postamble" class="status">
<p class="author">Author: Dehaeze Thomas</p>
<p class="date">Created: 2020-09-01 mar. 13:47</p>
<p class="date">Created: 2021-02-20 sam. 23:08</p>
</div>
</body>
</html>