Dist. sensitivity / optimal stiffness analysis
This commit is contained in:
@@ -131,6 +131,9 @@ In this study, the expected frequency content of the direct forces applied to th
|
||||
* Effect of disturbances on the position error
|
||||
<<sec:effect_disturbances>>
|
||||
** Introduction :ignore:
|
||||
In this section, we use the Simscape model to identify the transfer function from disturbances to the position error of the sample.
|
||||
We do that for a wide range of nano-hexapod stiffnesses and we compare the obtained results.
|
||||
|
||||
** Matlab Init :noexport:ignore:
|
||||
#+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name)
|
||||
<<matlab-dir>>
|
||||
@@ -167,16 +170,16 @@ We use a sample mass of 10kg.
|
||||
initializeSample('mass', 10);
|
||||
#+end_src
|
||||
|
||||
We include gravity, and we use no controller.
|
||||
#+begin_src matlab
|
||||
initializeSimscapeConfiguration('gravity', true);
|
||||
initializeController();
|
||||
initializeDisturbances('enable', false);
|
||||
initializeLoggingConfiguration('log', 'none');
|
||||
initializeController();
|
||||
#+end_src
|
||||
|
||||
|
||||
** Identification
|
||||
Inputs:
|
||||
The considered inputs are:
|
||||
- =Dwx=: Ground displacement in the $x$ direction
|
||||
- =Dwy=: Ground displacement in the $y$ direction
|
||||
- =Dwz=: Ground displacement in the $z$ direction
|
||||
@@ -185,15 +188,14 @@ Inputs:
|
||||
- =Frz_z=: Forces applied by the Spindle in the $z$ direction
|
||||
- =Fd=: Direct forces applied at the center of mass of the Payload
|
||||
|
||||
The outputs are =Ex=, =Ey=, =Ez=, =Erx=, =Ery=, =Erz= which are the 3 positions and 3 orientations errors of the sample.
|
||||
|
||||
We initialize the set of the nano-hexapod stiffnesses, and for each of them, we identify the dynamics from defined inputs to defined outputs.
|
||||
#+begin_src matlab
|
||||
Ks = logspace(3,9,7); % [N/m]
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
Gd = {zeros(length(Ks), 1)};
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
%% Name of the Simulink File
|
||||
mdl = 'nass_model';
|
||||
|
||||
@@ -210,7 +212,9 @@ Inputs:
|
||||
io(io_i) = linio([mdl, '/Tracking Error'], 1, 'openoutput', [], 'En'); io_i = io_i + 1; % Position Error
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
#+begin_src matlab :exports none
|
||||
Gd = {zeros(length(Ks), 1)};
|
||||
|
||||
for i = 1:length(Ks)
|
||||
initializeNanoHexapod('k', Ks(i));
|
||||
|
||||
@@ -222,8 +226,12 @@ Inputs:
|
||||
end
|
||||
#+end_src
|
||||
|
||||
** Plots
|
||||
Effect of Stages vibration (Filtering).
|
||||
** Sensitivity to Stages vibration (Filtering)
|
||||
The sensitivity the stage vibrations are displayed:
|
||||
- Figure [[fig:opt_stiff_sensitivity_Frz]]: sensitivity to vertical spindle vibrations
|
||||
- Figure [[fig:opt_stiff_sensitivity_Fty_z]]: sensitivity to vertical translation stage vibrations
|
||||
- Figure [[fig:opt_stiff_sensitivity_Fty_x]]: sensitivity to horizontal (x) translation stage vibrations
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
@@ -235,26 +243,76 @@ Effect of Stages vibration (Filtering).
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]');
|
||||
ylabel('Effect of $F_{rz}$ on $E_z$ [m/N]'); xlabel('Frequency [Hz]');
|
||||
legend('location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
Effect of Ground motion (Transmissibility).
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Frz.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Frz
|
||||
#+caption: Sensitivity to Spindle vertical motion error ($F_{rz}$) to the vertical error position of the sample ($E_z$) ([[./figs/opt_stiff_sensitivity_Frz.png][png]], [[./figs/opt_stiff_sensitivity_Frz.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Frz.png]]
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ez', 'Fty_z'), freqs, 'Hz'))), '-', ...
|
||||
'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i)));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Effect of $F_{ty}$ on $E_z$ [m/N]'); xlabel('Frequency [Hz]');
|
||||
legend('location', 'southwest');
|
||||
#+end_src
|
||||
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Fty_z.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Fty_z
|
||||
#+caption: Sensitivity to Translation stage vertical motion error ($F_{ty,z}$) to the vertical error position of the sample ($E_z$) ([[./figs/opt_stiff_sensitivity_Fty_z.png][png]], [[./figs/opt_stiff_sensitivity_Fty_z.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Fty_z.png]]
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ex', 'Fty_x'), freqs, 'Hz'))), '-', ...
|
||||
'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i)));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Effect of $F_{ty}$ on $E_x$ [m/N]'); xlabel('Frequency [Hz]');
|
||||
legend('location', 'northeast');
|
||||
#+end_src
|
||||
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Fty_x.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Fty_x
|
||||
#+caption: Sensitivity to Translation stage $x$ motion error ($F_{ty,x}$) to the error position of the sample in the $x$ direction ($E_x$) ([[./figs/opt_stiff_sensitivity_Fty_x.png][png]], [[./figs/opt_stiff_sensitivity_Fty_x.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Fty_x.png]]
|
||||
|
||||
** Effect of Ground motion (Transmissibility).
|
||||
The effect of Ground motion on the position error of the sample is shown in Figure [[fig:opt_stiff_sensitivity_Dw]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(3, 1, 1);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ex', 'Dwx'), freqs, 'Hz'))), '-', ...
|
||||
'DisplayName', sprintf('$k = %.0g$ [N/m]', Ks(i)));
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/m]');
|
||||
|
||||
ax1 = subplot(3, 1, 2);
|
||||
ax1 = subplot(1, 2, 1);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ey', 'Dwy'), freqs, 'Hz'))), '-', ...
|
||||
@@ -262,9 +320,9 @@ Effect of Ground motion (Transmissibility).
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/m]');
|
||||
ylabel('$E_y/D_{wy}$ [m/m]'); xlabel('Frequency [Hz]');
|
||||
|
||||
ax1 = subplot(3, 1, 3);
|
||||
ax2 = subplot(1, 2, 2);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ez', 'Dwz'), freqs, 'Hz'))), '-', ...
|
||||
@@ -272,14 +330,36 @@ Effect of Ground motion (Transmissibility).
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/m]'); xlabel('Frequency [Hz]');
|
||||
ylabel('$E_z/D_{wz}$ [m/m]'); xlabel('Frequency [Hz]');
|
||||
#+end_src
|
||||
|
||||
Direct Forces (Compliance).
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Dw.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Dw
|
||||
#+caption: Sensitivity to Ground motion ($D_{w}$) to the position error of the sample ($E_y$ and $E_z$) ([[./figs/opt_stiff_sensitivity_Dw.png][png]], [[./figs/opt_stiff_sensitivity_Dw.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Dw.png]]
|
||||
|
||||
** Direct Forces (Compliance).
|
||||
The effect of direct forces/torques applied on the sample (cable forces for instance) on the position error of the sample is shown in Figure [[fig:opt_stiff_sensitivity_Fd]].
|
||||
|
||||
#+begin_src matlab :exports none
|
||||
freqs = logspace(0, 3, 1000);
|
||||
|
||||
figure;
|
||||
|
||||
ax1 = subplot(1, 2, 1);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ery', 'Mdy'), freqs, 'Hz'))), '-');
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('$E_{ry}/M_{d,y}\ \left[\frac{rad}{N m}\right]$'); xlabel('Frequency [Hz]');
|
||||
|
||||
ax2 = subplot(1, 2, 2);
|
||||
hold on;
|
||||
for i = 1:length(Ks)
|
||||
plot(freqs, abs(squeeze(freqresp(Gd{i}('Ez', 'Fdz'), freqs, 'Hz'))), '-', ...
|
||||
@@ -287,14 +367,31 @@ Direct Forces (Compliance).
|
||||
end
|
||||
hold off;
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
ylabel('Amplitude [m/N]'); xlabel('Frequency [Hz]');
|
||||
ylabel('$E_{z}/F_{d,z}$ [m/N]'); xlabel('Frequency [Hz]');
|
||||
legend('location', 'northeast');
|
||||
|
||||
linkaxes([ax1 ax2], 'xy')
|
||||
#+end_src
|
||||
|
||||
** Save
|
||||
#+begin_src matlab
|
||||
save('./mat/opt_stiffness_disturbances.mat', 'Gd')
|
||||
#+header: :tangle no :exports results :results none :noweb yes
|
||||
#+begin_src matlab :var filepath="figs/opt_stiff_sensitivity_Fd.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
|
||||
<<plt-matlab>>
|
||||
#+end_src
|
||||
|
||||
#+name: fig:opt_stiff_sensitivity_Fd
|
||||
#+caption: Sensitivity to Direct forces and torques applied to the sample ($F_d$, $M_d$) to the position error of the sample ([[./figs/opt_stiff_sensitivity_Fd.png][png]], [[./figs/opt_stiff_sensitivity_Fd.pdf][pdf]])
|
||||
[[file:figs/opt_stiff_sensitivity_Fd.png]]
|
||||
|
||||
** Save :noexport:
|
||||
#+begin_src matlab
|
||||
save('./mat/opt_stiffness_disturbances.mat', 'Ks', 'Gd')
|
||||
#+end_src
|
||||
|
||||
** Conclusion
|
||||
#+begin_important
|
||||
|
||||
#+end_important
|
||||
|
||||
* Effect of granite stiffness
|
||||
<<sec:granite_stiffness>>
|
||||
** Analytical Analysis
|
||||
|
Reference in New Issue
Block a user