Compliance comparison VC and PZ

This commit is contained in:
Thomas Dehaeze 2020-03-31 11:15:18 +02:00
parent ab62eabf1f
commit d5ecb2706a
3 changed files with 58 additions and 0 deletions

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

View File

@ -1087,6 +1087,64 @@ Finally with the primary controller
#+caption: Evolution of the NASS compliance with each control loop added ([[./figs/compliance_evolution_vc_cascade_control.png][png]], [[./figs/compliance_evolution_vc_cascade_control.pdf][pdf]]) #+caption: Evolution of the NASS compliance with each control loop added ([[./figs/compliance_evolution_vc_cascade_control.png][png]], [[./figs/compliance_evolution_vc_cascade_control.pdf][pdf]])
[[file:figs/compliance_evolution_vc_cascade_control.png]] [[file:figs/compliance_evolution_vc_cascade_control.png]]
*** Comparison with Piezo
Let's initialize a nano-hexapod with piezoelectric actuators.
#+begin_src matlab
initializeNanoHexapod('actuator', 'piezo');
#+end_src
We don't use any controller.
#+begin_src matlab
Kp = tf(zeros(6));
Kl = tf(zeros(6));
Kiff = tf(zeros(6));
#+end_src
#+begin_src matlab
%% Run the linearization
Gc_pz = linearize(mdl, io, 0);
Gc_pz.InputName = {'Fdx', 'Fdy', 'Fdz', 'Mdx', 'Mdy', 'Mdz'};
Gc_pz.OutputName = {'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'};
#+end_src
#+begin_src matlab :exports none
freqs = logspace(-1, 3, 1000);
figure;
ax1 = subplot(1, 2, 1);
hold on;
plot(freqs, abs(squeeze(freqresp(Gc_pri(1, 1), freqs, 'Hz'))), 'DisplayName', 'PRI');
plot(freqs, abs(squeeze(freqresp(Gc_pz( 1, 1), freqs, 'Hz'))), 'DisplayName', 'PZ - OL');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Compliance [m/N]');
xlabel('Frequency [Hz]');
legend('location', 'northeast');
ax2 = subplot(1, 2, 2);
hold on;
plot(freqs, abs(squeeze(freqresp(Gc_pri(4, 4), freqs, 'Hz'))), 'DisplayName', 'PRI');
plot(freqs, abs(squeeze(freqresp(Gc_pz( 4, 4), freqs, 'Hz'))), 'DisplayName', 'PZ - OL');
hold off;
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
ylabel('Compliance [$\frac{rad}{Nm}$]');
xlabel('Frequency [Hz]');
legend('location', 'northeast');
linkaxes([ax1,ax2],'x');
#+end_src
#+header: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/compliance_comp_pz_vc_cascade.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+end_src
#+name: fig:compliance_comp_pz_vc_cascade
#+caption: Comparison of the compliance using the open-loop piezo-nano hexapod and the voice coil nano-hexapod with the cascade control topology ([[./figs/compliance_comp_pz_vc_cascade.png][png]], [[./figs/compliance_comp_pz_vc_cascade.pdf][pdf]])
[[file:figs/compliance_comp_pz_vc_cascade.png]]
** Robustness to Payload Variability ** Robustness to Payload Variability
*** Initialization *** Initialization
Let's change the payload mass, and see if the controller design for a payload mass of 1 still gives good performance. Let's change the payload mass, and see if the controller design for a payload mass of 1 still gives good performance.