Update html output
This commit is contained in:
@@ -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>
|
||||
|
Reference in New Issue
Block a user