Add study on the active damping plants variability

This commit is contained in:
Thomas Dehaeze 2020-02-04 16:13:52 +01:00
parent f927b69fa7
commit 94299f882f
48 changed files with 2015 additions and 1503 deletions
active_damping
figs
act_damp_variability_dvf_sample_mass.pdfact_damp_variability_dvf_sample_mass.pngact_damp_variability_dvf_spindle_angle.pdfact_damp_variability_dvf_spindle_angle.pngact_damp_variability_dvf_spindle_speed.pdfact_damp_variability_dvf_spindle_speed.pngact_damp_variability_dvf_spindle_speed_zoom.pdfact_damp_variability_dvf_spindle_speed_zoom.pngact_damp_variability_dvf_tilt_angle.pdfact_damp_variability_dvf_tilt_angle.pngact_damp_variability_dvf_ty_scans.pdfact_damp_variability_dvf_ty_scans.pngact_damp_variability_iff_sample_mass.pdfact_damp_variability_iff_sample_mass.pngact_damp_variability_iff_spindle_angle.pdfact_damp_variability_iff_spindle_angle.pngact_damp_variability_iff_spindle_speed.pdfact_damp_variability_iff_spindle_speed.pngact_damp_variability_iff_spindle_speed_zoom.pdfact_damp_variability_iff_spindle_speed_zoom.pngact_damp_variability_iff_tilt_angle.pdfact_damp_variability_iff_tilt_angle.pngact_damp_variability_iff_ty_scans.pdfact_damp_variability_iff_ty_scans.pngact_damp_variability_ine_sample_mass.pdfact_damp_variability_ine_sample_mass.pngact_damp_variability_ine_spindle_angle.pdfact_damp_variability_ine_spindle_angle.pngact_damp_variability_ine_spindle_speed.pdfact_damp_variability_ine_spindle_speed.pngact_damp_variability_ine_spindle_speed_zoom.pdfact_damp_variability_ine_spindle_speed_zoom.pngact_damp_variability_ine_tilt_angle.pdfact_damp_variability_ine_tilt_angle.pngact_damp_variability_ine_ty_scans.pdfact_damp_variability_ine_ty_scans.pngcampbell_diagram_spindle_rotation.pdfcampbell_diagram_spindle_rotation.pngty_scanning_reference_sinus.pdfty_scanning_reference_sinus.pngvariation_zeros_active_damping_plants.pdfvariation_zeros_active_damping_plants.png
simscape_subsystems

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

(image error) Size: 107 KiB

After

(image error) Size: 126 KiB

Binary file not shown.

Before

(image error) Size: 98 KiB

After

(image error) Size: 95 KiB

Binary file not shown.

Before

(image error) Size: 109 KiB

After

(image error) Size: 117 KiB

Binary file not shown.

Before

(image error) Size: 93 KiB

After

(image error) Size: 116 KiB

Binary file not shown.

Before

(image error) Size: 88 KiB

After

(image error) Size: 111 KiB

Binary file not shown.

Binary file not shown.

After

(image error) Size: 112 KiB

Binary file not shown.

Before

(image error) Size: 147 KiB

After

(image error) Size: 148 KiB

Binary file not shown.

Before

(image error) Size: 129 KiB

After

(image error) Size: 129 KiB

Binary file not shown.

Before

(image error) Size: 123 KiB

After

(image error) Size: 132 KiB

Binary file not shown.

Before

(image error) Size: 77 KiB

After

(image error) Size: 112 KiB

Binary file not shown.

Before

(image error) Size: 119 KiB

After

(image error) Size: 125 KiB

Binary file not shown.

Binary file not shown.

After

(image error) Size: 127 KiB

Binary file not shown.

Before

(image error) Size: 123 KiB

After

(image error) Size: 140 KiB

Binary file not shown.

Before

(image error) Size: 110 KiB

After

(image error) Size: 126 KiB

Binary file not shown.

Before

(image error) Size: 120 KiB

After

(image error) Size: 132 KiB

Binary file not shown.

Before

(image error) Size: 76 KiB

After

(image error) Size: 102 KiB

Binary file not shown.

Before

(image error) Size: 98 KiB

After

(image error) Size: 120 KiB

Binary file not shown.

Binary file not shown.

After

(image error) Size: 123 KiB

Binary file not shown.

Binary file not shown.

After

(image error) Size: 30 KiB

Binary file not shown.

Binary file not shown.

After

(image error) Size: 26 KiB

Binary file not shown.

Binary file not shown.

After

(image error) Size: 47 KiB

@ -1123,36 +1123,36 @@ The =sample= structure is saved.
:UNNUMBERED: t :UNNUMBERED: t
:END: :END:
#+begin_src matlab #+begin_src matlab
%% Translation stage - Dy %% Translation stage - Dy
t = 0:Ts:Tmax; % Time Vector [s] t = 0:Ts:Tmax; % Time Vector [s]
Dy = zeros(length(t), 1); Dy = zeros(length(t), 1);
Dyd = zeros(length(t), 1); Dyd = zeros(length(t), 1);
Dydd = zeros(length(t), 1); Dydd = zeros(length(t), 1);
switch args.Dy_type switch args.Dy_type
case 'constant' case 'constant'
Dy(:) = args.Dy_amplitude; Dy(:) = args.Dy_amplitude;
Dyd(:) = 0; Dyd(:) = 0;
Dydd(:) = 0; Dydd(:) = 0;
case 'triangular' case 'triangular'
% This is done to unsure that we start with no displacement % This is done to unsure that we start with no displacement
Dy_raw = args.Dy_amplitude*sawtooth(2*pi*t/args.Dy_period,1/2); Dy_raw = args.Dy_amplitude*sawtooth(2*pi*t/args.Dy_period,1/2);
i0 = find(t>=args.Dy_period/4,1); i0 = find(t>=args.Dy_period/4,1);
Dy(1:end-i0+1) = Dy_raw(i0:end); Dy(1:end-i0+1) = Dy_raw(i0:end);
Dy(end-i0+2:end) = Dy_raw(end); % we fix the last value Dy(end-i0+2:end) = Dy_raw(end); % we fix the last value
% The signal is filtered out % The signal is filtered out
Dy = lsim(H_lpf, Dy, t); Dy = lsim(H_lpf, Dy, t);
Dyd = lsim(H_lpf*s, Dy, t); Dyd = lsim(H_lpf*s, Dy, t);
Dydd = lsim(H_lpf*s^2, Dy, t); Dydd = lsim(H_lpf*s^2, Dy, t);
case 'sinusoidal' case 'sinusoidal'
Dy(:) = args.Dy_amplitude*sin(2*pi/args.Dy_period*t); Dy(:) = args.Dy_amplitude*sin(2*pi/args.Dy_period*t);
Dyd = args.Dy_amplitude*2*pi/args.Dy_period*cos(2*pi/args.Dy_period*t); Dyd = args.Dy_amplitude*2*pi/args.Dy_period*cos(2*pi/args.Dy_period*t);
Dydd = -args.Dy_amplitude*(2*pi/args.Dy_period)^2*sin(2*pi/args.Dy_period*t); Dydd = -args.Dy_amplitude*(2*pi/args.Dy_period)^2*sin(2*pi/args.Dy_period*t);
otherwise otherwise
warning('Dy_type is not set correctly'); warning('Dy_type is not set correctly');
end end
Dy = struct('time', t, 'signals', struct('values', Dy), 'deriv', Dyd, 'dderiv', Dydd); Dy = struct('time', t, 'signals', struct('values', Dy), 'deriv', Dyd, 'dderiv', Dydd);
#+end_src #+end_src
** Tilt Stage ** Tilt Stage
@ -1160,37 +1160,37 @@ The =sample= structure is saved.
:UNNUMBERED: t :UNNUMBERED: t
:END: :END:
#+begin_src matlab #+begin_src matlab
%% Tilt Stage - Ry %% Tilt Stage - Ry
t = 0:Ts:Tmax; % Time Vector [s] t = 0:Ts:Tmax; % Time Vector [s]
Ry = zeros(length(t), 1); Ry = zeros(length(t), 1);
Ryd = zeros(length(t), 1); Ryd = zeros(length(t), 1);
Rydd = zeros(length(t), 1); Rydd = zeros(length(t), 1);
switch args.Ry_type switch args.Ry_type
case 'constant' case 'constant'
Ry(:) = args.Ry_amplitude; Ry(:) = args.Ry_amplitude;
Ryd(:) = 0; Ryd(:) = 0;
Rydd(:) = 0; Rydd(:) = 0;
case 'triangular' case 'triangular'
Ry_raw = args.Ry_amplitude*sawtooth(2*pi*t/args.Ry_period,1/2); Ry_raw = args.Ry_amplitude*sawtooth(2*pi*t/args.Ry_period,1/2);
i0 = find(t>=args.Ry_period/4,1); i0 = find(t>=args.Ry_period/4,1);
Ry(1:end-i0+1) = Ry_raw(i0:end); Ry(1:end-i0+1) = Ry_raw(i0:end);
Ry(end-i0+2:end) = Ry_raw(end); % we fix the last value Ry(end-i0+2:end) = Ry_raw(end); % we fix the last value
% The signal is filtered out % The signal is filtered out
Ry = lsim(H_lpf, Ry, t); Ry = lsim(H_lpf, Ry, t);
Ryd = lsim(H_lpf*s, Ry, t); Ryd = lsim(H_lpf*s, Ry, t);
Rydd = lsim(H_lpf*s^2, Ry, t); Rydd = lsim(H_lpf*s^2, Ry, t);
case 'sinusoidal' case 'sinusoidal'
Ry(:) = args.Ry_amplitude*sin(2*pi/args.Ry_period*t); Ry(:) = args.Ry_amplitude*sin(2*pi/args.Ry_period*t);
Ryd = args.Ry_amplitude*2*pi/args.Ry_period*cos(2*pi/args.Ry_period*t); Ryd = args.Ry_amplitude*2*pi/args.Ry_period*cos(2*pi/args.Ry_period*t);
Rydd = -args.Ry_amplitude*(2*pi/args.Ry_period)^2*sin(2*pi/args.Ry_period*t); Rydd = -args.Ry_amplitude*(2*pi/args.Ry_period)^2*sin(2*pi/args.Ry_period*t);
otherwise otherwise
warning('Ry_type is not set correctly'); warning('Ry_type is not set correctly');
end end
Ry = struct('time', t, 'signals', struct('values', Ry), 'deriv', Ryd, 'dderiv', Rydd); Ry = struct('time', t, 'signals', struct('values', Ry), 'deriv', Ryd, 'dderiv', Rydd);
#+end_src #+end_src
** Spindle ** Spindle
@ -1273,11 +1273,11 @@ The =sample= structure is saved.
:UNNUMBERED: t :UNNUMBERED: t
:END: :END:
#+begin_src matlab #+begin_src matlab
%% Axis Compensation - Rm %% Axis Compensation - Rm
t = [0, Ts]; t = [0, Ts];
Rm = [args.Rm_pos, args.Rm_pos]; Rm = [args.Rm_pos, args.Rm_pos];
Rm = struct('time', t, 'signals', struct('values', Rm)); Rm = struct('time', t, 'signals', struct('values', Rm));
#+end_src #+end_src
** Nano Hexapod ** Nano Hexapod
@ -1285,18 +1285,18 @@ The =sample= structure is saved.
:UNNUMBERED: t :UNNUMBERED: t
:END: :END:
#+begin_src matlab #+begin_src matlab
%% Nano-Hexapod %% Nano-Hexapod
t = [0, Ts]; t = [0, Ts];
Dn = zeros(length(t), 6); Dn = zeros(length(t), 6);
switch args.Dn_type switch args.Dn_type
case 'constant' case 'constant'
Dn = [args.Dn_pos, args.Dn_pos]; Dn = [args.Dn_pos, args.Dn_pos];
otherwise otherwise
warning('Dn_type is not set correctly'); warning('Dn_type is not set correctly');
end end
Dn = struct('time', t, 'signals', struct('values', Dn)); Dn = struct('time', t, 'signals', struct('values', Dn));
#+end_src #+end_src
** Save ** Save