Add study on the active damping plants variability
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 109 KiB After Width: | Height: | Size: 117 KiB |
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 111 KiB |
BIN
figs/act_damp_variability_dvf_ty_scans.pdf
Normal file
BIN
figs/act_damp_variability_dvf_ty_scans.png
Normal file
After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 148 KiB |
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 112 KiB |
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 125 KiB |
BIN
figs/act_damp_variability_iff_ty_scans.pdf
Normal file
BIN
figs/act_damp_variability_iff_ty_scans.png
Normal file
After Width: | Height: | Size: 127 KiB |
Before Width: | Height: | Size: 123 KiB After Width: | Height: | Size: 140 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 120 KiB After Width: | Height: | Size: 132 KiB |
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 102 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 120 KiB |
BIN
figs/act_damp_variability_ine_ty_scans.pdf
Normal file
BIN
figs/act_damp_variability_ine_ty_scans.png
Normal file
After Width: | Height: | Size: 123 KiB |
BIN
figs/campbell_diagram_spindle_rotation.pdf
Normal file
BIN
figs/campbell_diagram_spindle_rotation.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
figs/ty_scanning_reference_sinus.pdf
Normal file
BIN
figs/ty_scanning_reference_sinus.png
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
figs/variation_zeros_active_damping_plants.pdf
Normal file
BIN
figs/variation_zeros_active_damping_plants.png
Normal file
After Width: | Height: | 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
|
||||||
|