Remove simscape file for disturbances
Now the new configurable simscape file is compatible with the disturbance analysis
This commit is contained in:
@@ -185,7 +185,7 @@ This file is divided in the following sections:
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
open('disturbances/matlab/sim_micro_station_disturbances.slx')
|
||||
open('nass_model.slx')
|
||||
#+end_src
|
||||
|
||||
* Simscape Model
|
||||
@@ -197,10 +197,6 @@ However, we here constrain all the stage to only move in the vertical direction.
|
||||
We add disturbances forces in the vertical direction for the Translation Stage and the Spindle.
|
||||
Also, we measure the absolute displacement of the granite and of the top platform of the Hexapod.
|
||||
|
||||
#+begin_src matlab
|
||||
open('disturbances/matlab/sim_micro_station_disturbances.slx');
|
||||
#+end_src
|
||||
|
||||
We load the configuration and we set a small =StopTime=.
|
||||
#+begin_src matlab
|
||||
load('mat/conf_simulink.mat');
|
||||
@@ -210,15 +206,15 @@ We load the configuration and we set a small =StopTime=.
|
||||
We initialize all the stages.
|
||||
#+begin_src matlab
|
||||
initializeGround();
|
||||
initializeGranite();
|
||||
initializeGranite('type', 'modal-analysis');
|
||||
initializeTy();
|
||||
initializeRy();
|
||||
initializeRz();
|
||||
initializeMicroHexapod();
|
||||
initializeAxisc();
|
||||
initializeMirror();
|
||||
initializeNanoHexapod('actuator', 'piezo');
|
||||
initializeSample('mass', 50);
|
||||
initializeMicroHexapod('type', 'modal-analysis');
|
||||
initializeAxisc('type', 'none');
|
||||
initializeMirror('type', 'none');
|
||||
initializeNanoHexapod('type', 'none');
|
||||
initializeSample('type', 'none');
|
||||
#+end_src
|
||||
|
||||
* Identification
|
||||
@@ -226,32 +222,43 @@ We initialize all the stages.
|
||||
The transfer functions from the disturbance forces to the relative velocity of the hexapod with respect to the granite are computed using the Simscape Model representing the experimental setup with the code below.
|
||||
|
||||
#+begin_src matlab
|
||||
%% Options for Linearized
|
||||
options = linearizeOptions;
|
||||
options.SampleTime = 0;
|
||||
%% Options for Linearized
|
||||
options = linearizeOptions;
|
||||
options.SampleTime = 0;
|
||||
|
||||
%% Name of the Simulink File
|
||||
mdl = 'sim_micro_station_disturbances';
|
||||
%% Name of the Simulink File
|
||||
mdl = 'nass_model';
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
%% Micro-Hexapod
|
||||
% Input/Output definition
|
||||
io(1) = linio([mdl, '/Dw'], 1, 'input'); % Ground Motion
|
||||
io(2) = linio([mdl, '/Fty'], 1, 'input'); % Parasitic force Ty
|
||||
io(3) = linio([mdl, '/Frz'], 1, 'input'); % Parasitic force Rz
|
||||
io(4) = linio([mdl, '/Dgm'], 1, 'output'); % Absolute motion - Granite
|
||||
io(5) = linio([mdl, '/Dhm'], 1, 'output'); % Absolute Motion - Hexapod
|
||||
io(6) = linio([mdl, '/Vm'], 1, 'output'); % Relative Velocity hexapod/granite
|
||||
clear io; io_i = 1;
|
||||
io(io_i) = linio([mdl, '/Disturbances'], 1, 'openinput', [], 'Dwz'); io_i = io_i + 1; % Vertical Ground Motion
|
||||
io(io_i) = linio([mdl, '/Disturbances'], 1, 'openinput', [], 'Fty_z'); io_i = io_i + 1; % Parasitic force Ty
|
||||
io(io_i) = linio([mdl, '/Disturbances'], 1, 'openinput', [], 'Frz_z'); io_i = io_i + 1; % Parasitic force Rz
|
||||
io(io_i) = linio([mdl, '/Micro-Station/Granite/Modal Analysis/accelerometer'], 1, 'openoutput'); io_i = io_i + 1; % Absolute motion - Granite
|
||||
io(io_i) = linio([mdl, '/Micro-Station/Micro Hexapod/Modal Analysis/accelerometer'], 1, 'openoutput'); io_i = io_i + 1; % Absolute Motion - Hexapod
|
||||
% io(io_i) = linio([mdl, '/Vm'], 1, 'openoutput'); io_i = io_i + 1; % Relative Velocity hexapod/granite
|
||||
#+end_src
|
||||
|
||||
#+begin_src matlab
|
||||
% Run the linearization
|
||||
G = linearize(mdl, io, 0);
|
||||
% Run the linearization
|
||||
G = linearize(mdl, io, 0);
|
||||
|
||||
% Input/Output names
|
||||
G.InputName = {'Dw', 'Fty', 'Frz'};
|
||||
G.OutputName = {'Dgm', 'Dhm', 'Vm'};
|
||||
% We Take only the outputs corresponding to the vertical acceleration
|
||||
G = G([3,9], :);
|
||||
|
||||
% Input/Output names
|
||||
G.InputName = {'Dw', 'Fty', 'Frz'};
|
||||
G.OutputName = {'Agm', 'Ahm'};
|
||||
|
||||
% We integrate 1 time the output to have the velocity and we
|
||||
% substract the absolute velocities to have the relative velocity
|
||||
G = (1/s)*tf([-1, 1])*G;
|
||||
|
||||
% Input/Output names
|
||||
G.InputName = {'Dw', 'Fty', 'Frz'};
|
||||
G.OutputName = {'Vm'};
|
||||
#+end_src
|
||||
|
||||
* Sensitivity to Disturbances
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user