diff --git a/.gitignore b/.gitignore index 86c0039..474652b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,12 +7,12 @@ # Compiled MEX binaries (all platforms) *.mex* -# Packaged app and toolbox files -*.mlappinstall -*.mltbx - -# Generated helpsearch folders -helpsearch*/ +# Packaged app and toolbox files +*.mlappinstall +*.mltbx + +# Generated helpsearch folders +helpsearch*/ # Simulink code generation folders slprj/ @@ -28,4 +28,4 @@ octave-workspace Assemblage_grt_rtw/ Figures/ data/ -Videos/ +movies/ diff --git a/Micro_Station_Identification.slx b/Identification/Micro_Station_Identification.slx similarity index 100% rename from Micro_Station_Identification.slx rename to Identification/Micro_Station_Identification.slx diff --git a/Identification/identification_G.m b/Identification/identification_G.m index 8ff93bb..21a5d12 100644 --- a/Identification/identification_G.m +++ b/Identification/identification_G.m @@ -21,64 +21,5 @@ initializeSample(struct('mass', 50)); [G_50, G_50_raw] = identifyG(); -%% -freqs = logspace(0, 3, 1000); - -bodeFig({G_1(1, 1), G_1(2, 2), G_1(3, 3)}, freqs, struct('phase', true)) -legend({'$F_{n_x} \rightarrow D_{x}$ - $M = 1Kg$', ... - '$F_{n_y} \rightarrow D_{y}$ - $M = 1Kg$', ... - '$F_{n_z} \rightarrow D_{z}$ - $M = 1Kg$'}) -legend('location', 'southwest') -exportFig('G_xyz_1', 'normal-normal') - -bodeFig({G_20(1, 1), G_20(2, 2), G_20(3, 3)}, struct('phase', true)) -legend({'$F_{n_x} \rightarrow D_{x}$ - $M = 20Kg$', ... - '$F_{n_y} \rightarrow D_{y}$ - $M = 20Kg$', ... - '$F_{n_z} \rightarrow D_{z}$ - $M = 20Kg$'}) -legend('location', 'southwest') -exportFig('G_xyz_20', 'normal-normal') - -bodeFig({G_1(1, 1), G_20(1, 1), G_50(1, 1)}, struct('phase', true)) -legend({'$F_{n_x} \rightarrow D_{x}$ - $M = 1Kg$', ... - '$F_{n_x} \rightarrow D_{x}$ - $M = 20Kg$', ... - '$F_{n_x} \rightarrow D_{x}$ - $M = 50Kg$'}) -legend('location', 'southwest') -exportFig('G_x_mass', 'normal-normal') - -bodeFig({G_1(2, 2), G_20(2, 2), G_50(2, 2)}, struct('phase', true)) -legend({'$F_{n_y} \rightarrow D_{y}$ - $M = 1Kg$', ... - '$F_{n_y} \rightarrow D_{y}$ - $M = 20Kg$', ... - '$F_{n_y} \rightarrow D_{y}$ - $M = 50Kg$'}) -legend('location', 'southwest') -exportFig('G_y_mass', 'half-normal') - -bodeFig({G_1(3, 3), G_20(3, 3), G_50(3, 3)}, struct('phase', true)) -legend({'$F_{n_z} \rightarrow D_{z}$ - $M = 1Kg$', ... - '$F_{n_z} \rightarrow D_{z}$ - $M = 20Kg$', ... - '$F_{n_z} \rightarrow D_{z}$ - $M = 50Kg$'}) -legend('location', 'southwest') -exportFig('G_z_mass', 'normal-normal') - - -%% -bodeFig({G_1(2, 2), G_20(2, 2), G_50(2, 2)}, freqs, struct('phase', true)) -legend({'$M = 1Kg$', ... - '$M = 20Kg$', ... - '$M = 50Kg$'}) -exportFig('G_y_mass_article', 'half-normal') - -%% +%% Save the obtained transfer functions save('./mat/G_f_to_d.mat', 'G_1', 'G_20', 'G_50'); - - -%% -freqs = logspace(-1, 3, 1000); -bodeFig({G_1(1, 1), G_20(1, 1), G_50(1, 1)}, freqs, struct('phase', true)) -ylabel('Amplitude [m/N]'); -legend({'$1Kg$', ... - '$20Kg$', ... - '$50Kg$'}) -legend('location', 'southwest') -set(gca,'YTick',[1e-8, 1e-6, 1e-4]) -ylim([1e-9, 1e-3]) -exportFig('G_x_mass', 'half-short', struct('tikz', true)) diff --git a/identification/id_G_plots.m b/identification/id_G_plots.m new file mode 100644 index 0000000..7395966 --- /dev/null +++ b/identification/id_G_plots.m @@ -0,0 +1,63 @@ +%% +clear; close all; clc; + +%% Load the transfer functions +load('./mat/G_f_to_d.mat', 'G_1', 'G_20', 'G_50'); + +%% +freqs = logspace(0, 3, 1000); + +bodeFig({G_1(1, 1), G_1(2, 2), G_1(3, 3)}, freqs, struct('phase', true)) +legend({'$F_{n_x} \rightarrow D_{x}$ - $M = 1Kg$', ... + '$F_{n_y} \rightarrow D_{y}$ - $M = 1Kg$', ... + '$F_{n_z} \rightarrow D_{z}$ - $M = 1Kg$'}) +legend('location', 'southwest') +exportFig('G_xyz_1', 'normal-normal') + +bodeFig({G_20(1, 1), G_20(2, 2), G_20(3, 3)}, struct('phase', true)) +legend({'$F_{n_x} \rightarrow D_{x}$ - $M = 20Kg$', ... + '$F_{n_y} \rightarrow D_{y}$ - $M = 20Kg$', ... + '$F_{n_z} \rightarrow D_{z}$ - $M = 20Kg$'}) +legend('location', 'southwest') +exportFig('G_xyz_20', 'normal-normal') + +bodeFig({G_1(1, 1), G_20(1, 1), G_50(1, 1)}, struct('phase', true)) +legend({'$F_{n_x} \rightarrow D_{x}$ - $M = 1Kg$', ... + '$F_{n_x} \rightarrow D_{x}$ - $M = 20Kg$', ... + '$F_{n_x} \rightarrow D_{x}$ - $M = 50Kg$'}) +legend('location', 'southwest') +exportFig('G_x_mass', 'normal-normal') + +bodeFig({G_1(2, 2), G_20(2, 2), G_50(2, 2)}, struct('phase', true)) +legend({'$F_{n_y} \rightarrow D_{y}$ - $M = 1Kg$', ... + '$F_{n_y} \rightarrow D_{y}$ - $M = 20Kg$', ... + '$F_{n_y} \rightarrow D_{y}$ - $M = 50Kg$'}) +legend('location', 'southwest') +exportFig('G_y_mass', 'half-normal') + +bodeFig({G_1(3, 3), G_20(3, 3), G_50(3, 3)}, struct('phase', true)) +legend({'$F_{n_z} \rightarrow D_{z}$ - $M = 1Kg$', ... + '$F_{n_z} \rightarrow D_{z}$ - $M = 20Kg$', ... + '$F_{n_z} \rightarrow D_{z}$ - $M = 50Kg$'}) +legend('location', 'southwest') +exportFig('G_z_mass', 'normal-normal') + + +%% +bodeFig({G_1(2, 2), G_20(2, 2), G_50(2, 2)}, freqs, struct('phase', true)) +legend({'$M = 1Kg$', ... + '$M = 20Kg$', ... + '$M = 50Kg$'}) +exportFig('G_y_mass_article', 'half-normal') + +%% +freqs = logspace(-1, 3, 1000); +bodeFig({G_1(1, 1), G_20(1, 1), G_50(1, 1)}, freqs, struct('phase', true)) +ylabel('Amplitude [m/N]'); +legend({'$1Kg$', ... + '$20Kg$', ... + '$50Kg$'}) +legend('location', 'southwest') +set(gca,'YTick',[1e-8, 1e-6, 1e-4]) +ylim([1e-9, 1e-3]) +exportFig('G_x_mass', 'half-short') diff --git a/init_demonstration.m b/init_data_demonstration.m similarity index 95% rename from init_demonstration.m rename to init_data_demonstration.m index 8b42cc1..f57e10d 100644 --- a/init_demonstration.m +++ b/init_data_demonstration.m @@ -57,16 +57,15 @@ mass((T_mass_start+2)/sim_conf.Ts:(T_mass_start+3)/sim_conf.Ts, 2) = mass((T_mas mass((T_mass_start+3)/sim_conf.Ts:(T_mass_start+5)/sim_conf.Ts, 1) = mass((T_mass_start+2)/sim_conf.Ts, 1)-2*pi*( 20/360)*(time_vector((T_mass_start+3)/sim_conf.Ts:(T_mass_start+5)/sim_conf.Ts)-time_vector((T_mass_start+3)/sim_conf.Ts)); mass((T_mass_start+3)/sim_conf.Ts:(T_mass_start+5)/sim_conf.Ts, 2) = mass((T_mass_start+2)/sim_conf.Ts, 2)-2*pi*(-10/360)*(time_vector((T_mass_start+3)/sim_conf.Ts:(T_mass_start+5)/sim_conf.Ts)-time_vector((T_mass_start+3)/sim_conf.Ts)); -% opts_inputs = struct(... -% 'ty', ty, ... -% 'ry', ry, ... -% 'rz', rz, ... -% 'u_hexa', u_hexa, ... -% 'mass', mass ... -% ); +opts_inputs = struct(... + 'ty', ty, ... + 'ry', ry, ... + 'rz', rz, ... + 'u_hexa', u_hexa, ... + 'mass', mass ... +); -% initializeInputs(opts_inputs); -initializeInputs(); +initializeInputs(opts_inputs); %% Initialize SolidWorks Data initializeSmiData(); diff --git a/main.m b/main.m index 29ea38a..01d88a4 100644 --- a/main.m +++ b/main.m @@ -15,4 +15,4 @@ run init_data.m run run_simulations.m %% Demonstration of displacement of all the stages -run init_demonstration.m \ No newline at end of file +run init_data_demonstration.m \ No newline at end of file