From 377a707cf04f4be8433ab84d71dec32e43f8ba2f Mon Sep 17 00:00:00 2001 From: Thomas Dehaeze Date: Fri, 22 Nov 2019 11:02:47 +0100 Subject: [PATCH] Minor update of identification script --- identification/index.org | 116 ++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 70 deletions(-) diff --git a/identification/index.org b/identification/index.org index 545ebf3..6f047c9 100644 --- a/identification/index.org +++ b/identification/index.org @@ -221,26 +221,13 @@ hold off; ** Init #+begin_src matlab :results none -%% Initialize Ground -initializeGround(); - -%% Initialize Granite -initializeGranite(); - -%% Initialize Translation stage -initializeTy(); - -%% Initialize Tilt Stage -initializeRy(); - -%% Initialize Spindle -initializeRz(); - -%% Initialize Hexapod Symétrie -initializeMicroHexapod(); - -%% Initialize Center of gravity compensation -initializeAxisc(); + initializeGround(); + initializeGranite(); + initializeTy(); + initializeRy(); + initializeRz(); + initializeMicroHexapod(); + initializeAxisc(); #+end_src ** Center of Mass of each solid body @@ -300,10 +287,10 @@ initializeAxisc(); stages = {'gbot', 'gtop', 'ty', 'ry', 'rz', 'hexa'} n_stg = 2; - n_dir = 2; % x, y, z, Rx, Ry, Rz + n_dir = 5; % x, y, z, Rx, Ry, Rz n_exc = 2; % x, y, z - f = logspace(1, 3, 1000); + f = logspace(0, 3, 1000); figure; hold on; @@ -312,7 +299,7 @@ initializeAxisc(); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Amplitude [m/N]'); hold off; - xlim([10, 1000]); + xlim([1, 200]); #+end_src #+begin_src matlab @@ -331,6 +318,9 @@ initializeAxisc(); plot(f, abs(squeeze(freqresp(G_ms([stages{n_stg}, '_', dirs{n_dir}], ['F', dirs{n_dir}]), f, 'Hz')))); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Amplitude [m/N]'); + if n_dir == 3 + xlabel('Frequency [Hz]'); + end hold off; xlim([10, 1000]); ylim([1e-12, 1e-6]); @@ -338,6 +328,16 @@ initializeAxisc(); end #+end_src +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/identification_comp_bot_stages.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:identification_comp_bot_stages +#+CAPTION: caption ([[./figs/identification_comp_bot_stages.png][png]], [[./figs/identification_comp_bot_stages.pdf][pdf]]) +[[file:figs/identification_comp_bot_stages.png]] + + #+begin_src matlab dirs = {'x', 'y', 'z', 'rx', 'ry', 'rz'}; stages = {'ry', 'rz', 'hexa'} @@ -354,6 +354,9 @@ initializeAxisc(); plot(f, abs(squeeze(freqresp(G_ms([stages{n_stg}, '_', dirs{n_dir}], ['F', dirs{n_dir}]), f, 'Hz')))); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Amplitude [m/N]'); + if n_dir == 3 + xlabel('Frequency [Hz]'); + end hold off; xlim([10, 1000]); ylim([1e-12, 1e-6]); @@ -361,6 +364,16 @@ initializeAxisc(); end #+end_src +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/identification_comp_mid_stages.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> +#+end_src + +#+NAME: fig:identification_comp_mid_stages +#+CAPTION: caption ([[./figs/identification_comp_mid_stages.png][png]], [[./figs/identification_comp_mid_stages.pdf][pdf]]) +[[file:figs/identification_comp_mid_stages.png]] + + #+begin_src matlab dirs = {'x', 'y', 'z', 'rx', 'ry', 'rz'}; stages = {'hexa'} @@ -370,13 +383,16 @@ initializeAxisc(); figure; for n_stg = 1 for n_dir = 1:3 - subplot(3, 2, (n_dir-1)*2 + n_stg); + subplot(3, 1, (n_dir-1)*2 + n_stg); title(['F ', dirs{n_dir}, ' to ', stages{n_stg}, ' ', dirs{n_dir}]); hold on; plot(freqs, abs(squeeze(FRFs_CoM(6*(n_stg+4) + n_dir, n_dir, :)))./((2*pi*freqs).^2)'); plot(f, abs(squeeze(freqresp(G_ms([stages{n_stg}, '_', dirs{n_dir}], ['F', dirs{n_dir}]), f, 'Hz')))); set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Amplitude [m/N]'); + if n_dir == 3 + xlabel('Frequency [Hz]'); + end hold off; xlim([10, 1000]); ylim([1e-12, 1e-6]); @@ -384,54 +400,14 @@ initializeAxisc(); end #+end_src -** Bis -#+begin_src matlab :results none - %% Initialize Ground - initializeGround(); - - %% Initialize Granite - initializeGranite(struct('rigid', false)); - - %% Initialize Translation stage - initializeTy(struct('rigid', false)); - - %% Initialize Tilt Stage - initializeRy(struct('rigid', false)); - - %% Initialize Spindle - initializeRz(struct('rigid', false)); - - %% Initialize Hexapod Symétrie - initializeMicroHexapod(struct('rigid', false)); - - %% Initialize Center of gravity compensation - initializeAxisc(); +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/identification_comp_top_stages.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") + <> #+end_src -For Granite Fx to Tx/Ty/Tz/Rx/Ry/Rz -#+begin_src matlab - dirs = {'x', 'y', 'z', 'rx', 'ry', 'rz'}; - stages = {'gtop', 'ty', 'ry', 'rz', 'hexa'} - - n_stg = 5; - n_exc = 3; - - f = logspace(0, 3, 1000); - - figure; - for n_dir = 1:6 - subplot(2, 3, n_dir); - title(['F', dirs{n_exc}, ' to ', stages{n_stg}, ' ', dirs{n_dir}]); - hold on; - plot(freqs, abs(squeeze(FRFs_CoM(6*(n_stg) + n_dir, n_exc, :)))./((2*pi*freqs).^2)'); - plot(f, abs(squeeze(freqresp(G_ms([stages{n_stg}, '_', dirs{n_dir}], ['F', dirs{n_exc}]), f, 'Hz')))); - set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); - ylabel('Amplitude [m/N]'); - hold off; - xlim([10, 1000]); - ylim([1e-12, 1e-6]); - end -#+end_src +#+NAME: fig:identification_comp_top_stages +#+CAPTION: caption ([[./figs/identification_comp_top_stages.png][png]], [[./figs/identification_comp_top_stages.pdf][pdf]]) +[[file:figs/identification_comp_top_stages.png]] * ZIP file containing the data and matlab files :ignore: #+begin_src bash :exports none :results none