Update html pages
This commit is contained in:
@@ -1,11 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?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-01 mer. 16:14 -->
|
||||
<!-- 2020-04-05 dim. 19:43 -->
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Compensating the gravity forces to start at steady state</title>
|
||||
@@ -270,9 +269,9 @@ In order to start the simulation at steady state in presence of gravity:
|
||||
We don’t inject any perturbations and no reference tracking.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">initializeReferences();
|
||||
initializeDisturbances(<span class="org-string">'enable'</span>, <span class="org-constant">false</span>);
|
||||
initializeController();
|
||||
<pre class="src src-matlab"> initializeReferences();
|
||||
initializeDisturbances(<span class="org-string">'enable'</span>, <span class="org-constant">false</span>);
|
||||
initializeController();
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -280,8 +279,8 @@ initializeController();
|
||||
We include the gravity and log all the signals to display.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">initializeSimscapeConfiguration(<span class="org-string">'gravity'</span>, <span class="org-constant">true</span>);
|
||||
initializeLoggingConfiguration(<span class="org-string">'log'</span>, <span class="org-string">'all'</span>);
|
||||
<pre class="src src-matlab"> initializeSimscapeConfiguration(<span class="org-string">'gravity'</span>, <span class="org-constant">true</span>);
|
||||
initializeLoggingConfiguration(<span class="org-string">'log'</span>, <span class="org-string">'all'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
@@ -296,28 +295,28 @@ Let’s simulate the system without any compensation of gravity forces.
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">initializeGround();
|
||||
initializeGranite();
|
||||
initializeTy();
|
||||
initializeRy();
|
||||
initializeRz();
|
||||
initializeMicroHexapod();
|
||||
initializeAxisc();
|
||||
initializeMirror();
|
||||
initializeNanoHexapod();
|
||||
initializeSample();
|
||||
<pre class="src src-matlab"> initializeGround();
|
||||
initializeGranite();
|
||||
initializeTy();
|
||||
initializeRy();
|
||||
initializeRz();
|
||||
initializeMicroHexapod();
|
||||
initializeAxisc();
|
||||
initializeMirror();
|
||||
initializeNanoHexapod();
|
||||
initializeSample();
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||
<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"> load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||
<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>
|
||||
|
||||
<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>);
|
||||
sim_no_compensation = simout;
|
||||
<pre class="src src-matlab"> <span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
|
||||
sim_no_compensation = simout;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -342,16 +341,16 @@ We here wish to simulate the system in order to compute the required force in ea
|
||||
</p>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">initializeGround();
|
||||
initializeGranite(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeTy(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeRy(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeRz(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeAxisc();
|
||||
initializeMirror();
|
||||
initializeNanoHexapod(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeSample(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
<pre class="src src-matlab"> initializeGround();
|
||||
initializeGranite(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeTy(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeRy(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeRz(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeMicroHexapod(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeAxisc();
|
||||
initializeMirror();
|
||||
initializeNanoHexapod(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
initializeSample(<span class="org-string">'type'</span>, <span class="org-string">'init'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -359,13 +358,13 @@ initializeSample(<span class="org-string">'type'</span>, <span class="org-string
|
||||
We simulate for a short time period (all the bodies are solid, so nothing should move).
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||
<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.1'</span>);
|
||||
<pre class="src src-matlab"> load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||
<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.1'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
<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"> <span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -373,7 +372,7 @@ We simulate for a short time period (all the bodies are solid, so nothing should
|
||||
Verification that nothing is moving by looking at the maximum displacement of the sample:
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">max(max(simout.Em.En.Data))
|
||||
<pre class="src src-matlab"> max(max(simout.Em.En.Data))
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -386,7 +385,7 @@ Verification that nothing is moving by looking at the maximum displacement of th
|
||||
We here show the measured total force/torque applied at the location of each joint.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">data2orgtable([Fgm 0 0 0; Ftym; Fym; Fsm], {<span class="org-string">'Granite'</span>, <span class="org-string">'Translation Stage'</span>, <span class="org-string">'Tilt Stage'</span>, <span class="org-string">'Sample'</span>}, {<span class="org-string">'Fx'</span>, <span class="org-string">'Fy'</span>, <span class="org-string">'Fz'</span>, <span class="org-string">'Mx'</span>, <span class="org-string">'My'</span>, <span class="org-string">'Mz'</span>}, <span class="org-string">' %.1e '</span>);
|
||||
<pre class="src src-matlab"> data2orgtable([Fgm 0 0 0; Ftym; Fym; Fsm], {<span class="org-string">'Granite'</span>, <span class="org-string">'Translation Stage'</span>, <span class="org-string">'Tilt Stage'</span>, <span class="org-string">'Sample'</span>}, {<span class="org-string">'Fx'</span>, <span class="org-string">'Fy'</span>, <span class="org-string">'Fz'</span>, <span class="org-string">'Mx'</span>, <span class="org-string">'My'</span>, <span class="org-string">'Mz'</span>}, <span class="org-string">' %.1e '</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -463,7 +462,7 @@ We here show the measured total force/torque applied at the location of each joi
|
||||
</table>
|
||||
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">data2orgtable([Fhm; Fnm], {<span class="org-string">'Micro-Hexapod'</span>, <span class="org-string">'Nano-Hexapod'</span>}, {<span class="org-string">'F1'</span>, <span class="org-string">'F2'</span>, <span class="org-string">'F3'</span>, <span class="org-string">'F4'</span>, <span class="org-string">'F5'</span>, <span class="org-string">'F6'</span>}, <span class="org-string">' %.1e '</span>);
|
||||
<pre class="src src-matlab"> data2orgtable([Fhm; Fnm], {<span class="org-string">'Micro-Hexapod'</span>, <span class="org-string">'Nano-Hexapod'</span>}, {<span class="org-string">'F1'</span>, <span class="org-string">'F2'</span>, <span class="org-string">'F3'</span>, <span class="org-string">'F4'</span>, <span class="org-string">'F5'</span>, <span class="org-string">'F6'</span>}, <span class="org-string">' %.1e '</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -523,7 +522,7 @@ We here show the measured total force/torque applied at the location of each joi
|
||||
We save these forces in <code>Foffset.mat</code>.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">save(<span class="org-string">'mat/Foffset.mat'</span>, <span class="org-string">'Fgm'</span>, <span class="org-string">'Ftym'</span>, <span class="org-string">'Fym'</span>, <span class="org-string">'Fzm'</span>, <span class="org-string">'Fhm'</span>, <span class="org-string">'Fnm'</span>, <span class="org-string">'Fsm'</span>);
|
||||
<pre class="src src-matlab"> save(<span class="org-string">'mat/Foffset.mat'</span>, <span class="org-string">'Fgm'</span>, <span class="org-string">'Ftym'</span>, <span class="org-string">'Fym'</span>, <span class="org-string">'Fzm'</span>, <span class="org-string">'Fhm'</span>, <span class="org-string">'Fnm'</span>, <span class="org-string">'Fsm'</span>);
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
@@ -537,16 +536,16 @@ We save these forces in <code>Foffset.mat</code>.
|
||||
We now initialize the stages with the option <code>Foffset</code>.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">initializeGround();
|
||||
initializeGranite(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeTy(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeRy(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeRz(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeMicroHexapod(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeAxisc();
|
||||
initializeMirror();
|
||||
initializeNanoHexapod(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeSample(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
<pre class="src src-matlab"> initializeGround();
|
||||
initializeGranite(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeTy(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeRy(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeRz(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeMicroHexapod(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeAxisc();
|
||||
initializeMirror();
|
||||
initializeNanoHexapod(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
initializeSample(<span class="org-string">'Foffset'</span>, <span class="org-constant">true</span>);
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -554,14 +553,14 @@ initializeSample(<span class="org-string">'Foffset'</span>, <span class="org-con
|
||||
And we simulate the system for 0.5 seconds.
|
||||
</p>
|
||||
<div class="org-src-container">
|
||||
<pre class="src src-matlab">load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||
<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"> load(<span class="org-string">'mat/conf_simulink.mat'</span>);
|
||||
<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>
|
||||
|
||||
<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>);
|
||||
sim_compensation = simout;
|
||||
<pre class="src src-matlab"> <span class="org-matlab-simulink-keyword">sim</span>(<span class="org-string">'nass_model'</span>);
|
||||
sim_compensation = simout;
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -579,16 +578,19 @@ Verification that nothing is moving
|
||||
<div id="outline-container-orgb714922" class="outline-2">
|
||||
<h2 id="orgb714922"><span class="section-number-2">5</span> Conclusion</h2>
|
||||
<div class="outline-text-2" id="text-5">
|
||||
<div class="important">
|
||||
<p>
|
||||
This initialization technique permits to compute the required forces/torques to be applied in each joint in order to compensate for gravity forces.
|
||||
This initialization should be redone for each configuration (change of sample mass, change of tilt angle), but not when changing the stiffness of joints, for instant when changing from lorentz based nano-hexapod or piezo based.
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="postamble" class="status">
|
||||
<p class="author">Author: Dehaeze Thomas</p>
|
||||
<p class="date">Created: 2020-04-01 mer. 16:14</p>
|
||||
<p class="date">Created: 2020-04-05 dim. 19:43</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
Reference in New Issue
Block a user