Add code to extract disturbance sensibility
This commit is contained in:
parent
a6ed15fd30
commit
d24cddcc44
@ -734,3 +734,71 @@ Let's now compare the effect of those perturbations on the position error of the
|
|||||||
#+name: fig:effect_disturbances_position_error
|
#+name: fig:effect_disturbances_position_error
|
||||||
#+caption: Effect of Perturbations on the position error ([[./figs/effect_disturbances_position_error.png][png]], [[./figs/effect_disturbances_position_error.pdf][pdf]])
|
#+caption: Effect of Perturbations on the position error ([[./figs/effect_disturbances_position_error.png][png]], [[./figs/effect_disturbances_position_error.pdf][pdf]])
|
||||||
[[file:figs/effect_disturbances_position_error.png]]
|
[[file:figs/effect_disturbances_position_error.png]]
|
||||||
|
|
||||||
|
|
||||||
|
* TODO Sensibility to disturbances without the nano-hexapod :noexport:
|
||||||
|
#+begin_src matlab
|
||||||
|
initializeGround();
|
||||||
|
initializeGranite();
|
||||||
|
initializeTy();
|
||||||
|
initializeRy();
|
||||||
|
initializeRz();
|
||||||
|
initializeMicroHexapod();
|
||||||
|
initializeAxisc();
|
||||||
|
initializeMirror();
|
||||||
|
initializeNanoHexapod('type', 'rigid');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
We set the stiffness of the payload fixation:
|
||||||
|
#+begin_src matlab
|
||||||
|
Kp = 1e8; % [N/m]
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Open Loop Control.
|
||||||
|
#+begin_src matlab
|
||||||
|
initializeController('type', 'open-loop');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab
|
||||||
|
initializeSimscapeConfiguration('gravity', false);
|
||||||
|
initializeDisturbances('enable', false);
|
||||||
|
initializeLoggingConfiguration('log', 'none');
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
We identify the system for the following payload masses:
|
||||||
|
#+begin_src matlab
|
||||||
|
Ms = [1, 10, 50];
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
%% Name of the Simulink File
|
||||||
|
mdl = 'nass_model';
|
||||||
|
|
||||||
|
%% Micro-Hexapod
|
||||||
|
clear io; io_i = 1;
|
||||||
|
io(io_i) = linio([mdl, '/Disturbances'], 1, 'openinput', [], 'Dwz'); io_i = io_i + 1; % Z Ground motion
|
||||||
|
io(io_i) = linio([mdl, '/Disturbances'], 1, 'openinput', [], 'Fty_z'); io_i = io_i + 1; % Parasitic force Ty - Z
|
||||||
|
io(io_i) = linio([mdl, '/Disturbances'], 1, 'openinput', [], 'Frz_z'); io_i = io_i + 1; % Parasitic force Rz - Z
|
||||||
|
io(io_i) = linio([mdl, '/Disturbances'], 1, 'openinput', [], 'Fd'); io_i = io_i + 1; % Direct forces
|
||||||
|
|
||||||
|
io(io_i) = linio([mdl, '/Tracking Error'], 1, 'output', [], 'En'); io_i = io_i + 1; % Position Errror
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab :exports none
|
||||||
|
Gd = {zeros(length(Ms), 1)};
|
||||||
|
|
||||||
|
for i = 1:length(Ms)
|
||||||
|
initializeSample('mass', Ms(i), 'freq', sqrt(Kp/Ms(i))/2/pi*ones(6,1));
|
||||||
|
|
||||||
|
%% Run the linearization
|
||||||
|
G = linearize(mdl, io);
|
||||||
|
G.InputName = {'Dwz', 'Fty_z', 'Frz_z', 'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'};
|
||||||
|
G.OutputName = {'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'};
|
||||||
|
|
||||||
|
Gd(i) = {G};
|
||||||
|
end
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+begin_src matlab
|
||||||
|
save('./mat/Gd_ol.mat', 'Gd', 'Ms');
|
||||||
|
#+end_src
|
||||||
|
Loading…
Reference in New Issue
Block a user