[WIP] add amplified piezo for the nano-hexapod

This commit is contained in:
2020-05-20 16:04:05 +02:00
parent 04c2ee06dc
commit 945741a795
21 changed files with 324 additions and 301 deletions

View File

@@ -431,3 +431,21 @@ Identification
#+caption: Root Locus for the two considered rotation speed. For the red curve, the system is unstable.
#+RESULTS:
[[file:figs/amplified_piezo_xy_rotating_unstable_root_locus.png]]
* Stewart Platform with Amplified Actuators
** 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>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
#+end_src
#+begin_src matlab :tangle no
simulinkproject('../');
#+end_src
#+begin_src matlab
open('nass_model.slx')
#+end_src

View File

@@ -13,11 +13,11 @@
** 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>>
<<matlab-dir>>
#+end_src
#+begin_src matlab :exports none :results silent :noweb yes
<<matlab-init>>
<<matlab-init>>
#+end_src
#+begin_src matlab :tangle no
@@ -141,7 +141,7 @@ exportFig('figs/opt_stiff_dvf_plant.pdf', 'width', 'full', 'height', 'full')
#+RESULTS:
[[file:figs/opt_stiff_dvf_plant.png]]
#+begin_src matlab :exports none :post
#+begin_src matlab :exports none
figure;
gains = logspace(2, 5, 300);
@@ -1561,7 +1561,7 @@ exportFig('figs/opt_stiff_hac_dvf_Dh_offset_dL.pdf', 'width', 'normal', 'height'
*** Simulation
A simulation is now performed with translation scans and spindle rotation at the same time.
The sample has a mass one 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape.
The sample has a mass of 1kg, the spindle rotation speed is 60rpm and the translation scans have a period of 4s and a triangular shape.
#+begin_src matlab
initializeDisturbances();

View File

@@ -1279,7 +1279,13 @@ The =mirror= structure is saved.
args.MR (1,1) double {mustBeNumeric, mustBePositive} = 90e-3
args.MTh (6,1) double {mustBeNumeric} = [-60+10, 60-10, 60+10, 180-10, 180+10, -60-10]*(pi/180)
% initializeStrutDynamics
args.actuator char {mustBeMember(args.actuator,{'piezo', 'lorentz'})} = 'piezo'
args.actuator char {mustBeMember(args.actuator,{'piezo', 'lorentz', 'amplified'})} = 'piezo'
args.ki (1,1) double {mustBeNumeric} = -1
args.ke (1,1) double {mustBeNumeric} = -1
args.ka (1,1) double {mustBeNumeric} = -1
args.ci (1,1) double {mustBeNumeric} = -1
args.ce (1,1) double {mustBeNumeric} = -1
args.ca (1,1) double {mustBeNumeric} = -1
args.k (1,1) double {mustBeNumeric} = -1
args.c (1,1) double {mustBeNumeric} = -1
% initializeJointDynamics

View File

@@ -1281,14 +1281,13 @@ We can see two mass lines for the soft nano-hexapod (Figure [[fig:opt_stiffness_
ylabel('Phase [deg]'); xlabel('Frequency [Hz]');
ylim([-270, 90]);
yticks([-360:90:360]);
legend('location', 'southwest');
linkaxes([ax1,ax2],'x');
xlim([freqs(1), freqs(end)]);
i = 7;
ax1 = subplot(2, 2, 2);
ax3 = subplot(2, 2, 2);
hold on;
for j = 1:length(Fs)
plot(freqs, abs(squeeze(freqresp(Gf_err{i,j}('Ez', 'Fz'), freqs, 'Hz'))), '-');
@@ -1298,7 +1297,7 @@ We can see two mass lines for the soft nano-hexapod (Figure [[fig:opt_stiffness_
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
title(sprintf('$k = %.0e$ [N/m]', Ks(i)))
ax2 = subplot(2, 2, 4);
ax4 = subplot(2, 2, 4);
hold on;
for j = 1:length(Fs)
plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gf_err{i,j}('Ez', 'Fz'), freqs, 'Hz')))), '-', ...
@@ -1311,17 +1310,19 @@ We can see two mass lines for the soft nano-hexapod (Figure [[fig:opt_stiffness_
yticks([-360:90:360]);
legend('location', 'southwest');
linkaxes([ax1,ax2],'x');
linkaxes([ax3,ax4],'x');
xlim([freqs(1), freqs(end)]);
linkaxes([ax1,ax3],'y');
#+end_src
#+header: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/opt_stiffness_payload_freq_fz_dz.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/opt_stiffness_payload_freq_fz_dz.pdf', 'width', 'full', 'height', 'tall');
#+end_src
#+name: fig:opt_stiffness_payload_freq_fz_dz
#+caption: Dynamics from $\mathcal{F}_z$ to $\mathcal{X}_z$ for varying payload resonance frequency, both for a soft nano-hexapod and a stiff nano-hexapod ([[./figs/opt_stiffness_payload_freq_fz_dz.png][png]], [[./figs/opt_stiffness_payload_freq_fz_dz.pdf][pdf]])
#+caption: Dynamics from $\mathcal{F}_z$ to $\mathcal{X}_z$ for varying payload resonance frequency, both for a soft nano-hexapod and a stiff nano-hexapod
#+RESULTS:
[[file:figs/opt_stiffness_payload_freq_fz_dz.png]]
#+begin_src matlab :exports none
@@ -1419,7 +1420,7 @@ We can see here that for the soft nano-hexapod:
i = 7;
ax1 = subplot(2, 2, 2);
ax3 = subplot(2, 2, 2);
hold on;
for j = 1:length(Ms)
plot(freqs, abs(squeeze(freqresp(Gm_err{i,j}('Ez', 'Fz'), freqs, 'Hz'))), '-');
@@ -1429,7 +1430,7 @@ We can see here that for the soft nano-hexapod:
ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]);
title(sprintf('$k = %.0e$ [N/m]', Ks(i)))
ax2 = subplot(2, 2, 4);
ax4 = subplot(2, 2, 4);
hold on;
for j = 1:length(Ms)
plot(freqs, 180/pi*unwrap(angle(squeeze(freqresp(Gm_err{i,j}('Ez', 'Fz'), freqs, 'Hz')))), '-', ...
@@ -1442,17 +1443,19 @@ We can see here that for the soft nano-hexapod:
yticks([-360:90:360]);
legend('location', 'southwest');
linkaxes([ax1,ax2],'x');
linkaxes([ax3,ax4],'x');
xlim([freqs(1), freqs(end)]);
linkaxes([ax1,ax3],'y');
#+end_src
#+header: :tangle no :exports results :results none :noweb yes
#+begin_src matlab :var filepath="figs/opt_stiffness_payload_mass_fz_dz.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png")
<<plt-matlab>>
#+begin_src matlab :tangle no :exports results :results file replace
exportFig('figs/opt_stiffness_payload_mass_fz_dz.pdf', 'width', 'full', 'height', 'tall');
#+end_src
#+name: fig:opt_stiffness_payload_mass_fz_dz
#+caption: Dynamics from $\mathcal{F}_z$ to $\mathcal{X}_z$ for varying payload mass, both for a soft nano-hexapod and a stiff nano-hexapod ([[./figs/opt_stiffness_payload_mass_fz_dz.png][png]], [[./figs/opt_stiffness_payload_mass_fz_dz.pdf][pdf]])
#+caption: Dynamics from $\mathcal{F}_z$ to $\mathcal{X}_z$ for varying payload mass, both for a soft nano-hexapod and a stiff nano-hexapod
#+RESULTS:
[[file:figs/opt_stiffness_payload_mass_fz_dz.png]]
#+begin_src matlab :exports none