Moved the old matlab files into matlab-old folder
This commit is contained in:
28
analysis/matlab-old/analysis_perturbations.m
Normal file
28
analysis/matlab-old/analysis_perturbations.m
Normal file
@@ -0,0 +1,28 @@
|
||||
%%
|
||||
clear; close all; clc;
|
||||
|
||||
%% Load Plant
|
||||
load('./mat/G_xg_to_d.mat', 'G_xg_to_d');
|
||||
|
||||
%% Load shape of the perturbation
|
||||
load('./mat/perturbations.mat', 'Wxg');
|
||||
|
||||
%% Effect of the perturbation on the output
|
||||
freqs = logspace(-1, 3, 1000);
|
||||
|
||||
dx_out = squeeze(abs(freqresp(Wxg*G_xg_to_d(1, 1), freqs, 'Hz')));
|
||||
dy_out = squeeze(abs(freqresp(Wxg*G_xg_to_d(2, 2), freqs, 'Hz')));
|
||||
dz_out = squeeze(abs(freqresp(Wxg*G_xg_to_d(3, 3), freqs, 'Hz')));
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs, dx_out, 'DisplayName', 'Effect of $Dg$ on $D_{x}$');
|
||||
plot(freqs, dy_out, 'DisplayName', 'Effect of $Dg$ on $D_{y}$');
|
||||
plot(freqs, dz_out, 'DisplayName', 'Effect of $Dg$ on $D_{z}$');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
legend('location', 'southwest');
|
||||
xlim([freqs(1), freqs(end)]);
|
||||
hold off;
|
||||
|
||||
exportFig('ground_motion_effect', 'normal-normal')
|
13
analysis/matlab-old/analyze_setpoint.m
Normal file
13
analysis/matlab-old/analyze_setpoint.m
Normal file
@@ -0,0 +1,13 @@
|
||||
%%
|
||||
Dmeas.Data = Dmeas.Data - Dmeas.Data(1, :);
|
||||
|
||||
%%
|
||||
figure;
|
||||
hold on;
|
||||
plot(r_setpoint.Time, r_setpoint.Data(:, 2));
|
||||
plot(Dmeas.Time, Dmeas.Data(:, 2));
|
||||
legend({'Setpoint', 'Ty'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('set_time_translations', 'normal-normal')
|
46
analysis/matlab-old/effect_ground_motion.m
Normal file
46
analysis/matlab-old/effect_ground_motion.m
Normal file
@@ -0,0 +1,46 @@
|
||||
%%
|
||||
clear; close all; clc;
|
||||
|
||||
%%
|
||||
load('./mat/Gd_ol_cl.mat', 'Gd_ol_20', 'Gd_cl_20');
|
||||
|
||||
%%
|
||||
load('./mat/perturbations.mat', 'Wxg')
|
||||
|
||||
%%
|
||||
load('./mat/G_gm_to_dh.mat', 'G_gm_to_dh')
|
||||
load('./mat/psd_ground_motion.mat', 'psd_f', 'pxx')
|
||||
|
||||
%%
|
||||
bodeFig({Gd_ol_20(1, 1), G_gm_to_dh})
|
||||
|
||||
%% PSD
|
||||
freqs = logspace(-2, 2, 1000);
|
||||
|
||||
gm_ol = abs(squeeze(freqresp(Wxg*Gd_ol_20(1, 1), freqs, 'Hz')));
|
||||
gm_cl = abs(squeeze(freqresp(Wxg*Gd_cl_20(1, 1), freqs, 'Hz')));
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs, gm_ol)
|
||||
plot(freqs, gm_cl)
|
||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [$Hz$]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
hold off;
|
||||
|
||||
%% CAS
|
||||
freqs = logspace(-1, 2, 1000);
|
||||
|
||||
gm_ol = abs(squeeze(freqresp(Wxg*Gd_ol_20(1, 1), freqs, 'Hz')));
|
||||
gm_cl = abs(squeeze(freqresp(Wxg*Gd_cl_20(1, 1), freqs, 'Hz')));
|
||||
|
||||
dw = freqs - [0, freqs(1:end-1)];
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs, cumsum(gm_ol'.*dw))
|
||||
plot(freqs, cumsum(gm_cl'.*dw))
|
||||
set(gca, 'XScale', 'log');
|
||||
% set(gca, 'YScale', 'log');
|
||||
xlabel('Frequency [Hz]'); ylabel('CAS [m]');
|
||||
hold off;
|
150
analysis/matlab-old/ground_motion_ol_cl.m
Normal file
150
analysis/matlab-old/ground_motion_ol_cl.m
Normal file
@@ -0,0 +1,150 @@
|
||||
%%
|
||||
clear; close all; clc;
|
||||
|
||||
%% Used to get sim_conf.Ts
|
||||
load('./mat/sim_conf.mat', 'sim_conf');
|
||||
|
||||
%% Load simulation results
|
||||
gm_ol = load('./data/ground_motion_ol.mat', 'Dsample');
|
||||
gm_cl = load('./data/ground_motion.mat', 'Dsample');
|
||||
|
||||
%%
|
||||
figure;
|
||||
hold on;
|
||||
plot(gm_ol.Dsample.Data(:, 1),gm_ol.Dsample.Data(:, 3))
|
||||
plot(gm_cl.Dsample.Data(:, 1),gm_cl.Dsample.Data(:, 3))
|
||||
legend({'OL', 'CL'})
|
||||
hold off;
|
||||
xlabel('Displacement - $x$ [s]'); ylabel('Displacement - $z$ [m]');
|
||||
|
||||
exportFig('gm_control_xz', 'half-short')
|
||||
|
||||
%% Compare OL and CL - Time
|
||||
figure;
|
||||
hold on;
|
||||
plot(gm_ol.Dsample.Time, gm_ol.Dsample.Data(:, 1));
|
||||
plot(gm_cl.Dsample.Time, gm_cl.Dsample.Data(:, 1));
|
||||
legend({'x - OL', 'x - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('gm_control_time_x', 'normal-normal')
|
||||
|
||||
%% Compare OL and CL - Time
|
||||
figure;
|
||||
hold on;
|
||||
plot(gm_ol.Dsample.Time, gm_ol.Dsample.Data(:, 2));
|
||||
plot(gm_cl.Dsample.Time, gm_cl.Dsample.Data(:, 2));
|
||||
legend({'y - OL', 'y - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('gm_control_time_y', 'normal-normal')
|
||||
|
||||
%% Compare OL and CL - Time
|
||||
figure;
|
||||
hold on;
|
||||
plot(gm_ol.Dsample.Time, gm_ol.Dsample.Data(:, 3));
|
||||
plot(gm_cl.Dsample.Time, gm_cl.Dsample.Data(:, 3));
|
||||
legend({'z - OL', 'z - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('gm_control_time_z', 'normal-normal')
|
||||
|
||||
%% Compare OL and CL - Time
|
||||
figure;
|
||||
hold on;
|
||||
plot(gm_ol.Dsample.Time, gm_ol.Dsample.Data(:, 4));
|
||||
plot(gm_cl.Dsample.Time, gm_cl.Dsample.Data(:, 4));
|
||||
legend({'$\theta_x$ - OL', '$\theta_x$ - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Angle [rad]');
|
||||
|
||||
exportFig('gm_control_time_rx', 'normal-normal')
|
||||
|
||||
%% Compare OL and CL - Time
|
||||
figure;
|
||||
hold on;
|
||||
plot(gm_ol.Dsample.Time, gm_ol.Dsample.Data(:, 5));
|
||||
plot(gm_cl.Dsample.Time, gm_cl.Dsample.Data(:, 5));
|
||||
legend({'$\theta_y$ - OL', '$\theta_y$ - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Angle [rad]');
|
||||
|
||||
exportFig('gm_control_time_ry', 'normal-normal')
|
||||
|
||||
%% Compare OL and CL - Time
|
||||
figure;
|
||||
hold on;
|
||||
plot(gm_ol.Dsample.Time, gm_ol.Dsample.Data(:, 6));
|
||||
plot(gm_cl.Dsample.Time, gm_cl.Dsample.Data(:, 6));
|
||||
legend({'$\theta_z$ - OL', '$\theta_z$ - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Angle [rad]');
|
||||
|
||||
exportFig('gm_control_time_rz', 'normal-normal')
|
||||
|
||||
%% Compare OL and CL - PSD
|
||||
han_windows_ol = hanning(ceil(length(gm_ol.Dsample.Time)/10));
|
||||
[psd_x_ol, freqs_x_ol] = pwelch(gm_ol.Dsample.Data(:, 1), han_windows_ol, 0, [], 1/sim_conf.Ts);
|
||||
|
||||
han_windows = hanning(ceil(length(gm_cl.Dsample.Time)/10));
|
||||
[psd_x, freqs_x] = pwelch(gm_cl.Dsample.Data(:, 1), han_windows, 0, [], 1/sim_conf.Ts);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs_x_ol, sqrt(psd_x_ol));
|
||||
plot(freqs_x, sqrt(psd_x));
|
||||
set(gca,'xscale','log'); set(gca,'yscale','log');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
legend({'x - OL', 'x - CL'})
|
||||
hold off;
|
||||
|
||||
exportFig('gm_control_psd_x', 'normal-normal')
|
||||
|
||||
%% Compare OL and CL - PSD
|
||||
han_windows_ol = hanning(ceil(length(gm_ol.Dsample.Time)/10));
|
||||
[psd_y_ol, freqs_y_ol] = pwelch(gm_ol.Dsample.Data(:, 2), han_windows_ol, 0, [], 1/sim_conf.Ts);
|
||||
|
||||
han_windows = hanning(ceil(length(gm_cl.Dsample.Time)/10));
|
||||
[psd_y, freqs_y] = pwelch(gm_cl.Dsample.Data(:, 2), han_windows, 0, [], 1/sim_conf.Ts);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs_y_ol, sqrt(psd_y_ol));
|
||||
plot(freqs_y, sqrt(psd_y));
|
||||
set(gca,'xscale','log'); set(gca,'yscale','log');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
legend({'y - OL', 'y - CL'})
|
||||
hold off;
|
||||
|
||||
exportFig('gm_control_psd_y', 'normal-normal')
|
||||
|
||||
%% Compare OL and CL - PSD
|
||||
load('./mat/G_xg_to_d.mat', 'G_xg_to_d');
|
||||
load('./mat/perturbations.mat', 'Wxg');
|
||||
load('./mat/T_S.mat', 'S', 'T');
|
||||
|
||||
freqs = logspace(-1, 3, 1000);
|
||||
dz_ol = squeeze(abs(freqresp(Wxg*G_xg_to_d(3, 3), freqs, 'Hz')));
|
||||
dz_cl = squeeze(abs(freqresp(Wxg*G_xg_to_d(3, 3)*S(3, 3), freqs, 'Hz')));
|
||||
|
||||
han_windows_ol = hanning(ceil(length(gm_ol.Dsample.Time)/10));
|
||||
[psd_z_ol, freqs_z_ol] = pwelch(gm_ol.Dsample.Data(:, 3), han_windows_ol, 0, [], 1/sim_conf.Ts);
|
||||
|
||||
han_windows = hanning(ceil(length(gm_cl.Dsample.Time)/10));
|
||||
[psd_z, freqs_z] = pwelch(gm_cl.Dsample.Data(:, 3), han_windows, 0, [], 1/sim_conf.Ts);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs_z_ol, sqrt(psd_z_ol), '-', 'Color', [0 0.4470 0.7410], 'DisplayName', '$Dg \to D_x$ - OL (sim)');
|
||||
plot(freqs, dz_ol, '--', 'Color', [0 0.4470 0.7410], 'DisplayName', '$Dg \to D_x$ - OL (th)');
|
||||
plot(freqs_z, sqrt(psd_z), '-', 'Color', [0.8500 0.3250 0.0980], 'DisplayName', '$Dg \to D_x$ - CL (sim)');
|
||||
plot(freqs, dz_cl, '--', 'Color', [0.8500 0.3250 0.0980], 'DisplayName', '$Dg \to D_x$ - CL (th)');
|
||||
set(gca,'xscale','log'); set(gca,'yscale','log');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
legend('location', 'southwest');
|
||||
hold off;
|
||||
|
||||
exportFig('gm_control_psd_z', 'normal-normal')
|
218
analysis/matlab-old/simulation_analysis.m
Normal file
218
analysis/matlab-old/simulation_analysis.m
Normal file
@@ -0,0 +1,218 @@
|
||||
%%
|
||||
clear; close all; clc;
|
||||
|
||||
%%
|
||||
exp_ol = load('./data/exp_open_loop.mat', 'Dmeas');
|
||||
exp_cl = load('./data/exp_close_loop_xyz.mat', 'Dmeas');
|
||||
exp_without_nass = load('./data/exp_whitout_nass.mat', 'Dmeas');
|
||||
load('./mat/sim_conf.mat', 'sim_conf');
|
||||
|
||||
exp_without_nass.Dmeas.Data(:, 3) = exp_without_nass.Dmeas.Data(:, 3) - exp_without_nass.Dmeas.Data(end, 3);
|
||||
|
||||
Fs = ceil((length(exp_without_nass.Dmeas.Time(:))-1)/exp_without_nass.Dmeas.Time(end));
|
||||
|
||||
%%
|
||||
N = length(exp_without_nass.Dmeas.Data(:, 1));
|
||||
figure;
|
||||
hold on;
|
||||
% plot(exp_without_nass.Dmeas.Data(end-6300:end, 1),exp_without_nass.Dmeas.Data(end-6300:end, 2))
|
||||
plot(exp_without_nass.Dmeas.Data(N-6600:N-6200, 1),exp_without_nass.Dmeas.Data(N-6600:N-6200, 2))
|
||||
plot(exp_cl.Dmeas.Data(6:end, 1),exp_cl.Dmeas.Data(6:end, 2))
|
||||
xlim([-1e-6, 1e-6]);
|
||||
ylim([-1e-6, 1e-6]);
|
||||
hold off;
|
||||
xlabel('Displacement - $x$ [m]'); ylabel('Displacement - $y$ [m]');
|
||||
|
||||
|
||||
%% With and without NASS
|
||||
steady_i = ceil(length(exp_ol.Dmeas.Time)/2);
|
||||
steady_i = 6;
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(exp_without_nass.Dmeas.Data(steady_i:end, 1),exp_without_nass.Dmeas.Data(steady_i:end, 2))
|
||||
plot(exp_cl.Dmeas.Data(steady_i:end, 1),exp_cl.Dmeas.Data(steady_i:end, 2))
|
||||
xlim([-1e-6, 1e-6]);
|
||||
ylim([-1e-6, 1e-6]);
|
||||
hold off;
|
||||
xlabel('Displacement - $x$ [m]'); ylabel('Displacement - $y$ [m]');
|
||||
|
||||
exportFig('exp_w_wo_nass_xy', 'half-short')
|
||||
|
||||
%% Video of the simulation
|
||||
close all;
|
||||
|
||||
figure(1);
|
||||
hold on;
|
||||
grid;
|
||||
xlim([-1e-6, 1e-6]);
|
||||
ylim([-1e-6, 1e-6]);
|
||||
xlabel('Displacement - $x$ [m]'); ylabel('Displacement - $y$ [m]');
|
||||
|
||||
% Set up the movie.
|
||||
writerObj = VideoWriter('open_loop.avi'); % Name it.
|
||||
writerObj.FrameRate = 30; % How many frames per second.
|
||||
open(writerObj);
|
||||
|
||||
% Open Loop
|
||||
N = length(exp_without_nass.Dmeas.Data(:, 1))-6300;
|
||||
step_i = ceil(Fs/writerObj.FrameRate);
|
||||
for i=1:step_i:N
|
||||
% We just use pause but pretend you have some really complicated thing here...
|
||||
pause(0.01);
|
||||
figure(1);
|
||||
plot(exp_without_nass.Dmeas.Data(i:min(i+step_i, N), 1),exp_without_nass.Dmeas.Data(i:min(i+step_i, N), 2), 'color', [0 0.4470 0.7410])
|
||||
frame = getframe(gcf); % 'gcf' can handle if you zoom in to take a movie.
|
||||
writeVideo(writerObj, frame);
|
||||
end
|
||||
|
||||
% Close Loop
|
||||
N = length(exp_cl.Dmeas.Data(:, 1));
|
||||
step_i = ceil(Fs/writerObj.FrameRate);
|
||||
first_i = 6;
|
||||
for i=first_i:step_i:N
|
||||
% We just use pause but pretend you have some really complicated thing here...
|
||||
pause(0.01);
|
||||
figure(1);
|
||||
plot(exp_cl.Dmeas.Data(i:min(i+step_i, N), 1),exp_cl.Dmeas.Data(i:min(i+step_i, N), 2), 'color', [0.8500 0.3250 0.0980])
|
||||
frame = getframe(gcf); % 'gcf' can handle if you zoom in to take a movie.
|
||||
writeVideo(writerObj, frame);
|
||||
end
|
||||
|
||||
hold off
|
||||
close(writerObj); % Saves the movie.
|
||||
|
||||
|
||||
%% Video of the simulation
|
||||
close all;
|
||||
|
||||
figure(1);
|
||||
hold on;
|
||||
xlim([-40, 40]);
|
||||
ylim([-40, 40]);
|
||||
yticks([-40 -20 0 20 40])
|
||||
xticks([-40 -20 0 20 40])
|
||||
grid on;
|
||||
xlabel('Displacement - $x$ [nm]'); ylabel('Displacement - $y$ [nm]');
|
||||
|
||||
set(gcf, 'pos', [20 20 300 300]);
|
||||
|
||||
% Set up the movie.
|
||||
writerObj = VideoWriter('close_loop_zoom.avi'); % Name it.
|
||||
writerObj.FrameRate = 30; % How many frames per second.
|
||||
open(writerObj);
|
||||
|
||||
% Open Loop
|
||||
N = length(exp_without_nass.Dmeas.Data(:, 1))-6300;
|
||||
step_i = ceil(Fs/writerObj.FrameRate);
|
||||
for i=1:step_i:N
|
||||
% We just use pause but pretend you have some really complicated thing here...
|
||||
pause(0.01);
|
||||
figure(1);
|
||||
plot(1e9*exp_without_nass.Dmeas.Data(i:min(i+step_i, N), 1),1e9*exp_without_nass.Dmeas.Data(i:min(i+step_i, N), 2), 'color', [0 0.4470 0.7410])
|
||||
frame = getframe(gcf); % 'gcf' can handle if you zoom in to take a movie.
|
||||
writeVideo(writerObj, frame);
|
||||
end
|
||||
|
||||
% Close Loop
|
||||
N = length(exp_cl.Dmeas.Data(:, 1));
|
||||
step_i = ceil(Fs/writerObj.FrameRate);
|
||||
first_i = 6;
|
||||
for i=first_i:step_i:N
|
||||
% We just use pause but pretend you have some really complicated thing here...
|
||||
pause(0.01);
|
||||
figure(1);
|
||||
plot(1e9*exp_cl.Dmeas.Data(i:min(i+step_i, N), 1),1e9*exp_cl.Dmeas.Data(i:min(i+step_i, N), 2), 'color', [0.8500 0.3250 0.0980])
|
||||
frame = getframe(gcf); % 'gcf' can handle if you zoom in to take a movie.
|
||||
writeVideo(writerObj, frame);
|
||||
end
|
||||
|
||||
hold off
|
||||
close(writerObj); % Saves the movie.
|
||||
|
||||
|
||||
%%
|
||||
figure;
|
||||
hold on;
|
||||
plot(exp_without_nass.Dmeas.Time(steady_i:end), exp_without_nass.Dmeas.Data(steady_i:end, 2));
|
||||
plot(exp_without_nass.Dmeas.Time(steady_i:end), exp_cl.Dmeas.Data(steady_i:end, 2));
|
||||
legend({'$y$ - without NASS', '$y$ - with NASS'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('exp_w_wo_nass_y', 'half-small')
|
||||
|
||||
|
||||
|
||||
%% Compare OL and CL - Time
|
||||
figure;
|
||||
hold on;
|
||||
plot(exp_ol.Dmeas.Time, exp_ol.Dmeas.Data(:, 1));
|
||||
plot(exp_cl.Dmeas.Time, exp_cl.Dmeas.Data(:, 1));
|
||||
legend({'x - OL', 'x - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('exp_control_time_x', 'normal-normal')
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(exp_ol.Dmeas.Time, exp_ol.Dmeas.Data(:, 2));
|
||||
plot(exp_cl.Dmeas.Time, exp_cl.Dmeas.Data(:, 2));
|
||||
legend({'y - OL', 'y - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('exp_control_time_y', 'normal-normal')
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(exp_ol.Dmeas.Time, exp_ol.Dmeas.Data(:, 3));
|
||||
plot(exp_cl.Dmeas.Time, exp_cl.Dmeas.Data(:, 3));
|
||||
legend({'z - OL', 'z - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('exp_control_time_z', 'normal-normal')
|
||||
|
||||
%%
|
||||
steady_i = ceil(length(exp_ol.Dmeas.Time)/2);
|
||||
% steady_i = 1;
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(exp_ol.Dmeas.Data(steady_i:end, 1),exp_ol.Dmeas.Data(steady_i:end, 2))
|
||||
plot(exp_cl.Dmeas.Data(steady_i:end, 1),exp_cl.Dmeas.Data(steady_i:end, 2))
|
||||
legend({'OL', 'CL'})
|
||||
hold off;
|
||||
xlabel('Displacement - $x$ [s]'); ylabel('Displacement - $y$ [m]');
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot3(exp_ol.Dmeas.Data(steady_i:end, 1),exp_ol.Dmeas.Data(steady_i:end, 2),exp_ol.Dmeas.Data(steady_i:end, 3))
|
||||
plot3(exp_cl.Dmeas.Data(steady_i:end, 1),exp_cl.Dmeas.Data(steady_i:end, 2),exp_cl.Dmeas.Data(steady_i:end, 3))
|
||||
legend({'OL', 'CL'})
|
||||
hold off;
|
||||
xlabel('Displacement - $x$ [s]'); ylabel('Displacement - $y$ [m]'); zlabel('Displacement - $z$ [m]');
|
||||
|
||||
|
||||
%% Compare OL and CL - PSD
|
||||
han_windows_ol = hanning(ceil(length(exp_ol.Dmeas.Time(steady_i:end))/2));
|
||||
[psd_x_ol, freqs_x_ol] = pwelch(exp_ol.Dmeas.Data(steady_i:end, 1), han_windows_ol, 0, [], 1/sim_conf.Ts);
|
||||
|
||||
han_windows_cl = hanning(ceil(length(exp_cl.Dmeas.Time(steady_i:end))/2));
|
||||
[psd_x, freqs_x] = pwelch(exp_cl.Dmeas.Data(steady_i:end, 1), han_windows_cl, 0, [], 1/sim_conf.Ts);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs_x_ol, sqrt(psd_x_ol));
|
||||
plot(freqs_x, sqrt(psd_x));
|
||||
set(gca,'xscale','log'); set(gca,'yscale','log');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
legend({'x - OL', 'x - CL'})
|
||||
hold off;
|
||||
|
||||
exportFig('exp_psd_x', 'normal-normal')
|
65
analysis/matlab-old/tomography_experiment.m
Normal file
65
analysis/matlab-old/tomography_experiment.m
Normal file
@@ -0,0 +1,65 @@
|
||||
%%
|
||||
Dmeas.Data = Dmeas.Data - Dmeas.Data(1, :);
|
||||
|
||||
%% Time domain X-Y-Z
|
||||
figure;
|
||||
hold on;
|
||||
plot(Dmeas.Time, Dmeas.Data(:, 1));
|
||||
plot(Dmeas.Time, Dmeas.Data(:, 2));
|
||||
plot(Dmeas.Time, Dmeas.Data(:, 3));
|
||||
legend({'x', 'y', 'z'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('tomo_time_translations', 'normal-normal')
|
||||
|
||||
%% Time domain angles
|
||||
figure;
|
||||
hold on;
|
||||
plot(Dmeas.Time, Dmeas.Data(:, 4));
|
||||
plot(Dmeas.Time, Dmeas.Data(:, 5));
|
||||
legend({'$\theta_x$', '$\theta_y$'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('tomo_time_rotations', 'normal-normal')
|
||||
|
||||
%% PSD X-Y-Z
|
||||
han_windows = hanning(ceil(length(Dmeas.Time)/10));
|
||||
|
||||
[psd_x, freqs_x] = pwelch(Dmeas.Data(:, 1), han_windows, 0, [], 1/Ts);
|
||||
[psd_y, freqs_y] = pwelch(Dmeas.Data(:, 2), han_windows, 0, [], 1/Ts);
|
||||
[psd_z, freqs_z] = pwelch(Dmeas.Data(:, 3), han_windows, 0, [], 1/Ts);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs_x, sqrt(psd_x));
|
||||
plot(freqs_y, sqrt(psd_y));
|
||||
plot(freqs_z, sqrt(psd_z));
|
||||
set(gca,'xscale','log'); set(gca,'yscale','log');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
legend({'x', 'y', 'z'})
|
||||
hold off;
|
||||
|
||||
exportFig('tomo_psd_translations', 'normal-normal')
|
||||
|
||||
%% PSD X-Y-Z
|
||||
han_windows = hanning(ceil(length(Dmeas.Time)/10));
|
||||
|
||||
[psd_x, freqs_x] = pwelch(Dmeas.Data(:, 4), han_windows, 0, [], 1/Ts);
|
||||
[psd_y, freqs_y] = pwelch(Dmeas.Data(:, 5), han_windows, 0, [], 1/Ts);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs_x, sqrt(psd_x));
|
||||
plot(freqs_y, sqrt(psd_y));
|
||||
set(gca,'xscale','log'); set(gca,'yscale','log');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$rad/s/\sqrt{Hz}$]');
|
||||
legend({'$\theta_x$', '$\theta_y$'})
|
||||
hold off;
|
||||
|
||||
exportFig('tomo_psd_rotations', 'normal-normal')
|
||||
|
||||
|
||||
%%
|
||||
save('./data/tomography_exp_ol.mat', 'Dmeas')
|
68
analysis/matlab-old/tomography_ol_cl.m
Normal file
68
analysis/matlab-old/tomography_ol_cl.m
Normal file
@@ -0,0 +1,68 @@
|
||||
%%
|
||||
clear; close all; clc;
|
||||
|
||||
%%
|
||||
tomo_ol = load('./data/tomography_exp_ol.mat', 'Dmeas');
|
||||
tomo_cl = load('./data/tomography_exp.mat', 'Dmeas');
|
||||
|
||||
%% Compare OL and CL - Time
|
||||
figure;
|
||||
hold on;
|
||||
plot(tomo_ol.Dmeas.Time, tomo_ol.Dmeas.Data(:, 1));
|
||||
plot(tomo_cl.Dmeas.Time, tomo_cl.Dmeas.Data(:, 1));
|
||||
legend({'x - OL', 'x - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('tomo_control_time_x', 'normal-normal')
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(tomo_ol.Dmeas.Time, tomo_ol.Dmeas.Data(:, 2));
|
||||
plot(tomo_cl.Dmeas.Time, tomo_cl.Dmeas.Data(:, 2));
|
||||
legend({'y - OL', 'y - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('tomo_control_time_y', 'normal-normal')
|
||||
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(tomo_ol.Dmeas.Time, tomo_ol.Dmeas.Data(:, 3));
|
||||
plot(tomo_cl.Dmeas.Time, tomo_cl.Dmeas.Data(:, 3));
|
||||
legend({'z - OL', 'z - CL'})
|
||||
hold off;
|
||||
xlabel('Time [s]'); ylabel('Displacement [m]');
|
||||
|
||||
exportFig('tomo_control_time_z', 'normal-normal')
|
||||
|
||||
%%
|
||||
figure;
|
||||
hold on;
|
||||
plot(tomo_ol.Dmeas.Data(:, 1),tomo_ol.Dmeas.Data(:, 3))
|
||||
plot(tomo_cl.Dmeas.Data(:, 1),tomo_cl.Dmeas.Data(:, 3))
|
||||
legend({'OL', 'CL'})
|
||||
hold off;
|
||||
xlabel('Displacement - $x$ [s]'); ylabel('Displacement - $z$ [m]');
|
||||
|
||||
|
||||
|
||||
%% Compare OL and CL - PSD
|
||||
han_windows_ol = hanning(ceil(length(tomo_ol.Dmeas.Time)/10));
|
||||
[psd_y_ol, freqs_y_ol] = pwelch(tomo_ol.Dmeas.Data(:, 2), han_windows, 0, [], 1/Ts);
|
||||
|
||||
han_windows = hanning(ceil(length(tomo_cl.Dmeas.Time)/10));
|
||||
[psd_y, freqs_y] = pwelch(tomo_cl.Dmeas.Data(:, 2), han_windows, 0, [], 1/Ts);
|
||||
|
||||
figure;
|
||||
hold on;
|
||||
plot(freqs_y_ol, sqrt(psd_y_ol));
|
||||
plot(freqs_y, sqrt(psd_y));
|
||||
set(gca,'xscale','log'); set(gca,'yscale','log');
|
||||
xlabel('Frequency [Hz]'); ylabel('PSD [$m/\sqrt{Hz}$]');
|
||||
legend({'y - OL', 'y - CL'})
|
||||
hold off;
|
||||
|
||||
exportFig('tomo_control_psd_y', 'normal-normal')
|
Reference in New Issue
Block a user