Huge Update
- Modify the joints for Ty, Ry, Rz to have only one bushing joint. - Compensation of gravity
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user