#+TITLE: Study of the Metrology Frame #+SETUPFILE: ./setup/org-setup-file.org * Flexibility of the reference mirror ** Introduction :ignore: In this section we wish to see how a flexibility between the nano-hexapod's top platform and the reference mirror will change the plant dynamics and limits the performance. First, we identify the dynamics of the system for an infinitely rigid reference mirror, and then for a reference mirror with a limited resonance frequency. We will compare the two dynamics and conclude. ** Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) <> #+end_src #+begin_src matlab :exports none :results silent :noweb yes <> #+end_src #+begin_src matlab :tangle no simulinkproject('../'); #+end_src #+begin_src matlab load('mat/conf_simulink.mat'); open('nass_model.slx') #+end_src ** Initialization We initialize all the stages with the default parameters. #+begin_src matlab initializeGround(); initializeGranite(); initializeTy(); initializeRy(); initializeRz(); initializeMicroHexapod(); initializeAxisc(); initializeNanoHexapod(); #+end_src We first consider a rigid Sample to simplify the analysis. #+begin_src matlab initializeSample('type', 'rigid'); #+end_src #+begin_src matlab :exports none initializeReferences(); initializeSimscapeConfiguration(); initializeDisturbances('enable', false); initializeController('type', 'open-loop'); initializeLoggingConfiguration('log', 'none'); #+end_src #+begin_src matlab :exports none %% Name of the Simulink File mdl = 'nass_model'; %% 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, '/Tracking Error'], 1, 'output', [], 'En'); io_i = io_i + 1; % Position Errror #+end_src ** Rigid fixation between the metrology frame and the nano-hexapod Let's first consider a rigid reference mirror and we identify the dynamics of the system. #+begin_src matlab initializeMirror('type', 'rigid'); #+end_src #+begin_src matlab :exports none %% Run the linearization G = linearize(mdl, io); G.InputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}; G.OutputName = {'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'}; load('mat/stages.mat', 'nano_hexapod'); Gx = -G*inv(nano_hexapod.kinematics.J'); Gx.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'}; #+end_src ** Flexible fixation between the metrology frame and the nano-hexapod We now initialize a reference mirror with a main resonance frequency at $200\ [Hz]$. #+begin_src matlab initializeMirror('type', 'flexible', 'freq', 200*ones(6,1)); #+end_src And we re identify the plant dynamics. #+begin_src matlab :exports none %% Run the linearization G = linearize(mdl, io); G.InputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}; G.OutputName = {'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'}; load('mat/stages.mat', 'nano_hexapod'); Gxb = -G*inv(nano_hexapod.kinematics.J'); Gxb.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'}; #+end_src ** Comparison The obtained transfer functions from $\mathcal{F}_z$ to $\mathcal{X}_z$ when considering a rigid reference mirror and a flexible one are shown in Figure [[fig:effect_mirror_flexibility_fz_dz]]. #+begin_src matlab :exports none freqs = logspace(0, 3, 1000); figure; ax1 = subplot(2, 1, 1); hold on; plot(freqs, abs(squeeze(freqresp(Gx( 3, 3), freqs, 'Hz'))), 'k-'); plot(freqs, abs(squeeze(freqresp(Gxb(3, 3), freqs, 'Hz'))), 'k--'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]); ax2 = subplot(2, 1, 2); hold on; plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gx( 3, 3), freqs, 'Hz')))), 'k-', 'DisplayName', 'Rigid Mirror'); plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gxb(3, 3), freqs, 'Hz')))), 'k--', 'DisplayName', 'Flexible Mirror'); hold off; set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); ylim([-360, 0]); yticks([-360:90:360]); legend(); linkaxes([ax1,ax2],'x'); #+end_src #+begin_src matlab :tangle no :exports results :results file replace exportFig('figs/effect_mirror_flexibility_fz_dz.pdf', 'width', 'full', 'height', 'full') #+end_src #+name: fig:effect_mirror_flexibility_fz_dz #+caption: Effect of the mirror flexibility on the transfer function from $\mathcal{F}_z$ to $\mathcal{X}_z$ #+RESULTS: [[file:figs/effect_mirror_flexibility_fz_dz.png]] ** Conclusion #+begin_important A flexibility between the nano-hexapod top platform and the reference mirror will appear in the plant as two complex conjugate poles at the frequency of the resonance of the mirror on top of the nano-hexapod. This induces 180 degrees of phase drop on the plant and will limit the attainable controller bandwidth. This phase drop appears whatever the nano-hexapod stiffness. Thus, care should be taken when designing the fixation of the reference mirror on top of the nano-hexapod. #+end_important