Add NASS LIBRARY for simscape

This commit is contained in:
Thomas Dehaeze 2018-10-25 11:00:30 +02:00
parent 5aa652167f
commit abe9a2ffdd
12 changed files with 46 additions and 18 deletions

View File

@ -3,7 +3,7 @@ clear; close all; clc;
%% Initialize simulation configuration %% Initialize simulation configuration
opts_sim = struct(... opts_sim = struct(...
'Tsim', 1 ... 'Tsim', 1 ...
); );
initializeSimConf(opts_sim); initializeSimConf(opts_sim);
@ -14,10 +14,10 @@ load('./mat/sim_conf.mat', 'sim_conf')
time_vector = 0:sim_conf.Ts:sim_conf.Tsim; time_vector = 0:sim_conf.Ts:sim_conf.Tsim;
% Translation Stage % Translation Stage
ty = 0.05*ones(length(time_vector), 1); ty = 0*ones(length(time_vector), 1);
% Tilt Stage % Tilt Stage
ry = 2*pi*(3/360)*ones(length(time_vector), 1); ry = 2*pi*(0/360)*ones(length(time_vector), 1);
% ry = 2*pi*(3/360)*sin(2*pi*time_vector); % ry = 2*pi*(3/360)*sin(2*pi*time_vector);
% Spindle % Spindle

View File

@ -2,4 +2,4 @@
clear; close all; clc; clear; close all; clc;
%% %%
sim('Micro_Station_Displacement.slx'); sim('Micro_Station_Displacement.slx');

View File

@ -2,7 +2,7 @@
clear; close all; clc; clear; close all; clc;
%% Load the identified transfer functions %% Load the identified transfer functions
save('./mat/G.mat', 'G_light_vc', 'G_light_pz', 'G_heavy_vc', 'G_heavy_pz'); load('./mat/G.mat', 'G_light_vc', 'G_light_pz', 'G_heavy_vc', 'G_heavy_pz');
%% Load Configuration file %% Load Configuration file
load('./mat/config.mat', 'save_fig', 'freqs'); load('./mat/config.mat', 'save_fig', 'freqs');

View File

@ -13,7 +13,7 @@ options = linearizeOptions;
options.SampleTime = 0; options.SampleTime = 0;
%% Name of the Simulink File %% Name of the Simulink File
mdl = 'simscape_id_micro_station'; mdl = 'sim_micro_station';
%% Micro-Hexapod %% Micro-Hexapod
% Input/Output definition % Input/Output definition
@ -32,11 +32,11 @@ G_ms_flexible = linearize(mdl, io, 0);
% Input/Output names % Input/Output names
G_ms_flexible.InputName = {'Fmx', 'Fmy', 'Fmz',... G_ms_flexible.InputName = {'Fmx', 'Fmy', 'Fmz',...
'Fgx', 'Fgy', 'Fgz'}; 'Fgx', 'Fgy', 'Fgz'};
G_ms_flexible.OutputName = {'Dmx', 'Dmy', 'Dmz', ... G_ms_flexible.OutputName = {'Dmx', 'Dmy', 'Dmz', ...
'Tyx', 'Tyy', 'Tyz', ... 'Tyx', 'Tyy', 'Tyz', ...
'Ryx', 'Ryy', 'Ryz', ... 'Ryx', 'Ryy', 'Ryz', ...
'Dgx', 'Dgy', 'Dgz'}; 'Dgx', 'Dgy', 'Dgz'};
%% Run the linearization %% Run the linearization
initializeTy(struct('rigid', true)); initializeTy(struct('rigid', true));

View File

@ -30,3 +30,13 @@ run id_stages.m
% Plot de obtained transfer functions % Plot de obtained transfer functions
run id_stages_plots.m run id_stages_plots.m
%% Identification of the variation of the plant
run id_plant_variation.m
run id_plant_variation_plots.m
%% Study the effect of the flexibility of each Stage
run id_flexible_rigid.m
run id_flexible_rigid_plots.m

View File

@ -11,7 +11,7 @@ options = linearizeOptions;
options.SampleTime = 0; options.SampleTime = 0;
%% Name of the Simulink File %% Name of the Simulink File
mdl = 'simscape_id_micro_station'; mdl = 'sim_micro_station';
%% Micro-Hexapod %% Micro-Hexapod
% Input/Output definition % Input/Output definition

View File

@ -2,8 +2,9 @@
clear; close all; clc; clear; close all; clc;
%% %%
K = tf(zeros(6));
K_iff = tf(zeros(6)); K_iff = tf(zeros(6));
save('./mat/controllers.mat', 'K_iff', '-append'); save('./mat/controllers.mat', 'K', 'K_iff', '-append');
%% Light Sample %% Light Sample
initializeSample(struct('mass', 1)); initializeSample(struct('mass', 1));

View File

@ -1,10 +1,17 @@
function [] = initializeGranite() function [granite] = initializeGranite()
%% %%
granite = struct(); granite = struct();
granite.m = 2000; % [kg] granite.m = 2000; % [kg]
granite.k.ax = 1e8; % [N/m] x-y-z Stiffness of the granite
granite.c.ax = 1e4; % [N/(m/s)] granite.k.x = 1e8; % [N/m]
granite.c.x = 1e4; % [N/(m/s)]
granite.k.y = 1e8; % [N/m]
granite.c.y = 1e4; % [N/(m/s)]
granite.k.z = 1e8; % [N/m]
granite.c.z = 1e4; % [N/(m/s)]
%% Save %% Save
save('./mat/stages.mat', 'granite', '-append'); save('./mat/stages.mat', 'granite', '-append');

View File

@ -1,4 +1,4 @@
function [] = initializeMicroHexapod(opts_param) function [micro_hexapod] = initializeMicroHexapod(opts_param)
%% Default values for opts %% Default values for opts
opts = struct(); opts = struct();

View File

@ -1,4 +1,4 @@
function [] = initializeSample(opts_param) function [sample] = initializeSample(opts_param)
%% Default values for opts %% Default values for opts
sample = struct('radius', 100, ... sample = struct('radius', 100, ...
'height', 300, ... 'height', 300, ...
@ -13,7 +13,17 @@ function [] = initializeSample(opts_param)
sample.(opt{1}) = opts_param.(opt{1}); sample.(opt{1}) = opts_param.(opt{1});
end end
end end
%%
sample.k.x = 1e8;
sample.c.x = sqrt(sample.k.x*sample.mass)/10;
%% Save if no output argument sample.k.y = 1e8;
sample.c.y = sqrt(sample.k.y*sample.mass)/10;
sample.k.z = 1e8;
sample.c.z = sqrt(sample.k.y*sample.mass)/10;
%% Save
save('./mat/stages.mat', 'sample', '-append'); save('./mat/stages.mat', 'sample', '-append');
end end

BIN
nass_library.slx Normal file

Binary file not shown.