diff --git a/docs/figs/dynamics_variability_dvf_sample_w.pdf b/docs/figs/dynamics_variability_dvf_sample_w.pdf index 832a02d..c332172 100644 Binary files a/docs/figs/dynamics_variability_dvf_sample_w.pdf and b/docs/figs/dynamics_variability_dvf_sample_w.pdf differ diff --git a/docs/figs/dynamics_variability_err_micro_hexapod_x.pdf b/docs/figs/dynamics_variability_err_micro_hexapod_x.pdf new file mode 100644 index 0000000..0814e9a Binary files /dev/null and b/docs/figs/dynamics_variability_err_micro_hexapod_x.pdf differ diff --git a/docs/figs/dynamics_variability_err_micro_hexapod_x.png b/docs/figs/dynamics_variability_err_micro_hexapod_x.png new file mode 100644 index 0000000..04e5545 Binary files /dev/null and b/docs/figs/dynamics_variability_err_micro_hexapod_x.png differ diff --git a/docs/figs/dynamics_variability_err_sample_w.pdf b/docs/figs/dynamics_variability_err_sample_w.pdf index a1ece40..cc6bc4d 100644 Binary files a/docs/figs/dynamics_variability_err_sample_w.pdf and b/docs/figs/dynamics_variability_err_sample_w.pdf differ diff --git a/docs/figs/dynamics_variability_iff_micro_hexapod_x.pdf b/docs/figs/dynamics_variability_iff_micro_hexapod_x.pdf new file mode 100644 index 0000000..524a80a Binary files /dev/null and b/docs/figs/dynamics_variability_iff_micro_hexapod_x.pdf differ diff --git a/docs/figs/dynamics_variability_iff_micro_hexapod_x.png b/docs/figs/dynamics_variability_iff_micro_hexapod_x.png new file mode 100644 index 0000000..df8b053 Binary files /dev/null and b/docs/figs/dynamics_variability_iff_micro_hexapod_x.png differ diff --git a/docs/figs/dynamics_variability_iff_sample_w.pdf b/docs/figs/dynamics_variability_iff_sample_w.pdf index 9bfc7df..78c8cf7 100644 Binary files a/docs/figs/dynamics_variability_iff_sample_w.pdf and b/docs/figs/dynamics_variability_iff_sample_w.pdf differ diff --git a/docs/uncertainty_experiment.html b/docs/uncertainty_experiment.html new file mode 100644 index 0000000..03e74e5 --- /dev/null +++ b/docs/uncertainty_experiment.html @@ -0,0 +1,822 @@ + + + + + + + + + +Evaluating the Plant Uncertainty in various experimental conditions + + + + + + + + + + + + + + + +
+ UP + | + HOME +
+

Evaluating the Plant Uncertainty in various experimental conditions

+
+

Table of Contents

+ +
+ +

+The goal of this document is to study how the dynamics of the system is changing with the experimental conditions. +

+ +

+These experimental conditions are: +

+ + +

+We are interested in the dynamics from the nano-hexapod actuators to: +

+ + +

+The variability of the dynamics is studied for two nano-hexapod concepts: +

+ + +

+The conclusions are drawn in Section 7 +

+ +
+

1 Variation of the Sample Mass

+
+

+ +

+

+We here study the change of dynamics due to the sample mass. +To see only the effect of the sample mass, we keep the same resonance frequency of the sample, and we set it to 10kHz so it is above the dynamics of interest. +

+

+We initialize all the stages with the default parameters. +We identify the dynamics for the following sample masses, both with a soft and stiff nano-hexapod. +

+
+
masses = [1, 10, 50]; % [kg]
+
+
+

+The following transfer functions are shown: +

+
    +
  • Figure 1: From actuator forces to force sensors in each nano-hexapod’s leg
  • +
  • Figure 2: From actuator forces to relative displacement of each nano-hexapod’s leg
  • +
  • Figure 3 (resp. 4): From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction (resp. in the Z direction)
  • +
+ + +
+

dynamics_variability_iff_sample_mass.png +

+

Figure 1: Variability of the dynamics from actuator force to force sensor with the Sample Mass (png, pdf)

+
+ + +
+

dynamics_variability_dvf_sample_mass.png +

+

Figure 2: Variability of the dynamics from actuator force to relative motion sensor with the Sample Mass (png, pdf)

+
+ + +
+

dynamics_variability_err_x_sample_mass.png +

+

Figure 3: Variability of the dynamics from Forces applied in task space (X direction) to the displacement of the sample in the X direction (png, pdf)

+
+ + + +
+

dynamics_variability_err_z_sample_mass.png +

+

Figure 4: Variability of the dynamics from vertical forces applied in the task space to the displacement of the sample in the vertical direction (png, pdf)

+
+
+

+Let’s note \(\omega_0\) the first resonance which corresponds to the resonance of the payload+nano-hexapod top platform resonating on top of the nano-hexapod base. +

+ +

+An increase of the payload mass decreases \(\omega_0\). +This is more easily seem with the soft nano-hexapod as the resonance \(\omega_0\) is separated from the resonances of the micro-station. +

+ +
    +
  • For the soft nano-hexapod, the main effect is the change of \(\omega_0\).
  • +
  • For the stiff nano-hexapod, it also affects the others resonances corresponding to the resonances of the micro-station
  • +
+ + + + +++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + +
 \(\frac{\tau_{mi}}{\tau_m}\)\(\frac{d\mathcal{L}_i}{\tau_i}\)\(\frac{\mathcal{X}_i}{\mathcal{F}_i}\)
Soft Nano-HexapodChanges the low frequency gainChanges the high frequency gainChanges \(\omega_0\) and high frequency gain
Stiff Nano-HexapodChanges the location of the modes and low frequency gainChanges the location of the modes and high frequency gainChanges the dynamics above \(\omega_0\)
+ +
+
+
+ +
+

2 Variation of the Sample Resonance Frequency

+
+

+ +

+

+We initialize all the stages with the default parameters. +We identify the dynamics for the following sample resonance frequency. +

+
+
mass_w = [50, 100, 500]; % [Hz]
+mass = 10; % [Kg]
+
+
+

+The following transfer functions are shown: +

+
    +
  • Figure 5: From actuator forces to force sensors in each nano-hexapod’s leg
  • +
  • Figure 6: From actuator forces to relative displacement of each nano-hexapod’s leg
  • +
  • Figure 7: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
  • +
+ + +
+

dynamics_variability_iff_sample_w.png +

+

Figure 5: Variability of the dynamics from actuator force to force sensor with the Sample Mass (png, pdf)

+
+ + +
+

dynamics_variability_dvf_sample_w.png +

+

Figure 6: Variability of the dynamics from actuator force to relative motion sensor with the Sample Mass (png, pdf)

+
+ + +
+

dynamics_variability_err_sample_w.png +

+

Figure 7: Variability of the dynamics from a torque applied on the sample by the nano-hexapod in the X direction to the rotation of the sample around the X axis (png, pdf)

+
+
+

+Let’s note \(\omega_m\) the frequency of the resonance of the Payload. +

+ + + + +++ ++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + +
 \(\frac{\tau_{mi}}{\tau_m}\)\(\frac{d\mathcal{L}_i}{\tau_i}\)\(\frac{\mathcal{X}_i}{\mathcal{F}_i}\)
Soft Nano-HexapodNo visible effectSmall effect around \(\omega_m\)Two c.c. zeros at \(\omega_m\) followed by two c.c. poles
Stiff Nano-HexapodSlightly change the dynamicsSlightly change the dynamicsGreatly affect the dynamics above the first resonance
+ +
+
+
+ +
+

3 Variation of the Spindle Angle

+
+

+ +

+
+
+

3.1 Identification

+
+

+We identify the dynamics for the following Tilt stage angles. +

+
+
initializeSample('mass', 50);
+Rz_amplitudes = [0, pi/4, pi/2, pi]; % [rad]
+
+
+
+
+ +
+

+The following transfer functions are shown: +

+
    +
  • Figure 8: From actuator forces to force sensors in each nano-hexapod’s leg
  • +
  • Figure 9: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
  • +
+ + +
+

dynamics_variability_iff_spindle_angle.png +

+

Figure 8: Variability of the dynamics from the actuator force to the force sensor with the Spindle Angle (png, pdf)

+
+ + +
+

dynamics_variability_err_spindle_angle.png +

+

Figure 9: Variability of the dynamics from actuator force to absolute velocity with the Spindle Angle (png, pdf)

+
+
+ +
+
+

+The Spindle angle has no visible effect for the soft nano-hexapod. +

+ +

+It has little effect on the dynamics when a stiff nano-hexapod is used. +This is seem between 50Hz and 100Hz. +This is probably due to the fact that the micro-station compliance is not uniform in the X and Y directions. +

+ +
+
+
+ +
+

4 Variation of the Spindle Rotation Speed

+
+

+ +

+
+
+

4.1 Initialization of gravity compensation forces

+
+

+We initialize all the stages such that their joints are blocked and we record the total forces/torques applied in each of these joints. +We set a payload mass of 10Kg. +

+
+
initializeSample('type', 'init', 'mass', 10);
+nano_hexapod = initializeNanoHexapod( 'type', 'init');
+
+
+ +

+Finally, we simulate the system and same the forces/torques applied in each joint. +

+
+
+
+

4.2 Identification

+
+

+We initialize the stages with forces/torques compensating the gravity forces. +We identify the dynamics for the following Spindle rotation periods. +

+
+
Rz_periods = [60, 6, 2, 1]; % [s]
+
+
+
+
+ +
+

4.3 Plots

+
+

+The following transfer functions are shown: +

+
    +
  • Figure 10: From actuator forces to force sensors in each nano-hexapod’s leg
  • +
  • Figure 11: From actuator forces to relative displacement of each nano-hexapod’s leg
  • +
  • Figure 12: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
  • +
  • Figure 13: From forces applied in the task space in the X direction by the nano-hexapod to displacement of the sample in the Y direction (coupling)
  • +
+ + +
+

dynamics_variability_iff_spindle_speed.png +

+

Figure 10: Variability of the dynamics from the actuator force to the force sensor with the Spindle rotation speed (png, pdf)

+
+ + +
+

dynamics_variability_dvf_spindle_speed.png +

+

Figure 11: Variability of the dynamics from the actuator force to the relative motion sensor with the Spindle rotation speed (png, pdf)

+
+ + +
+

dynamics_variability_err_spindle_speed.png +

+

Figure 12: Variability of the dynamics from the actuator force in the task force to the position error of the sample (png, pdf)

+
+ + +
+

dynamics_variability_err_spindle_speed_coupling.png +

+

Figure 13: Variability of the coupling from the actuator force in the task force to the position error of the sample (png, pdf)

+
+
+
+ +
+
+

+For the stiff nano-hexapod, the rotation speed of the Spindle does not affect the (main) dynamics. +It only affects the coupling due to Coriolis forces. +

+ +

+For the soft nano-hexapod, it greatly affects the obtained dynamics around the main resonance which corresponds to the payload vibrating on top of the nano-hexapod. +

+ +

+This effect is similar to the one described in rotating machinery, the c.c. poles is separated into two sets of c.c. poles, one going to decreasing frequencies while the other going to positive frequencies. +This effect is due to centrifugal forces that can be modeled as negative stiffness. +At some point, one of the pair of c.c. pole becomes unstable. +

+ +

+Also, the coupling from forces applied in the X direction to induced displacement in the Y direction becomes very high when the rotating speed is increased. +

+ +
+
+
+ +
+

5 Variation of the Tilt Angle

+
+

+ +

+

+We initialize all the stages with the default parameters. +We identify the dynamics for the following Tilt stage angles. +

+
+
initializeSample('mass', 50);
+Ry_amplitudes = [-3*pi/180 0 3*pi/180]; % [rad]
+
+
+

+The following transfer functions are shown: +

+
    +
  • Figure 14: From actuator forces to force sensors in each nano-hexapod’s leg
  • +
  • Figure 15: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction
  • +
+ + +
+

dynamics_variability_iff_tilt_angle.png +

+

Figure 14: Variability of the dynamics from the actuator force to the force sensor with the Tilt stage Angle (png, pdf)

+
+ + +
+

dynamics_variability_err_tilt_angle.png +

+

Figure 15: Variability of the dynamics from the actuator force in the task space to the displacement of the sample (png, pdf)

+
+
+

+The tilt angle has no visible effect on the dynamics. +

+ +
+
+
+ +
+

6 Variation of the micro-hexapod pose

+
+

+ +

+

+We initialize all the stages with the default parameters. +We identify the dynamics for the following translations of the micro-hexapod in the X direction. +

+
+
Tx_amplitudes = [0, 5e-3, 10e-3]; % [m]
+
+
+ +
+

dynamics_variability_iff_micro_hexapod_x.png +

+

Figure 16: Variability of the dynamics from the actuator force to the force sensor with the Tilt stage Angle (png, pdf)

+
+ + +
+

dynamics_variability_err_micro_hexapod_x.png +

+

Figure 17: Variability of the dynamics from the actuator force in the task space to the displacement of the sample (png, pdf)

+
+
+

+The pose of the micro-hexapod has negligible effect on the dynamics. +

+ +
+
+
+ +
+

7 Conclusion

+
+

+ +

+ +
+

+From all the experimental condition studied, the only ones that have significant effect on the dynamics are: +

+
    +
  • the sample mass
  • +
  • the resonance frequency of the sample
  • +
  • the rotation speed of the spindle
  • +
+ + + + +++ ++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + +
 SoftStiff
Sample MassLocalized effect on the resonance of the sampleEffect on all the modes
Sample ResonanceLocalized effect at the resonance of the sampleEffect on all the modes
Rotation SpeedGreatly influences the dynamics and couplingNo effect
+ +
+
+
+
+
+

Author: Dehaeze Thomas

+

Created: 2020-04-01 mer. 16:16

+
+ + diff --git a/mat/dynamics_variability_Tx.mat b/mat/dynamics_variability_Tx.mat new file mode 100644 index 0000000..97b0c0c Binary files /dev/null and b/mat/dynamics_variability_Tx.mat differ diff --git a/matlab/nass_model.slx b/matlab/nass_model.slx index 4bfff95..d6c1287 100644 Binary files a/matlab/nass_model.slx and b/matlab/nass_model.slx differ diff --git a/org/uncertainty_experiment.org b/org/uncertainty_experiment.org index 1d0f951..b18aca9 100644 --- a/org/uncertainty_experiment.org +++ b/org/uncertainty_experiment.org @@ -45,12 +45,12 @@ The goal of this document is to study how the dynamics of the system is changing with the experimental conditions. These experimental conditions are: -- Sample mass (from 1Kg to 50Kg) -- Sample dynamics (mostly main resonance frequency) -- The spindle angle -- The spindle rotation speed (from 1rpm to 60rpm) -- The tilt angle (from -3 to 3 degrees) -- The scans of the translation stage +- Section [[sec:variability_sample_mass]]: Sample mass (from 1Kg to 50Kg) +- Section [[sec:variability_sample_freq]]: Sample dynamics (mostly main resonance frequency) +- Section [[sec:variability_spindle_angle]]: The spindle angle +- Section [[sec:variability_rotation_speed]]: The spindle rotation speed (from 1rpm to 60rpm) +- Section [[sec:variability_tilt_angle]]: The tilt angle (from -3 to 3 degrees) +- Section [[sec:micro_hexapod_pose]]: Pose of the micro-hexapod We are interested in the dynamics from the nano-hexapod actuators to: - the sensors included in the nano-hexapod (force sensor, relative motion sensor) @@ -60,6 +60,8 @@ The variability of the dynamics is studied for two nano-hexapod concepts: - a soft nano-hexapod - a stiff nano-hexapod +The conclusions are drawn in Section [[sec:conclusion]] + * Matlab Init :noexport:ignore: #+begin_src matlab :tangle no :exports none :results silent :noweb yes :var current_dir=(file-name-directory buffer-file-name) <> @@ -548,7 +550,7 @@ We identify the dynamics for the following sample resonance frequency. The following transfer functions are shown: - Figure [[fig:dynamics_variability_iff_sample_w]]: From actuator forces to force sensors in each nano-hexapod's leg - Figure [[fig:dynamics_variability_dvf_sample_w]]: From actuator forces to relative displacement of each nano-hexapod's leg -- Figure [[fig:dynamics_variability_err_x_sample_w]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction +- Figure [[fig:dynamics_variability_err_sample_w]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction #+begin_src matlab :exports none freqs = logspace(-1, 3, 1000); @@ -850,7 +852,7 @@ We identify the dynamics for the following Tilt stage angles. The following transfer functions are shown: - Figure [[fig:dynamics_variability_iff_spindle_angle]]: From actuator forces to force sensors in each nano-hexapod's leg -- Figure [[fig:dynamics_variability_err_x_spindle_angle]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction +- Figure [[fig:dynamics_variability_err_spindle_angle]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction #+begin_src matlab :exports none freqs = logspace(-1, 2, 1000); @@ -1478,7 +1480,7 @@ We identify the dynamics for the following Tilt stage angles. The following transfer functions are shown: - Figure [[fig:dynamics_variability_iff_tilt_angle]]: From actuator forces to force sensors in each nano-hexapod's leg -- Figure [[fig:dynamics_variability_err_x_tilt_angle]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction +- Figure [[fig:dynamics_variability_err_tilt_angle]]: From forces applied in the task space by the nano-hexapod to displacement of the sample in the X direction #+begin_src matlab :exports none freqs = logspace(-1, 2, 1000); @@ -1623,8 +1625,248 @@ The following transfer functions are shown: The tilt angle has no visible effect on the dynamics. #+end_important -* Conclusion +* Variation of the micro-hexapod pose +<> +** Introduction :ignore: +** Identification :ignore: +We initialize all the stages with the default parameters. +#+begin_src matlab :exports none :noweb yes + <> + <> + initializeSample('mass', 1); +#+end_src + +We identify the dynamics for the following translations of the micro-hexapod in the X direction. +#+begin_src matlab + Tx_amplitudes = [0, 5e-3, 10e-3]; % [m] +#+end_src + +#+begin_src matlab :exports none + nano_hexapod = initializeNanoHexapod('actuator', 'lorentz'); + + Gry_vc_iff = {zeros(length(Tx_amplitudes))}; + Gry_vc_dvf = {zeros(length(Tx_amplitudes))}; + Gry_vc_err = {zeros(length(Tx_amplitudes))}; + + for i = 1:length(Tx_amplitudes) + initializeMicroHexapod('AP', [Tx_amplitudes(i) 0 0]); + initializeReferences('Dh_type', 'constant', 'Dh_pos', [Tx_amplitudes(i) 0 0 0 0 0]) + + %% Run the linearization + G = linearize(mdl, io, 1e-3); + G.InputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}; + G.OutputName = {'Dnlm1', 'Dnlm2', 'Dnlm3', 'Dnlm4', 'Dnlm5', 'Dnlm6', ... + 'Fnlm1', 'Fnlm2', 'Fnlm3', 'Fnlm4', 'Fnlm5', 'Fnlm6', ... + 'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'}; + + Gtx_vc_iff(i) = {minreal(G({'Fnlm1', 'Fnlm2', 'Fnlm3', 'Fnlm4', 'Fnlm5', 'Fnlm6'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))}; + Gtx_vc_dvf(i) = {minreal(G({'Dnlm1', 'Dnlm2', 'Dnlm3', 'Dnlm4', 'Dnlm5', 'Dnlm6'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))}; + + Jinvt = tf(inv(nano_hexapod.J)'); + Jinvt.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'}; + Jinvt.OutputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}; + Gtx_vc_err(i) = {-minreal(G({'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))*Jinvt}; + end +#+end_src + +#+begin_src matlab :exports none + nano_hexapod = initializeNanoHexapod('actuator', 'piezo'); + + Gtx_pz_iff = {zeros(length(Tx_amplitudes))}; + Gtx_pz_dvf = {zeros(length(Tx_amplitudes))}; + Gtx_pz_err = {zeros(length(Tx_amplitudes))}; + + for i = 1:length(Tx_amplitudes) + initializeMicroHexapod('AP', [Tx_amplitudes(i) 0 0]); + initializeReferences('Dh_type', 'constant', 'Dh_pos', [Tx_amplitudes(i) 0 0 0 0 0]) + + %% Run the linearization + G = linearize(mdl, io, 1e-3); + G.InputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}; + G.OutputName = {'Dnlm1', 'Dnlm2', 'Dnlm3', 'Dnlm4', 'Dnlm5', 'Dnlm6', ... + 'Fnlm1', 'Fnlm2', 'Fnlm3', 'Fnlm4', 'Fnlm5', 'Fnlm6', ... + 'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'}; + + Gtx_pz_iff(i) = {minreal(G({'Fnlm1', 'Fnlm2', 'Fnlm3', 'Fnlm4', 'Fnlm5', 'Fnlm6'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))}; + Gtx_pz_dvf(i) = {minreal(G({'Dnlm1', 'Dnlm2', 'Dnlm3', 'Dnlm4', 'Dnlm5', 'Dnlm6'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))}; + + + Jinvt = tf(inv(nano_hexapod.J)'); + Jinvt.InputName = {'Fx', 'Fy', 'Fz', 'Mx', 'My', 'Mz'}; + Jinvt.OutputName = {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}; + Gtx_pz_err(i) = {-minreal(G({'Ex', 'Ey', 'Ez', 'Erx', 'Ery', 'Erz'}, {'Fnl1', 'Fnl2', 'Fnl3', 'Fnl4', 'Fnl5', 'Fnl6'}))*Jinvt}; + end +#+end_src + +#+begin_src matlab :exports none + save('./mat/dynamics_variability_Tx.mat', 'Tx_amplitudes', ... + 'Gtx_vc_iff', 'Gtx_vc_dvf', 'Gtx_vc_err', ... + 'Gtx_pz_iff', 'Gtx_pz_dvf', 'Gtx_pz_err'); +#+end_src + + +** Plots :ignore: +#+begin_src matlab :exports none + load('./mat/dynamics_variability_Tx.mat'); +#+end_src + +#+begin_src matlab :exports none + freqs = logspace(-1, 2, 1000); + + figure; + + ax1 = subplot(2, 2, 1); + hold on; + for i = 1:length(Gtx_vc_iff) + plot(freqs, abs(squeeze(freqresp(Gtx_vc_iff{i}('Fnlm1', 'Fnl1'), freqs, 'Hz')))); + end + hold off; + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); + ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]); + title('Soft Nano-Hexapod'); + + ax2 = subplot(2, 2, 3); + hold on; + for i = 1:length(Gtx_vc_iff) + plot(freqs, 180/pi*angle(squeeze(freqresp(Gtx_vc_iff{i}('Fnlm1', 'Fnl1'), freqs, 'Hz'))), ... + 'DisplayName', sprintf('$T_x = %.0f$ [m]', 1e3*Tx_amplitudes(i))); + end + hold off; + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); + ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); + ylim([-180, 180]); + yticks([-180, -90, 0, 90, 180]); + legend('location', 'northeast'); + + linkaxes([ax1,ax2],'x'); + xlim([freqs(1), freqs(end)]); + + freqs = logspace(0, 3, 1000); + + ax1 = subplot(2, 2, 2); + hold on; + for i = 1:length(Gtx_pz_iff) + plot(freqs, abs(squeeze(freqresp(Gtx_pz_iff{i}('Fnlm1', 'Fnl1'), freqs, 'Hz')))); + end + hold off; + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); + ylabel('Amplitude [N/N]'); set(gca, 'XTickLabel',[]); + title('Stiff Nano-Hexapod'); + + ax2 = subplot(2, 2, 4); + hold on; + for i = 1:length(Gtx_pz_iff) + plot(freqs, 180/pi*angle(squeeze(freqresp(Gtx_pz_iff{i}('Fnlm1', 'Fnl1'), freqs, 'Hz'))), ... + 'DisplayName', sprintf('$T_x = %.0f$ [m]', 1e3*Tx_amplitudes(i))); + end + hold off; + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); + ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); + ylim([-180, 180]); + yticks([-180, -90, 0, 90, 180]); + legend('location', 'northeast'); + + linkaxes([ax1,ax2],'x'); + xlim([freqs(1), freqs(end)]); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/dynamics_variability_iff_micro_hexapod_x.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") +<> +#+end_src + +#+name: fig:dynamics_variability_iff_micro_hexapod_x +#+caption: Variability of the dynamics from the actuator force to the force sensor with the Tilt stage Angle ([[./figs/dynamics_variability_iff_micro_hexapod_x.png][png]], [[./figs/dynamics_variability_iff_micro_hexapod_x.pdf][pdf]]) +[[file:figs/dynamics_variability_iff_micro_hexapod_x.png]] + +#+begin_src matlab :exports none + freqs = logspace(-1, 3, 1000); + + figure; + + ax1 = subplot(2, 2, 1); + hold on; + for i = 1:length(Gtx_vc_err) + plot(freqs, abs(squeeze(freqresp(Gtx_vc_err{i}('Erx', 'Mx'), freqs, 'Hz')))); + end + hold off; + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); + ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]); + title('Soft Nano-Hexapod'); + + ax2 = subplot(2, 2, 3); + hold on; + for i = 1:length(Gtx_vc_err) + plot(freqs, 180/pi*angle(squeeze(freqresp(Gtx_vc_err{i}('Erx', 'Mx'), freqs, 'Hz'))), ... + 'DisplayName', sprintf('$T_x = %.0f$ [m]', 1e3*Tx_amplitudes(i))); + end + hold off; + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); + ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); + ylim([-180, 180]); + yticks([-180, -90, 0, 90, 180]); + legend('location', 'northeast'); + + linkaxes([ax1,ax2],'x'); + xlim([freqs(1), freqs(end)]); + + freqs = logspace(0, 3, 1000); + + ax1 = subplot(2, 2, 2); + hold on; + for i = 1:length(Gtx_pz_err) + plot(freqs, abs(squeeze(freqresp(Gtx_pz_err{i}('Erx', 'Mx'), freqs, 'Hz')))); + end + hold off; + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log'); + ylabel('Amplitude [m/N]'); set(gca, 'XTickLabel',[]); + title('Stiff Nano-Hexapod'); + + ax2 = subplot(2, 2, 4); + hold on; + for i = 1:length(Gtx_pz_err) + plot(freqs, 180/pi*angle(squeeze(freqresp(Gtx_pz_err{i}('Erx', 'Mx'), freqs, 'Hz'))), ... + 'DisplayName', sprintf('$T_x = %.0f$ [m]', 1e3*Tx_amplitudes(i))); + end + hold off; + set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin'); + ylabel('Phase [deg]'); xlabel('Frequency [Hz]'); + ylim([-180, 180]); + yticks([-180, -90, 0, 90, 180]); + legend('location', 'northeast'); + + linkaxes([ax1,ax2],'x'); + xlim([freqs(1), freqs(end)]); +#+end_src + +#+HEADER: :tangle no :exports results :results none :noweb yes +#+begin_src matlab :var filepath="figs/dynamics_variability_err_micro_hexapod_x.pdf" :var figsize="full-tall" :post pdf2svg(file=*this*, ext="png") +<> +#+end_src + +#+name: fig:dynamics_variability_err_micro_hexapod_x +#+caption: Variability of the dynamics from the actuator force in the task space to the displacement of the sample ([[./figs/dynamics_variability_err_micro_hexapod_x.png][png]], [[./figs/dynamics_variability_err_micro_hexapod_x.pdf][pdf]]) +[[file:figs/dynamics_variability_err_micro_hexapod_x.png]] + +** Conclusion :ignore: #+begin_important + The pose of the micro-hexapod has negligible effect on the dynamics. +#+end_important + +* Conclusion +<> + +#+begin_important + From all the experimental condition studied, the only ones that have significant effect on the dynamics are: + - the *sample mass* + - the *resonance frequency of the sample* + - the *rotation speed* of the spindle + +| | Soft | Stiff | +|------------------+-------------------------------------------------+-------------------------| +| Sample Mass | Localized effect on the resonance of the sample | Effect on all the modes | +| Sample Resonance | Localized effect at the resonance of the sample | Effect on all the modes | +| Rotation Speed | Greatly influences the dynamics and coupling | No effect | #+end_important * Useful Blocks :noexport: