Add NASS LIBRARY for simscape
This commit is contained in:
parent
5aa652167f
commit
abe9a2ffdd
Binary file not shown.
@ -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
|
||||||
|
@ -2,4 +2,4 @@
|
|||||||
clear; close all; clc;
|
clear; close all; clc;
|
||||||
|
|
||||||
%%
|
%%
|
||||||
sim('Micro_Station_Displacement.slx');
|
sim('Micro_Station_Displacement.slx');
|
||||||
|
@ -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');
|
||||||
|
@ -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));
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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));
|
||||||
|
@ -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');
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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
BIN
nass_library.slx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user