Huge Update

- Modify the joints for Ty, Ry, Rz to have only one bushing joint.
- Compensation of gravity
This commit is contained in:
2020-02-25 17:49:08 +01:00
parent dfdfcff4db
commit 12c2e4a508
36 changed files with 798 additions and 545 deletions

View File

@@ -41,7 +41,7 @@
#+PROPERTY: header-args:latex+ :output-dir figs
:END:
* Introduction :ignore:
* Introduction :ignore:
The goal of this file is to study the use of active damping for the control of the NASS.
In general, three sensors can be used for Active Damping:
@@ -276,7 +276,7 @@ We identify the dynamics of the system using the =linearize= function.
%% Input/Output definition
clear io; io_i = 1;
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs
io(io_i) = linio([mdl, '/Controller'], 1, 'openinput'); io_i = io_i + 1; % Actuator Inputs
io(io_i) = linio([mdl, '/Tracking Error'], 1, 'openoutput', [], 'En'); io_i = io_i + 1; % Metrology Outputs
#+end_src
@@ -4105,3 +4105,150 @@ The obtained sensitivity to disturbances is shown in figure [[fig:ine_1dof_sensi
#+name: fig:ine_1dof_sensitivitiy
#+caption: Sensitivity to disturbance when INE is applied on the 1dof system ([[./figs/ine_1dof_sensitivitiy.png][png]], [[./figs/ine_1dof_sensitivitiy.pdf][pdf]])
[[file:figs/ine_1dof_sensitivitiy.png]]
* Test :noexport:
#+begin_src matlab
AP = [0; 0; 0];
#+end_src
#+begin_src matlab
load('mat/conf_simulink.mat');
set_param(conf_simulink, 'StopTime', '0.5');
initializeSimscapeConfiguration('gravity', true);
initializeLoggingConfiguration('log', 'forces');
initializeGround('type', 'none');
initializeGranite('type', 'none');
initializeTy('type', 'rigid');
initializeRy('type', 'init');
initializeRz('type', 'none');
initializeMicroHexapod('type', 'rigid', 'AP', AP, 'Foffset', false);
initializeAxisc('type', 'none');
initializeMirror('type', 'none');
initializeNanoHexapod('type', 'none');
initializeSample('type', 'init', 'Foffset', false);
sim('nass_model');
#+end_src
#+begin_src matlab
save('./mat/Foffset.mat', 'Foffset');
#+end_src
#+begin_src matlab
initializeRz('type', 'flexible');
initializeMicroHexapod('type', 'flexible', 'AP', AP);
initializeSample('type', 'flexible');
sim('nass_model');
#+end_src
* Test bis :noexport:
#+begin_src matlab
AP = [0; 0; 0];
#+end_src
#+begin_src matlab
load('mat/conf_simulink.mat');
set_param(conf_simulink, 'StopTime', '0.5');
initializeSimscapeConfiguration('gravity', true);
initializeLoggingConfiguration('log', 'forces');
initializeGround('type', 'none');
initializeGranite('type', 'none');
initializeTy('type', 'rigid');
initializeRy('type', 'flexible');
initializeRz('type', 'none');
initializeMicroHexapod('type', 'none');
initializeAxisc('type', 'none');
initializeMirror('type', 'none');
initializeNanoHexapod('type', 'none');
initializeSample('type', 'none');
sim('nass_model');
#+end_src
#+begin_src matlab
save('./mat/Foffset.mat', 'Foffset');
#+end_src
#+begin_src matlab
initializeRz('type', 'flexible');
initializeMicroHexapod('type', 'flexible', 'AP', AP);
initializeSample('type', 'flexible');
sim('nass_model');
#+end_src
* Use only one joint for the tilt stage
#+begin_src matlab
K = [2.8e4; 2.8e4; 2.8e4];
%K = [1e8; 1e8; 1e8];
ty = 7*(2*pi)/180;
Ry = [ cos(ty) 0 sin(ty);
0 1 0;
-sin(ty) 0 cos(ty)];
K11 = abs(Ry*K);
K12 = abs(Ry*K);
ty = -7*(2*pi)/180;
Ry = [ cos(ty) 0 sin(ty);
0 1 0;
-sin(ty) 0 cos(ty)];
K21 = abs(Ry*K);
K22 = abs(Ry*K);
Ktot = zeros(6,1);
Ktot(1) = K11(1) + K12(1) + K21(1) + K22(1);
Ktot(2) = K11(2) + K12(2) + K21(2) + K22(2);
Ktot(3) = K11(3) + K12(3) + K21(3) + K22(3);
%% Stiffness in rotation
% Position of the joint from the next wanted joint position (in the rotated frame)
P11 = [0; 0.334; 0];
P12 = [0; 0.334; 0];
P21 = [0; 0.334; 0];
P22 = [0; 0.334; 0];
Ktot(4:6) = abs(cross(P11, K11)) + abs(cross(P12, K12)) + abs(cross(P21, K21)) + abs(cross(P22, K22))
#+end_src
#+begin_src matlab
Ry_init = 0;
#+end_src
#+begin_src matlab
initializeSimscapeConfiguration('gravity', true);
initializeLoggingConfiguration('log', 'none');
initializeGround('type', 'none');
initializeGranite('type', 'none');
initializeTy('type', 'none');
initializeRy('type', 'init', 'Ry_init', Ry_init);
initializeRz('type', 'init');
initializeMicroHexapod('type', 'init');
initializeAxisc('type', 'none');
initializeMirror('type', 'none');
initializeNanoHexapod('type', 'none');
initializeSample('type', 'init');
sim('nass_model');
#+end_src
#+begin_src matlab
save('./mat/Foffset.mat', 'Fym');
#+end_src
#+begin_src matlab
initializeReferences('Ry_amplitude', 3*(2*pi)/180)
initializeRy('type', 'flexible', 'Ry_init', 3*(2*pi)/180);
sim('nass_model');
#+end_src