Add Manuscript
This commit is contained in:
parent
64f564f7a1
commit
72618f3bc6
@ -63,8 +63,9 @@ for i = 1:7
|
|||||||
end
|
end
|
||||||
hold off;
|
hold off;
|
||||||
xlabel('Voltage [V]'); ylabel('Displacement [$\mu m$]')
|
xlabel('Voltage [V]'); ylabel('Displacement [$\mu m$]')
|
||||||
legend('location', 'southwest', 'FontSize', 8)
|
|
||||||
xlim([-20, 150]); ylim([-250, 0]);
|
xlim([-20, 150]); ylim([-250, 0]);
|
||||||
|
leg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
%% X-Bending Identification
|
%% X-Bending Identification
|
||||||
% Load Data
|
% Load Data
|
||||||
@ -96,4 +97,5 @@ hold off;
|
|||||||
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
|
set(gca, 'Xscale', 'log'); set(gca, 'Yscale', 'log');
|
||||||
xlabel('Frequency [Hz]'); ylabel('Amplitude');
|
xlabel('Frequency [Hz]'); ylabel('Amplitude');
|
||||||
xlim([100, 1e3]); ylim([5e-5, 2e-1]);
|
xlim([100, 1e3]); ylim([5e-5, 2e-1]);
|
||||||
legend('location', 'northeast', 'FontSize', 8)
|
leg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
@ -30,7 +30,8 @@ for i = [6,5,4,2]
|
|||||||
end
|
end
|
||||||
hold off;
|
hold off;
|
||||||
xlabel('Stack Voltage $V_a$ [V]'); ylabel('Displacement $d_e$ [$\mu$m]');
|
xlabel('Stack Voltage $V_a$ [V]'); ylabel('Displacement $d_e$ [$\mu$m]');
|
||||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
leg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
xlim([-20, 150]);
|
xlim([-20, 150]);
|
||||||
ylim([-120, 120]);
|
ylim([-120, 120]);
|
||||||
|
|
||||||
@ -132,8 +133,9 @@ hold off;
|
|||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
ylabel('Amplitude $d_e/u$ [m/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude $d_e/u$ [m/V]'); set(gca, 'XTickLabel',[]);
|
||||||
hold off;
|
hold off;
|
||||||
legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 2);
|
|
||||||
ylim([1e-8, 1e-3]);
|
ylim([1e-8, 1e-3]);
|
||||||
|
leg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 2);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
@ -164,7 +166,8 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
|||||||
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
|
||||||
hold off;
|
hold off;
|
||||||
ylim([1e-2, 1e2]);
|
ylim([1e-2, 1e2]);
|
||||||
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2);
|
leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 2);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
@ -209,9 +212,9 @@ ylim([0, 1]);
|
|||||||
|
|
||||||
%% Bode plot of the FRF from u to de
|
%% Bode plot of the FRF from u to de
|
||||||
figure;
|
figure;
|
||||||
tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
tiledlayout(2, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
||||||
|
|
||||||
ax1 = nexttile([2,1]);
|
ax1 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, abs(frf_noise), '.-');
|
plot(f, abs(frf_noise), '.-');
|
||||||
hold off;
|
hold off;
|
||||||
@ -258,22 +261,23 @@ tiledlayout(2, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
|||||||
|
|
||||||
ax1 = nexttile();
|
ax1 = nexttile();
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, abs(frf_wo_k), 'DisplayName', 'Without $R$');
|
plot(f, abs(frf_wo_k), '-', 'color', [colors(1,:), 0.5], 'linewidth', 2.5, 'DisplayName', 'Without $R$');
|
||||||
plot(f, abs(frf_wi_k), 'DisplayName', 'With $R$');
|
plot(f, abs(frf_wi_k), '-', 'color', [colors(2,:), 0.5], 'linewidth', 2.5, 'DisplayName', 'With $R$');
|
||||||
plot(f, abs(squeeze(freqresp(G_hpf, f, 'Hz'))), 'k--', 'DisplayName', 'RC model');
|
plot(f, abs(squeeze(freqresp(G_hpf, f, 'Hz'))), '--', 'color', colors(2,:), 'DisplayName', 'RC model');
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
ylabel('Amplitude [V/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude [V/V]'); set(gca, 'XTickLabel',[]);
|
||||||
hold off;
|
hold off;
|
||||||
ylim([2e-1, 1e0]);
|
ylim([2e-1, 1e0]);
|
||||||
yticks([0.2, 0.5, 1]);
|
yticks([0.2, 0.5, 1]);
|
||||||
legend('location', 'southeast', 'FontSize', 8);
|
leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, 180/pi*angle(frf_wo_k));
|
plot(f, 180/pi*angle(frf_wo_k), '-', 'color', [colors(1,:), 0.5], 'linewidth', 2.5);
|
||||||
plot(f, 180/pi*angle(frf_wi_k));
|
plot(f, 180/pi*angle(frf_wi_k), '-', 'color', [colors(2,:), 0.5], 'linewidth', 2.5);
|
||||||
plot(f, 180/pi*angle(squeeze(freqresp(G_hpf, f, 'Hz'))), 'k--', 'DisplayName', 'RC');
|
plot(f, 180/pi*angle(squeeze(freqresp(G_hpf, f, 'Hz'))), '--', 'color', colors(2,:), 'DisplayName', 'RC');
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||||
@ -312,23 +316,25 @@ tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
|||||||
|
|
||||||
ax1 = nexttile([2,1]);
|
ax1 = nexttile([2,1]);
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, abs(G_iff), 'color', colors(2,:), 'DisplayName', 'Identified plant')
|
plot(f, abs(G_iff), '-', 'color', [colors(1,:), 0.5], 'linewidth', 2.5, 'DisplayName', 'Measured FRF');
|
||||||
plot(f, abs(squeeze(freqresp(G_iff_model, f, 'Hz'))), 'k--', 'DisplayName', 'Manual fit')
|
plot(f, abs(squeeze(freqresp(G_iff_model, f, 'Hz'))), '--', 'color', colors(1,:), 'DisplayName', 'Manual fit')
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
|
||||||
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
|
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
ylim([1e-2, 1e2]);
|
||||||
|
yticks([1e-2, 1e-1, 1, 1e1, 1e2]);
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, 180/pi*angle(G_iff), 'color', colors(2,:));
|
plot(f, 180/pi*angle(G_iff), '-', 'color', [colors(1,:), 0.5], 'linewidth', 2.5);
|
||||||
plot(f, 180/pi*angle(squeeze(freqresp(G_iff_model, f, 'Hz'))), 'k--')
|
plot(f, 180/pi*angle(squeeze(freqresp(G_iff_model, f, 'Hz'))), '--', 'color', colors(1,:))
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||||
hold off;
|
hold off;
|
||||||
yticks(-360:45:360);
|
|
||||||
ylim([-90, 180])
|
ylim([-90, 180])
|
||||||
|
yticks(-360:90:360);
|
||||||
|
|
||||||
linkaxes([ax1,ax2],'x');
|
linkaxes([ax1,ax2],'x');
|
||||||
xlim([0.2, 1e3]);
|
xlim([0.2, 1e3]);
|
||||||
@ -398,14 +404,15 @@ tiledlayout(1, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
|||||||
ax1 = nexttile();
|
ax1 = nexttile();
|
||||||
hold on;
|
hold on;
|
||||||
for i = 1:length(i_kept)
|
for i = 1:length(i_kept)
|
||||||
plot(f, abs(G_dL_frf{i}), 'color', [colors(i,:), 1], 'DisplayName', sprintf('g = %.0f', data.gains(i_kept(i))))
|
plot(f, abs(G_dL_frf{i}), '-', 'color', [colors(i,:), 0.5], 'linewidth', 2.5, 'DisplayName', sprintf('g = %.0f', data.gains(i_kept(i))))
|
||||||
plot(f, abs(squeeze(freqresp(G_dL_id{i}, f, 'Hz'))), '--', 'color', [colors(i,:), 1], 'HandleVisibility', 'off')
|
plot(f, abs(squeeze(freqresp(G_dL_id{i}, f, 'Hz'))), '--', 'color', [colors(i,:), 1], 'HandleVisibility', 'off')
|
||||||
end
|
end
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
xlabel('Frequency [Hz]'); ylabel('Amplitude $d_e/u^\prime$ [m/V]');
|
xlabel('Frequency [Hz]'); ylabel('Amplitude $d_e/u^\prime$ [m/V]');
|
||||||
xlim([10, 1e3]);
|
xlim([10, 800]);
|
||||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
leg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
%% Root Locus of the APA300ML with Integral Force Feedback
|
%% Root Locus of the APA300ML with Integral Force Feedback
|
||||||
% Comparison between the computed root locus from the plant model and the root locus estimated from the damped plant pole identification
|
% Comparison between the computed root locus from the plant model and the root locus estimated from the damped plant pole identification
|
||||||
@ -416,7 +423,7 @@ hold on;
|
|||||||
G_iff_poles = pole(pade(G_iff_model));
|
G_iff_poles = pole(pade(G_iff_model));
|
||||||
i = imag(G_iff_poles) > 100; % Only keep relevant poles
|
i = imag(G_iff_poles) > 100; % Only keep relevant poles
|
||||||
plot(real(G_iff_poles(i)), imag(G_iff_poles(i)), 'kx', ...
|
plot(real(G_iff_poles(i)), imag(G_iff_poles(i)), 'kx', ...
|
||||||
'DisplayName', '$g = 0$');
|
'HandleVisibility', 'off');
|
||||||
G_iff_zeros = tzero(G_iff_model);
|
G_iff_zeros = tzero(G_iff_model);
|
||||||
i = imag(G_iff_zeros) > 100; % Only keep relevant zeros
|
i = imag(G_iff_zeros) > 100; % Only keep relevant zeros
|
||||||
plot(real(G_iff_zeros(i)), imag(G_iff_zeros(i)), 'ko', ...
|
plot(real(G_iff_zeros(i)), imag(G_iff_zeros(i)), 'ko', ...
|
||||||
@ -437,4 +444,5 @@ ylabel('Imaginary Part')
|
|||||||
axis equal
|
axis equal
|
||||||
ylim([0, 610]);
|
ylim([0, 610]);
|
||||||
xlim([-300,0]);
|
xlim([-300,0]);
|
||||||
legend('location', 'southwest', 'FontSize', 8);
|
leg = legend('location', 'southwest', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
@ -105,9 +105,9 @@ tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
|||||||
|
|
||||||
ax1 = nexttile([2,1]);
|
ax1 = nexttile([2,1]);
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, abs(enc_frf(:, 1)), 'color', [0,0,0,0.2], 'DisplayName', 'Identified');
|
plot(f, abs(enc_frf(:, 1)), '-', 'color', [colors(2,:), 0.1], 'linewidth', 2.5, 'DisplayName', 'Identified');
|
||||||
for i = 1:length(apa_nums)
|
for i = 1:length(apa_nums)
|
||||||
plot(f, abs(enc_frf(:, i)), 'color', [0,0,0,0.2], 'HandleVisibility', 'off');
|
plot(f, abs(enc_frf(:, i)), '-', 'color', [colors(2,:), 0.1], 'linewidth', 2.5, 'HandleVisibility', 'off');
|
||||||
end
|
end
|
||||||
plot(freqs, abs(squeeze(freqresp(G_2dof('de', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:), 'DisplayName', '2DoF Model')
|
plot(freqs, abs(squeeze(freqresp(G_2dof('de', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:), 'DisplayName', '2DoF Model')
|
||||||
hold off;
|
hold off;
|
||||||
@ -115,12 +115,13 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
|||||||
ylabel('Amplitude $d_e/u$ [m/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude $d_e/u$ [m/V]'); set(gca, 'XTickLabel',[]);
|
||||||
hold off;
|
hold off;
|
||||||
ylim([1e-8, 1e-3]);
|
ylim([1e-8, 1e-3]);
|
||||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
leg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
for i = 1:length(apa_nums)
|
for i = 1:length(apa_nums)
|
||||||
plot(f, 180/pi*angle(enc_frf(:, i)), 'color', [0,0,0,0.2]);
|
plot(f, 180/pi*angle(enc_frf(:, i)), '-', 'color', [colors(2,:), 0.1], 'linewidth', 2.5);
|
||||||
end
|
end
|
||||||
plot(freqs, 180/pi*angle(squeeze(freqresp(G_2dof('de', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:))
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_2dof('de', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:))
|
||||||
hold off;
|
hold off;
|
||||||
@ -138,24 +139,25 @@ tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
|||||||
|
|
||||||
ax1 = nexttile([2,1]);
|
ax1 = nexttile([2,1]);
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, abs(iff_frf(:, 1)), 'color', [0,0,0,0.2], 'DisplayName', 'Identified');
|
plot(f, abs(iff_frf(:, 1)), '-', 'color', [colors(1,:), 0.1], 'linewidth', 2.5, 'DisplayName', 'Identified');
|
||||||
for i = 2:length(apa_nums)
|
for i = 2:length(apa_nums)
|
||||||
plot(f, abs(iff_frf(:, i)), 'color', [0,0,0,0.2], 'HandleVisibility', 'off');
|
plot(f, abs(iff_frf(:, i)), '-', 'color', [colors(1,:), 0.1], 'linewidth', 2.5, 'HandleVisibility', 'off');
|
||||||
end
|
end
|
||||||
plot(freqs, abs(squeeze(freqresp(G_2dof('Vs', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:), 'DisplayName', '2DoF Model')
|
plot(freqs, abs(squeeze(freqresp(G_2dof('Vs', 'u'), freqs, 'Hz'))), '--', 'color', colors(1,:), 'DisplayName', '2DoF Model')
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
|
||||||
hold off;
|
hold off;
|
||||||
ylim([1e-2, 1e2]);
|
ylim([1e-2, 1e2]);
|
||||||
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
|
leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
for i = 1:length(apa_nums)
|
for i = 1:length(apa_nums)
|
||||||
plot(f, 180/pi*angle(iff_frf(:, i)), 'color', [0,0,0,0.2]);
|
plot(f, 180/pi*angle(iff_frf(:, i)), '-', 'color', [colors(1,:), 0.2], 'linewidth', 2.5);
|
||||||
end
|
end
|
||||||
plot(freqs, 180/pi*angle(squeeze(freqresp(G_2dof('Vs', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:))
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_2dof('Vs', 'u'), freqs, 'Hz'))), '--', 'color', colors(1,:))
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||||
|
@ -71,9 +71,9 @@ tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
|||||||
|
|
||||||
ax1 = nexttile([2,1]);
|
ax1 = nexttile([2,1]);
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, abs(enc_frf(:, 1)), 'color', [0,0,0,0.2], 'DisplayName', 'Identified');
|
plot(f, abs(enc_frf(:, 1)), 'color', [colors(2,:), 0.1], 'linewidth', 2.5, 'DisplayName', 'Identified');
|
||||||
for i = 1:length(apa_nums)
|
for i = 1:length(apa_nums)
|
||||||
plot(f, abs(enc_frf(:, i)), 'color', [0,0,0,0.2], 'HandleVisibility', 'off');
|
plot(f, abs(enc_frf(:, i)), 'color', [colors(2,:), 0.1], 'linewidth', 2.5, 'HandleVisibility', 'off');
|
||||||
end
|
end
|
||||||
plot(freqs, abs(squeeze(freqresp(G_flex('de', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:), 'DisplayName', '"Flexible" Model')
|
plot(freqs, abs(squeeze(freqresp(G_flex('de', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:), 'DisplayName', '"Flexible" Model')
|
||||||
hold off;
|
hold off;
|
||||||
@ -81,12 +81,13 @@ set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
|||||||
ylabel('Amplitude $d_e/u$ [m/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude $d_e/u$ [m/V]'); set(gca, 'XTickLabel',[]);
|
||||||
hold off;
|
hold off;
|
||||||
ylim([1e-8, 1e-3]);
|
ylim([1e-8, 1e-3]);
|
||||||
legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
leg = legend('location', 'northeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
for i = 1:length(apa_nums)
|
for i = 1:length(apa_nums)
|
||||||
plot(f, 180/pi*angle(enc_frf(:, i)), 'color', [0,0,0,0.2]);
|
plot(f, 180/pi*angle(enc_frf(:, i)), 'color', [colors(2,:), 0.1], 'linewidth', 2.5);
|
||||||
end
|
end
|
||||||
plot(freqs, 180/pi*angle(squeeze(freqresp(G_flex('de', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:))
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_flex('de', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:))
|
||||||
hold off;
|
hold off;
|
||||||
@ -104,24 +105,25 @@ tiledlayout(3, 1, 'TileSpacing', 'Compact', 'Padding', 'None');
|
|||||||
|
|
||||||
ax1 = nexttile([2,1]);
|
ax1 = nexttile([2,1]);
|
||||||
hold on;
|
hold on;
|
||||||
plot(f, abs(iff_frf(:, 1)), 'color', [0,0,0,0.2], 'DisplayName', 'Identified');
|
plot(f, abs(iff_frf(:, 1)), '-', 'color', [colors(1,:), 0.1], 'linewidth', 2.5, 'DisplayName', 'Identified');
|
||||||
for i = 2:length(apa_nums)
|
for i = 2:length(apa_nums)
|
||||||
plot(f, abs(iff_frf(:, i)), 'color', [0,0,0,0.2], 'HandleVisibility', 'off');
|
plot(f, abs(iff_frf(:, i)), '-', 'color', [colors(1,:), 0.1], 'linewidth', 2.5, 'HandleVisibility', 'off');
|
||||||
end
|
end
|
||||||
plot(freqs, abs(squeeze(freqresp(G_flex('Vs', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:), 'DisplayName', '"Flexible" Model')
|
plot(freqs, abs(squeeze(freqresp(G_flex('Vs', 'u'), freqs, 'Hz'))), '--', 'color', colors(1,:), 'DisplayName', '"Flexible" Model')
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'log');
|
||||||
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
|
ylabel('Amplitude $V_s/u$ [V/V]'); set(gca, 'XTickLabel',[]);
|
||||||
hold off;
|
hold off;
|
||||||
ylim([1e-2, 1e2]);
|
ylim([1e-2, 1e2]);
|
||||||
legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
|
leg = legend('location', 'southeast', 'FontSize', 8, 'NumColumns', 1);
|
||||||
|
leg.ItemTokenSize(1) = 15;
|
||||||
|
|
||||||
ax2 = nexttile;
|
ax2 = nexttile;
|
||||||
hold on;
|
hold on;
|
||||||
for i = 1:length(apa_nums)
|
for i = 1:length(apa_nums)
|
||||||
plot(f, 180/pi*angle(iff_frf(:, i)), 'color', [0,0,0,0.2]);
|
plot(f, 180/pi*angle(iff_frf(:, i)), '-', 'color', [colors(1,:), 0.1], 'linewidth', 2.5);
|
||||||
end
|
end
|
||||||
plot(freqs, 180/pi*angle(squeeze(freqresp(G_flex('Vs', 'u'), freqs, 'Hz'))), '--', 'color', colors(2,:))
|
plot(freqs, 180/pi*angle(squeeze(freqresp(G_flex('Vs', 'u'), freqs, 'Hz'))), '--', 'color', colors(1,:))
|
||||||
hold off;
|
hold off;
|
||||||
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
set(gca, 'XScale', 'log'); set(gca, 'YScale', 'lin');
|
||||||
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
xlabel('Frequency [Hz]'); ylabel('Phase [deg]');
|
||||||
|
@ -74,6 +74,7 @@ The repository is organized as follows:
|
|||||||
├── C3-test-bench-struts
|
├── C3-test-bench-struts
|
||||||
├── C4-test-bench-nano-hexapod
|
├── C4-test-bench-nano-hexapod
|
||||||
├── C5-test-bench-id31
|
├── C5-test-bench-id31
|
||||||
|
├── dehaeze-nass-phd-thesis.pdf # PhD Thesis Manuscript
|
||||||
├── init.m # Optional: Some Matlab configuration to have same figure display
|
├── init.m # Optional: Some Matlab configuration to have same figure display
|
||||||
├── LICENSE # MIT License is used for all the code in this repository
|
├── LICENSE # MIT License is used for all the code in this repository
|
||||||
└── README.md # The present file
|
└── README.md # The present file
|
||||||
|
BIN
dehaeze-nass-phd-thesis.pdf
Normal file
BIN
dehaeze-nass-phd-thesis.pdf
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user