Update html output

This commit is contained in:
2020-09-01 13:51:37 +02:00
parent 2389e6ba8e
commit 184c755fb8
15 changed files with 1326 additions and 872 deletions

View File

@@ -1,10 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2020-04-17 ven. 09:35 -->
<!-- 2020-09-01 mar. 13:47 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Identification</title>
<meta name="generator" content="Org mode" />
@@ -109,7 +108,7 @@ Some of the springs and dampers values can be estimated from the joints/stages s
We load the configuration.
</p>
<div class="org-src-container">
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
<pre class="src src-matlab">load('mat/conf_simulink.mat');
</pre>
</div>
@@ -117,7 +116,7 @@ We load the configuration.
We set a small <code>StopTime</code>.
</p>
<div class="org-src-container">
<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 class="src src-matlab">set_param(conf_simulink, 'StopTime', '0.5');
</pre>
</div>
@@ -125,24 +124,24 @@ We set a small <code>StopTime</code>.
We initialize all the stages.
</p>
<div class="org-src-container">
<pre class="src src-matlab">initializeGround( <span class="org-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>);
<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');
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>);
initializeMirror( 'type', 'none');
initializeNanoHexapod( 'type', 'none');
initializeSample( 'type', 'none');
initializeController( <span class="org-string">'type'</span>, <span class="org-string">'open-loop'</span>);
initializeController( 'type', 'open-loop');
initializeLoggingConfiguration(<span class="org-string">'log'</span>, <span class="org-string">'none'</span>);
initializeLoggingConfiguration('log', 'none');
initializeReferences();
initializeDisturbances(<span class="org-string">'enable'</span>, <span class="org-constant">false</span>);
initializeDisturbances('enable', false);
</pre>
</div>
</div>
@@ -156,7 +155,7 @@ Thanks to the <a href="https://fr.mathworks.com/help/physmod/sm/ref/inertiasenso
</p>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>)
<pre class="src src-matlab">sim('nass_model')
</pre>
</div>
@@ -316,12 +315,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(<span class="org-string">'identification/matlab/sim_micro_station_com_estimation.slx'</span>)
<pre class="src src-matlab">open('identification/matlab/sim_micro_station_com_estimation.slx')
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'sim_micro_station_com_estimation'</span>)
<pre class="src src-matlab">sim('sim_micro_station_com_estimation')
</pre>
</div>
@@ -391,14 +390,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, <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>;
<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, :)';
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>);
save('./mat/solids_com.mat', 'granite_bot_com', 'granite_top_com', 'ty_com', 'ry_com', 'rz_com', 'hexa_com');
</pre>
</div>
@@ -416,12 +415,12 @@ We now use a new Simscape Model where 6DoF inertial sensors are located at the C
</p>
<div class="org-src-container">
<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 class="src src-matlab">% load('mat/solids_com.mat', 'granite_bot_com', 'granite_top_com', 'ty_com', 'ry_com', 'rz_com', 'hexa_com');
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">open(<span class="org-string">'nass_model.slx'</span>)
<pre class="src src-matlab">open('nass_model.slx')
</pre>
</div>
@@ -429,35 +428,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"><span class="org-matlab-cellbreak"><span class="org-comment">%% Options for Linearized</span></span>
<pre class="src src-matlab">%% Options for Linearized
options = linearizeOptions;
options.SampleTime = 0;
<span class="org-matlab-cellbreak"><span class="org-comment">%% Name of the Simulink File</span></span>
mdl = <span class="org-string">'nass_model'</span>;
%% Name of the Simulink File
mdl = 'nass_model';
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
%% Input/Output definition
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;
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;
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab"><span class="org-comment">% Run the linearization</span>
<pre class="src src-matlab">% Run the linearization
G_ms = linearize(mdl, io, 0);
<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>};
%% 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'};
</pre>
</div>
@@ -466,7 +465,7 @@ 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<span class="org-type">/</span>s<span class="org-type">^</span>2;
<pre class="src src-matlab">G_ms = G_ms/s^2;
</pre>
</div>
</div>
@@ -480,8 +479,8 @@ We now load the Frequency Response Functions measurements during the Modal Analy
</p>
<div class="org-src-container">
<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 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>
</div>
@@ -532,7 +531,7 @@ initializeGranite();
initializeTy();
initializeRy();
initializeRz();
initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-string">'compliance'</span>);
initializeMicroHexapod('type', 'compliance');
</pre>
</div>
@@ -540,10 +539,10 @@ initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-
We put nothing on top of the micro-hexapod.
</p>
<div class="org-src-container">
<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 class="src src-matlab">initializeAxisc('type', 'none');
initializeMirror('type', 'none');
initializeNanoHexapod('type', 'none');
initializeSample('type', 'none');
</pre>
</div>
@@ -564,18 +563,23 @@ And we identify the dynamics from forces/torques applied on the micro-hexapod to
The obtained compliance is shown in Figure <a href="#org67dfd1a">4</a>.
</p>
<div class="org-src-container">
<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>;
<pre class="src src-matlab">%% Name of the Simulink File
mdl = 'nass_model';
<span class="org-matlab-cellbreak"><span class="org-comment">%% Input/Output definition</span></span>
%% Input/Output definition
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>
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">%% Run the linearization</span></span>
%% Run the linearization
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>};
Gm.InputName = {'Fmx', 'Fmy', 'Fmz', 'Mmx', 'Mmy', 'Mmz'};
Gm.OutputName = {'Dx', 'Dy', 'Dz', 'Drx', 'Dry', 'Drz'};
</pre>
</div>
<div class="org-src-container">
<pre class="src src-matlab">save('../meas/micro-station-compliance/mat/model.mat', 'Gm');
</pre>
</div>
@@ -603,7 +607,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-04-17 ven. 09:35</p>
<p class="date">Created: 2020-09-01 mar. 13:47</p>
</div>
</body>
</html>